@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";:root{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--primary:#3b82f6;--primary-hover:#2563eb;--primary-light:#eff6ff;--success:#10b981;--success-light:#d1fae5;--success-text:#047857;--danger:#ef4444;--danger-light:#fee2e2;--danger-text:#b91c1c;--warning:#f59e0b;--warning-light:#fef3c7;--warning-text:#b45309;--border:#e2e8f0;--border-light:#f1f5f9;--glass-bg:#ffffffb3;--glass-border:#fff6;--glass-shadow:0 8px 32px 0 #1f26870d;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-glow:0 0 20px #3b82f64d;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--font-family:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}[data-theme=dark]{--bg-primary:#0b0f19;--bg-secondary:#151b2b;--bg-tertiary:#1c2438;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#64748b;--primary:#3b82f6;--primary-hover:#60a5fa;--primary-light:#3b82f626;--success:#10b981;--success-light:#10b98126;--success-text:#34d399;--danger:#ef4444;--danger-light:#ef444426;--danger-text:#f87171;--warning:#f59e0b;--warning-light:#f59e0b26;--warning-text:#fbbf24;--border:#334155;--border-light:#1e293b;--glass-bg:#151b2bbf;--glass-border:#ffffff0d;--glass-shadow:0 8px 32px 0 #0006}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%{box-shadow:0 0 #3b82f666}70%{box-shadow:0 0 0 10px #3b82f600}to{box-shadow:0 0 #3b82f600}}.animate-fade-in{animation:.4s ease-out forwards fadeIn}.animate-slide-up{animation:.5s cubic-bezier(.16,1,.3,1) forwards slideUp}.animate-delay-100{animation-delay:.1s}.animate-delay-200{animation-delay:.2s}.animate-delay-300{animation-delay:.3s}.hover-scale{transition:transform .2s cubic-bezier(.4,0,.2,1)}.hover-scale:hover{transform:scale(1.02)}.active-scale:active{transform:scale(.97)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;transition:background-color .3s,color .3s;overflow-x:hidden}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:600;line-height:1.2}a{color:var(--primary);text-decoration:none;transition:color .2s}a:hover{color:var(--primary-hover)}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,select,textarea{outline:none;font-family:inherit}.app-container{flex-direction:column;min-height:100vh;display:flex}.main-content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--radius-xl);padding:1.5rem;transition:transform .3s,box-shadow .3s}.glass-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-md)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.btn{border-radius:var(--radius-lg);white-space:nowrap;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.25rem;font-size:.95rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border-light)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-text)}.input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);width:100%;color:var(--text-primary);padding:.75rem 1rem;font-size:.95rem;transition:all .2s}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.table-wrapper{border-radius:var(--radius-md);border:1px solid var(--border);overflow-x:auto}.table{border-collapse:collapse;text-align:left;width:100%}.table th,.table td{border-bottom:1px solid var(--border);padding:1rem}.table th{background:var(--bg-tertiary);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:600}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background-color .2s}.table tbody tr:hover{background-color:var(--bg-tertiary)}.tabs-container{background:var(--bg-tertiary);border-radius:var(--radius-lg);border:1px solid var(--border);gap:.5rem;padding:.25rem;display:flex}.tab{border-radius:var(--radius-md);color:var(--text-secondary);padding:.5rem 1.25rem;font-weight:500;transition:all .2s}.tab.active{background:var(--bg-secondary);color:var(--primary);box-shadow:var(--shadow-sm)}.tab:hover:not(.active){color:var(--text-primary)}.badge{border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-success{background:var(--success-light);color:var(--success-text)}.badge-warning{background:var(--warning-light);color:var(--warning-text)}.badge-danger{background:var(--danger-light);color:var(--danger-text)}.flex-center{align-items:center;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.flex-wrap{flex-wrap:wrap}.gap-sm{gap:.5rem}.gap-md{gap:1rem}.gap-lg{gap:1.5rem}.gap-xl{gap:2rem}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary)}.font-bold{font-weight:600}.font-sm{font-size:.8rem}.font-lg{font-size:1.1rem}.app-header{border-radius:var(--radius-xl);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:1rem;display:flex}.header-logo{align-items:center;gap:1rem;display:flex}.header-logo-icon{background:var(--primary);color:#fff;border-radius:var(--radius-lg);justify-content:center;align-items:center;padding:.75rem;display:flex}.header-title{letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:700}.header-subtitle{color:var(--text-muted);margin:0;font-size:.85rem}.header-credit{color:#7aa2d4;margin:0;font-size:.75rem}[data-theme=light] .header-credit{color:#4a7bb5}.header-center{flex:auto;justify-content:center;display:flex}.header-actions{align-items:center;gap:1.5rem;display:flex}.group-select{cursor:pointer;border-color:var(--primary);border-width:2px;max-width:300px;font-size:1rem;font-weight:700}.btn-icon{padding:.5rem}.section-header{align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.05rem;display:flex}.section-header-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.format-badge{border-radius:var(--radius-lg);background:var(--primary);color:#fff;opacity:.85;padding:.2rem .6rem;font-size:.75rem;font-weight:500}.form-row{flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;display:flex}.form-row .input{flex:200px}.form-row .input-sm{flex:120px}.import-section{border-top:1px dashed var(--border);margin-bottom:1.5rem;padding:1rem}.import-hint{color:var(--text-muted);margin-bottom:.75rem;font-size:.85rem}.import-actions{flex-wrap:wrap;gap:.5rem;display:flex}.btn-success{background:var(--success);color:#fff}.btn-delete{color:var(--danger-text);box-shadow:none;background:0 0;padding:.25rem}.btn-transparent{box-shadow:none;background:0 0}.round-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-tertiary);padding:1rem}.round-title{color:var(--primary);margin-bottom:1rem}.cell-board{color:var(--text-muted);font-weight:700}.cell-player{font-weight:500}.cell-elo{color:var(--text-muted);font-size:.8rem}.cell-points{color:var(--primary);margin:0 .5rem;font-weight:700}.cell-result{text-align:center}.result-select{text-align:center;padding:.25rem;font-weight:700}.result-select.has-result{color:var(--primary)}.result-display{font-size:1.1rem;font-weight:700}.result-display.has-result{color:var(--primary)}.result-display.no-result{color:var(--text-muted)}.standings-points{text-align:center;color:var(--primary);font-size:1.1rem;font-weight:700}.badge-rank-1{background:var(--warning-light);color:var(--warning-text)}.badge-rank-2{color:#475569;background:#e2e8f0}.badge-rank-3{color:#b45309;background:#fef3c7}.club-link{cursor:pointer;color:var(--primary);text-decoration:underline}.danger-zone{justify-content:flex-end;gap:1rem;margin-top:2rem;display:flex}.modal-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);width:90%;max-width:600px;max-height:80vh;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;display:flex}.modal-title{color:var(--primary);margin:0}.menu-section{background:var(--bg-secondary);border:1px solid var(--border);padding:1rem}.menu-table{border-collapse:collapse;width:100%;font-size:.95rem}.menu-table tr+tr{border-top:1px solid var(--border)}.menu-label{color:var(--text-muted);vertical-align:top;width:150px;padding:.75rem;font-weight:600}.menu-content{padding:.75rem;line-height:1.6}.menu-link{color:#2563eb;cursor:pointer;text-decoration:none}.menu-link:hover{text-decoration:underline}.menu-link.active{color:#000;font-weight:700}[data-theme=dark] .menu-link.active{color:#fff}.menu-separator{color:var(--text-muted);margin:0 4px}.menu-separator-wide{color:var(--text-muted);margin:0 6px}.section-stack,.round-stack{flex-direction:column;gap:2rem;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:2rem}.file-input-hidden{display:none}.tournament-info-card{text-align:center;padding:2rem}.tournament-info-title{color:var(--primary);letter-spacing:-.01em;margin:0 0 1.25rem;font-size:1.5rem;font-weight:700}.tournament-info-details{text-align:left;flex-direction:column;gap:.5rem;display:inline-flex}.tournament-info-row{align-items:baseline;gap:1rem;display:flex}.tournament-info-label{color:var(--text-muted);flex-shrink:0;min-width:120px;font-weight:600}.tournament-info-value{color:var(--text-primary)}.group-tabs-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;font-size:.85rem;font-weight:600}.group-tabs{flex-wrap:wrap;gap:.5rem;display:flex}.group-tab{border-radius:var(--radius-lg);color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border);cursor:pointer;padding:.5rem 1.25rem;font-size:.9rem;font-weight:600;transition:all .2s}.group-tab:hover{background:var(--border-light);color:var(--text-primary)}.group-tab.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:var(--shadow-sm)}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.login-card{width:100%;max-width:420px;padding:2.5rem}.login-card:hover{transform:none}.login-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:2rem;display:flex}.login-form{flex-direction:column;gap:1rem;display:flex}.login-field{flex-direction:column;gap:.4rem;display:flex}.login-label{color:var(--text-secondary);font-size:.85rem;font-weight:600}.login-error{color:var(--danger-text);text-align:center;background:var(--danger-light);border-radius:var(--radius-md);padding:.5rem;font-size:.85rem}.login-btn{justify-content:center;width:100%;padding:.75rem;font-size:1rem}.login-divider{text-align:center;margin:1.25rem 0;position:relative}.login-divider:before{content:"";border-top:1px solid var(--border);position:absolute;top:50%;left:0;right:0}.login-divider span{background:var(--glass-bg);color:var(--text-muted);padding:0 1rem;font-size:.85rem;position:relative}.login-hint{text-align:center;color:var(--text-muted);background:var(--bg-tertiary);border-radius:var(--radius-md);margin-top:1.25rem;padding:.5rem;font-size:.8rem}.user-info{align-items:center;display:flex}.user-badge{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-primary);align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.85rem;font-weight:500;display:inline-flex}.role-tag{border-radius:var(--radius-sm);background:var(--primary-light);color:var(--primary);text-transform:uppercase;letter-spacing:.03em;padding:.15rem .4rem;font-size:.7rem;font-weight:600}.role-badge{border-radius:9999px;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.role-badge.admin{background:var(--warning-light);color:var(--warning-text)}.role-badge.arbiter{background:var(--primary-light);color:var(--primary)}.group-selector{flex-direction:column;gap:.5rem;display:flex}.group-selector-section{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.group-selector-label{color:var(--text-muted);min-width:35px;font-size:.8rem;font-weight:600}.group-chips{flex-wrap:wrap;gap:.3rem;display:flex}.group-chip{border-radius:var(--radius-md);color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border);cursor:pointer;padding:.25rem .6rem;font-size:.8rem;font-weight:600;transition:all .15s}.group-chip:hover{border-color:var(--primary);color:var(--primary)}.group-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}@media (width<=900px){.user-info{order:-1;width:100%}.user-badge{justify-content:center;width:100%}}.role-selector{gap:.75rem;display:flex}.role-option{border-radius:var(--radius-lg);background:var(--bg-primary);border:2px solid var(--border);cursor:pointer;color:var(--text-secondary);flex-direction:column;flex:1;align-items:center;gap:.3rem;padding:.75rem;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.role-option:hover{border-color:var(--primary);color:var(--text-primary)}.role-option.active.admin{border-color:var(--warning);background:var(--warning-light);color:var(--warning-text)}.role-option.active.arbiter{border-color:var(--primary);background:var(--primary-light);color:var(--primary)}.role-option-desc{color:var(--text-muted);text-align:center;font-size:.75rem;font-weight:400}.gap-xs{gap:.25rem}.btn-sm{padding:.3rem .6rem;font-size:.85rem}@media (width<=480px){.login-page,.main-content,.glass-card{padding:1rem}.header-title{font-size:1.2rem}.header-actions{gap:.75rem}.section-header{flex-wrap:wrap;gap:.35rem}.app-header{gap:.75rem;padding:1rem}.header-logo{gap:.75rem}}
