@import"https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=DM+Sans:wght@300;400;500;600&display=swap";*{box-sizing:border-box;margin:0;padding:0}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;min-height:100vh}.login-page{min-height:100vh;background:#0a0a0f;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;font-family:DM Sans,sans-serif}.login-bg{position:absolute;inset:0;z-index:0}.grid-overlay{position:absolute;inset:0;background-image:linear-gradient(rgba(124,106,247,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(124,106,247,.06) 1px,transparent 1px);background-size:40px 40px}.login-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 50%,rgba(124,106,247,.08) 0%,transparent 70%)}.login-container{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:32px;width:100%;max-width:420px;padding:24px}.login-logo{display:flex;align-items:center;gap:14px;animation:fadeDown .5s ease}.login-logo-mark{width:48px;height:48px;background:#7c6af7;color:#fff;font-family:Space Mono,monospace;font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center;border-radius:12px;box-shadow:0 0 32px #7c6af766}.login-title{font-family:Space Mono,monospace;font-size:22px;font-weight:700;color:#e8e8f0;letter-spacing:1px}.login-subtitle{font-size:12px;color:#88a;letter-spacing:2px;text-transform:uppercase}.login-card{width:100%;background:#111118;border:1px solid #2a2a3a;border-radius:16px;padding:32px;animation:fadeUp .5s ease .1s both;box-shadow:0 24px 64px #0006}.login-card-header{margin-bottom:28px}.login-card-title{font-family:Space Mono,monospace;font-size:20px;font-weight:700;color:#e8e8f0;margin-bottom:6px}.login-card-sub{font-size:14px;color:#88a}.login-form{display:flex;flex-direction:column;gap:20px}.login-field{display:flex;flex-direction:column;gap:8px}.login-label{font-size:12px;font-weight:600;color:#88a;letter-spacing:1px;text-transform:uppercase}.input-wrap{position:relative}.login-input{width:100%;background:#0a0a0f;border:1px solid #2a2a3a;border-radius:8px;padding:12px 16px;color:#e8e8f0;font-family:DM Sans,sans-serif;font-size:15px;outline:none;transition:all .2s;box-sizing:border-box}.login-input:focus{border-color:#7c6af7;box-shadow:0 0 0 3px #7c6af726}.login-input::placeholder{color:#4a4a6a}.input-error{border-color:#fc5c65!important}.show-password{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:16px;padding:4px;color:#88a;line-height:1}.login-error{background:#fc5c651a;border:1px solid rgba(252,92,101,.3);border-radius:8px;padding:10px 14px;color:#fc5c65;font-size:13px;display:flex;align-items:center;gap:8px;animation:shake .3s ease}.login-btn{width:100%;background:#7c6af7;color:#fff;border:none;border-radius:8px;padding:14px;font-family:DM Sans,sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;margin-top:4px}.login-btn:hover:not(:disabled){background:#6a58e5;box-shadow:0 0 24px #7c6af766;transform:translateY(-1px)}.login-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.login-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.login-hint{margin-top:24px;padding-top:20px;border-top:1px solid #1a1a24;display:flex;align-items:center;justify-content:space-between}.hint-label{font-size:12px;color:#4a4a6a}.hint-code{font-family:Space Mono,monospace;font-size:12px;color:#88a;background:#0a0a0f;padding:4px 10px;border-radius:6px;border:1px solid #2a2a3a}.login-footer{font-size:12px;color:#4a4a6a;letter-spacing:1px;animation:fadeUp .5s ease .2s both}@keyframes fadeDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.home{min-height:100vh;font-family:JetBrains Mono,Fira Code,monospace;transition:background .2s,color .2s}.home.dark{--bg: #0d0d0f;--bg-2: #141418;--bg-3: #1a1a20;--border: #2a2a35;--text: #e8e8f0;--text-2: #9090a8;--text-3: #5a5a72;--accent: #6c63ff;--accent-dim: #6c63ff22;--running: #22c55e;--running-dim: #22c55e18;--ended: #9090a8;--draft: #f59e0b;--red: #ef4444;background:var(--bg);color:var(--text)}.home.light{--bg: #f4f4f8;--bg-2: #ffffff;--bg-3: #ebebf0;--border: #dddde8;--text: #1a1a2e;--text-2: #555570;--text-3: #9090a8;--accent: #5b52e0;--accent-dim: #5b52e018;--running: #16a34a;--running-dim: #16a34a18;--ended: #666680;--draft: #d97706;--red: #dc2626;background:var(--bg);color:var(--text)}.home-header{display:flex;align-items:center;justify-content:space-between;padding:0 2rem;height:56px;border-bottom:1px solid var(--border);background:var(--bg-2);position:sticky;top:0;z-index:100}.home-header-left{display:flex;align-items:center;gap:.75rem}.logo-mark{width:32px;height:32px;background:var(--accent);color:#fff;font-weight:800;font-size:.75rem;display:flex;align-items:center;justify-content:center;border-radius:6px;letter-spacing:.5px}.logo-title{font-size:.9rem;font-weight:700;color:var(--text);letter-spacing:.5px}.logo-sub{font-size:.65rem;color:var(--text-3);letter-spacing:1px;text-transform:uppercase}.home-header-right{display:flex;align-items:center;gap:.75rem}.theme-toggle{background:none;border:1px solid var(--border);color:var(--text-2);width:32px;height:32px;border-radius:6px;cursor:pointer;font-size:.85rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.admin-badge{font-size:.65rem;font-weight:700;letter-spacing:1.5px;color:var(--accent);border:1px solid var(--accent);padding:3px 8px;border-radius:4px}.logout-btn{background:none;border:1px solid var(--border);color:var(--text-2);padding:5px 12px;border-radius:6px;font-size:.75rem;cursor:pointer;font-family:inherit;transition:all .15s}.logout-btn:hover{border-color:var(--red);color:var(--red)}.home-main{max-width:1100px;margin:0 auto;padding:2.5rem 2rem}.home-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem}.home-title{font-size:1.5rem;font-weight:700;color:var(--text);margin:0 0 .3rem}.home-subtitle{font-size:.8rem;color:var(--text-2);margin:0}.home-actions{display:flex;gap:.75rem}.btn-primary{background:var(--accent);color:#fff;border:none;padding:8px 18px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity .15s}.btn-primary:hover{opacity:.85}.btn-secondary{background:none;color:var(--text-2);border:1px solid var(--border);padding:8px 18px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.home-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2.5rem}.stat-card{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:1.25rem 1.5rem}.stat-number{font-size:1.75rem;font-weight:700;color:var(--text);line-height:1;margin-bottom:.4rem}.stat-number.running{color:var(--running)}.stat-label{font-size:.7rem;color:var(--text-3);text-transform:uppercase;letter-spacing:1px}.contests-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.contests-section-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-3);margin:0}.contests-list{display:flex;flex-direction:column;gap:.6rem}.contest-card{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:border-color .15s,background .15s}.contest-card:hover{border-color:var(--accent);background:var(--bg-3)}.contest-card.running{border-left:3px solid var(--running)}.contest-card.draft{opacity:.6;cursor:default}.contest-card.draft:hover{border-color:var(--border);background:var(--bg-2)}.contest-card-left{display:flex;flex-direction:column;gap:.5rem}.contest-card-top{display:flex;align-items:center;gap:.75rem}.contest-name{font-size:.95rem;font-weight:600;color:var(--text)}.contest-status-badge{font-size:.65rem;font-weight:700;padding:2px 8px;border-radius:4px;letter-spacing:.5px}.status-running{background:var(--running-dim);color:var(--running)}.status-ended{background:var(--bg-3);color:var(--ended)}.status-draft{background:#f59e0b18;color:var(--draft)}.contest-card-meta{display:flex;align-items:center;gap:1.25rem}.meta-item{font-size:.75rem;color:var(--text-2)}.contest-code{color:var(--text-3);font-size:.7rem;font-family:monospace}.contest-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem}.contest-date{font-size:.7rem;color:var(--text-3)}.contest-action{font-size:.75rem;color:var(--accent);font-weight:600}.contest-action.muted{color:var(--text-3)}.contest-code-btn{background:none;border:1px solid var(--border);color:var(--text-3);font-size:.7rem;font-family:monospace;padding:1px 7px;border-radius:4px;cursor:pointer;transition:all .15s;letter-spacing:.5px}.contest-code-btn:hover{border-color:var(--accent);color:var(--accent)}.contest-code-btn.code-copied{border-color:var(--running);color:var(--running)}.empty-state{text-align:center;padding:4rem 2rem;border:1px dashed var(--border);border-radius:8px;display:flex;flex-direction:column;align-items:center;gap:.75rem}.empty-icon{font-size:2rem;opacity:.3}.empty-text{font-size:1rem;font-weight:600;color:var(--text-2)}.empty-sub{font-size:.8rem;color:var(--text-3);margin-bottom:.5rem}.problems-page{min-height:100vh;background:#0a0a0f;color:#e8e8f0;font-family:DM Sans,sans-serif;position:relative}.problems-bg{position:fixed;inset:0;z-index:0;pointer-events:none}.problems-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(124,106,247,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(124,106,247,.04) 1px,transparent 1px);background-size:40px 40px}.problems-container{position:relative;z-index:1;max-width:900px;margin:0 auto;padding:32px 24px 64px}.problems-header{display:flex;align-items:center;gap:16px;margin-bottom:36px}.back-btn{background:none;border:1px solid #2a2a3a;color:#88a;font-family:DM Sans,sans-serif;font-size:13px;padding:8px 14px;border-radius:8px;cursor:pointer;transition:all .2s;flex-shrink:0}.problems-title-wrap{display:flex;align-items:center;gap:12px;flex:1}.problems-logo-mark{width:36px;height:36px;background:#7c6af7;color:#fff;font-family:Space Mono,monospace;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;border-radius:8px;box-shadow:0 0 16px #7c6af74d}.problems-title{font-family:Space Mono,monospace;font-size:17px;font-weight:700}.problems-sub{font-size:12px;color:#88a}.add-problem-btn{background:#7c6af7;color:#fff;border:none;border-radius:8px;padding:10px 18px;font-family:DM Sans,sans-serif;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s;white-space:nowrap}.add-problem-btn:hover{opacity:.85;transform:translateY(-1px)}.list-filters{display:flex;gap:12px;margin-bottom:20px;align-items:center;flex-wrap:wrap}.search-input{flex:1;min-width:200px;background:#111118;border:1px solid #2a2a3a;border-radius:8px;padding:10px 16px;color:#e8e8f0;font-family:DM Sans,sans-serif;font-size:14px;outline:none;transition:all .2s}.search-input:focus{border-color:#7c6af7}.search-input::placeholder{color:#4a4a6a}.diff-filters{display:flex;gap:6px}.diff-filter-btn{background:#111118;border:1px solid #2a2a3a;color:#88a;font-family:DM Sans,sans-serif;font-size:13px;padding:8px 14px;border-radius:8px;cursor:pointer;transition:all .2s}.diff-filter-btn:hover{border-color:#7c6af7;color:#e8e8f0}.diff-filter-active{border-color:#7c6af7!important;color:#7c6af7!important;background:#7c6af714!important}.problems-list{display:flex;flex-direction:column;gap:8px}.empty-problems{text-align:center;padding:48px;color:#4a4a6a;font-size:14px;border:1px solid #2a2a3a;border-radius:12px}.problem-row{display:flex;align-items:center;gap:16px;padding:16px 20px;background:#111118;border:1px solid #2a2a3a;border-radius:10px;cursor:pointer;transition:all .2s}.problem-row:hover{border-color:#7c6af7;transform:translate(4px)}.problem-row-num{font-family:Space Mono,monospace;font-size:12px;color:#4a4a6a;width:24px;flex-shrink:0}.problem-row-info{flex:1}.problem-row-title{font-weight:600;font-size:15px;margin-bottom:6px}.problem-row-tags{display:flex;gap:6px;flex-wrap:wrap}.problem-row-meta{display:flex;align-items:center;gap:12px;flex-shrink:0}.problem-row-date{font-size:12px;color:#4a4a6a;font-family:Space Mono,monospace}.problem-row-cases{font-size:12px;color:#88a}.problem-row-actions{display:flex;gap:6px;flex-shrink:0}.problems-count{margin-top:16px;font-size:13px;color:#4a4a6a;font-family:Space Mono,monospace}.diff-badge{font-size:10px;font-family:Space Mono,monospace;padding:2px 8px;border-radius:10px;border:1px solid}.diff-easy{color:#4ecdc4;border-color:#4ecdc466;background:#4ecdc414}.diff-medium{color:#f7b731;border-color:#f7b73166;background:#f7b73114}.diff-hard{color:#fc5c65;border-color:#fc5c6566;background:#fc5c6514}.tag{font-size:11px;color:#88a;background:#1a1a24;padding:2px 8px;border-radius:6px}.action-btn{font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;padding:6px 12px;border-radius:6px;border:1px solid;cursor:pointer;transition:all .2s}.edit-btn{background:none;border-color:#2a2a3a;color:#88a}.edit-btn:hover{border-color:#7c6af7;color:#7c6af7}.del-btn{background:none;border-color:#2a2a3a;color:#88a}.del-btn:hover{border-color:#fc5c65;color:#fc5c65;background:#fc5c6514}.detail-view{animation:fadeUp .25s ease}.detail-card{background:#111118;border:1px solid #2a2a3a;border-radius:16px;padding:32px}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}.detail-title{font-family:Space Mono,monospace;font-size:22px;font-weight:700;margin-bottom:10px}.detail-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.detail-actions{display:flex;gap:8px}.detail-section{margin-bottom:24px}.detail-two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px}.detail-section-label{font-family:Space Mono,monospace;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:#4a4a6a;margin-bottom:10px}.detail-section-text{font-size:14px;line-height:1.7;color:#c8c8d8;white-space:pre-line}.mono{font-family:Space Mono,monospace;font-size:13px}.test-cases{display:flex;flex-direction:column;gap:10px}.test-case{background:#0a0a0f;border:1px solid #2a2a3a;border-radius:8px;padding:14px 16px}.tc-label{font-family:Space Mono,monospace;font-size:11px;color:#7c6af7;margin-bottom:10px}.tc-row{display:flex;gap:10px;margin-bottom:6px;align-items:flex-start}.tc-row:last-child{margin-bottom:0}.tc-key{font-size:12px;color:#4a4a6a;width:60px;flex-shrink:0;padding-top:1px}.tc-val{font-family:Space Mono,monospace;font-size:13px;color:#4ecdc4;background:#111118;padding:2px 8px;border-radius:4px}.tc-note{font-size:13px;color:#88a}.form-view{animation:fadeUp .25s ease}.form-card{background:#111118;border:1px solid #2a2a3a;border-radius:16px;padding:32px}.form-title{font-family:Space Mono,monospace;font-size:20px;font-weight:700;margin-bottom:28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-field{display:flex;flex-direction:column;gap:8px}.full{grid-column:1 / -1}.form-label{font-size:12px;font-weight:600;color:#88a;letter-spacing:1px;text-transform:uppercase}.form-input{background:#0a0a0f;border:1px solid #2a2a3a;border-radius:8px;padding:11px 14px;color:#e8e8f0;font-family:DM Sans,sans-serif;font-size:14px;outline:none;transition:all .2s;width:100%;box-sizing:border-box}.form-input:focus{border-color:#7c6af7;box-shadow:0 0 0 3px #7c6af71f}.form-input::placeholder{color:#4a4a6a}.form-textarea{background:#0a0a0f;border:1px solid #2a2a3a;border-radius:8px;padding:11px 14px;color:#e8e8f0;font-family:DM Sans,sans-serif;font-size:14px;outline:none;transition:all .2s;width:100%;box-sizing:border-box;resize:vertical;line-height:1.6}.form-textarea:focus{border-color:#7c6af7;box-shadow:0 0 0 3px #7c6af71f}.form-textarea::placeholder{color:#4a4a6a}.mono-input{font-family:Space Mono,monospace;font-size:13px}.diff-select{display:flex;gap:8px}.diff-opt{background:#0a0a0f;border:1px solid #2a2a3a;color:#88a;font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;padding:8px 16px;border-radius:8px;cursor:pointer;transition:all .2s}.diff-opt:hover{border-color:#7c6af7}.diff-opt-active.diff-easy{color:#4ecdc4;border-color:#4ecdc4;background:#4ecdc41a}.diff-opt-active.diff-medium{color:#f7b731;border-color:#f7b731;background:#f7b7311a}.diff-opt-active.diff-hard{color:#fc5c65;border-color:#fc5c65;background:#fc5c651a}.tag-input-wrap{display:flex;gap:8px}.tag-input-wrap .form-input{flex:1}.tag-add-btn{background:#7c6af7;color:#fff;border:none;border-radius:8px;width:36px;font-size:18px;cursor:pointer;transition:all .2s;flex-shrink:0}.tag-add-btn:hover{opacity:.85}.tag-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.tag-removable{font-size:12px;color:#88a;background:#1a1a24;border:1px solid #2a2a3a;padding:3px 10px;border-radius:6px;display:flex;align-items:center;gap:6px}.tag-removable button{background:none;border:none;color:#4a4a6a;cursor:pointer;font-size:14px;padding:0;line-height:1}.tag-removable button:hover{color:#fc5c65}.tc-header{display:flex;justify-content:space-between;align-items:center}.add-tc-btn{background:none;border:1px solid #2a2a3a;color:#88a;font-family:DM Sans,sans-serif;font-size:13px;padding:6px 12px;border-radius:6px;cursor:pointer;transition:all .2s}.add-tc-btn:hover{border-color:#7c6af7;color:#7c6af7}.tc-form-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}.tc-form{background:#0a0a0f;border:1px solid #2a2a3a;border-radius:10px;padding:16px}.tc-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.tc-form-label{font-family:Space Mono,monospace;font-size:11px;color:#7c6af7}.remove-tc-btn{background:none;border:none;color:#4a4a6a;cursor:pointer;font-size:14px;transition:color .2s}.remove-tc-btn:hover{color:#fc5c65}.tc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.full-span{grid-column:1 / -1}.tc-mini-label{font-size:11px;color:#4a4a6a;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:28px;padding-top:24px;border-top:1px solid #1a1a24}.cancel-btn{background:none;border:1px solid #2a2a3a;color:#88a;font-family:DM Sans,sans-serif;font-size:14px;padding:10px 20px;border-radius:8px;cursor:pointer;transition:all .2s}.cancel-btn:hover{border-color:#7c6af7;color:#7c6af7}.save-btn{background:#7c6af7;color:#fff;border:none;border-radius:8px;padding:10px 24px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px}.save-btn:hover:not(:disabled){opacity:.85;transform:translateY(-1px)}.btn-disabled{opacity:.4;cursor:not-allowed}.save-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal{background:#111118;border:1px solid #2a2a3a;border-radius:12px;padding:28px;width:360px}.modal-title{font-family:Space Mono,monospace;font-size:17px;font-weight:700;margin-bottom:8px}.modal-sub{color:#88a;font-size:14px;margin-bottom:24px}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.delete-confirm-btn{background:#fc5c65;color:#fff;border:none;border-radius:8px;padding:10px 20px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.delete-confirm-btn:hover{opacity:.85}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.problem-code-badge{font-family:Space Mono,Courier New,monospace;font-size:.68rem;font-weight:700;letter-spacing:1px;color:#7c6af7;background:#7c6af71a;border:1px solid rgba(124,106,247,.3);padding:2px 8px;border-radius:4px;cursor:pointer;transition:all .15s;white-space:nowrap}.problem-code-badge:hover{background:#7c6af733;border-color:#7c6af7}.problem-code-badge.code-copied{color:#4ecdc4;background:#4ecdc41a;border-color:#4ecdc466}.large-code{font-size:.8rem;padding:4px 12px}.detail-title-row{display:flex;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap}.form-title-row{display:flex;align-items:center;gap:12px;margin-bottom:1.5rem;flex-wrap:wrap}.form-code-display{font-family:Space Mono,Courier New,monospace;font-size:.8rem;font-weight:700;color:#7c6af7;background:#7c6af71a;border:1px solid rgba(124,106,247,.3);padding:4px 12px;border-radius:4px}.cc-page{min-height:100vh;background:#0d0d0f;color:#e8e8f0;font-family:JetBrains Mono,Fira Code,monospace}.cc-header{display:flex;align-items:center;justify-content:space-between;padding:0 2rem;height:56px;border-bottom:1px solid #2a2a35;background:#141418;position:sticky;top:0;z-index:100}.cc-header-left{display:flex;align-items:center;gap:.75rem;width:200px}.cc-back-btn{background:none;border:1px solid #2a2a35;color:#9090a8;padding:5px 10px;border-radius:6px;font-size:.75rem;cursor:pointer;font-family:inherit;transition:all .15s}.cc-back-btn:hover{border-color:#6c63ff;color:#6c63ff}.cc-logo-mark{width:28px;height:28px;background:#6c63ff;color:#fff;font-weight:800;font-size:.7rem;display:flex;align-items:center;justify-content:center;border-radius:5px}.cc-logo-title{font-size:.85rem;font-weight:700;color:#e8e8f0}.cc-logo-sub{font-size:.6rem;color:#5a5a72;letter-spacing:1px;text-transform:uppercase}.cc-steps{display:flex;align-items:center;gap:.5rem}.cc-step{display:flex;align-items:center;gap:.4rem;opacity:.35;transition:opacity .2s}.cc-step.cc-step-active{opacity:1}.cc-step-num{width:24px;height:24px;border-radius:50%;border:1.5px solid #2a2a35;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#9090a8;transition:all .2s}.cc-step-active .cc-step-num{background:#6c63ff;border-color:#6c63ff;color:#fff}.cc-step-label{font-size:.72rem;color:#9090a8;letter-spacing:.5px}.cc-step-active .cc-step-label{color:#e8e8f0}.cc-step-line{width:48px;height:1px;background:#2a2a35;transition:background .2s}.cc-step-line-active{background:#6c63ff}.cc-main{max-width:800px;margin:0 auto;padding:2.5rem 2rem}.cc-card{background:#141418;border:1px solid #2a2a35;border-radius:10px;padding:2rem}.cc-card-title{font-size:1.15rem;font-weight:700;color:#e8e8f0;margin-bottom:.3rem}.cc-card-sub{font-size:.78rem;color:#9090a8;margin-bottom:2rem}.cc-field{margin-bottom:1.75rem}.cc-label{display:block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#9090a8;margin-bottom:.6rem}.cc-input{width:100%;background:#0d0d0f;border:1px solid #2a2a35;border-radius:6px;padding:10px 14px;color:#e8e8f0;font-size:.9rem;font-family:inherit;outline:none;transition:border-color .15s;box-sizing:border-box}.cc-input:focus{border-color:#6c63ff}.cc-input::placeholder{color:#5a5a72}.cc-duration-display{font-size:2rem;font-weight:700;color:#6c63ff;margin-bottom:1rem}.cc-duration-pills{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.cc-duration-pill{background:#0d0d0f;border:1px solid #2a2a35;color:#9090a8;padding:5px 12px;border-radius:20px;font-size:.75rem;cursor:pointer;font-family:inherit;transition:all .15s}.cc-duration-pill:hover{border-color:#6c63ff;color:#6c63ff}.cc-duration-active{background:#6c63ff22;border-color:#6c63ff;color:#6c63ff;font-weight:700}.cc-slider{width:100%;accent-color:#6c63ff;cursor:pointer}.cc-slider-labels{display:flex;justify-content:space-between;font-size:.65rem;color:#5a5a72;margin-top:.25rem}.cc-actions{margin-top:2rem;display:flex;justify-content:flex-end}.cc-btn-primary{background:#6c63ff;color:#fff;border:none;padding:10px 24px;border-radius:6px;font-size:.85rem;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s;display:flex;align-items:center;justify-content:center;gap:.5rem}.cc-btn-primary:hover:not(.cc-btn-disabled){opacity:.85}.cc-btn-full{width:100%;padding:12px}.cc-btn-disabled{opacity:.35;cursor:not-allowed}.cc-step2-layout{display:grid;grid-template-columns:1fr 320px;gap:1.25rem;align-items:start}.cc-problems-panel{background:#141418;border:1px solid #2a2a35;border-radius:10px;overflow:hidden}.cc-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #2a2a35}.cc-panel-title{font-size:.85rem;font-weight:700;color:#e8e8f0}.cc-add-problem-link{background:none;border:none;color:#6c63ff;font-size:.75rem;cursor:pointer;font-family:inherit;transition:opacity .15s}.cc-add-problem-link:hover{opacity:.75}.cc-filters{padding:1rem 1.5rem;border-bottom:1px solid #2a2a35;display:flex;flex-direction:column;gap:.6rem}.cc-search{width:100%;background:#0d0d0f;border:1px solid #2a2a35;border-radius:6px;padding:8px 12px;color:#e8e8f0;font-size:.8rem;font-family:inherit;outline:none;transition:border-color .15s;box-sizing:border-box}.cc-search:focus{border-color:#6c63ff}.cc-search::placeholder{color:#5a5a72}.cc-diff-filters{display:flex;gap:.4rem}.cc-diff-btn{background:none;border:1px solid #2a2a35;color:#9090a8;padding:3px 10px;border-radius:4px;font-size:.7rem;cursor:pointer;font-family:inherit;transition:all .15s}.cc-diff-btn:hover{border-color:#9090a8;color:#e8e8f0}.cc-diff-active{background:#6c63ff22;border-color:#6c63ff;color:#6c63ff}.cc-problem-list{max-height:420px;overflow-y:auto}.cc-problem-row{display:flex;align-items:center;gap:.75rem;padding:.9rem 1.5rem;border-bottom:1px solid #1a1a20;cursor:pointer;transition:background .1s}.cc-problem-row:last-child{border-bottom:none}.cc-problem-row:hover{background:#1a1a20}.cc-problem-selected{background:#6c63ff0d;border-left:2px solid #6c63ff}.cc-problem-selected:hover{background:#6c63ff18}.cc-checkbox{width:18px;height:18px;border:1.5px solid #2a2a35;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:#fff;flex-shrink:0;transition:all .15s}.cc-checkbox-checked{background:#6c63ff;border-color:#6c63ff}.cc-problem-info{flex:1}.cc-problem-title-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.cc-problem-title{font-size:.85rem;font-weight:600;color:#e8e8f0}.cc-problem-code{font-size:.65rem;font-weight:700;color:#6c63ff;background:#6c63ff1a;border:1px solid rgba(108,99,255,.25);padding:1px 6px;border-radius:3px;font-family:monospace;letter-spacing:.5px;flex-shrink:0}.cc-problem-tags{display:flex;flex-wrap:wrap;gap:.3rem}.cc-tag{font-size:.65rem;color:#9090a8;background:#1a1a20;border:1px solid #2a2a35;padding:1px 6px;border-radius:3px}.cc-diff-badge{font-size:.65rem;font-weight:700;padding:2px 7px;border-radius:4px;flex-shrink:0}.diff-easy{background:#22c55e18;color:#22c55e}.diff-medium{background:#f59e0b18;color:#f59e0b}.diff-hard{background:#ef444418;color:#ef4444}.cc-summary-panel{background:#141418;border:1px solid #2a2a35;border-radius:10px;padding:1.5rem;position:sticky;top:72px}.cc-summary-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:#5a5a72;margin-bottom:1.25rem}.cc-summary-field{margin-bottom:1.25rem}.cc-summary-label{font-size:.65rem;text-transform:uppercase;letter-spacing:1px;color:#5a5a72;margin-bottom:.4rem;display:flex;align-items:center;gap:.5rem}.cc-summary-count{background:#6c63ff;color:#fff;font-size:.6rem;font-weight:700;padding:1px 6px;border-radius:10px}.cc-summary-val{font-size:.9rem;font-weight:600;color:#e8e8f0}.cc-selected-problems{display:flex;flex-direction:column;gap:.4rem;margin-top:.4rem}.cc-no-problems{font-size:.75rem;color:#5a5a72;padding:.5rem 0}.cc-selected-row{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#0d0d0f;border:1px solid #2a2a35;border-radius:5px}.cc-selected-num{font-size:.65rem;color:#5a5a72;width:14px;flex-shrink:0}.cc-selected-name{font-size:.78rem;color:#e8e8f0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-remove-btn{background:none;border:none;color:#5a5a72;cursor:pointer;font-size:.65rem;padding:0;transition:color .15s;flex-shrink:0}.cc-remove-btn:hover{color:#ef4444}.cc-hint{text-align:center;font-size:.7rem;color:#5a5a72;margin-top:.75rem}.cc-spinner{width:16px;height:16px;border:2px solid #ffffff40;border-top-color:#fff;border-radius:50%;animation:cc-spin .6s linear infinite;display:inline-block}@keyframes cc-spin{to{transform:rotate(360deg)}}.lobby-page{min-height:100vh;background:#0d0d0f;color:#e8e8f0;font-family:JetBrains Mono,Fira Code,monospace}.lobby-header{display:flex;align-items:center;justify-content:space-between;padding:0 2rem;height:56px;border-bottom:1px solid #2a2a35;background:#141418;position:sticky;top:0;z-index:100}.lobby-header-left{display:flex;align-items:center;gap:.75rem}.lobby-back-btn{background:none;border:1px solid #2a2a35;color:#9090a8;padding:5px 10px;border-radius:6px;font-size:.75rem;cursor:pointer;font-family:inherit;transition:all .15s}.lobby-back-btn:hover{border-color:#6c63ff;color:#6c63ff}.lobby-logo-mark{width:32px;height:32px;background:#6c63ff;color:#fff;font-weight:800;font-size:.75rem;display:flex;align-items:center;justify-content:center;border-radius:6px}.lobby-logo-title{font-size:.9rem;font-weight:700;color:#e8e8f0}.lobby-logo-sub{font-size:.6rem;color:#5a5a72;letter-spacing:1px;text-transform:uppercase}.lobby-header-right{display:flex;align-items:center;gap:1.25rem}.lobby-meta-item{font-size:.75rem;color:#9090a8}.lobby-main{max-width:1000px;margin:0 auto;padding:3rem 2rem}.lobby-layout{display:grid;grid-template-columns:360px 1fr;gap:1.5rem;align-items:start}.lobby-code-panel{background:#141418;border:1px solid #2a2a35;border-radius:10px;padding:2rem;text-align:center}.lobby-code-label{font-size:.65rem;text-transform:uppercase;letter-spacing:2px;color:#5a5a72;margin-bottom:1rem}.lobby-code{font-size:3.5rem;font-weight:800;color:#6c63ff;letter-spacing:6px;line-height:1;margin-bottom:.75rem}.lobby-code-sub{font-size:.72rem;color:#9090a8;line-height:1.6;margin-bottom:1.25rem;padding:0 .5rem}.lobby-copy-btn{background:#6c63ff22;border:1px solid #6c63ff;color:#6c63ff;padding:8px 20px;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;width:100%}.lobby-copy-btn:hover{background:#6c63ff33}.lobby-divider{height:1px;background:#2a2a35;margin:1.5rem 0}.lobby-problems-label{font-size:.65rem;text-transform:uppercase;letter-spacing:1.5px;color:#5a5a72;margin-bottom:.75rem;text-align:left}.lobby-problems-list{display:flex;flex-direction:column;gap:.4rem;text-align:left}.lobby-problem-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;background:#0d0d0f;border:1px solid #2a2a35;border-radius:5px}.lobby-problem-num{font-size:.65rem;color:#5a5a72;width:14px;flex-shrink:0}.lobby-problem-name{font-size:.8rem;color:#e8e8f0}.lobby-participants-list::-webkit-scrollbar{width:6px}.lobby-participants-list::-webkit-scrollbar-track{background:transparent}.lobby-participants-list::-webkit-scrollbar-thumb{background:#2a2a35;border-radius:10px}.lobby-participants-list::-webkit-scrollbar-thumb:hover{background:#6c63ff55}.lobby-participants-panel{background:#141418;border:1px solid #2a2a35;border-radius:10px;overflow:hidden;display:flex;flex-direction:column}.lobby-participants-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #2a2a35}.lobby-participants-title{font-size:.85rem;font-weight:700;color:#e8e8f0}.lobby-count{display:flex;align-items:center;gap:.5rem}.lobby-count-num{font-size:1.5rem;font-weight:800;color:#22c55e;line-height:1}.lobby-count-pulse{width:8px;height:8px;background:#22c55e;border-radius:50%;animation:lobby-pulse 1.5s ease-in-out infinite}@keyframes lobby-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.lobby-participants-list{flex:1;min-height:240px;max-height:340px;overflow-y:auto;padding:.5rem 0}.lobby-waiting{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;gap:.75rem}.lobby-waiting-dots{display:flex;gap:.4rem}.lobby-waiting-dots span{width:6px;height:6px;background:#2a2a35;border-radius:50%;animation:lobby-dot 1.4s ease-in-out infinite}.lobby-waiting-dots span:nth-child(2){animation-delay:.2s}.lobby-waiting-dots span:nth-child(3){animation-delay:.4s}@keyframes lobby-dot{0%,80%,to{background:#2a2a35}40%{background:#6c63ff}}.lobby-waiting-text{font-size:.75rem;color:#5a5a72}.lobby-participant-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;border-bottom:1px solid #1a1a20;transition:background .1s}.lobby-participant-row:last-child{border-bottom:none}.lobby-participant-row:hover{background:#1a1a20}.lobby-participant-enter{animation:lobby-slide-in .3s ease-out forwards}@keyframes lobby-slide-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.lobby-participant-num{font-size:.65rem;color:#5a5a72;width:20px;flex-shrink:0}.lobby-participant-name{font-size:.85rem;font-weight:600;color:#e8e8f0;flex:1}.lobby-participant-time{font-size:.68rem;color:#5a5a72}.lobby-start-wrap{padding:1.25rem 1.5rem;border-top:1px solid #2a2a35;display:flex;flex-direction:column;gap:.5rem}.lobby-start-btn{width:100%;background:#22c55e;color:#fff;border:none;padding:12px;border-radius:6px;font-size:.9rem;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s;display:flex;align-items:center;justify-content:center;gap:.5rem}.lobby-start-btn:hover:not(.lobby-start-disabled){opacity:.85}.lobby-start-disabled{background:#2a2a35;color:#5a5a72;cursor:not-allowed}.lobby-start-arrow{font-size:1rem}.lobby-start-hint{text-align:center;font-size:.7rem;color:#5a5a72}.lobby-spinner{width:16px;height:16px;border:2px solid #ffffff40;border-top-color:#fff;border-radius:50%;animation:lobby-spin .6s linear infinite;display:inline-block}@keyframes lobby-spin{to{transform:rotate(360deg)}}.manual-add-wrap{display:flex;gap:8px;margin-bottom:8px}.manual-add-input{flex:1;background:#0d0d0f;border:1px solid #2a2a35;border-radius:6px;padding:8px 12px;color:#e8e8f0;font-size:.8rem;font-family:inherit;outline:none;transition:border-color .15s}.manual-add-input:focus{border-color:#6c63ff}.manual-add-input::placeholder{color:#5a5a72}.manual-add-btn{background:#6c63ff22;border:1px solid #6c63ff;color:#6c63ff;padding:8px 14px;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap}.manual-add-btn:hover{background:#6c63ff33}.manual-add-error{font-size:.72rem;color:#fc5c65;margin-bottom:8px;padding:4px 8px;background:#fc5c6514;border:1px solid rgba(252,92,101,.2);border-radius:4px}.lobby-actions-row{display:flex;gap:8px;margin-bottom:8px}.upload-csv-btn{flex:1;background:#6c63ff22;border:1px dashed #6c63ff;color:#6c63ff;padding:8px 14px;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s;text-align:center}.upload-csv-btn:hover{background:#6c63ff33;border-style:solid}.lobby-participant-info{display:flex;flex-direction:column;flex:1;min-width:0}.lobby-participant-mems{font-size:.65rem;color:#5a5a72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-participant-pass-wrap{display:flex;align-items:center;gap:6px;background:#6c63ff15;padding:4px 8px;border-radius:6px;flex-shrink:0}.lobby-participant-pass{font-size:.75rem;color:#6c63ff;letter-spacing:1.5px;min-width:60px;text-align:center}.lobby-pass-eye{background:none;border:none;color:#9090a8;cursor:pointer;padding:0;font-size:.8rem;display:flex;align-items:center;justify-content:center;transition:opacity .15s;opacity:.6}.lobby-pass-eye:hover{opacity:1}.lobby-status-indicator{display:flex;align-items:center;justify-content:flex-end;width:60px;flex-shrink:0}.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.status-dot.unjoined{border:2px solid #5a5a72;background:transparent}.status-dot.active{background:#22c55e;box-shadow:0 0 8px #22c55e4d}.status-dot.offline{background:#fc5c65}.team-modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.team-modal{background:#141418;width:100%;max-width:480px;border-radius:12px;border:1px solid #2a2a35;padding:2rem;box-shadow:0 10px 40px #00000080}.team-modal h3{margin:0 0 1.5rem;font-size:1.1rem;font-weight:700;color:#fff}.modal-input-group{margin-bottom:1rem;display:flex;flex-direction:column;gap:6px}.modal-input-group label{font-size:.75rem;color:#9090a8;font-weight:600}.modal-input-group .req{color:#fc5c65}.modal-input-group input{background:#0d0d0f;border:1px solid #2a2a35;border-radius:6px;padding:10px 12px;color:#e8e8f0;font-size:.85rem;font-family:inherit;transition:border-color .15s;width:100%;box-sizing:border-box}.modal-input-group input:focus{border-color:#6c63ff;outline:none}.modal-row{display:grid;grid-template-columns:1fr 150px;gap:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem}.row-align{display:flex;flex-direction:row;align-items:flex-end;gap:1rem;margin-bottom:1rem}.flex-1{flex:1;display:flex;flex-direction:column;gap:6px}.pass-btn{height:38px;padding:0 16px;margin:0}.dark{--bg: #0a0a0f;--bg2: #111118;--bg3: #1a1a24;--border: #2a2a3a;--text: #e8e8f0;--text2: #8888aa;--text3: #4a4a6a;--accent: #7c6af7;--accent2: #4ecdc4;--glow: rgba(124, 106, 247, .15)}.light{--bg: #f0f0f8;--bg2: #ffffff;--bg3: #e8e8f4;--border: #d0d0e8;--text: #1a1a2e;--text2: #5a5a7a;--text3: #aaaacc;--accent: #5b4de0;--accent2: #2da89f;--glow: rgba(91, 77, 224, .1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}.app{font-family:DM Sans,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column;transition:background .3s,color .3s}.header{display:flex;align-items:center;justify-content:space-between;padding:0 2rem;height:64px;border-bottom:1px solid var(--border);background:var(--bg2);position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:12px}.logo-mark{width:38px;height:38px;background:var(--accent);color:#fff;font-family:Space Mono,monospace;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;border-radius:8px;box-shadow:0 0 16px var(--glow)}.logo-title{font-family:Space Mono,monospace;font-size:15px;font-weight:700;letter-spacing:1px}.logo-sub{font-size:11px;color:var(--text2);letter-spacing:2px;text-transform:uppercase}.header-center{display:flex;align-items:center;gap:1rem}.header-right{display:flex;align-items:center;gap:12px}.contest-badge{display:flex;align-items:center;gap:8px;padding:6px 14px;border-radius:20px;font-family:Space Mono,monospace;font-size:11px;font-weight:700;letter-spacing:2px;border:1px solid var(--border)}.contest-running{color:#4ecdc4;border-color:#4ecdc4;background:#4ecdc414}.contest-paused{color:#f7b731;border-color:#f7b731;background:#f7b73114}.contest-ended{color:#fc5c65;border-color:#fc5c65;background:#fc5c6514}.dash-timer{font-family:Space Mono,monospace;font-size:1.4rem;font-weight:700;color:var(--accent2);letter-spacing:2px}.pulse-dot{width:7px;height:7px;background:#4ecdc4;border-radius:50%;animation:pulse 1.5s infinite}.pulse-dot.large{width:10px;height:10px}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.prob-bank-btn{background:none;border:1px solid var(--border);color:var(--text2);font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;padding:6px 14px;border-radius:6px;cursor:pointer;transition:all .2s}.prob-bank-btn:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle{background:var(--bg3);border:1px solid var(--border);color:var(--text);width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s}.theme-toggle:hover{border-color:var(--accent)}.admin-badge{font-family:Space Mono,monospace;font-size:10px;letter-spacing:2px;color:var(--accent);border:1px solid var(--accent);padding:4px 10px;border-radius:4px}.logout-btn{background:none;border:1px solid var(--border);color:var(--text2);font-family:DM Sans,sans-serif;font-size:13px;padding:6px 14px;border-radius:6px;cursor:pointer;transition:all .2s}.logout-btn:hover{border-color:#fc5c65;color:#fc5c65}.back-btn{background:none;border:1px solid var(--border);color:var(--text2);font-family:DM Sans,sans-serif;font-size:13px;padding:6px 14px;border-radius:8px;cursor:pointer;transition:all .2s;white-space:nowrap}.back-btn:hover{border-color:var(--accent);color:var(--accent)}.nav{display:flex;align-items:center;gap:4px;padding:0 2rem;height:52px;border-bottom:1px solid var(--border);background:var(--bg2)}.nav-btn{background:none;border:none;color:var(--text2);font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;padding:6px 16px;border-radius:6px;cursor:pointer;transition:all .2s}.nav-btn:hover{color:var(--text);background:var(--bg3)}.nav-active{color:var(--accent)!important;background:var(--glow)!important}.nav-stats{margin-left:auto;display:flex;gap:8px}.stat-pill{font-size:12px;padding:3px 10px;border-radius:12px;background:var(--bg3);color:var(--text2);border:1px solid var(--border)}.stat-pill.submitted{color:#4ecdc4;border-color:#4ecdc44d}.stat-pill.offline{color:#fc5c65;border-color:#fc5c654d}.main{flex:1;padding:2rem;max-width:1400px;width:100%;margin:0 auto}.tab-content{animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.section-header{margin-bottom:1.5rem}.section-title{font-family:Space Mono,monospace;font-size:20px;font-weight:700;display:flex;align-items:center;gap:10px}.section-sub{color:var(--text2);font-size:13px;margin-top:4px}.count-badge{font-size:12px;background:var(--glow);color:var(--accent);border:1px solid var(--accent);padding:2px 8px;border-radius:12px}.table-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:12px;overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th{font-family:Space Mono,monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);padding:14px 16px;text-align:left;border-bottom:1px solid var(--border);background:var(--bg3);white-space:nowrap}.table-row{transition:background .15s}.table-row:hover{background:var(--bg3)}.table-row td{padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px;white-space:nowrap}.table-row:last-child td{border-bottom:none}.td-num{color:var(--text3);font-family:Space Mono,monospace;font-size:12px}.td-name{font-weight:600}.td-problem{color:var(--text2);font-size:12px}.td-score{font-family:Space Mono,monospace;font-weight:700;color:var(--accent2)}.td-reveals,.td-compiles,.td-wrong{font-family:Space Mono,monospace;color:var(--text2)}.td-time{font-family:Space Mono,monospace;font-size:13px}.td-active{color:var(--text2);font-size:12px}.td-warn{color:#f7b731!important}.td-danger{color:#fc5c65!important}.status-tag{font-size:11px;font-family:Space Mono,monospace;padding:3px 10px;border-radius:12px;border:1px solid;white-space:nowrap}.status-coding{color:var(--accent);border-color:var(--accent);background:var(--glow)}.status-idle{color:var(--text2);border-color:var(--border)}.status-submitted{color:#4ecdc4;border-color:#4ecdc466;background:#4ecdc414}.status-offline{color:#fc5c65;border-color:#fc5c6566;background:#fc5c6514}.flex-between{display:flex;justify-content:space-between;align-items:flex-end}.last-sync-badge{font-family:Space Mono,monospace;font-size:11px;color:var(--accent2);display:flex;align-items:center;gap:6px;padding:4px 10px;background:#4ecdc41a;border-radius:12px;border:1px solid rgba(78,205,196,.2)}.sync-dot{width:6px;height:6px;background:var(--accent2);border-radius:50%;animation:pulse 2s infinite}.leaderboard-container{background:var(--bg2);border:1px solid var(--border);border-radius:12px;overflow-x:auto}.lb-header{display:grid;align-items:center;padding:12px 20px;background:var(--bg3);border-bottom:1px solid var(--border);font-family:Space Mono,monospace;font-size:11px;letter-spacing:1.5px;color:var(--text3);text-transform:uppercase}.leaderboard{display:flex;flex-direction:column}.lb-row{display:grid;align-items:center;padding:14px 20px;border-bottom:1px solid var(--border);transition:all .2s ease;background:transparent}.lb-row:last-child{border-bottom:none}.lb-row:hover{background:var(--bg3)}.lb-first{border-left:3px solid #f7b731;background:linear-gradient(90deg,rgba(247,183,49,.08) 0%,transparent 100%)}.lb-second{border-left:3px solid #a0a0b0;background:linear-gradient(90deg,rgba(160,160,176,.05) 0%,transparent 100%)}.lb-third{border-left:3px solid #cd7f32;background:linear-gradient(90deg,rgba(205,127,50,.05) 0%,transparent 100%)}.lb-col-center{display:flex;justify-content:center}.lb-col-right{display:flex;justify-content:flex-end}.lb-rank{font-family:Space Mono,monospace;font-size:16px;color:var(--text2);text-align:center}.lb-name{font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-score-wrap{display:flex;align-items:baseline;justify-content:flex-end;gap:4px;font-family:Space Mono,monospace}.lb-score-obtained{font-size:16px;font-weight:700;color:var(--accent2)}.lb-score-total{font-size:12px;color:var(--text3)}.lb-meta{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.lb-tag{font-size:10px;padding:2px 6px;border-radius:4px;font-family:Space Mono,monospace;display:flex;align-items:center;gap:4px}.lb-reveal{color:#f7b731;background:#f7b7311a;border:1px solid rgba(247,183,49,.2)}.lb-wrong{color:#fc5c65;background:#fc5c651a;border:1px solid rgba(252,92,101,.2)}.lb-clean{color:#4ecdc4;background:#4ecdc41a;border:1px solid rgba(78,205,196,.2)}.prob-sphere{width:14px;height:14px;border-radius:50%;transition:all .3s ease}.prob-sphere.unsolved{background:#000;border:2px solid var(--border)}.prob-sphere.solved{background:#22c55e;box-shadow:0 0 10px #22c55e99;border:2px solid #22c55e}.prob-sphere.current{background:transparent;border:2px solid #a855f7;animation:pulse-ring 1.5s cubic-bezier(.215,.61,.355,1) infinite}@keyframes pulse-ring{0%{box-shadow:0 0 #a855f7b3}70%{box-shadow:0 0 0 6px #a855f700}to{box-shadow:0 0 #a855f700}}.controls-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.control-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:24px}.control-label{font-family:Space Mono,monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--text2);margin-bottom:16px;display:flex;align-items:center;gap:8px}.big-status{font-family:Space Mono,monospace;font-size:28px;font-weight:700;display:flex;align-items:center;gap:12px;margin-bottom:20px}.control-actions{display:flex;gap:10px;flex-wrap:wrap}.btn{font-family:DM Sans,sans-serif;font-weight:600;font-size:14px;padding:10px 20px;border-radius:8px;border:none;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-pause{background:#f7b731;color:#1a1a2e}.btn-pause:hover{opacity:.85}.btn-resume{background:#4ecdc4;color:#1a1a2e}.btn-resume:hover{opacity:.85}.btn-end{background:#fc5c6526;color:#fc5c65;border:1px solid rgba(252,92,101,.3)}.btn-end:hover:not(:disabled){background:#fc5c6540}.duration-display{font-family:Space Mono,monospace;font-size:36px;font-weight:700;color:var(--accent);margin-bottom:8px}.dash-timer-sub{font-size:12px;color:var(--text3)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-box{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:16px;text-align:center}.stat-val{font-family:Space Mono,monospace;font-size:28px;font-weight:700}.stat-val.coding{color:var(--accent)}.stat-val.submitted{color:#4ecdc4}.stat-val.offline{color:#fc5c65}.stat-key{font-size:11px;color:var(--text2);margin-top:4px;text-transform:uppercase;letter-spacing:1px}.edit-problems-card{grid-column:1 / -1}.problems-count-badge{background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:1px 7px;border-radius:10px;font-family:Space Mono,monospace}.edit-problems-list{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.edit-problem-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg3);border:1px solid var(--border);border-radius:8px}.edit-prob-num{font-size:11px;color:var(--text3);font-family:Space Mono,monospace;width:16px;flex-shrink:0}.edit-prob-code{font-size:11px;color:var(--accent);font-family:Space Mono,monospace;font-weight:700;width:70px;flex-shrink:0}.edit-prob-name{font-size:13px;font-weight:500;flex:1}.edit-prob-score{font-family:Space Mono,monospace;font-size:12px;color:var(--accent2);font-weight:700;flex-shrink:0}.diff-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;flex-shrink:0}.edit-remove-btn{background:none;border:1px solid transparent;color:var(--text3);font-size:12px;cursor:pointer;padding:3px 7px;border-radius:4px;transition:all .15s;flex-shrink:0}.edit-remove-btn:hover:not(:disabled){border-color:#fc5c65;color:#fc5c65;background:#fc5c6514}.edit-remove-btn:disabled{opacity:.2;cursor:not-allowed}.remove-confirm-inline{display:flex;align-items:center;gap:6px;flex-shrink:0}.remove-confirm-text{font-size:11px;color:#fc5c65}.remove-yes-btn{background:#fc5c6526;border:1px solid rgba(252,92,101,.4);color:#fc5c65;font-size:11px;padding:2px 8px;border-radius:4px;cursor:pointer;font-family:inherit;transition:all .15s}.remove-yes-btn:hover{background:#fc5c6540}.remove-no-btn{background:var(--bg3);border:1px solid var(--border);color:var(--text2);font-size:11px;padding:2px 8px;border-radius:4px;cursor:pointer;font-family:inherit;transition:all .15s}.remove-no-btn:hover{border-color:var(--text2)}.add-problem-section{border-top:1px solid var(--border);padding-top:16px}.add-problem-label{font-family:Space Mono,monospace;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--text2);margin-bottom:6px}.add-problem-hint{font-size:12px;color:var(--text3);margin-bottom:10px}.inline-link{background:none;border:none;color:var(--accent);font-size:12px;cursor:pointer;padding:0;font-family:inherit;text-decoration:underline;transition:opacity .15s}.inline-link:hover{opacity:.75}.add-problem-input-row{display:flex;gap:8px}.add-problem-input{flex:1;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:8px 12px;color:var(--text);font-size:13px;font-family:Space Mono,monospace;outline:none;transition:border-color .15s;letter-spacing:1px;text-transform:uppercase}.add-problem-input:focus{border-color:var(--accent)}.add-problem-input::placeholder{color:var(--text3);text-transform:none;letter-spacing:0}.add-problem-btn{background:var(--accent);color:#fff;border:none;padding:8px 18px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity .15s;white-space:nowrap}.results-page{min-height:100vh;background:#0a0a0f;color:#e8e8f0;font-family:DM Sans,sans-serif;position:relative}.results-bg{position:fixed;inset:0;z-index:0;pointer-events:none}.results-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(124,106,247,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(124,106,247,.04) 1px,transparent 1px);background-size:40px 40px}.results-container{position:relative;z-index:1;max-width:960px;margin:0 auto;padding:32px 24px 64px}.results-header{display:flex;align-items:center;gap:16px;margin-bottom:32px}.back-btn{background:none;border:1px solid #2a2a3a;color:#88a;font-family:DM Sans,sans-serif;font-size:13px;padding:8px 14px;border-radius:8px;cursor:pointer;transition:all .2s;white-space:nowrap}.back-btn:hover{border-color:#7c6af7;color:#7c6af7}.results-logo-wrap{display:flex;align-items:center;gap:12px;flex:1}.results-logo-mark{width:36px;height:36px;background:#7c6af7;color:#fff;font-family:Space Mono,monospace;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;border-radius:8px;box-shadow:0 0 16px #7c6af74d}.results-title{font-family:Space Mono,monospace;font-size:17px;font-weight:700}.results-sub{font-size:12px;color:#88a}.export-btn{background:none;border:1px solid #2a2a3a;color:#88a;font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;padding:10px 18px;border-radius:8px;cursor:pointer;transition:all .2s;white-space:nowrap}.export-btn:hover{border-color:#4ecdc4;color:#4ecdc4}.export-done{border-color:#4ecdc4!important;color:#4ecdc4!important;background:#4ecdc414!important}.contest-summary{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.summary-item{background:#111118;border:1px solid #2a2a3a;border-radius:10px;padding:16px 20px;flex:1;min-width:120px}.summary-label{font-size:11px;color:#4a4a6a;text-transform:uppercase;letter-spacing:1px;font-family:Space Mono,monospace;margin-bottom:6px}.summary-value{font-family:Space Mono,monospace;font-size:16px;font-weight:700}.highlight{color:#4ecdc4}.scoring-legend{display:flex;align-items:center;gap:10px;margin-bottom:32px;padding:10px 16px;background:#111118;border:1px solid #2a2a3a;border-radius:8px;flex-wrap:wrap}.legend-label{font-size:11px;color:#4a4a6a;font-family:Space Mono,monospace;text-transform:uppercase;letter-spacing:1px}.legend-item{font-size:12px;font-family:Space Mono,monospace;padding:2px 8px;border-radius:4px}.legend-item.easy{color:#22c55e;background:#22c55e1a}.legend-item.medium{color:#f59e0b;background:#f59e0b1a}.legend-item.hard{color:#ef4444;background:#ef44441a}.legend-item.penalty{color:#fc5c65;background:#fc5c651a}.legend-sep{color:#2a2a3a;font-size:14px}.podium{display:flex;align-items:flex-end;justify-content:center;gap:12px;margin-bottom:40px;padding:0 40px}.podium-item{display:flex;flex-direction:column;align-items:center;flex:1;max-width:200px}.podium-crown{font-size:24px;margin-bottom:4px}.podium-medal{font-size:28px;margin-bottom:8px}.podium-name{font-weight:600;font-size:14px;text-align:center;margin-bottom:4px}.podium-score{font-size:13px;color:#88a;margin-bottom:12px;font-family:Space Mono,monospace;font-weight:700}.podium-bar{width:100%;border-radius:6px 6px 0 0}.podium-bar-1{height:80px;background:linear-gradient(180deg,#f7b73166,#f7b7311a);border:1px solid rgba(247,183,49,.4);border-bottom:none}.podium-bar-2{height:56px;background:linear-gradient(180deg,#a0a0b04d,#a0a0b01a);border:1px solid rgba(160,160,176,.3);border-bottom:none}.podium-bar-3{height:40px;background:linear-gradient(180deg,#cd7f324d,#cd7f321a);border:1px solid rgba(205,127,50,.3);border-bottom:none}.podium-first .podium-name{color:#f7b731}.podium-second .podium-name{color:#a0a0b0}.podium-third .podium-name{color:#cd7f32}.results-table-wrap{background:#111118;border:1px solid #2a2a3a;border-radius:16px;overflow:hidden}.results-table-header{padding:20px 24px;border-bottom:1px solid #2a2a3a;display:flex;align-items:center;justify-content:space-between}.table-section-title{font-family:Space Mono,monospace;font-size:13px;color:#88a;text-transform:uppercase;letter-spacing:1.5px}.table-section-hint{font-size:11px;color:#4a4a6a}.results-table{width:100%;border-collapse:collapse}.results-table th{font-family:Space Mono,monospace;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#4a4a6a;padding:14px 20px;text-align:left;border-bottom:1px solid #1a1a24;background:#0d0d14}.results-row td{padding:14px 20px;border-bottom:1px solid #1a1a24;transition:background .15s}.results-row:last-child td{border-bottom:none}.results-row:hover td{background:#1a1a24}.top-three td{background:#7c6af708}.row-expanded td{background:#1a1a24!important;border-bottom:none!important}.rank-cell{font-size:20px;width:60px}.result-name{font-weight:600;font-size:14px}.result-email{font-size:12px;color:#4a4a6a;margin-top:2px}.score-cell{font-family:Space Mono,monospace}.score-val{color:#4ecdc4;font-weight:700;font-size:16px}.score-unit{font-size:12px;color:#4a4a6a}.reveal-cell{font-family:Space Mono,monospace}.reveal-val{color:#f7b731;font-size:13px}.penalty-cell{font-family:Space Mono,monospace}.penalty-val{color:#fc5c65;font-size:13px}.clean-val{color:#4a4a6a;font-size:13px}.solved-cell{font-family:Space Mono,monospace}.solved-val{color:#7c6af7;font-weight:700;font-size:15px}.solved-total{font-size:12px;color:#4a4a6a}.breakdown-row td{padding:0;border-bottom:1px solid #2a2a3a;background:#0d0d14!important}.breakdown-wrap{padding:16px 24px 20px}.breakdown-title{font-family:Space Mono,monospace;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#4a4a6a;margin-bottom:12px}.breakdown-problems{display:flex;flex-direction:column;gap:8px}.breakdown-problem{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#111118;border:1px solid #2a2a3a;border-radius:8px}.breakdown-problem-name{font-size:13px;font-weight:500;width:160px;flex-shrink:0}.breakdown-diff{font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;flex-shrink:0}.diff-easy{background:#22c55e1f;color:#22c55e}.diff-medium{background:#f59e0b1f;color:#f59e0b}.diff-hard{background:#ef44441f;color:#ef4444}.breakdown-math{display:flex;align-items:center;gap:10px;flex:1;flex-wrap:wrap}.bd-base{font-family:Space Mono,monospace;font-size:13px;color:#4ecdc4;font-weight:700}.bd-unsolved{font-family:Space Mono,monospace;font-size:13px;color:#4a4a6a}.bd-penalty{font-family:Space Mono,monospace;font-size:12px;color:#fc5c65}.bd-reveal{font-family:Space Mono,monospace;font-size:12px;color:#f7b731}.bd-net{font-family:Space Mono,monospace;font-size:13px;font-weight:700;color:#7c6af7;margin-left:auto;background:#7c6af71a;border:1px solid rgba(124,106,247,.2);padding:2px 10px;border-radius:4px}
