:root{--lb-gold: #FFD700;--lb-gold-dark: #B8860B;--lb-silver: #C0C0C0;--lb-silver-dark: #808080;--lb-bronze: #CD7F32;--lb-bronze-dark: #8B4513;--lb-gradient-start: #1a1a2e;--lb-gradient-end: #16213e;--lb-card-bg: rgba(255, 255, 255, .98);--lb-glow: rgba(37, 99, 235, .15)}.leaderboard-section{min-height:100vh;background:radial-gradient(ellipse at top,rgba(37,99,235,.08) 0%,transparent 50%),radial-gradient(ellipse at bottom right,rgba(16,185,129,.06) 0%,transparent 50%),linear-gradient(180deg,var(--surface-color) 0%,#ffffff 100%);padding:var(--space-4) 0 var(--space-8);position:relative;overflow:hidden}.leaderboard-section:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 20% 80%,rgba(255,215,0,.03) 0%,transparent 25%),radial-gradient(circle at 80% 20%,rgba(37,99,235,.03) 0%,transparent 25%);animation:slowRotate 60s linear infinite;pointer-events:none}@keyframes slowRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.leaderboard-title{font-family:Plus Jakarta Sans,sans-serif;font-size:clamp(2rem,5vw,3rem);font-weight:800;text-align:center;margin-bottom:var(--space-2);color:var(--text-primary);letter-spacing:-.02em;position:relative}.leaderboard-title:after{content:"";display:block;width:60px;height:4px;background:linear-gradient(90deg,var(--primary-color),var(--accent-color));margin:var(--space-4) auto 0;border-radius:2px}.user-rank-display{display:flex;align-items:center;justify-content:center;gap:.375rem;margin:0 auto var(--space-2);font-family:Plus Jakarta Sans,sans-serif}.user-rank-label{color:var(--text-muted);font-size:.8125rem;font-weight:500}.user-rank-number{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:var(--text-sm);font-weight:700;color:var(--primary-color);cursor:pointer;padding:.125rem var(--space-2);background:#2563eb14;border-radius:4px;transition:all var(--dur-base) var(--ease)}.user-rank-number:hover{background:var(--primary-color);color:#fff}.tab-navigation{display:flex;justify-content:center;gap:var(--space-2);margin:var(--space-4) auto var(--space-6);background:#fffc;backdrop-filter:blur(10px);border-radius:100px;padding:.375rem;box-shadow:0 1px 3px #0000000d,0 4px 12px #0000000d,inset 0 1px #fffc;max-width:520px;border:1px solid rgba(0,0,0,.04)}.tab-btn{flex:1;padding:var(--space-3) var(--space-4);border:none;background:transparent;color:var(--text-secondary);font-family:Plus Jakarta Sans,sans-serif;font-weight:600;font-size:.8125rem;cursor:pointer;border-radius:100px;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.tab-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--primary-color),#4f46e5);opacity:0;transition:opacity .25s var(--ease);border-radius:100px}.tab-btn.active{color:#fff;box-shadow:0 2px 8px #2563eb4d}.tab-btn.active:before{opacity:1}.tab-btn{z-index:0}.tab-btn:before{z-index:-1}.tab-btn:hover:not(.active){color:var(--text-primary);background:#00000008}.leaderboard-header{transition:opacity var(--dur-base) var(--ease),transform var(--dur-base) var(--ease)}.leaderboard-header.fading-out{opacity:0;transform:translateY(-8px)}.leaderboard-header.fading-in{animation:headerFadeIn .3s ease-out forwards}@keyframes headerFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.leaderboard-entry{animation:entrySlideIn .4s ease-out backwards}.leaderboard-entry:nth-child(1){animation-delay:.05s}.leaderboard-entry:nth-child(2){animation-delay:.1s}.leaderboard-entry:nth-child(3){animation-delay:.15s}.leaderboard-entry:nth-child(4){animation-delay:.2s}.leaderboard-entry:nth-child(5){animation-delay:.25s}.leaderboard-entry:nth-child(6){animation-delay:.3s}.leaderboard-entry:nth-child(7){animation-delay:.35s}.leaderboard-entry:nth-child(8){animation-delay:.4s}.leaderboard-entry:nth-child(9){animation-delay:.45s}.leaderboard-entry:nth-child(10){animation-delay:.5s}@keyframes entrySlideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideFromAbove{0%{opacity:.7;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideFromBelow{0%{opacity:.7;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.leaderboard-header{text-align:center;margin-bottom:1.25rem;position:relative}.leaderboard-header h2{font-family:Plus Jakarta Sans,sans-serif;font-weight:700;font-size:var(--text-2xl);color:var(--text-primary);margin-bottom:.375rem}.leaderboard-header p{color:var(--text-secondary);font-size:.8125rem;margin-bottom:var(--space-3);margin-top:-var(--space-2)}.prize-pool-total{display:inline-flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);background:linear-gradient(135deg,#fefce8,#fef9c3);border-radius:16px;border:2px solid rgba(250,204,21,.4);box-shadow:0 4px 20px #facc1526,inset 0 1px #fffc;position:relative;overflow:hidden}.prize-pool-total:before{content:none}.prize-pool-total .prize-label{font-family:Plus Jakarta Sans,sans-serif;font-weight:600;font-size:var(--text-sm);color:#92400e;text-transform:uppercase;letter-spacing:.05em}.prize-pool-total .prize-amount{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-weight:700;font-size:1.75rem;color:#b45309;letter-spacing:-.02em;transition:transform .1s var(--ease),text-shadow .1s var(--ease)}.prize-pool-total .prize-amount.counting{text-shadow:0 0 12px rgba(180,83,9,.3)}.leaderboard-table{background:var(--lb-card-bg);border-radius:24px;overflow:hidden;box-shadow:0 1px 3px #0000000a,0 8px 32px #00000014;border:1px solid rgba(0,0,0,.04)}.table-header{display:grid;grid-template-columns:80px 1fr 90px 140px 110px;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:linear-gradient(135deg,var(--text-primary) 0%,#1e293b 100%);color:#ffffffe6;font-family:Plus Jakarta Sans,sans-serif;font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em}.table-header>div{display:flex;align-items:center}.table-header .col-position,.table-header .col-hours,.table-header .col-subjects,.table-header .col-prize{justify-content:center}.table-body{max-height:600px;overflow-y:auto;overflow-x:visible;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.table-body::-webkit-scrollbar{width:6px}.table-body::-webkit-scrollbar-track{background:transparent}.table-body::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.leaderboard-entry{display:grid;grid-template-columns:80px 1fr 90px 140px 110px;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid rgba(0,0,0,.04);transition:all var(--dur-base) var(--ease);cursor:pointer;align-items:center;position:relative}.leaderboard-entry:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;transition:background var(--dur-base) var(--ease)}.leaderboard-entry:hover{background:linear-gradient(90deg,rgba(37,99,235,.03) 0%,transparent 100%)}.leaderboard-entry:hover:before{background:var(--primary-color)}.leaderboard-entry:last-child{border-bottom:none}.leaderboard-entry:nth-child(1){background:linear-gradient(90deg,rgba(255,215,0,.08) 0%,transparent 60%)}.leaderboard-entry:nth-child(2){background:linear-gradient(90deg,rgba(192,192,192,.08) 0%,transparent 60%)}.leaderboard-entry:nth-child(3){background:linear-gradient(90deg,rgba(205,127,50,.08) 0%,transparent 60%)}.position{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--text-base);text-align:center;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;margin:0 auto;position:relative;transition:transform var(--dur-base) var(--ease)}.leaderboard-entry:hover .position{transform:scale(1.05)}.position.gold{background:linear-gradient(145deg,gold,orange);color:#5d4e00;box-shadow:0 4px 12px #ffd70066,inset 0 1px #ffffff80}.leaderboard-entry:nth-child(1) .teacher-avatar{position:relative;overflow:visible}.leaderboard-entry:nth-child(1) .teacher-avatar:after{content:"👑";position:absolute;top:-16px;left:50%;transform:translate(-50%);font-size:var(--text-base);animation:crownFloat 2s ease-in-out infinite;z-index:1}@keyframes crownFloat{0%,to{transform:translate(-50%) translateY(0) rotate(0)}50%{transform:translate(-50%) translateY(-3px) rotate(5deg)}}.position.silver{background:linear-gradient(145deg,#e8e8e8,#b8b8b8);color:#4a4a4a;box-shadow:0 4px 12px #c0c0c066,inset 0 1px #fffc}.position.bronze{background:linear-gradient(145deg,#dda15e,#bc6c25);color:#3d2914;box-shadow:0 4px 12px #cd7f3266,inset 0 1px #ffffff4d}.position.top-ten{background:linear-gradient(145deg,var(--primary-color),#4f46e5);color:#fff;box-shadow:0 4px 12px #2563eb4d}.position.visibility{background:linear-gradient(145deg,var(--accent-color),#059669);color:#fff;box-shadow:0 4px 12px #10b9814d}.teacher-info{display:flex;align-items:center;gap:var(--space-4)}.teacher-avatar{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,var(--surface-color),#e2e8f0);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);border:2px solid rgba(0,0,0,.04);flex-shrink:0;overflow:hidden;transition:transform var(--dur-base) var(--ease)}.teacher-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.leaderboard-entry:hover .teacher-avatar{transform:scale(1.05)}.teacher-details h4{margin:0;font-family:Plus Jakarta Sans,sans-serif;font-weight:700;color:var(--text-primary);font-size:.9375rem;margin-bottom:var(--space-1)}.teacher-rating{display:flex;align-items:center;gap:.375rem}.rating-stars{display:inline-flex;align-items:center;gap:1px}.star-wrapper{position:relative;display:inline-block;width:14px;height:14px;font-size:var(--text-sm);line-height:1}.star-bg{position:absolute;top:0;left:0;color:#e5e7eb}.star-fill{position:absolute;top:0;left:0;overflow:hidden;color:#fbbf24;white-space:nowrap}.rating-score{font-size:.8125rem;color:var(--text-muted);font-weight:500}.no-rating{font-size:var(--text-xs);color:var(--text-muted);font-style:italic}.response-badge{display:inline-flex;align-items:center;gap:.125rem;font-size:.6875rem;font-weight:600;padding:.125rem .375rem;border-radius:4px;margin-left:.375rem;vertical-align:middle;font-family:var(--font-sans);font-variant-numeric:tabular-nums}.response-badge.fast{background:#10b9811f;color:#059669}.response-badge.good{background:#2563eb1f;color:#2563eb}.response-badge.medium{background:#f59e0b1f;color:#d97706}.response-badge.slow{background:#ef44441f;color:#dc2626}.response-badge.neutral{background:#6b72801f;color:#6b7280}.hours{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--text-lg);color:var(--primary-color);text-align:center;background:#2563eb0f;padding:var(--space-2) var(--space-3);border-radius:8px;display:inline-block}.subjects{display:flex;flex-wrap:wrap;gap:.375rem;justify-content:center;max-width:140px}.subject-tag{background:var(--surface-color);color:var(--text-secondary);padding:var(--space-1) .625rem;border-radius:6px;font-size:.6875rem;font-weight:600;border:1px solid var(--border-color);text-transform:uppercase;letter-spacing:.03em}.subjects:has(.subject-tag:nth-child(4)){gap:var(--space-1)}.subjects:has(.subject-tag:nth-child(4)) .subject-tag{padding:.1875rem var(--space-2);font-size:.625rem}.subjects:has(.subject-tag:nth-child(5)){gap:.2rem}.subjects:has(.subject-tag:nth-child(5)) .subject-tag{padding:.125rem .375rem;font-size:.5625rem;letter-spacing:.01em}.subjects:has(.subject-tag:nth-child(6)){gap:.15rem}.subjects:has(.subject-tag:nth-child(6)) .subject-tag{padding:.125rem .3rem;font-size:.5rem;letter-spacing:0}.no-subjects{color:var(--text-muted);font-size:var(--text-xs)}.prize{font-family:Plus Jakarta Sans,sans-serif;font-weight:700;font-size:var(--text-sm);text-align:center;padding:var(--space-2) var(--space-4);border-radius:10px;transition:transform var(--dur-base) var(--ease)}.leaderboard-entry:hover .prize{transform:scale(1.03)}.prize.money{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 8px #10b9814d}.prize.visibility{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 2px 8px #f59e0b4d}.prize.referral-bonus{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;box-shadow:0 2px 8px #8b5cf64d;font-size:var(--text-xs);white-space:nowrap}.prize.has-tooltip{position:relative;cursor:pointer;z-index:1}.prize.has-tooltip:hover,.prize.has-tooltip.tooltip-active{z-index:9998}.prize.has-tooltip:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);background:#1e293b;color:#fff;padding:var(--space-3) var(--space-4);border-radius:10px;font-size:.8125rem;font-weight:500;white-space:normal;width:-moz-max-content;width:max-content;max-width:220px;text-align:center;line-height:1.4;opacity:0;visibility:hidden;transition:all var(--dur-base) var(--ease);z-index:9999;box-shadow:0 4px 16px #0003;pointer-events:none}.prize.has-tooltip:before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#1e293b;opacity:0;visibility:hidden;transition:all var(--dur-base) var(--ease);z-index:9999}.prize.has-tooltip:hover:after,.prize.has-tooltip:hover:before,.prize.has-tooltip:focus:after,.prize.has-tooltip:focus:before,.prize.has-tooltip.tooltip-active:after,.prize.has-tooltip.tooltip-active:before{opacity:1;visibility:visible}@media(max-width:640px){.prize.has-tooltip:after{left:auto;right:0;transform:none;max-width:200px}.prize.has-tooltip:before{left:auto;right:20px;transform:none}}.prize.none{color:var(--text-muted);background:var(--surface-color);font-weight:500}.leaderboard-empty{text-align:center;padding:var(--space-8) var(--space-6)}.empty-icon{font-size:4rem;margin-bottom:var(--space-5);opacity:.8}.leaderboard-empty h3{font-family:Plus Jakarta Sans,sans-serif;font-weight:700;color:var(--text-primary);margin-bottom:var(--space-2)}.leaderboard-empty p{color:var(--text-secondary);font-size:.9375rem;margin-bottom:var(--space-1)}.empty-hint{color:var(--text-muted);font-size:.8125rem}.loading{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--space-8);gap:var(--space-4);color:var(--text-secondary);font-family:Plus Jakarta Sans,sans-serif}.spinner{width:36px;height:36px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.leaderboard-error{text-align:center;padding:var(--space-7);color:var(--danger-color)}@media(max-width:900px){.table-header,.leaderboard-entry{grid-template-columns:60px 1fr 70px 100px;gap:var(--space-3)}.col-subjects,.subjects{display:none}}@media(max-width:640px){.leaderboard-section{padding:var(--space-2) 0 var(--space-6)}.leaderboard-section .container{display:flex;flex-direction:column}.user-rank-display{display:none!important}.leaderboard-header{order:1}#period-description,#student-period-description{display:none}.tab-navigation{order:2}.leaderboard-table{order:3}.info-title{order:4}.info-cards{order:5}.info-cta{order:6}.leaderboard-title{display:none}.tab-navigation{margin:var(--space-3) var(--space-4) var(--space-5);padding:var(--space-1)}.tab-btn{padding:.625rem var(--space-2);font-size:var(--text-xs)}.table-header{display:none}.leaderboard-table{border-radius:16px;margin:0 var(--space-2)}.leaderboard-entry{display:flex;flex-wrap:nowrap;align-items:center;padding:var(--space-3) var(--space-4);gap:var(--space-2)}.leaderboard-entry .position{order:1;width:36px;height:36px;font-size:.8125rem;flex-shrink:0}.leaderboard-entry .teacher-info{order:2;flex:1;min-width:0}.teacher-avatar{width:40px;height:40px}.teacher-details h4{font-size:.8125rem;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1)}.teacher-details h4 .response-badge{order:2;font-size:.625rem}.teacher-rating{display:none}.leaderboard-entry .hours{order:3;font-size:.8125rem;padding:.3125rem var(--space-2);flex-shrink:0}.leaderboard-entry .subjects{display:none}.leaderboard-entry .prize{order:4;width:auto;margin-top:0;padding:.3125rem .625rem;font-size:var(--text-xs);border-radius:8px;flex-shrink:0}.prize-pool-total{flex-direction:row;gap:var(--space-2);padding:.625rem var(--space-4)}.prize-pool-total .prize-amount{font-size:var(--text-xl)}.prize-pool-hint{font-size:.6875rem}.prize-pool-icon{display:none}}@media(max-width:400px){.tab-btn{padding:var(--space-2) .375rem;font-size:.6875rem}}@media(hover:none){.leaderboard-entry:hover{background:transparent;transform:none}.leaderboard-entry:hover:before{background:transparent}.leaderboard-entry:hover .position,.leaderboard-entry:hover .teacher-avatar,.leaderboard-entry:hover .prize{transform:none}}.leaderboard-entry{will-change:transform,opacity;backface-visibility:hidden;background-color:#fff}.leaderboard-entry.moving-up,.leaderboard-entry.moving-down{background-color:#fff;animation:shadowFadeIn .8s cubic-bezier(.4,0,.2,1) forwards}@keyframes shadowFadeIn{0%{box-shadow:0 0 #0000}30%{box-shadow:0 4px 20px #0000001f}70%{box-shadow:0 4px 20px #0000001f}to{box-shadow:0 0 #0000}}.leaderboard-entry.moving-up{z-index:5}.leaderboard-entry.moving-up:after{content:"▲";position:absolute;right:1.5rem;top:50%;transform:translateY(-50%);color:#10b981;font-size:var(--text-sm);font-weight:700;opacity:0;animation:arrowFadeUp .8s cubic-bezier(.4,0,.2,1) forwards}@keyframes arrowFadeUp{0%{opacity:0;transform:translateY(-45%)}20%{opacity:1;transform:translateY(-50%)}70%{opacity:1;transform:translateY(-70%)}to{opacity:0;transform:translateY(-90%)}}.leaderboard-entry.moving-down{z-index:10}.leaderboard-entry.moving-down:after{content:"▼";position:absolute;right:1.5rem;top:50%;transform:translateY(-50%);color:#ef4444;font-size:var(--text-sm);font-weight:700;opacity:0;animation:arrowFadeDown .8s cubic-bezier(.4,0,.2,1) forwards}@keyframes arrowFadeDown{0%{opacity:0;transform:translateY(-55%)}20%{opacity:1;transform:translateY(-50%)}70%{opacity:1;transform:translateY(-30%)}to{opacity:0;transform:translateY(-10%)}}.leaderboard-entry.entering{animation:entrySlideIn .4s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes entrySlideIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.leaderboard-entry.exiting{animation:entrySlideOut .3s ease-in forwards;pointer-events:none}@keyframes entrySlideOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.table-body{position:relative;overflow-x:hidden}.position{transition:background var(--dur-slow) var(--ease),box-shadow var(--dur-slow) var(--ease)}.leaderboard-hero{background:radial-gradient(ellipse at top,rgba(37,99,235,.08) 0%,transparent 50%),radial-gradient(ellipse at bottom right,rgba(16,185,129,.06) 0%,transparent 50%),linear-gradient(180deg,var(--surface-color) 0%,#ffffff 100%);padding:var(--space-6) 0 var(--space-5);text-align:center}.kun-skjermleser{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.leaderboard-subtitle{color:var(--text-secondary);font-size:var(--text-base);margin:var(--space-4) 0 0;font-family:Plus Jakarta Sans,sans-serif}.role-switcher{display:inline-flex;position:relative;background:#ffffffe6;backdrop-filter:blur(10px);border-radius:100px;padding:.375rem;box-shadow:0 1px 3px #0000000d,0 4px 12px #00000014,inset 0 1px #fffc;border:1px solid rgba(0,0,0,.06);margin:0 auto;overflow:hidden}.role-tab{display:flex;align-items:center;gap:var(--space-2);padding:.875rem var(--space-5);border:none;background:transparent;color:var(--text-secondary);font-family:Plus Jakarta Sans,sans-serif;font-weight:600;font-size:.9375rem;cursor:pointer;border-radius:100px;transition:all var(--dur-slow) cubic-bezier(.4,0,.2,1);position:relative;z-index:2}.role-tab .tab-icon{font-size:var(--text-lg)}.role-tab .tab-text{white-space:nowrap}.role-tab:hover:not(.active){color:var(--text-primary)}.role-tab.active{color:#fff}.role-switcher .tab-indicator{position:absolute;top:.375rem;left:.375rem;height:calc(100% - .75rem);background:linear-gradient(135deg,var(--primary-color),#4f46e5);border-radius:100px;transition:all var(--dur-slow) cubic-bezier(.4,0,.2,1);z-index:1;box-shadow:0 2px 8px #2563eb59}.laerer-content,.elev-content{transition:opacity .25s var(--ease)}.lottery-hero{text-align:center;padding:var(--space-2) 0 var(--space-5)}.lottery-hero h2{font-family:Plus Jakarta Sans,sans-serif;font-size:clamp(var(--text-2xl),4vw,2rem);font-weight:800;color:var(--text-primary);margin-bottom:var(--space-3)}.lottery-description{color:var(--text-secondary);font-size:var(--text-lg);max-width:500px;margin:0 auto;line-height:1.6}.lottery-description strong{color:var(--primary-color)}.lottery-tabs{margin:var(--space-4) auto var(--space-5)}.lottery-prize-pool{text-align:center;margin-bottom:var(--space-5)}.lottery-info-link{font-size:.8125rem;margin-top:0;margin-bottom:var(--space-3)}.lottery-info-link a{color:var(--primary-color);text-decoration:none;transition:opacity var(--dur-base) var(--ease);cursor:pointer}.lottery-info-link a:hover{opacity:.8;text-decoration:underline}.lottery-winners-section{margin-bottom:var(--space-6)}.winners-title{font-family:Plus Jakarta Sans,sans-serif;font-size:var(--text-base);font-weight:600;color:var(--text-secondary);text-align:center;margin-bottom:var(--space-4)}.lottery-winners-table .table-header,.lottery-winners-table .leaderboard-entry{grid-template-columns:1fr 80px 120px}.info-title{font-family:Plus Jakarta Sans,sans-serif;font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);text-align:center;margin:var(--space-6) 0 var(--space-5)}.info-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-5);margin:0 0 var(--space-6)}.info-card{background:#fff;border-radius:20px;padding:var(--space-6);text-align:center;box-shadow:0 1px 3px #0000000a,0 8px 24px #0000000f;border:1px solid rgba(0,0,0,.04);transition:transform var(--dur-base) var(--ease),box-shadow var(--dur-base) var(--ease)}.info-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000000f,0 16px 40px #0000001a}.info-card-icon{margin-bottom:var(--space-4);line-height:1}.info-card h3{font-family:Plus Jakarta Sans,sans-serif;font-size:var(--text-lg);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-3)}.info-card p{color:var(--text-secondary);font-size:.9375rem;line-height:1.6}.info-card p strong{color:var(--text-primary)}.role-tab .tab-icon svg{width:1.125rem;height:1.125rem;vertical-align:middle}.info-card-icon svg{width:2rem;height:2rem;color:var(--primary-color)}.leaderboard-title svg{width:1em;height:1em;vertical-align:-.1em}.prize-pool-icon{width:1.5rem;height:1.5rem;color:#b45309;flex-shrink:0}.tier-icon svg{vertical-align:middle}.info-cta{text-align:center;padding:var(--space-4) 0}.info-cta p{color:var(--text-secondary);font-size:var(--text-base);margin-bottom:1.25rem}.info-cta-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-6);background:linear-gradient(135deg,var(--primary-color),#4f46e5);color:#fff;font-family:Plus Jakarta Sans,sans-serif;font-size:var(--text-base);font-weight:600;border-radius:100px;text-decoration:none;transition:all var(--dur-base) var(--ease);box-shadow:0 4px 16px #2563eb4d}.info-cta-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px #2563eb66}@media(max-width:640px){.leaderboard-hero{padding:var(--space-3) var(--space-4) var(--space-2)}.leaderboard-subtitle{display:none}.role-switcher{width:calc(100% - 2rem);max-width:360px}.role-tab{flex:1;justify-content:center;padding:var(--space-3) var(--space-4);font-size:var(--text-sm)}.role-tab .tab-icon{font-size:var(--text-base)}.info-cards{gap:var(--space-4);margin:0 0 var(--space-5)}.info-card{padding:var(--space-5)}}.prize-pool-hint{font-size:.8125rem;color:var(--text-muted);margin-top:var(--space-4)!important;margin-bottom:0;font-style:italic}.leaderboard-header .prize-pool-hint{margin-top:var(--space-4)!important}.prize-pool-hint .referral-link{color:var(--primary-color);text-decoration:none;font-weight:600;font-style:normal;transition:all var(--dur-base) var(--ease)}.prize-pool-hint .referral-link:hover{text-decoration:underline;opacity:.85}.referral-modal-overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity .25s var(--ease),visibility .25s var(--ease);padding:var(--space-4)}.referral-modal-overlay.active{opacity:1;visibility:visible}.referral-modal{background:#fff;border-radius:24px;padding:var(--space-6);max-width:420px;width:100%;position:relative;box-shadow:0 8px 32px #0000001f,0 24px 64px #00000026;transform:scale(.95) translateY(10px);transition:transform .25s cubic-bezier(.4,0,.2,1);text-align:center}.referral-modal-overlay.active .referral-modal{transform:scale(1) translateY(0)}.referral-modal-close{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border:none;background:var(--surface-color);border-radius:50%;font-size:var(--text-xl);color:var(--text-muted);cursor:pointer;transition:all var(--dur-base) var(--ease);display:flex;align-items:center;justify-content:center;line-height:1}.referral-modal-close:hover{background:var(--border-color);color:var(--text-primary)}.referral-modal-icon{font-size:3rem;margin-bottom:var(--space-4)}.referral-modal h3{font-family:Plus Jakarta Sans,sans-serif;font-size:1.375rem;font-weight:700;color:var(--text-primary);margin-bottom:var(--space-3)}.referral-modal p{color:var(--text-secondary);font-size:.9375rem;line-height:1.6;margin-bottom:var(--space-5)}.referral-link-box{display:flex;gap:var(--space-2);background:var(--surface-color);border:2px solid var(--border-color);border-radius:12px;padding:var(--space-2)}.referral-link-box input{flex:1;border:none;background:transparent;font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:.8125rem;color:var(--text-primary);padding:var(--space-2);min-width:0}.referral-link-box input:focus{outline:none}.copy-referral-btn{padding:.625rem var(--space-4);background:linear-gradient(135deg,var(--primary-color),#4f46e5);color:#fff;border:none;border-radius:8px;font-family:Plus Jakarta Sans,sans-serif;font-weight:600;font-size:var(--text-sm);cursor:pointer;transition:all var(--dur-base) var(--ease);white-space:nowrap}.copy-referral-btn:hover{transform:scale(1.02);box-shadow:0 4px 12px #2563eb4d}.copy-referral-btn.copied{background:linear-gradient(135deg,#10b981,#059669)}.referral-stats{margin:var(--space-5) 0;padding:var(--space-4);background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border-radius:12px;border:1px solid rgba(16,185,129,.2)}.referral-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);text-align:center}.referral-stats .stat-item{display:flex;flex-direction:column;gap:var(--space-1)}.referral-stats .stat-value{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:var(--text-xl);font-weight:700;color:#059669}.referral-stats .stat-label{font-size:var(--text-xs);color:#047857;text-transform:uppercase;letter-spacing:.05em}.referral-badge{display:inline-block;margin-top:var(--space-3);padding:.375rem var(--space-3);border-radius:20px;font-size:.8125rem;font-weight:600}.referral-badge.tier1{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}.referral-badge.ambassador{background:linear-gradient(135deg,#ede9fe,#ddd6fe);color:#6d28d9}.referral-progress{margin-top:var(--space-4)}.referral-progress .progress-label{font-size:.8125rem;color:#047857;margin-bottom:var(--space-2)}.referral-progress .progress-bar{height:8px;background:#10b98133;border-radius:4px;overflow:hidden}.referral-progress .progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#059669);border-radius:4px;transition:width var(--dur-slow) var(--ease)}.referral-tiers{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border-color)}.tier-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface-color);border-radius:10px;margin-bottom:var(--space-2);text-align:left}.tier-item.ambassador{background:linear-gradient(135deg,#faf5ff,#f3e8ff);border:1px solid rgba(139,92,246,.2)}.tier-item .tier-icon{font-size:var(--text-xl);flex-shrink:0}.tier-item .tier-name{font-weight:600;color:var(--text-primary);font-size:var(--text-sm);min-width:110px}.tier-item .tier-reward{font-size:.8125rem;color:var(--text-secondary);flex:1}@media(max-width:480px){.referral-modal{padding:var(--space-5)}.referral-link-box{flex-direction:column}.copy-referral-btn{width:100%}.tier-item{flex-direction:column;text-align:center;gap:var(--space-2)}.tier-item .tier-name{min-width:auto}}.student-table-header,#student-leaderboard-body .leaderboard-entry{grid-template-columns:80px 1fr 90px 110px}@media(max-width:640px){.student-table-header,#student-leaderboard-body .leaderboard-entry{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--space-2)}}.lottery-wheel-section{margin-bottom:var(--space-6);display:none}.lottery-wheel-container{position:relative;display:flex;align-items:center;justify-content:center;padding:6rem var(--space-6);background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:24px;overflow:visible;min-height:500px}.lottery-wheel-container:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 70%,rgba(255,215,0,.08) 0%,transparent 40%),radial-gradient(circle at 70% 30%,rgba(37,99,235,.1) 0%,transparent 40%);animation:slowRotate 45s linear infinite;pointer-events:none}.lottery-wheel-wrapper{position:relative;width:340px;height:340px;flex-shrink:0}.lottery-wheel{width:100%;height:100%;border-radius:50%;position:relative;background:conic-gradient(from 0deg,#2563eb,#7c3aed,#ec4899,#f59e0b,#10b981,#2563eb);box-shadow:0 0 0 8px #ffffff1a,0 0 40px #2563eb4d,inset 0 0 60px #0000004d;overflow:hidden;transition:transform 4s cubic-bezier(.17,.67,.12,.99)}.wheel-segment{position:absolute;width:50%;height:50%;left:50%;top:0;transform-origin:0% 100%;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.wheel-segment-content{position:absolute;left:20%;top:50%;transform:translateY(-50%) rotate(90deg);transform-origin:left center;white-space:nowrap;font-family:Plus Jakarta Sans,sans-serif;font-size:.6rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);max-width:80px;overflow:hidden;text-overflow:ellipsis}.wheel-segment.winner{box-shadow:inset 0 0 20px #ffd70080}.wheel-segment.winner:after{content:"⭐";position:absolute;left:15%;top:30%;font-size:var(--text-xs);animation:starPulse 1.5s ease-in-out infinite}@keyframes starPulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.wheel-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90px;height:90px;border-radius:50%;background:linear-gradient(145deg,#fff,#e6e6e6);box-shadow:0 4px 20px #0000004d,inset 0 2px 4px #fffc;display:flex;align-items:center;justify-content:center;z-index:10;overflow:hidden}.wheel-center-icon{font-size:var(--text-4xl)}.wheel-center-mascot{width:160%;height:160%;-o-object-fit:contain;object-fit:contain;transform:translateY(8%)}.winner-markers{display:none}.winner-arrow{position:absolute;z-index:20;transform:translate(-50%,-50%)}.winner-arrow-pointer{width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:14px solid #FFD700;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}.winner-arrow-card{position:absolute;z-index:21;background:#fffffff2;border-radius:8px;padding:.35rem var(--space-2);box-shadow:0 3px 10px #00000040;text-align:center;min-width:70px;backdrop-filter:blur(8px);transform:translate(-50%,-50%);border:2px solid #FFD700}.winner-arrow-name{font-family:Plus Jakarta Sans,sans-serif;font-weight:700;font-size:.6rem;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:65px}.winner-arrow-tickets{font-size:.5rem;color:#64748b}.winner-arrow-prize{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-weight:700;font-size:.55rem;color:#059669;margin-top:.1rem}.wheel-avatar{position:absolute;width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#e2e8f0,#cbd5e1);display:flex;align-items:center;justify-content:center;font-family:Plus Jakarta Sans,sans-serif;font-size:.5rem;font-weight:700;color:#475569;border:2px solid rgba(255,255,255,.9);box-shadow:0 1px 4px #0003;overflow:hidden;z-index:5}.wheel-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.wheel-avatar.winner{width:26px;height:26px;border:2px solid #FFD700;box-shadow:0 0 8px #ffd70080,0 1px 4px #0003}.winner-list{display:none;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3);margin-top:var(--space-5)}@media(max-width:768px){.lottery-wheel-container{padding:var(--space-8) var(--space-4);min-height:auto}.lottery-wheel-wrapper{width:220px;height:220px}.wheel-center{width:50px;height:50px}.wheel-center-icon{font-size:var(--text-xl)}.winner-arrow-card{padding:.35rem var(--space-2);min-width:70px}.winner-arrow-name{font-size:.6rem;max-width:60px}.winner-arrow-tickets{font-size:.5rem}.winner-arrow-prize{font-size:.55rem}.winner-arrow-pointer{border-left-width:8px;border-right-width:8px;border-top-width:12px}.winner-list{display:grid}}@media(max-width:480px){.lottery-wheel-container{padding:var(--space-7) var(--space-2)}.lottery-wheel-wrapper{width:180px;height:180px}.wheel-center{width:40px;height:40px}.wheel-center-icon{font-size:var(--text-base)}.winner-arrow-card{padding:var(--space-1) .4rem;min-width:55px}.winner-arrow-name{font-size:.5rem;max-width:50px}.winner-arrow-tickets,.winner-arrow-prize{display:none}}.winner-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f}.winner-card-position{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--text-xs);flex-shrink:0}.winner-card:nth-child(1) .winner-card-position{background:linear-gradient(145deg,gold,orange);color:#5d4e00}.winner-card:nth-child(2) .winner-card-position{background:linear-gradient(145deg,#e8e8e8,#b8b8b8);color:#4a4a4a}.winner-card:nth-child(3) .winner-card-position{background:linear-gradient(145deg,#dda15e,#bc6c25);color:#3d2914}.winner-card:nth-child(4) .winner-card-position,.winner-card:nth-child(5) .winner-card-position{background:linear-gradient(145deg,var(--primary-color),#4f46e5);color:#fff}.winner-card-info{flex:1;min-width:0}.winner-card-name{font-family:Plus Jakarta Sans,sans-serif;font-weight:600;font-size:.8125rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.winner-card-meta{font-size:.6875rem;color:var(--text-muted)}.winner-card-prize{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--text-xs);color:#059669}.lb-skeleton-row{display:block;height:64px;border-radius:var(--radius-md);margin-bottom:var(--space-2)}
