@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap";:root{--theme-color:#4f46e5;--theme-hover:#4338ca;--theme-light:#eef2ff;--theme-glow:#4f46e526;--bg-color:#f1f5f9;--bg-subtle:#f8fafc;--card-bg:#fff;--card-border:#e2e8f0;--text-primary:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--score-correct:#059669;--score-correct-bg:#ecfdf5;--score-correct-hover:#047857;--score-wrong:#dc2626;--score-wrong-bg:#fef2f2;--score-wrong-hover:#b91c1c;--score-bonus:#7c3aed;--score-bonus-bg:#f5f3ff;--score-bonus-hover:#6d28d9;--score-penalty:#ea580c;--score-penalty-bg:#fff7ed;--score-penalty-hover:#c2410c;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 8px 30px #00000014;--shadow-xl:0 20px 50px #0000001a;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--font-primary:"Inter", system-ui, -apple-system, sans-serif;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-smooth:.3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}body{font-family:var(--font-primary);background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.5}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:box-shadow var(--transition-smooth)}.card:hover{box-shadow:var(--shadow-lg)}.btn{border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;line-height:1.4;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-lg{border-radius:var(--radius-md);padding:.875rem 1.5rem;font-size:1rem}.btn-sm{padding:.375rem .75rem;font-size:.8rem}.btn-primary{background:var(--theme-color);color:#fff;box-shadow:0 2px 8px var(--theme-glow)}.btn-primary:hover{background:var(--theme-hover);box-shadow:0 4px 16px var(--theme-glow)}.btn-outline{color:var(--theme-color);border:1.5px solid var(--card-border);background:#fff}.btn-outline:hover{border-color:var(--theme-color);background:var(--theme-light)}.btn-ghost{color:var(--text-secondary);background:0 0;border:none}.btn-ghost:hover{background:var(--bg-color);color:var(--text-primary)}.btn-correct{background:var(--score-correct-bg);color:var(--score-correct);border:1.5px solid #0000;font-weight:700}.btn-correct:hover{background:var(--score-correct);color:#fff;box-shadow:0 4px 12px #05966940}.btn-wrong{background:var(--score-wrong-bg);color:var(--score-wrong);border:1.5px solid #0000;font-weight:700}.btn-wrong:hover{background:var(--score-wrong);color:#fff;box-shadow:0 4px 12px #dc262640}.btn-bonus{background:var(--score-bonus-bg);color:var(--score-bonus);border:1.5px solid #0000;font-weight:700}.btn-bonus:hover{background:var(--score-bonus);color:#fff;box-shadow:0 4px 12px #7c3aed40}.btn-penalty{background:var(--score-penalty-bg);color:var(--score-penalty);border:1.5px solid #0000;font-weight:700}.btn-penalty:hover{background:var(--score-penalty);color:#fff;box-shadow:0 4px 12px #ea580c40}.btn-danger{background:var(--score-wrong-bg);color:var(--score-wrong);border:1.5px solid #0000}.btn-danger:hover{background:var(--score-wrong);color:#fff}.input-field{border-radius:var(--radius-sm);border:1.5px solid var(--card-border);background:var(--bg-subtle);width:100%;color:var(--text-primary);font-family:var(--font-primary);transition:all var(--transition-fast);padding:.625rem .875rem;font-size:.9rem}.input-field:focus{border-color:var(--theme-color);box-shadow:0 0 0 3px var(--theme-glow);background:#fff;outline:none}.badge{border-radius:var(--radius-full);letter-spacing:.02em;align-items:center;gap:.25rem;padding:.2rem .6rem;font-size:.75rem;font-weight:700;display:inline-flex}.badge-primary{background:var(--theme-light);color:var(--theme-color)}.badge-success{background:var(--score-correct-bg);color:var(--score-correct)}.btn-icon{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.btn-icon:hover{background:var(--bg-color);color:var(--text-primary);border-color:var(--card-border)}@keyframes scorePulse{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.score-bump{animation:.25s ease-out scorePulse}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--card-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a80;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{border-radius:var(--radius-xl);width:92%;max-width:720px;max-height:88vh;box-shadow:var(--shadow-xl);background:#fff;padding:2rem;animation:.3s slideUp;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}#root{flex-direction:column;min-height:100vh;display:flex}body{-webkit-user-select:none;user-select:none}.modal-header{border-bottom:1px solid var(--card-border);justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1.25rem;display:flex}.modal-header h2{margin:0;font-size:1.35rem;font-weight:800}.settings-sections{flex-direction:column;gap:2rem;display:flex}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin:0 0 1rem;font-size:.85rem;font-weight:700}.form-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-label{color:var(--text-secondary);flex-direction:column;gap:.4rem;font-size:.85rem;font-weight:600;display:flex}.color-picker-row{align-items:center;gap:.5rem;display:flex}.color-swatch{border:2px solid var(--card-border);border-radius:var(--radius-sm);cursor:pointer;width:40px;height:40px;padding:0}.upload-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem;display:grid}.upload-box{flex-direction:column;gap:.5rem;display:flex}.upload-label{color:var(--text-secondary);font-size:.85rem;font-weight:600}.upload-area{border:2px dashed var(--card-border);border-radius:var(--radius-md);background:var(--bg-subtle);color:var(--text-muted);cursor:pointer;font-size:.85rem;font-weight:500;font-family:var(--font-primary);transition:all var(--transition-fast);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.5rem 1rem;display:flex}.upload-area:hover{border-color:var(--theme-color);color:var(--theme-color);background:var(--theme-light)}.upload-preview{border-radius:var(--radius-md);border:1px solid var(--card-border);position:relative;overflow:hidden}.upload-preview img{object-fit:cover;width:100%;height:100px;display:block}.upload-preview .btn{position:absolute;bottom:6px;right:6px}.points-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.point-label{border-radius:var(--radius-sm);padding:.75rem}.point-correct{background:var(--score-correct-bg)}.point-wrong{background:var(--score-wrong-bg)}.point-bonus{background:var(--score-bonus-bg)}.point-penalty{background:var(--score-penalty-bg)}.point-label .input-field{background:#fff}.teams-edit-list{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.team-edit-row{align-items:center;gap:.5rem;display:flex}.team-number{border-radius:var(--radius-full);background:var(--bg-color);width:28px;height:28px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.backup-actions{gap:1rem;display:flex}.modal-footer{border-top:1px solid var(--card-border);justify-content:flex-end;gap:.75rem;margin-top:.5rem;padding-top:1.5rem;display:flex}.op{background-color:var(--bg-color);flex-direction:column;gap:1rem;min-height:100vh;padding:1rem;display:flex}.op-topbar{border-radius:var(--radius-lg);flex-shrink:0;justify-content:space-between;align-items:center;padding:.875rem 1.5rem;display:flex}.op-topbar-left{align-items:center;gap:1rem;display:flex}.op-logo{object-fit:contain;border-radius:var(--radius-sm);width:auto;height:42px}.op-info{flex-direction:column;display:flex}.op-title{color:var(--text-primary);margin:0;font-size:1.2rem;font-weight:800;line-height:1.3}.op-subtitle{color:var(--text-secondary);margin:0;font-size:.8rem;font-weight:500}.op-topbar-center{align-items:center;gap:1rem;display:flex}.op-thumbnail{background:var(--bg-subtle);border-radius:var(--radius-sm);border:1px solid var(--card-border);align-items:center;gap:.5rem;padding:.25rem .5rem;display:flex}.op-thumb-label{color:var(--text-muted);text-transform:uppercase;font-size:.7rem;font-weight:700}.op-thumbnail img{object-fit:contain;border-radius:2px;width:auto;max-width:60px;height:24px}.op-thumb-empty{color:var(--text-muted);font-size:.75rem;font-style:italic}.op-topbar-right{align-items:center;gap:.75rem;display:flex}.op-body{flex:1;gap:1rem;min-height:0;display:flex}.op-teams{flex:1;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-content:start;gap:1rem;padding-bottom:1rem;display:grid;overflow-y:auto}.team-card{border-radius:var(--radius-lg);flex-direction:column;gap:.75rem;padding:1.5rem;display:flex;position:relative;overflow:hidden}.team-card:before{content:"";background:var(--theme-color);border-radius:var(--radius-lg) var(--radius-lg) 0 0;height:3px;position:absolute;top:0;left:0;right:0}.tc-header{justify-content:space-between;align-items:center;display:flex}.tc-name{color:var(--text-primary);margin:0;font-size:1rem;font-weight:700}.tc-score{text-align:center;font-variant-numeric:tabular-nums;color:var(--text-primary);letter-spacing:-2px;padding:.5rem 0;font-size:4rem;font-weight:900;line-height:1}.tc-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.tc-actions .btn{white-space:normal;text-align:center;flex:1;min-width:45%;padding:.5rem;font-size:.9rem}.tc-correction{align-self:center;margin-top:.25rem}.op-sidebar{border-radius:var(--radius-lg);flex-direction:column;flex-shrink:0;gap:.75rem;width:340px;padding:1.25rem;display:flex;overflow:hidden}.sb-header{justify-content:space-between;align-items:center;display:flex}.sb-header h3{align-items:center;gap:.5rem;margin:0;font-size:.95rem;font-weight:700;display:flex}.sb-list{flex-direction:column;flex:1;gap:.4rem;min-height:0;display:flex;overflow-y:auto}.sb-empty{color:var(--text-muted);text-align:center;margin-top:3rem;font-size:.85rem}.sb-item{border-radius:var(--radius-sm);background:var(--bg-subtle);border:1px solid var(--card-border);transition:background var(--transition-fast);padding:.6rem .75rem}.sb-item:hover{background:var(--bg-color)}.sb-item-top{justify-content:space-between;align-items:center;margin-bottom:.15rem;display:flex}.sb-item-team{color:var(--text-primary);font-size:.8rem;font-weight:700}.sb-item-time{color:var(--text-muted);font-size:.7rem;font-weight:500}.sb-item-bottom{justify-content:space-between;align-items:center;display:flex}.sb-item-desc{color:var(--text-secondary);font-size:.8rem}.sb-item-delta{font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:800}.sb-item-delta.positive{color:var(--score-correct)}.sb-item-delta.negative{color:var(--score-wrong)}.sb-item-final{background:#f0f7ff;border:1px solid #bfdbfe;border-radius:.5rem;flex-direction:column;gap:.25rem;padding:.5rem .75rem;display:flex}.sb-item-final-label{text-transform:uppercase;letter-spacing:.08em;color:#3b82f6;font-size:.65rem;font-weight:700}.sb-item-final-content{justify-content:space-between;align-items:center;display:flex}.sb-item-final-score{color:#1d4ed8;font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:800}.sb-footer{border-top:1px solid var(--card-border);flex-direction:column;gap:.5rem;padding-top:.75rem;display:flex}.sb-footer .btn{justify-content:center;width:100%}@media (width<=900px){.op-body{flex-direction:column}.op-sidebar{width:100%;max-height:400px}.op-teams{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}}@media (width<=600px){.op{padding:.5rem}.op-topbar{flex-direction:column;align-items:flex-start;gap:.75rem}.op-topbar-right{flex-wrap:wrap;width:100%}.tc-score{font-size:3rem}.tc-actions .btn{padding:.6rem .4rem;font-size:.95rem}}.pv{color:#1d1d1f;background-color:#f5f5f7;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;display:flex;position:relative;overflow:hidden}.pv:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 100% 0,#0071e30d 0%,#0000 40%),radial-gradient(circle at 0 100%,#d946ef0d 0%,#0000 40%);position:absolute;inset:0}.pv-overlay{-webkit-backdrop-filter:blur(30px);z-index:1;background:#f5f5f799;flex-direction:column;flex:1;padding:5rem 4rem 3rem;display:flex}.pv-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:4rem;display:flex}.pv-logo{filter:drop-shadow(0 4px 12px #00000014);max-width:140px;max-height:140px;margin-bottom:1.5rem}.pv-title{letter-spacing:-.015em;color:#1d1d1f;margin:0;font-size:3.5rem;font-weight:700}.pv-subtitle{color:#86868b;letter-spacing:.01em;margin:.5rem 0 1.5rem;font-size:1.25rem;font-weight:500}.pv-round{color:#0071e3;letter-spacing:.02em;background:#0071e31a;border:none;border-radius:2rem;padding:.5rem 1.5rem;font-size:1.1rem;font-weight:600;display:inline-block}.pv-main{flex-wrap:wrap;flex:1;place-content:flex-start center;align-items:flex-start;gap:3rem;display:flex}@keyframes teamSlideIn{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.pv-team-wrapper{flex-direction:column;align-items:center;animation:.8s cubic-bezier(.16,1,.3,1) both teamSlideIn;display:flex;position:relative}.pv-team{text-align:center;background:#fff;border:1px solid #0000000a;border-radius:1.5rem;width:320px;padding:2.5rem 2rem;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;box-shadow:0 4px 24px #0000000a,0 1px 2px #00000005}.pv-team-first{border:1px solid #0071e326;transform:translateY(-8px)scale(1.02);box-shadow:0 12px 36px #00000014,0 2px 8px #0000000a}.pv-team-first:before{content:"";background:#0071e3;height:4px;position:absolute;top:0;left:0;right:0}.pv-rank{color:#86868b;font-size:1rem;font-weight:700;position:absolute;top:1.25rem;left:1.5rem}.pv-team-first .pv-rank{color:#0071e3}.pv-team-name{color:#1d1d1f;letter-spacing:-.01em;margin:1.5rem 0 2rem;font-size:1.75rem;font-weight:700}.pv-team-score{font-variant-numeric:tabular-nums;color:#1d1d1f;letter-spacing:-.04em;font-size:6.5rem;font-weight:800;line-height:1}.pv-team-first .pv-team-score{color:#0071e3}@keyframes scoreFade{0%{opacity:0;visibility:visible;transform:scale(.8)translateY(10px)}10%{opacity:1;transform:scale(1)translateY(0)}15%{opacity:1;transform:scale(1)translateY(0)}80%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;visibility:hidden;transform:scale(.9)translateY(0)}}.pv-recent-score{color:#fff;pointer-events:none;border-radius:2rem;padding:.4rem 1.25rem;font-size:1.25rem;font-weight:700;animation:6s forwards scoreFade;position:absolute;bottom:-1.5rem;box-shadow:0 4px 12px #00000026}.pv-recent-score.positive{background-color:#34c759}.pv-recent-score.negative{background-color:#ff3b30}.pv-footer{text-align:center;color:#86868b;letter-spacing:.05em;text-transform:uppercase;margin-top:auto;padding:1.5rem;font-size:.8rem;font-weight:500}@keyframes celebrationIn{0%{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}@keyframes celebrationCardIn{0%{opacity:0;transform:scale(.7)translateY(40px)}60%{transform:scale(1.05)translateY(-8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes confettiBounce{0%,to{transform:scale(1)rotate(0)}25%{transform:scale(1.2)rotate(-10deg)}75%{transform:scale(1.2)rotate(10deg)}}.pv-celebration{z-index:100;cursor:pointer;background:#00000059;justify-content:center;align-items:center;animation:.4s forwards celebrationIn;display:flex;position:fixed;inset:0}.pv-celebration-card{text-align:center;background:#fff;border-radius:2rem;width:90%;max-width:520px;padding:3.5rem 4rem;animation:.6s cubic-bezier(.16,1,.3,1) .1s both celebrationCardIn;position:relative;overflow:hidden;box-shadow:0 30px 80px #00000040,0 4px 20px #0000001a}.pv-celebration-card:before{content:"";background:linear-gradient(90deg,#0071e3,#34aadc);height:5px;position:absolute;top:0;left:0;right:0}.pv-celebration-confetti{margin-bottom:1.25rem;font-size:4rem;line-height:1;animation:1s ease-in-out infinite confettiBounce;display:block}.pv-celebration-round{text-transform:uppercase;letter-spacing:.12em;color:#0071e3;margin-bottom:1rem;font-size:.9rem;font-weight:700}.pv-celebration-label{color:#86868b;margin-bottom:.75rem;font-size:1rem;font-weight:500}.pv-celebration-name{color:#1d1d1f;letter-spacing:-.02em;margin-bottom:.75rem;font-size:3.5rem;font-weight:900;line-height:1.1}.pv-celebration-score{color:#0071e3;font-size:2rem;font-weight:700}.pv-celebration-score span{color:#86868b;font-size:1.1rem;font-weight:500}.pv-celebration-hint{color:#c7c7cc;margin-top:2rem;font-size:.8rem;font-weight:500}.login-page{background-color:#f3f4f6;justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative}.login-card{text-align:center;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;flex-direction:column;align-items:center;width:100%;max-width:400px;padding:3rem 2.5rem;display:flex;position:relative;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.login-icon{color:#374151;margin-bottom:1rem;font-size:2.5rem}.login-title{color:#111827;letter-spacing:-.025em;margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.login-subtitle{color:#6b7280;margin:0 0 2rem;font-size:.875rem}.login-field{width:100%;margin-bottom:1.5rem}.login-input{box-sizing:border-box;background-color:#f9fafb;border:1px solid #d1d5db;border-radius:.375rem;outline:none;width:100%;padding:.75rem 1rem;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s}.login-input:focus{background-color:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.login-input-error{border-color:#ef4444}.login-input-error:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.login-error{color:#ef4444;text-align:left;margin-top:.5rem;font-size:.75rem;font-weight:500;display:block}.login-btn{color:#fff;cursor:pointer;background-color:#111827;border:none;border-radius:.375rem;width:100%;padding:.75rem 1rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:background-color .15s}.login-btn:hover{background-color:#374151}.login-btn:active{background-color:#000}.login-footer{color:#9ca3af;letter-spacing:.05em;text-transform:uppercase;margin-top:2rem;font-size:.75rem;font-weight:500}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.shake{animation:.4s shake}
