@import url(https://fonts.googleapis.com/css2?family=Fredoka+One&display=swap);#root,body,html{-webkit-overflow-scrolling:touch;height:100%;margin:0;overflow-x:hidden;overflow-y:auto;padding:0;width:100%}*{box-sizing:border-box}body{animation:gradientBG 15s ease infinite;background:linear-gradient(45deg,#614385,#516395,#3494e6,#61e294);background-size:800% 800%;position:relative}#root:before{background-image:radial-gradient(#fff 1px,#0000 0);background-size:50px 50px;content:"";height:100%;left:0;opacity:.1;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}.badges-page,.dashboard-container,.hall-page,.podium-page,.steps-page{background:#0000;box-sizing:border-box;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:relative;z-index:1}@keyframes gradientBG{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@media (max-width:600px){.page-header{align-items:center;flex-direction:row;padding:env(safe-area-inset-top) 1rem 1rem}.page-header h1{font-size:1.4rem}.page-header p{font-size:.8rem}.controls{flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.controls button,.controls select{flex:1 1 45%;font-size:.85rem;height:2rem}.house-card-container{gap:.75rem;padding:.5rem}.student-grid{gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus-visible{outline:2px solid gold;outline-offset:2px}@media (prefers-reduced-motion:reduce){body{animation:none!important}}@media (prefers-contrast:more){body{background:#fff!important;color:#000!important}}:root{--splash-primary:#3494e6;--splash-secondary:#516395;--splash-accent:#61e294;--splash-gradient:linear-gradient(135deg,#3494e6,#516395 50%,#61e294);--splash-duration:0.8s;--bounce-duration:2s;--glow-duration:3s}.splash-container{align-items:center;animation:gradientShift 8s ease infinite;background:linear-gradient(135deg,#3494e6,#516395 50%,#61e294);background:var(--splash-gradient);background-size:400% 400%;box-sizing:border-box;display:flex;flex-direction:column;height:100vh;justify-content:center;margin:0;min-height:100vh;overflow:hidden;padding:0;position:relative;width:100vw;&:before{background:radial-gradient(circle at 25% 25%,#ffffff1a 0,#0000 50%),radial-gradient(circle at 75% 75%,#ffffff0d 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}}.splash-logo{animation:logoEntrance .8s ease-out forwards,logoFloat 2s ease-in-out .8s infinite,logoGlow 3s ease-in-out infinite;animation:logoEntrance var(--splash-duration) ease-out forwards,logoFloat var(--bounce-duration) ease-in-out infinite var(--splash-duration),logoGlow var(--glow-duration) ease-in-out infinite;filter:drop-shadow(0 8px 32px rgba(31,38,135,.37));filter:drop-shadow(var(--glass-shadow));height:auto;max-width:70vw;position:relative;transition:transform .3s ease;width:280px;z-index:2;&:hover{transform:scale(1.05) rotate(2deg)}}.splash-logo:before{animation:glassAppear 1s ease-out .5s forwards;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;background:var(--glass-bg);border:1px solid #fff3;border:1px solid var(--glass-border);border-radius:50%;bottom:-20px;content:"";left:-20px;opacity:0;position:absolute;right:-20px;top:-20px;z-index:-1}@keyframes logoEntrance{0%{filter:blur(20px);opacity:0;transform:scale(.3) rotate(-180deg)}50%{filter:blur(5px);opacity:.8;transform:scale(1.1) rotate(-10deg)}to{filter:blur(0);opacity:1;transform:scale(1) rotate(0deg)}}@keyframes glassAppear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.splash-container:after{animation:loadingSpinner 1s linear infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fffc;bottom:10%;content:"";height:60px;left:50%;position:absolute;transform:translateX(-50%);width:60px}@keyframes loadingSpinner{0%{transform:translateX(-50%) rotate(0deg)}to{transform:translateX(-50%) rotate(1turn)}}@media (max-width:768px){.splash-logo{max-width:80vw;width:220px}.splash-container:after{bottom:15%;height:40px;width:40px}}@media (max-width:480px){.splash-logo{width:180px}}@media (prefers-reduced-motion:reduce){.splash-logo{animation:logoGlow 3s ease-in-out infinite;animation:logoGlow var(--glow-duration) ease-in-out infinite}.splash-container{animation:none;background:#3494e6;background:var(--splash-primary)}.splash-container:after{animation:none;opacity:.5}}.splash-logo-container{align-items:center;display:flex;flex-direction:column;position:relative;z-index:2}.logo-overlay{animation:overlayFadeIn 1s ease-out 1.5s forwards;bottom:-80px;color:#fff;left:50%;opacity:0;position:absolute;text-align:center;transform:translateX(-50%);z-index:3}.app-title{-webkit-text-fill-color:#0000;animation:titleShimmer 3s ease-in-out infinite;background:linear-gradient(45deg,#fff,#f093fb);background-clip:text;-webkit-background-clip:text;font-size:2rem;font-weight:700;margin:0 0 .5rem;text-shadow:2px 2px 4px #0000004d}.app-subtitle{font-size:.9rem;font-weight:300;letter-spacing:2px;margin:0;opacity:.9;text-transform:uppercase}.loading-section{animation:loadingSectionFadeIn .8s ease-out 2s forwards;bottom:12%;left:50%;max-width:80vw;opacity:0;position:absolute;text-align:center;transform:translateX(-50%);width:300px;z-index:3}.progress-container{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#fff3;border-radius:2px;height:4px;margin-bottom:1rem;overflow:hidden;width:100%}.progress-bar{animation:progressShimmer 2s ease-in-out infinite;background:linear-gradient(90deg,#fff,#f093fb,#667eea);background-size:200% 100%;border-radius:2px;height:100%;transition:width .3s ease}.loading-text{align-items:center;color:#fff;display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:1rem}.loading-message{font-weight:300;opacity:.9}.loading-percentage{font-family:Courier New,monospace;font-weight:600}.tap-hint{animation:tapHintPulse 2s ease-in-out infinite;color:#ffffffb3;font-size:.8rem;margin:0}.particles{height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%}.particle{animation:particleFloat 5s ease-in-out infinite}.splash-container.loaded{cursor:pointer}.splash-container.loaded:after{opacity:0;transition:opacity .5s ease}@keyframes overlayFadeIn{0%{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes loadingSectionFadeIn{0%{opacity:0;transform:translateX(-50%) translateY(30px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes progressShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes tapHintPulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}@media (max-width:768px){.splash-logo{max-width:80vw;width:220px}.app-title{font-size:1.5rem}.app-subtitle{font-size:.8rem}.loading-section{bottom:15%;width:250px}.logo-overlay{bottom:-60px}}@media (max-width:480px){.splash-logo{width:180px}.app-title{font-size:1.2rem}.loading-section{width:200px}.logo-overlay{bottom:-50px}}:root{--login-primary:#3494e6;--login-secondary:#516395;--login-accent:#61e294;--login-success:#4ecdc4;--login-error:#ff6b6b;--login-warning:#ffd93d}.login-container{align-items:center;animation:gradientShift 12s ease infinite;background:linear-gradient(135deg,#3494e6,#516395 50%,#61e294);background-size:400% 400%;display:flex;flex-direction:column;justify-content:center;min-height:100vh;overflow:hidden;padding:2rem;padding:var(--space-xl);position:relative;&:before{background:radial-gradient(circle at 20% 80%,#ffffff1a 0,#0000 50%),radial-gradient(circle at 80% 20%,#ffffff0d 0,#0000 50%),radial-gradient(circle at 40% 40%,#667eea1a 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}}.login-card{animation:cardEntrance .8s ease-out .2s forwards;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff26;background:var(--glass-bg-strong);border:1px solid #fff3;border:1px solid var(--glass-border);border-radius:1rem;border-radius:var(--radius-xl);box-shadow:0 12px 40px #1f268780;box-shadow:var(--glass-shadow-strong);max-width:400px;opacity:0;padding:3rem;padding:var(--space-2xl);position:relative;transform:translateY(30px) scale(.95);transition:transform .3s ease,box-shadow .3s ease;width:100%;z-index:2;&:hover{box-shadow:0 20px 60px #1f268766;transform:translateY(-5px)}}.login-logo{animation:logoGlow 3s ease-in-out infinite,logoFloat 4s ease-in-out infinite;display:block;filter:drop-shadow(0 0 20px rgba(255,255,255,.3));height:auto;margin:0 auto 1.5rem;margin:0 auto var(--space-lg);transition:transform .3s ease;width:120px;&:hover{transform:scale(1.05) rotate(5deg)}}.login-title{-webkit-text-fill-color:#0000;animation:titleShimmer 4s ease-in-out infinite;background:linear-gradient(45deg,#fff,#61e294);background:linear-gradient(45deg,#fff,var(--login-accent));background-clip:text;-webkit-background-clip:text;color:#fff;font-size:1.5rem;font-size:var(--font-2xl);font-weight:700;margin:0 0 .5rem;margin:0 0 var(--space-sm);text-align:center;text-shadow:2px 2px 4px #0000004d}.login-subtitle{color:#fffc;font-size:.875rem;font-size:var(--font-sm);font-weight:300;letter-spacing:1px;margin:0 0 2rem;margin:0 0 var(--space-xl);text-align:center}.login-form{gap:1.5rem;gap:var(--space-lg);width:100%}.input-group,.login-form{display:flex;flex-direction:column}.input-group{position:relative}.input-label{color:#ffffffe6;font-size:.875rem;font-size:var(--font-sm);font-weight:500;margin-bottom:.25rem;margin-bottom:var(--space-xs);transition:color .3s ease}.form-input{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:.5rem;border-radius:var(--radius-md);color:#fff;font-size:1rem;font-size:var(--font-base);padding:1rem 1.5rem;padding:var(--space-md) var(--space-lg);transition:all .3s ease;&::placeholder{color:#fff9}&:focus{background:#ffffff26;border-color:#61e294;border-color:var(--login-accent);box-shadow:0 0 0 3px #f093fb33;outline:none;transform:translateY(-2px)}&:focus+.input-label{color:#61e294;color:var(--login-accent)}}.btn-google,.btn-primary{align-items:center;border:none;border-radius:.5rem;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:1rem;font-size:var(--font-base);font-weight:600;gap:.5rem;gap:var(--space-sm);justify-content:center;min-height:48px;overflow:hidden;padding:1rem 1.5rem;padding:var(--space-md) var(--space-lg);position:relative;text-decoration:none;transition:all .3s ease;&:disabled{cursor:not-allowed;opacity:.6;transform:none!important}&.loading:before{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}}.btn-primary{background:linear-gradient(45deg,#3494e6,#516395);background:linear-gradient(45deg,var(--login-primary),var(--login-secondary));box-shadow:0 4px 15px #667eea4d;color:#fff;&:hover:not(:disabled){background:linear-gradient(45deg,#7c8eec,#8b5fc7);box-shadow:0 8px 25px #667eea66;transform:translateY(-2px)}&:active:not(:disabled){transform:translateY(0)}}.btn-google{background:linear-gradient(45deg,#4285f4,#34a853);box-shadow:0 4px 15px #4285f44d;color:#fff;margin-top:.5rem;margin-top:var(--space-sm);&:hover:not(:disabled){background:linear-gradient(45deg,#5a9bf8,#4bb65f);box-shadow:0 8px 25px #4285f466;transform:translateY(-2px)}&:active:not(:disabled){transform:translateY(0)}}.error-msg{animation:errorFadeIn .3s ease-out forwards;background:#ff6b6b1a;border:1px solid #ff6b6b4d;border-radius:.5rem;border-radius:var(--radius-md);color:#ffcdd2}.error-msg,.success-msg{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-weight:500;margin-top:1.5rem;margin-top:var(--space-lg);opacity:0;padding:1rem;padding:var(--space-md);text-align:center;transform:translateY(-10px)}.success-msg{animation:successFadeIn .3s ease-out forwards;background:#4ecdc41a;border:1px solid #4ecdc44d;border-radius:.5rem;border-radius:var(--radius-md);color:#b2dfdb}.login-particles{height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%;z-index:1}.particle{animation:particleFloat 8s ease-in-out infinite;background:#fff9;border-radius:50%;height:4px;position:absolute;width:4px}@keyframes logoGlow{0%,to{filter:drop-shadow(0 0 20px rgba(255,255,255,.3))}50%{filter:drop-shadow(0 0 30px rgba(240,147,251,.6)) drop-shadow(0 0 40px rgba(102,126,234,.4))}}@keyframes shimmer{0%{left:-100%}to{left:100%}}@keyframes errorFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes successFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes particleFloat{0%{opacity:0;transform:translateY(100vh) rotate(0deg)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(-100px) rotate(1turn)}}@media (max-width:768px){.login-container{padding:1rem;padding:var(--space-md)}.login-card{margin:1rem;margin:var(--space-md);padding:2rem;padding:var(--space-xl)}.login-title{font-size:1.25rem;font-size:var(--font-xl)}.login-logo{width:100px}}@media (max-width:480px){.login-container{padding:.5rem;padding:var(--space-sm)}.login-card{margin:.5rem;margin:var(--space-sm);padding:1.5rem;padding:var(--space-lg)}.login-title{font-size:1.125rem;font-size:var(--font-lg)}.login-logo{width:80px}.btn-google,.btn-primary,.form-input{font-size:.875rem;font-size:var(--font-sm)}}@media (prefers-reduced-motion:reduce){.login-container{animation:none;background:#3494e6;background:var(--login-primary)}.login-card,.login-logo{animation:none}.login-card{opacity:1;transform:none}.particle{animation:none;opacity:0}}.modal-overlay{align-items:center;background:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:999}.modal{background:#fff;border-radius:12px;box-shadow:0 4px 10px #0000004d;max-width:90%;outline:none;padding:2rem;width:350px}.modal h2{font-size:1.3rem;margin-top:0}.modal label{display:block;font-weight:700;margin-top:1rem}.modal select,.modal textarea{border:1px solid #ccc;border-radius:6px;box-sizing:border-box;font-size:1rem;margin-top:.5rem;padding:.5rem;resize:vertical;width:100%}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.5rem;text-align:right}.modal-actions button{border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;padding:.5rem 1rem;transition:background .2s,color .2s}.submit-button{background:#3498db;color:#fff}.submit-button:disabled,.submit-button[aria-disabled=true]{background:#b0bec5;color:#eee;cursor:not-allowed;opacity:.7}.submit-button:focus:enabled,.submit-button:hover:enabled{background:gold;color:#222;outline:2px solid gold;outline-offset:2px}.cancel-button{background:#ccc;color:#222}.cancel-button:focus,.cancel-button:hover{background:gold;color:#222;outline:2px solid gold;outline-offset:2px}.modal:focus{outline:2px solid gold;outline-offset:2px}@media (max-width:600px){.modal{font-size:.98rem;max-width:98vw;padding:1rem;width:98vw}.modal-actions{align-items:stretch;flex-direction:column;gap:.5rem;text-align:center}.modal-actions button{font-size:1rem;min-height:44px;width:100%}}.history-modal-backdrop{align-items:center;background:#0006;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:999}.history-modal{background:#fff;border-radius:10px;box-shadow:0 4px 24px #00000026;max-height:90vh;max-width:600px;overflow-x:auto;overflow-y:auto;padding:1rem;position:relative;width:90%}.close-btn{background:#ccc;border:none;border-radius:4px;font-weight:700;padding:.4rem .8rem;right:10px;top:10px;transition:background .2s,color .2s}.close-btn:focus,.close-btn:hover{background:gold;color:#222;outline:2px solid gold;outline-offset:2px}table{background:#fafbfc;border-collapse:collapse;font-size:1rem;margin-top:1rem;width:100%}td,th{border:1px solid #ccc;padding:.5rem;text-align:left}th{background:#f0f0f0;font-weight:700;position:-webkit-sticky;position:sticky;top:0;z-index:1}tbody tr:nth-child(2n){background:#f9f9f9}tbody tr:hover{background:#fffde7}@media (max-width:600px){.history-modal{font-size:.95rem;max-width:98vw;padding:.5rem;width:98vw}.close-btn{font-size:1.5rem;padding:.25rem .5rem;right:6px;top:6px}table{font-size:.95rem;min-width:350px}}.close-btn:focus,.history-modal:focus{outline:2px solid gold;outline-offset:2px}:root{--storm-color:#1e3a8a;--meadow-color:#059669;--flint-color:#dc2626;--ember-color:#ea580c}body{background:linear-gradient(135deg,#3494e6,#516395,#61e294);background-attachment:fixed;color:#1f2937;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;margin:0;padding:0}.dashboard-container{background:#0000;min-height:100vh;position:relative}.dashboard-container:before{background:radial-gradient(ellipse at top left,#667eea26 0,#0000 50%),radial-gradient(ellipse at bottom right,#764ba226 0,#0000 50%);content:"";height:100%;left:0;pointer-events:none;position:fixed;top:0;width:100%;z-index:-1}.container{margin:0 auto;max-width:1400px;padding:0 1.5rem;padding:0 var(--spacing-lg)}.header-bar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border-bottom:1px solid #fff3;box-shadow:0 8px 32px #00000026;box-shadow:var(--shadow-lg);min-height:120px;position:-webkit-sticky;position:sticky;top:0;width:100%;z-index:100}.page-header{align-items:center;display:flex;justify-content:center;margin:0 auto;max-width:1400px;padding:1.5rem 2rem;padding:var(--spacing-lg) var(--spacing-xl);position:relative}.sedan-logo{filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));height:80px;object-fit:contain;transition:transform .3s ease}.sedan-logo:hover{transform:scale(1.05)}.header-title{flex:1 1;margin:0 1.5rem;margin:0 var(--spacing-lg);text-align:center}.header-title h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#3494e6,#516395,#61e294);background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;font-size:2.25rem;font-weight:700;font-weight:var(--font-weight-bold);line-height:1.2;margin:0;text-shadow:none}.header-title .subtext{color:#6b7280;font-size:1rem;font-weight:500;font-weight:var(--font-weight-medium);margin:.25rem 0;margin:var(--spacing-xs) 0}.header-title .reset-note{color:#9ca3af;font-size:.875rem;font-style:italic;margin:.25rem 0 0;margin:var(--spacing-xs) 0 0}.dropdown{position:absolute;right:1.5rem;right:var(--spacing-lg);top:1.5rem;top:var(--spacing-lg);z-index:200}.dropdown .dropbtn{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:12px;border-radius:var(--radius-md);color:#374151;cursor:pointer;font-size:1.25rem;padding:.5rem;padding:var(--spacing-sm);transition:all .3s ease}.dropdown .dropbtn:hover{background:#ffffff4d;box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-2px)}.dropdown .dropdown-content{animation:dropdownSlide .2s ease-out;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 16px 64px #0003;box-shadow:var(--shadow-xl);display:none;flex-direction:column;min-width:240px;overflow:hidden;position:absolute;right:0;top:calc(100% + .5rem);top:calc(100% + var(--spacing-sm));z-index:100}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown .dropdown-content.show{display:flex}.dropdown .dropdown-content button{align-items:center;background:#0000;border:none;color:#374151;cursor:pointer;display:flex;font-size:1rem;font-weight:500;font-weight:var(--font-weight-medium);gap:.5rem;gap:var(--spacing-sm);padding:1rem 1.5rem;padding:var(--spacing-md) var(--spacing-lg);text-align:left;transition:all .2s ease;white-space:nowrap;width:100%}.dropdown .dropdown-content button:hover{background:#667eea1a;color:#667eea;transform:translateX(4px)}.controls{align-items:center;display:flex;gap:1rem;gap:var(--spacing-md);margin:2rem auto;margin:var(--spacing-xl) auto;max-width:1400px;padding:0 2rem;padding:0 var(--spacing-xl)}.controls button,.controls select{border-radius:12px;border-radius:var(--radius-md);font-size:1rem;font-weight:500;font-weight:var(--font-weight-medium);height:48px;line-height:1;padding:0 1.5rem;padding:0 var(--spacing-lg);transition:all .3s ease}.controls button{background:linear-gradient(135deg,#3494e6,#516395,#61e294);background:var(--primary-gradient);border:none;box-shadow:0 2px 4px #0000000d;box-shadow:var(--shadow-sm);color:#fff;cursor:pointer}.controls button:hover{box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-2px)}.controls select{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:2px solid #fff3;color:#374151}.controls select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.back-button{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:2px solid #fff3;border-radius:12px;border-radius:var(--radius-md);display:inline-flex;font-weight:500;font-weight:var(--font-weight-medium);gap:.5rem;gap:var(--spacing-sm);margin:1.5rem 0;margin:var(--spacing-lg) 0;padding:1rem 1.5rem;padding:var(--spacing-md) var(--spacing-lg);transition:all .3s ease}.back-button:hover{background:#fff;box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-2px)}.house-card-container{grid-gap:1.5rem;grid-gap:var(--spacing-lg);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;border-radius:var(--radius-xl);box-shadow:0 8px 32px #00000026;box-shadow:var(--shadow-lg);display:grid;gap:1.5rem;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:0 auto 3rem;margin:0 auto var(--spacing-2xl);max-width:1400px}.house-card,.house-card-container{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:2rem;padding:var(--spacing-xl)}.house-card{align-items:center;background:#fffffff2;border:1px solid #ffffff4d;border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);display:flex;flex-direction:column;justify-content:center;min-height:160px;overflow:hidden;position:relative;transition:all .4s ease}.house-card:before{background:linear-gradient(90deg,#0000,#fff6,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.house-card:hover:before{left:100%}.house-card:hover{box-shadow:0 16px 64px #0003;box-shadow:var(--shadow-xl);transform:translateY(-8px) scale(1.02)}.house-card.leader{animation:leaderPulse 3s ease-in-out infinite;background:linear-gradient(135deg,#ffd70033,#fffffff2);border:2px solid gold}@keyframes leaderPulse{0%,to{box-shadow:0 8px 32px #ffd7004d,0 16px 64px #0003;box-shadow:0 8px 32px #ffd7004d,var(--shadow-xl);transform:translateY(-8px) scale(1.02)}50%{box-shadow:0 12px 48px #ffd70080,0 16px 64px #0003;box-shadow:0 12px 48px #ffd70080,var(--shadow-xl);transform:translateY(-12px) scale(1.03)}}.house-card .shield-img{filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));height:72px;margin-bottom:1rem;margin-bottom:var(--spacing-md);object-fit:contain;transition:transform .3s ease;width:72px}.house-card:hover .shield-img{transform:scale(1.1) rotate(5deg)}.house-card p{color:#1f2937;font-size:1.125rem;margin:0;text-align:center;text-shadow:0 2px 4px #0000001a}.house-card p,.house-points-number{font-weight:700;font-weight:var(--font-weight-bold)}.house-points-number{color:#667eea;font-size:1.5rem}.student-grid{grid-gap:2rem;grid-gap:var(--spacing-xl);display:grid;gap:2rem;gap:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin:3rem auto;margin:var(--spacing-2xl) auto;max-width:1400px;padding:0 2rem;padding:0 var(--spacing-xl)}.student-card{align-items:center;background:#fffffff2;border:1px solid #ffffff4d;border-radius:24px;border-radius:var(--radius-xl);box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);cursor:pointer;display:flex;flex-direction:column;min-height:220px;padding:var(--spacing-xl);transition:all .4s ease}.student-card:before{background:linear-gradient(90deg,#0000,#667eea1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .6s ease;width:100%}.student-card:hover:before{left:100%}.student-card:hover{border-color:#667eea4d;box-shadow:0 16px 64px #0003;box-shadow:var(--shadow-xl);transform:translateY(-8px)}.step-indicator{background:linear-gradient(135deg,#fa709a,#fee140);background:var(--warning-gradient);border:2px solid #ffffff4d;border-radius:24px;border-radius:var(--radius-xl);box-shadow:0 2px 4px #0000000d;box-shadow:var(--shadow-sm);color:#fff;font-size:.875rem;font-weight:700;font-weight:var(--font-weight-bold);padding:.5rem 1rem;padding:var(--spacing-sm) var(--spacing-md);position:absolute;right:1rem;right:var(--spacing-md);top:1rem;top:var(--spacing-md)}.avatar{background:linear-gradient(135deg,#3494e6,#516395,#61e294);background:var(--primary-gradient);border:4px solid #ffffff4d;font-size:2rem;height:88px;margin:1rem auto;margin:var(--spacing-md) auto var(--spacing-md);width:88px}.student-card:hover .avatar{box-shadow:0 16px 64px #0003;box-shadow:var(--shadow-xl);transform:scale(1.1)}.name{color:#1f2937;font-size:1.25rem;margin:.5rem 0;margin:var(--spacing-sm) 0;text-shadow:none}.student-house-shield{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));height:40px!important;margin:.5rem 0!important;margin:var(--spacing-sm) 0!important;transition:transform .3s ease;width:40px!important}.student-card:hover .student-house-shield{transform:scale(1.2)}.bubble-counters{gap:1rem;gap:var(--spacing-md);margin-top:1rem;margin-top:var(--spacing-md)}.bubble,.bubble-counters{display:flex;justify-content:center}.bubble{align-items:center;border:3px solid #ffffff4d;border-radius:50%;box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);color:#fff;cursor:pointer;font-size:1.125rem;font-weight:700;font-weight:var(--font-weight-bold);height:48px;overflow:hidden;position:relative;width:48px}.bubble,.bubble:before{transition:all .3s ease}.bubble:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:0}.bubble:hover:before{height:100%;width:100%}.bubble:hover{box-shadow:0 8px 32px #00000026;box-shadow:var(--shadow-lg);transform:scale(1.15)}.bubble.green{background:linear-gradient(135deg,#4facfe,#00f2fe);background:var(--success-gradient)}.bubble.red{background:linear-gradient(135deg,#f093fb,#f5576c);background:var(--secondary-gradient)}.bubble.disabled{background:#9ca3af;cursor:not-allowed;opacity:.5}.bubble.pop{animation:bubblePop .5s ease}@keyframes bubblePop{0%{transform:scale(1)}50%{transform:scale(1.4)}to{transform:scale(1)}}.notification-banner{animation:notificationSlide .5s ease-out;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(135deg,#3494e6,#516395,#61e294);background:var(--primary-gradient);border:2px solid #ffffff4d;border-radius:24px;border-radius:var(--radius-xl);box-shadow:0 16px 64px #0003;box-shadow:var(--shadow-xl);color:#fff;font-size:1.25rem;font-weight:700;font-weight:var(--font-weight-bold);left:50%;max-width:90vw;min-width:400px;padding:1.5rem 2rem;padding:var(--spacing-lg) var(--spacing-xl);position:fixed;text-align:center;top:2rem;top:var(--spacing-xl);transform:translateX(-50%);z-index:9999}@keyframes notificationSlide{0%{opacity:0;transform:translateX(-50%) translateY(-100px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.notification-banner.success{background:linear-gradient(135deg,#4facfe,#00f2fe);background:var(--success-gradient)}.notification-banner.warning{background:linear-gradient(135deg,#f093fb,#f5576c);background:var(--secondary-gradient)}.notification-banner.error{background:linear-gradient(135deg,#ff6b6b,#ee5a52)}@media (max-width:1024px){.header-title h1{font-size:1.875rem}.student-grid{gap:1.5rem;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.house-card-container{gap:1rem;gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}@media (max-width:768px){.controls{align-items:stretch;flex-direction:column;gap:1rem;gap:var(--spacing-md)}.controls button,.controls select{width:100%}.student-grid{gap:1rem;gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:0 1rem;padding:0 var(--spacing-md)}.student-card{padding:1.5rem;padding:var(--spacing-lg)}.avatar{font-size:1.5rem;height:72px;width:72px}.bubble{font-size:1rem;height:40px;width:40px}.header-title h1{font-size:1.5rem}.house-card-container{gap:.5rem;gap:var(--spacing-sm);grid-template-columns:repeat(2,1fr);padding:1.5rem;padding:var(--spacing-lg)}.dropdown{right:1rem;right:var(--spacing-md);top:1rem;top:var(--spacing-md)}.page-header{padding:1.5rem 1rem;padding:var(--spacing-lg) var(--spacing-md)}}@media (max-width:600px){.container{padding:.5rem;padding:var(--spacing-sm)}.header-bar{padding-top:env(safe-area-inset-top,20px)}.page-header{flex-direction:column;padding:1rem .5rem;padding:var(--spacing-md) var(--spacing-sm);text-align:center}.sedan-logo{height:60px;margin-bottom:.5rem;margin-bottom:var(--spacing-sm);width:60px}.header-title{margin:0}.header-title h1{font-size:1.25rem}.header-title .reset-note,.header-title .subtext{font-size:.875rem}.dropdown{position:fixed;right:1rem;right:var(--spacing-md);top:1rem;top:var(--spacing-md)}.controls{margin:1.5rem auto;margin:var(--spacing-lg) auto;padding:0 1rem;padding:0 var(--spacing-md)}.house-card-container{gap:1rem;gap:var(--spacing-md);grid-template-columns:1fr;padding:1rem;padding:var(--spacing-md)}.house-card{max-width:100%;min-height:120px}.student-grid{gap:1rem;gap:var(--spacing-md);grid-template-columns:1fr;margin-top:1.5rem;margin-top:var(--spacing-lg)}.student-card{min-height:180px;padding:1rem;padding:var(--spacing-md)}.avatar{font-size:1.25rem;height:60px;width:60px}.bubble{font-size:1rem;height:44px;min-height:44px;min-width:44px;width:44px}.notification-banner{font-size:1rem;min-width:320px;padding:1rem 1.5rem;padding:var(--spacing-md) var(--spacing-lg)}}.house-card,.student-card{animation:fadeIn .6s ease-out forwards}.student-card:nth-child(2n){animation-delay:.1s}.student-card:nth-child(3n){animation-delay:.2s}.bubble:focus,.controls button:focus,.controls select:focus,.dropdown .dropbtn:focus,.student-card:focus{outline:3px solid #667eea80;outline-offset:2px}.text-gradient{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#3494e6,#516395,#61e294);background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text}.glass-effect{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff1a;border:1px solid #fff3}.teacher-birthday-alert{animation:birthdayGlow 2s ease-in-out infinite;background:linear-gradient(135deg,#fa709a,#fee140);background:var(--warning-gradient);border:2px solid #ffffff4d;border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 8px 32px #00000026;box-shadow:var(--shadow-lg);color:#fff;font-weight:700;font-weight:var(--font-weight-bold);margin:1.5rem auto;margin:var(--spacing-lg) auto;max-width:600px;padding:1.5rem;padding:var(--spacing-lg);text-align:center}@media (max-width:600px){.container{padding:8px}.header-bar{padding-top:env(safe-area-inset-top,20px)}.page-header{padding:.5rem}.header-icon{margin-top:0;width:32px}.header-title{top:60%}.header-title h1{font-size:1.2rem}.header-title .reset-note,.header-title .subtext{font-size:.7rem}.controls{align-items:stretch;flex-direction:column;gap:.5rem}.controls button,.controls select{font-size:1rem;min-height:44px;width:100%}.house-card-container{align-items:stretch;flex-direction:column;gap:.5rem;padding:.5rem}.house-card{height:auto;margin:0 auto;max-width:220px;width:100%}.student-grid{gap:.75rem;grid-template-columns:1fr;margin-top:1rem}.student-card{padding:.5rem}.avatar{font-size:1.1rem;height:44px;width:44px}.bubble{font-size:1rem;height:36px;min-height:44px;min-width:44px;width:36px}}.sedan-logo{display:block;height:auto;margin-left:auto;margin-right:auto;max-width:80px;width:80px}.dashboard-container .sedan-logo{height:auto!important;max-width:80px!important;width:80px!important}.logo-container{align-items:center;display:flex;justify-content:center}.streak-badge{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid #ffffff4d;border-radius:24px;border-radius:var(--radius-xl);display:flex;font-size:.875rem;font-weight:700;gap:.25rem;gap:var(--spacing-xs);left:1rem;left:var(--spacing-md);padding:.5rem 1rem;padding:var(--spacing-sm) var(--spacing-md);position:absolute;top:1rem;top:var(--spacing-md);z-index:2}.birthday-banner,.streak-badge{background:linear-gradient(135deg,#fa709a,#fee140);background:var(--warning-gradient);box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);color:#fff;font-weight:var(--font-weight-bold)}.birthday-banner{animation:birthdayGlow 2s ease-in-out infinite;border:2px solid #ffffff4d;border-radius:16px;border-radius:var(--radius-lg);font-size:1.125rem;margin-bottom:1rem;margin-bottom:var(--spacing-md);padding:1rem 1.5rem;padding:var(--spacing-md) var(--spacing-lg)}@keyframes birthdayGlow{0%,to{box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md)}50%{box-shadow:0 8px 32px #ffc10780}}.milestone-badge{animation:milestoneFloat 3s ease-in-out infinite;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));font-size:2.5rem;margin-bottom:1rem;margin-bottom:var(--spacing-md)}@keyframes milestoneFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.student-list{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:2rem 0}.student-card,.student-square{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;justify-content:center;min-height:140px;min-width:0;padding:1.2rem;word-break:break-word}@media (max-width:700px){.student-grid{gap:1rem;grid-template-columns:1fr}.student-card{min-width:0;width:100%}}.dashboard-container{background:#0009;border-radius:12px;box-shadow:0 4px 12px #0000004d;color:#fff;margin:2rem auto;max-width:1600px;padding:2rem;width:95vw}.steps-page{background-color:#f5f7fa;box-sizing:border-box;font-family:Poppins,sans-serif;min-height:100vh;position:relative;text-align:center}.back-button{background:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:700;left:1rem;margin-bottom:1rem;padding:.5rem 1rem;position:absolute;top:1rem;transition:background .3s;z-index:100}.back-button:focus,.back-button:hover{background:#2980b9;outline:2px solid gold;outline-offset:2px}.steps-title{color:#fff;font-size:2.2rem;margin-bottom:1rem;text-align:center;text-shadow:1px 1px 2px #000000b3}.steps-container{display:flex;flex-direction:column;gap:1rem;margin:0 auto;max-width:900px;padding:0 2rem}.step-card{background:#fff;border-radius:10px;box-shadow:0 2px 8px #0000001a;font-size:1.15rem;padding:2.2rem;text-align:center;transition:box-shadow .2s}.step-card:focus{box-shadow:0 0 0 4px #ffd70044,0 2px 8px #0000001a;outline:2px solid gold;outline-offset:2px}.step-card h2{color:#333;font-size:1.25rem;margin-top:0}.step-card p{color:#555;font-size:1rem;line-height:1.5}@media (max-width:600px){.steps-page{padding:1rem}.steps-title{font-size:1.5rem}.step-card h2{font-size:1.1rem}.step-card p{font-size:.95rem}.back-button{font-size:.9rem;left:auto;margin-bottom:1rem;margin-top:.5rem;padding:.4rem .8rem;position:static;top:auto}}.steps-page{background:#0009;border-radius:12px;box-shadow:0 4px 12px #0000004d;color:#fff;margin:2rem auto;max-width:900px;padding:2rem}.summary-page{background-color:#0009;min-height:100vh;padding:1rem;position:relative;z-index:1}.summary-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;color:#333;margin:2rem auto;max-width:1000px;padding:1.5rem 2rem}.summary-container h1,.summary-container h2,.summary-container h3{color:#fff;text-shadow:1px 1px 2px #000000b3}.summary-container h2{font-size:2rem;margin-bottom:1rem}.summary-container li,.summary-container p{font-size:1rem;line-height:1.5}.summary-controls{background:#fcfcfc;border-radius:8px;box-shadow:0 2px 8px #ffd70012;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-bottom:1rem;padding:.5rem}.summary-controls button,.summary-controls select{align-items:center;background:#f0f0f0;border:1px solid #ccc;border-radius:6px;cursor:pointer;display:flex;font-size:1rem;gap:.5em;padding:.5rem 1rem;transition:background .2s,color .2s,box-shadow .2s}.summary-controls button:focus,.summary-controls button:hover,.summary-controls select:focus{background:gold;box-shadow:0 0 0 2px #ffd70044;color:#222;outline:2px solid gold;outline-offset:2px}.summary-controls button:active{background:#ffe066}.summary-controls .export-icon{font-size:1.1em;margin-right:.5em}.table-container{max-width:100%;overflow-x:auto}.behavior-table{background:#fff;border-collapse:collapse;min-width:700px;width:100%}.behavior-table caption{clip:rect(1px,1px,1px,1px);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;white-space:nowrap;width:1px}.behavior-table td,.behavior-table th{border:1px solid #ddd;padding:.75rem;text-align:left}.behavior-table th{background-color:#f0f0f0;font-weight:700;position:-webkit-sticky;position:sticky;top:0;z-index:2}.behavior-table tbody tr:hover{background:#fffde7}.behavior-table tbody tr:nth-child(2n){background:#fafafa}.loading-msg,.no-data{color:#888;font-size:1.1rem;padding:2rem 0;text-align:center}.spinner{animation:spin .8s linear infinite;border:3px solid gold;border-radius:50%;border-top-color:#f5f7fa;display:inline-block;height:1.2em;margin-right:.5em;vertical-align:middle;width:1.2em}@media (max-width:600px){.summary-page{padding:.5rem}.summary-container{max-width:100vw;padding:1rem .5rem}.summary-container h2{font-size:1.2rem}.behavior-table{font-size:.95rem;min-width:500px}.summary-controls{flex-direction:column;gap:.5rem;padding:.5rem 0}.summary-controls button,.summary-controls select{font-size:1rem;margin-bottom:.5rem;min-height:44px;width:100%}}.behavior-table td,.behavior-table th,.summary-container,.summary-container h2,.summary-container h3,.summary-container li,.summary-container p,.summary-container td,.summary-container th{color:#111!important;text-shadow:none!important}.summary-container h1,.summary-container h2,.summary-container h3{text-shadow:none!important}.summary,.summary-container{background:#0009;border-radius:12px;box-shadow:0 4px 12px #0000004d;color:#fff;margin:2rem auto;max-width:900px;padding:2rem}.back-dashboard-btn{background:#fff!important;border:2px solid #111!important;color:#111!important}.back-dashboard-btn:focus-visible,.back-dashboard-btn:hover{background:gold!important;border-color:gold!important;color:#111!important}.summary-container h1{text-shadow:1px 1px 2px #ffffffb3}.export-csv-btn{background:#fff!important;border:2px solid #111!important;color:#111!important}.export-csv-btn:focus-visible,git .export-csv-btn:hover{background:gold!important;border-color:gold!important;color:#111!important}.summary-container h1{color:#fff!important;text-shadow:1px 1px 2px #000000b3}:root{--chart-positive:linear-gradient(135deg,#56ab2f,#a8e6cf);--chart-negative:linear-gradient(135deg,#ff416c,#ff4b2b);--storm-color:#3b82f6;--meadow-color:#10b981;--flint-color:#ef4444;--ember-color:#f97316}.graph-container{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #fff3;border-radius:24px;border-radius:var(--radius-xl);box-shadow:0 16px 64px #0003;box-shadow:var(--shadow-xl);margin:2rem auto;margin:var(--spacing-xl) auto;max-width:1200px;min-height:100vh;overflow:hidden;padding:3rem;padding:var(--spacing-2xl);position:relative}.graph-container:before{background:radial-gradient(ellipse at top left,#667eea14 0,#0000 50%),radial-gradient(ellipse at bottom right,#764ba214 0,#0000 50%);content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}.graph-container h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#3494e6,#516395,#61e294);background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;color:#1f2937;font-size:2.5rem;font-weight:700;font-weight:var(--font-weight-bold);margin:0 0 2rem;margin:0 0 var(--spacing-xl);text-align:center;text-shadow:none}.graph-container h2{color:#374151;font-size:1.875rem;margin:2rem 0 1.5rem;margin:var(--spacing-xl) 0 var(--spacing-lg)}.graph-container h2,.graph-container h3{font-weight:600;font-weight:var(--font-weight-semibold)}.graph-container h3{color:#4b5563;font-size:1.5rem;margin:3rem 0 1.5rem;margin:var(--spacing-2xl) 0 var(--spacing-lg);position:relative;text-align:center}.graph-container h3:after{border-radius:2px;bottom:-8px;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:60px}.back-button,.graph-container button,.graph-container h3:after{background:linear-gradient(135deg,#3494e6,#516395,#61e294);background:var(--primary-gradient)}.back-button,.graph-container button{border:none;border-radius:12px;border-radius:var(--radius-md);box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);color:#fff;cursor:pointer;font-size:1rem;font-weight:500;font-weight:var(--font-weight-medium);overflow:hidden;padding:1rem 2rem;padding:var(--spacing-md) var(--spacing-xl);position:relative;transition:all .3s ease}.back-button:before,.graph-container button:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.back-button:hover:before,.graph-container button:hover:before{left:100%}.back-button:hover,.graph-container button:hover{box-shadow:0 8px 32px #00000026;box-shadow:var(--shadow-lg);transform:translateY(-2px)}.back-button:active,.graph-container button:active{transform:translateY(0)}.back-button:focus,.graph-container button:focus{outline:3px solid #667eea80;outline-offset:2px}.chart-container{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffffb3;border:1px solid #ffffff4d;border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);margin:2rem 0;margin:var(--spacing-xl) 0;padding:2rem;padding:var(--spacing-xl);transition:all .3s ease}.chart-container:hover{box-shadow:0 8px 32px #00000026;box-shadow:var(--shadow-lg);transform:translateY(-4px)}.graph-container .recharts-wrapper{animation:chartFadeIn .8s ease-out}@keyframes chartFadeIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.graph-container .recharts-cartesian-axis-tick-value{fill:#6b7280!important;font-size:12px!important;font-weight:500!important;font-weight:var(--font-weight-medium)!important}.graph-container .recharts-cartesian-grid line{stroke:#6b728033!important;stroke-dasharray:3 3}.graph-container .recharts-cartesian-axis-line{stroke:#d1d5db!important}.graph-container .recharts-legend-item-text{fill:#374151!important;font-size:14px!important;font-weight:500!important;font-weight:var(--font-weight-medium)!important}.graph-container .recharts-tooltip-wrapper{-webkit-backdrop-filter:blur(20px)!important;backdrop-filter:blur(20px)!important;background:#fffffff2!important;border:1px solid #ffffff4d!important;border-radius:12px!important;border-radius:var(--radius-md)!important;box-shadow:0 8px 32px #00000026!important;box-shadow:var(--shadow-lg)!important}.graph-container .recharts-tooltip-label{color:#1f2937!important;font-size:1rem!important;font-weight:600!important;font-weight:var(--font-weight-semibold)!important;margin-bottom:8px!important}.graph-container .recharts-tooltip-item-value{color:#374151!important;font-size:.875rem!important;font-weight:500!important;font-weight:var(--font-weight-medium)!important}.controls-section{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fff9;border:1px solid #ffffff4d;border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);margin:2rem 0;margin:var(--spacing-xl) 0;padding:2rem;padding:var(--spacing-xl)}.date-controls{align-items:center;display:flex;flex-wrap:wrap;gap:1.5rem;gap:var(--spacing-lg);margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}.graph-container label{display:flex;flex-direction:column;gap:.5rem;gap:var(--spacing-sm)}.graph-container input[type=date],.graph-container label{color:#374151;font-size:1rem;font-weight:500;font-weight:var(--font-weight-medium)}.graph-container input[type=date]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:2px solid #ffffff4d;border-radius:12px;border-radius:var(--radius-md);padding:1rem;padding:var(--spacing-md);transition:all .3s ease}.graph-container input[type=date]:focus{background:#fff;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.graph-container input[type=date]::placeholder{color:#9ca3af;opacity:1}.export-controls{display:flex;flex-wrap:wrap;gap:1rem;gap:var(--spacing-md);margin:2rem 0;margin:var(--spacing-xl) 0}.export-controls button{background:linear-gradient(135deg,#4facfe,#00f2fe);background:var(--success-gradient);font-size:.875rem;padding:.5rem 1.5rem;padding:var(--spacing-sm) var(--spacing-lg)}.export-controls button:nth-child(2){background:linear-gradient(135deg,#fa709a,#fee140);background:var(--warning-gradient)}.export-controls button:nth-child(3){background:linear-gradient(135deg,#f093fb,#f5576c);background:var(--secondary-gradient)}.export-controls button:nth-child(4){background:linear-gradient(135deg,#8b5cf6,#a855f7)}.card,.panel,.summary-box{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffc;border:1px solid #ffffff4d;border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);padding:2rem;padding:var(--spacing-xl);transition:all .3s ease}.card:hover,.panel:hover,.summary-box:hover{box-shadow:0 8px 32px #00000026;box-shadow:var(--shadow-lg);transform:translateY(-4px)}.stats-grid{grid-gap:1.5rem;grid-gap:var(--spacing-lg);display:grid;gap:1.5rem;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:2rem 0;margin:var(--spacing-xl) 0}.stat-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffc;border:1px solid #ffffff4d;border-radius:16px;border-radius:var(--radius-lg);box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);padding:1.5rem;padding:var(--spacing-lg);text-align:center;transition:all .3s ease}.stat-card:hover{box-shadow:0 8px 32px #00000026;box-shadow:var(--shadow-lg);transform:translateY(-4px)}.stat-value{color:#1f2937;font-size:2rem;font-weight:700;font-weight:var(--font-weight-bold);margin-bottom:.5rem;margin-bottom:var(--spacing-sm)}.stat-label{color:#6b7280;font-size:.875rem;font-weight:500;font-weight:var(--font-weight-medium);letter-spacing:.5px;text-transform:uppercase}.loading-indicator{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffc;border:1px solid #ffffff4d;border-radius:16px;border-radius:var(--radius-lg);color:#667eea;display:flex;font-size:1.25rem;font-weight:600;font-weight:var(--font-weight-semibold);gap:1rem;gap:var(--spacing-md);justify-content:center;margin:3rem 0;margin:var(--spacing-2xl) 0;padding:2rem;padding:var(--spacing-xl);text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #667eea33;border-radius:50%;border-top-color:#667eea;height:24px;width:24px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.graph-container hr{border:none;border-radius:1px;border-top:2px solid #667eea33;margin:3rem 0;margin:var(--spacing-2xl) 0}@media (max-width:1024px){.graph-container{max-width:95vw;padding:2rem;padding:var(--spacing-xl)}.graph-container h1{font-size:2rem}.date-controls{align-items:stretch;flex-direction:column}.export-controls{justify-content:center}}@media (max-width:768px){.graph-container{border-radius:16px;border-radius:var(--radius-lg);margin:1rem auto;margin:var(--spacing-md) auto;padding:1.5rem;padding:var(--spacing-lg)}.graph-container h1{font-size:1.75rem}.graph-container h2{font-size:1.5rem}.graph-container h3{font-size:1.25rem}.date-controls{gap:1rem;gap:var(--spacing-md)}.export-controls{flex-direction:column;gap:.5rem;gap:var(--spacing-sm)}.export-controls button{font-size:1rem;padding:1rem;padding:var(--spacing-md);width:100%}.stats-grid{gap:1rem;gap:var(--spacing-md);grid-template-columns:repeat(2,1fr)}.chart-container{padding:1.5rem;padding:var(--spacing-lg)}}@media (max-width:600px){.graph-container{margin:.5rem;margin:var(--spacing-sm);padding:1rem;padding:var(--spacing-md)}.graph-container h1{font-size:1.5rem;margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}.controls-section{padding:1.5rem;padding:var(--spacing-lg)}.date-controls{gap:.5rem;gap:var(--spacing-sm)}.graph-container label{font-size:.875rem}.graph-container input[type=date]{font-size:.875rem;padding:.5rem;padding:var(--spacing-sm)}.stats-grid{gap:.5rem;gap:var(--spacing-sm);grid-template-columns:1fr}.stat-card{padding:1rem;padding:var(--spacing-md)}.stat-value{font-size:1.5rem}.chart-container{overflow-x:auto;padding:1rem;padding:var(--spacing-md)}.loading-indicator{font-size:1rem;padding:1.5rem;padding:var(--spacing-lg)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.chart-container{animation:fadeInUp .6s ease-out forwards}.chart-container:nth-child(2n){animation-delay:.1s}.chart-container:nth-child(3n){animation-delay:.2s}.graph-container :focus{outline:3px solid #667eea80;outline-offset:2px}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.graph-container{background:#fff;border:1px solid #e5e7eb;box-shadow:none}.back-button,.export-controls{display:none}.chart-container{margin:1rem 0;page-break-inside:avoid}}:root{--primary-gradient:linear-gradient(135deg,#3494e6,#516395,#61e294);--secondary-gradient:linear-gradient(135deg,#f093fb,#f5576c);--success-gradient:linear-gradient(135deg,#4facfe,#00f2fe);--warning-gradient:linear-gradient(135deg,#fa709a,#fee140);--gold-gradient:linear-gradient(135deg,gold,#ffed4e);--silver-gradient:linear-gradient(135deg,silver,#e8e8e8);--bronze-gradient:linear-gradient(135deg,#cd7f32,#d4af37);--first-place:gold;--second-place:silver;--third-place:#cd7f32;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--shadow-sm:0 2px 4px #0000000d;--shadow-md:0 4px 16px #0000001a;--shadow-lg:0 8px 32px #00000026;--shadow-xl:0 16px 64px #0003;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px}.podium-page{background:linear-gradient(135deg,#667eea,#764ba2);background-attachment:fixed;min-height:100vh;padding:var(--spacing-xl);position:relative;text-align:center}.podium-page:before{background:radial-gradient(ellipse at top left,#ffd7001a 0,#0000 50%),radial-gradient(ellipse at bottom right,#c0c0c01a 0,#0000 50%);content:"";height:100%;left:0;pointer-events:none;position:fixed;top:0;width:100%;z-index:-1}.dashboard-container.podium-page{background:#0000}.podium-page h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,gold,#ffed4e);background:var(--gold-gradient);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:3rem;font-weight:700;font-weight:var(--font-weight-bold);margin:2rem 0;margin:var(--spacing-xl) 0;position:relative;text-shadow:0 4px 8px #0000004d}.podium-page h1:after{background:linear-gradient(135deg,gold,#ffed4e);background:var(--gold-gradient);border-radius:2px;bottom:-12px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:100px}.podium-page h2{font-size:2rem;margin:3rem 0 2rem;margin:var(--spacing-2xl) 0 var(--spacing-xl)}.podium-page h2,.podium-page h3{color:#fff;font-weight:600;font-weight:var(--font-weight-semibold);text-shadow:0 2px 4px #0000004d}.podium-page h3{font-size:1.5rem;margin:2rem 0 1.5rem;margin:var(--spacing-xl) 0 var(--spacing-lg)}.back-dashboard-btn{align-items:center;background:#fffffff2;border:2px solid #ffffff4d;border-radius:12px;border-radius:var(--radius-md);box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);color:#374151;display:flex;font-weight:500;font-weight:var(--font-weight-medium);gap:.5rem;gap:var(--spacing-sm);left:2rem;left:var(--spacing-xl);padding:1rem 2rem;padding:var(--spacing-md) var(--spacing-xl);top:2rem;top:var(--spacing-xl)}.back-dashboard-btn:focus,.back-dashboard-btn:hover{background:#fff;box-shadow:0 8px 32px #00000026;box-shadow:var(--shadow-lg);color:#667eea;transform:translateY(-2px)}.class-podium{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;border-radius:var(--radius-xl);box-shadow:0 8px 32px #00000026;box-shadow:var(--shadow-lg);margin:3rem auto;margin:var(--spacing-2xl) auto;max-width:1000px;overflow:hidden;padding:3rem;padding:var(--spacing-2xl);position:relative}.class-podium:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .8s ease;width:100%}.class-podium:hover:before{left:100%}.podium-section{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:16px;border-radius:var(--radius-lg);margin:3rem 0;margin:var(--spacing-2xl) 0;padding:2rem;padding:var(--spacing-xl)}.podium-section h3{color:#fff;font-size:1.75rem;font-weight:700;font-weight:var(--font-weight-bold);letter-spacing:.5px;margin-bottom:2rem;margin-bottom:var(--spacing-xl);text-align:center;text-shadow:0 2px 4px #0000004d}.section-title{color:#3f51b5;font-size:1.5rem;margin-bottom:1rem;text-align:center;text-shadow:1px 1px 2px #0003}.podium-container{padding:2rem 0;padding:var(--spacing-xl) 0;position:relative}.podium{align-items:flex-end;display:flex;gap:3rem;gap:var(--spacing-2xl);justify-content:center;margin-top:3rem;margin-top:var(--spacing-2xl);perspective:1000px;position:relative}.podium-level{justify-content:flex-end;min-width:160px;transition:all .4s cubic-bezier(.4,0,.2,1);width:180px}.podium-level:hover{transform:translateY(-5px) scale(1.02)}.podium-img{max-width:120px}.podium-avatar-bounce{animation:bounceAvatar 2s ease-in-out infinite;left:50%;position:absolute;top:-50px;transform:translateX(-50%);z-index:2}.podium-avatar{background:linear-gradient(135deg,#667eea,#764ba2 50%,gold);border:4px solid #ffffffe6;box-shadow:0 8px 25px #ffd7004d,0 4px 15px #0003,inset 0 2px 4px #fff3;font-size:2.4rem;font-weight:var(--font-weight-bold);height:80px;margin:0 auto;overflow:hidden;position:relative;transition:all .3s ease;width:80px}.podium-avatar:before{background:linear-gradient(45deg,#0000,#ffffff4d,#0000);content:"";height:200%;left:-50%;position:absolute;top:-50%;transform:rotate(45deg);transition:transform .6s ease;width:200%}.podium-avatar:hover:before{transform:rotate(45deg) translate(50%,50%)}.podium-info{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:12px;border-radius:var(--radius-md);flex-direction:column;margin-top:1.5rem;margin-top:var(--spacing-lg);padding:1rem;padding:var(--spacing-md)}.podium-info,.podium-rank{align-items:center;display:flex}.podium-rank{color:gold;font-size:1.5rem;font-weight:var(--font-weight-bold);gap:.25rem;gap:var(--spacing-xs);margin-bottom:.25rem;margin-bottom:var(--spacing-xs);text-shadow:0 2px 4px #0000004d}.podium-student{color:#fff;font-size:1.1rem;font-weight:var(--font-weight-semibold);letter-spacing:.5px;text-shadow:0 1px 3px #0000004d}.podium-spot{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(135deg,#fff3,#ffffff1a 50%,#ffffff0d);border:2px solid #ffffff4d;border-radius:24px;border-radius:var(--radius-xl);box-shadow:0 8px 32px #00000026;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;opacity:0;outline:none;overflow:hidden;padding:2rem 1rem 3rem;padding:var(--spacing-xl) var(--spacing-md) var(--spacing-2xl);position:relative;transition:all .4s cubic-bezier(.4,0,.2,1);width:140px}.podium-spot:before{background:linear-gradient(90deg,gold,#ff6b6b,#4ecdc4);content:"";height:4px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.podium-spot:hover:before{opacity:1}.podium-spot.animate{animation:bounceIn .8s ease-out forwards;opacity:1}.podium-spot:hover{border-color:#ffffff80;box-shadow:0 16px 64px #0003;box-shadow:var(--shadow-xl);transform:translateY(-8px) scale(1.02)}.podium-spot:focus{box-shadow:0 0 0 4px #ffd7004d;z-index:2}.spot-1{background:linear-gradient(135deg,gold,#ffed4a 50%,#f7fafc);border-color:#ffd70066}.spot-2{background:linear-gradient(135deg,silver,#e2e8f0 50%,#f7fafc);border-color:#c0c0c066}.spot-3{background:linear-gradient(135deg,#cd7f32,#d69e2e 50%,#f7fafc);border-color:#cd7f3266}@keyframes bounceIn{0%{opacity:0;transform:translateY(60px) scale(.8)}50%{opacity:.7;transform:translateY(-10px) scale(1.05)}to{opacity:1;transform:translateY(0) scale(1)}}.podium-rank{font-size:2rem;margin-bottom:.5rem}.avatar{background:linear-gradient(135deg,#667eea,#764ba2);border:3px solid #ffffffe6;box-shadow:0 8px 32px #00000026;box-shadow:var(--shadow-lg);font-size:1.6rem;height:60px;margin-bottom:1rem;margin-bottom:var(--spacing-md);transition:all .3s ease;width:60px}.avatar:hover{box-shadow:0 16px 64px #0003;box-shadow:var(--shadow-xl);transform:scale(1.1)}.name{font-size:1.1rem;margin-bottom:.25rem;margin-bottom:var(--spacing-xs);text-align:center;text-shadow:0 1px 3px #0000004d}.score{border-radius:8px;border-radius:var(--radius-sm);color:#ffffffe6;font-size:1rem;font-weight:500;font-weight:var(--font-weight-medium);margin-top:.25rem;margin-top:var(--spacing-xs);padding:.25rem .5rem;padding:var(--spacing-xs) var(--spacing-sm)}.no-data,.score{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a}.no-data{border:1px solid #fff3;border-radius:16px;border-radius:var(--radius-lg);color:#fffc;font-size:1.2rem;margin:2rem 0;margin:var(--spacing-xl) 0;padding:3rem 0;padding:var(--spacing-2xl) 0;text-align:center}.spot-1.animate:before{animation:spotlightPulse 2s ease-in-out infinite;background:radial-gradient(circle,#ffd70066,#0000 70%);border-radius:50%;content:"";height:140px;left:50%;position:absolute;top:-40px;transform:translateX(-50%);width:140px;z-index:-1}@keyframes spotlightPulse{0%,to{opacity:.6;transform:translateX(-50%) scale(.9)}50%{opacity:1;transform:translateX(-50%) scale(1.2)}}.loading-container{align-items:center;color:#fff;display:flex;flex-direction:column;font-size:1.1rem;gap:1.5rem;gap:var(--spacing-lg);justify-content:center;min-height:400px}.loading-container svg{color:#667eea}.error-state{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:16px;border-radius:var(--radius-lg);margin:2rem 0;margin:var(--spacing-xl) 0;padding:3rem;padding:var(--spacing-2xl);text-align:center}.error-state p{color:#ffffffe6;font-size:1.1rem;margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}.error-state button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-weight:500;font-weight:var(--font-weight-medium);padding:1rem 2rem;padding:var(--spacing-md) var(--spacing-xl);transition:all .3s ease}.error-state button:hover{box-shadow:0 8px 32px #00000026;box-shadow:var(--shadow-lg);transform:translateY(-2px)}.podium-section{opacity:0;transform:translateY(30px);transition:all .6s ease}.podium-section.visible{opacity:1;transform:translateY(0)}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.animate{animation:slideInUp .6s ease-out forwards}.podium-spot:focus{box-shadow:0 0 0 4px #ffd70044;outline:2px solid gold}@media (max-width:600px){.podium{align-items:center;flex-direction:column;gap:1rem}.podium-spot{max-width:280px;padding:1rem;width:90%}.podium-rank{font-size:1.25rem}.avatar{font-size:20px;height:40px;width:40px}.name{font-size:.9rem}.score{font-size:.75rem}.back-button{font-size:.85rem;padding:.4rem .75rem}.section-title{font-size:1.25rem}}button{border-radius:12px;padding:1rem 2rem;transition:all .3s ease}button:focus-visible,button:hover{box-shadow:0 8px 32px #00000026}.podium-img{filter:drop-shadow(0 4px 8px rgba(0,0,0,.2));max-width:140px;transition:all .3s ease;width:100%;z-index:1}.podium-img:hover{transform:scale(1.02)}@media (max-width:768px){.podium{flex-wrap:wrap;gap:1.5rem;gap:var(--spacing-lg);justify-content:center}.podium-level{min-width:140px;width:150px}.podium-avatar{font-size:2rem;height:70px;width:70px}.podium-spot{padding:1.5rem .5rem 2rem;padding:var(--spacing-lg) var(--spacing-sm) var(--spacing-xl);width:120px}.class-podium{margin:2rem 1rem;margin:var(--spacing-xl) var(--spacing-md);padding:2rem;padding:var(--spacing-xl)}.back-dashboard-btn{font-size:.9rem;left:1rem;left:var(--spacing-md);padding:.5rem 1rem;padding:var(--spacing-sm) var(--spacing-md);top:1rem;top:var(--spacing-md)}}@media (max-width:480px){.podium{align-items:center;flex-direction:column;gap:2rem;gap:var(--spacing-xl)}.podium-level{width:200px}.podium-section h3{font-size:1.5rem}.class-podium{margin:1rem;margin:var(--spacing-md);padding:1.5rem;padding:var(--spacing-lg)}}.podium-page{background:#0009;border-radius:12px;box-shadow:0 4px 12px #0000004d;color:#fff;margin:2rem auto;max-width:900px;padding:2rem}.podium-visual{align-items:flex-end;animation:fadeIn 1s;display:flex;gap:2rem;justify-content:center;margin:2rem 0 1rem}.podium-level{align-items:center;border-radius:16px 16px 0 0;box-shadow:0 8px 24px #0000002e;display:flex;flex-direction:column;min-width:140px;position:relative;transition:transform .3s}.podium-level.first{transform:scale(1.1);z-index:2}.podium-level.second,.podium-level.third{z-index:1}.podium-emoji{animation:bounce 1s infinite alternate;font-size:2.5rem;margin-bottom:-1rem}.podium-box{background:#ffffffd9;border-radius:12px 12px 0 0;margin-top:.5rem;min-width:120px;padding:1.2rem 1.5rem .8rem;text-align:center}.podium-rank{color:#333;font-size:2.2rem;font-weight:700}.podium-student{color:#222;font-size:1.15rem;font-weight:600;margin-top:.5rem}.podium-points{color:#444;font-size:1rem;margin-top:.2rem}.empty{color:#aaa}@keyframes bounce{to{transform:translateY(-10px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.podium-emoji,.podium-points,.podium-rank,.podium-student{margin-left:0;margin-right:0;text-align:center;width:100%}.back-dashboard-btn{background:#222;border:2px solid gold;border-radius:8px;box-shadow:0 2px 8px #ffd70033;color:gold;display:inline-block;font-size:1.1rem;margin:0;padding:.7rem 2rem;position:absolute;transition:background .2s,color .2s,box-shadow .2s}.back-dashboard-btn:focus-visible,.back-dashboard-btn:hover{background:gold;color:#222;outline:2px solid gold}.podium-visual-single{align-items:flex-end;display:flex;height:320px;justify-content:center;margin:2rem auto 1rem;position:relative;width:420px}.podium-img-single{bottom:-30px;left:0;max-width:420px;pointer-events:none;position:absolute;width:100%;z-index:0}.podium-avatar-bounce-single{align-items:center;animation:bounceAvatar 1.2s infinite alternate;display:flex;flex-direction:column;position:absolute}.podium-avatar{align-items:center;background:linear-gradient(135deg,#3f51b5 60%,gold);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #ffd70055;color:#fff;display:flex;font-size:2.2rem;font-weight:700;height:70px;justify-content:center;margin-bottom:.3rem;width:70px}.podium-student{color:gold;font-size:1rem;margin-top:.2rem;text-align:center}@keyframes bounceAvatar{0%{transform:translateY(0)}50%{transform:translateY(-18px)}to{transform:translateY(0)}}:root{--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:0.75rem;--spacing-lg:1rem;--spacing-xl:1.5rem;--spacing-2xl:2rem;--spacing-3xl:3rem;--spacing-4xl:4rem;--radius-full:9999px;--font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;--shadow-2xl:0 25px 50px -12px #00000040;--transition-fast:150ms ease;--transition-base:250ms ease;--transition-slow:300ms ease}.hall-page{--primary-gradient:linear-gradient(135deg,#3494e6,#516395,#61e294);align-items:center;display:flex;flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-family);min-height:100vh;overflow-x:hidden;padding:2rem;padding:var(--spacing-2xl);position:relative}.hall-page:before{background:radial-gradient(circle at 20% 80%,#7877c64d 0,#0000 50%),radial-gradient(circle at 80% 20%,#ff77c633 0,#0000 50%),radial-gradient(circle at 40% 40%,#78dbff26 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:0}.hall-container{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff1a;border:1px solid #fff3;border-radius:1.5rem;border-radius:var(--radius-2xl);box-shadow:0 25px 50px -12px #00000040;box-shadow:var(--shadow-2xl);color:#fff;margin:2rem auto;margin:var(--spacing-2xl) auto;max-width:1400px;overflow:hidden;padding:3rem 2rem;padding:var(--spacing-3xl) var(--spacing-2xl);position:relative;width:95vw;z-index:1}.hall-container:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;pointer-events:none;position:absolute;top:0;transition:left .8s ease;width:100%}.hall-container:hover:before{left:100%}.page-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,gold,#ffed4a 50%,gold);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:3rem;font-weight:700;font-weight:var(--font-weight-bold);letter-spacing:.5px;margin-bottom:2rem;margin-bottom:var(--spacing-2xl);position:relative;text-align:center;text-shadow:0 4px 8px #0000004d}.page-title:after{animation:trophyFloat 3s ease-in-out infinite;content:"🏆";font-size:2.5rem;position:absolute;right:-60px;top:50%;transform:translateY(-50%)}@keyframes trophyFloat{0%,to{transform:translateY(-50%) rotate(-5deg)}50%{transform:translateY(-60%) rotate(5deg)}}.filter-toggle{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;gap:var(--spacing-md);justify-content:center;margin-bottom:2rem;margin-bottom:var(--spacing-2xl);margin-top:1.5rem;margin-top:var(--spacing-xl)}.filter-toggle button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:2px solid #ffffff4d;border-radius:.75rem;border-radius:var(--radius-lg);color:#fff;cursor:pointer;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-family);font-weight:600;font-weight:var(--font-weight-semibold);overflow:hidden;padding:.75rem 1.5rem;padding:var(--spacing-md) var(--spacing-xl);position:relative;transition:all .25s ease;transition:all var(--transition-base)}.filter-toggle button:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.filter-toggle button:hover:before{left:100%}.filter-toggle button.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#ffffff80;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);color:#fff;transform:translateY(-2px)}.filter-toggle button:hover:not(.active){background:#fff3;border-color:#ffffff80;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);transform:translateY(-2px)}.filter-toggle input,.filter-toggle select{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:2px solid #ffffff4d;border-radius:.5rem;border-radius:var(--radius-md);color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-family);font-weight:500;font-weight:var(--font-weight-medium);padding:.75rem 1rem;padding:var(--spacing-md) var(--spacing-lg);transition:all .25s ease;transition:all var(--transition-base)}.filter-toggle input::placeholder{color:#ffffffb3}.filter-toggle input:focus,.filter-toggle select:focus{background:#ffffff26;border-color:gold;box-shadow:0 0 0 3px #ffd7004d;outline:none}.winner-grid{grid-gap:2rem;grid-gap:var(--spacing-2xl);display:grid;gap:2rem;gap:var(--spacing-2xl);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));justify-content:center;margin-top:2rem;margin-top:var(--spacing-2xl);perspective:1000px}.winner-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(135deg,#fff3,#ffffff1a 50%,#ffffff0d);border:2px solid #ffffff4d;border-radius:1.5rem;border-radius:var(--radius-2xl);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;box-shadow:var(--shadow-xl);cursor:pointer;margin:0 auto;max-width:320px;overflow:hidden;padding:2rem 1.5rem;padding:var(--spacing-2xl) var(--spacing-xl);position:relative;text-align:center;transform-style:preserve-3d;transition:all .4s cubic-bezier(.4,0,.2,1);width:100%}.winner-card:before{background:linear-gradient(90deg,gold,#ff6b6b,#4ecdc4);content:"";height:4px;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .25s ease;transition:opacity var(--transition-base)}.winner-card:hover:before{opacity:1}.winner-card:focus,.winner-card:hover{border-color:#ffffff80;box-shadow:0 25px 50px -12px #00000040;box-shadow:var(--shadow-2xl);outline:none;transform:translateY(-12px) rotateX(5deg) rotateY(2deg)}.winner-card:focus{border-color:gold;box-shadow:0 25px 50px -12px #00000040,0 0 0 3px #ffd7004d;box-shadow:var(--shadow-2xl),0 0 0 3px #ffd7004d}.winner-card{animation:cardEnter .8s cubic-bezier(.68,-.55,.27,1.55) forwards;opacity:0}@keyframes cardEnter{0%{opacity:0;transform:translateY(50px) scale(.9) rotateX(20deg)}to{opacity:1;transform:translateY(0) scale(1) rotateX(0deg)}}.winner-card:first-child{animation-delay:.1s}.winner-card:nth-child(2){animation-delay:.2s}.winner-card:nth-child(3){animation-delay:.3s}.winner-card:nth-child(4){animation-delay:.4s}.winner-card:nth-child(5){animation-delay:.5s}.winner-card:nth-child(6){animation-delay:.6s}.trophy-icon{animation:trophyGlow 3s ease-in-out infinite;color:gold;filter:drop-shadow(0 4px 12px rgba(255,215,0,.4));font-size:3.5rem;margin-bottom:1rem;margin-bottom:var(--spacing-lg);position:relative}.trophy-icon:before{animation:trophyPulse 2s ease-in-out infinite;background:radial-gradient(circle,#ffd7004d 0,#0000 70%);border-radius:50%;content:"";height:120%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:120%;z-index:-1}@keyframes trophyGlow{0%,to{filter:drop-shadow(0 4px 12px rgba(255,215,0,.4));transform:translateY(0) scale(1)}50%{filter:drop-shadow(0 8px 20px rgba(255,215,0,.6));transform:translateY(-8px) scale(1.05)}}@keyframes trophyPulse{0%,to{opacity:.3;transform:translate(-50%,-50%) scale(1)}50%{opacity:.6;transform:translate(-50%,-50%) scale(1.2)}}.medal{animation:medalSpin 4s linear infinite;background:#ffffffe6;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);font-size:2rem;padding:.5rem;padding:var(--spacing-sm);right:-15px;top:-15px;z-index:2}@keyframes medalSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.medal:after{animation:medalShine 3s ease-in-out infinite;background:linear-gradient(45deg,#0000 30%,#fffc 50%,#0000 70%);border-radius:50%;content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}@keyframes medalShine{0%,to{opacity:0;transform:rotate(0deg)}50%{opacity:1;transform:rotate(180deg)}}.avatar{background:linear-gradient(135deg,#667eea,#764ba2 50%,gold);border:4px solid #ffffffe6;box-shadow:0 8px 25px #ffd70033,0 4px 15px #0000001a,inset 0 2px 4px #fff3;font-size:2.2rem;font-weight:var(--font-weight-bold);height:80px;margin:0 auto 1rem;margin:0 auto var(--spacing-lg);overflow:hidden;position:relative;transition:all .25s ease;transition:all var(--transition-base);width:80px}.avatar:before{background:linear-gradient(45deg,#0000,#ffffff4d,#0000);content:"";height:200%;left:-50%;position:absolute;top:-50%;transform:rotate(45deg);transition:transform .6s ease;width:200%}.avatar:hover:before{transform:rotate(45deg) translate(50%,50%)}.winner-card:hover .avatar{box-shadow:0 12px 35px #ffd70066,0 6px 20px #0003,inset 0 2px 4px #ffffff4d;transform:scale(1.1) rotate(5deg)}.info{position:relative;text-align:center;z-index:1}.name{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,gold,#ffed4a);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:1.4rem;font-weight:700;font-weight:var(--font-weight-bold);letter-spacing:.5px;margin-bottom:.5rem;margin-bottom:var(--spacing-sm);text-shadow:0 2px 4px #0000004d}.meta{align-items:center;color:#ffffffe6;display:flex;flex-wrap:wrap;font-size:1rem;font-weight:500;font-weight:var(--font-weight-medium);gap:.5rem;gap:var(--spacing-sm);justify-content:center;margin-top:.5rem;margin-top:var(--spacing-sm)}.category{background:linear-gradient(135deg,#667eea,#764ba2);border:1px solid #ffffff4d;border-radius:.75rem;border-radius:var(--radius-lg);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);color:#fff;display:inline-block;font-size:1rem;font-weight:600;font-weight:var(--font-weight-semibold);margin-top:1rem;margin-top:var(--spacing-lg);padding:.5rem 1rem;padding:var(--spacing-sm) var(--spacing-lg);transition:all .25s ease;transition:all var(--transition-base)}.winner-card:hover .category{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);transform:translateY(-2px)}.rank-1{background:linear-gradient(135deg,#ffd70033,#ffffff1a 50%,#ffd7000d);border:3px solid gold}.rank-2{background:linear-gradient(135deg,#c0c0c033,#ffffff1a 50%,#c0c0c00d);border:3px solid silver}.rank-3{background:linear-gradient(135deg,#cd7f3233,#ffffff1a 50%,#cd7f320d);border:3px solid #cd7f32}.winner-card.trophy{border:3px solid gold;box-shadow:0 0 30px #ffd70066,0 25px 50px -12px #00000040;box-shadow:0 0 30px #ffd70066,var(--shadow-2xl);position:relative}.winner-card.trophy:after{animation:trophyShimmer 3s ease-in-out infinite;background:linear-gradient(45deg,#0000 30%,#ffd7001a 50%,#0000 70%);border-radius:1.5rem;border-radius:var(--radius-2xl);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}@keyframes trophyShimmer{0%,to{opacity:0;transform:translateX(-100%)}50%{opacity:1;transform:translateX(100%)}}.leader-section{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff1a;border:1px solid #fff3;border-radius:1.5rem;border-radius:var(--radius-2xl);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;box-shadow:var(--shadow-xl);margin-left:auto;margin-right:auto;margin-top:4rem;margin-top:var(--spacing-4xl);max-width:700px;overflow:hidden;padding:2rem;padding:var(--spacing-2xl);position:relative}.leader-section:before{background:linear-gradient(90deg,#667eea,#764ba2,gold);content:"";height:4px;left:0;position:absolute;right:0;top:0}.leader-section h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,gold,#ffed4a);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:1.8rem;font-weight:700;font-weight:var(--font-weight-bold);margin-bottom:1.5rem;margin-bottom:var(--spacing-xl);text-align:center;text-shadow:0 2px 4px #0000004d}.leader-list{display:flex;flex-direction:column;gap:.75rem;gap:var(--spacing-md);list-style:none;margin-bottom:2rem;margin-bottom:var(--spacing-2xl);padding:0}.leader-list li{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:.75rem;border-radius:var(--radius-lg);color:#fff;font-size:1.1rem;font-weight:500;font-weight:var(--font-weight-medium);overflow:hidden;padding:1rem;padding:var(--spacing-lg);position:relative;transition:all .25s ease;transition:all var(--transition-base)}.leader-list li:before{background:linear-gradient(135deg,#667eea,#764ba2);bottom:0;content:"";left:0;position:absolute;top:0;transition:width .25s ease;transition:width var(--transition-base);width:4px}.leader-list li:hover:before{opacity:.1;width:100%}.leader-list li:hover{background:#ffffff1a;border-color:#ffffff4d;transform:translateX(8px)}.leader-list li{animation:listItemSlide .6s ease forwards;opacity:0}.leader-list li:first-child{animation-delay:.1s}.leader-list li:nth-child(2){animation-delay:.2s}.leader-list li:nth-child(3){animation-delay:.3s}.leader-list li:nth-child(4){animation-delay:.4s}.leader-list li:nth-child(5){animation-delay:.5s}@keyframes listItemSlide{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}.sparkle{display:inline-block;position:relative}.sparkle:after{animation:sparkleFloat 2s ease-in-out infinite;content:"✨";font-size:1.2rem;position:absolute;right:-30px;top:-8px}@keyframes sparkleFloat{0%,to{opacity:.6;transform:scale(.8) rotate(0deg) translateY(0)}25%{opacity:1;transform:scale(1.2) rotate(90deg) translateY(-5px)}50%{opacity:.8;transform:scale(1) rotate(180deg) translateY(-8px)}75%{opacity:1;transform:scale(1.1) rotate(270deg) translateY(-3px)}}.back-button,.back-dashboard-btn{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:2px solid #ffffff4d;border-radius:.75rem;border-radius:var(--radius-lg);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);color:#374151;cursor:pointer;display:flex;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-family);font-size:1rem;font-weight:600;font-weight:var(--font-weight-semibold);gap:.5rem;gap:var(--spacing-sm);left:1.5rem;left:var(--spacing-xl);padding:.75rem 1.5rem;padding:var(--spacing-md) var(--spacing-xl);position:absolute;top:1.5rem;top:var(--spacing-xl);transition:all .25s ease;transition:all var(--transition-base);z-index:100}.back-button:focus,.back-button:hover,.back-dashboard-btn:focus,.back-dashboard-btn:hover{background:#fff;border-color:#667eea;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);color:#667eea;outline:none;transform:translateY(-2px)}button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:2px solid #ffffff4d;border-radius:.5rem;border-radius:var(--radius-md);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-family);font-weight:500;font-weight:var(--font-weight-medium);overflow:hidden;padding:.75rem 1.5rem;padding:var(--spacing-md) var(--spacing-xl);position:relative;transition:all .25s ease;transition:all var(--transition-base)}button:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}button:hover:before{left:100%}button:focus-visible,button:hover{background:#fff3;border-color:#ffffff80;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);outline:none;transform:translateY(-2px)}button:focus{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d,0 0 0 3px #ffd7004d;box-shadow:var(--shadow-lg),0 0 0 3px #ffd7004d}.winner-modal{align-items:center;animation:modalFadeIn .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:200}@keyframes modalFadeIn{0%{-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);opacity:0}to{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:1}}.modal-content{animation:modalSlideIn .4s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #ffffff4d;border-radius:1.5rem;border-radius:var(--radius-2xl);box-shadow:0 25px 50px -12px #00000040;box-shadow:var(--shadow-2xl);color:#374151;max-width:90vw;min-width:400px;padding:3rem;padding:var(--spacing-3xl);position:relative;text-align:center}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.close-btn{align-items:center;background:#ffffff1a;border:2px solid #0000001a;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:1.5rem;height:40px;justify-content:center;position:absolute;right:1rem;right:var(--spacing-lg);top:1rem;top:var(--spacing-lg);transition:all .25s ease;transition:all var(--transition-base);width:40px}.close-btn:focus,.close-btn:hover{background:#ff00001a;border-color:#ff00004d;color:#dc2626;outline:none;transform:scale(1.1)}.download-cert-btn{background:linear-gradient(135deg,gold,#ffed4a);border:none;border-radius:.75rem;border-radius:var(--radius-lg);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);color:#374151;cursor:pointer;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-family);font-weight:600;font-weight:var(--font-weight-semibold);margin-top:1rem;margin-top:var(--spacing-lg);overflow:hidden;padding:.75rem 1.5rem;padding:var(--spacing-md) var(--spacing-xl);position:relative;transition:all .25s ease;transition:all var(--transition-base)}.download-cert-btn:before{background:linear-gradient(90deg,#0000,#fff6,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.download-cert-btn:hover:before{left:100%}.download-cert-btn:focus,.download-cert-btn:hover{background:linear-gradient(135deg,#ffed4a,gold);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);outline:none;transform:translateY(-2px)}.hof-wall{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:1.5rem;border-radius:var(--radius-2xl);margin-top:4rem;margin-top:var(--spacing-4xl);padding:2rem;padding:var(--spacing-2xl)}.hof-wall h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,gold,#ffed4a);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2rem;font-weight:700;font-weight:var(--font-weight-bold);margin-bottom:2rem;margin-bottom:var(--spacing-2xl);text-align:center}.hof-wall-grid{grid-gap:1rem;grid-gap:var(--spacing-lg);display:grid;gap:1rem;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:1.5rem;margin-top:var(--spacing-xl)}.hof-wall-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:.75rem;border-radius:var(--radius-lg);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);color:#fff;cursor:pointer;overflow:hidden;padding:1rem;padding:var(--spacing-lg);position:relative;text-align:center;transition:all .25s ease;transition:all var(--transition-base)}.hof-wall-card:before{background:linear-gradient(90deg,#667eea,#764ba2);content:"";height:3px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:transform .25s ease;transition:transform var(--transition-base)}.hof-wall-card:focus:before,.hof-wall-card:hover:before{transform:scaleX(1)}.hof-wall-card:focus,.hof-wall-card:hover{background:#ffffff26;border-color:#fff6;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);outline:none;transform:translateY(-4px) scale(1.02)}.hof-wall-card .avatar{font-size:1.4rem;height:50px;margin:0 auto .75rem;margin:0 auto var(--spacing-md);width:50px}.hof-wall-card .name{font-size:1rem;font-weight:600;font-weight:var(--font-weight-semibold);margin-bottom:.5rem;margin-bottom:var(--spacing-sm)}.hof-wall-card .meta{font-size:.9rem;opacity:.8}.fun-facts{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:1.5rem;border-radius:var(--radius-2xl);margin-top:4rem;margin-top:var(--spacing-4xl);padding:2rem;padding:var(--spacing-2xl);text-align:center}.fun-facts h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,gold,#ffed4a);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2rem;font-weight:700;font-weight:var(--font-weight-bold);margin-bottom:2rem;margin-bottom:var(--spacing-2xl)}.fun-facts ul{display:flex;flex-direction:column;gap:1rem;gap:var(--spacing-lg);list-style:none;padding:0}.fun-facts li{background:#ffffff1a;border:1px solid #fff3;border-radius:.75rem;border-radius:var(--radius-lg);color:#fff;font-size:1.2rem;font-weight:500;font-weight:var(--font-weight-medium);padding:1rem;padding:var(--spacing-lg);transition:all .25s ease;transition:all var(--transition-base)}.fun-facts li:hover{background:#ffffff26;transform:translateX(4px)}.winner-card.column-style{align-items:center;-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000;border:none;box-shadow:none;display:flex;flex-direction:column;margin:2rem 1rem 0;margin:var(--spacing-2xl) var(--spacing-lg) 0;min-width:160px;padding:0;position:relative;width:180px}.winner-column-img{filter:drop-shadow(0 4px 8px rgba(0,0,0,.2));margin-top:50px;max-width:140px;transition:all .25s ease;transition:all var(--transition-base);width:100%;z-index:1}.winner-card.column-style:hover .winner-column-img{filter:drop-shadow(0 8px 16px rgba(0,0,0,.3));transform:scale(1.05)}.winner-avatar-bounce{animation:columnAvatarBounce 2s ease-in-out infinite;left:50%;position:absolute;top:-40px;transform:translateX(-50%);z-index:2}@keyframes columnAvatarBounce{0%,to{transform:translateX(-50%) translateY(0) scale(1)}50%{transform:translateX(-50%) translateY(-20px) scale(1.05)}}.winner-avatar{background:linear-gradient(135deg,#667eea,#764ba2 50%,gold);border:4px solid #ffffffe6;border-radius:50%;box-shadow:0 8px 25px #ffd7004d,0 4px 15px #0003;color:#fff;font-size:2.2rem;font-weight:700;font-weight:var(--font-weight-bold);height:80px;justify-content:center;margin:0 auto;transition:all .25s ease;transition:all var(--transition-base);width:80px}.winner-avatar,.winner-info{align-items:center;display:flex}.winner-info{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:.75rem;border-radius:var(--radius-lg);flex-direction:column;margin-top:1rem;margin-top:var(--spacing-lg);padding:.75rem;padding:var(--spacing-md)}.winner-name{color:#fff;font-size:1.1rem;font-weight:600;font-weight:var(--font-weight-semibold);margin-bottom:.5rem;margin-bottom:var(--spacing-sm);text-align:center;text-shadow:0 1px 3px #0000004d}.winner-medal{animation:medalFloat 3s ease-in-out infinite;font-size:2rem;margin-top:.25rem;margin-top:var(--spacing-xs);text-align:center}@keyframes medalFloat{0%,to{transform:scale(1) rotate(0deg)}50%{transform:scale(1.1) rotate(10deg)}}@media (max-width:768px){.hall-page{padding:1rem;padding:var(--spacing-lg)}.hall-container{margin:1rem auto;margin:var(--spacing-lg) auto;padding:1.5rem;padding:var(--spacing-xl)}.page-title{font-size:2.2rem}.page-title:after{font-size:2rem;right:-40px}.winner-grid{gap:1.5rem;gap:var(--spacing-xl);grid-template-columns:1fr}.winner-card{max-width:100%}.filter-toggle{align-items:stretch;flex-direction:column;gap:.75rem;gap:var(--spacing-md)}.filter-toggle button,.filter-toggle input,.filter-toggle select{width:100%}.back-button,.back-dashboard-btn{font-size:.9rem;left:.75rem;left:var(--spacing-md);padding:.5rem .75rem;padding:var(--spacing-sm) var(--spacing-md);top:.75rem;top:var(--spacing-md)}}@media (max-width:480px){.page-title{font-size:1.8rem}.page-title:after{display:none}.winner-card{padding:1rem;padding:var(--spacing-lg)}.avatar{font-size:1.8rem;height:60px;width:60px}.trophy-icon{font-size:2.5rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--certificates-primary:#3494e6;--certificates-secondary:#516395;--certificates-accent:#61e294;--certificates-gold:gold;--certificates-orange:#ff9800;--certificates-blue:#1976d2;--certificates-gradient:linear-gradient(135deg,var(--certificates-primary) 0%,var(--certificates-secondary) 50%,var(--certificates-accent) 100%)}.certificates-page{animation:gradientShift 15s ease infinite;background:linear-gradient(135deg,#3494e6,#516395 50%,#61e294);background:var(--certificates-gradient);background-size:400% 400%;min-height:100vh;overflow-x:hidden;padding:2rem;padding:var(--space-xl);position:relative;&:before{background:radial-gradient(circle at 20% 80%,#3494e614 0,#0000 50%),radial-gradient(circle at 80% 20%,#61e2940d 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}}.certificates-title{-webkit-text-fill-color:#0000;background:linear-gradient(45deg,#fff,gold);background:linear-gradient(45deg,#fff,var(--certificates-gold));background-clip:text;-webkit-background-clip:text;color:#fff;font-size:2rem;font-size:var(--font-3xl);font-weight:700;text-align:center;text-shadow:2px 2px 4px #0000004d}.certificates-controls,.certificates-title{margin-bottom:2rem;margin-bottom:var(--space-xl)}.certificates-controls{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff26;background:var(--glass-bg-strong);border:1px solid #fff3;border:1px solid var(--glass-border);border-radius:1rem;border-radius:var(--radius-xl);box-shadow:0 8px 32px #1f26875e;box-shadow:var(--glass-shadow);display:flex;flex-wrap:wrap;gap:1rem;gap:var(--space-md);justify-content:center;padding:1.5rem;padding:var(--space-lg)}.week-navigation{align-items:center;background:#ffffff1a;border-radius:.75rem;border-radius:var(--radius-lg);display:flex;gap:.5rem;gap:var(--space-sm);padding:.5rem;padding:var(--space-sm)}.week-display{color:#fff;font-weight:600;min-width:200px;padding:0 1rem;padding:0 var(--space-md);text-align:center}.search-input{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:.5rem;border-radius:var(--radius-md);font-size:1rem;font-size:var(--font-base);min-width:200px;padding:.5rem 1rem;padding:var(--space-sm) var(--space-md);&::placeholder{color:#fff9}&:focus{background:#ffffff26;border-color:#61e294;border-color:var(--certificates-accent);box-shadow:0 0 0 3px #f093fb33;outline:none}}.btn-control,.search-input{color:#fff;transition:all .3s ease}.btn-control{background:linear-gradient(45deg,#3494e6,#516395);background:linear-gradient(45deg,var(--certificates-primary),var(--certificates-secondary));border:none;border-radius:.5rem;border-radius:var(--radius-md);box-shadow:0 4px 15px #667eea4d;cursor:pointer;font-weight:600;padding:.5rem 1.5rem;padding:var(--space-sm) var(--space-lg);&:hover:not(:disabled){background:linear-gradient(45deg,#7c8eec,#8b5fc7);box-shadow:0 8px 25px #667eea66;transform:translateY(-2px)}&:active:not(:disabled){transform:translateY(0)}&:disabled{cursor:not-allowed;opacity:.6;transform:none!important}}.certificate-grid{grid-gap:2rem;grid-gap:var(--space-xl);display:grid;gap:2rem;gap:var(--space-xl);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-bottom:3rem;margin-bottom:var(--space-2xl)}.student-card{animation:cardEntrance .6s ease-out forwards;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff26;background:var(--glass-bg-strong);border:2px dashed gold;border:2px dashed var(--certificates-gold);border-radius:1.5rem;border-radius:var(--radius-2xl);box-shadow:0 8px 32px #1f26875e;box-shadow:var(--glass-shadow);opacity:0;overflow:hidden;padding:2rem;padding:var(--space-xl);position:relative;transform:translateY(20px);transition:all .3s ease;&:nth-child(odd){animation-delay:.1s}&:nth-child(2n){animation-delay:.2s}&:hover{border-color:#61e294;border-color:var(--certificates-accent);box-shadow:0 12px 40px #1f268780;box-shadow:var(--glass-shadow-strong);transform:translateY(-5px)}h3{color:gold;color:var(--certificates-gold);font-family:Fredoka One,Comic Sans MS,cursive,sans-serif;font-size:1.25rem;font-size:var(--font-xl);margin-bottom:.5rem;margin-bottom:var(--space-sm);text-shadow:1px 1px 2px #0000004d}p{color:#ffffffe6;font-size:1.125rem;font-size:var(--font-lg);font-weight:500;margin-bottom:1.5rem;margin-bottom:var(--space-lg)}button{background:linear-gradient(90deg,gold 60%,#ffb347);background:linear-gradient(90deg,var(--certificates-gold) 60%,#ffb347 100%);border:none;border-radius:.5rem;border-radius:var(--radius-md);box-shadow:0 4px 15px #ffd7004d;color:#1976d2;color:var(--certificates-blue);cursor:pointer;font-size:1rem;font-size:var(--font-base);font-weight:700;margin-bottom:.5rem;margin-bottom:var(--space-sm);padding:1rem 1.5rem;padding:var(--space-md) var(--space-lg);transition:all .3s ease;width:100%;&:hover:not(:disabled){background:linear-gradient(90deg,#ffb347 60%,gold);background:linear-gradient(90deg,#ffb347 60%,var(--certificates-gold) 100%);box-shadow:0 8px 25px #ffd70066;transform:translateY(-2px)}&:active:not(:disabled){transform:translateY(0)}&:focus{outline:2px solid #1976d2;outline:2px solid var(--certificates-blue);outline-offset:2px}&:disabled{cursor:not-allowed;opacity:.6;transform:none!important}}&:before{animation:sparkle 2s ease-in-out infinite;content:"⭐";font-size:1.5rem;position:absolute;right:1rem;right:var(--space-md);top:1rem;top:var(--space-md)}}.certificate{align-items:center;background:linear-gradient(135deg,#fff,#fffbf0);background-image:radial-gradient(circle at 20% 20%,#ffd7001a 0,#0000 50%),radial-gradient(circle at 80% 80%,#ff98001a 0,#0000 50%);border:6px dashed gold;border:6px dashed var(--certificates-gold);box-shadow:0 20px 60px #00000026,inset 0 1px 0 #fff9;display:flex;flex-direction:column;font-family:Fredoka One,Comic Sans MS,cursive,sans-serif;height:600px;justify-content:center;margin:2rem auto;margin:var(--space-xl) auto;overflow:hidden;padding:var(--space-2xl) var(--space-2xl);width:900px;&:before{animation:sparkle 3s ease-in-out infinite;right:18px;top:18px}&:after,&:before{content:"🌟";filter:drop-shadow(0 2px 4px rgba(255,215,0,.5));font-size:2.5rem;position:absolute;z-index:2}&:after{animation:sparkle 3s ease-in-out 1.5s infinite;bottom:18px;left:18px}}.certificate-logo{animation:logoFloat 4s ease-in-out infinite;filter:drop-shadow(0 4px 8px rgba(255,215,0,.3));width:120px}.certificate-logo,.diploma-title{margin-bottom:1.5rem;margin-bottom:var(--space-lg)}.diploma-title{animation:titleShimmer 4s ease-in-out infinite;color:#ff9800;color:var(--certificates-orange);font-family:Fredoka One,Comic Sans MS,cursive,sans-serif;font-size:2.7rem;letter-spacing:2px;text-align:center;text-shadow:2px 2px 0 #ffe082}.diploma-body{color:#333;font-family:Georgia,serif;font-size:1.3rem;line-height:1.6;margin-bottom:2rem;margin-bottom:var(--space-xl);text-align:center}.student-name{color:#1976d2;color:var(--certificates-blue);font-family:Fredoka One,Comic Sans MS,cursive,sans-serif;font-size:2.2rem;letter-spacing:1px;margin:1rem 0 1.5rem;margin:var(--space-md) 0 var(--space-lg) 0;text-shadow:1px 1px 2px #1976d24d}.certificate-comments{background:#ffd7001a;border:1px dashed gold;border:1px dashed var(--certificates-gold);border-radius:.75rem;border-radius:var(--radius-lg);color:#444;font-size:1.1rem;margin-top:1.5rem;margin-top:var(--space-lg);max-width:600px;padding:1.5rem;padding:var(--space-lg);text-align:left;h4{color:#ff9800;color:var(--certificates-orange);font-family:Fredoka One,Comic Sans MS,cursive,sans-serif;font-size:1.3rem;margin-bottom:.5rem;margin-bottom:var(--space-sm)}ul{padding-left:1.2em;li{line-height:1.4;margin-bottom:.3em}}}.diploma-signature{margin-top:2rem;margin-top:var(--space-xl);text-align:center}.sig-line-wrapper{align-items:center;display:flex;flex-direction:column;margin:0 auto;width:220px}.sig-image{display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));height:auto;margin-bottom:-10px;width:220px}.sig-line{border-bottom:2px solid #1976d2;border-bottom:2px solid var(--certificates-blue);height:.5rem;margin:0 auto .2rem;width:220px}.sig-label{color:#333;font-weight:600;margin-top:.5rem;margin-top:var(--space-sm)}@keyframes cardEntrance{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes titleShimmer{0%,to{text-shadow:2px 2px 0 #ffe082}50%{text-shadow:2px 2px 0 #ffe082,0 0 20px #ff980080}}@media (max-width:1000px){.certificate{height:auto;padding:1.5rem;padding:var(--space-lg);width:98vw}}@media (max-width:768px){.certificates-page{padding:1.5rem;padding:var(--space-lg)}.certificates-title{font-size:1.5rem;font-size:var(--font-2xl)}.certificates-controls{align-items:stretch;flex-direction:column}.week-navigation{justify-content:space-between}.certificate-grid{gap:1.5rem;gap:var(--space-lg);grid-template-columns:1fr}.student-card{margin:0 auto;max-width:400px}}@media (max-width:480px){.certificate,.certificates-page{padding:1rem;padding:var(--space-md)}.diploma-title{font-size:2rem}.student-name{font-size:1.8rem}}@media print{body *{visibility:hidden!important}.certificate,.certificate *{visibility:visible!important}.certificate{background:#fff!important;border-radius:0!important;box-shadow:none!important;color:#222!important;height:auto;left:0;margin:0!important;position:absolute!important;top:0;width:100vw}}@media (prefers-reduced-motion:reduce){.certificates-page{animation:none;background:#3494e6;background:var(--certificates-primary)}.certificate-logo,.diploma-title,.student-card{animation:none;opacity:1;transform:none}.certificate:after,.certificate:before,.student-card:before{animation:none}}h1,h2,h3{text-align:center}.certificate .date,.certificate .student-name,.certificate-date,.student-card .date,.student-card h3,.student-name{text-shadow:none!important}.badges-page{background:#0009;min-height:100vh;padding:2rem;text-align:center}.badge-section{margin-top:2rem}.badge-students{display:flex;flex-wrap:wrap;gap:2rem 1rem;justify-content:center;margin-bottom:2rem;margin-top:2rem}.badge-card{background-color:#f5f5f5;border-radius:10px;box-shadow:0 2px 6px #0000001a;margin-bottom:2rem;padding:1rem;position:relative;text-align:center;width:140px}.medal{background:#fff;box-shadow:0 0 5px #0003;font-size:28px;left:-10px;padding:.25rem;position:absolute;top:-10px}.avatar,.medal{border-radius:50%}.avatar{align-items:center;background-color:#007bff;color:#fff;display:flex;font-size:24px;font-weight:700;height:50px;justify-content:center;margin:1.5rem auto .5rem;width:50px}.name{font-size:14px;font-weight:600}.fireworks-overlay{height:100%;left:0;overflow:hidden;pointer-events:none;position:fixed;top:0;width:100%;z-index:999}.firework{animation:explode 1s ease-out infinite;background:radial-gradient(circle,gold,#0000);background:radial-gradient(circle,var(--color,gold),#0000);border-radius:50%;height:80px;opacity:.6;position:absolute;width:80px}.firework:first-child{--color:gold;animation-delay:0s;left:50%;top:40%}.firework:nth-child(2){--color:red;animation-delay:.3s;left:30%;top:30%}.firework:nth-child(3){--color:blue;animation-delay:.6s;left:70%;top:60%}.firework:nth-child(4){--color:green;animation-delay:.9s;left:80%;top:50%}@keyframes explode{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(3)}}.confetti-piece{animation:fall 3s ease-out forwards;background-color:var(--confetti-color);height:8px;opacity:.9;position:absolute;top:0;width:8px;z-index:998}@keyframes fall{0%{transform:translateY(0) rotate(0deg)}to{opacity:0;transform:translateY(100vh) rotate(1turn)}}.birthday-banner{background:gold;border-radius:12px;color:#4a418a;font-size:1.1em;font-weight:700;margin-bottom:.5em;padding:.5em 1em;text-align:center}.milestone-badge{display:block;font-size:2rem;margin-bottom:.5em}@media (max-width:500px){.badge-card{min-width:0;width:90vw}}.badges{background:#0009;border-radius:12px;box-shadow:0 4px 12px #0000004d;color:#fff;margin:3rem auto;max-width:900px;padding:3rem 2rem}:root{--celebration-primary:#667eea;--celebration-secondary:#764ba2;--celebration-accent:#f093fb;--celebration-gold:gold;--celebration-success:#4ecdc4;--celebration-gradient:linear-gradient(135deg,var(--celebration-primary) 0%,var(--celebration-secondary) 50%,var(--celebration-accent) 100%);--glass-bg:#ffffff1a;--glass-bg-strong:#ffffff26;--glass-border:#fff3;--glass-shadow:0 8px 32px #1f26875e;--glass-shadow-strong:0 12px 40px #1f268780;--font-xs:0.75rem;--font-sm:0.875rem;--font-base:1rem;--font-lg:1.125rem;--font-xl:1.25rem;--font-2xl:1.5rem;--font-3xl:2rem;--font-4xl:2.5rem;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem}.celebration-container{animation:gradientShift 15s ease infinite;background:linear-gradient(135deg,#667eea,#764ba2 50%,#f093fb);background:var(--celebration-gradient);background-size:400% 400%;min-height:100vh;overflow:hidden;padding:2rem;padding:var(--space-xl);position:relative;text-align:center;&:before{background:radial-gradient(circle at 25% 25%,#ffd7001a 0,#0000 50%),radial-gradient(circle at 75% 75%,#ffffff0d 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}}.back-dashboard-btn{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff26;background:var(--glass-bg-strong);border:1px solid #fff3;border:1px solid var(--glass-border);border-radius:.75rem;border-radius:var(--radius-lg);box-shadow:0 8px 32px #1f26875e;box-shadow:var(--glass-shadow);font-weight:600;left:1.5rem;left:var(--space-lg);padding:.5rem 1.5rem;padding:var(--space-sm) var(--space-lg);position:fixed;top:1.5rem;top:var(--space-lg);transition:all .3s ease;z-index:100;&:hover{background:#ffffff26;background:var(--glass-bg-strong);box-shadow:0 12px 40px #1f268780;box-shadow:var(--glass-shadow-strong);transform:translateY(-2px)}&:active{transform:translateY(0)}}.celebration-content{margin:0 auto;max-width:1200px;padding-top:3rem;padding-top:var(--space-2xl);position:relative;z-index:2}.celebration-title{-webkit-text-fill-color:#0000;animation:titleEntrance 1s ease-out;background:linear-gradient(45deg,#fff,gold);background:linear-gradient(45deg,#fff,var(--celebration-gold));background-clip:text;-webkit-background-clip:text;color:#fff;font-size:2.5rem;font-size:var(--font-4xl);font-weight:700;margin-bottom:1.5rem;margin-bottom:var(--space-lg);text-shadow:2px 2px 4px #0000004d}.winner{animation:winnerPulse 3s ease-in-out infinite;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff26;background:var(--glass-bg-strong);border:2px solid gold;border:2px solid var(--celebration-gold);border-radius:1.5rem;border-radius:var(--radius-2xl);box-shadow:0 12px 40px #1f268780,0 0 30px #ffd7004d;box-shadow:var(--glass-shadow-strong),0 0 30px #ffd7004d;color:gold;color:var(--celebration-gold);font-size:2rem;font-size:var(--font-3xl);font-weight:700;margin:2rem auto;margin:var(--space-xl) auto;max-width:600px;padding:1.5rem 2rem;padding:var(--space-lg) var(--space-xl);text-shadow:2px 2px 8px #00000080}.house-tiles{grid-gap:2rem;grid-gap:var(--space-xl);display:grid;gap:2rem;gap:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));justify-content:center;margin:3rem 0;margin:var(--space-2xl) 0}.house-tile{animation:tileEntrance .8s ease-out forwards;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff26;background:var(--glass-bg-strong);border:1px solid #fff3;border:1px solid var(--glass-border);border-radius:1.5rem;border-radius:var(--radius-2xl);box-shadow:0 8px 32px #1f26875e;box-shadow:var(--glass-shadow);opacity:0;overflow:hidden;padding:2rem;padding:var(--space-xl);position:relative;transform:translateY(30px);transition:all .4s ease;&:first-child{animation-delay:.1s}&:nth-child(2){animation-delay:.2s}&:nth-child(3){animation-delay:.3s}&:nth-child(4){animation-delay:.4s}&:hover{box-shadow:0 12px 40px #1f268780;box-shadow:var(--glass-shadow-strong);transform:translateY(-10px) scale(1.02)}.house-image{display:block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2));height:120px;margin:0 auto 1.5rem;margin:0 auto var(--space-lg);object-fit:contain;transition:transform .3s ease;width:120px}.house-name{color:#fff;font-size:1.25rem;font-size:var(--font-xl);font-weight:700;margin-bottom:.5rem;margin-bottom:var(--space-sm);text-shadow:1px 1px 2px #00000080}.house-points{color:#ffffffe6;font-size:1.125rem;font-size:var(--font-lg);font-weight:600;margin:0}}.house-tile.glow{animation:winnerGlow 2s ease-in-out infinite alternate;border:2px solid gold;border:2px solid var(--celebration-gold);box-shadow:0 12px 40px #1f268780,0 0 40px #ffd70066,inset 0 0 20px #ffd7001a;box-shadow:var(--glass-shadow-strong),0 0 40px #ffd70066,inset 0 0 20px #ffd7001a;.house-image{filter:drop-shadow(0 0 20px rgba(255,215,0,.6));transform:scale(1.1)}.house-name{color:gold;color:var(--celebration-gold);text-shadow:0 0 10px #ffd70080}&:before{animation:sparkle 2s ease-in-out infinite;content:"✨";right:10px}&:after,&:before{font-size:1.5rem;position:absolute;top:10px}&:after{animation:sparkle 2s ease-in-out .5s infinite;content:"🏆";left:10px}}.certificates-list{grid-gap:2rem;grid-gap:var(--space-xl);display:grid;gap:2rem;gap:var(--space-xl);margin-top:3rem;margin-top:var(--space-2xl)}.certificate{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff26;background:var(--glass-bg-strong);border:2px dashed gold;border:2px dashed var(--celebration-gold);border-radius:1.5rem;border-radius:var(--radius-2xl);box-shadow:0 12px 40px #1f268780;box-shadow:var(--glass-shadow-strong);margin:1.5rem auto;margin:var(--space-lg) auto;max-width:800px;padding:3rem;padding:var(--space-2xl);position:relative;h3{color:gold;color:var(--celebration-gold);font-size:1.5rem;font-size:var(--font-2xl);margin-bottom:1.5rem;margin-bottom:var(--space-lg);text-shadow:1px 1px 2px #00000080}}.celebration-particles{height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%;z-index:1}.celebration-particle{animation:celebrationFloat 8s ease-in-out infinite;font-size:1.5rem;opacity:.8;position:absolute}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes titleEntrance{0%{opacity:0;transform:translateY(-30px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes winnerPulse{0%,to{box-shadow:0 12px 40px #1f268780,0 0 30px #ffd7004d;box-shadow:var(--glass-shadow-strong),0 0 30px #ffd7004d;transform:scale(1)}50%{box-shadow:0 12px 40px #1f268780,0 0 50px #ffd70080;box-shadow:var(--glass-shadow-strong),0 0 50px #ffd70080;transform:scale(1.02)}}@keyframes tileEntrance{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes winnerGlow{0%{box-shadow:0 12px 40px #1f268780,0 0 40px #ffd70066,inset 0 0 20px #ffd7001a;box-shadow:var(--glass-shadow-strong),0 0 40px #ffd70066,inset 0 0 20px #ffd7001a}to{box-shadow:0 12px 40px #1f268780,0 0 60px #ffd70099,inset 0 0 30px #ffd70033;box-shadow:var(--glass-shadow-strong),0 0 60px #ffd70099,inset 0 0 30px #ffd70033}}@keyframes sparkle{0%,to{opacity:.6;transform:scale(1) rotate(0deg)}50%{opacity:1;transform:scale(1.2) rotate(180deg)}}@keyframes celebrationFloat{0%{opacity:0;transform:translateY(100vh) rotate(0deg)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(-100px) rotate(1turn)}}@media (max-width:768px){.celebration-container{padding:1.5rem;padding:var(--space-lg)}.celebration-title{font-size:2rem;font-size:var(--font-3xl)}.winner{font-size:1.5rem;font-size:var(--font-2xl);padding:1rem 1.5rem;padding:var(--space-md) var(--space-lg)}.house-tiles{gap:1.5rem;gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.house-tile{padding:1.5rem;padding:var(--space-lg);.house-image{height:100px;width:100px}}.back-dashboard-btn{left:auto;margin-bottom:1.5rem;margin-bottom:var(--space-lg);position:relative;top:auto}}@media (max-width:480px){.celebration-title{font-size:1.5rem;font-size:var(--font-2xl)}.winner{font-size:1.25rem;font-size:var(--font-xl)}.house-tiles{gap:1rem;gap:var(--space-md);grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.celebration-container{animation:none;background:#667eea;background:var(--celebration-primary)}.celebration-title,.house-tile,.winner{animation:none;opacity:1;transform:none}.celebration-particle{animation:none;opacity:0}}.behavior-log-page{background:#0009;color:#fff;min-height:100vh;padding:2rem}.behavior-log-page table{background:#fffbe7;border-collapse:collapse;color:#222;display:block;overflow-x:auto;width:100%}.behavior-log-page td,.behavior-log-page th{border:1px solid #ddd;padding:.5rem}.behavior-log-page tbody tr:hover{background:#f0f0f0}.steps-container{background:#0009;color:#fff}.remind{background:#4a418a22}.pause{background:#ff980022}.office{background:#e040fb22}.call{background:#7c4dff22}.suspend{background:#00bcd422}.sorted{background:#ffe082}h1,h2,h3{color:#fff;text-shadow:1px 1px 2px #000000b3}button{background:#222;border:1px solid gold;border-radius:5px;color:#fff;cursor:pointer;padding:.5rem 1.2rem;transition:background .2s,color .2s,box-shadow .2s}button:focus-visible,button:hover{background:gold;box-shadow:0 0 0 2px #fff,0 0 8px #ffd70088;color:#222}.behavior-log{background:#0009;border-radius:12px;box-shadow:0 4px 12px #0000004d;color:#fff;margin:2rem auto;max-width:900px;padding:2rem}.reward-management{margin:2rem auto;max-width:700px;text-align:center}.reward-form{display:flex;gap:.5rem;justify-content:center;margin-bottom:1.5rem}.reward-form input{border:1px solid #ccc;border-radius:6px;padding:.5em}.reward-form button{background:#1976d2;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:700;padding:.5em 1.2em;transition:background .2s,color .2s}.reward-card button:focus,.reward-form button:focus,.reward-form input:focus{outline:2px solid gold;outline-offset:2px}.reward-card button:hover,.reward-form button:hover{background:gold;color:#222}.reward-card button:active,.reward-form button:active{background:#ffe066}.reward-store{background:#0009;border-radius:12px;box-shadow:0 4px 12px #0000004d;color:#fff;margin:2rem auto;max-width:900px}.reward-store h2{background:#1976d2;border-radius:10px;box-shadow:0 2px 8px #0000001a;color:#fff;font-size:2rem;letter-spacing:1px;margin-bottom:1.5rem;padding:.7em 0;text-align:center}.reward-card{position:relative;transition:box-shadow .2s,transform .15s}.reward-card:focus-within,.reward-card:hover{box-shadow:0 4px 16px #3498db26;transform:translateY(-6px) scale(1.03)}.reward-card.popular{border:2px solid gold;box-shadow:0 0 16px #ffd70088}.reward-badge{background:gold;border-radius:999px;box-shadow:0 2px 8px #00000014;color:#222;font-size:.85em;font-weight:700;padding:.2em .8em;position:absolute;right:12px;top:12px}.reward-name{font-size:1.2rem}.reward-cost,.reward-name{font-weight:700;margin-bottom:.5em}.reward-cost{background:gold;border-radius:999px;color:#222;display:inline-block;font-size:1.1rem;padding:.2em 1em}.reward-desc{color:#444;margin-bottom:.5em}.reward-category{background:#1976d2;border-radius:999px;color:#fff;display:inline-block;font-size:.9em;margin-bottom:.5em;padding:.2em .8em}.reward-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:.5rem}.store-error{color:#e53935;font-weight:700;margin:1rem 0}.reward-card button{background:#e53935;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:700;margin-top:.5rem;padding:.4em 1em;transition:background .2s,color .2s}.reward-card button:focus,.reward-card button:hover{background:gold;color:#222;outline:2px solid gold;outline-offset:2px}.reward-card button:active{background:#ffe066}.reward-card button:disabled{opacity:.7}.back-dashboard-btn{background:#1976d2;border:none;border-radius:999px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;margin-bottom:1.5rem;padding:.6em 1.5em;transition:background .2s,color .2s}.back-dashboard-btn:focus,.back-dashboard-btn:hover{background:gold;color:#222;outline:2px solid gold;outline-offset:2px}.reward-controls{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-bottom:1.5rem}.reward-controls input,.reward-controls select{border:1px solid #ccc;border-radius:8px;font-size:1rem;padding:.5em}.reward-count{color:gold;font-weight:600}.user-points{color:gold;font-size:1.1rem;font-weight:700;margin-bottom:1.2rem}.redeem-btn{background:#1976d2;border:none;border-radius:999px;color:#fff;cursor:pointer;font-weight:700;margin-top:.5rem;padding:.4em 1.2em;transition:background .2s,color .2s}.redeem-btn:disabled{background:#ccc;color:#888;cursor:not-allowed;opacity:.7}.redeem-btn.redeemed{background:#388e3c;color:#fff;cursor:default}@media (max-width:600px){.reward-list{align-items:center;flex-direction:column}.reward-card{min-width:0;padding:1rem;width:95vw}.reward-store{padding:1rem}.reward-controls{align-items:stretch;flex-direction:column;gap:.5rem}}.reward-card:focus-within{outline:2px solid gold;outline-offset:2px}.visually-hidden{clip:rect(1px,1px,1px,1px);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;white-space:nowrap;width:1px}.reward-store{padding:2rem;text-align:center}.reward-list{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;margin-top:2rem}.reward-card{align-items:center;background:#fffbe7;border:2px solid gold;border-radius:14px;box-shadow:0 2px 8px #00000012;display:flex;flex-direction:column;padding:1.5rem;width:220px}.reward-cost{color:#1976d2;font-size:1.2rem;margin:.5rem 0}.store-message{color:#388e3c;font-weight:700;margin:1rem 0}.reward-card button:disabled{background:#ccc;color:#888;cursor:not-allowed}
/*# sourceMappingURL=main.707c20d3.css.map*/