@import url(https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Nunito:wght@400;500;600;700&display=swap);:root{--navy:#162040;--navy-mid:#1e2e57;--navy-light:#2c3f70;--gold:#c8841a;--gold-light:#f5e4c0;--gold-pale:#fdf6e8;--parchment:#faf6ef;--surface:#fff;--terracotta:#b05540;--forest:#2d6a4f;--text-dark:#1a1f2e;--text-mid:#4a5168;--text-light:#8892a4;--border:#e8e3d8;--border-mid:#d4cfc5;--shadow-warm:#16204014;--shadow-gold:#c8841a40;--radius-sm:8px;--radius:12px;--radius-lg:16px;--radius-xl:24px;--font-display:"Cormorant Garamond",Georgia,serif;--font-body:"Nunito",-apple-system,BlinkMacSystemFont,sans-serif;--transition:all 0.2s ease}*,:after,:before{-webkit-tap-highlight-color:transparent;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-overflow-scrolling:touch;background:#faf6ef;background:var(--parchment);color:#1a1f2e;color:var(--text-dark);font-size:15px;line-height:1.6;margin:0;overscroll-behavior-y:contain}body,button,input,select,textarea{font-family:Nunito,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-body)}button,input,select,textarea{-webkit-appearance:none;appearance:none;border-radius:0}input[type=checkbox],input[type=radio]{-webkit-appearance:checkbox;appearance:auto}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%234a5168' d='M6 8 1 3h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}h1,h2,h3{color:#162040;color:var(--navy);font-family:Cormorant Garamond,Georgia,serif;font-family:var(--font-display);font-weight:600;line-height:1.25}.scrollable{-webkit-overflow-scrolling:touch;overflow-y:auto}.App{background:#f5f7fa;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh;text-align:center}.App.dashboard-view{background:#f0f2f5;text-align:left}.top-nav-new{background:#fff;box-shadow:0 2px 8px #00000014;justify-content:space-between;padding:.75rem 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.nav-brand-new,.top-nav-new{align-items:center;display:flex}.nav-brand-new{gap:.75rem}.brand-logo-new{align-items:center;background:linear-gradient(135deg,#20b2aa,#3cb371);border-radius:10px;display:flex;height:40px;justify-content:center;width:40px}.cross-svg-nav{color:#fff;height:24px;width:24px}.brand-text-new{display:flex;flex-direction:column}.brand-name{color:#333;font-size:1rem;font-weight:700;line-height:1.2}.brand-subtitle{color:#888;font-size:.75rem;font-weight:400}.nav-links{display:flex;gap:.5rem}.nav-link{align-items:center;background:#0000;border:none;border-radius:8px;color:#495057;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.4rem;padding:.6rem 1rem;transition:all .2s}.nav-link-teal{color:#0d9488}.nav-link-teal:hover{background:#ccfbf1;color:#0f766e}.nav-link-teal.active{background:linear-gradient(135deg,#14b8a6,#0d9488);box-shadow:0 4px 12px #14b8a666;color:#fff}.nav-link-blue{color:#2563eb}.nav-link-blue:hover{background:#dbeafe;color:#1d4ed8}.nav-link-blue.active{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 4px 12px #3b82f666;color:#fff}.nav-link-orange{color:#ea580c}.nav-link-orange:hover{background:#ffedd5;color:#c2410c}.nav-link-orange.active{background:linear-gradient(135deg,#f97316,#ea580c);box-shadow:0 4px 12px #f9731666;color:#fff}.nav-link-indigo{color:#4f46e5}.nav-link-indigo:hover{background:#e0e7ff;color:#4338ca}.nav-link-indigo.active{background:linear-gradient(135deg,#6366f1,#4f46e5);box-shadow:0 4px 12px #6366f166;color:#fff}.nav-link-emerald{color:#059669}.nav-link-emerald:hover{background:#d1fae5;color:#047857}.nav-link-emerald.active{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 12px #10b98166;color:#fff}.nav-link-amber{color:#d97706}.nav-link-amber:hover{background:#fef3c7;color:#b45309}.nav-link-amber.active{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 4px 12px #f59e0b66;color:#fff}.nav-link-purple{color:#7c3aed}.nav-link-purple:hover{background:#ede9fe;color:#6d28d9}.nav-link-purple.active{background:linear-gradient(135deg,#8b5cf6,#7c3aed);box-shadow:0 4px 12px #8b5cf666;color:#fff}.nav-link-gray{color:#4b5563}.nav-link-gray:hover{background:#f3f4f6;color:#374151}.nav-link-gray.active{background:linear-gradient(135deg,#6b7280,#4b5563);box-shadow:0 4px 12px #6b728066;color:#fff}.nav-link-icon{font-size:1rem}.nav-link-icon,.nav-user{align-items:center;display:flex}.nav-user{gap:.75rem}.user-avatar-new{align-items:center;background:linear-gradient(135deg,#ff9a56,#ff6b6b);border-radius:50%;color:#fff;display:flex;font-size:.8rem;font-weight:600;height:36px;justify-content:center;width:36px}.btn-logout-new,.user-name{font-size:.9rem;font-weight:500}.btn-logout-new{align-items:center;background:#0000;border:none;border-radius:6px;color:#6c757d;cursor:pointer;display:flex;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.btn-logout-new .logout-icon{font-size:1.1rem}.btn-logout-new:hover{background:#f0f2f5;color:#e74c3c}.main-content-new{margin:0 auto;max-width:1200px;padding:2rem}.dashboard-home{display:flex;flex-direction:column;gap:1.5rem}.welcome-card-new{background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000000f;padding:2rem}.welcome-card-new h1{color:#333;font-size:1.75rem;margin:0 0 .5rem}.welcome-card-new p{color:#6c757d;margin:0 0 1.5rem}.quick-stats{display:flex;flex-wrap:wrap;gap:2rem}.stat-item{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;gap:.5rem;padding:.75rem 1rem}.stat-icon{font-size:1.25rem}.stat-label{color:#495057;font-size:.9rem}.age-groups-card{background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000000f;padding:1.5rem 2rem}.age-groups-card h2{color:#333;font-size:1.1rem;margin:0 0 1rem}.age-groups-grid-new{display:flex;flex-wrap:wrap;gap:.75rem}.age-chip{align-items:center;border:2px solid;border-radius:20px;display:flex;font-size:.85rem;font-weight:500;gap:.5rem;padding:.5rem 1rem}.dev-tools-card{background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000000f;padding:1.5rem 2rem}.btn-dev-toggle-new{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;cursor:pointer;font-size:.9rem;padding:.6rem 1rem;transition:all .2s}.btn-dev-toggle-new:hover{background:#e9ecef}.dev-tools-buttons-new{display:flex;gap:1rem;margin-top:1rem}.btn-dev-new{background:#fff;border:1px solid #dee2e6;border-radius:8px;cursor:pointer;font-size:.9rem;padding:.6rem 1.25rem;transition:all .2s}.btn-dev-new:hover{background:#f8f9fa}.btn-dev-new.danger{border-color:#e74c3c;color:#e74c3c}.btn-dev-new.danger:hover{background:#fdf0ef}.nametag-section{margin-top:1rem}.btn-nametag{background:linear-gradient(135deg,#20b2aa,#3cb371);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.btn-nametag:hover{box-shadow:0 4px 12px #20b2aa4d;transform:translateY(-1px)}.landing-page{display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh}.landing-left{background:linear-gradient(135deg,#20b2aa,#3cb371 50%,#2e8b57);color:#fff;display:flex;flex:1 1;flex-direction:column;justify-content:space-between;padding:3rem}.landing-brand{align-items:center;display:flex;gap:1rem}.brand-icon{background:#fff3;border-radius:12px;font-size:2.5rem;padding:.75rem}.brand-icon.anglican-cross{align-items:center;display:flex;font-size:inherit;height:60px;justify-content:center;width:60px}.cross-svg{color:#fff;height:40px;width:40px}.brand-text h1{font-size:1.5rem;font-weight:700;margin:0}.brand-text p{font-size:.9rem;margin:0;opacity:.9}.landing-hero{max-width:400px}.landing-hero h2{font-size:2.5rem;font-weight:700;line-height:1.2;margin:0 0 1rem}.landing-hero p{font-size:1rem;line-height:1.6;margin:0;opacity:.9}.landing-features{display:flex;gap:2rem}.feature-item{align-items:center;display:flex;font-size:.95rem;gap:.5rem}.feature-icon{font-size:1.2rem}.landing-status{align-items:center;display:flex;font-size:.85rem;gap:.5rem;opacity:.8}.status-indicator{border-radius:50%;height:8px;width:8px}.status-indicator.online{background:#90ee90;box-shadow:0 0 8px #90ee90}.status-indicator.offline{background:#ff6b6b}.landing-right{align-items:center;background:#f5f7fa;display:flex;flex:1 1;justify-content:center;padding:2rem}.login-card{background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;max-width:400px;padding:2.5rem;width:100%}.login-card h2{color:#333;font-size:1.75rem;margin:0 0 .5rem;text-align:center}.login-subtitle{color:#20b2aa;font-size:.9rem;margin:0 0 2rem;text-align:center}.login-card .form-group{margin-bottom:1.25rem}.login-card .form-group label{color:#333;display:block;font-size:.9rem;font-weight:500;margin-bottom:.5rem}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{font-size:1rem;left:1rem;opacity:.5;position:absolute}.login-card input[type=email],.login-card input[type=password]{border:1px solid #e0e0e0;border-radius:8px;box-sizing:border-box;cursor:pointer;font-size:1rem;padding:.875rem 1rem .875rem 3rem;transition:all .2s;width:100%}.login-card input:focus{border-color:#20b2aa;box-shadow:0 0 0 3px #20b2aa1a;outline:none}.form-options{justify-content:space-between;margin-bottom:1.5rem}.form-options,.remember-me{align-items:center;display:flex}.remember-me{color:#666;font-size:.9rem;gap:.5rem}.forgot-link,.remember-me,.remember-me input{cursor:pointer}.forgot-link{background:none;border:none;color:#20b2aa;font-size:.9rem;text-decoration:none}.forgot-link:hover{text-decoration:underline}.btn-signin-main{background:linear-gradient(135deg,#20b2aa,#3cb371);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem;transition:all .3s;width:100%}.btn-signin-main:hover{box-shadow:0 4px 15px #20b2aa66;transform:translateY(-2px)}.register-prompt{color:#666;font-size:.9rem;margin-top:1.5rem;text-align:center}.register-link{background:none;border:none;color:#20b2aa;cursor:pointer;font-weight:600;text-decoration:none}.register-link:hover{text-decoration:underline}@media (max-width:900px){.landing-page{flex-direction:column}.landing-left{min-height:auto;padding:2rem}.landing-hero h2{font-size:1.8rem}.landing-features{flex-direction:column;gap:.75rem}.landing-right,.login-card{padding:1.5rem}}.top-nav{background:#fff;box-shadow:0 2px 10px #0000001a;justify-content:space-between;padding:.75rem 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.nav-brand,.top-nav{align-items:center;display:flex}.nav-brand{gap:.5rem}.nav-logo{font-size:1.8rem}.nav-title{color:#333;font-size:1.1rem;font-weight:600}.nav-status{align-items:center;display:flex;gap:.5rem}.status-dot{border-radius:50%;height:10px;width:10px}.status-dot.online{background:#2ecc71;box-shadow:0 0 8px #2ecc71}.status-dot.offline{background:#e74c3c}.status-text{color:#666;font-size:.85rem}.nav-auth{align-items:center;display:flex}.auth-buttons{display:flex;gap:.75rem}.btn-signin{background:#20b2aa;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.5rem 1.25rem;transition:all .2s}.btn-signin:hover{background:#1a9a93;transform:translateY(-1px)}.btn-register{background:#0000;border:2px solid #20b2aa;border-radius:8px;color:#20b2aa;cursor:pointer;font-weight:600;padding:.5rem 1.25rem;transition:all .2s}.btn-register:hover{background:#667eea;color:#fff}.user-menu{align-items:center;display:flex;gap:1rem}.user-avatar{background:linear-gradient(135deg,#667eea,#764ba2);font-weight:700}.user-details{align-items:flex-start}.user-email{color:#333;font-weight:500}.role-badge{border-radius:10px;font-size:.7rem;font-weight:600;padding:.15rem .5rem;text-transform:uppercase}.role-badge.admin{background:#e74c3c;color:#fff}.role-badge.teacher{background:#3498db;color:#fff}.role-badge.volunteer{background:#2ecc71;color:#fff}.btn-logout{background:#f8f9fa;border:1px solid #ddd;border-radius:6px;color:#666;cursor:pointer;font-size:.85rem;padding:.4rem .75rem;transition:all .2s}.btn-logout:hover{background:#e74c3c;border-color:#e74c3c;color:#fff}.main-content{background:linear-gradient(135deg,#20b2aa,#3cb371);margin:0 auto;max-width:1200px;min-height:calc(100vh - 60px);padding:2rem}.welcome-section{padding:2rem 0;text-align:center}.welcome-title{color:#fff;font-size:2rem;margin:0 0 .5rem;text-shadow:2px 2px 4px #0003}.welcome-subtitle{color:#ffffffe6;font-size:1.1rem;margin:0 0 1.5rem}.fun-icons{display:flex;font-size:2rem;gap:1.5rem;justify-content:center}.fun-icon{animation:float 3s ease-in-out infinite;cursor:pointer}.fun-icon:first-child{animation-delay:0s}.fun-icon:nth-child(2){animation-delay:.5s}.fun-icon:nth-child(3){animation-delay:1s}.fun-icon:nth-child(4){animation-delay:1.5s}.action-cards{margin:2rem 0}.welcome-card{background:#fff;border-radius:16px;box-shadow:0 10px 40px #00000026;margin:0 auto;max-width:500px;padding:2.5rem}.welcome-card h2{color:#333;font-size:1.8rem;margin:0 0 1rem}.welcome-card p{color:#666;margin:0 0 1.5rem}.welcome-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.btn-primary{background:linear-gradient(135deg,#20b2aa,#2e8b57);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .3s}.btn-primary:hover{box-shadow:0 5px 20px #20b2aa66;transform:translateY(-2px)}.btn-secondary{background:#fff;border:2px solid #20b2aa;border-radius:10px;color:#20b2aa;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .3s}.btn-secondary:hover{background:#20b2aa;color:#fff}.menu-buttons{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center}.menu-button{align-items:center;background:#fff;border:none;border-radius:16px;box-shadow:0 4px 15px #0000001a;cursor:pointer;display:flex;flex-direction:column;gap:.5rem;min-width:180px;padding:1.5rem 2rem;transition:all .3s ease}.menu-button:hover{box-shadow:0 10px 30px #0003;transform:translateY(-5px)}.btn-icon{font-size:2rem}.btn-text{color:#333;font-size:1rem;font-weight:600}.menu-button.register{border-bottom:4px solid #ff9a56}.menu-button.register:hover{background:linear-gradient(135deg,#ff9a56,#ff6b6b)}.menu-button.register:hover .btn-text{color:#fff}.menu-button.view{border-bottom:4px solid #4ecdc4}.menu-button.view:hover{background:linear-gradient(135deg,#4ecdc4,#44a08d)}.menu-button.view:hover .btn-text{color:#fff}.menu-button.attendance{border-bottom:4px solid #3498db}.menu-button.attendance:hover{background:linear-gradient(135deg,#3498db,#2980b9)}.menu-button.attendance:hover .btn-text{color:#fff}.menu-button.admin{border-bottom:4px solid #9b59b6}.menu-button.admin:hover{background:linear-gradient(135deg,#9b59b6,#8e44ad)}.menu-button.admin:hover .btn-text{color:#fff}.menu-button.nametag{border-bottom:4px solid #e74c3c}.menu-button.nametag:hover{background:linear-gradient(135deg,#e74c3c,#c0392b)}.menu-button.nametag:hover .btn-text{color:#fff}.volunteer-message{background:#fff;border-radius:16px;box-shadow:0 4px 15px #0000001a;margin:0 auto;max-width:450px;padding:2rem;text-align:center}.volunteer-message h3{color:#2ecc71;margin:0 0 1rem}.volunteer-message p{color:#666;margin:.5rem 0}.volunteer-message .hint{color:#999;font-size:.85rem;font-style:italic}.age-groups-section{background:#ffffff1a;border-radius:20px;margin:3rem 0;padding:2rem}.age-groups-section h2{color:#fff;font-size:1.5rem;margin:0 0 1.5rem}.age-groups-grid{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.age-card{align-items:center;background:#fff;border-left:4px solid;border-radius:12px;box-shadow:0 2px 10px #0000001a;display:flex;gap:.75rem;padding:1rem 1.5rem}.age-emoji{font-size:1.5rem}.age-label{color:#333;font-weight:600}.dev-tools-section{border-top:1px solid #fff3;margin-top:2rem;padding-top:2rem}.btn-dev-toggle{background:#ffffff1a;border:1px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:all .2s}.btn-dev-toggle:hover{background:#fff3}.dev-tools-buttons{display:flex;gap:1rem;justify-content:center;margin-top:1rem}.btn-dev{background:#ffffffe6;border:none;border-radius:8px;color:#333;cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem 1.25rem;transition:all .2s}.btn-dev:hover{background:#fff;transform:translateY(-2px)}.btn-dev.danger{background:#e74c3c;color:#fff}.btn-dev.danger:hover{background:#c0392b}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.mobile-menu-btn{background:none;border:none;cursor:pointer;display:none;margin-right:8px;padding:8px}.hamburger{display:flex;flex-direction:column;height:18px;justify-content:space-between;width:24px}.hamburger span{background:#333;border-radius:2px;display:block;height:3px;transition:all .3s ease;width:100%}.hamburger.open span:first-child{transform:rotate(45deg) translate(5px,5px)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(6px,-6px)}.mobile-menu-overlay{background:#00000080;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:99}.mobile-logout-btn{display:none!important}@media (max-width:768px){.mobile-menu-btn{display:flex}.mobile-menu-overlay{display:block}.top-nav-new{flex-wrap:nowrap;gap:0;padding:.5rem 1rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.nav-brand-new{flex:1 1}.brand-logo-new{border-radius:8px;height:32px;width:32px}.cross-svg-nav{height:20px;width:20px}.brand-text-new{display:flex;flex-direction:column}.brand-name{font-size:.9rem}.brand-subtitle{display:block;font-size:.65rem}.nav-links{background:#fff;border-top:none;box-shadow:2px 0 8px #00000026;flex-direction:column;gap:0;height:100vh;left:-280px;overflow-y:auto;padding:60px 0 20px;position:fixed;top:0;transition:left .3s ease;width:280px;z-index:100}.nav-links.mobile-open{left:0}.nav-link{border-bottom:1px solid #f0f0f0;border-radius:0;font-size:1rem;justify-content:flex-start;padding:1rem 1.5rem;width:100%}.nav-link:hover{background:#f8f9fa}.nav-link.active{border-radius:0}.nav-link-icon{align-items:center;display:inline-flex!important;font-size:1.25rem;justify-content:center;text-align:center;width:32px}.nav-link-text{flex:1 1}.mobile-logout-btn{background:#fff5f5!important;border-top:2px solid #f0f0f0!important;color:#e74c3c!important;display:flex!important;margin-top:auto}.nav-user,.user-name{display:none}.main-content-new{padding:1rem 1rem 80px}.welcome-card-new{border-radius:12px;padding:1.25rem}.welcome-card-new h1{font-size:1.25rem}.welcome-card-new p{font-size:.9rem;margin-bottom:1rem}.quick-stats{flex-direction:column;gap:.5rem}.stat-item{padding:.5rem .75rem}.age-groups-card{padding:1rem}.age-groups-card h2{font-size:1rem}.age-groups-grid-new{gap:.5rem;justify-content:flex-start}.age-chip{font-size:.75rem;padding:.4rem .75rem}.top-nav{flex-wrap:wrap;gap:.75rem;padding:.75rem 1rem}.nav-title{font-size:.95rem}.nav-status{justify-content:center;order:3;width:100%}.user-details{display:none}.main-content{padding:1rem}.welcome-title{font-size:1.8rem}.welcome-subtitle{font-size:1rem}.menu-buttons{align-items:center;flex-direction:column}.menu-button{max-width:280px;width:100%}.age-groups-grid{align-items:center;flex-direction:column}.age-card{justify-content:center;max-width:200px;width:100%}.dev-tools-card{padding:1rem}.dev-tools-header h2{font-size:1rem}.dev-tools-buttons{flex-direction:column;gap:.5rem}.btn-dev{justify-content:center;width:100%}}@media (max-width:380px){.top-nav-new{padding:.5rem .75rem}.brand-name{font-size:.8rem}.brand-subtitle{display:none}.main-content-new{padding:.75rem}.welcome-card-new h1{font-size:1.1rem}.age-chip{font-size:.7rem;padding:.35rem .6rem}}@media (max-width:900px){.landing-page{flex-direction:column;min-height:auto}.landing-left{min-height:auto;padding:2rem 1.5rem;width:100%}.landing-right{padding:1.5rem;width:100%}.landing-brand{align-items:center;flex-direction:row;gap:1rem;margin-bottom:1.5rem}.brand-icon.anglican-cross{height:50px;width:50px}.landing-hero h2{font-size:1.5rem}.landing-hero p{font-size:.95rem}.landing-features{flex-direction:row;flex-wrap:wrap;gap:.75rem}.feature-item{flex:1 1 45%;justify-content:center}.auth-inline{padding:0}.auth-card-inline{border-radius:12px;box-shadow:none;padding:1.5rem}}@supports (padding:max(0px)){.main-content-new,.top-nav-new{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}.main-content-new{padding-bottom:max(80px,env(safe-area-inset-bottom))}.nav-links{padding-bottom:max(20px,env(safe-area-inset-bottom))}}.error-boundary{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:2rem}.error-boundary-content{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:500px;padding:3rem;text-align:center;width:100%}.error-icon{font-size:4rem;margin-bottom:1rem}.error-boundary-content h1{color:#333;font-size:1.75rem;font-weight:600;margin-bottom:1rem}.error-boundary-content p{color:#666;font-size:1rem;line-height:1.6;margin-bottom:2rem}.error-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.error-button{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.error-button.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.error-button.primary:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.error-button.secondary{background:#f0f0f0;color:#333}.error-button.secondary:hover{background:#e0e0e0}.error-details{background:#f8f9fa;border-radius:8px;margin-top:2rem;padding:1rem;text-align:left}.error-details summary{color:#666;cursor:pointer;font-size:.875rem;margin-bottom:.5rem}.error-details pre{background:#2d3748;border-radius:4px;color:#e2e8f0;font-size:.75rem;line-height:1.5;margin:.5rem 0 0;overflow-x:auto;padding:1rem;white-space:pre-wrap;word-break:break-word}@media (max-width:480px){.error-boundary-content{padding:2rem}.error-boundary-content h1{font-size:1.5rem}.error-actions{flex-direction:column}.error-button{width:100%}}.notification{align-items:center;border-radius:8px;display:flex;font-size:.9rem;font-weight:500;gap:.75rem;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem}.notification-success{background:#e8f5e9;border:1px solid #a5d6a7;color:#2e7d32}.notification-error{background:#fdecea;border:1px solid #ef9a9a;color:#c62828}.notification-dismiss{background:none;border:none;color:inherit;cursor:pointer;flex-shrink:0;font-size:1.25rem;line-height:1;opacity:.6;padding:0}.notification-dismiss:hover{opacity:1}.form-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.registration-form-new{background:#f8f9fa;border-radius:16px;box-shadow:0 10px 40px #00000026;max-height:90vh;max-width:900px;overflow-y:auto;width:100%}.registration-form-new.inline{background:#0000;box-shadow:none;max-height:none}.form-header-new{align-items:center;background:#fff;border-bottom:1px solid #e9ecef;border-radius:16px 16px 0 0;display:flex;gap:1rem;padding:1.5rem 2rem}.form-header-icon{align-items:center;background:linear-gradient(135deg,#22c55e,#16a34a);border-radius:12px;color:#fff;display:flex;font-size:1.5rem;height:50px;justify-content:center;width:50px}.form-header-text h2{color:#333;font-size:1.5rem;font-weight:600;margin:0}.form-header-text p{color:#6c757d;font-size:.9rem;margin:.25rem 0 0}.registration-form-new form{padding:1.5rem 2rem}.form-section-new{background:#fff;border:1px solid #e9ecef;border-radius:12px;margin-bottom:1.5rem;padding:1.5rem}.form-section-new h3{align-items:center;color:#333;display:flex;font-size:1rem;font-weight:600;gap:.5rem;margin:0 0 1.25rem}.section-icon{font-size:1.1rem}.form-row{grid-gap:1.5rem;gap:1.5rem;grid-template-columns:1fr 1fr}@media (max-width:600px){.form-row{grid-template-columns:1fr}}.form-group-new{margin-bottom:1rem}.form-group-new.full-width{grid-column:1/-1}.form-group-new label{color:#495057;display:block;font-size:.85rem;font-weight:500;margin-bottom:.5rem}.form-group-new input,.form-group-new select,.form-group-new textarea{background:#fafbfc;border:1px solid #e9ecef;border-radius:8px;color:#333;font-size:.95rem;padding:.75rem 1rem;transition:all .2s;width:100%}.form-group-new input:focus,.form-group-new select:focus,.form-group-new textarea:focus{background:#fff;border-color:#20b2aa;box-shadow:0 0 0 3px #20b2aa1a;outline:none}.form-group-new input::placeholder,.form-group-new textarea::placeholder{color:#adb5bd}.form-group-new textarea{min-height:80px;resize:vertical}.input-with-icon{position:relative}.input-icon-new{font-size:1rem;left:.75rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.input-with-icon input{padding-left:2.5rem}.age-group-display{background:linear-gradient(135deg,#e8f5f4,#f0fff4);border:1px solid #20b2aa;border-radius:8px;color:#20b2aa;font-size:.95rem;font-weight:500;padding:.75rem 1rem}.warning-icon{color:#e74c3c;margin-right:.25rem}.form-actions-new{display:flex;gap:1rem;justify-content:flex-end;padding-top:1rem}.btn-cancel-new{background:#fff;border:1px solid #dee2e6;border-radius:8px;color:#6c757d;cursor:pointer;font-size:.95rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.btn-cancel-new:hover{background:#f8f9fa;border-color:#adb5bd}.btn-submit-new{align-items:center;background:linear-gradient(135deg,#20b2aa,#3cb371);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:.5rem;padding:.75rem 1.75rem;transition:all .2s}.btn-submit-new:hover{box-shadow:0 4px 12px #20b2aa4d;transform:translateY(-1px)}.btn-submit-new:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-icon-new{font-size:1rem}.registration-form{background:#fff;border-radius:10px;box-shadow:0 4px 6px #0000001a;max-height:80vh;max-width:500px;overflow-y:auto;padding:2rem;width:90%}.registration-form h2{color:#333;margin-bottom:1.5rem;text-align:center}.form-section{margin-bottom:2rem}.form-section h3{border-bottom:2px solid #eee;color:#555;margin-bottom:1rem;padding-bottom:.5rem}.registration-form label{color:#333;display:block;font-weight:700;margin-bottom:1rem}.registration-form input,.registration-form select,.registration-form textarea{border:1px solid #ddd;border-radius:4px;font-size:1rem;margin-top:.25rem;padding:.5rem;width:100%}.registration-form input:focus,.registration-form textarea:focus{border-color:#20b2aa;box-shadow:0 0 0 2px #20b2aa33;outline:none}.form-buttons{border-top:1px solid #eee;display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1rem}.form-buttons button{border:none;border-radius:4px;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:background-color .2s}.form-buttons button[type=submit]{background:linear-gradient(135deg,#20b2aa,#3cb371);color:#fff}.form-buttons button[type=submit]:hover{opacity:.9}.form-buttons button[type=submit]:disabled{background-color:#ccc;cursor:not-allowed}.form-buttons button[type=button]{background-color:#6c757d;color:#fff}.form-buttons button[type=button]:hover{background-color:#545b62}input[type=checkbox]{margin-right:.5rem;width:auto}@media (max-width:768px){.form-overlay{align-items:flex-start;padding:0}.registration-form-new{border-radius:0;max-height:100vh;max-width:100%}.registration-form-new.inline{border-radius:12px}.form-header-new{border-radius:0;padding:1rem 1.25rem}.form-header-icon{font-size:1.25rem;height:40px;width:40px}.form-header-text h2{font-size:1.2rem}.form-header-text p{font-size:.8rem}.registration-form-new form{padding:1rem 1.25rem}.form-section-new{margin-bottom:1rem;padding:1rem}.form-section-new h3{font-size:.95rem;margin-bottom:1rem}.form-row{gap:1rem;grid-template-columns:1fr}.form-group-new input,.form-group-new select,.form-group-new textarea{font-size:16px;padding:.75rem}.form-buttons-new{flex-direction:column;gap:.75rem}.form-buttons-new button{font-size:1rem;padding:1rem;width:100%}.form-buttons{flex-direction:column;gap:.75rem}.form-buttons button{padding:1rem;width:100%}}@media (max-width:380px){.form-header-new{padding:.75rem 1rem}.form-header-icon{font-size:1.1rem;height:36px;width:36px}.form-header-text h2{font-size:1.1rem}.registration-form-new form{padding:.75rem 1rem}.form-section-new{padding:.75rem}}.nametag-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.nametag-printer{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;max-height:90vh;max-width:900px;overflow-y:auto;width:95%}.nametag-header{align-items:center;background:#fff;border-bottom:2px solid #eee;display:flex;justify-content:space-between;padding:1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.nametag-header h2{color:#333;font-size:1.5rem;margin:0}.close-button{font-size:1.5rem;height:36px;width:36px}.nametag-info{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem 1.5rem;text-align:center}.nametag-info p{font-size:1rem;margin:0}.children-count{background:#fff3;border-radius:20px;display:inline-block;font-size:.9rem;margin-top:.5rem;padding:.25rem .75rem}.loading,.no-children{color:#666;padding:3rem;text-align:center}.no-children p{margin:.5rem 0}.selection-controls{align-items:center;background:#f8f9fa;border-bottom:1px solid #eee;display:flex;gap:1rem;padding:1rem 1.5rem}.select-btn{background:#fff;border:none;border-radius:8px;box-shadow:0 2px 5px #0000001a;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .2s}.select-btn:hover{box-shadow:0 4px 10px #00000026;transform:translateY(-2px)}.selected-count{color:#667eea;font-weight:600;margin-left:auto}.children-selection{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));padding:1.5rem}.child-select-card{align-items:center;border:2px solid #eee;border-radius:12px;cursor:pointer;display:flex;gap:.75rem;padding:1rem;transition:all .2s}.child-select-card:hover{background:#f8ffff;border-color:#4ecdc4}.child-select-card.selected{background:linear-gradient(135deg,#e8fff9,#fff);border-color:#4ecdc4;box-shadow:0 2px 10px #4ecdc433}.child-select-card input[type=checkbox]{cursor:pointer;height:20px;width:20px}.child-select-card .child-name{color:#333;flex:1 1;font-weight:600}.child-select-card .child-age{background:#f0f0f0;border-radius:10px;color:#666;font-size:.85rem;padding:.2rem .5rem}.action-buttons{border-top:1px solid #eee;display:flex;justify-content:center;padding:1.5rem}.preview-btn{background:linear-gradient(135deg,#4ecdc4,#44a08d);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:1rem 2rem;transition:all .3s}.preview-btn:hover:not(:disabled){box-shadow:0 5px 20px #4ecdc466;transform:translateY(-2px)}.preview-btn:disabled{cursor:not-allowed;opacity:.5}.preview-controls{background:#f8f9fa;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:1rem 1.5rem}.back-btn{background:#6c757d;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:all .2s}.back-btn:hover{background:#5a6268}.print-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .3s}.print-btn:hover{box-shadow:0 5px 20px #667eea66;transform:translateY(-2px)}.preview-container{background:#f0f0f0;padding:1.5rem}.name-tags-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}.name-tag{align-items:center;background:linear-gradient(135deg,#fff9e6,#fff);border:3px dashed #4ecdc4;border-radius:15px;display:flex;flex-direction:column;justify-content:center;min-height:180px;padding:1.5rem;text-align:center}.name-tag .tag-header{color:#666;font-size:.75rem;letter-spacing:2px;margin-bottom:5px}.name-tag .church-name{color:#667eea;font-size:.9rem;font-weight:700;margin-bottom:10px}.name-tag .child-name{color:#e74c3c;font-family:Comic Sans MS,cursive,sans-serif;font-size:1.8rem;font-weight:700;margin:10px 0;text-transform:uppercase}.name-tag .age-group{background:#4ecdc433;border-radius:20px;color:#4ecdc4;font-size:1rem;font-weight:700;padding:5px 15px}.name-tag .tag-footer{color:#999;font-size:.7rem;margin-top:10px}@media (max-width:768px){.nametag-printer{border-radius:0;height:100%;max-height:100%;width:100%}.children-selection,.name-tags-grid{grid-template-columns:1fr}.selection-controls{flex-wrap:wrap}.preview-controls{flex-direction:column;gap:.75rem}.back-btn,.print-btn{width:100%}}.list-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.children-list-new{background:#f8f9fa;border-radius:16px;max-height:90vh;max-width:1200px;overflow-y:auto;width:100%}.children-list-new.inline{background:#0000;border-radius:0;max-height:none}.children-header{align-items:center;background:#fff;border-bottom:1px solid #e9ecef;border-radius:16px 16px 0 0;display:flex;gap:1rem;padding:1.5rem 2rem}.inline .children-header{border-radius:16px;box-shadow:0 2px 8px #0000000f;margin-bottom:1rem}.header-icon{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:12px;color:#fff;display:flex;font-size:1.5rem;height:50px;justify-content:center;width:50px}.header-text h2{color:#333;font-size:1.5rem;font-weight:600;margin:0}.header-text p{color:#6c757d;font-size:.9rem;margin:.25rem 0 0}.search-filter-bar{background:#fff;display:flex;gap:1rem;padding:1rem 2rem}.inline .search-filter-bar{border-radius:12px;box-shadow:0 2px 8px #0000000f;margin-bottom:1rem}.search-box{flex:1 1;position:relative}.search-icon{font-size:1rem;left:1rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search-box input{background:#fafbfc;border:1px solid #e9ecef;border-radius:8px;font-size:.95rem;padding:.75rem 1rem .75rem 2.75rem;transition:all .2s;width:100%}.search-box input:focus{background:#fff;border-color:#20b2aa;box-shadow:0 0 0 3px #20b2aa1a;outline:none}.search-box input::placeholder{color:#adb5bd}.age-filter{background:#fff;border:1px solid #e9ecef;border-radius:8px;cursor:pointer;font-size:.95rem;min-width:180px;padding:.75rem 1rem}.age-filter:focus{border-color:#20b2aa;outline:none}.btn-print-tags{align-items:center;background:linear-gradient(135deg,#20b2aa,#1a9a93);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:.5rem;padding:.75rem 1.25rem;transition:all .2s;white-space:nowrap}.btn-print-tags:hover{background:linear-gradient(135deg,#1a9a93,#168b85);box-shadow:0 4px 12px #20b2aa4d;transform:translateY(-1px)}.btn-print-tags:active{transform:translateY(0)}.results-count{color:#6c757d;font-size:.9rem;padding:.75rem 2rem}.inline .results-count{padding:.75rem 0}.loading-state{color:#6c757d;font-size:1rem}.children-cards-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));padding:0 2rem 2rem}.inline .children-cards-grid{padding:0 0 1rem}.child-card-new{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.25rem;transition:all .2s}.child-card-new:hover{box-shadow:0 4px 12px #0000001a}.card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.75rem}.card-header h3{color:#333;font-size:1.1rem;font-weight:600;margin:0}.card-actions{display:flex;gap:.25rem}.btn-delete,.btn-edit{background:#0000;border:none;cursor:pointer;font-size:1rem;opacity:.6;padding:.25rem .5rem;transition:all .2s}.btn-edit:hover{color:#20b2aa;opacity:1}.btn-delete:hover{color:#e74c3c;opacity:1}.age-badge-new{border:1px solid;border-radius:20px;display:inline-block;font-size:.8rem;font-weight:600;margin-bottom:1rem;padding:.35rem .75rem}.card-details{display:flex;flex-direction:column;gap:.5rem}.detail-row{align-items:center;color:#495057;display:flex;font-size:.9rem;gap:.5rem}.detail-label{color:#333;font-weight:500}.detail-icon{font-size:.9rem}.allergy-warning{background:#fff3cd;border-radius:6px;color:#856404;font-size:.85rem;margin-top:.75rem;padding:.5rem .75rem}.no-results{background:#fff;border-radius:12px;color:#6c757d;margin:0 2rem 2rem;padding:3rem;text-align:center}.inline .no-results{margin:0}.children-list{background:#fff;border-radius:10px;box-shadow:0 4px 6px #0000001a;max-height:90vh;max-width:900px;overflow-y:auto;padding:1.5rem;width:95%}.list-header{align-items:center;border-bottom:2px solid #eee;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.list-header h2{color:#333;margin:0}.close-button{font-size:1.2rem;height:30px;width:30px}@media (max-width:768px){.children-list-overlay{align-items:flex-start;padding:0}.children-list-new{border-radius:0;max-height:100vh}.children-header{background:#fff;padding:1rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.header-icon-cl{height:40px;width:40px}.header-text-cl h2{font-size:1.2rem}.header-text-cl p{font-size:.8rem}.search-filter-bar{flex-direction:column;gap:.75rem;padding:1rem}.age-filter,.search-input{font-size:16px;padding:.75rem;width:100%}.children-cards-grid{gap:.75rem;grid-template-columns:1fr;padding:0 1rem 1rem}.child-card{padding:1rem}.child-card-header h3{font-size:1rem}.child-details{font-size:.85rem}.child-actions button,.results-count{font-size:.85rem;padding:.5rem 1rem}}@media (max-width:380px){.children-header{padding:.75rem}.search-filter-bar{gap:.5rem;padding:.75rem}.children-cards-grid{padding:0 .75rem .75rem}.child-card{padding:.75rem}}.edit-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:2000}.edit-modal{box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.edit-modal-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;border-radius:16px 16px 0 0;display:flex;justify-content:space-between;padding:1.25rem 1.5rem}.edit-modal-header h3{color:#333;font-size:1.25rem;margin:0}.modal-close-btn{align-items:center;background:none;border:none;border-radius:6px;color:#666;cursor:pointer;display:flex;justify-content:center;padding:.25rem;transition:all .2s}.modal-close-btn:hover{background:#e9ecef;color:#333}.edit-form{padding:1.5rem}.edit-form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.edit-form-group{margin-bottom:1rem}.edit-form-group label{color:#333;display:block;font-size:.9rem;font-weight:500;margin-bottom:.5rem}.edit-form-group input,.edit-form-group textarea{border:1px solid #ddd;border-radius:8px;font-size:1rem;padding:.75rem;transition:border-color .2s,box-shadow .2s;width:100%}.edit-form-group input:focus,.edit-form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.edit-form-group textarea{min-height:80px;resize:vertical}.edit-form-actions{border-top:1px solid #e9ecef;display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1rem}.edit-form-actions .btn-cancel{background:#f0f0f0;border:none;border-radius:8px;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem;transition:background .2s}.edit-form-actions .btn-cancel:hover{background:#e0e0e0}.edit-form-actions .btn-save{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.edit-form-actions .btn-save:hover{box-shadow:0 4px 12px #3b82f666;transform:translateY(-1px)}.edit-form-actions .btn-save:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-delete,.btn-edit{align-items:center;display:flex;justify-content:center}@media (max-width:500px){.edit-form-row{grid-template-columns:1fr}.edit-modal{margin:.5rem;max-height:calc(100vh - 1rem)}.edit-form-actions{flex-direction:column}.edit-form-actions .btn-cancel,.edit-form-actions .btn-save{width:100%}}.attendance-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.attendance-tracker-new{background:#f8f9fa;border-radius:16px;max-height:90vh;max-width:900px;overflow-y:auto;width:100%}.attendance-tracker-new.inline{background:#0000;border-radius:0;max-height:none}.attendance-header-new{align-items:center;background:#fff;border-bottom:1px solid #e9ecef;border-radius:16px 16px 0 0;display:flex;gap:1rem;padding:1.5rem 2rem}.inline .attendance-header-new{border-radius:16px;box-shadow:0 2px 8px #0000000f;margin-bottom:1rem}.header-icon-att{align-items:center;background:linear-gradient(135deg,#ff9500,#ff6b00);border-radius:12px;color:#fff;display:flex;font-size:1.5rem;height:50px;justify-content:center;width:50px}.header-text-att h2{color:#333;font-size:1.5rem;font-weight:600;margin:0}.header-text-att p{color:#6c757d;font-size:.9rem;margin:.25rem 0 0}.controls-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.5rem}.controls-card,.inline .controls-card{margin:0 0 1rem}.controls-row{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 200px;margin-bottom:1.5rem}.control-group label{color:#495057;display:block;font-size:.85rem;font-weight:500;margin-bottom:.5rem}.date-input-wrapper{position:relative}.input-icon-att{font-size:1rem;left:1rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.date-input-wrapper input{background:#fafbfc;border:1px solid #e9ecef;border-radius:8px;font-size:.95rem;padding:.75rem 1rem .75rem 2.75rem;width:100%}.date-input-wrapper input:focus{background:#fff;border-color:#ff9500;outline:none}.age-select{background:#fff;border:1px solid #e9ecef;border-radius:8px;cursor:pointer;font-size:.95rem;padding:.75rem 1rem;width:100%}.age-select:focus{border-color:#ff9500;outline:none}.stats-row{grid-gap:1rem;border-top:1px solid #e9ecef;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr);padding-top:1rem}.stat-box{text-align:center}.stat-label-att{color:#6c757d;display:block;font-size:.85rem;margin-bottom:.25rem}.stat-value{color:#333;font-size:1.5rem}.stat-value.present{color:#20b2aa}.stat-value.absent{color:#e74c3c}.children-list-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;padding:1.5rem}.children-list-card h3{color:#333;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.attendance-children-list{display:flex;flex-direction:column;gap:.75rem}.attendance-child-row{align-items:center;background:#fafbfc;border:1px solid #e9ecef;border-radius:10px;display:flex;justify-content:space-between;padding:1rem;transition:all .2s}.attendance-child-row:hover{background:#fff;border-color:#20b2aa}.child-info-att{align-items:center;display:flex;gap:1rem}.attendance-checkbox{align-items:center;background:#e9ecef;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;font-size:1rem;font-weight:600;height:36px;justify-content:center;transition:all .2s;width:36px}.attendance-checkbox.checked{background:#20b2aa;color:#fff}.child-details-att{display:flex;flex-direction:column;gap:.25rem}.child-name-att{color:#333;font-size:1rem;font-weight:600}.age-badge-att{border:1px solid;border-radius:12px;display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .6rem;width:-webkit-fit-content;width:fit-content}.status-btn{border:1px solid;border-radius:20px;cursor:pointer;font-size:.85rem;font-weight:500;padding:.5rem 1rem;transition:all .2s}.status-btn.present{background:#e0f7f4;border-color:#20b2aa;color:#20b2aa}.status-btn.absent{background:#fff;border-color:#dee2e6;color:#6c757d}.status-btn:hover{transform:scale(1.02)}.no-children-att{color:#6c757d;font-style:italic;padding:2rem;text-align:center}.save-btn-att{background:linear-gradient(135deg,#ff9500,#ff6b00);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:1.5rem;padding:1rem;transition:all .2s;width:100%}.save-btn-att:hover{box-shadow:0 4px 12px #ff95004d;transform:translateY(-1px)}.save-btn-att:disabled{cursor:not-allowed;opacity:.6;transform:none}.future-date-warning{background-color:#fff3cd;border:1px solid #ffc107;border-radius:8px;color:#856404;font-size:.9rem;margin-top:1rem;padding:.75rem 1rem;text-align:center}.loading-state-att{color:#6c757d;font-size:1rem;padding:3rem;text-align:center}@media (max-width:768px){.attendance-overlay{align-items:flex-start;padding:0}.attendance-tracker-new{border-radius:0;max-height:100vh}.controls-row{gap:1rem;grid-template-columns:1fr}.controls-row input,.controls-row select{font-size:16px;padding:.75rem}.stats-row{gap:.5rem;grid-template-columns:repeat(3,1fr)}.stat-value{font-size:1.25rem}.stat-label{font-size:.7rem}.attendance-child-row{align-items:stretch;flex-direction:column;gap:.75rem;padding:1rem}.child-info-att{justify-content:flex-start}.child-name-att{font-size:1rem}.child-age-att{font-size:.8rem}.status-buttons{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(3,1fr)}.status-btn{font-size:.85rem;padding:.75rem .5rem;text-align:center}.attendance-header-new{padding:1rem}.header-icon-att{height:40px;width:40px}.header-text-att h2{font-size:1.2rem}.header-text-att p{font-size:.8rem}.children-list-card,.controls-card{margin-bottom:1rem;padding:1rem}.section-title{font-size:.95rem}}@media (max-width:380px){.stats-row{gap:.25rem;grid-template-columns:repeat(3,1fr)}.stat-card{padding:.5rem}.stat-value{font-size:1.1rem}.status-buttons{gap:.35rem;grid-template-columns:1fr 1fr 1fr}.status-btn{font-size:.75rem;padding:.6rem .25rem}}.reports-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.reports-container{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;max-height:90vh;max-width:1200px;overflow-y:auto;width:100%}.reports-container.inline{background:#0000;box-shadow:none;max-height:none}.reports-header{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.reports-title-section{align-items:center;display:flex;gap:1rem}.reports-icon{align-items:center;background:linear-gradient(135deg,#20b2aa,#3cb371);border-radius:12px;display:flex;font-size:1.5rem;height:48px;justify-content:center;width:48px}.reports-title-text h2{color:#1a1a2e;font-size:1.4rem;font-weight:600;margin:0}.reports-title-text p{color:#666;font-size:.9rem;margin:.25rem 0 0}.export-main-btn{align-items:center;background:#fff;border:1px solid #ddd;border-radius:8px;color:#333;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:.5rem;padding:.75rem 1.25rem;transition:all .2s}.export-main-btn:hover{background:#f5f5f5;border-color:#20b2aa}.stats-cards-row{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(3,1fr);margin-bottom:1.5rem}.stat-card-new{align-items:flex-start;border-radius:16px;color:#fff;display:flex;justify-content:space-between;overflow:hidden;padding:1.5rem;position:relative}.stat-card-new.teal{background:linear-gradient(135deg,#20b2aa,#17a398)}.stat-card-new.orange{background:linear-gradient(135deg,#ff9500,#ff7b00)}.stat-card-new.purple{background:linear-gradient(135deg,#9b59b6,#8e44ad)}.stat-card-content{z-index:1}.stat-card-label{font-size:.9rem;margin-bottom:.5rem;opacity:.9}.stat-card-number{font-size:2.5rem;font-weight:700;line-height:1;margin-bottom:.25rem}.stat-card-sub{font-size:.85rem;opacity:.8}.stat-card-icon{font-size:1.5rem;opacity:.7}.reports-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr;margin-bottom:1.5rem}.report-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.report-card h3{color:#1a1a2e;font-size:1.1rem;font-weight:600;margin:0 0 1.25rem}.card-header-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.25rem}.card-header-row h3{margin:0}.period-select{background:#fff;border:1px solid #ddd;border-radius:6px;color:#333;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.age-group-list{gap:1rem}.age-group-list,.age-group-row{display:flex;flex-direction:column}.age-group-row{gap:.5rem}.age-group-info{align-items:center;display:flex;justify-content:space-between}.age-group-count,.age-group-name{color:#333;font-size:.95rem}.age-group-count{font-weight:600}.age-bar-container{background:#f0f0f0;border-radius:14px;height:28px;overflow:hidden;position:relative}.age-bar-fill{align-items:center;border-radius:14px;display:flex;height:100%;min-width:50px;padding-left:12px;transition:width .3s ease}.age-bar-percentage{color:#fff;font-size:.8rem;font-weight:600}.vertical-chart-container{padding:1rem 0}.vertical-bars{align-items:flex-end;display:flex;gap:1rem;height:200px;justify-content:space-around}.vertical-bar-item{align-items:center;display:flex;flex:1 1;flex-direction:column;max-width:80px}.vertical-bar-percentage{color:#333;font-size:.85rem;font-weight:600;margin-bottom:.5rem}.vertical-bar-wrapper{align-items:flex-end;background:#f0f0f0;border-radius:8px 8px 0 0;display:flex;height:120px;overflow:hidden;width:100%}.vertical-bar-fill{border-radius:8px 8px 0 0;min-height:5%;transition:height .3s ease;width:100%}.vertical-bar-fill.good{background:linear-gradient(0deg,#27ae60,#2ecc71)}.vertical-bar-fill.fair{background:linear-gradient(0deg,#e67e00,#ff9500)}.vertical-bar-label{color:#666;font-size:.8rem;margin-top:.5rem;text-align:center}.vertical-bar-count{color:#999;font-size:.75rem;margin-top:.25rem}.no-data{color:#999;font-style:italic;padding:2rem;text-align:center}.insights-section{margin-bottom:1.5rem}.insights-section h3{color:#1a1a2e;font-size:1.1rem;font-weight:600;margin:0 0 1rem}.insights-grid-4{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.insight-card-new{border-left:4px solid;border-radius:12px;padding:1.25rem}.insight-card-new.high-attendance{background:linear-gradient(135deg,#e8f8f5,#d5f4ee);border-left-color:#20b2aa}.insight-card-new.growing-group{background:linear-gradient(135deg,#e8f4fd,#d4ebfc);border-left-color:#3498db}.insight-card-new.attention-needed{background:linear-gradient(135deg,#fef9e7,#fef3d0);border-left-color:#f39c12}.insight-card-new.trend-alert{background:linear-gradient(135deg,#fdf2f8,#fce7f3);border-left-color:#9b59b6}.insight-title-new{font-weight:600;margin-bottom:.5rem}.insight-card-new.high-attendance .insight-title-new{color:#20b2aa}.insight-card-new.growing-group .insight-title-new{color:#3498db}.insight-card-new.attention-needed .insight-title-new{color:#e67e22}.insight-card-new.trend-alert .insight-title-new{color:#9b59b6}.insight-card-new p{font-size:.9rem;line-height:1.5;margin:0}.insight-card-new.high-attendance p{color:#16a085}.insight-card-new.growing-group p{color:#2980b9}.insight-card-new.attention-needed p{color:#d68910}.insight-card-new.trend-alert p{color:#8e44ad}.insights-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.insight-card{background:#fff;border-left:4px solid;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.25rem}.insight-card.high-attendance{background:linear-gradient(135deg,#f0fffe,#e8faf9);border-left-color:#20b2aa}.insight-card.growing-group{background:linear-gradient(135deg,#f9f0ff,#f3e8ff);border-left-color:#9b59b6}.insight-header{align-items:center;display:flex;gap:.5rem;margin-bottom:.5rem}.insight-icon{font-size:1.25rem}.insight-title{color:#333;font-weight:600}.insight-card p{color:#666;font-size:.9rem;line-height:1.5;margin:0}.users-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.5rem}.section-header-row{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding-bottom:.5rem}.section-header-row h3{color:#1a1a2e;font-size:1.1rem;font-weight:600;margin:0}.expand-btn{background:none;border:none;color:#666;cursor:pointer;font-size:1rem;padding:.25rem .5rem}.user-stats-row{border-bottom:1px solid #eee;display:flex;gap:1rem;margin:1rem 0;padding:1rem 0}.user-stat-badge{align-items:center;background:#f5f5f5;border-radius:8px;display:flex;flex-direction:column;padding:.75rem 1.25rem}.user-stat-badge.total{background:#e8f4f8}.user-stat-badge.admin{background:#fdf2f2}.user-stat-badge.teacher{background:#f0f7ff}.user-stat-badge.volunteer{background:#f0fff4}.badge-number{color:#333;font-size:1.5rem;font-weight:700}.badge-label{color:#666;font-size:.75rem;text-transform:uppercase}.users-filter{margin-bottom:1rem}.users-filter select{border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.users-list{display:flex;flex-direction:column;gap:.75rem}.user-row{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;padding:1rem;transition:all .2s}.user-row:hover{background:#f0f0f0}.user-row.inactive{opacity:.6}.user-info{gap:1rem}.user-avatar,.user-info{align-items:center;display:flex}.user-avatar{background:linear-gradient(135deg,#20b2aa,#3cb371);border-radius:50%;color:#fff;font-size:1.1rem;font-weight:600;height:40px;justify-content:center;width:40px}.user-details{display:flex;flex-direction:column}.user-name{color:#333;font-weight:600}.user-email{color:#666;font-size:.85rem}.user-actions{align-items:center;display:flex;gap:.75rem}.role-select-new{background:#fff;border:2px solid #ddd;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500;padding:.4rem .75rem}.role-select-new.admin{border-color:#e74c3c;color:#e74c3c}.role-select-new.teacher{border-color:#3498db;color:#3498db}.role-select-new.volunteer{border-color:#2ecc71;color:#2ecc71}.status-toggle{border:none;border-radius:20px;cursor:pointer;font-size:.8rem;font-weight:500;padding:.4rem .75rem}.status-toggle.active{background:#d4edda;color:#155724}.status-toggle.inactive{background:#f8d7da;color:#721c24}@media (max-width:992px){.insights-grid,.insights-grid-4,.reports-grid,.stats-cards-row{grid-template-columns:1fr}}@media (max-width:768px){.admin-dashboard{padding:1rem}.reports-header{flex-direction:column;gap:1rem;padding:1rem;text-align:center}.reports-header h1{font-size:1.3rem}.reports-title-section{flex-direction:column;gap:.5rem}.reports-header-icon{height:40px;width:40px}.date-range-selector{flex-direction:column;gap:.75rem;width:100%}.date-range-selector input,.date-range-selector select{font-size:16px;padding:.75rem;width:100%}.stats-cards-row{gap:.75rem}.stats-card{align-items:center;flex-direction:row;gap:1rem;padding:1rem}.stats-icon{font-size:1.25rem;height:40px;width:40px}.stats-card-content{text-align:left}.stats-value{font-size:1.5rem}.stats-label{font-size:.8rem}.reports-grid{gap:1rem}.report-card{border-radius:10px;padding:1rem}.report-card h3{font-size:1rem;margin-bottom:.75rem}.vertical-bars{gap:.35rem;padding:0 .5rem}.vertical-bar-item{max-width:50px}.vertical-bar-wrapper{height:80px}.vertical-bar-value{font-size:.7rem}.vertical-bar-label{font-size:.65rem}.insights-grid,.insights-grid-4{gap:.75rem}.insight-card{border-radius:8px;padding:.75rem}.insight-value{font-size:1.25rem}.insight-label{font-size:.75rem}.data-table{font-size:.8rem}.data-table td,.data-table th{padding:.5rem .75rem}.table-container{margin:0 -1rem;overflow-x:auto;padding:0 1rem}}@media (max-width:380px){.admin-dashboard,.reports-header{padding:.75rem}.reports-header h1{font-size:1.15rem}.stats-card{padding:.75rem}.stats-value{font-size:1.25rem}.report-card{padding:.75rem}.vertical-bar-item{max-width:40px}.vertical-bar-wrapper{height:70px}}.user-management-container{padding:0}.user-management-container.inline{background:#0000}.user-mgmt-header{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.user-mgmt-title-section{align-items:center;display:flex;gap:1rem}.user-mgmt-icon{align-items:center;background:linear-gradient(135deg,#f0f0f0,#e0e0e0);border-radius:12px;display:flex;font-size:1.5rem;height:48px;justify-content:center;width:48px}.user-mgmt-title-text h2{color:#1a1a2e;font-size:1.4rem;font-weight:600;margin:0}.user-mgmt-title-text p{color:#666;font-size:.9rem;margin:.25rem 0 0}.add-user-btn{align-items:center;background:linear-gradient(135deg,#20b2aa,#17a398);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;transition:all .2s}.add-user-btn:hover{background:linear-gradient(135deg,#17a398,#148f89);transform:translateY(-1px)}.loading-state{background:#fff;border-radius:12px;color:#666;font-size:1.1rem;padding:3rem;text-align:center}.filter-tabs{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem}.filter-tab{background:#fff;border:1px solid #ddd;border-radius:20px;color:#666;cursor:pointer;font-size:.9rem;padding:.6rem 1.25rem;transition:all .2s}.filter-tab.active,.filter-tab:hover{border-color:#20b2aa;color:#20b2aa}.filter-tab.active{background:linear-gradient(135deg,#e8faf9,#d5f4ee);font-weight:500}.users-table-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.users-table{border-collapse:collapse;width:100%}.users-table th{background:#fafafa;border-bottom:1px solid #eee;color:#666;font-size:.85rem;font-weight:600;letter-spacing:.5px;padding:1rem 1.25rem;text-align:left;text-transform:uppercase}.users-table td{border-bottom:1px solid #f0f0f0;padding:1rem 1.25rem;vertical-align:middle}.users-table tbody tr:hover{background:#fafafa}.users-table tbody tr:last-child td{border-bottom:none}.inactive-row{opacity:.6}.user-cell{gap:.75rem}.user-avatar-table,.user-cell{align-items:center;display:flex}.user-avatar-table{border-radius:50%;color:#fff;font-size:1rem;font-weight:600;height:40px;justify-content:center;width:40px}.user-name-table{color:#333;font-weight:500}.email-cell{align-items:center;color:#555;display:flex;gap:.5rem}.email-icon{font-size:.9rem;opacity:.7}.role-badge{align-items:center;border:1px solid;border-radius:6px;display:inline-flex;font-size:.85rem;font-weight:500;gap:.35rem;padding:.4rem .85rem}.role-badge.superadmin{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#d97706;color:#92400e;font-weight:600}.role-badge.admin{background:#f0fff4;border-color:#20b2aa;color:#20b2aa}.role-badge.teacher{background:#e8f4fd;border-color:#3498db;color:#3498db}.role-badge.volunteer{background:#fef9e7;border-color:#f39c12;color:#f39c12}.role-icon{font-size:.75rem}.status-badge-table{border-radius:20px;cursor:pointer;display:inline-block;font-size:.8rem;font-weight:500;padding:.35rem .75rem;transition:all .2s}.status-badge-table.active{background:#d4edda;color:#155724}.status-badge-table.inactive{background:#f8f8f8;color:#999}.status-badge-table:hover{transform:scale(1.05)}.status-badge-table.pending-approval{background:#fff3cd;color:#856404;cursor:default}.status-badge-table.pending-approval:hover{transform:none}.actions-cell{display:flex;gap:.5rem}.action-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1rem;height:36px;justify-content:center;transition:all .2s;width:36px}.action-btn.edit{background:#f0f7ff;color:#3498db}.action-btn.edit:hover{background:#3498db;color:#fff}.action-btn.delete{background:#fdf2f2;color:#e74c3c}.action-btn.delete:hover{background:#e74c3c;color:#fff}.action-btn.approve{background:#d4edda;color:#155724;font-weight:700}.action-btn.approve:hover{background:#28a745;color:#fff}.action-btn.reject{background:#fdf2f2;color:#e74c3c;font-weight:700}.action-btn.reject:hover{background:#e74c3c;color:#fff}.filter-tab.pending{background:#fff3cd;border-color:#ffc107;color:#856404}.filter-tab.pending.active{background:#ffc107;border-color:#ffc107;color:#212529}.no-users-cell{color:#999;font-style:italic;padding:3rem!important;text-align:center}.edit-modal{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;max-width:450px;overflow:hidden;width:90%}.modal-header{border-bottom:1px solid #eee;padding:1.25rem 1.5rem}.modal-header h3{color:#333;font-size:1.2rem}.close-modal{background:none;border:none;color:#999;cursor:pointer;font-size:1.5rem;line-height:1;padding:0}.close-modal:hover{color:#333}.modal-body{padding:1.5rem}.modal-user-info{border-bottom:1px solid #eee;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.5rem}.modal-avatar,.modal-user-info{align-items:center;display:flex}.modal-avatar{border-radius:50%;color:#fff;font-size:1.4rem;font-weight:600;height:56px;justify-content:center;width:56px}.modal-user-name{color:#333;font-size:1.1rem;font-weight:600}.modal-user-email{color:#666;font-size:.9rem}.form-group label{color:#555}.role-select-modal{background:#fff;border:1px solid #ddd;border-radius:8px;cursor:pointer;font-size:1rem;padding:.75rem 1rem;width:100%}.role-select-modal:focus{border-color:#20b2aa;outline:none}.status-toggle-group{display:flex;gap:.5rem}.status-option{background:#fff;border:1px solid #ddd;border-radius:8px;cursor:pointer;flex:1 1;font-size:.95rem;padding:.75rem;transition:all .2s}.status-option:hover{border-color:#20b2aa}.status-option.active{background:#d4edda;border-color:#28a745;color:#155724}.status-option.active.inactive{background:#f8d7da;border-color:#dc3545;color:#721c24}.modal-footer{background:#fafafa;border-top:1px solid #eee;gap:1rem;padding:1rem 1.5rem}.btn-cancel{border:1px solid #ddd}.btn-cancel,.btn-save{flex:1 1;padding:.75rem}.btn-save{background:linear-gradient(135deg,#20b2aa,#17a398);font-weight:500}.btn-save:hover{background:linear-gradient(135deg,#17a398,#148f89)}@media (max-width:992px){.users-table-container{overflow-x:auto}.users-table{min-width:700px}}@media (max-width:768px){.user-management{padding:1rem}.user-mgmt-header{flex-direction:column;gap:1rem;padding:1rem;text-align:center}.user-mgmt-title-section{flex-direction:column;gap:.5rem}.header-icon-um{height:40px;width:40px}.header-text-um h2{font-size:1.2rem}.header-text-um p{font-size:.85rem}.filter-tabs{flex-wrap:wrap;gap:.5rem;justify-content:center}.filter-tab{font-size:.8rem;padding:.5rem .75rem}.users-card{padding:1rem}.users-table-container{margin:0 -1rem;padding:0 1rem}.users-table{font-size:.85rem;min-width:600px}.users-table td,.users-table th{padding:.6rem .5rem}.action-btn{font-size:.75rem;padding:.35rem .5rem}.user-role-badge,.user-status-badge{font-size:.7rem;padding:3px 8px}.modal-overlay{align-items:flex-start;padding:0}.edit-user-modal{border-radius:0;max-height:100vh;max-width:100%;min-height:100vh}.modal-header{background:#fff;padding:1rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.modal-body{padding:1rem 1rem 100px}.form-group label{font-size:.9rem}.form-group input,.form-group select{font-size:16px;padding:.75rem}.modal-footer{background:#fff;border-top:1px solid #e9ecef;bottom:0;left:0;padding:1rem;position:fixed;right:0}.btn-cancel,.btn-save{flex:1 1;padding:.875rem}}@media (max-width:380px){.user-management,.user-mgmt-header{padding:.75rem}.filter-tab{font-size:.75rem;padding:.4rem .6rem}.users-card{padding:.75rem}.users-table{font-size:.8rem}}.teaching-calendar{background:#f0f2f5;min-height:calc(100vh - 70px);padding:24px}.teaching-calendar.inline{padding:24px}.calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.calendar-title-section{align-items:center;display:flex;gap:16px}.calendar-icon{align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-radius:12px;color:#fff;display:flex;font-size:24px;height:48px;justify-content:center;width:48px}.calendar-title-text h2{color:#1a1a2e;font-size:24px;font-weight:600;margin:0}.calendar-title-text p{color:#666;font-size:14px;margin:4px 0 0}.btn-add-schedule{align-items:center;background:linear-gradient(135deg,#20b2aa,#3cb371);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:12px 24px;transition:transform .2s,box-shadow .2s}.btn-add-schedule:hover{box-shadow:0 4px 12px #20b2aa4d;transform:translateY(-2px)}.calendar-controls{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.view-toggle{background:#fff;border:1px solid #e0e0e0;border-radius:8px;display:flex;overflow:hidden}.view-btn{background:#0000;border:none;color:#666;cursor:pointer;font-size:14px;padding:10px 20px;transition:all .2s}.view-btn.active{background:#f0f2f5;color:#1a1a2e;font-weight:600}.view-btn:hover:not(.active){background:#f9f9f9}.sundays-list{display:flex;flex-direction:column;gap:16px}.sunday-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;overflow:hidden}.sunday-card.past{opacity:.7}.sunday-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;gap:16px;padding:20px}.sunday-info{flex:1 1}.sunday-info h3{color:#1a1a2e;font-size:16px;font-weight:600;margin:0}.btn-edit-sunday{align-items:center;background:#0000;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;height:36px;justify-content:center;transition:background .2s;width:36px}.btn-edit-sunday:hover{background:#f5f5f5}.sunday-content{padding:20px}.lesson-info{margin-bottom:16px}.lesson-title{color:#1a1a2e;font-size:18px;font-weight:600;margin:0 0 8px}.lesson-description{color:#666;font-size:14px;line-height:1.5;margin:0 0 12px}.age-group-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.age-tag{background:#e8f5f4;border-radius:16px;color:#20b2aa;font-size:12px;font-weight:500;padding:4px 12px}.material-link{align-items:center;color:#20b2aa;display:inline-flex;font-size:14px;gap:6px;text-decoration:none}.material-link:hover{text-decoration:underline}.teachers-section{border-top:1px solid #f0f0f0;display:flex;flex-direction:column;gap:12px;padding-top:16px}.service-teachers{align-items:flex-start;display:flex;gap:12px}.service-time{color:#666;font-size:13px;min-width:100px}.teacher-names{display:flex;flex-wrap:wrap;gap:8px}.teacher-name{background:#f5f5f5;border-radius:16px;color:#333;font-size:13px;padding:4px 12px}.no-schedule{padding:20px;text-align:center}.no-schedule-text{color:#999;margin:0 0 12px}.btn-add-schedule-link{background:none;border:none;color:#7c3aed;cursor:pointer;font-size:14px}.btn-add-schedule-link:hover{text-decoration:underline}.schedule-modal{padding:0}.schedule-form{padding:24px}.schedule-form .form-group{margin-bottom:20px}.schedule-form label{color:#555;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.schedule-form input[type=date],.schedule-form input[type=text],.schedule-form textarea{border:1px solid #e0e0e0;border-radius:8px;font-size:14px;padding:12px 16px;transition:border-color .2s;width:100%}.schedule-form input:focus,.schedule-form textarea:focus{border-color:#20b2aa;outline:none}.material-input-group{display:flex;gap:12px}.material-input-group input{flex:1 1}.btn-upload{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;font-size:14px;gap:6px;padding:12px 20px;transition:background .2s}.btn-upload:hover{background:#f5f5f5}.btn-upload:disabled{cursor:not-allowed;opacity:.7}.uploaded-file-info{align-items:center;background:#e8f5e9;border-radius:6px;color:#2e7d32;display:flex;font-size:13px;justify-content:space-between;margin-top:8px;padding:8px 12px}.btn-clear-file{background:none;border:none;border-radius:4px;color:#d32f2f;cursor:pointer;font-size:12px;padding:4px 8px;transition:background .2s}.btn-clear-file:hover{background:#d32f2f1a}.form-hint{color:#999;display:block;font-size:12px;margin-top:6px}.age-group-selector{display:flex;flex-wrap:wrap;gap:10px}.age-group-btn{background:#fff;border:1px solid #e0e0e0;border-radius:24px;cursor:pointer;font-size:14px;padding:10px 20px;transition:all .2s}.age-group-btn:hover{border-color:#20b2aa}.age-group-btn.selected{background:#e8f5f4;border-color:#20b2aa;color:#20b2aa}@media (max-width:768px){.teaching-calendar{padding:1rem}.calendar-header{align-items:stretch;flex-direction:column;gap:1rem;padding:1rem}.calendar-header h2{font-size:1.2rem;text-align:center}.calendar-controls{flex-direction:column;gap:.75rem;width:100%}.calendar-controls select{font-size:16px;padding:.75rem;width:100%}.service-tabs{display:flex;width:100%}.service-tab{flex:1 1;font-size:.85rem;padding:.6rem .5rem}.add-schedule-btn{padding:.75rem;width:100%}.calendar-content{padding:.75rem}.calendar-grid{gap:.75rem}.sunday-card{border-radius:10px}.sunday-header{align-items:flex-start;flex-direction:column;gap:.5rem;padding:.75rem}.sunday-date{font-size:1rem}.special-date-badge{font-size:.7rem;padding:3px 8px}.teachers-assignment{gap:.5rem;grid-template-columns:1fr;padding:.75rem}.service-teachers{flex-direction:column;gap:6px;padding:.75rem}.teacher-badge{font-size:.8rem;padding:4px 10px}.lesson-section{padding:.75rem}.lesson-title{font-size:.9rem}.modal-overlay{align-items:flex-start;padding:0}.add-schedule-modal{border-radius:0;max-height:100vh;min-height:100vh}.modal-header{background:#fff;padding:1rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.modal-body{padding:1rem 1rem 100px}.form-group input,.form-group select,.form-group textarea{font-size:16px;padding:.75rem}.modal-footer{background:#fff;border-top:1px solid #e9ecef;bottom:0;left:0;padding:1rem;position:fixed;right:0}.modal-footer button{flex:1 1;padding:.875rem}}@media (max-width:380px){.calendar-header,.teaching-calendar{padding:.75rem}.calendar-header h2{font-size:1.1rem}.service-tab{font-size:.8rem;padding:.5rem}.sunday-header{padding:.6rem}.sunday-date{font-size:.95rem}.lesson-section,.teachers-assignment{padding:.6rem}}.teaching-rota{background:#f0f2f5;min-height:calc(100vh - 70px);padding:24px}.teaching-rota.inline{padding:24px}.rota-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.rota-title-section{gap:16px}.rota-icon,.rota-title-section{align-items:center;display:flex}.rota-icon{background:linear-gradient(135deg,#92400e,#78350f);border-radius:12px;color:#fff;font-size:24px;height:48px;justify-content:center;width:48px}.rota-title-text h2{color:#1a1a2e;font-size:24px;font-weight:600;margin:0}.rota-title-text p{color:#666;font-size:14px;margin:4px 0 0}.btn-assign-teachers{align-items:center;background:linear-gradient(135deg,#20b2aa,#3cb371);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:12px 24px;transition:transform .2s,box-shadow .2s}.btn-assign-teachers:hover{box-shadow:0 4px 12px #20b2aa4d;transform:translateY(-2px)}.rota-controls{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.month-navigation{gap:16px}.month-navigation,.nav-arrow{align-items:center;display:flex}.nav-arrow{background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:20px;height:36px;justify-content:center;transition:background .2s;width:36px}.nav-arrow:hover{background:#f5f5f5}.month-label{color:#1a1a2e;font-size:16px;font-weight:600;min-width:160px;text-align:center}.age-group-filter select{-webkit-appearance:none;appearance:none;background:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23666' d='M6 8 1 3h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:14px;padding:10px 36px 10px 16px}.sundays-rota-list{display:flex;flex-direction:column;gap:16px}.sunday-rota-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;overflow:hidden}.sunday-rota-card.past{opacity:.7}.sunday-rota-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;gap:16px;padding:20px}.date-badge{align-items:center;background:#f0f7f6;border-radius:12px;display:flex;flex-direction:column;height:56px;justify-content:center;width:56px}.date-month{color:#666;font-size:11px;text-transform:uppercase}.date-day{color:#20b2aa;font-size:24px;font-weight:700}.sunday-rota-info{flex:1 1}.sunday-rota-info h3{color:#1a1a2e;font-size:16px;font-weight:600;margin:0}.classes-count{color:#999;font-size:13px}.sunday-rota-content{padding:20px}.assignments-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.assignment-card{background:#f9f9f9;border-radius:10px;padding:16px}.assignment-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.age-group-label{background:#e8f5f4;border-radius:16px;color:#20b2aa;font-size:14px;font-weight:600;padding:4px 12px}.btn-delete-assignment{background:none;border:none;border-radius:4px;color:#999;cursor:pointer;font-size:18px;height:24px;width:24px}.btn-delete-assignment:hover{background:#fee;color:#e74c3c}.assignment-services{display:flex;flex-direction:column;gap:12px}.service-assignment{align-items:center;display:flex;gap:12px}.service-label{color:#666;font-size:12px;min-width:90px}.assigned-teachers{display:flex;flex-wrap:wrap;gap:6px}.teacher-avatar-small{border-radius:50%;display:flex;font-size:11px;font-weight:600;height:32px;width:32px}.teacher-avatar-small,.teacher-name-badge{align-items:center;color:#fff;cursor:default;justify-content:center}.teacher-name-badge{border-radius:16px;display:inline-flex;font-size:12px;font-weight:500;padding:4px 10px;white-space:nowrap}.no-assignments{padding:30px;text-align:center}.no-assignments-text{color:#999;margin:0 0 12px}.btn-assign-link{background:none;border:none;color:#7c3aed;cursor:pointer;font-size:14px}.btn-assign-link:hover{text-decoration:underline}.modal-content{background:#fff;border-radius:16px;max-height:90vh;max-width:700px;overflow-y:auto;width:100%}.assign-modal{padding:0}.modal-header{border-bottom:1px solid #e0e0e0;padding:20px 24px}.modal-header h3{color:#1a1a2e;font-size:20px}.modal-close{align-items:center;background:none;color:#666;display:flex;font-size:24px;height:32px;justify-content:center;width:32px}.modal-close:hover{color:#333}.selected-date-info{align-items:center;background:#f0f7f6;color:#20b2aa;display:flex;font-size:14px;font-weight:500;gap:10px;padding:16px 24px}.assign-form{padding:24px}.assign-form .form-group{margin-bottom:20px}.assign-form label{color:#555;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.assign-form select{background:#fff;border:1px solid #e0e0e0;border-radius:8px;font-size:14px;padding:12px 16px;width:100%}.assign-form select:focus{border-color:#20b2aa;outline:none}.teachers-assignment{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:20px}.service-column{background:#faf5ff;border-radius:12px;padding:16px}.service-header{align-items:center;color:#7c3aed;display:flex;font-size:14px;font-weight:600;gap:8px;margin-bottom:12px}.service-icon{font-size:16px}.teachers-list{display:flex;flex-direction:column;gap:8px;max-height:250px;overflow-y:auto}.teacher-checkbox{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:10px;padding:8px;transition:background .2s}.teacher-checkbox:hover{background:#7c3aed1a}.teacher-checkbox input[type=checkbox]{accent-color:#7c3aed;height:18px;width:18px}.teacher-checkbox span{color:#333;font-size:14px}.modal-actions{border-top:1px solid #e0e0e0;display:flex;gap:12px;justify-content:flex-end;margin-top:20px;padding-top:20px}.btn-cancel{background:#fff;border:1px solid #e0e0e0;font-size:14px;transition:background .2s}.btn-cancel:hover{background:#f5f5f5}.btn-save{background:linear-gradient(135deg,#20b2aa,#3cb371);font-size:14px;transition:transform .2s,box-shadow .2s}.btn-save:hover{box-shadow:0 4px 12px #20b2aa4d;transform:translateY(-1px)}.loading-spinner{color:#666;font-size:16px;padding:60px;text-align:center}@media (max-width:768px){.teaching-rota{padding:1rem}.rota-header{align-items:stretch;flex-direction:column;gap:1rem;padding:1rem}.rota-header h2{font-size:1.2rem;text-align:center}.rota-controls{flex-direction:column;gap:.75rem;width:100%}.rota-controls select{font-size:16px;padding:.75rem;width:100%}.service-tabs{display:flex;width:100%}.service-tab{flex:1 1;font-size:.85rem;padding:.6rem .5rem}.add-assignment-btn{padding:.75rem;width:100%}.rota-content{padding:.75rem}.assignments-grid{gap:.75rem;grid-template-columns:1fr}.assignment-card{border-radius:10px}.assignment-header{align-items:flex-start;flex-direction:column;gap:.5rem;padding:.75rem}.teachers-assignment{gap:.5rem;grid-template-columns:1fr;padding:.75rem}.teacher-select{font-size:16px;padding:.75rem}.modal-overlay{align-items:flex-start;padding:0}.add-assignment-modal{border-radius:0;max-height:100vh;min-height:100vh}.modal-header{background:#fff;padding:1rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.modal-body{padding:1rem 1rem 100px}.form-group input,.form-group select{font-size:16px;padding:.75rem}.modal-footer{background:#fff;border-top:1px solid #e9ecef;bottom:0;left:0;padding:1rem;position:fixed;right:0}.modal-footer button{flex:1 1;padding:.875rem}}@media (max-width:380px){.rota-header,.teaching-rota{padding:.75rem}.rota-header h2{font-size:1.1rem}.service-tab{font-size:.8rem;padding:.5rem}.assignment-header,.teachers-assignment{padding:.6rem}}.events-container{margin:0 auto;max-width:1400px;padding:20px}.events-container.inline{background:#f8f9fa;min-height:100%}.events-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:20px}.events-title-section{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.events-icon{align-items:center;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:12px;color:#fff;display:flex;height:48px;justify-content:center;width:48px}.events-title-section h2{align-items:center;color:#2c3e50;display:flex;font-size:1.75rem;gap:10px;margin:0}.events-subtitle{color:#7f8c8d;font-size:.9rem;margin:5px 0 0}.events-actions{align-items:center;display:flex;flex-wrap:wrap;gap:15px}.events-filter{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;overflow:hidden}.filter-btn{background:#fff;border:none;color:#7f8c8d;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .2s}.filter-btn:hover{background:#f1f2f6}.create-event-btn,.filter-btn.active{background:#f39c12;color:#fff}.create-event-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s}.create-event-btn:hover{background:#e67e22;transform:translateY(-1px)}.event-types-legend{background:#fff;border-radius:10px;box-shadow:0 2px 4px #0000000d;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:25px;padding:15px}.legend-item{align-items:center;color:#5a6978;display:flex;font-size:.85rem;gap:8px}.legend-dot{border-radius:50%;flex-shrink:0;height:12px;width:12px}.events-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.event-card{background:#fff;border-left:4px solid #f39c12;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden;transition:all .3s ease}.event-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-2px)}.event-card.past{opacity:.7}.event-card.past:hover{opacity:.85}.event-card-header{align-items:center;background:linear-gradient(135deg,#f8f9fa,#fff);border-bottom:1px solid #f1f2f6;display:flex;justify-content:space-between;padding:15px}.event-type-badge{align-items:center;border-radius:20px;color:#fff;display:flex;font-size:.8rem;font-weight:600;gap:6px;padding:6px 12px}.event-type-icon{align-items:center;display:flex;justify-content:center}.event-type-icon,.event-type-icon svg{height:16px;width:16px}.event-admin-actions{display:flex;gap:5px}.event-delete-btn,.event-edit-btn{background:#f1f2f6;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;height:32px;transition:all .2s;width:32px}.event-edit-btn:hover{background:#3498db}.event-delete-btn:hover{background:#e74c3c}.event-card-body{padding:15px}.event-title{color:#2c3e50;font-size:1.1rem;font-weight:600;margin:0 0 8px}.event-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#7f8c8d;display:-webkit-box;font-size:.9rem;line-height:1.4;margin:0 0 15px;overflow:hidden}.event-details{display:flex;flex-direction:column;gap:8px}.event-detail{color:#5a6978;font-size:.85rem;gap:8px}.detail-icon,.event-detail{align-items:center;display:flex}.detail-icon{color:#7f8c8d;height:18px;justify-content:center;opacity:.7;width:18px}.detail-icon svg{height:16px;width:16px}.event-card-footer{background:#f8f9fa;border-top:1px solid #f1f2f6;display:flex;gap:10px;padding:15px}.event-action-btn{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:.9rem;font-weight:600;padding:10px 15px;text-align:center;transition:all .2s}.event-action-btn.register{background:#27ae60;color:#fff}.event-action-btn.register:hover{background:#219a52}.event-action-btn.registered{background:#f1f2f6;border:2px solid #27ae60;color:#27ae60}.event-action-btn.registered:hover{background:#fff5f5;border-color:#e74c3c;color:#e74c3c}.event-action-btn:disabled{background:#bdc3c7;color:#7f8c8d;cursor:not-allowed}.event-attendance-btn{background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 15px;transition:all .2s}.event-attendance-btn:hover{background:#2980b9}.no-events{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;grid-column:1/-1;padding:60px 20px;text-align:center}.no-events-icon{align-items:center;color:#bdc3c7;display:flex;height:80px;justify-content:center;margin:0 auto 15px;width:80px}.no-events-icon svg{height:60px;width:60px}.no-events p{color:#7f8c8d;font-size:1.1rem;margin-bottom:20px}.no-events-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.create-first-event-btn{background:#f39c12;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s}.create-first-event-btn:hover{background:#e67e22}.seed-events-btn{background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 24px;transition:all .2s}.seed-events-btn:hover{background:#2980b9}.events-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:100px 20px}.loading-spinner{animation:spin 1.5s linear infinite;color:#f39c12;margin-bottom:15px}.loading-spinner,.loading-spinner svg{height:60px;width:60px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.event-form-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.modal-header{align-items:center;background:#fff;border-bottom:1px solid #f1f2f6;display:flex;justify-content:space-between;padding:20px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.modal-header h3{color:#2c3e50;font-size:1.3rem;margin:0}.modal-close{background:#f1f2f6;border:none;border-radius:50%;color:#7f8c8d;cursor:pointer;font-size:1.5rem;height:36px;transition:all .2s;width:36px}.modal-close:hover{background:#e74c3c;color:#fff}.event-form{padding:20px}.form-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.form-group,.form-row{margin-bottom:15px}.form-group label{color:#5a6978;font-size:.9rem;font-weight:500;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{border:2px solid #e9ecef;border-radius:8px;box-sizing:border-box;font-size:.95rem;padding:10px 12px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#f39c12;outline:none}.form-group textarea{min-height:80px;resize:vertical}.checkbox-group label{align-items:center;cursor:pointer;display:flex;gap:10px}.checkbox-group input[type=checkbox]{cursor:pointer;height:18px;width:18px}.form-actions{border-top:1px solid #f1f2f6;display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:20px}.btn-cancel{background:#f1f2f6;border:none;border-radius:8px;color:#7f8c8d;cursor:pointer;font-size:.95rem;font-weight:600;padding:12px 24px;transition:all .2s}.btn-cancel:hover{background:#e9ecef}.btn-save{background:#f39c12;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:12px 24px;transition:all .2s}.btn-save:hover{background:#e67e22}.attendance-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:800px;overflow-y:auto;width:100%}.attendance-summary{background:linear-gradient(135deg,#f8f9fa,#fff);border-bottom:1px solid #f1f2f6;display:flex;gap:30px;justify-content:center;padding:20px}.summary-stat{text-align:center}.stat-value{color:#2c3e50;display:block;font-size:2rem;font-weight:700}.stat-label{color:#7f8c8d;font-size:.85rem}.attendance-list{padding:20px}.no-registrations{color:#7f8c8d;padding:40px;text-align:center}.attendance-table{border-collapse:collapse;width:100%}.attendance-table td,.attendance-table th{border-bottom:1px solid #f1f2f6;padding:12px 15px;text-align:left}.attendance-table th{background:#f8f9fa;color:#5a6978;font-size:.85rem;font-weight:600;text-transform:uppercase}.attendance-table tr.attended{background:#f0fff4}.attendance-toggle{border:none;border-radius:20px;cursor:pointer;font-size:.85rem;font-weight:600;padding:6px 12px;transition:all .2s}.attendance-toggle.present{background:#27ae60;color:#fff}.attendance-toggle.absent{background:#f1f2f6;color:#7f8c8d}.attendance-toggle:hover{transform:scale(1.05)}@media (max-width:768px){.events-header{align-items:stretch;flex-direction:column}.events-actions{justify-content:space-between}.events-grid{grid-template-columns:1fr}.attendance-modal,.event-form-modal{border-radius:0;max-height:100vh}.attendance-summary{flex-wrap:wrap;gap:20px}.attendance-table{font-size:.85rem}.attendance-table td,.attendance-table th{padding:8px 10px}}@media (max-width:480px){.events-container{padding:15px}.event-types-legend{gap:8px;padding:10px}.legend-item{font-size:.75rem}.legend-dot{height:10px;width:10px}.form-row{grid-template-columns:1fr}}.capacity-detail{align-items:flex-start!important;flex-direction:column;gap:4px!important}.capacity-bar{background:#e9ecef;border-radius:3px;height:6px;overflow:hidden;width:100%}.capacity-fill{border-radius:3px;height:100%;transition:width .3s ease}.capacity-text{color:#7f8c8d;font-size:.8rem}.event-action-btn.register-children{background:#9b59b6;color:#fff}.event-action-btn.register-children:hover{background:#8e44ad}.event-action-btn.register-children:disabled{background:#bdc3c7;color:#7f8c8d;cursor:not-allowed}.child-registration-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.modal-subheader{align-items:center;border-bottom:1px solid #f1f2f6;display:flex;gap:15px;padding:0 20px 15px}.age-group-badge{background:#9b59b6;border-radius:20px;color:#fff;font-size:.85rem;font-weight:500;padding:6px 12px}.capacity-info{color:#7f8c8d;font-size:.9rem}.available-children-section,.registered-children-section{padding:15px 20px}.registered-children-section{background:#f8f9fa;border-bottom:1px solid #f1f2f6}.available-children-section h4,.registered-children-section h4{color:#2c3e50;font-size:.95rem;margin:0 0 12px}.section-title{border-top:1px solid #f1f2f6;color:#2c3e50;font-size:.95rem;margin:20px 0 12px;padding-top:15px}.no-children-msg{color:#95a5a6;font-size:.9rem;font-style:italic;margin:0}.registered-children-list{display:flex;flex-wrap:wrap;gap:8px}.registered-child-item{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:20px;display:flex;font-size:.9rem;gap:8px;padding:8px 12px}.registered-child-item .child-name{color:#2c3e50}.remove-child-btn{align-items:center;background:#e74c3c;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:20px;justify-content:center;line-height:1;transition:all .2s;width:20px}.remove-child-btn:hover{background:#c0392b;transform:scale(1.1)}.available-children-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}.available-child-item{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:8px;display:flex;justify-content:space-between;padding:10px 12px;transition:all .2s}.available-child-item:hover{background:#f8f9ff;border-color:#3498db}.child-info{display:flex;flex-direction:column;gap:2px}.child-info .child-name{color:#2c3e50;font-weight:500}.child-info .child-age{color:#95a5a6;font-size:.8rem}.add-child-btn{background:#27ae60;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:600;padding:6px 14px;transition:all .2s}.add-child-btn:hover{background:#219a52}.add-child-btn:disabled{background:#bdc3c7;cursor:not-allowed}.modal-footer{border-top:1px solid #f1f2f6;display:flex;justify-content:flex-end;padding:15px 20px}.btn-done{background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:10px 24px;transition:all .2s}.btn-done:hover{background:#2980b9}@media (max-width:768px){.events-container{padding:1rem}.events-header{align-items:stretch;flex-direction:column;gap:1rem}.events-title-section h2{font-size:1.3rem}.events-subtitle{font-size:.85rem}.events-actions{flex-direction:column;gap:.75rem}.events-filter{display:flex;width:100%}.filter-btn{flex:1 1;font-size:.85rem;padding:.6rem .5rem}.create-event-btn{justify-content:center;padding:.75rem;width:100%}.event-types-legend{flex-wrap:wrap;gap:.75rem;padding:.75rem}.legend-item{font-size:.75rem}.events-grid{gap:1rem;grid-template-columns:1fr}.event-card{border-radius:10px}.event-card-header{padding:.75rem 1rem}.event-type-badge{font-size:.75rem;padding:4px 10px}.event-admin-actions{gap:.25rem}.event-delete-btn,.event-edit-btn{font-size:.9rem;padding:.35rem .5rem}.event-card-body{padding:1rem}.event-title{font-size:1.1rem}.event-description{font-size:.85rem}.event-details{gap:.5rem}.event-detail{font-size:.85rem}.event-card-footer{flex-direction:column;gap:.5rem;padding:.75rem 1rem}.event-action-btn{justify-content:center;padding:.75rem;width:100%}.modal-overlay{align-items:flex-start;padding:0}.attendance-modal,.child-registration-modal,.event-form-modal{border-radius:0;max-height:100vh;max-width:100%;min-height:100vh}.modal-header{background:#fff;padding:1rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.modal-header h3{font-size:1.1rem}.modal-close{font-size:1.25rem;height:32px;width:32px}.form-body{padding:1rem 1rem 100px}.form-row{gap:1rem;grid-template-columns:1fr}.form-group label{font-size:.9rem}.form-group input,.form-group select,.form-group textarea{font-size:16px;padding:.75rem}.form-actions{background:#fff;border-top:1px solid #e9ecef;bottom:0;flex-direction:column;gap:.75rem;left:0;padding:1rem;position:fixed;right:0;z-index:10}.btn-cancel,.btn-submit{padding:.875rem;width:100%}.attendance-content{padding:1rem}.attendance-summary{flex-direction:column;gap:1rem}.summary-stat{padding:.75rem}.attendance-table-container{margin:0 -1rem;overflow-x:auto;padding:0 1rem}.attendance-table{font-size:.8rem;min-width:400px}.attendance-table td,.attendance-table th{padding:.6rem .5rem}.child-registration-modal{min-height:100vh}.modal-subheader{flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem}.available-children-section,.registered-children-section{padding:1rem}.registered-children-list{gap:.5rem}.registered-child-item{font-size:.85rem;padding:.5rem .75rem}.available-children-list{max-height:50vh}.available-child-item{padding:.75rem}.add-child-btn{font-size:.8rem;padding:.5rem 1rem}.modal-footer{background:#fff;border-top:1px solid #e9ecef;bottom:0;padding:1rem;position:-webkit-sticky;position:sticky}.btn-done{padding:.875rem;width:100%}}@media (max-width:380px){.events-container{padding:.75rem}.events-title-section h2{font-size:1.15rem}.event-types-legend{gap:.5rem;padding:.5rem}.legend-item{font-size:.7rem}.event-card-body{padding:.75rem}.event-title{font-size:1rem}.form-group input,.form-group select,.form-group textarea{padding:.6rem}}.auth-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;bottom:0;left:0;position:fixed;right:0;top:0;z-index:2000}.auth-inline,.auth-overlay{align-items:center;display:flex;justify-content:center}.auth-inline{height:100%;padding:2rem;width:100%}.auth-card-inline{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0000001a;max-width:420px;padding:2.5rem;width:100%}.auth-header-inline{margin-bottom:1.5rem}.auth-header-inline h2{color:#333;font-size:1.75rem;font-weight:600;margin:0}.form-group input,.form-group select{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:10px;padding:.85rem 1rem}.form-group input:focus,.form-group select:focus{background:#fff;border-color:#20b2aa;box-shadow:0 0 0 3px #20b2aa1a}.form-options-auth{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.25rem}.remember-me-auth{align-items:center;color:#666;cursor:pointer;display:flex;font-size:.9rem;gap:8px}.remember-me-auth input[type=checkbox]{accent-color:#20b2aa;height:16px;width:16px}.auth-button-primary{background:linear-gradient(135deg,#20b2aa,#3cb371);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.5rem;padding:.95rem;transition:all .3s;width:100%}.auth-button-primary:hover:not(:disabled){box-shadow:0 6px 20px #20b2aa59;transform:translateY(-2px)}.auth-button-primary:active:not(:disabled){transform:translateY(0)}.auth-button-primary:disabled{cursor:not-allowed;opacity:.6}.auth-container{animation:slideIn .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;max-height:90vh;max-width:450px;overflow-y:auto;padding:2rem;width:90%}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.auth-header{align-items:center;border-bottom:2px solid #eee;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.auth-header h2{color:#333;font-size:1.8rem;margin:0}.close-button{align-items:center;background:#dc3545;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.3rem;height:32px;justify-content:center;transition:all .2s;width:32px}.close-button:hover{background:#c82333;transform:rotate(90deg)}.auth-description{color:#666;font-size:.95rem;margin-bottom:1.5rem;text-align:center}.form-group{margin-bottom:1.25rem}.form-group label{color:#333;display:block;font-size:.95rem;font-weight:600;margin-bottom:.5rem}.form-group input,.form-group select{border:2px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:1rem;padding:.75rem;transition:all .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#007cba;box-shadow:0 0 0 3px #007cba1a;outline:none}.form-group small{color:#666;display:block;font-size:.85rem;line-height:1.4;margin-top:.4rem}.auth-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.05rem;font-weight:700;margin-top:1rem;padding:.9rem;transition:all .3s;width:100%}.auth-button:hover:not(:disabled){box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.auth-button:active:not(:disabled){transform:translateY(0)}.auth-button:disabled{cursor:not-allowed;opacity:.6}.auth-divider{align-items:center;color:#aaa;display:flex;font-size:.85rem;gap:.75rem;margin:1rem 0}.auth-divider:after,.auth-divider:before{background:#e0e0e0;content:"";flex:1 1;height:1px}.auth-button-google{align-items:center;background:#fff;border:1.5px solid #e0e0e0;border-radius:10px;box-shadow:0 1px 3px #00000014;color:#3c4043;cursor:pointer;display:flex;font-family:inherit;font-size:.95rem;font-weight:600;gap:.6rem;justify-content:center;padding:.85rem;transition:all .2s;width:100%}.auth-button-google:hover:not(:disabled){background:#f8f8f8;border-color:#c6c6c6;box-shadow:0 2px 8px #0000001f}.auth-button-google:disabled{cursor:not-allowed;opacity:.6}.forgot-password-link{background:none;border:none;color:#007cba;cursor:pointer;font-size:.9rem;margin-bottom:.5rem;padding:0;text-align:left;text-decoration:underline}.forgot-password-link:hover{color:#005a87}.auth-footer{border-top:1px solid #eee;color:#666;margin-top:1.5rem;padding-top:1rem;text-align:center}.auth-footer span{margin-right:.5rem}.link-button{background:none;border:none;color:#007cba;cursor:pointer;font-size:1rem;font-weight:600;padding:0;text-decoration:underline}.link-button:hover{color:#005a87}.user-profile{align-items:center;background:#ffffffe6;border-radius:20px;box-shadow:0 4px 15px #0000001a;display:flex;gap:1rem;margin:1rem 0;padding:.75rem 1.25rem;position:relative;z-index:1}.user-info{flex:1 1;text-align:left}.user-name{color:#2c3e50;font-size:1.05rem;font-weight:700;margin-bottom:.2rem}.user-role{color:#666;font-size:.85rem;text-transform:capitalize}.user-role-badge{border-radius:12px;display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.5px;padding:.2rem .6rem;text-transform:uppercase}.user-role-badge.admin{background:#e74c3c;color:#fff}.user-role-badge.teacher{background:#3498db;color:#fff}.user-role-badge.volunteer{background:#2ecc71;color:#fff}.logout-button{background:#dc3545;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:700;padding:.5rem 1rem;transition:all .2s}.logout-button:hover{background:#c82333;transform:translateY(-2px)}@media (max-width:768px){.auth-container{border-radius:12px;max-width:100%;padding:1.5rem;width:95%}.auth-inline{padding:1rem}.auth-card-inline{border-radius:12px;padding:1.5rem}.auth-header-inline h2{font-size:1.4rem;margin-bottom:.25rem}.auth-header-inline p{font-size:.9rem}.auth-header h2{font-size:1.5rem}.form-group label{font-size:.9rem}.form-group input,.form-group select{font-size:16px;padding:.75rem}.auth-button-primary{font-size:1rem;padding:.875rem}.auth-link-btn{font-size:.9rem;padding:.75rem}.user-profile{flex-direction:column}.user-info,.user-profile{text-align:center}.auth-error,.auth-success{font-size:.85rem;margin-bottom:1rem;padding:.75rem 1rem}}@media (max-width:380px){.auth-card-inline{padding:1.25rem}.auth-header-inline h2{font-size:1.25rem}.form-group input,.form-group select{padding:.7rem}.auth-button-primary{padding:.75rem}}.pending-approval-message{padding:1.5rem 0;text-align:center}.pending-icon{font-size:3.5rem;margin-bottom:1rem}.pending-approval-message h3{color:#333;font-size:1.25rem;font-weight:600;margin:0 0 1rem}.pending-approval-message p{color:#666;line-height:1.6;margin:0 0 1rem}.pending-approval-message .pending-email{background:#f8f9fa;border-radius:8px;font-size:.9rem;margin-bottom:1.5rem;padding:.75rem 1rem}.pending-approval-message .auth-button-primary{margin-top:.5rem}
/*# sourceMappingURL=main.54a243c7.css.map*/