:root{line-height:1.5;font-weight:400;color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-brand: #4f46e5;--color-brand-hover: #4338ca;--color-brand-light: #eef2ff;--color-bg-page: #f7f7fb;--color-surface: #ffffff;--color-surface-alt: #f7f7fb;--color-surface-inset: #f3f4f6;--color-surface-overlay: rgba(0, 0, 0, .4);--color-text: #333333;--color-text-strong: #1a1a2e;--color-text-muted: #666666;--color-text-on-brand: #ffffff;--color-border: #ececf4;--color-border-input: #dddddd;--color-success-bg: #f0fdf4;--color-success-text: #166534;--color-success-border: #16a34a;--color-error-bg: #fef2f2;--color-error-text: #c33333;--color-error-border: #f87171;--color-warning-bg: #fef3c7;--color-warning-text: #92400e;--shadow-card: 0 2px 16px rgba(79, 70, 229, .07), 0 1px 4px rgba(0, 0, 0, .05);--shadow-card-lg: 0 8px 30px rgba(0, 0, 0, .08);color:var(--color-text);background-color:var(--color-bg-page)}[data-theme=dark]{color-scheme:dark;--color-brand: #818cf8;--color-brand-hover: #6366f1;--color-brand-light: #1e1b4b;--color-bg-page: #0f0f1a;--color-surface: #1a1a2a;--color-surface-alt: #141420;--color-surface-inset: #111118;--color-surface-overlay: rgba(0, 0, 0, .65);--color-text: #d4d4e0;--color-text-strong: #f0f0f8;--color-text-muted: #8888a0;--color-text-on-brand: #ffffff;--color-border: #2d2d3f;--color-border-input: #3d3d55;--color-success-bg: #052e16;--color-success-text: #4ade80;--color-success-border: #16a34a;--color-error-bg: #2d0a0a;--color-error-text: #f87171;--color-error-border: #ef4444;--color-warning-bg: #1c1400;--color-warning-text: #fbbf24;--shadow-card: 0 2px 16px rgba(0, 0, 0, .4);--shadow-card-lg: 0 8px 30px rgba(0, 0, 0, .5)}a{font-weight:500;color:var(--color-brand);text-decoration:inherit}a:hover{color:var(--color-brand-hover)}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--color-bg-page);color:var(--color-text)}#root{width:100%}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;color:var(--color-text);background-color:var(--color-surface-inset);cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--color-brand)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:var(--color-surface-inset);color:var(--color-text);border-color:var(--color-border-input);color-scheme:dark}[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:var(--color-text-muted)}[data-theme=dark]{scrollbar-color:#3d3d55 var(--color-surface-alt)}[data-theme=dark] .admin-tournament-detail__card,[data-theme=dark] .admin-dashboard__card,[data-theme=dark] .login-card,[data-theme=dark] .register-card,[data-theme=dark] .settings-card,[data-theme=dark] .profile-card,[data-theme=dark] .rankings-card,[data-theme=dark] .matches-card,[data-theme=dark] .brackets-page__card,[data-theme=dark] .bracket-detail,[data-theme=dark] .participants-card,[data-theme=dark] .tournament-form-card,[data-theme=dark] .home-card,[data-theme=dark] .open-tournaments-card,[data-theme=dark] .registration-card,[data-theme=dark] .match-edit-card,[data-theme=dark] .player-profile-card,[data-theme=dark] .admin-players__card{background:var(--color-surface);color:var(--color-text)}[data-theme=dark] .calendar-card{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .tournament-results-card{background:var(--color-surface)}[data-theme=dark] .participant-row,[data-theme=dark] .organizer-item,[data-theme=dark] .history-item,[data-theme=dark] .match-item,[data-theme=dark] .calendar-tournament-card,[data-theme=dark] .results-bracket-card,[data-theme=dark] .results-podium__entry,[data-theme=dark] .home-tournament-row,[data-theme=dark] .open-tournaments-list__item{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] .user-info,[data-theme=dark] .open-tournaments-list,[data-theme=dark] .home-tournaments,[data-theme=dark] .tournament-details-grid,[data-theme=dark] .organizer-add-wrapper,[data-theme=dark] .organizer-search-results,[data-theme=dark] .home-hero{background:var(--color-surface-alt);border-color:var(--color-border)}[data-theme=dark] .layout-header,[data-theme=dark] .layout-footer{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .nav-link{color:var(--color-text)}[data-theme=dark] .nav-link:hover{background:var(--color-surface-inset)}[data-theme=dark] .nav-link.active{background:var(--color-brand-light);color:var(--color-brand)}[data-theme=dark] .modal-overlay{background:var(--color-surface-overlay)}[data-theme=dark] .modal-content,[data-theme=dark] .score-edit-modal{background:var(--color-surface);color:var(--color-text)}[data-theme=dark] .status.error,[data-theme=dark] .error-message{background:var(--color-error-bg);color:var(--color-error-text);border-color:var(--color-error-border)}[data-theme=dark] .status.success{background:var(--color-success-bg);color:var(--color-success-text);border-color:var(--color-success-border)}[data-theme=dark] .calendar-filter-btn{background:var(--color-surface-inset);border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] .calendar-filter-btn:hover{background:var(--color-surface-alt)}[data-theme=dark] .home-profile{border-left-color:var(--color-brand)}[data-theme=dark] .home-tournament-row:hover{background:var(--color-surface-inset)}[data-theme=dark] .home-tournaments__list li+li{border-color:var(--color-border)}[data-theme=dark] .home-tournaments__header{border-color:var(--color-border)}[data-theme=dark] h1,[data-theme=dark] h2,[data-theme=dark] h3,[data-theme=dark] h4{color:var(--color-text-strong)}[data-theme=dark] .bracket-match{background:var(--color-surface-inset);border-color:var(--color-border)}[data-theme=dark] .bracket-match__player{border-color:var(--color-border);color:var(--color-text)}[data-theme=dark] .rankings-tabs button{color:var(--color-text-muted)}[data-theme=dark] .rankings-tabs button.active{color:var(--color-brand);border-color:var(--color-brand)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 600px){.form-row{grid-template-columns:1fr}}.meta{color:var(--color-text-muted);font-size:13px}.error-message{background-color:var(--color-error-bg);color:var(--color-error-text);padding:12px;border-radius:6px;margin-bottom:20px;font-size:14px;border:1px solid var(--color-error-border)}.subtitle{color:var(--color-text-muted);margin:0 0 32px;font-size:14px}.btn{padding:8px 14px;border-radius:6px;text-decoration:none;font-weight:600;font-size:13px;border:none;cursor:pointer;transition:background-color .15s,box-shadow .15s;display:inline-flex;align-items:center}.btn-primary{background:var(--color-brand);color:#fff}.btn-secondary{background:var(--color-brand-light);color:var(--color-brand)}.btn-danger{background:#e53935;color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-brand-hover);box-shadow:0 2px 8px #4f46e540}.btn-secondary:hover:not(:disabled){background:#dde4ff;box-shadow:0 2px 8px #4f46e51f}.btn-danger:hover:not(:disabled){background:#c62828;box-shadow:0 2px 8px #e5393540}.btn:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.history-list{display:flex;flex-direction:column;gap:8px}.history-item{border:1px solid var(--color-border);border-radius:8px;padding:8px 10px}.layout{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg-page)}.layout-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:16px 24px;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"brand nav actions";align-items:center;gap:16px}.layout-header__brand{grid-area:brand;justify-self:start;display:flex;align-items:center;gap:12px}.layout-header__logo{font-size:22px;font-weight:700;color:var(--color-brand);text-decoration:none}.layout-header__tagline{font-size:12px;color:var(--color-text-muted)}.layout-header__nav{grid-area:nav;justify-self:center;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.nav-link{color:var(--color-text);text-decoration:none;font-weight:500;font-size:14px;padding:6px 10px;border-radius:6px;transition:background .2s,color .2s}.nav-link:hover{background:#f3f4f6;color:var(--color-brand)}.nav-link:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.nav-link.active{background:var(--color-brand-light);color:var(--color-brand)}.layout-header__actions{grid-area:actions;justify-self:end;display:flex;align-items:center;gap:12px;justify-content:flex-end}.layout-header__greeting{color:var(--color-text);font-size:14px}.header-theme-btn{font-size:16px;line-height:1;background:none;border:none;cursor:pointer;padding:4px 6px;border-radius:6px;transition:background .15s;color:inherit}.header-theme-btn:hover{background:var(--color-brand-light);border-color:transparent}.header-settings-btn{font-size:18px;line-height:1;color:var(--color-text-muted);text-decoration:none;padding:4px 6px;border-radius:6px;transition:color .15s,background .15s}.header-settings-btn:hover{color:var(--color-brand);background:var(--color-brand-light)}.language-flags{display:inline-flex;gap:2px}.language-flag-btn{font-size:18px;line-height:1;background:none;border:none;cursor:pointer;padding:4px 5px;border-radius:6px;opacity:.45;transition:opacity .15s,background .15s}.language-flag-btn:hover{opacity:.8;background:var(--color-brand-light)}.language-flag-btn.active{opacity:1}.layout-main{flex:1;display:flex;justify-content:center;padding:32px 20px}.layout-footer{border-top:1px solid var(--color-border);padding:16px;background:var(--color-surface);text-align:center;font-size:13px;color:var(--color-text-muted)}.layout-footer__content{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center}.layout-footer__content a{color:var(--color-brand);text-decoration:none}.layout-footer__content a:hover{text-decoration:underline}.layout-footer__divider{color:#bbb}@media (max-width: 900px){.layout-header{grid-template-columns:1fr auto;grid-template-areas:"brand actions" "nav nav";align-items:start}.layout-header__brand{justify-content:flex-start}.layout-header__actions{justify-content:flex-end}}@media (max-width: 375px){.layout-header{padding:10px 12px;gap:8px}.layout-header__tagline{display:none}.layout-header__logo{font-size:18px}.layout-header__actions{gap:6px;flex-wrap:wrap}.language-flags{display:none}.btn{padding:6px 10px;font-size:12px}.layout-header__nav{gap:4px}.nav-link{font-size:13px;padding:4px 6px}}.spinner-wrapper{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 0;color:var(--color-text-muted);font-size:14px}.spinner{display:inline-block;border-radius:50%;border:3px solid var(--color-border);border-top-color:var(--color-brand);animation:spinner-spin .7s linear infinite}.spinner--sm{width:18px;height:18px;border-width:2px}.spinner--md{width:32px;height:32px}.spinner--lg{width:48px;height:48px;border-width:4px}.spinner-label{font-size:13px}@keyframes spinner-spin{to{transform:rotate(360deg)}}.home-container{width:100%;display:flex;flex-direction:column;gap:0}.home-hero{background:var(--color-brand-light);border-bottom:1px solid #dde0f7;color:#1a1a2e;padding:48px 24px 40px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.home-hero__title{font-size:clamp(1.5rem,4vw,2.2rem);font-weight:800;margin:0;color:#4f46e5;letter-spacing:-.5px}.home-hero__subtitle{font-size:.95rem;margin:0;color:var(--color-text-muted);max-width:480px}.home-hero__cta{display:flex;gap:12px;margin-top:8px;flex-wrap:wrap;justify-content:center}.btn-hero-primary{background:#4f46e5;color:#fff;font-weight:700;padding:10px 28px;border-radius:8px;text-decoration:none;transition:background .15s}.btn-hero-primary:hover{background:var(--color-brand-hover);color:#fff}.btn-hero-secondary{background:#fff;color:#4f46e5;font-weight:600;padding:10px 28px;border-radius:8px;text-decoration:none;border:1.5px solid #c7d2fe;transition:border-color .15s}.btn-hero-secondary:hover{border-color:#4f46e5;color:#4f46e5}.home-body{display:flex;flex-direction:column;gap:20px;padding:24px 20px;max-width:760px;width:100%;margin:0 auto;box-sizing:border-box}.home-card{background:#fff;border-radius:14px;box-shadow:0 2px 16px #4f46e512,0 1px 4px #0000000d;overflow:hidden}.home-profile{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;gap:16px;border-left:5px solid #4f46e5}.home-profile__left{display:flex;align-items:center;gap:14px;min-width:0}.home-profile__avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-size:1.3rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.home-profile__info{display:flex;flex-direction:column;gap:2px;min-width:0}.home-profile__name{font-weight:700;font-size:1rem;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-profile__email{font-size:.8rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-profile__points{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--color-brand-light);border-radius:10px;padding:10px 18px;flex-shrink:0}.home-profile__points-value{font-size:1.6rem;font-weight:800;color:#4f46e5;line-height:1}.home-profile__points-label{font-size:.7rem;color:#6366f1;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.home-tournaments__header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 14px;border-bottom:1px solid var(--color-border)}.home-tournaments__title{font-size:.95rem;font-weight:700;margin:0;color:#1a1a2e;text-transform:uppercase;letter-spacing:.05em}.home-tournaments__all{font-size:.82rem;color:#4f46e5;text-decoration:none;font-weight:600}.home-tournaments__all:hover{text-decoration:underline;color:var(--color-brand-hover)}.home-tournaments__empty{padding:20px 22px;color:var(--color-text-muted);font-size:.9rem;margin:0}.home-tournaments__list{list-style:none;margin:0;padding:0}.home-tournaments__list li+li{border-top:1px solid var(--color-border)}.home-tournament-row{display:flex;align-items:center;gap:0;text-decoration:none;color:inherit;transition:background .15s}.home-tournament-row:hover{background:#f8f8ff}.home-tournament-row__accent{width:4px;align-self:stretch;background:linear-gradient(180deg,#4f46e5,#7c3aed);flex-shrink:0}.home-tournament-row__body{flex:1;display:flex;flex-direction:column;gap:2px;padding:14px 16px;min-width:0}.home-tournament-row__name{font-weight:600;font-size:.92rem;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-tournament-row__city{font-size:.78rem;color:var(--color-text-muted)}.home-tournament-row__date{font-size:.78rem;font-weight:600;color:#6366f1;text-align:right;padding:14px 18px 14px 8px;flex-shrink:0;line-height:1.4}@media (max-width: 500px){.home-hero{padding:36px 16px 32px}.home-profile{padding:16px;flex-wrap:wrap}.home-profile__points{width:100%;flex-direction:row;justify-content:center;gap:8px}}.login-container{display:flex;justify-content:center;align-items:center;width:100%;min-height:100%;padding:20px}.login-card{background:#fff;border-radius:12px;padding:40px;width:100%;max-width:400px;box-shadow:0 10px 40px #0000001a}.login-card h1{margin:0 0 8px;color:#333;font-size:28px;font-weight:600}.form-group input{width:100%;padding:12px;border:1px solid #ddd;border-radius:6px;font-size:16px;transition:border-color .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#4f46e5}.register-link{text-align:center;margin-top:24px;color:#666;font-size:14px}.register-link a{color:#4f46e5;text-decoration:none;font-weight:500}.register-link a:hover{text-decoration:underline}.login-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:#999;font-size:13px}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#e5e7eb}.google-button{width:100%;padding:12px;background:#fff;color:#333;border:1px solid #ddd;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:background .2s,border-color .2s}.google-button:hover:not(:disabled){background:#f9fafb;border-color:#bbb}.google-button:disabled{opacity:.6;cursor:not-allowed}.google-button svg{flex-shrink:0}.subtitle{color:#666;font-size:14px;margin:0 0 24px}.error-message{background:#fee2e2;color:#dc2626;padding:12px;border-radius:6px;margin-bottom:16px;font-size:14px}.totp-hint{font-size:13px;color:#666;margin:8px 0 16px}.back-link{background:none;border:none;color:#4f46e5;cursor:pointer;font-size:14px;padding:0;margin-top:16px;display:block;text-align:center}.register-container{display:flex;justify-content:center;align-items:center;width:100%;min-height:100%;padding:20px}.register-card{background:#fff;border-radius:12px;padding:40px;width:100%;max-width:600px;box-shadow:0 10px 40px #0000001a}.register-card h1{margin:0 0 8px;color:#333;font-size:28px;font-weight:600}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#333;font-weight:500;font-size:14px}.form-group input,.form-group select{width:100%;padding:12px;border:1px solid #ddd;border-radius:6px;font-size:16px;transition:border-color .2s;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:#4f46e5}.form-group small{display:block;margin-top:4px;color:#666;font-size:12px}.submit-button{width:100%;padding:14px;background:#4f46e5;color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s;margin-top:8px}.submit-button:hover:not(:disabled){opacity:.9}.submit-button:disabled{opacity:.6;cursor:not-allowed}.login-link{text-align:center;margin-top:24px;color:#666;font-size:14px}.login-link a{color:#4f46e5;text-decoration:none;font-weight:500}.login-link a:hover{text-decoration:underline}.monthly-rank-chart-wrapper{width:100%;overflow-x:auto}.monthly-rank-chart-svg{width:100%;max-width:520px;height:auto;display:block}.sport-stats-chart-wrapper{display:flex;flex-direction:column;gap:var(--space-2)}.sport-stats-chart-svg{width:100%;max-width:480px;height:auto;display:block}.sport-stats-chart-legend{display:flex;gap:var(--space-4);font-size:.75rem;color:var(--color-text-muted)}.sport-stats-legend-win:before{content:"";display:inline-block;width:10px;height:10px;background:#22c55e;border-radius:2px;margin-right:4px;vertical-align:middle}.sport-stats-legend-loss:before{content:"";display:inline-block;width:10px;height:10px;background:#ef4444;border-radius:2px;margin-right:4px;vertical-align:middle}.profile-page{width:100%;display:flex;justify-content:center}.profile-card{background:var(--color-surface);padding:28px;border-radius:12px;max-width:800px;width:100%;box-shadow:var(--shadow-card)}.profile-tabs{display:flex;gap:4px;border-bottom:2px solid var(--color-border);margin-bottom:24px}.profile-tab-btn{padding:8px 18px;font-size:14px;font-weight:500;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;color:var(--color-text-muted);transition:color .15s,border-color .15s;border-radius:6px 6px 0 0}.profile-tab-btn:hover{color:var(--color-brand)}.profile-tab-btn.active{color:var(--color-brand);border-bottom-color:var(--color-brand);font-weight:600}.profile-loading{display:flex;justify-content:center;padding:40px 0}.profile-info-section{margin-bottom:24px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.profile-item{background:var(--color-surface-inset);border-radius:8px;padding:12px}.profile-label{display:block;font-size:12px;color:var(--color-text-muted);margin-bottom:4px}.profile-value{font-size:14px;color:var(--color-text);font-weight:500}.profile-section{margin-top:24px;padding-top:16px;border-top:1px solid var(--color-border)}.profile-section h3{margin:0 0 12px;color:var(--color-text-strong)}.profile-status{background:var(--color-surface-inset);border-radius:6px;padding:10px 14px;font-size:13px;color:var(--color-text);margin-bottom:16px}.profile-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.profile-form-group{display:flex;flex-direction:column;gap:4px}.profile-form-group label{font-size:13px;font-weight:500;color:var(--color-text-muted)}.profile-form input,.profile-form select{padding:8px;border-radius:6px;border:1px solid var(--color-border-input);background:var(--color-surface);color:var(--color-text);width:100%;box-sizing:border-box}.profile-form input:focus-visible,.profile-form select:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.profile-form-actions{grid-column:1 / -1}@media (max-width: 700px){.profile-grid{grid-template-columns:1fr}}.player-profile-page{max-width:760px;margin:2rem auto;padding:0 1rem}.player-profile-card{background:var(--color-surface);border-radius:var(--radius-lg, 12px);border:1px solid var(--color-border);padding:2rem;display:flex;flex-direction:column;gap:2rem}.player-profile-header{display:flex;align-items:center;gap:1.25rem}.player-profile-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border);flex-shrink:0}.player-profile-avatar-placeholder{width:80px;height:80px;border-radius:50%;background:var(--color-primary, #2563eb);color:#fff;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;flex-shrink:0}.player-profile-identity h1{margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.player-profile-ranking-chips{display:flex;flex-wrap:wrap;gap:.4rem}.ranking-chip{background:var(--color-primary-subtle, #eff6ff);color:var(--color-primary, #2563eb);border-radius:999px;padding:.2rem .65rem;font-size:.8rem;font-weight:500}.player-profile-section{border-top:1px solid var(--color-border);padding-top:1.5rem}.player-profile-section h2{margin:0 0 1rem;font-size:1.05rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted, #6b7280)}.player-profile-empty{color:var(--color-text-muted, #6b7280);font-style:italic;margin:0}.sport-rankings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}.sport-ranking-card{background:var(--color-surface-alt, #f9fafb);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:1rem 1.25rem;display:flex;flex-direction:column;align-items:center;gap:.35rem}.sport-ranking-card__sport{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted, #6b7280)}.sport-ranking-card__value{font-size:1.75rem;font-weight:700;line-height:1;color:var(--color-primary, #2563eb)}.sport-ranking-card__value--empty{color:var(--color-text-muted, #6b7280);font-size:1.4rem}.national-ranking-grid{display:flex;gap:1rem;flex-wrap:wrap}.national-ranking-card{background:var(--color-surface-alt, #f9fafb);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:.75rem 1.25rem;display:flex;flex-direction:column;align-items:center;min-width:100px;flex:1}.national-ranking-card-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted, #6b7280);margin-bottom:.4rem}.national-ranking-rank{font-size:1.6rem;font-weight:700;line-height:1;color:var(--color-primary, #2563eb)}.national-ranking-pts{font-size:.78rem;color:var(--color-text-muted, #6b7280);margin-top:.3rem}.player-profile-stats-grid{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.stat-box{background:var(--color-surface-alt, #f9fafb);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:.75rem 1.25rem;display:flex;flex-direction:column;align-items:center;min-width:90px}.stat-value{font-size:1.6rem;font-weight:700;line-height:1}.stat-label{font-size:.75rem;color:var(--color-text-muted, #6b7280);margin-top:.25rem;text-align:center}.player-profile-category-stats{display:flex;flex-direction:column;gap:.35rem}.category-stat-row{display:flex;gap:.75rem;font-size:.9rem}.category-stat-label{font-weight:600;min-width:70px}.category-stat-detail{color:var(--color-text-muted, #6b7280)}.player-profile-sport-ranks{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.sport-rank-item{background:var(--color-surface-alt, #f9fafb);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:.6rem .9rem;display:flex;flex-direction:column;gap:.15rem}.sport-rank-label{font-size:.78rem;color:var(--color-text-muted, #6b7280);text-transform:uppercase;letter-spacing:.04em}.sport-rank-value{font-size:1.1rem;font-weight:700}.player-profile-podiums{display:flex;flex-direction:column;gap:.6rem}.podium-item{display:flex;align-items:flex-start;gap:.75rem;padding:.65rem .9rem;border-radius:var(--radius-md, 8px);background:var(--color-surface-alt, #f9fafb);border:1px solid var(--color-border)}.podium-medal{font-size:1.5rem;flex-shrink:0}.podium-details{display:flex;flex-direction:column;gap:.1rem;min-width:0}.podium-place{font-weight:700;font-size:.9rem}.podium-event{font-size:.8rem;color:var(--color-text-muted, #6b7280)}.podium-tournament{font-size:.85rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.podium-bracket{font-size:.78rem;color:var(--color-text-muted, #6b7280)}.player-profile-history{display:flex;flex-direction:column;gap:1.25rem}.history-event-type h3{font-size:.95rem;font-weight:600;margin:0 0 .6rem;color:var(--color-primary, #2563eb);text-transform:uppercase;letter-spacing:.04em}.history-year h4{font-size:.85rem;font-weight:600;color:var(--color-text-muted, #6b7280);margin:.75rem 0 .4rem}.history-tournament{border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);overflow:hidden;margin-bottom:.4rem}.history-tournament-header{width:100%;display:flex;align-items:center;gap:.5rem;padding:.6rem .9rem;background:var(--color-surface-alt, #f9fafb);border:none;cursor:pointer;text-align:left;font-size:.88rem}.history-tournament-name{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-tournament-summary{font-size:.8rem;color:var(--color-text-muted, #6b7280);white-space:nowrap}.history-chevron{font-size:.65rem;color:var(--color-text-muted, #6b7280);flex-shrink:0}.history-matches-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-border)}.history-match{display:flex;align-items:center;gap:.5rem;padding:.45rem .9rem;font-size:.85rem;border-bottom:1px solid var(--color-border)}.history-match:last-child{border-bottom:none}.match-result-badge{font-size:.72rem;font-weight:600;padding:.15rem .45rem;border-radius:999px;white-space:nowrap}.history-match.won .match-result-badge{background:#dcfce7;color:#166534}.history-match.lost .match-result-badge{background:#fee2e2;color:#991b1b}.match-round{color:var(--color-text-muted, #6b7280);font-size:.8rem;white-space:nowrap}.match-opponent{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-opponent-link{color:var(--color-primary);text-decoration:none}.match-opponent-link:hover{text-decoration:underline}.match-score{font-size:.78rem;color:var(--color-text-muted, #6b7280);white-space:nowrap;font-family:monospace}.player-profile-tabs{display:flex;border-bottom:2px solid var(--color-border)}.profile-tab{padding:.55rem 1.25rem;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;background:transparent;font-size:.95rem;font-weight:500;color:var(--color-text-muted, #6b7280);cursor:pointer;transition:color .15s,border-color .15s}.profile-tab.active{color:var(--color-primary, #2563eb);border-bottom-color:var(--color-primary, #2563eb);font-weight:600}.profile-tab:hover:not(.active){color:var(--color-text, #111827)}.rank-chart-tabs{display:flex;gap:.4rem;margin-bottom:.75rem}.rank-chart-tab{padding:.25rem .75rem;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface-alt, #f9fafb);font-size:.82rem;cursor:pointer;font-weight:500;color:var(--color-text-muted, #6b7280);transition:background .15s,color .15s}.rank-chart-tab.active{background:var(--color-primary, #2563eb);color:#fff;border-color:var(--color-primary, #2563eb)}.player-profile-name-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.player-profile-name-row h1{margin:0 0 .5rem}.intl-add-btn{padding:.3rem .8rem;border-radius:999px;background:var(--color-primary-subtle, #eff6ff);color:var(--color-primary, #2563eb);border:1px solid var(--color-primary, #2563eb);font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.intl-add-btn:hover{background:var(--color-primary, #2563eb);color:#fff}.podium-item--intl{border-color:var(--color-primary, #2563eb);background:var(--color-primary-subtle, #eff6ff)}.podium-intl-badge{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary, #2563eb);background:#fff;border:1px solid var(--color-primary, #2563eb);border-radius:4px;padding:.05rem .35rem}.intl-results-list{display:flex;flex-direction:column;gap:.5rem}.intl-result-item{display:flex;align-items:flex-start;gap:.75rem;padding:.65rem .9rem;border-radius:var(--radius-md, 8px);background:var(--color-primary-subtle, #eff6ff);border:1px solid var(--color-primary, #2563eb)}.intl-result-medal{font-size:1.4rem;flex-shrink:0}.intl-result-details{display:flex;flex-direction:column;gap:.1rem;min-width:0}.intl-result-name{font-weight:700;font-size:.9rem}.intl-result-meta{font-size:.8rem;color:var(--color-text-muted, #6b7280)}.intl-result-pts{font-size:.82rem;font-weight:600;color:var(--color-primary, #2563eb)}.results-period-hint{font-size:.8rem;color:var(--color-text-muted, #6b7280);margin:.5rem 1.5rem 0;font-style:italic}.results-event-header{display:flex;align-items:baseline;gap:.75rem;margin-bottom:.5rem}.results-event-header h2{margin:0}.results-event-total{font-size:.85rem;font-weight:600;color:var(--color-primary, #2563eb);background:var(--color-primary-subtle, #eff6ff);border:1px solid var(--color-primary, #2563eb);border-radius:999px;padding:.1rem .55rem;white-space:nowrap}.results-date{white-space:nowrap;color:var(--color-text-muted, #6b7280);font-size:.82rem}.results-table{width:100%;border-collapse:collapse;font-size:.875rem}.results-table th{text-align:left;padding:.4rem .6rem;border-bottom:2px solid var(--color-border);font-size:.75rem;font-weight:600;color:var(--color-text-muted, #6b7280);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.results-table td{padding:.5rem .6rem;border-bottom:1px solid var(--color-border);vertical-align:middle}.results-table tr:last-child td{border-bottom:none}.results-tournament-name{font-weight:500}.results-bracket-name{color:var(--color-text-muted, #6b7280);font-size:.82rem}.results-intl-badge{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-primary, #2563eb);background:var(--color-primary-subtle, #eff6ff);border:1px solid var(--color-primary, #2563eb);border-radius:4px;padding:.05rem .35rem;margin-left:.3rem;vertical-align:middle}.results-position{font-weight:600}.results-position.pos-top3{font-size:1.15rem}.results-points{font-weight:600;color:var(--color-primary, #2563eb);white-space:nowrap}@media (max-width: 480px){.player-profile-card{padding:1.25rem}.player-profile-stats-grid{gap:.6rem}.stat-box{padding:.6rem .9rem}.results-table{font-size:.8rem}.results-table th,.results-table td{padding:.4rem .35rem}}.partners-table{width:100%;border-collapse:collapse;font-size:.88rem}.partners-table th,.partners-table td{padding:.5rem .75rem;border-bottom:1px solid var(--color-border);text-align:left}.partners-table th{font-size:.8rem;color:var(--color-text-secondary, #888);font-weight:500}.partner-link{color:var(--color-primary);text-decoration:none;font-weight:500}.partner-link:hover{text-decoration:underline}.sport-stats-table{width:100%;border-collapse:collapse;font-size:.875rem}.sport-stats-table th{text-align:left;padding:.4rem .6rem;border-bottom:2px solid var(--color-border);font-size:.75rem;font-weight:600;color:var(--color-text-muted, #6b7280);text-transform:uppercase;letter-spacing:.04em}.sport-stats-table td{padding:.5rem .6rem;border-bottom:1px solid var(--color-border);vertical-align:middle}.sport-stats-table tr:last-child td{border-bottom:none}.sport-diff-positive{color:var(--color-success, #16a34a);font-weight:600}.sport-diff-negative{color:var(--color-danger, #dc2626);font-weight:600}.pending-points-row{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-top:.75rem;padding:.5rem .75rem;background:var(--color-surface-alt);border:1px dashed var(--color-border);border-radius:8px;font-size:.85rem;cursor:help}.pending-points-label{color:var(--color-text-muted);font-weight:500}.pending-points-chip{background:var(--color-surface-inset);border:1px solid var(--color-border);border-radius:12px;padding:.15rem .6rem;font-size:.8rem;color:var(--color-text);font-weight:600}.profile-tab-badge-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;background:var(--color-primary, #2563eb);color:#fff;border-radius:9px;font-size:.7rem;font-weight:700;line-height:1}.badges-grid{display:flex;flex-wrap:wrap;gap:20px;padding:8px 0}.badge-card{display:flex;flex-direction:column;align-items:center;gap:6px;width:110px;cursor:default}.badge-card__img{width:88px;height:88px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.18));transition:transform .18s}.badge-card:hover .badge-card__img{transform:scale(1.08)}.badge-card__name{font-size:.82rem;font-weight:700;color:var(--color-text, #111827);text-align:center}.badge-card__desc{font-size:.72rem;color:var(--color-text-muted, #6b7280);text-align:center;line-height:1.3}.settings-page{width:100%;display:flex;justify-content:center}.settings-card{background:#fff;padding:28px;border-radius:12px;max-width:700px;width:100%;box-shadow:0 8px 30px #00000014}.settings-card h2{margin:0 0 8px;color:#333}.settings-subtitle{color:#666;margin:0 0 24px}.settings-section{background:#f7f7fb;padding:16px;border-radius:8px;margin-bottom:12px}.settings-section h3{margin:0 0 8px;font-size:16px;color:#333}.settings-section p{margin:0;color:#666;font-size:14px}.settings-section .settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.settings-badge{font-size:12px;padding:3px 10px;border-radius:99px;font-weight:600}.settings-badge--on{background:#d1fae5;color:#065f46}.settings-badge--off{background:#f3f4f6;color:#6b7280}.settings-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.settings-btn{padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:opacity .2s}.settings-btn:disabled{opacity:.6;cursor:not-allowed}.settings-btn--primary{background:#4f46e5;color:#fff}.settings-btn--primary:hover:not(:disabled){opacity:.88}.settings-btn--danger{background:#fee2e2;color:#dc2626}.settings-btn--danger:hover:not(:disabled){background:#fecaca}.settings-2fa-setup{margin-top:16px;padding:16px;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.settings-2fa-setup img{display:block;margin:12px auto;border-radius:6px;border:1px solid #e5e7eb}.settings-2fa-setup p{color:#555;font-size:13px;margin:0 0 12px}.settings-2fa-confirm{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.settings-2fa-confirm input{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:15px;width:120px;letter-spacing:4px}.settings-2fa-confirm input:focus{outline:none;border-color:#4f46e5}.settings-msg{font-size:13px;padding:8px 12px;border-radius:6px;margin-top:10px}.settings-msg--success{background:#d1fae5;color:#065f46}.settings-msg--error{background:#fee2e2;color:#dc2626}.settings-secret{font-family:monospace;font-size:13px;background:#f3f4f6;padding:4px 8px;border-radius:4px;word-break:break-all;display:block;margin:8px 0}.settings-disable-form{display:flex;flex-direction:column;gap:8px;margin-top:12px}.settings-disable-form input{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;width:100%;box-sizing:border-box}.settings-disable-form input:focus{outline:none;border-color:#4f46e5}.admin-dashboard{width:100%;display:flex;justify-content:center}.admin-dashboard__card{background:#fff;padding:28px;border-radius:12px;max-width:1000px;width:100%;box-shadow:0 8px 30px #00000014}.admin-dashboard__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:16px}.admin-dashboard__actions{display:flex;gap:10px;flex-wrap:wrap}.admin-dashboard__filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.chip{border:1px solid #e0e0ef;background:#f7f7fb;padding:6px 12px;border-radius:999px;cursor:pointer;font-size:13px}.chip.active{background:#eef2ff;border-color:#c7d2fe;color:#4f46e5}.admin-dashboard__list{display:flex;flex-direction:column;gap:12px}.admin-dashboard__item{display:flex;justify-content:space-between;align-items:center;border:1px solid #ececf4;border-radius:10px;padding:12px 16px;background:#fff;gap:12px}.admin-dashboard__item-link{text-decoration:none;color:inherit;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.admin-dashboard__item-link:hover{background:#f7f7fb;border-color:#e0e0ef}.admin-dashboard__item .meta{color:#666;font-size:13px}.empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px 24px;color:var(--color-text-muted);text-align:center}.empty-state-icon{font-size:36px;line-height:1}.empty-state-message{margin:0;font-size:14px;max-width:280px}.empty-state-action{margin-top:4px}.admin-players{width:100%;max-width:1180px;margin:0 auto}.admin-players__header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.admin-players__header h1{margin:6px 0 0}.back-link{color:#4f46e5;font-size:14px;font-weight:600;text-decoration:none}.back-link:hover{text-decoration:underline}.admin-players__grid{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(420px,1.15fr);gap:18px;align-items:start}.admin-players__panel{background:#fff;border:1px solid #ececf4;border-radius:8px;padding:20px;box-shadow:0 8px 30px #0000000f}.admin-players__panel h2{margin:0 0 16px;font-size:22px}.admin-player-form__hint{margin:-6px 0 16px;color:#666;font-size:14px}.admin-players__toolbar{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.admin-players__toolbar label,.admin-player-form label{color:#333;font-size:14px;font-weight:600}.admin-players__toolbar input,.admin-player-form input,.admin-player-form select{width:100%;border:1px solid #dadae8;border-radius:8px;padding:10px 12px;font:inherit;background:#fff}.admin-players__toolbar input:focus,.admin-player-form input:focus,.admin-player-form select:focus{outline:3px solid #c7d2fe;border-color:#4f46e5}.admin-players__list{display:flex;flex-direction:column;gap:8px}.admin-players__row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:1px solid #ececf4;border-radius:8px;padding:12px;background:#fff;color:inherit;cursor:pointer;text-align:left}.admin-players__row:hover,.admin-players__row.active{background:#f7f7fb;border-color:#c7d2fe}.admin-players__row-info{flex:1;min-width:0}.admin-players__row strong,.admin-players__row small{display:block}.admin-players__row small{color:#666;font-size:13px;margin-top:3px}.admin-players__row-right{display:flex;align-items:center;gap:8px;flex:0 0 auto}button.admin-players__trash-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background-color:transparent;color:#b91c1c;cursor:pointer;flex-shrink:0;transition:background-color .15s}button.admin-players__trash-btn:hover{background-color:#fef2f2;border-color:transparent}button.admin-players__trash-btn:focus-visible{outline:2px solid #b91c1c}.player-status{flex:0 0 auto;border-radius:999px;background:#ecfdf5;color:#047857;font-size:12px;font-weight:700;padding:4px 8px}.player-status.inactive{background:#fef2f2;color:#b91c1c}.admin-players__pagination,.admin-player-form__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-players__pagination{justify-content:space-between;margin-top:14px;color:#666;font-size:14px}.admin-player-form{display:flex;flex-direction:column;gap:14px}.admin-player-form .form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-player-form .form-group{display:flex;flex-direction:column;gap:7px}.admin-player-form .form-hint{color:#888;font-size:12px;font-weight:400;margin-top:-2px}.admin-player-form__checks{display:flex;flex-wrap:wrap;gap:12px 18px;padding:4px 0}.admin-player-form__checks label{display:inline-flex;align-items:center;gap:8px}.admin-player-form__checks input{width:auto}.admin-player-form__actions{margin-top:4px}.admin-players__confirm{margin-top:16px;border:1px solid #fecaca;border-radius:8px;background:#fef2f2;padding:12px}.admin-players__modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:100}.admin-players__modal{background:#fff;border-radius:10px;padding:24px 28px;max-width:420px;width:90%;box-shadow:0 8px 40px #0000002e}.admin-players__modal p{margin:0 0 20px;font-size:15px;line-height:1.5}.admin-players__modal-actions{display:flex;gap:10px;justify-content:flex-end}@media (max-width: 900px){.admin-players__grid,.admin-player-form .form-row{grid-template-columns:1fr}.admin-players__header{align-items:flex-start;flex-direction:column}}.admin-tournament-detail{width:100%;display:flex;justify-content:center}.admin-tournament-detail__card{background:#fff;padding:28px;border-radius:12px;max-width:1000px;width:100%;box-shadow:0 8px 30px #00000014}.admin-tournament-detail__header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.admin-tournament-detail__actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.admin-tournament-detail__participants{display:flex;flex-direction:column;gap:10px}.participant-row{border:1px solid #ececf4;border-radius:10px;padding:10px 12px;background:#fff}.admin-tournament-detail__info,.admin-tournament-detail__edit{margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border)}.admin-tournament-detail__info-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.admin-tournament-detail__info-header h2{font-size:15px;font-weight:600;margin:0;color:var(--color-text)}.tournament-details-grid{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;font-size:14px;margin:0}.tournament-details-grid dt{font-weight:500;color:var(--color-text-muted);white-space:nowrap}.tournament-details-grid dd{margin:0;color:var(--color-text)}.btn-sm{font-size:13px;padding:4px 12px}.admin-tournament-detail__organizers{margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border)}.admin-tournament-detail__organizers h2{font-size:15px;font-weight:600;margin:0 0 10px;color:var(--color-text)}.organizers-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.organizer-item{display:flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid var(--color-border);border-radius:8px;font-size:14px}.organizer-info{display:flex;flex-direction:column;gap:2px;flex:1}.organizer-name{font-weight:500}.organizer-email{color:var(--color-text-muted);font-size:13px}.organizer-remove-btn{font-size:12px;padding:4px 10px}.organizer-empty{color:var(--color-text-muted);font-size:13px;padding:4px 0}.organizer-add-wrapper{position:relative;margin-top:12px}.organizer-search-input{width:100%;padding:8px 12px;border:1px solid var(--color-border-input);border-radius:6px;font-size:14px;box-sizing:border-box}.organizer-search-input:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.organizer-searching{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);font-size:13px}.organizer-search-results{position:absolute;top:calc(100% + 4px);left:0;right:0;margin:0;padding:4px 0;list-style:none;background:#fff;border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 16px #0000001a;z-index:10}.organizer-search-results li button{width:100%;text-align:left;padding:8px 14px;background:none;border:none;cursor:pointer;font-size:14px;color:var(--color-text)}.organizer-search-results li button:hover,.organizer-search-results li button:focus-visible{background:var(--color-brand-light);outline:none}.organizer-result-email{color:var(--color-text-muted);font-size:12px}.admin-tournament-detail__audit{margin-top:28px;padding-top:24px;border-top:1px solid var(--color-border, #e8e8e8)}.admin-tournament-detail__audit h2{font-size:15px;font-weight:600;margin:0 0 12px;color:var(--color-text, #222)}.audit-loading,.audit-empty{font-size:13px;color:var(--color-text-muted, #888);padding:8px 0}.audit-list{list-style:none;margin:0;padding:0;max-height:340px;overflow-y:auto}.audit-item{display:flex;align-items:baseline;gap:8px;padding:6px 0;border-bottom:1px solid var(--color-border-subtle, #f2f2f2);font-size:13px;flex-wrap:wrap}.audit-item:last-child{border-bottom:none}.audit-item__time{color:var(--color-text-muted, #999);white-space:nowrap;min-width:120px}.audit-item__actor{font-weight:600;color:var(--color-text, #222)}.audit-item__label{color:var(--color-text, #444)}.audit-item__repr{color:var(--color-text-muted, #888);font-style:italic}.coeff-badge{display:inline-flex;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:600}.coeff-badge--up{background:#dcfce7;color:#166534}.coeff-badge--neutral{background:#f3f4f6;color:#6b7280}.coeff-badge--down{background:#fef9c3;color:#854d0e}.tournament-form-page{width:100%;display:flex;justify-content:center}.tournament-form-card{background:#fff;padding:28px;border-radius:12px;max-width:900px;width:100%;box-shadow:0 8px 30px #00000014}.tournament-form-card h2{margin:0 0 16px;color:#333}.tournament-form-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.tournament-form-header h1{margin:0}.tournament-form{display:flex;flex-direction:column;gap:12px}.form-group{display:flex;flex-direction:column}.form-group label{font-size:13px;font-weight:600;margin-bottom:6px}.form-group input,.form-group textarea,.form-group select{padding:10px;border:1px solid #ddd;border-radius:6px}.form-group textarea{min-height:80px}.form-group.checkbox{align-items:flex-start;justify-content:center}.form-actions{margin-top:8px}@media (max-width: 640px){.tournament-form-header{align-items:flex-start;flex-direction:column}}.brackets-page{width:100%;display:flex;justify-content:center}.brackets-card{background:#fff;padding:28px;border-radius:12px;max-width:1000px;width:100%;box-shadow:0 8px 30px #00000014}.brackets-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px}.brackets-header-actions{display:flex;gap:8px;flex-wrap:wrap}.bracket-create-actions{display:flex;gap:8px;margin-top:8px}.bracket-modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.bracket-modal{background:#fff;border-radius:14px;box-shadow:0 16px 48px #0000002e;padding:28px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto}.bracket-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.bracket-modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--color-text)}.bracket-modal-close{width:32px;height:32px;border:none;background:#f1f5f9;border-radius:8px;font-size:20px;line-height:1;cursor:pointer;color:#475569;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}.bracket-modal-close:hover{background:#e2e8f0;color:#1e293b}.bracket-modal-close:focus-visible{outline:2px solid #4f46e5;outline-offset:2px}.bracket-form{margin-bottom:24px;display:flex;flex-direction:column;gap:12px}.brackets-list{display:flex;flex-direction:column;gap:12px}.bracket-item{border:1px solid #ececf4;border-radius:10px;padding:12px 16px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s}.bracket-item:hover{border-color:#b0b8e8;box-shadow:0 2px 8px #5050b414}.bracket-item--editing{cursor:default}.bracket-item--editing:hover{border-color:#ececf4;box-shadow:none}.bracket-item-header{display:flex;justify-content:space-between;align-items:center;gap:10px}.bracket-item-title{display:flex;align-items:flex-start;gap:10px}.bracket-item-title .bracket-lock-btn{flex-shrink:0;width:36px;height:36px;border:1px solid #ddd;border-radius:8px;background:#f8f9fa;font-size:18px;cursor:pointer;padding:0;line-height:1}.bracket-item-title .bracket-lock-btn:hover{background:#e9ecef}.bracket-item-title .bracket-lock-btn:focus-visible{outline:2px solid #4f46e5;outline-offset:2px}.bracket-genre-label{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:500}.bracket-genre-label--hommes{background:#dbeafe;color:#1e40af}.bracket-genre-label--femmes{background:#fce7f3;color:#be185d}.bracket-genre-label--mixte{background:#f1f5f9;color:#475569}.bracket-delete-btn{flex-shrink:0;width:36px;height:36px;border:1px solid #fecaca;border-radius:8px;background:#fef2f2;color:#b91c1c;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer}.bracket-delete-btn:hover:not(:disabled){background:#fee2e2;border-color:#f87171;color:#991b1b}.bracket-delete-btn:disabled{opacity:.6;cursor:not-allowed}.bracket-delete-btn:focus-visible{outline:2px solid #b91c1c;outline-offset:2px}.bracket-name-link{color:inherit;text-decoration:none}.bracket-name-link:hover{text-decoration:underline}.bracket-confirm-delete{margin-top:10px;padding:10px 12px;border-top:1px solid #fecaca;background:#fef2f2;border-radius:6px;font-size:13px;color:#7f1d1d;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.bracket-confirm-delete-actions{display:flex;gap:8px;flex-shrink:0}.form-row{display:flex;gap:10px;flex-wrap:wrap}.form-group{display:flex;flex-direction:column;gap:4px;min-width:180px}.form-group input,.form-group select{padding:8px;border-radius:6px;border:1px solid #ddd}.form-group input:focus-visible,.form-group select:focus-visible{outline:2px solid #4f46e5;outline-offset:2px}.add-to-bracket-btn{width:32px;height:32px;flex-shrink:0;border:1.5px solid #16a34a;border-radius:8px;background:#f0fdf4;color:#16a34a;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .1s,box-shadow .15s}.add-to-bracket-btn:hover{background:#16a34a;color:#fff;border-color:#15803d;box-shadow:0 2px 6px #16a34a40;transform:scale(1.07)}.add-to-bracket-btn:active{transform:scale(.95)}.add-to-bracket-btn.selected{background:#15803d;color:#fff;border-color:#14532d}.add-to-bracket-btn:focus-visible{outline:2px solid #15803d;outline-offset:2px}.bracket-fill-badge{display:inline-flex;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;text-transform:lowercase}.bracket-fill-badge.empty{background:#f3f4f6;color:#6b7280}.bracket-fill-badge.partial{background:#fef3c7;color:#92400e}.bracket-fill-badge.full{background:#dcfce7;color:#166534}.bracket-fill-badge--finished{margin-left:6px;background:#dbeafe;color:#1e40af}.actions{display:flex;gap:8px;flex-wrap:wrap}.bracket-coeff{display:inline-flex;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.bracket-coeff--up{background:#dcfce7;color:#166534}.bracket-coeff--neutral{background:#f3f4f6;color:#6b7280}.bracket-coeff--down{background:#fef9c3;color:#854d0e}.racketlon-bracket{--rkt-bg: #f8fafc;--rkt-border: #e2e8f0;--rkt-text: #1e293b;--rkt-muted: #64748b;--rkt-win: #0f766e;--rkt-win-bg: #ccfbf1;--rkt-loss: #b91c1c;--rkt-loss-bg: #fee2e2;--rkt-connector: #94a3b8;--rkt-round-title: #475569;--rkt-row-h: 100px;--rkt-grid-height: 400px;--rkt-title-height: 26px;font-size:15px;color:var(--rkt-text);background:var(--rkt-bg);border-radius:12px;padding:20px;overflow-x:auto}.racketlon-bracket__inner{display:flex;flex-direction:row;align-items:stretch;gap:0;min-height:var(--rkt-grid-height)}.racketlon-bracket__connector-wrap{flex-shrink:0;width:24px;min-width:24px;display:flex;align-items:stretch;padding-top:var(--rkt-title-height)}.racketlon-bracket__connector-wrap--spacer{width:32px;min-width:32px}.racketlon-bracket__connector{width:100%;height:100%}.racketlon-bracket__round{flex-shrink:0;min-width:200px;display:flex;flex-direction:column}.racketlon-bracket__round-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--rkt-round-title);margin:0 0 8px;padding-bottom:4px;border-bottom:2px solid var(--rkt-border);text-align:center}.racketlon-bracket__round-grid{display:grid;flex:1;min-height:var(--rkt-grid-height);gap:8px;align-content:start}.racketlon-bracket__match-wrap{display:flex;flex-direction:column;align-items:stretch;min-height:0;gap:4px}.racketlon-bracket__match-number{font-size:11px;font-weight:600;color:var(--rkt-muted);text-align:center;flex-shrink:0}.racketlon-bracket__match .racketlon-bracket__match-number{padding:6px 8px 8px;border-top:1px solid var(--rkt-border);margin-top:0}.racketlon-bracket__match-cell-wrap{flex:1;min-height:0;display:flex;align-items:center}.racketlon-bracket__match{background:#fff;border:1px solid var(--rkt-border);border-radius:8px;overflow:hidden;box-shadow:0 1px 2px #0000000f;width:100%}.racketlon-bracket__match--tbd .racketlon-bracket__name-td{color:var(--rkt-muted)}.racketlon-bracket__scores-table{width:100%;border-collapse:collapse;font-size:13px}.racketlon-bracket__name-th{width:1%;white-space:nowrap;padding:0;border:0}.racketlon-bracket__name-td{padding:8px 10px;font-weight:600;text-align:left;line-height:1.25;border:1px solid var(--rkt-border);background:#fff}.racketlon-bracket__name-td--win{background:var(--rkt-win-bg);color:var(--rkt-win)}.racketlon-bracket__name-td--loss{background:var(--rkt-loss-bg);color:var(--rkt-loss)}.racketlon-bracket__score-th{padding:4px 6px;font-weight:700;font-size:11px;color:var(--rkt-muted);text-transform:uppercase;letter-spacing:.04em;text-align:center;border:1px solid var(--rkt-border);background:#f8fafc}.racketlon-bracket__score-td{padding:6px 8px;font-weight:600;text-align:center;border:1px solid var(--rkt-border);background:#fff}.racketlon-bracket__match--tbd .racketlon-bracket__score-td{color:var(--rkt-muted)}.racketlon-bracket__match--clickable{cursor:pointer}.racketlon-bracket__match--clickable:hover{box-shadow:0 2px 8px #0000001a}.racketlon-bracket__match--non-joue{border-style:dashed;background:#f8fafc;display:flex;align-items:center;justify-content:center;min-height:60px}.racketlon-bracket__non-joue-label{font-size:13px;font-style:italic;color:var(--rkt-muted);text-align:center;padding:12px}.participant--clickable{cursor:pointer}.participant--clickable:hover{text-decoration:underline;opacity:.85}.participant--swap-selected{background-color:var(--color-accent, #f59e0b)!important;color:#fff!important;font-weight:600}.score-edit-modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.score-edit-modal{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;max-width:420px;width:100%;max-height:90vh;overflow-y:auto}.score-edit-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e2e8f0}.score-edit-modal-header h2{margin:0;font-size:18px;font-weight:700}.score-edit-modal-close{background:none;border:none;font-size:24px;line-height:1;cursor:pointer;color:#64748b;padding:0 4px}.score-edit-modal-close:hover{color:#1e293b}.score-edit-modal-match{margin:0;padding:8px 20px;font-size:14px;color:#64748b;border-bottom:1px solid #f1f5f9}.score-edit-modal-error{margin:8px 20px;padding:8px 12px;background:#fef2f2;color:#b91c1c;border-radius:8px;font-size:14px}.score-edit-modal-loading{padding:24px 20px;text-align:center;color:#64748b}.score-edit-modal-form{padding:16px 20px 20px}.score-edit-modal-table{width:100%;border-collapse:collapse;margin-bottom:16px}.score-edit-modal-table th,.score-edit-modal-table td{padding:8px 10px;text-align:left;border-bottom:1px solid #e2e8f0}.score-edit-modal-table th{font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.score-edit-modal-table input{width:64px;padding:6px 8px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px}.score-edit-modal-table input:focus{outline:none;border-color:#3b82f6}.score-edit-modal-summary{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 12px;background:#f8fafc;border-radius:8px;margin-bottom:12px;font-size:14px;font-weight:500}.score-name{flex:1;min-width:0;word-break:break-word}.score-name--left{text-align:left}.score-name--right{text-align:right}.score-tally{font-size:18px;font-weight:700;color:#1e293b;min-width:48px;text-align:center;white-space:nowrap;flex-shrink:0}.score-winner{color:var(--color-brand);font-weight:700}.score-draw{font-size:12px;color:#64748b}.score-edit-modal-warning{margin:0 0 10px;padding:6px 10px;background:#fff7ed;color:#c2410c;border-radius:6px;font-size:13px}.score-edit-modal-actions{display:flex;gap:10px;justify-content:flex-end}.score-edit-modal-wo-row td{padding-top:10px;border-top:2px solid #e2e8f0;border-bottom:none;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.score-edit-modal-wo-row input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#f59e0b}.score-edit-modal-table input:disabled{background:#f1f5f9;color:#94a3b8;cursor:not-allowed}.bracket-detail-page{width:100%;display:flex;justify-content:center}.bracket-detail-card{background:#fff;padding:28px;border-radius:12px;max-width:900px;width:100%;box-shadow:0 8px 30px #00000014}.bracket-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:10px}.bracket-detail-title-row{display:flex;align-items:flex-start;gap:10px}.bracket-lock-btn{flex-shrink:0;width:40px;height:40px;border:1px solid #ddd;border-radius:8px;background:#f8f9fa;font-size:20px;cursor:pointer;padding:0;line-height:1}.bracket-lock-btn:hover{background:#e9ecef}.bracket-lock-btn:focus-visible{outline:2px solid #4f46e5;outline-offset:2px}.bracket-tabs{display:flex;gap:4px;margin-top:16px;margin-bottom:16px;border-bottom:1px solid #e5e7eb}.bracket-tab{padding:10px 16px;border:none;background:transparent;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.bracket-tab:hover{color:#111}.bracket-tab.active{color:#2563eb;border-bottom-color:#2563eb}.bracket-draw{margin-top:8px}.bracket-viewer-container{min-height:300px;margin-top:8px}.bracket-viewer-container.brackets-viewer{padding:0}.bracket-draw__racketlon{margin-top:8px}.bracket-draw__classification{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-color, #e5e7eb)}.bracket-draw__classification-title{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:var(--text-secondary, #6b7280)}.bracket-draw__racketlon--classification{margin-top:.5rem}.bracket-pyramid{display:flex;flex-direction:row;align-items:stretch;gap:0;min-height:200px}.bracket-pyramid-round{display:flex;flex-direction:column;gap:0;flex-shrink:0}.bracket-pyramid-round-label{font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px;padding-left:8px}.bracket-pyramid-matches{display:flex;flex-direction:column;gap:0;position:relative}.bracket-pyramid-match{display:flex;flex-direction:row;align-items:stretch;min-height:56px}.bracket-pyramid-branch{display:flex;flex-direction:column;align-items:stretch;border-left:2px solid #374151;border-bottom:1px solid #e5e7eb;min-width:180px;background:#fafafa;position:relative}.bracket-pyramid-branch:before{content:"";position:absolute;left:-2px;top:50%;width:12px;height:0;border-bottom:1px solid #374151}.bracket-pyramid-slot{flex:1;display:flex;align-items:center;padding:6px 10px 6px 14px;font-weight:500;font-size:14px;min-height:26px;border-bottom:1px solid #e5e7eb}.bracket-pyramid-slot:last-child{border-bottom:none}.bracket-pyramid-connector{display:none}.bracket-pyramid-merge{width:24px;min-width:24px;align-self:stretch;position:relative;flex-shrink:0}.bracket-pyramid-merge:before{content:"";position:absolute;left:0;top:25%;bottom:25%;width:0;border-left:2px solid #9ca3af}.bracket-draw-round{margin-bottom:24px}.bracket-draw-round-title{font-size:14px;font-weight:600;color:#6b7280;margin:0 0 10px;text-transform:uppercase;letter-spacing:.05em}.bracket-draw-matches{display:flex;flex-direction:column;gap:8px}.bracket-draw-match{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border:1px solid #e5e7eb;border-radius:8px;background:#fafafa}.bracket-draw-player{font-weight:500;min-width:80px}.bracket-draw-vs{color:#9ca3af;font-size:12px;font-weight:600}.bracket-draw-winner{margin-left:auto;font-size:12px;color:#059669;font-weight:600}.bracket-details-tab{margin-top:8px}.bracket-details-dl{display:grid;grid-template-columns:auto 1fr;gap:8px 24px;max-width:400px;margin:0 0 16px}.bracket-details-dl dt{font-weight:600;color:#6b7280;margin:0}.bracket-details-dl dd{margin:0}.bracket-name-display{display:inline-flex;align-items:center;gap:6px}.bracket-rename-btn{width:22px;height:22px;border:none;background:transparent;color:#94a3b8;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;border-radius:4px;transition:color .15s,background .15s;flex-shrink:0}.bracket-rename-btn:hover{color:#4f46e5;background:#eef2ff}.bracket-rename-btn:focus-visible{outline:2px solid #4f46e5;outline-offset:2px}.bracket-rename-form{display:inline-flex;align-items:center;gap:4px}.bracket-rename-input{padding:3px 8px;border:1.5px solid #4f46e5;border-radius:6px;font-size:14px;outline:none;width:200px}.bracket-rename-save,.bracket-rename-cancel{flex-shrink:0;width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;border:1.5px solid;transition:background .12s,color .12s}.bracket-rename-save{background:#f0fdf4;color:#16a34a;border-color:#16a34a}.bracket-rename-save:hover{background:#16a34a;color:#fff}.bracket-rename-cancel{background:#fef2f2;color:#dc2626;border-color:#fca5a5}.bracket-rename-cancel:hover{background:#dc2626;color:#fff;border-color:#b91c1c}.bracket-detail-page .form-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.bracket-detail-page .form-group{display:flex;flex-direction:column;gap:4px;min-width:180px}.bracket-detail-page .form-group input,.bracket-detail-page .form-group select{padding:8px;border-radius:6px;border:1px solid #ddd}.bracket-detail-page .checkbox-inline{display:inline-flex;gap:6px;align-items:center}.bracket-detail-page .bracket-edit-form{margin-top:8px}.section{margin-top:18px}.section input{width:100%;padding:8px;border-radius:6px;border:1px solid #ddd;margin-bottom:10px}.participant-picker-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}.participant-picker-filters input{flex:1;min-width:180px;padding:8px;border-radius:6px;border:1px solid #ddd}.participant-picker-filters select{padding:8px;border-radius:6px;border:1px solid #ddd}.bracket-pair-creator{border:1px solid #e0e7ff;border-radius:8px;background:#f8fafc;padding:12px;margin-bottom:14px}.bracket-pair-creator h4{margin:0 0 10px}.bracket-pair-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:10px}.bracket-pair-slot{display:flex;flex-direction:column;gap:6px;min-width:0}.selected-partner{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #c7d2fe;border-radius:8px;background:#eef2ff;padding:8px 10px}.clear-partner-btn{border:none;background:transparent;color:#4338ca;cursor:pointer;font-size:18px;line-height:1}.pair-user-results{display:flex;flex-direction:column;gap:4px;max-height:150px;overflow:auto}.pair-user-result{width:100%;border:1px solid #ececf4;border-radius:6px;background:#fff;padding:7px 8px;color:inherit;cursor:pointer;text-align:left}.pair-user-result:hover{background:#eef2ff;border-color:#c7d2fe}.list{display:flex;flex-direction:column;gap:8px}.row{border:1px solid #ececf4;border-radius:8px;padding:10px 12px}.row-between{display:flex;justify-content:space-between;align-items:center}@media (max-width: 720px){.bracket-pair-grid{grid-template-columns:1fr}}.meta.match-scores{margin-top:4px;color:#166534;font-weight:500}.match-list-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:4px}.match-list-number{font-weight:700;color:#374151}.match-list-badge{font-size:11px;font-weight:600;color:#6b7280;background:#f3f4f6;padding:2px 6px;border-radius:4px}.match-list-badge--pending{color:#0369a1;background:#e0f2fe}.matches-subsection{margin-bottom:1.5rem}.matches-subsection:last-child{margin-bottom:0}.matches-subsection-title{margin:0 0 .5rem;font-size:14px;font-weight:600;color:#4b5563}.matches-category-title{margin:0 0 .35rem;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.02em}.add-btn{width:32px;height:32px;flex-shrink:0;border:1.5px solid #16a34a;border-radius:8px;background:#f0fdf4;color:#16a34a;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .1s,box-shadow .15s}.add-btn:hover{background:#16a34a;color:#fff;border-color:#15803d;box-shadow:0 2px 6px #16a34a40;transform:scale(1.07)}.add-btn:active{transform:scale(.95)}.add-btn:focus-visible{outline:2px solid #15803d;outline-offset:2px}.remove-btn{width:32px;height:32px;flex-shrink:0;border:1.5px solid #fca5a5;border-radius:8px;background:#fef2f2;color:#dc2626;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .1s,box-shadow .15s}.remove-btn:hover{background:#dc2626;color:#fff;border-color:#b91c1c;box-shadow:0 2px 6px #dc262640;transform:scale(1.07)}.remove-btn:active{transform:scale(.95)}.remove-btn:focus-visible{outline:2px solid #b91c1c;outline-offset:2px}.participant-stats-line{display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--color-text-muted);margin-top:2px}.participant-stats-line .muted{opacity:.5}.exp-badge{padding:1px 6px;border-radius:4px;background:var(--color-surface-inset, #f0f0f8);font-size:.72rem;color:var(--color-text-muted);font-weight:500}.bracket-pool-section{margin-bottom:16px}.bracket-pool-title{font-size:.85rem;font-weight:600;color:#6c5ce7;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid #ececf4}.seed-badge{display:inline-block;padding:2px 7px;border-radius:4px;background:#fef3c7;color:#92400e;font-size:.75rem;vertical-align:middle}.points-badge{display:inline-block;padding:2px 7px;border-radius:4px;background:#f0f0fa;color:#555;font-size:.75rem;vertical-align:middle}.bracket-rankings-tab .meta{margin-bottom:1rem;color:#6b7280;font-size:.9rem}.bracket-rankings-table{width:100%;border-collapse:collapse;font-size:14px}.bracket-rankings-table th,.bracket-rankings-table td{padding:10px 14px;text-align:left;border-bottom:1px solid #e5e7eb}.bracket-rankings-table th{font-weight:600;color:#374151;background:#f9fafb}.bracket-rankings-table tbody tr:hover{background:#f9fafb}.rankings-edit-hint{display:flex;align-items:center;gap:16px;margin-bottom:12px;font-size:13px;color:#64748b}.rankings-save-btn{margin-left:auto}.ranking-points-input{width:100%;box-sizing:border-box;padding:4px 6px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;text-align:right}.ranking-points-input:focus{outline:none;border-color:#3b82f6}.poule-standings-wrap{padding:8px 0}.poule-groups-row{display:flex;gap:32px;flex-wrap:wrap;margin-bottom:32px}.poule-standings{flex:1;min-width:220px}.poule-standings h3{font-size:1rem;font-weight:600;margin-bottom:10px;color:#374151}.poule-standings-table{width:100%;border-collapse:collapse;font-size:14px}.poule-standings-table th,.poule-standings-table td{padding:8px 12px;text-align:left;border-bottom:1px solid #e5e7eb}.poule-standings-table th{font-weight:600;color:#6b7280;background:#f9fafb;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.poule-standings-table td:first-child{color:#9ca3af;font-size:12px;width:28px}.poule-standings-table tbody tr:first-child td{font-weight:600}.poule-wins{color:#16a34a;font-weight:600}.poule-losses{color:#dc2626}.poule-diff{font-weight:600;color:#64748b}.poule-diff--pos{color:#16a34a}.poule-diff--neg{color:#dc2626}.poule-finals{border-top:2px solid #e5e7eb;padding-top:20px}.poule-finals h3{font-size:1rem;font-weight:600;margin-bottom:12px;color:#374151}.poule-final-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #f3f4f6;font-size:14px}.poule-final-label{font-weight:600;color:#6b7280;font-size:12px;min-width:70px}.poule-vs{color:#9ca3af;font-size:12px}.poule-winner{font-weight:700;color:#16a34a}.poule-loser{color:#9ca3af;text-decoration:line-through}.poule-result{color:#6b7280;font-size:12px;margin-left:auto}.rankings-actions-row{align-items:flex-start;gap:16px;margin-bottom:12px}.rankings-actions-row h3{margin:0 0 4px}.rankings-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.swap-banner{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#fef3c7;border:1px solid #f59e0b;border-radius:6px;margin-bottom:12px;font-size:14px;color:#92400e}.swap-banner__cancel{margin-left:auto;padding:4px 12px;font-size:13px;cursor:pointer;border:1px solid #f59e0b;border-radius:4px;background:#fff;color:#92400e}.swap-banner__cancel:hover{background:#fde68a}.poule-participant--clickable{cursor:pointer}.poule-participant--clickable:hover{text-decoration:underline;opacity:.85}.poule-participant--swap-selected{background-color:var(--color-accent, #f59e0b);color:#fff;font-weight:600;border-radius:3px;padding:1px 4px}.matches-page{width:100%;display:flex;justify-content:center}.matches-card{background:#fff;padding:28px;border-radius:12px;max-width:1000px;width:100%;box-shadow:0 8px 30px #00000014}.matches-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.matches-header h2{margin:0}.matches-title-group{display:flex;align-items:baseline;gap:12px}.matches-count{font-size:14px;color:#888;font-weight:400}.matches-header-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.matches-generate-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 640px){.matches-header{align-items:flex-start;flex-direction:column}.matches-header-actions{justify-content:flex-start}}.matches-list{display:flex;flex-direction:column;gap:12px}.match-item{display:flex;justify-content:space-between;align-items:center;border:1px solid #ececf4;border-radius:10px;padding:12px 16px;background:#fff}.match-item .meta{color:#666;font-size:13px}.match-edit-page{width:100%;display:flex;justify-content:center}.match-edit-card{background:#fff;padding:28px;border-radius:12px;max-width:800px;width:100%;box-shadow:0 8px 30px #00000014}.score-form{display:flex;flex-direction:column;gap:16px}.score-table{display:grid;gap:10px}.score-row{display:grid;grid-template-columns:1fr 120px 120px;gap:12px;align-items:center}.score-row.header{font-weight:600;color:#333}.score-row input{padding:8px;border:1px solid #ddd;border-radius:6px}.score-row input:disabled{background:#f1f5f9;color:#94a3b8;cursor:not-allowed}.score-row.wo-row{border-top:2px solid #e2e8f0;padding-top:8px;font-weight:600;font-size:13px;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.score-row.wo-row input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#f59e0b}@media (max-width: 600px){.score-row{grid-template-columns:1fr}}.registration-page{width:100%;display:flex;justify-content:center}.registration-card{background:#fff;padding:28px;border-radius:12px;max-width:700px;width:100%;box-shadow:0 8px 30px #00000014}.registration-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.registration-header h1{margin-top:0}.registration-header-actions{display:flex;justify-content:flex-end;flex-shrink:0}@media (max-width: 640px){.registration-header{flex-direction:column}.registration-header-actions{justify-content:flex-start}}.registration-form{display:flex;gap:12px;align-items:center;margin-bottom:16px}.registration-form select,.registration-form input{padding:8px;border-radius:6px;border:1px solid #ddd}.registration-list{margin-top:20px}.admin-user-picker{margin-top:16px}.admin-user-picker-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}.admin-user-picker-filters input{flex:1;min-width:200px;padding:8px;border-radius:6px;border:1px solid #ddd}.admin-user-picker-filters select{padding:8px;border-radius:6px;border:1px solid #ddd}.admin-user-picker input{width:100%;padding:8px;border-radius:6px;border:1px solid #ddd;margin-bottom:10px}.user-list{display:flex;flex-direction:column;gap:8px}.user-pagination{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.user-pagination .btn:disabled{opacity:.5;cursor:not-allowed}.user-item{display:flex;justify-content:space-between;align-items:center;border:1px solid #ececf4;border-radius:8px;padding:10px}.add-participant-btn{width:34px;height:34px;flex-shrink:0;border:1.5px solid #16a34a;border-radius:8px;background:#f0fdf4;color:#16a34a;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .1s,box-shadow .15s}.add-participant-btn:hover{background:#16a34a;color:#fff;border-color:#15803d;box-shadow:0 2px 6px #16a34a40;transform:scale(1.07)}.add-participant-btn:active{transform:scale(.95)}.add-participant-btn:focus-visible{outline:2px solid #15803d;outline-offset:2px}.registration-item{display:flex;justify-content:space-between;align-items:center;padding:10px;border:1px solid #ececf4;border-radius:8px;margin-bottom:8px}.remove-participant-btn{width:34px;height:34px;flex-shrink:0;border:1.5px solid #fca5a5;border-radius:8px;background:#fef2f2;color:#dc2626;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .1s,box-shadow .15s}.remove-participant-btn:hover{background:#dc2626;color:#fff;border-color:#b91c1c;box-shadow:0 2px 6px #dc262640;transform:scale(1.07)}.remove-participant-btn:active{transform:scale(.95)}.remove-participant-btn:focus-visible{outline:2px solid #b91c1c;outline-offset:2px}.event-type-tabs{display:flex;gap:6px;margin-bottom:16px}.event-type-tab{padding:6px 16px;border:1px solid #ddd;border-radius:6px;background:#f7f7fb;color:#333;cursor:pointer;font-size:.9rem;transition:background .15s,border-color .15s}.event-type-tab:hover{background:#ececf4;border-color:#c0c0d0}.event-type-tab.active{background:#4f46e5;border-color:#4f46e5;color:#fff;font-weight:600}.event-type-tab:focus-visible{outline:2px solid #4f46e5;outline-offset:2px}.reg-type-badge{display:inline-block;margin-left:8px;padding:2px 7px;border-radius:4px;background:#ececf4;color:#555;font-size:.75rem;vertical-align:middle}.registration-doubles-form{flex-direction:column;align-items:flex-start;gap:14px}.partner-search-section{width:100%;display:flex;flex-direction:column;gap:6px}.partner-search-section label,.admin-pair-slot label{font-weight:600;font-size:.9rem}.partner-search-section input{width:100%;padding:8px;border-radius:6px;border:1px solid #ddd}.partner-results{list-style:none;padding:0;margin:0;border:1px solid #ddd;border-radius:6px;overflow:hidden;max-height:200px;overflow-y:auto}.partner-result-btn{width:100%;padding:8px 12px;text-align:left;background:#fff;border:none;border-bottom:1px solid #ececf4;cursor:pointer;display:flex;gap:6px;align-items:baseline}.partner-result-btn:hover{background:#f7f7fb}.partner-results li:last-child .partner-result-btn{border-bottom:none}.selected-partner{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f0fdf4;border:1px solid #86efac;border-radius:6px}.clear-partner-btn{margin-left:auto;background:none;border:none;font-size:1.1rem;color:#666;cursor:pointer;padding:0 4px;line-height:1}.clear-partner-btn:hover{color:#dc2626}.admin-pair-picker{display:flex;flex-direction:column;gap:14px}.admin-pair-slot{display:flex;flex-direction:column;gap:6px}.admin-pair-slot input{width:100%;padding:8px;border-radius:6px;border:1px solid #ddd}@media (min-width: 600px){.admin-pair-picker>.admin-pair-slot{display:grid;grid-template-columns:1fr 1fr;gap:12px}}.participants-page{width:100%;display:flex;justify-content:center}.participants-card{background:#fff;padding:28px;border-radius:12px;max-width:900px;width:100%;box-shadow:0 8px 30px #00000014}.participants-group{margin-bottom:20px}.participants-group-title{font-size:.95rem;font-weight:600;color:#555;margin:0 0 8px;padding-bottom:4px;border-bottom:1px solid #ececf4}.participants-list{display:flex;flex-direction:column;gap:10px}.participant-item{display:flex;justify-content:space-between;align-items:center;border:1px solid #ececf4;border-radius:8px;padding:10px 12px}.participant-item--seeded{border-color:#d4b106;background:#fffbeb}.participant-info{display:flex;flex-direction:column;gap:2px}.participant-name{font-size:14px}.participant-name--bold{font-weight:700}.participant-badges{display:flex;gap:6px;margin-top:2px}.swap-section{margin-top:16px;display:flex;flex-direction:column;gap:6px}.swap-section input{padding:8px;border-radius:6px;border:1px solid #ddd}.seed-badge{display:inline-block;padding:2px 7px;border-radius:4px;background:#fef3c7;color:#92400e;font-size:.75rem}.points-badge{display:inline-block;padding:2px 7px;border-radius:4px;background:#f0f0fa;color:#555;font-size:.75rem}.intl-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.intl-modal-panel{background:var(--color-surface);border-radius:var(--radius-lg, 12px);border:1px solid var(--color-border);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.intl-modal-header{display:flex;align-items:center;justify-content:space-between}.intl-modal-header h2{margin:0;font-size:1.15rem;font-weight:700}.intl-modal-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--color-text-muted, #6b7280);padding:.25rem .5rem;border-radius:4px;line-height:1}.intl-modal-close:hover{background:var(--color-surface-hover, #f3f4f6)}.intl-modal-form{display:flex;flex-direction:column;gap:1rem}.intl-form-group{display:flex;flex-direction:column;gap:.35rem}.intl-form-group--grow{flex:1}.intl-form-group label{font-size:.82rem;font-weight:600;color:var(--color-text-muted, #6b7280);text-transform:uppercase;letter-spacing:.04em}.intl-form-row{display:flex;gap:.75rem;flex-wrap:wrap}.intl-input,.intl-select,.intl-textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);padding:.45rem .6rem;font-size:.9rem;background:var(--color-bg, #fff);color:var(--color-text);width:100%}.intl-input:focus,.intl-select:focus,.intl-textarea:focus{outline:2px solid var(--color-primary, #2563eb);outline-offset:1px}.intl-input--short{max-width:120px}.intl-textarea{resize:vertical}.intl-player-selector{gap:.5rem}.intl-player-search-row{display:flex;gap:.5rem}.intl-gender-select{max-width:110px}.intl-player-results{list-style:none;margin:0;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);max-height:200px;overflow-y:auto}.intl-player-result-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem .75rem;background:none;border:none;cursor:pointer;font-size:.88rem;text-align:left;gap:.5rem}.intl-player-result-btn:hover{background:var(--color-surface-hover, #f3f4f6)}.intl-player-name{font-weight:500}.intl-player-pts{color:var(--color-text-muted, #6b7280);font-size:.82rem;white-space:nowrap}.intl-selected-player{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--color-primary-subtle, #eff6ff);border-radius:var(--radius-sm, 6px);font-weight:600;font-size:.9rem}.intl-clear-player{background:none;border:none;cursor:pointer;color:var(--color-text-muted, #6b7280);font-size:.85rem;padding:0;line-height:1}.intl-fixed-player{margin:0;font-weight:600;font-size:.95rem}.intl-search-hint{margin:0;font-size:.82rem;color:var(--color-text-muted, #6b7280)}.intl-error{margin:0;color:var(--color-danger, #dc2626);font-size:.88rem;background:var(--color-danger-subtle, #fef2f2);border-radius:var(--radius-sm, 6px);padding:.5rem .75rem}.intl-modal-actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}.intl-btn{padding:.5rem 1.1rem;border-radius:var(--radius-sm, 6px);font-size:.9rem;font-weight:600;border:none;cursor:pointer;transition:opacity .15s}.intl-btn:disabled{opacity:.6;cursor:not-allowed}.intl-btn--primary{background:var(--color-primary, #2563eb);color:#fff}.intl-btn--primary:hover:not(:disabled){opacity:.88}.intl-btn--secondary{background:var(--color-surface-hover, #f3f4f6);color:var(--color-text);border:1px solid var(--color-border)}.intl-btn--secondary:hover:not(:disabled){background:var(--color-border)}.intl-btn--danger{background:var(--color-danger, #dc2626);color:#fff;margin-right:auto}.intl-btn--danger:hover:not(:disabled){opacity:.88}.rankings-page{width:100%;display:flex;justify-content:center}.rankings-card{background:#fff;padding:28px;border-radius:12px;max-width:900px;width:100%;box-shadow:0 8px 30px #00000014}.rankings-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:20px;flex-wrap:wrap}.rankings-header h1{margin:0}.rankings-intl-btn{padding:.35rem .9rem;border-radius:999px;background:var(--color-primary-subtle, #eff6ff);color:var(--color-primary, #2563eb);border:1px solid var(--color-primary, #2563eb);font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.rankings-intl-btn:hover{background:var(--color-primary, #2563eb);color:#fff}.rankings-card h1{margin:0 0 20px}.rankings-gender-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:2px solid #ececf4;padding-bottom:0}.rankings-tab{padding:10px 24px;border:none;background:none;cursor:pointer;font-size:15px;font-weight:600;color:var(--color-text-muted, #888);border-bottom:2px solid transparent;margin-bottom:-2px;border-radius:6px 6px 0 0;transition:color .15s,border-color .15s}.rankings-tab:hover{color:var(--color-brand, #4f46e5)}.rankings-tab--active{color:var(--color-brand, #4f46e5);border-bottom-color:var(--color-brand, #4f46e5)}.rankings-age-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}.rankings-age-tab{padding:6px 14px;border:1px solid #ddd;background:#f7f7fb;border-radius:20px;cursor:pointer;font-size:13px;font-weight:500;color:var(--color-text-muted, #888);transition:background .15s,color .15s,border-color .15s}.rankings-age-tab:hover{background:var(--color-brand-light, #ede9fe);color:var(--color-brand, #4f46e5);border-color:var(--color-brand, #4f46e5)}.rankings-age-tab--active{background:var(--color-brand, #4f46e5);color:#fff;border-color:var(--color-brand, #4f46e5)}.rankings-table{width:100%;border-collapse:collapse;font-size:14px}.rankings-table thead th{text-align:left;padding:8px 12px;font-weight:600;color:var(--color-text-muted, #888);border-bottom:2px solid #ececf4;font-size:13px}.rankings-table__rank{width:48px;text-align:center}.rankings-table__pts{width:80px;text-align:right}.rankings-table__row{cursor:pointer;transition:background .1s}.rankings-table__row:hover{background:#f7f7fb}.rankings-table__row--selected{background:var(--color-brand-light, #ede9fe)}.rankings-table__row td{padding:10px 12px;border-bottom:1px solid #f0f0f8}.rankings-table__row:last-child td{border-bottom:none}.rankings-table__row td.rankings-table__rank{font-weight:700;color:var(--color-brand, #4f46e5);text-align:center}.rankings-table__row td.rankings-table__pts{font-weight:600;text-align:right}.rankings-player-link{color:var(--color-text);text-decoration:none;font-weight:500}.rankings-player-link:hover{color:var(--color-brand);text-decoration:underline}.rankings-loading,.rankings-empty{padding:32px 0;text-align:center;color:var(--color-text-muted, #888);font-size:14px}.rankings-section{margin-top:24px;border-top:1px solid #ececf4;padding-top:16px}.rankings-history h3{margin:0 0 12px;font-size:15px}.history-list{margin-top:10px}.history-item{padding:6px 0;font-size:13px;color:var(--color-text-muted, #888);border-bottom:1px solid #f5f5f5}.history-search-empty{margin:8px 0 0;font-size:13px;color:var(--color-text-muted, #888)}.rankings-pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 0 4px}.rankings-pagination__btn{background:none;border:1px solid var(--color-border, #e0e0e0);border-radius:6px;padding:6px 14px;font-size:15px;cursor:pointer;color:var(--color-text, #222);transition:background .15s}.rankings-pagination__btn:hover:not(:disabled){background:var(--color-bg-subtle, #f5f5f5)}.rankings-pagination__btn:disabled{opacity:.35;cursor:default}.rankings-pagination__info{font-size:14px;color:var(--color-text-muted, #888);min-width:60px;text-align:center}.tournament-results-page{max-width:800px;margin:2rem auto;padding:0 1rem}.tournament-results-card{background:var(--color-surface);border-radius:var(--radius-lg, 12px);border:1px solid var(--color-border);padding:2rem;display:flex;flex-direction:column;gap:2rem}.tournament-results-header__top{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.25rem}.tournament-results-header__title{font-size:1.75rem;font-weight:700;margin:0;flex:1}.tournament-results-header__meta{color:var(--color-text-secondary, #6b7280);margin:0}.tournament-results-empty{color:var(--color-text-secondary, #6b7280);text-align:center;padding:2rem 0}.tournament-results-brackets{display:flex;flex-direction:column;gap:1.5rem}.results-bracket-card{border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:1.25rem}.results-bracket-card__header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.results-bracket-card__name{font-size:1.15rem;font-weight:600;margin:0}.results-bracket-card__event-badge{background:var(--color-primary, #2563eb);color:#fff;border-radius:999px;padding:.15rem .65rem;font-size:.8rem;font-weight:500}.results-bracket-card__in-progress{background:var(--color-warning, #f59e0b);color:#fff;border-radius:999px;padding:.15rem .65rem;font-size:.8rem;font-weight:500}.results-bracket-card__no-podium{color:var(--color-text-secondary, #6b7280);margin:0}.results-podium{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.results-podium__entry{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;border-radius:var(--radius-sm, 6px);background:var(--color-surface-alt, #f9fafb);border:1px solid var(--color-border)}.results-podium__entry--1{border-color:#f59e0b;background:#fffbeb}.results-podium__entry--2{border-color:#9ca3af;background:#f9fafb}.results-podium__entry--3{border-color:#b45309;background:#fef3c7}.results-podium__medal{font-size:1.4rem;flex-shrink:0}.results-podium__place{color:var(--color-text-secondary, #6b7280);font-size:.85rem;min-width:80px}.results-podium__name{font-weight:600;flex:1}.results-podium__points{color:var(--color-primary, #2563eb);font-size:.9rem;font-weight:500;white-space:nowrap}.calendar-page{max-width:900px;margin:2rem auto;padding:0 1rem}.calendar-card{background:var(--color-surface);border-radius:var(--radius-lg, 12px);border:1px solid var(--color-border);padding:2rem;display:flex;flex-direction:column;gap:1.75rem}.calendar-card__header h1{font-size:1.75rem;font-weight:700;margin:0}.calendar-filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.calendar-filters__group{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.calendar-filters__dates{gap:.75rem}.calendar-date-label{display:inline-flex;align-items:center;gap:.4rem;font-size:.875rem;color:var(--color-text-muted, #6b7280)}.calendar-date-input{border:1px solid var(--color-border-input);border-radius:6px;padding:4px 8px;font-size:.875rem;color:var(--color-text);background:#fff}.calendar-date-input:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.calendar-filter-btn{padding:.35rem .85rem;border-radius:999px;border:1px solid var(--color-border);background:transparent;cursor:pointer;font-size:.9rem;color:var(--color-text, #111827);transition:background .15s,border-color .15s}.calendar-filter-btn:hover{background:var(--color-surface-alt, #f3f4f6)}.calendar-filter-btn.active{background:var(--color-primary, #2563eb);border-color:var(--color-primary, #2563eb);color:#fff;font-weight:600}.calendar-empty{color:var(--color-text-secondary, #6b7280);text-align:center;padding:2rem 0}.calendar-month{display:flex;flex-direction:column;gap:1rem}.calendar-month__label{font-size:1.15rem;font-weight:700;text-transform:capitalize;border-bottom:2px solid var(--color-border);padding-bottom:.4rem;margin:0}.calendar-month__cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.calendar-tournament-card{border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:1rem;display:flex;flex-direction:column;gap:.6rem;background:var(--color-surface)}.calendar-tournament-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.calendar-tournament-card__name{font-size:1rem;font-weight:600;margin:0;flex:1}.calendar-tournament-card__badges{display:flex;flex-wrap:wrap;gap:.3rem;flex-shrink:0}.calendar-tournament-card__city{color:var(--color-text-secondary, #6b7280);margin:0;font-size:.9rem}.calendar-tournament-card__dates{margin:0;font-size:.9rem}.calendar-tournament-card__footer{display:flex;gap:.5rem;margin-top:auto}.badge{border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:600;display:inline-block}.badge--open{background:#dcfce7;color:#166534}.badge--event{background:var(--color-primary, #2563eb);color:#fff}.badge--event-s{background:#2563eb}.badge--event-d{background:#7c3aed}.badge--event-m{background:#db2777}.btn--sm{padding:.3rem .75rem;font-size:.85rem}.contact-container{display:flex;justify-content:center;align-items:flex-start;width:100%;min-height:100%;padding:40px 20px}.contact-card{background:#fff;border-radius:12px;padding:40px;width:100%;max-width:560px;box-shadow:0 10px 40px #0000001a}.contact-card h1{margin:0 0 8px;color:#333;font-size:28px;font-weight:600}.contact-card .subtitle{color:#666;margin:0 0 28px;font-size:15px}.form-group textarea{width:100%;padding:12px;border:1px solid #ddd;border-radius:6px;font-size:16px;font-family:inherit;resize:vertical;transition:border-color .2s;box-sizing:border-box}.form-group textarea:focus{outline:none;border-color:#4f46e5}.form-group select{width:100%;padding:12px;border:1px solid #ddd;border-radius:6px;font-size:16px;font-family:inherit;background:#fff;cursor:pointer;transition:border-color .2s;box-sizing:border-box}.form-group select:focus{outline:none;border-color:#4f46e5}.contact-success{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 0;text-align:center}.contact-success__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#4ade80;color:#fff;font-size:28px;font-weight:700}.contact-success h2{margin:0;color:#333;font-size:22px}.contact-success p{margin:0;color:#666}@media (prefers-color-scheme: dark){.contact-card{background:#1e1e2e;box-shadow:0 10px 40px #0006}.contact-card h1,.contact-success h2{color:#e2e8f0}.contact-card .subtitle,.contact-success p{color:#94a3b8}.form-group select{background:#2d2d3f;color:#e2e8f0;border-color:#444}}[data-theme=dark] .contact-card{background:#1e1e2e;box-shadow:0 10px 40px #0006}[data-theme=dark] .contact-card h1,[data-theme=dark] .contact-success h2{color:#e2e8f0}[data-theme=dark] .contact-card .subtitle,[data-theme=dark] .contact-success p{color:#94a3b8}[data-theme=dark] .form-group select{background:#2d2d3f;color:#e2e8f0;border-color:#444}.release-notes-container{max-width:760px;margin:0 auto;padding:40px 20px;width:100%}.release-notes-header{margin-bottom:36px}.release-notes-header h1{margin:0 0 8px;font-size:28px;font-weight:700;color:#1e293b}.release-notes-header .subtitle{margin:0;color:#64748b;font-size:15px}.release-notes-empty{color:#94a3b8;font-style:italic}.release-notes-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:24px}.release-note-card{background:#fff;border-radius:12px;padding:28px 32px;box-shadow:0 2px 12px #00000012;border-left:4px solid #4f46e5}.release-note-card__header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.release-note-card__version{background:#4f46e5;color:#fff;font-size:13px;font-weight:600;padding:3px 10px;border-radius:20px;letter-spacing:.02em}.release-note-card__date{color:#94a3b8;font-size:13px}.release-note-card__title{margin:0 0 14px;font-size:18px;font-weight:600;color:#1e293b}.release-note-card__description{margin:0;font-family:inherit;font-size:14px;line-height:1.7;color:#475569;white-space:pre-wrap;word-break:break-word}[data-theme=dark] .release-notes-header h1,[data-theme=dark] .release-note-card__title{color:#e2e8f0}[data-theme=dark] .release-notes-header .subtitle,[data-theme=dark] .release-note-card__date{color:#94a3b8}[data-theme=dark] .release-note-card{background:#1e1e2e;box-shadow:0 2px 12px #0000004d}[data-theme=dark] .release-note-card__description{color:#cbd5e1}.h2h-page{max-width:760px;margin:2rem auto;padding:0 1rem}.h2h-card{background:var(--color-surface);border-radius:var(--radius-lg, 12px);border:1px solid var(--color-border);padding:2rem;display:flex;flex-direction:column;gap:2rem}.h2h-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem}.h2h-player{display:flex;flex-direction:column;gap:.25rem;text-decoration:none;color:inherit}.h2h-player--left{align-items:flex-end;text-align:right}.h2h-player--right{align-items:flex-start;text-align:left}.h2h-player:hover .h2h-name{text-decoration:underline;color:var(--color-primary)}.h2h-name{font-size:1.1rem;font-weight:600}.h2h-pts{font-size:.85rem;color:var(--color-text-secondary, #666)}.h2h-scoreboard{display:flex;flex-direction:column;align-items:center;gap:.2rem}.h2h-score{font-size:2rem;font-weight:700;line-height:1}.h2h-score-sep{font-size:1.2rem;color:var(--color-text-secondary, #888)}.h2h-score--wins{color:var(--color-success, #22c55e)}.h2h-score--losses{color:var(--color-error, #ef4444)}.h2h-winrate{font-size:.8rem;color:var(--color-text-secondary, #888)}.h2h-no-matches{font-size:.9rem;color:var(--color-text-secondary, #888)}.h2h-section-title{font-size:1rem;font-weight:600;margin:0 0 .75rem;color:var(--color-text-secondary, #555);text-transform:uppercase;letter-spacing:.04em}.h2h-sport-table{width:100%;border-collapse:collapse;font-size:.9rem}.h2h-sport-table th,.h2h-sport-table td{padding:.5rem .75rem;border-bottom:1px solid var(--color-border)}.h2h-sport-table th{font-size:.8rem;color:var(--color-text-secondary, #888);font-weight:500}.h2h-sport-name{text-align:center;font-weight:500}.h2h-sport-score{font-weight:600;font-size:1rem}.h2h-sport-score--left{text-align:right;color:var(--color-success, #22c55e)}.h2h-sport-score--right{text-align:left;color:var(--color-error, #ef4444)}.h2h-match-table{width:100%;border-collapse:collapse;font-size:.88rem}.h2h-match-table th,.h2h-match-table td{padding:.5rem .75rem;border-bottom:1px solid var(--color-border);vertical-align:middle}.h2h-match-table th{font-size:.8rem;color:var(--color-text-secondary, #888);font-weight:500}.h2h-tournament-name{display:block;font-weight:500}.h2h-tournament-date{display:block;font-size:.78rem;color:var(--color-text-secondary, #888)}.h2h-match-score{font-family:monospace;font-size:.82rem}.h2h-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.78rem;font-weight:600}.h2h-badge--win{background:#dcfce7;color:#16a34a}.h2h-badge--loss{background:#fee2e2;color:#dc2626}.h2h-row--win td:first-child{border-left:3px solid var(--color-success, #22c55e)}.h2h-row--loss td:first-child{border-left:3px solid var(--color-error, #ef4444)}.h2h-empty,.h2h-error{color:var(--color-text-secondary, #888);font-size:.9rem}@media (max-width: 480px){.h2h-header{grid-template-columns:1fr auto 1fr;gap:.5rem}.h2h-name{font-size:.9rem}.h2h-score{font-size:1.5rem}.h2h-match-table th:nth-child(3),.h2h-match-table td:nth-child(3){display:none}}.schedule-page{width:100%;display:flex;justify-content:center;padding-bottom:40px}.schedule-card{background:#fff;padding:28px;border-radius:12px;max-width:1200px;width:100%;box-shadow:0 8px 30px #00000014}.schedule-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.schedule-header h1{margin:0}.schedule-tabs{display:flex;gap:4px;margin-bottom:24px;border-bottom:1px solid #e5e7eb}.schedule-tab{padding:10px 18px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}.schedule-tab:hover{color:#111}.schedule-tab.active{color:#2563eb;border-bottom-color:#2563eb;font-weight:600}.schedule-display-toolbar{display:flex;justify-content:flex-end;gap:8px;margin-bottom:16px}.schedule-section{margin-bottom:24px}.schedule-section h2,.schedule-section h3{font-size:1rem;font-weight:600;margin:0 0 10px;color:#333}.schedule-params{display:flex;gap:24px;flex-wrap:wrap}.schedule-param-group{display:flex;flex-direction:column;gap:4px}.schedule-param-group label{font-size:13px;color:#555;font-weight:500}.schedule-param-group select{padding:6px 10px;border:1px solid #ddd;border-radius:6px;font-size:14px}.schedule-day{border:1px solid #ececf4;border-radius:8px;padding:16px}.schedule-day-date-label{font-weight:400;color:#666;font-size:.9rem;text-transform:capitalize}.schedule-day-fields{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:4px}.schedule-field{display:flex;flex-direction:column;gap:4px}.schedule-field label{font-size:12px;color:#666;font-weight:500}.schedule-field input{padding:6px 10px;border:1px solid #ddd;border-radius:6px;font-size:14px;width:130px}.schedule-field input[type=number]{width:90px}.schedule-bracket-section{margin-top:14px}.schedule-brackets-label{font-size:13px;font-weight:500;color:#555;margin:0 0 8px}.schedule-bracket-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.schedule-bracket-item{display:flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid #ececf4;border-radius:6px;cursor:pointer;font-size:13px;transition:background .1s,border-color .1s}.schedule-bracket-item--selected{font-weight:600}.schedule-bracket-item--disabled{opacity:.45;cursor:not-allowed}.schedule-bracket-day-hint{font-size:11px;opacity:.7}.schedule-bracket-order{border:1px solid #ececf4;border-radius:8px;padding:10px 12px}.schedule-order-hint{margin:0 0 6px;font-size:12px;color:#888}.schedule-order-row{display:flex;align-items:center;gap:8px;padding:3px 0}.schedule-order-name{flex:1;font-size:13px}.btn-icon{background:none;border:1px solid #ddd;border-radius:4px;padding:2px 7px;cursor:pointer;font-size:13px;line-height:1.4}.btn-icon:disabled{opacity:.3;cursor:not-allowed}.schedule-actions{display:flex;gap:10px;flex-wrap:wrap}.schedule-grid-container{width:100%}.schedule-day-section{margin-bottom:32px}.schedule-day-date{font-size:1rem;font-weight:600;color:#444;margin:0 0 10px;padding-bottom:6px;border-bottom:2px solid #ececf4;text-transform:capitalize}.schedule-grid-scroll{overflow-x:auto}.schedule-grid{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #0000000a;table-layout:fixed}.schedule-grid thead th{background:#f7f7fb;padding:10px 8px;text-align:center;font-weight:600;color:#444;border-bottom:2px solid #c8c8d8;border-left:1px solid #c8c8d8;white-space:nowrap}.schedule-grid thead th:first-child{border-left:none}.schedule-th-time{width:80px;text-align:left!important;padding-left:12px!important}.schedule-td-time{padding:10px 12px;font-weight:600;font-size:13px;background:#f7f7fb;white-space:nowrap;border-bottom:1px solid #c8c8d8;border-right:2px solid #c8c8d8;vertical-align:middle}.schedule-cell{padding:10px 6px;vertical-align:middle;text-align:center;min-width:90px;height:52px;border-bottom:1px solid #c8c8d8;border-left:1px solid #c8c8d8}.schedule-cell-num{display:block;font-weight:700;font-size:15px;line-height:1.2}.schedule-cell-round{display:block;font-size:10px;opacity:.75;margin-top:2px;letter-spacing:.02em}.schedule-cell-empty{background:#fafafa;border-bottom:1px solid #c8c8d8;border-left:1px solid #c8c8d8;min-height:70px}.schedule-full-scroll{overflow-x:auto}.schedule-full-table{width:100%;border-collapse:collapse;font-size:13px}.schedule-full-table thead th{background:#f7f7fb;padding:10px 12px;text-align:left;font-weight:600;color:#444;border-bottom:2px solid #ececf4;white-space:nowrap}.schedule-full-table tbody td{padding:9px 12px;border-bottom:1px solid #f0f0f8;color:#333}.schedule-full-table tbody tr:last-child td{border-bottom:none}.schedule-full-table tbody tr:hover td{background:#fafafe}.schedule-full-num{text-align:center;font-weight:600}.schedule-full-cat{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500;white-space:nowrap}.schedule-empty{color:#999;text-align:center;padding:48px;font-size:15px}@media print{.no-print{display:none!important}.print-only{display:block!important}.schedule-page{padding:0}.schedule-card{box-shadow:none;border-radius:0;padding:12px}.schedule-grid,.schedule-grid thead th,.schedule-cell,.schedule-cell-empty,.schedule-td-time{font-size:10px;padding:4px 5px}.schedule-cell-num{font-size:11px}.schedule-cell-round{font-size:8px}}.print-only{display:none}.schedule-table-title{font-size:1.2rem;margin-bottom:16px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}.status{padding:12px;background:#f5f5f5;border-radius:8px;color:#444;margin:10px 0}.status.error{background:#fee;color:#c33}
