*{box-sizing:border-box}body{margin:0;font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:#f5f6fa;color:#1a1a1a;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit}.container{max-width:900px;margin:0 auto;padding:40px 20px}h1{font-size:28px;margin-bottom:24px;text-align:center}h2{font-size:22px;margin-bottom:16px}.leaderboard-table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000000f}.leaderboard-table th,.leaderboard-table td{padding:14px 18px;text-align:left}.leaderboard-table thead{background-color:#2f3542;color:#fff}.leaderboard-table tbody tr:nth-child(2n){background-color:#f9fafb}.leaderboard-table tbody tr:hover{background-color:#eef2ff}.leaderboard-table tbody tr:first-child td{font-weight:700;color:#f39c12}.leaderboard-table tbody tr:nth-child(2) td{font-weight:600;color:#95a5a6}.leaderboard-table tbody tr:nth-child(3) td{font-weight:600;color:#cd6133}.gate-page{text-align:center;max-width:480px}.gate-text{margin:0 0 24px;line-height:1.5;color:#57606f}.gate-actions{display:flex;flex-direction:column;align-items:center;gap:12px}.primary-btn{padding:12px 28px;border:none;border-radius:8px;background-color:#2ecc71;color:#fff;font-weight:600;font-size:15px}.primary-btn:hover{background-color:#27ae60}.primary-btn:disabled{opacity:.6;cursor:default}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}.page-header h1{margin:0;text-align:left}.status-badge{display:inline-block;margin:0 0 20px;padding:8px 14px;border-radius:8px;font-size:14px;font-weight:600}.status-pending{background:#fff3cd;color:#856404}.status-rejected{background:#f8d7da;color:#721c24}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab{padding:8px 14px;border:1px solid #dcdde1;border-radius:8px;background:#fff;font-size:13px}.tab.active{background:#2f3542;border-color:#2f3542;color:#fff}.content td button.danger-btn{background-color:#e74c3c}.content td button.danger-btn:hover{background-color:#c0392b}.toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 8px}.toolbar h3{margin:0}.toolbar-hint{margin:0;font-size:13px;color:#57606f}.search-field{position:relative;display:flex;align-items:center;min-width:220px;flex:1;max-width:320px}.search-field-icon{position:absolute;left:10px;color:#95a5a6;pointer-events:none}.search-field input{width:100%;padding:8px 32px 8px 30px;border:1px solid #dcdde1;border-radius:8px;font-size:13px;background:#fff}.search-field input:focus{outline:none;border-color:#4834d4}.search-field-clear{position:absolute;right:6px;border:none;background:transparent;color:#95a5a6;font-size:18px;line-height:1;padding:2px 6px}.user-picker{position:relative;min-width:200px;flex:1}.user-picker input{width:100%;padding:8px 10px;border:1px solid #dcdde1;border-radius:6px;font-size:13px;box-sizing:border-box}.user-picker-list{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px;list-style:none;background:#fff;border:1px solid #dcdde1;border-radius:8px;box-shadow:0 8px 20px #0000001f;max-height:240px;overflow:auto}.user-picker-list button{width:100%;display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border:none;border-radius:6px;background:transparent;text-align:left;font-size:13px}.user-picker-list button:hover,.user-picker-list button.selected{background:#eef2ff}.user-picker-points{color:#747d8c}.user-picker-empty{padding:10px;font-size:13px;color:#747d8c}.success{color:#27ae60;font-size:14px}.points-pos{color:#27ae60;font-weight:600}.points-neg{color:#e74c3c;font-weight:600}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(15,23,42,.06),transparent),#f8f9fb}.login-shell{width:100%;max-width:380px;display:flex;flex-direction:column;gap:28px}.login-brand{text-align:center}.login-logo{margin:0;font-size:1.75rem;font-weight:600;letter-spacing:-.03em;color:#0f172a}.login-tagline{margin:6px 0 0;font-size:.8125rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:#94a3b8}.login-banner{margin:0;padding:12px 16px;border-radius:10px;font-size:.875rem;text-align:center;line-height:1.4}.login-banner--error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.login-card{background:#fff;border:1px solid #e8ecf1;border-radius:20px;padding:32px 28px 28px;box-shadow:0 1px 2px #0f172a0a}.login-card--loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:48px 28px;color:#64748b;font-size:.9375rem}.login-spinner{width:28px;height:28px;border:2px solid #e2e8f0;border-top-color:#0f172a;border-radius:50%;animation:login-spin .7s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}.login-steps{display:flex;justify-content:center;gap:8px;margin-bottom:28px}.login-steps span{width:32px;height:3px;border-radius:2px;background:#e2e8f0;transition:background .25s ease}.login-steps span.active{background:#0f172a}.login-steps span.done{background:#cbd5e1}.login-form{display:flex;flex-direction:column;gap:20px}.login-form-head{text-align:center}.login-form-head h2{margin:0 0 8px;font-size:1.25rem;font-weight:600;letter-spacing:-.02em;color:#0f172a}.login-subtitle{margin:0;font-size:.875rem;line-height:1.5;color:#64748b}.login-subtitle strong{font-weight:500;color:#334155}.login-subtitle a{color:#0f172a;font-weight:500;text-decoration:underline;text-underline-offset:3px;transition:color .15s ease}.login-subtitle a:hover{color:#08c}.login-field{display:flex;flex-direction:column;gap:8px}.login-field span{font-size:.75rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.login-field input{width:100%;padding:14px 16px;border:1px solid #e2e8f0;border-radius:12px;font-size:1rem;color:#0f172a;background:#fafbfc;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.login-field input::placeholder{color:#cbd5e1}.login-field input:focus{outline:none;border-color:#0f172a;background:#fff;box-shadow:0 0 0 3px #0f172a0f}.login-code-input{font-family:JetBrains Mono,ui-monospace,monospace;font-size:1.125rem!important;letter-spacing:.25em;text-align:center}.login-field-error{margin:0;padding:10px 14px;border-radius:10px;font-size:.8125rem;text-align:center;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.login-submit{margin-top:4px;padding:14px 20px;border:none;border-radius:12px;background:#0f172a;color:#fff;font-size:.9375rem;font-weight:500;letter-spacing:.01em;transition:background .15s ease,transform .1s ease}.login-submit:hover:not(:disabled){background:#1e293b}.login-submit:active:not(:disabled){transform:scale(.99)}.login-submit:disabled{opacity:.55;cursor:default}.login-back{align-self:center;margin-top:-4px;padding:8px 12px;border:none;background:transparent;color:#64748b;font-size:.8125rem;font-weight:400;transition:color .15s ease}.login-back:hover{color:#0f172a}.error{color:#e74c3c;font-size:13px;text-align:center;margin:0}.admin-layout{display:flex;min-height:100vh}.sidebar{width:220px;background-color:#2f3542;color:#fff;padding:24px 16px;display:flex;flex-direction:column;gap:20px}.sidebar h3{margin:0 0 10px;font-size:18px}.sidebar nav{display:flex;flex-direction:column;gap:8px;flex:1}.sidebar nav a{padding:10px 12px;border-radius:8px;color:#dcdde1;font-size:14px;transition:background .2s}.sidebar nav a:hover{background-color:#3d4454;color:#fff}.sidebar button{padding:10px 12px;border:none;border-radius:8px;background-color:#e74c3c;color:#fff;font-weight:600}.sidebar button:hover{background-color:#c0392b}.content{flex:1;padding:32px 40px;overflow-x:auto}.sidebar-user{margin:0 0 4px;font-size:13px;opacity:.75}.sidebar-role{margin:0 0 12px;font-size:12px;opacity:.6}.sidebar-hint{margin:0 0 12px;font-size:12px;opacity:.65;line-height:1.4}.contest-select input{padding:8px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#0003;color:inherit;width:100%;box-sizing:border-box}.contest-select{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;font-size:12px;opacity:.9}.contest-select select{padding:8px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#0003;color:inherit}.row-selected{background-color:#eef2ff}.hint{margin:0 0 12px;font-size:14px;opacity:.7}.link-btn{margin-top:8px;background:transparent;border:none;color:#4834d4;text-decoration:underline;padding:0}.content h3{margin-top:28px;margin-bottom:0;font-size:16px}.content table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 4px #00000014;margin-top:20px}.content th,.content td{padding:12px 16px;text-align:left;border-bottom:1px solid #eee;font-size:14px}.content thead{background-color:#f1f2f6}.content tbody tr:hover{background-color:#f9fafb}.content td button{padding:6px 12px;border:none;border-radius:6px;background-color:#4834d4;color:#fff;font-size:12px}.content td button:hover{background-color:#372aab}.action-form,.award-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:#fff;padding:16px;border-radius:10px;box-shadow:0 1px 4px #00000014;margin-bottom:10px}.action-form input,.action-form select,.award-form input,.award-form select{padding:8px 10px;border:1px solid #dcdde1;border-radius:6px;font-size:13px}.action-form label{display:flex;align-items:center;gap:6px;font-size:13px}.action-form button,.award-form button{padding:8px 16px;border:none;border-radius:6px;background-color:#2ecc71;color:#fff;font-weight:600;font-size:13px}.action-form button:hover,.award-form button:hover{background-color:#27ae60}@media(max-width:768px){.admin-layout{flex-direction:column}.sidebar{width:100%;flex-direction:row;flex-wrap:wrap;align-items:center}.sidebar nav{flex-direction:row;flex-wrap:wrap}.content{padding:20px}}
