.landing-page{min-height:100vh}.hero-section{align-items:center;background:var(--off-white);border-bottom:var(--border);display:flex;padding:var(--spacing-2xl) 0}.hero-section .container{grid-gap:var(--space-7);align-items:center;display:grid;gap:var(--space-7);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media (max-width:900px){.hero-section .container{grid-template-columns:minmax(0,1fr)}}.hero-content{margin-bottom:0;max-width:560px}.hero-title{line-height:1.1;margin-bottom:var(--spacing-lg)}.hero-subtitle{color:var(--dark-gray);font-size:1.25rem;margin-bottom:var(--spacing-2xl)}.hero-buttons{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.hero-image{margin-top:0}.court-visual{background:var(--gradient-secondary);border-radius:0;box-shadow:none;height:400px;margin:0 auto;max-width:500px;overflow:hidden;position:relative;width:100%}.court-lines{border:3px solid var(--white);border-radius:0;inset:20px;position:absolute}.service-box{border:2px solid var(--white);border-bottom:none;bottom:0;height:30%;left:50%;position:absolute;transform:translateX(-50%);width:50%}.front-wall{background:var(--accent);height:3px;top:0}.front-wall,.tin{left:0;position:absolute;right:0}.tin{background:var(--danger);bottom:30%;height:2px}.elo-display{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.features-section{background:var(--white);padding:var(--spacing-3xl) 0}.section-header{margin-bottom:var(--spacing-3xl);text-align:center}.section-header h2{margin-bottom:var(--spacing-md)}.section-header p{font-size:1.125rem}.features-grid{grid-gap:var(--spacing-xl);display:grid;gap:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.feature-card{transition:all var(--transition-base)}.feature-card:hover{box-shadow:none;transform:translateY(-8px)}.feature-icon{background:var(--gradient-primary);border-radius:0;color:var(--white);display:flex;height:60px;margin:0 auto var(--spacing-lg);width:60px}.how-it-works-section{background:var(--light-gray);padding:var(--spacing-3xl) 0}.steps-container{grid-gap:var(--spacing-2xl);display:grid;gap:var(--spacing-2xl);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:var(--spacing-2xl)}.step{position:relative;text-align:center}.step-number{background:var(--gradient-accent);border-radius:0;box-shadow:none;color:var(--secondary);display:flex;font-size:1.5rem;font-weight:700;height:60px;margin:0 auto var(--spacing-lg);width:60px}.cta-section{background:var(--gradient-secondary);color:var(--white);padding:var(--spacing-3xl) 0}.cta-content{margin:0 auto;max-width:600px;text-align:center}.cta-content h2{color:var(--white);margin-bottom:var(--spacing-md)}.cta-content p{color:#ffffffe6;font-size:1.125rem;margin-bottom:var(--spacing-2xl)}@media (max-width:768px){.hero-buttons{justify-content:center}.court-visual{height:300px}}.landing-page .section-header{display:block;margin-bottom:var(--space-6);text-align:center}.landing-page .section-header h2{font-size:var(--text-xl);margin-bottom:var(--space-2);text-align:center}.landing-page .section-header p{color:var(--color-ink-subtle);margin:0}.cta-section{background:var(--color-brand);color:var(--color-brand-on);padding:var(--space-8) 0;text-align:center}.cta-section h2{color:var(--color-brand-on);margin-bottom:var(--space-2)}.cta-section p{color:#fffc;margin-bottom:var(--space-5)}.cta-section .btn{background:var(--color-brand-on);border-color:var(--color-brand-on);color:var(--color-brand)}.cta-section .btn:hover{background:var(--color-surface-sunken);border-color:var(--color-surface-sunken);color:var(--color-brand)}.feature-card{background:var(--color-surface);border:var(--border);padding:var(--space-5);text-align:center}.feature-icon{align-items:center;background:var(--color-brand);color:var(--color-brand-on);display:inline-flex;height:40px;justify-content:center;margin:0 auto var(--space-3);width:40px}.feature-card h3{margin-bottom:var(--space-2)}.feature-card p{color:var(--color-ink-muted);font-size:var(--text-sm)}.step-number{align-items:center;background:var(--color-surface);border:var(--border-strong);color:var(--color-brand);display:inline-flex;font-family:var(--font-mono);font-weight:var(--weight-semi);height:32px;justify-content:center;margin-bottom:var(--space-3);width:32px}.auth-container-large{max-width:550px}.auth-header h2{margin-bottom:var(--spacing-sm)}.form-row{grid-gap:var(--spacing-md);gap:var(--spacing-md);grid-template-columns:1fr 1fr}.auth-divider:before,@media(max-width: 600px){.form-row{grid-template-columns:1fr}}.dashboard{background:var(--color-page);background:var(--off-white,var(--color-page));min-height:calc(100vh - 80px);padding:3rem 0;padding:var(--spacing-2xl,3rem) 0}.dashboard-loading{align-items:center;display:flex;justify-content:center;min-height:50vh}.dashboard-header{margin-bottom:3rem;margin-bottom:var(--spacing-2xl,3rem)}.dashboard-header h1{margin-bottom:.5rem;margin-bottom:var(--spacing-sm,.5rem)}.stats-grid{grid-gap:1.5rem;grid-gap:var(--spacing-lg,1.5rem);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:3rem;margin-bottom:var(--spacing-2xl,3rem)}.stat-card,.stats-grid{gap:1.5rem;gap:var(--spacing-lg,1.5rem)}.stat-card{padding:1.5rem;padding:var(--spacing-lg,1.5rem)}.stat-icon{background:var(--color-brand);background:var(--gradient-primary,var(--color-brand));color:#fff;color:var(--white,#fff);flex-shrink:0}.stat-content h3{color:var(--color-ink-subtle);color:var(--gray,var(--color-ink-subtle));font-size:.875rem;letter-spacing:.05em;margin-bottom:.5rem;margin-bottom:var(--spacing-sm,.5rem);text-transform:uppercase}.stat-value{align-items:baseline;display:flex;gap:.5rem;gap:var(--spacing-sm,.5rem)}.stat-number{font-size:2rem}.stat-subtitle{color:var(--color-ink-subtle);color:var(--gray,var(--color-ink-subtle));font-size:.875rem}.dashboard-content{grid-gap:2rem;grid-gap:var(--spacing-xl,2rem);display:grid;gap:2rem;gap:var(--spacing-xl,2rem);grid-template-columns:2fr 1fr;margin-bottom:3rem;margin-bottom:var(--spacing-2xl,3rem)}.content-section{background:#fff;background:var(--white,#fff);border-radius:0;box-shadow:none;padding:2rem;padding:var(--spacing-xl,2rem)}.section-header{margin-bottom:1.5rem;margin-bottom:var(--spacing-lg,1.5rem)}.section-header h2{align-items:center;display:flex;font-size:1.5rem;gap:.5rem;gap:var(--spacing-sm,.5rem)}.tournaments-list{display:flex;flex-direction:column;gap:1rem;gap:var(--spacing-md,1rem)}.tournaments-list .tournament-card{align-items:center;background:var(--color-surface-sunken);background:var(--light-gray,var(--color-surface-sunken));border-radius:0;cursor:default;display:flex;height:auto;justify-content:space-between;max-height:none;min-height:0;min-height:auto;overflow:visible;padding:1rem;padding:var(--spacing-md,1rem);transition:all .3s ease;transition:all var(--transition-base,.3s ease)}.tournaments-list .tournament-card:hover{background:var(--color-border);box-shadow:none;transform:none}.tournament-info h4{color:var(--color-brand);color:var(--secondary,var(--color-brand));font-size:1.125rem;margin:0 0 .5rem;margin:0 0 var(--spacing-sm,.5rem) 0}.tournament-details{color:var(--color-ink-subtle);color:var(--gray,var(--color-ink-subtle));display:flex;font-size:.875rem;gap:1.5rem;gap:var(--spacing-lg,1.5rem)}.tournament-date,.tournament-players{align-items:center;display:flex;gap:.25rem;gap:var(--spacing-xs,.25rem)}.tournament-actions{flex-shrink:0}.leaderboard{display:flex;flex-direction:column;gap:.5rem;gap:var(--spacing-sm,.5rem)}.leaderboard-item{align-items:center;border-bottom:1px solid var(--light-gray,var(--color-border));display:flex;gap:1rem;gap:var(--spacing-md,1rem);padding:.5rem 0;padding:var(--spacing-sm,.5rem) 0}.leaderboard-item:last-child{border-bottom:none}.leaderboard-rank{flex-shrink:0;width:40px}.rank-badge{align-items:center;border-radius:50%;display:flex;font-size:.875rem;font-weight:700;height:32px;justify-content:center;width:32px}.rank-badge.rank-1{background:var(--color-caution);color:#fff;color:var(--white,#fff)}.rank-badge.rank-2{background:var(--color-ink-subtle);color:#fff;color:var(--white,#fff)}.rank-badge.rank-3{background:var(--color-ink-muted);color:#fff;color:var(--white,#fff)}.rank-number{font-weight:600}.leaderboard-player{flex:1 1}.player-name{display:block}.player-stats{color:var(--color-ink-subtle);color:var(--gray,var(--color-ink-subtle));display:block;font-size:.75rem;margin-top:.125rem}.leaderboard-elo{color:var(--color-brand);color:var(--primary,var(--color-brand));flex-shrink:0;font-size:1.125rem;font-weight:700}.empty-state{padding:3rem;padding:var(--spacing-2xl,3rem)}@media (max-width:968px){.dashboard-content{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media (max-width:600px){.stats-grid{grid-template-columns:1fr}.tournament-card{align-items:flex-start;flex-direction:column;gap:1rem;gap:var(--spacing-md,1rem)}.tournament-actions{width:100%}.tournament-actions .btn{justify-content:center;width:100%}}.owner-dashboard{background:var(--off-white)}.dashboard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-2xl)}.header-content h1{margin-bottom:var(--spacing-sm)}.tournaments-section{margin-top:var(--spacing-2xl)}.section-header{margin-bottom:var(--spacing-xl)}.filter-tab:hover{border-color:var(--primary);color:var(--primary)}.filter-tab.active{background:var(--primary);border-color:var(--primary)}.tournaments-grid{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.tournament-management-card{display:flex;flex-direction:column}.tournament-header{align-items:center;border-bottom:1px solid var(--light-gray);display:flex;justify-content:space-between;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md)}.tournament-actions{gap:var(--spacing-sm)}.action-btn{align-items:center;background:#0000;border:1px solid var(--light-gray);border-radius:0;color:var(--dark-gray);cursor:pointer;display:flex;height:32px;justify-content:center;transition:all var(--transition-base);width:32px}.action-btn:hover{border-color:var(--primary);color:var(--primary)}.tournament-body{flex:1 1}.tournament-body h3,.tournament-meta{margin-bottom:var(--spacing-md)}.tournament-meta{display:flex;gap:var(--spacing-lg)}.meta-item{align-items:center;color:var(--gray);gap:var(--spacing-xs)}.meta-item,.tournament-format{display:flex;font-size:.875rem}.tournament-format{gap:var(--spacing-sm)}.format-label{color:var(--gray)}.format-value{color:var(--secondary);font-weight:600}.tournament-footer{border-top:1px solid var(--light-gray);display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-lg);padding-top:var(--spacing-md)}.quick-actions-section{margin-top:var(--spacing-3xl)}.quick-actions-section h2{margin-bottom:var(--spacing-lg)}.quick-actions-grid{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.quick-action-card{align-items:center;background:var(--white);border:2px solid var(--light-gray);border-radius:0;color:var(--secondary);cursor:pointer;display:flex;flex-direction:column;gap:var(--spacing-md);justify-content:center;padding:var(--spacing-xl);text-decoration:none;transition:all var(--transition-base)}.quick-action-card:hover{border-color:var(--primary);box-shadow:none;transform:translateY(-4px)}.quick-action-card span{font-weight:600}.empty-state{padding:var(--spacing-3xl)}.empty-state h3{margin:var(--spacing-lg) 0 var(--spacing-sm)}.empty-state p{margin-bottom:var(--spacing-xl)}@media (max-width:768px){.dashboard-header{gap:var(--spacing-lg)}.dashboard-header,.section-header{align-items:flex-start;flex-direction:column}.section-header{gap:var(--spacing-md)}.filter-tabs{overflow-x:auto;width:100%}.tournaments-grid{grid-template-columns:1fr}}.tournament-details{background:var(--off-white);min-height:calc(100vh - 70px);padding:var(--spacing-2xl) 0}.loading-container{align-items:center;display:flex;justify-content:center;min-height:50vh}.tournament-header-section{background:var(--white);border-radius:0;margin-bottom:var(--spacing-2xl);padding:var(--spacing-2xl)}.tournament-title{align-items:center;display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.tournament-title h1{margin:0}.tournament-info-grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:var(--spacing-xl)}.info-item{color:var(--dark-gray)}.match-progress{margin-bottom:var(--spacing-xl)}.progress-label{color:var(--gray);display:flex;font-size:.875rem;justify-content:space-between;margin-bottom:var(--spacing-sm)}.progress-bar{background:var(--light-gray);border-radius:0;height:8px;overflow:hidden}.progress-fill{background:var(--success);height:100%;transition:width .3s ease}.tournament-actions{margin-bottom:var(--spacing-lg)}.owner-actions,.tournament-actions{display:flex;gap:var(--spacing-md)}.btn-complete{color:var(--white)}.btn-complete:hover:not(:disabled){background:var(--color-brand-hover)}.btn-complete:disabled{cursor:not-allowed;opacity:.5}.spin{animation:spin 1s linear infinite}.completion-error{align-items:center;background:#f443361a;border:1px solid var(--color-negative);border-radius:0;color:var(--color-negative);gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.completion-error,.owner-info-banner{display:flex;padding:var(--spacing-md)}.owner-info-banner{align-items:flex-start;background:#2196f31a;border:1px solid var(--color-info);border-radius:0;color:#1976d2;gap:var(--spacing-md)}.owner-info-banner.warning{background:#ff98001a;border-color:var(--color-caution);color:#f57c00}.owner-info-banner.success{background:#4caf501a;border-color:var(--success);color:#388e3c}.owner-info-banner strong{display:block;margin-bottom:var(--spacing-xs)}.owner-info-banner p{font-size:.875rem;margin:0}.tournament-summary{background:var(--white);border-radius:0;margin-bottom:var(--spacing-2xl);padding:var(--spacing-2xl)}.summary-header{align-items:center;color:var(--primary);display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.summary-header h2{margin:0}.standings-podium{align-items:flex-end;display:flex;gap:var(--spacing-lg);justify-content:center;margin-bottom:var(--spacing-2xl);padding:var(--spacing-xl)}.podium-place{border-radius:0;min-width:120px;padding:var(--spacing-lg);text-align:center}.place-1{background:var(--color-caution);order:2;transform:scale(1.1)}.place-2{background:var(--color-ink-subtle);order:1}.place-3{background:var(--color-ink-muted);order:3}.podium-rank{font-size:2rem;margin-bottom:var(--spacing-sm)}.podium-name{color:var(--white);font-weight:700;margin-bottom:var(--spacing-xs)}.podium-stats{color:#ffffffe6;font-size:.875rem}.full-standings{margin-top:var(--spacing-xl)}.full-standings h3{margin-bottom:var(--spacing-md)}.standings-table{border-collapse:collapse;width:100%}.standings-table td,.standings-table th{border-bottom:1px solid var(--light-gray);padding:var(--spacing-md);text-align:left}.standings-table th{background:var(--light-gray);font-size:.875rem;font-weight:600;text-transform:uppercase}.standings-table tr.is-me{background:#4caf501a}.standings-table .rank-cell{color:var(--primary);font-weight:700}.standings-table .name-cell{font-weight:600}.standings-table .won-cell{color:var(--success);font-weight:600}.standings-table .lost-cell{color:var(--color-negative)}.standings-table .diff-cell.positive{color:var(--success);font-weight:600}.standings-table .diff-cell.negative{color:var(--color-negative)}.groups-section,.matches-section,.participants-section{margin-bottom:var(--spacing-2xl)}.groups-section h2,.participants-section h2{margin-bottom:var(--spacing-lg)}.format-info{align-items:center;color:var(--gray);display:flex;font-size:.875rem;gap:var(--spacing-xs)}.participants-grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.participant-card{align-items:center;background:var(--white);border-radius:0;box-shadow:none;display:flex;gap:var(--spacing-md);padding:var(--spacing-md)}.participant-card.is-me{background:#4caf500d;border:1px solid var(--success)}.participant-rank{color:var(--primary);font-size:1.25rem;font-weight:700}.participant-info{flex:1 1}.participant-name{align-items:center;display:flex;font-weight:600;gap:var(--spacing-sm)}.me-badge{background:var(--success);border-radius:0;color:#fff;font-size:.625rem;padding:2px 6px;text-transform:uppercase}.participant-elo{color:var(--gray);display:block;font-size:.875rem}.groups-grid{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.group-card{padding:var(--spacing-lg)}.group-card h3{color:var(--primary);margin-bottom:var(--spacing-md)}.group-players{display:flex;flex-direction:column;gap:var(--spacing-sm)}.group-player{grid-gap:var(--spacing-md);align-items:center;background:var(--light-gray);border-radius:0;display:grid;gap:var(--spacing-md);grid-template-columns:30px 1fr auto;padding:var(--spacing-sm)}.group-player.is-me{background:#4caf5026;border:1px solid var(--success)}.player-seed{color:var(--secondary);font-weight:700}.player-name{font-weight:500}.player-elo{color:var(--primary);font-weight:600}.group-matches{margin-bottom:var(--spacing-xl)}.group-matches-title{color:var(--primary);font-size:1.125rem;margin-bottom:var(--spacing-md)}.matches-table-container{background:var(--white);border-radius:0;box-shadow:none;overflow:hidden}.matches-table{border-collapse:collapse;width:100%}.matches-table thead{background:var(--secondary);color:var(--white)}.matches-table th{font-size:.875rem;font-weight:600;letter-spacing:.05em;padding:var(--spacing-md);text-align:left;text-transform:uppercase}.matches-table td{border-bottom:1px solid var(--light-gray);padding:var(--spacing-md);vertical-align:middle}.matches-table tbody tr:last-child td{border-bottom:none}.matches-table tbody tr:hover{background:var(--off-white)}.matches-table tbody tr.my-match{background:#4caf500d}.matches-table tbody tr.my-match:hover{background:#4caf501a}.matches-table tbody tr.completed{opacity:.8}.player-cell{gap:var(--spacing-xs)}.winner-cell{color:var(--success);font-weight:600}.winner-icon{color:var(--color-caution)}.score-cell{font-family:monospace;font-size:1rem;font-weight:600}.winner-name-cell{color:var(--secondary);font-weight:500}.completed-text{align-items:center;color:var(--success);display:flex;font-size:.875rem;gap:var(--spacing-xs)}.pending-text{color:var(--gray)}.table-legend{display:flex;gap:var(--spacing-lg);margin-top:var(--spacing-md);padding:var(--spacing-sm)}.legend-item{font-size:.75rem}.legend-color{height:16px;width:16px}.my-match-color{background:#4caf5033;border:1px solid var(--success)}.completed-color{background:var(--light-gray);border:1px solid var(--gray)}.no-matches-message,.tournament-not-started{background:var(--white);border-radius:0;color:var(--gray);padding:var(--spacing-2xl);text-align:center}.no-matches-message svg,.tournament-not-started svg{color:var(--gray);margin-bottom:var(--spacing-md)}.no-matches-message .hint,.tournament-not-started .hint{color:var(--primary);font-size:.875rem;margin-top:var(--spacing-sm)}.empty-state{padding:var(--spacing-xl)}.group-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:var(--spacing-md)}.group-title-stack h3{line-height:1.2;margin:0}.group-rules-text{font-size:.75rem}.text-muted{color:var(--gray)}.text-highlight{color:var(--primary);font-weight:600}.settings-wrapper{position:relative}.btn-icon{background:#0000;border:none;border-radius:0;color:var(--gray);padding:4px;transition:all .2s}.btn-icon.active,.btn-icon:hover{background:var(--light-gray);color:var(--primary)}.settings-popover{background:#fff;border:1px solid var(--light-gray);border-radius:0;box-shadow:none;margin-top:4px;padding:var(--spacing-sm) 0;position:absolute;right:0;top:100%;width:200px;z-index:100}.settings-popover h4{border-bottom:1px solid var(--light-gray);color:var(--gray);font-size:.75rem;margin:0 0 4px;padding:4px var(--spacing-md);text-transform:uppercase}.popover-options{display:flex;flex-direction:column}.popover-option{background:none;border:none;color:var(--dark-gray);cursor:pointer;font-size:.875rem;padding:8px var(--spacing-md);text-align:left;transition:background .2s}.popover-option:hover{background:var(--light-gray)}.popover-option.selected{background:#2196f31a;color:var(--primary);font-weight:600}.divider{background:var(--light-gray);height:1px;margin:4px 0}@media (max-width:968px){.matches-table-container{overflow-x:auto}.matches-table{min-width:700px}.standings-podium{align-items:center;flex-direction:column}.place-1{order:1;transform:scale(1)}.place-2{order:2}.place-3{order:3}}@media (max-width:768px){.groups-grid,.tournament-info-grid{grid-template-columns:1fr}.section-header{align-items:flex-start;gap:var(--spacing-sm)}.owner-actions,.section-header,.tournament-actions{flex-direction:column}.owner-actions,.owner-actions .btn{width:100%}}.pending-section{background:var(--white);border-radius:0;box-shadow:none;margin-bottom:var(--spacing-2xl);padding:var(--spacing-xl)}.pending-section h3{align-items:center;color:var(--secondary);display:flex;gap:var(--spacing-sm);margin:0 0 var(--spacing-lg) 0}.pending-item{align-items:center;background:#ff98000d;border-bottom:1px solid var(--light-gray);border-radius:0;display:flex;justify-content:space-between;margin-bottom:var(--spacing-sm);padding:var(--spacing-md);transition:all .2s}.pending-item:hover{background:#ff980014}.pending-item:last-child{margin-bottom:0}.pending-player-info{display:flex;flex-direction:column;gap:var(--spacing-xs)}.pending-player-name{color:var(--secondary);font-size:1rem;font-weight:600}.pending-player-elo{color:var(--gray);font-size:.875rem}.pending-actions{display:flex;gap:var(--spacing-sm)}.join-section{align-items:center;display:flex;gap:var(--spacing-md)}.password-input-wrapper input{border:1px solid var(--light-gray);border-radius:0;padding:8px 12px}.pending-status{align-items:center;background:#f59e0b1a;border-radius:0;color:#f59e0b;display:flex;font-weight:600;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)}.filters-section{flex-direction:column;gap:1rem;gap:var(--spacing-md,1rem);margin-bottom:1.5rem;margin-bottom:var(--spacing-lg,1.5rem);padding:1.5rem;padding:var(--spacing-lg,1.5rem)}.filter-tabs{gap:.5rem;gap:var(--spacing-sm,.5rem)}.filter-tab{border:1px solid #e0e0e0;border:1px solid var(--light-gray,#e0e0e0);color:#333;color:var(--dark-gray,#333);font-size:.9rem;padding:.5rem 1rem;padding:var(--spacing-sm,.5rem) var(--spacing-md,1rem);transition:all .3s ease;transition:all var(--transition-base,.3s ease)}.filter-tab:hover{background:var(--color-surface-sunken);background:var(--light-gray,var(--color-surface-sunken));border-color:var(--primary,var(--color-brand))}.filter-tab.active{background:var(--color-brand);background:var(--gradient-primary,var(--color-brand));color:#fff;color:var(--white,#fff)}.category-title{margin-bottom:1.5rem;margin-bottom:var(--spacing-lg,1.5rem)}.category-title h2{color:var(--color-brand);color:var(--secondary,var(--color-brand));font-size:1.75rem;font-weight:700;margin:0;text-align:center}.user-rank-card{background:var(--color-brand);background:var(--gradient-primary,var(--color-brand));color:#fff;color:var(--white,#fff);margin-bottom:2rem;margin-bottom:var(--spacing-xl,2rem)}.user-rank-content{align-items:center;display:flex;gap:1.5rem;gap:var(--spacing-lg,1.5rem);justify-content:space-between}.user-rank-info h3{font-size:1.25rem;margin:0 0 1rem;margin:0 0 var(--spacing-md,1rem) 0;opacity:.9}.user-rank-stats{display:flex;gap:2rem;gap:var(--spacing-xl,2rem)}.stat-item{align-items:center;display:flex;gap:.5rem;gap:var(--spacing-sm,.5rem)}.leaderboard-container{overflow:hidden;padding:0}.leaderboard-table{display:flex;flex-direction:column}.leaderboard-row{align-items:center;border-bottom:1px solid var(--light-gray,var(--color-border));display:grid;grid-template-columns:80px 1fr 120px 300px;padding:1.5rem 2rem;padding:var(--spacing-lg,1.5rem) var(--spacing-xl,2rem);position:relative;transition:all .3s ease;transition:all var(--transition-base,.3s ease)}.leaderboard-row:last-child{border-bottom:none}.leaderboard-row:hover{background:var(--color-surface-sunken);background:var(--light-gray,var(--color-surface-sunken))}.leaderboard-row.current-user{background:#3b82f61a;border-left:4px solid var(--primary,var(--color-brand))}.leaderboard-row.top-three{background:var(--color-surface-sunken)}.rank-cell{align-items:center;display:flex;justify-content:center}.rank-number{color:var(--color-ink-subtle);color:var(--gray,var(--color-ink-subtle));font-size:1.25rem;font-weight:700}.player-cell{align-items:center;display:flex;gap:1rem;gap:var(--spacing-md,1rem)}.player-info{gap:.25rem;gap:var(--spacing-xs,.25rem)}.player-name{color:var(--color-brand);color:var(--secondary,var(--color-brand));font-size:1rem}.player-tier{font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.elo-cell{justify-content:center}.elo-value{align-items:center;display:flex;flex-direction:column}.elo-number{color:var(--color-brand);color:var(--primary,var(--color-brand));font-size:1.5rem;font-weight:700}.elo-label{color:var(--color-ink-subtle);color:var(--gray,var(--color-ink-subtle));font-size:.75rem;text-transform:uppercase}.stats-cell{display:flex;gap:1.5rem;gap:var(--spacing-lg,1.5rem);justify-content:flex-end}.stat-group{align-items:center;display:flex;flex-direction:column;min-width:60px}.stat-label{color:var(--color-ink-subtle);color:var(--gray,var(--color-ink-subtle));font-size:.75rem;margin-bottom:.25rem;margin-bottom:var(--spacing-xs,.25rem)}.stat-number{color:var(--color-brand);color:var(--secondary,var(--color-brand));font-size:1.125rem;font-weight:700}.stat-number.win{color:var(--color-positive);color:var(--success,var(--color-positive))}.you-badge{background:var(--color-brand);background:var(--primary,var(--color-brand));color:#fff;color:var(--white,#fff);font-size:.75rem;padding:.25rem .5rem;padding:var(--spacing-xs,.25rem) var(--spacing-sm,.5rem);position:absolute;right:.5rem;right:var(--spacing-sm,.5rem);top:.5rem;top:var(--spacing-sm,.5rem)}.elo-master{color:#a855f7}.elo-expert{color:#ef4444}.elo-advanced{color:#f59e0b}.elo-intermediate{color:#3b82f6}.elo-beginner{color:#6b7280}.empty-state,.loading-state{gap:1rem;gap:var(--spacing-md,1rem);padding:3rem;padding:var(--spacing-xxl,3rem)}.empty-state{color:var(--gray,var(--color-ink-subtle))}.empty-state h3{color:var(--color-brand);color:var(--secondary,var(--color-brand));font-size:1.5rem;margin:0}.empty-state p{color:var(--color-ink-subtle);color:var(--gray,var(--color-ink-subtle));font-size:1rem;margin:0}@media (max-width:1024px){.leaderboard-row{grid-template-columns:60px 1fr 100px 200px;padding:1rem 1.5rem;padding:var(--spacing-md,1rem) var(--spacing-lg,1.5rem)}.stats-cell{gap:1rem;gap:var(--spacing-md,1rem)}}@media (max-width:768px){.leaderboard-row{grid-template-columns:50px 1fr 80px;padding:1rem;padding:var(--spacing-md,1rem)}.stats-cell{display:none}.user-rank-stats{flex-direction:column;gap:.5rem;gap:var(--spacing-sm,.5rem)}.user-rank-content{align-items:flex-start;flex-direction:column}.category-title h2{font-size:1.5rem}.filter-tabs{justify-content:center}}.performance-stats{border-top:1px solid var(--light-gray);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.perf-stat-grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:1fr 1fr}.perf-stat-item{align-items:center;background:var(--light-gray);border-radius:0;display:flex;gap:var(--spacing-md);padding:var(--spacing-md)}.perf-stat-content{display:flex;flex-direction:column}.perf-stat-value{color:var(--secondary);font-size:1.25rem;font-weight:700}.perf-stat-value.positive{color:var(--success)}.perf-stat-value.negative{color:var(--color-negative)}.perf-stat-label{color:var(--gray);font-size:.75rem;text-transform:uppercase}.stat-icon-positive{color:var(--success)}.stat-icon-negative{color:var(--color-negative)}.stat-icon-neutral{color:var(--primary)}.profile-page{background:var(--off-white);min-height:calc(100vh - 70px);padding:var(--spacing-2xl) 0}.profile-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-2xl)}.profile-header h1{margin:0}.stats-overview{background:var(--white);border-radius:0;margin-bottom:var(--spacing-xl);padding:var(--spacing-xl)}.main-stat{border-bottom:1px solid var(--light-gray);gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-xl)}.main-stat,.stat-icon-large{align-items:center;display:flex}.stat-icon-large{background:var(--gradient-primary);border-radius:0;color:var(--white);height:64px;justify-content:center;width:64px}.stat-content{gap:var(--spacing-xs)}.stat-label{letter-spacing:.05em;text-transform:uppercase}.stat-value-large{color:var(--secondary);font-size:3rem;font-weight:700;line-height:1}.elo-change-badge{align-items:center;border-radius:0;display:inline-flex;font-size:.875rem;font-weight:500;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm)}.elo-change-badge.positive{background:#4caf501a;color:var(--success)}.elo-change-badge.negative{background:#f443361a;color:var(--color-negative)}.stats-grid-small{display:flex;flex-wrap:wrap;gap:var(--spacing-lg)}.mini-stat{align-items:center;display:flex;gap:var(--spacing-md);min-width:150px}.mini-stat>svg{color:var(--primary)}.mini-stat>div{display:flex;flex-direction:column}.mini-stat-value{color:var(--secondary);font-size:1.5rem;font-weight:700}.mini-stat-value.won{color:var(--success)}.mini-stat-value.lost{color:var(--color-negative)}.mini-stat-label{color:var(--gray);font-size:.75rem;text-transform:uppercase}.profile-content{grid-gap:var(--spacing-xl);display:grid;gap:var(--spacing-xl);grid-template-columns:1fr 1fr;margin-bottom:var(--spacing-xl)}.profile-section{padding:var(--spacing-xl)}.profile-section h2{font-size:1.25rem;margin-bottom:var(--spacing-lg)}.profile-info{display:flex;flex-direction:column;gap:var(--spacing-lg)}.info-row{align-items:start;display:flex;gap:var(--spacing-md)}.info-row>svg{color:var(--primary);margin-top:2px}.info-row>div{display:flex;flex-direction:column;gap:var(--spacing-xs)}.info-label{color:var(--gray);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.info-value{color:var(--secondary);font-size:1rem;font-weight:600}.edit-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.edit-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-lg)}.win-loss-bar{border-radius:0;display:flex;height:40px;margin-bottom:var(--spacing-md);overflow:hidden}.win-portion{background:var(--success)}.loss-portion,.win-portion{align-items:center;color:#fff;display:flex;font-weight:600;justify-content:center;transition:width .3s ease}.loss-portion{background:var(--color-negative)}.win-loss-legend{display:flex;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.legend-item{align-items:center;color:var(--gray);display:flex;font-size:.875rem;gap:var(--spacing-xs)}.legend-color{border-radius:0;height:12px;width:12px}.legend-color.win{background:var(--success)}.legend-color.loss{background:var(--color-negative)}.empty-performance{color:var(--gray);padding:var(--spacing-xl);text-align:center}.empty-performance svg{margin-bottom:var(--spacing-md);opacity:.3}.empty-performance p{font-weight:600;margin-bottom:var(--spacing-xs)}.empty-performance span{font-size:.875rem}.matches-section,.tournaments-section{margin-bottom:var(--spacing-xl);padding:var(--spacing-xl)}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-lg)}.section-header h2{font-size:1.25rem;margin:0}.matches-list{gap:var(--spacing-sm)}.match-item{align-items:center;background:var(--light-gray);border-left:4px solid;border-radius:0;display:flex;gap:var(--spacing-md);padding:var(--spacing-md)}.match-item.won{border-left-color:var(--success)}.match-item.lost{border-left-color:var(--color-negative)}.match-result-badge{align-items:center;border-radius:0;display:flex;font-size:.875rem;font-weight:700;height:32px;justify-content:center;width:32px}.match-item.won .match-result-badge{background:var(--success);color:#fff}.match-item.lost .match-result-badge{background:var(--color-negative);color:#fff}.match-details{display:flex;flex:1 1;flex-direction:column;gap:2px}.opponent-name{color:var(--secondary);font-weight:600}.match-score{color:var(--gray);font-family:monospace;font-size:.875rem}.match-meta{align-items:flex-end;color:var(--gray);display:flex;flex-direction:column;font-size:.75rem;gap:2px}.tournament-history-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.tournament-history-item{align-items:center;background:var(--light-gray);border-radius:0;color:inherit;display:flex;justify-content:space-between;padding:var(--spacing-md);text-decoration:none;transition:all var(--transition-base)}.tournament-history-item:hover{background:var(--off-white);transform:translateX(4px)}.tournament-info{display:flex;flex-direction:column;gap:var(--spacing-xs)}.tournament-name{color:var(--secondary);font-weight:600}.tournament-date{align-items:center;color:var(--gray);display:flex;font-size:.875rem;gap:var(--spacing-xs)}.tournament-status{align-items:center;display:flex;gap:var(--spacing-sm)}.empty-state svg{margin-bottom:var(--spacing-md);opacity:.3}.empty-state p{margin-bottom:var(--spacing-lg)}.loading-state{padding:var(--spacing-xl)}@media (max-width:768px){.profile-header{align-items:flex-start;flex-direction:column;gap:var(--spacing-md)}.profile-content{grid-template-columns:1fr}.main-stat,.stats-grid-small{flex-direction:column}.main-stat{text-align:center}.stat-value-large{font-size:2.5rem}}@media (max-width:500px){.perf-stat-grid{grid-template-columns:1fr}}.join-tournament-page{align-items:center;background:var(--light-gray);display:flex;justify-content:center;min-height:100vh;padding:var(--spacing-xl)}.error-container,.loading-container{padding:var(--spacing-3xl);text-align:center}.error-container h2{margin-bottom:var(--spacing-md)}.error-container p{color:var(--gray);margin-bottom:var(--spacing-xl)}.join-card{max-width:600px;overflow:hidden;padding:0;width:100%}.tournament-banner{background:var(--gradient-primary);color:var(--white);padding:var(--spacing-2xl);text-align:center}.banner-icon{height:48px;margin:0 auto var(--spacing-md);width:48px}.tournament-banner h1{color:var(--white);font-size:2rem;margin:0}.tournament-details{padding:var(--spacing-2xl)}.tournament-details h2{color:var(--secondary);margin-bottom:var(--spacing-xl);text-align:center}.details-grid{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(2,1fr);margin-bottom:var(--spacing-xl)}.detail-item{align-items:start;display:flex;gap:var(--spacing-sm)}.detail-item>div{display:flex;flex-direction:column;gap:var(--spacing-xs)}.detail-label{color:var(--gray);font-size:.75rem;letter-spacing:.05em;text-transform:uppercase}.detail-value{color:var(--secondary);font-weight:600}.tournament-description{background:var(--light-gray);border-radius:0;margin-bottom:var(--spacing-xl);padding:var(--spacing-md)}.tournament-description p{margin:0}.join-actions{text-align:center}.join-prompt{color:var(--dark-gray);margin-bottom:var(--spacing-lg)}.auth-buttons{display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:center}.already-joined,.tournament-full{align-items:center;background:var(--light-gray);border-radius:0;display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg)}.already-joined{background:#4caf501a;color:var(--success)}.tournament-full{background:#ffa7261a;color:var(--warning)}.participants-preview{background:var(--light-gray);border-top:1px solid var(--light-gray);padding:var(--spacing-xl)}.participants-preview h3{color:var(--dark-gray);font-size:1rem;letter-spacing:.05em;margin-bottom:var(--spacing-md);text-transform:uppercase}.participants-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.participant-chip{align-items:center;background:var(--white);border:1px solid var(--light-gray);border-radius:0;display:inline-flex;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md)}.participant-name{color:var(--secondary);font-weight:500}.participant-elo{color:var(--primary);font-size:.75rem;font-weight:600}.more-participants{align-items:center;color:var(--gray);display:inline-flex;font-style:italic;padding:var(--spacing-xs) var(--spacing-md)}.no-participants{color:var(--gray);font-style:italic;text-align:center}@media (max-width:600px){.details-grid{grid-template-columns:1fr}.auth-buttons{flex-direction:column;width:100%}.auth-buttons .btn{width:100%}}.member-management{background:var(--off-white);min-height:calc(100vh - 70px);padding:var(--spacing-2xl) 0}.success-banner{align-items:center;border:1px solid var(--success);border-radius:0;display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl);padding:var(--spacing-md)}.stat-icon.active,.success-banner{background:#4caf501a;color:var(--success)}.stat-icon.disabled{background:#f443361a;color:var(--danger)}.stat-icon.owner{background:#ff6b351a;color:var(--primary)}.filters-section{padding:var(--spacing-lg)}.search-bar{align-items:center;background:var(--light-gray);border-radius:0;display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md)}.search-input{background:#0000;border:none;flex:1 1;font-size:1rem;outline:none}.filter-controls{display:flex;flex-wrap:wrap;gap:var(--spacing-lg)}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.filter-group label{color:var(--gray);font-size:.75rem;font-weight:600;text-transform:uppercase}.filter-select{background:var(--white);border:1px solid var(--light-gray);border-radius:0;cursor:pointer;min-width:150px;padding:var(--spacing-sm) var(--spacing-md)}.members-table-container{overflow-x:auto}.members-table{border-collapse:collapse;min-width:900px;width:100%}.members-table th{background:var(--light-gray);color:var(--gray);font-size:.75rem;font-weight:600;padding:var(--spacing-md);text-align:left;text-transform:uppercase}.members-table td{border-bottom:1px solid var(--light-gray);padding:var(--spacing-md);vertical-align:middle}.members-table tr:hover{background:var(--off-white)}.members-table tr.disabled-row{background:#f4433608;opacity:.6}.members-table tr.current-user-row{background:#4caf500d}.member-cell{min-width:250px}.member-info{align-items:center;display:flex;gap:var(--spacing-md)}.member-avatar{border-radius:0;height:40px;object-fit:cover;width:40px}.member-avatar-placeholder{align-items:center;background:var(--gradient-primary);border-radius:0;color:var(--white);display:flex;font-size:.875rem;font-weight:600;height:40px;justify-content:center;width:40px}.member-details{display:flex;flex-direction:column}.member-name{align-items:center;color:var(--secondary);display:flex;font-weight:600;gap:var(--spacing-xs)}.you-badge{background:var(--success);border-radius:0;color:var(--white);font-size:.625rem;font-weight:600;padding:2px 6px}.member-email{color:var(--gray);font-size:.875rem}.role-badge{align-items:center;border-radius:0;display:inline-flex;font-size:.75rem;font-weight:600;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);text-transform:capitalize}.role-player{background:#2196f31a;color:var(--color-info)}.role-owner{background:#ff6b351a;color:var(--primary)}.elo-cell{align-items:center;color:var(--primary);display:flex;font-weight:600;gap:var(--spacing-xs)}.date-cell{color:var(--gray);font-size:.875rem}.status-badge{display:inline-block}.status-active{background:#4caf501a;color:var(--success)}.status-disabled{background:#f443361a;color:var(--danger)}.actions-cell{width:120px}.action-buttons{display:flex;gap:var(--spacing-xs)}.results-count{color:var(--gray);font-size:.875rem;margin-top:var(--spacing-md);text-align:center}.empty-state{align-items:center;color:var(--gray);display:flex;flex-direction:column;justify-content:center;padding:var(--spacing-2xl)}.modal-overlay{align-items:center;background:#00000080;bottom:0;left:0;padding:var(--spacing-xl);right:0;top:0}.confirm-modal{background:var(--white);border-radius:0;max-width:450px;padding:var(--spacing-2xl);text-align:center;width:100%}.modal-icon{align-items:center;border-radius:0;display:flex;height:64px;justify-content:center;margin:0 auto var(--spacing-lg);width:64px}.modal-icon.disable{background:#ff98001a;color:var(--color-caution)}.modal-icon.enable{background:#4caf501a;color:var(--success)}.modal-icon.remove{background:#f443361a;color:var(--danger)}.confirm-modal h2{margin-bottom:var(--spacing-md)}.confirm-modal p{color:var(--gray);line-height:1.6;margin-bottom:var(--spacing-xl)}.modal-error{align-items:center;background:#f443361a;border-radius:0;color:var(--danger);gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md)}.modal-actions,.modal-error{display:flex;justify-content:center}.modal-actions{gap:var(--spacing-md)}.modal-actions .btn{min-width:140px}.loading-state{align-items:center;color:var(--gray);display:flex;flex-direction:column;gap:var(--spacing-md);justify-content:center;min-height:400px}@media (max-width:768px){.page-header{flex-direction:column;gap:var(--spacing-md)}.stats-grid{grid-template-columns:1fr}.filter-controls{flex-direction:column}.filter-group,.filter-select{width:100%}}.individual-matches{background:var(--off-white);min-height:calc(100vh - 70px);padding:var(--spacing-2xl) 0}.page-header{margin-bottom:var(--spacing-xl)}.page-header h1{align-items:center;display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-xs)}.stats-grid{grid-gap:var(--spacing-lg);display:grid;gap:var(--spacing-lg);grid-template-columns:repeat(4,1fr);margin-bottom:var(--spacing-xl)}.stat-card{background:var(--white);box-shadow:none;gap:var(--spacing-md);padding:var(--spacing-lg)}.stat-card,.stat-icon{align-items:center;border-radius:0;display:flex}.stat-icon{background:var(--light-gray);color:var(--gray);height:48px;justify-content:center;width:48px}.stat-icon.ranked{background:#ff6b351a;color:var(--primary)}.stat-icon.wins{background:#4caf501a;color:var(--success)}.stat-icon.winrate{background:#2196f31a;color:var(--color-info)}.stat-content{display:flex;flex-direction:column}.stat-value{color:var(--secondary);font-size:1.5rem;font-weight:700}.stat-label{color:var(--gray);font-size:.875rem}.filters-section{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:space-between;margin-bottom:var(--spacing-xl);padding:var(--spacing-md)}.filter-tabs{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.filter-tab{background:#0000;border:1px solid var(--light-gray);border-radius:0;color:var(--dark-gray);cursor:pointer;font-size:.875rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-md);transition:all var(--transition-base)}.filter-tab:hover{background:var(--light-gray)}.filter-tab.active{background:var(--gradient-primary);border-color:#0000;color:var(--white)}.mode-filter{align-items:center;color:var(--gray);display:flex;gap:var(--spacing-sm)}.mode-filter select{background:var(--white);border:1px solid var(--light-gray);border-radius:0;cursor:pointer;padding:var(--spacing-sm) var(--spacing-md)}.matches-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.match-card{cursor:pointer;overflow:hidden;position:relative;transition:all var(--transition-base)}.match-card:hover{box-shadow:none}.match-card.result-won{border-left:4px solid var(--success)}.match-card.result-lost{border-left:4px solid var(--danger)}.match-header{justify-content:space-between;margin-bottom:var(--spacing-md)}.match-header,.match-mode{align-items:center;display:flex}.match-mode{gap:var(--spacing-sm)}.mode-badge{font-size:.75rem}.match-type{color:var(--gray);font-size:.875rem}.status-badge{font-size:.75rem;padding:var(--spacing-xs) var(--spacing-sm)}.status-active{background:#2196f31a;color:var(--color-info)}.match-teams{align-items:center;display:flex;gap:var(--spacing-md);justify-content:space-between;padding:var(--spacing-md) 0}.team{background:var(--light-gray);border-radius:0;flex:1 1;padding:var(--spacing-md);position:relative}.team.user-team{background:#4caf501a;border:1px solid var(--success)}.team.winner{background:#ffd7001a;border:2px solid var(--color-caution)}.team-players{color:var(--secondary);display:block;font-weight:600}.you-indicator{background:var(--success);border-radius:0;color:var(--white);font-size:.625rem;font-weight:600;padding:2px 6px;position:absolute;right:var(--spacing-xs);top:var(--spacing-xs)}.vs-badge{font-size:.875rem;min-width:60px;padding:var(--spacing-sm) var(--spacing-md);text-align:center}.vs-badge .score{font-family:monospace}.match-footer{align-items:center;border-top:1px solid var(--light-gray);display:flex;justify-content:space-between;margin-top:var(--spacing-md);padding-top:var(--spacing-md)}.match-info{display:flex;flex-direction:column;gap:var(--spacing-xs)}.match-format{color:var(--primary);font-size:.875rem;font-weight:500}.match-date{align-items:center;color:var(--gray);font-size:.75rem}.match-date,.match-result{display:flex;gap:var(--spacing-xs)}.match-result{align-items:flex-end;flex-direction:column}.result-text{font-size:.875rem;font-weight:700}.match-result.won .result-text{color:var(--success)}.match-result.lost .result-text{color:var(--danger)}.chevron-icon{color:var(--gray);transition:transform var(--transition-base)}.match-card:hover .chevron-icon{transform:translateX(4px)}.empty-state,.loading-state{align-items:center;color:var(--gray);display:flex;flex-direction:column;justify-content:center;padding:var(--spacing-2xl);text-align:center}.empty-state h3{color:var(--secondary);margin:var(--spacing-md) 0 var(--spacing-xs)}.empty-state .btn{margin-top:var(--spacing-lg)}@media (max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.page-header{flex-direction:column;gap:var(--spacing-md)}.page-header .btn{width:100%}.stats-grid{grid-template-columns:1fr}.filters-section{align-items:stretch}.filters-section,.match-teams{flex-direction:column}.team{width:100%}.vs-badge{margin:var(--spacing-sm) 0}}.match-details{background:var(--off-white);min-height:calc(100vh - 70px);padding:var(--spacing-2xl) 0}.back-btn{align-items:center;background:none;border:none;color:var(--gray);cursor:pointer;display:inline-flex;font-size:.875rem;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.back-btn:hover{color:var(--primary)}.match-header{margin-bottom:var(--spacing-xl)}.header-top{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-md)}.match-badges{display:flex;gap:var(--spacing-sm)}.mode-badge{align-items:center;border-radius:0;display:inline-flex;font-size:.875rem;font-weight:600;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm)}.mode-badge.ranked{background:#ff6b351a;color:var(--primary)}.mode-badge.casual{background:#9e9e9e1a;color:var(--gray)}.type-badge{background:var(--light-gray);border-radius:0;color:var(--secondary);font-size:.875rem;padding:var(--spacing-xs) var(--spacing-sm)}.status-badge{align-items:center;border-radius:0;display:inline-flex;font-weight:600;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);text-transform:capitalize}.status-completed{background:#4caf501a;color:var(--success)}.status-pending{background:#ff98001a;color:var(--color-caution)}.status-cancelled{background:#f443361a;color:var(--danger)}.match-info-row{display:flex;flex-wrap:wrap;gap:var(--spacing-xl)}.info-item{align-items:center;color:var(--gray);display:flex;gap:var(--spacing-sm)}.teams-section{grid-gap:var(--spacing-lg);align-items:stretch;display:grid;gap:var(--spacing-lg);grid-template-columns:1fr auto 1fr;margin-bottom:var(--spacing-xl)}.team-card{background:var(--white);border-radius:0;box-shadow:none;overflow:hidden;padding:var(--spacing-xl);position:relative}.team-card.winner{background:var(--white);border:2px solid var(--color-caution)}.team-card.user-team{border:2px solid var(--success)}.winner-banner{align-items:center;background:var(--color-caution);color:var(--white);display:flex;font-size:.875rem;font-weight:700;gap:var(--spacing-xs);justify-content:center;left:0;padding:var(--spacing-xs) var(--spacing-md);position:absolute;right:0;top:0}.team-card.winner{padding-top:calc(var(--spacing-xl) + 30px)}.team-card h3{color:var(--secondary);margin-bottom:var(--spacing-md)}.team-players{display:flex;flex-direction:column;gap:var(--spacing-md)}.player-row{align-items:center;background:var(--light-gray);border-radius:0;display:flex;justify-content:space-between;padding:var(--spacing-md)}.player-info{display:flex;flex-direction:column}.player-name{align-items:center;display:flex;font-weight:600;gap:var(--spacing-xs)}.you-tag{background:var(--success);border-radius:0;color:var(--white);font-size:.625rem;font-weight:600;padding:2px 6px}.player-elo{color:var(--gray);font-size:.875rem}.vs-badge,.vs-container{align-items:center;display:flex;justify-content:center}.vs-badge{background:var(--secondary);border-radius:0;color:var(--white);font-size:1.25rem;font-weight:700;height:60px;width:60px}.scores-section{margin-bottom:var(--spacing-xl)}.scores-section h3{align-items:center;color:var(--primary);gap:var(--spacing-sm)}.scores-grid,.scores-section h3{display:flex;margin-bottom:var(--spacing-lg)}.scores-grid{flex-wrap:wrap;gap:var(--spacing-md)}.game-score{background:var(--light-gray);border-radius:0;flex:1 1;min-width:100px;padding:var(--spacing-md);text-align:center}.game-label{color:var(--gray);display:block;font-size:.75rem;margin-bottom:var(--spacing-xs)}.game-result{display:flex;font-size:1.5rem;font-weight:700;gap:var(--spacing-sm);justify-content:center}.winner-score{color:var(--success)}.score-separator{color:var(--gray)}.final-score{color:var(--secondary);font-size:1.125rem;text-align:center}.final-score strong{color:var(--primary);font-size:1.5rem}.score-entry-section{margin-bottom:var(--spacing-xl)}.score-entry-section h3{align-items:center;display:flex;gap:var(--spacing-sm)}.score-entry-grid,.score-entry-section h3{margin-bottom:var(--spacing-lg)}.score-header,.score-row{grid-gap:var(--spacing-md);align-items:center;display:grid;gap:var(--spacing-md);grid-template-columns:100px 1fr 1fr;padding:var(--spacing-sm) 0}.score-header{border-bottom:1px solid var(--light-gray);color:var(--gray);font-weight:600;margin-bottom:var(--spacing-sm)}.score-input{border:1px solid var(--light-gray);border-radius:0;font-size:1.25rem;font-weight:600;padding:var(--spacing-md);text-align:center;width:100%}.score-input:focus{border-color:var(--primary);outline:none}.score-hint{color:var(--gray);font-size:.875rem;margin-bottom:var(--spacing-lg)}.score-entry-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end}.match-actions{margin-bottom:var(--spacing-xl)}.match-actions,.result-banner{display:flex;gap:var(--spacing-md);justify-content:center}.result-banner{align-items:center;border-radius:0;padding:var(--spacing-xl);text-align:center}.result-banner.victory{background:var(--color-surface-sunken);border:2px solid var(--success);color:var(--success)}.result-banner.defeat{background:var(--color-surface-sunken);border:2px solid var(--danger);color:var(--danger)}.result-text{display:flex;flex-direction:column}.result-title{font-size:1.5rem;font-weight:700}.result-elo{font-size:1rem}.error-state,.loading-state{align-items:center;color:var(--gray);display:flex;flex-direction:column;gap:var(--spacing-md);justify-content:center;min-height:400px}.spinner{animation:spin .8s linear infinite;border:4px solid var(--light-gray);border-top-color:var(--primary);height:40px;width:40px}@media (max-width:768px){.teams-section{grid-template-columns:1fr}.vs-container{order:-1}.vs-badge{font-size:1rem;height:50px;width:50px}.match-actions{flex-direction:column}.match-actions .btn{width:100%}.score-header,.score-row{grid-template-columns:80px 1fr 1fr}}.confirm-panel{border-color:var(--color-brand);margin-bottom:var(--space-5)}.confirm-panel .card-header{background:var(--color-brand-wash);border-bottom-color:var(--color-brand)}.confirm-panel__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.bookings-page{background:var(--color-page)}.bookings-page [role=alert]:empty{display:none}.bookings-datestrip{align-items:stretch;display:flex;gap:var(--space-2);margin-bottom:var(--space-5)}.bookings-datestrip__days{background:var(--color-surface);border:var(--border);display:grid;flex:1 1 auto;grid-template-columns:repeat(7,minmax(0,1fr))}.bookings-datestrip__day{align-items:center;background:#0000;border:0;border-right:var(--border);color:var(--color-ink-muted);cursor:pointer;display:flex;flex-direction:column;font-family:var(--font-sans);gap:var(--space-1);justify-content:center;padding:var(--space-2) var(--space-1);transition:background var(--transition),color var(--transition)}.bookings-datestrip__day:last-child{border-right:0}.bookings-datestrip__day:hover{background:var(--color-surface-sunken);color:var(--color-ink)}.bookings-datestrip__day.is-selected{background:var(--color-brand);color:var(--color-brand-on)}.bookings-datestrip__month,.bookings-datestrip__weekday{font-size:var(--text-2xs);font-weight:var(--weight-semi);letter-spacing:var(--tracking-label);text-transform:uppercase}.bookings-datestrip__date{font-feature-settings:"tnum";font-family:var(--font-mono);font-size:var(--text-lg);font-variant-numeric:tabular-nums;font-weight:var(--weight-semi);line-height:var(--leading-tight)}.bookings-datestrip__today{border-top:var(--border);font-size:var(--text-2xs);font-weight:var(--weight-semi);letter-spacing:var(--tracking-label);padding-top:var(--space-1);text-align:center;text-transform:uppercase;width:100%}.bookings-datestrip__day.is-selected .bookings-datestrip__today{border-top-color:var(--color-brand-on)}.bookings-legend,.bookings-stats{margin-bottom:var(--space-4)}.bookings-legend__title{display:block;margin-bottom:var(--space-3)}.bookings-legend__items{display:flex;flex-wrap:wrap;gap:var(--space-4);list-style:none;margin:0;padding:0}.bookings-legend__item{align-items:center;color:var(--color-ink-muted);display:flex;font-size:var(--text-sm);gap:var(--space-2)}.bookings-legend__swatch{align-items:center;border:var(--border);color:var(--color-ink-subtle);display:inline-flex;font-size:var(--text-2xs);font-weight:var(--weight-semi);height:var(--space-5);justify-content:center;width:var(--space-7)}.bookings-legend__swatch svg{height:13px;width:13px}.bookings-legend__swatch--peak{background:var(--color-caution-wash);border-color:var(--color-caution);color:var(--color-caution)}.bookings-loading{align-items:center;background:var(--color-surface);border:var(--border);color:var(--color-ink-subtle);display:flex;flex-direction:column;font-size:var(--text-sm);gap:var(--space-3);padding:var(--space-7)}.bookings-gridwrap{max-height:70vh;overflow:auto}.bookings-grid{border-collapse:initial;border-spacing:0;min-width:100%;width:-webkit-max-content;width:max-content}.bookings-grid td,.bookings-grid th{border-bottom:var(--border);border-right:var(--border)}.bookings-grid thead th{background:var(--color-surface-sunken);border-bottom:var(--border-strong);padding:var(--space-2);position:-webkit-sticky;position:sticky;text-align:center;top:0;z-index:2}.bookings-grid__courthead{min-width:var(--space-8)}.bookings-grid__courtnum{font-feature-settings:"tnum";color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:var(--weight-semi)}.bookings-grid__waithead{min-width:calc(var(--space-8)*2)}.bookings-grid__corner{min-width:var(--space-8);z-index:3}.bookings-grid__corner,.bookings-grid__time{border-right:var(--border-strong);left:0;position:-webkit-sticky;position:sticky}.bookings-grid__time{background:var(--color-surface-sunken);padding:var(--space-2);text-align:left;white-space:nowrap;z-index:1}.bookings-grid__timevalue{font-feature-settings:"tnum";color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:var(--weight-semi)}.bookings-grid__time.is-peak{background:var(--color-caution-wash)}.bookings-grid__peakmark{color:var(--color-caution);height:12px;margin-left:var(--space-1);vertical-align:middle;width:12px}.bookings-grid .bookings-cell{height:var(--space-7);padding:0;text-align:center;vertical-align:middle}.bookings-cell__btn{align-items:center;background:#0000;border:0;color:inherit;cursor:pointer;display:flex;flex-direction:column;font-family:var(--font-sans);font-size:var(--text-2xs);gap:2px;height:var(--space-7);justify-content:center;line-height:var(--leading-tight);overflow:hidden;padding:var(--space-1);width:100%}.bookings-cell__icon{height:14px;width:14px}.bookings-cell__label{display:block;font-weight:var(--weight-medium);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bookings-cell__you{color:var(--color-brand);font-size:var(--text-2xs);font-weight:var(--weight-semi);letter-spacing:var(--tracking-label);text-transform:uppercase}.bookings-cell__dash{color:var(--color-ink-subtle)}.bookings-cell--free{background:var(--color-surface);color:var(--color-border-strong)}.bookings-cell--free .bookings-cell__btn:hover{background:var(--color-brand-wash);color:var(--color-brand)}.bookings-cell--booked{background:var(--color-surface-sunken);color:var(--color-ink)}.bookings-cell--booked .bookings-cell__btn:hover{background:var(--color-border)}.bookings-cell--booked.is-mine{background:var(--color-brand-wash);border-left:3px solid var(--color-brand)}.bookings-cell--closed{background:var(--color-surface-sunken);color:var(--color-ink-subtle)}.bookings-cell--past{background:var(--color-page);color:var(--color-ink-subtle)}.bookings-cell--wait,.bookings-grid .bookings-cell--wait{padding:var(--space-1) var(--space-2)}.bookings-summary-list{margin-bottom:var(--space-4)}.bookings-peak-badge{margin-left:var(--space-2)}.bookings-form{margin:0}.bookings-textarea{min-height:var(--space-8);resize:vertical}.bookings-search{position:relative}.bookings-search__icon{color:var(--color-ink-subtle);height:15px;left:var(--space-3);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:15px}.bookings-search__input{padding-left:var(--space-6)}.bookings-picker{background:var(--color-surface);border:var(--border);list-style:none;margin:var(--space-2) 0 0;max-height:calc(var(--space-8)*3);overflow-y:auto;padding:0}.bookings-picker__item{align-items:center;background:#0000;border:0;border-bottom:var(--border);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:var(--text-sm);gap:var(--space-2);padding:var(--space-2) var(--space-3);text-align:left;width:100%}.bookings-picker li:last-child .bookings-picker__item{border-bottom:0}.bookings-picker__item:hover{background:var(--color-surface-sunken)}.bookings-picker__item svg{color:var(--color-ink-subtle);flex:none;height:14px;width:14px}.bookings-picker__name{font-weight:var(--weight-medium)}.bookings-picker__meta{color:var(--color-ink-subtle);font-size:var(--text-xs);margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bookings-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:var(--space-2) 0 0;padding:0}.bookings-chip{align-items:center;background:var(--color-surface-sunken);border:var(--border);display:inline-flex;font-size:var(--text-sm);gap:var(--space-1);padding-left:var(--space-3)}.bookings-chip .btn-icon{border:0;border-left:var(--border)}.bookings-add-row{align-items:flex-start;display:flex;gap:var(--space-2)}.bookings-add-row .form-input{flex:1 1 auto}.bookings-confirm{border-top:var(--border);margin-top:var(--space-4);padding-top:var(--space-4)}.bookings-inline-spinner{border-width:2px;height:14px;width:14px}@media (max-width:640px){.bookings-datestrip__month{display:none}.bookings-datestrip__day{padding:var(--space-2) 0}.bookings-grid__corner,.bookings-grid__courthead,.bookings-grid__time{min-width:var(--space-7)}.bookings-legend__items{gap:var(--space-3)}.bookings-gridwrap{max-height:60vh}}.my-bookings .waitlist-list{list-style:none;margin:0;padding:0}.my-bookings .waitlist-list__item{align-items:center;border-bottom:var(--border);display:flex;font-size:var(--text-sm);gap:var(--space-2);padding:var(--space-2) 0}.my-bookings .waitlist-list__item:last-child{border-bottom:0}.my-bookings .waitlist-list__item svg{color:var(--color-ink-subtle);flex:none;height:15px;width:15px}@media (max-width:640px){.my-bookings .table{min-width:640px}}.chart{overflow:hidden;width:100%}.chart__svg{display:block;height:auto;overflow:visible;width:100%}.chart__grid{stroke:var(--color-border);stroke-width:1}.chart__axis-line{stroke:var(--color-border-strong);stroke-width:1}.chart__axis{fill:var(--color-ink-subtle);font-family:var(--font-mono);font-size:10px}.chart__line{fill:none;stroke:var(--color-brand);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart__point{fill:var(--color-surface);stroke:var(--color-brand);stroke-width:2}.chart__bar{fill:var(--color-brand)}.bar-col{align-items:center;display:flex;gap:var(--space-2);min-width:120px}.bar-col__track{background:var(--color-border);flex:1 1;height:8px;min-width:40px}.bar-col__fill{background:var(--color-brand);height:100%}.bar-col__fill--positive{background:var(--color-positive)}.bar-col__fill--negative{background:var(--color-negative)}.bar-col__value{font-feature-settings:"tnum";color:var(--color-ink-muted);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;min-width:40px;text-align:right}.form-strip{display:flex;flex-wrap:wrap;gap:var(--space-1)}.form-strip__cell{align-items:center;border:var(--border-width) solid;display:inline-flex;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-semi);height:26px;justify-content:center;line-height:1;width:26px}.form-strip__cell--win{background:var(--color-positive-wash);color:var(--color-positive)}.form-strip__cell--loss{background:var(--color-negative-wash);color:var(--color-negative)}.sort-btn{align-items:center;background:#0000;border:0;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:var(--space-1);letter-spacing:inherit;padding:0;text-transform:inherit}.sort-btn:hover{color:var(--color-ink)}.sort-btn svg{height:12px;width:12px}.section+.section{margin-top:var(--space-6)}.section__hint{color:var(--color-ink-subtle);font-size:var(--text-xs);margin:0 0 var(--space-3);max-width:68ch}@media (max-width:640px){.form-strip__cell{height:22px;width:22px}.bar-col{min-width:90px}}.court-mgmt{background:var(--color-page);min-height:calc(100vh - var(--nav-height));padding:var(--space-6) 0 var(--space-8)}.court-mgmt__section{margin-bottom:var(--space-6)}.court-mgmt__section-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-3)}.court-mgmt__meta{color:var(--color-ink-subtle);font-size:var(--text-xs)}.court-mgmt__hint{margin:var(--space-1) 0 0}.court-mgmt__hint--block{margin-bottom:var(--space-3)}.court-mgmt__loading{align-items:center;background:var(--color-surface);border:var(--border);color:var(--color-ink-subtle);display:flex;font-size:var(--text-sm);gap:var(--space-3);justify-content:center;padding:var(--space-7)}.court-mgmt__empty-error{margin-left:auto;margin-right:auto;max-width:440px;text-align:left}.court-mgmt__table{min-width:860px}.court-mgmt__table--closures{min-width:640px}.court-mgmt__hours{font-feature-settings:"tnum";font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.court-mgmt__muted{color:var(--color-ink-subtle);font-size:var(--text-xs)}.court-mgmt__attrs{display:flex;flex-wrap:wrap;gap:var(--space-1)}.court-mgmt__attr{background:var(--color-surface-sunken);border:var(--border);color:var(--color-ink-muted);font-size:var(--text-2xs);line-height:1.7;padding:0 var(--space-2);white-space:nowrap}.court-edit__grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr))}.court-edit__attrs{grid-gap:var(--space-2);display:grid;gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr))}.court-edit__attr{align-items:center;color:var(--color-ink);display:flex;font-size:var(--text-sm);gap:var(--space-2)}.court-edit__attr input[type=checkbox]{accent-color:var(--color-brand);height:15px;margin:0;width:15px}.court-edit__toolbar{align-items:center;border-top:var(--border);display:flex;flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-2)}.court-edit__days{border:var(--border)}.court-edit__day{border-bottom:var(--border);padding:var(--space-3)}.court-edit__day:last-child{border-bottom:0}.court-edit__day-head{justify-content:space-between}.court-edit__day-head,.court-edit__window{align-items:center;display:flex;gap:var(--space-2);margin-bottom:var(--space-2)}.court-edit__window:last-child{margin-bottom:0}.court-edit__time{font-feature-settings:"tnum";flex:1 1;font-family:var(--font-mono);font-variant-numeric:tabular-nums;min-width:0;width:auto}.court-edit__time--single{flex:none;max-width:180px}.court-edit__sep{color:var(--color-ink-subtle);font-size:var(--text-xs)}.court-edit__closed{color:var(--color-ink-subtle);font-size:var(--text-sm);margin:0}@media (max-width:640px){.court-mgmt{padding:var(--space-5) 0 var(--space-7)}.court-edit__attrs,.court-edit__grid{grid-template-columns:minmax(0,1fr)}.court-edit__toolbar{align-items:stretch;flex-direction:column}.court-edit__toolbar .spacer{display:none}.court-mgmt__section-head{align-items:flex-start;flex-direction:column;gap:var(--space-1)}}.club-settings .peak-row{align-items:center;border-bottom:var(--border);display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;padding:var(--space-3) 0}.club-settings .peak-row:last-child{border-bottom:0}.club-settings .peak-row__days{display:flex;gap:0}.club-settings .peak-day{background:var(--color-surface);border:var(--border-strong);border-right-width:0;color:var(--color-ink-muted);cursor:pointer;font-family:var(--font-sans);font-size:var(--text-xs);font-weight:var(--weight-medium);min-width:38px;padding:var(--space-1) var(--space-2);transition:background var(--transition),color var(--transition)}.club-settings .peak-day:last-child{border-right-width:var(--border-width)}.club-settings .peak-day:hover{background:var(--color-surface-sunken)}.club-settings .peak-day--on{background:var(--color-brand);border-color:var(--color-brand);color:var(--color-brand-on)}.club-settings .peak-row__times{align-items:center;display:flex;gap:var(--space-2)}.club-settings .peak-row__times .form-input{min-width:110px;width:auto}@media (max-width:640px){.club-settings .peak-row__days{flex-wrap:wrap}.club-settings .peak-day{border-right-width:var(--border-width)}}.club-analytics .grid,.club-analytics .section{margin-top:var(--space-5)}.club-analytics .bar-col{align-items:center;display:flex;gap:var(--space-2);min-width:140px}.club-analytics .bar-col__track{background:var(--color-border);flex:1 1;height:10px;min-width:60px}.club-analytics .bar-col__fill{background:var(--color-brand);height:100%}.club-analytics .bar-col__value{font-feature-settings:"tnum";color:var(--color-ink-muted);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;min-width:32px;text-align:right}.club-analytics .heatmap{grid-gap:2px;display:grid;gap:2px;grid-auto-flow:row;grid-template-columns:auto repeat(auto-fit,minmax(22px,1fr));overflow-x:auto}.club-analytics .heatmap__corner{min-width:34px}.club-analytics .heatmap__day,.club-analytics .heatmap__hour{align-items:center;color:var(--color-ink-subtle);display:flex;font-size:var(--text-2xs);justify-content:center}.club-analytics .heatmap__day{justify-content:flex-start;min-width:34px;padding-right:var(--space-2)}.club-analytics .heatmap__cell{aspect-ratio:1/1;background:var(--color-brand);border:var(--border-width) solid var(--color-surface);min-height:22px;min-width:22px}@media (max-width:640px){.club-analytics .heatmap{grid-template-columns:auto repeat(24,22px)}.club-analytics .bar-col{min-width:100px}}:root{--color-ink:#16191c;--color-ink-muted:#4a5259;--color-ink-subtle:#6e767d;--color-page:#f1f2f3;--color-surface:#fff;--color-surface-sunken:#f7f8f8;--color-border:#d5d8db;--color-border-strong:#a9aeb3;--color-brand:#0e3a5c;--color-brand-hover:#0a2c46;--color-brand-on:#fff;--color-brand-wash:#e8eef3;--color-positive:#1e7a3e;--color-positive-wash:#e7f2eb;--color-negative:#b3261e;--color-negative-wash:#f8e9e8;--color-caution:#8a6100;--color-caution-wash:#f7f0e0;--color-info:#0e3a5c;--color-info-wash:#e8eef3;--color-focus:#0e3a5c;--focus-ring:2px solid var(--color-focus);--focus-offset:2px;--font-sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,"SF Mono","Cascadia Mono","Segoe UI Mono",Menlo,Consolas,monospace;--text-2xs:0.6875rem;--text-xs:0.75rem;--text-sm:0.8125rem;--text-base:0.9375rem;--text-lg:1.0625rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--weight-regular:400;--weight-medium:500;--weight-semi:600;--weight-bold:700;--leading-tight:1.2;--leading-base:1.5;--tracking-label:0.08em;--tracking-tight:-0.01em;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--radius:0;--border-width:1px;--border:var(--border-width) solid var(--color-border);--border-strong:var(--border-width) solid var(--color-border-strong);--container-max:1280px;--nav-height:56px;--transition:120ms ease-out}@media (prefers-reduced-motion:reduce){:root{--transition:0ms}}:root{--primary:var(--color-brand);--primary-dark:var(--color-brand-hover);--secondary:var(--color-brand);--accent:var(--color-brand);--success:var(--color-positive);--danger:var(--color-negative);--warning:var(--color-caution);--white:var(--color-surface);--off-white:var(--color-page);--light-gray:var(--color-surface-sunken);--gray:var(--color-ink-subtle);--dark-gray:var(--color-ink-muted);--black:var(--color-ink);--gradient-primary:var(--color-brand);--gradient-secondary:var(--color-brand);--gradient-accent:var(--color-surface-sunken);--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--shadow-xl:none;--radius-sm:0;--radius-md:0;--radius-lg:0;--radius-xl:0;--radius-full:0;--font-display:var(--font-sans);--font-body:var(--font-sans);--spacing-xs:var(--space-1);--spacing-sm:var(--space-2);--spacing-md:var(--space-4);--spacing-lg:var(--space-5);--spacing-xl:var(--space-6);--spacing-2xl:var(--space-7);--spacing-3xl:var(--space-8);--transition-fast:var(--transition);--transition-base:var(--transition);--transition-slow:var(--transition)}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-page);font-size:var(--text-base);line-height:var(--leading-base)}body,h1,h2,h3,h4,h5,h6{color:var(--color-ink);font-family:var(--font-sans);margin:0}h1,h2,h3,h4,h5,h6{font-weight:var(--weight-semi);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-base)}h4,h5,h6{font-size:var(--text-sm)}p{margin:0 0 var(--space-3)}p:last-child{margin-bottom:0}a{color:var(--color-brand);text-decoration:none}a:hover{text-decoration:underline}.mono,code,pre{font-family:var(--font-mono)}img{display:block;max-width:100%}hr{border:0;border-top:var(--border);margin:var(--space-5) 0}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.page{min-height:calc(100vh - var(--nav-height));padding:var(--space-6) 0 var(--space-8)}.page-header{align-items:flex-start;border-bottom:var(--border-strong);display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-5);padding-bottom:var(--space-4)}.page-header__title{margin:0}.page-header__subtitle{color:var(--color-ink-subtle);font-size:var(--text-sm);margin:var(--space-1) 0 0}.section{margin-bottom:var(--space-6)}.label{color:var(--color-ink-subtle);font-size:var(--text-2xs);font-weight:var(--weight-semi);letter-spacing:var(--tracking-label);text-transform:uppercase}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid--sidebar{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}@media (max-width:1024px){.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--sidebar{grid-template-columns:minmax(0,1fr)}}@media (max-width:640px){.grid--2,.grid--3,.grid--4{grid-template-columns:minmax(0,1fr)}.container{padding:0 var(--space-4)}}.stack>*+*{margin-top:var(--space-3)}.row{align-items:center;display:flex;gap:var(--space-2)}.row--between{justify-content:space-between}.row--wrap{flex-wrap:wrap}.spacer{flex:1 1 auto}.text-muted{color:var(--color-ink-muted)}.text-subtle{color:var(--color-ink-subtle)}.text-positive{color:var(--color-positive)}.text-negative{color:var(--color-negative)}.text-caution{color:var(--color-caution)}.text-xs{font-size:var(--text-xs)}.numeric{font-feature-settings:"tnum";font-family:var(--font-mono);font-variant-numeric:tabular-nums}.visually-hidden{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.btn{border-radius:var(--radius)}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;opacity:.5;pointer-events:none}.btn--primary{background:var(--color-brand);border-color:var(--color-brand);color:var(--color-brand-on)}.btn--primary:hover{background:var(--color-brand-hover);border-color:var(--color-brand-hover)}.btn--danger{background:var(--color-negative);border-color:var(--color-negative);color:#fff}.btn--danger:hover{background:#8e1e17;border-color:#8e1e17}.btn--positive{background:var(--color-positive);border-color:var(--color-positive);color:#fff}.btn--positive:hover{background:#176130;border-color:#176130}.btn--quiet{background:#0000;border-color:#0000;color:var(--color-ink-muted)}.btn--quiet:hover{background:var(--color-surface-sunken);color:var(--color-ink)}.btn--sm{font-size:var(--text-xs);min-height:28px;padding:var(--space-1) var(--space-3)}.btn--lg{font-size:var(--text-base);min-height:42px;padding:var(--space-3) var(--space-5)}.btn--block{width:100%}.btn--icon{height:30px;min-height:30px;padding:0;width:30px}.card{border-radius:var(--radius)}.card__header{align-items:center;background:var(--color-surface-sunken);border-bottom:var(--border);display:flex;gap:var(--space-3);justify-content:space-between;padding:var(--space-3) var(--space-4)}.card__title{font-size:var(--text-sm);font-weight:var(--weight-semi);margin:0}.card__body{padding:var(--space-4)}.card__footer{background:var(--color-surface-sunken);border-top:var(--border);padding:var(--space-3) var(--space-4)}.stat{background:var(--color-surface);border:var(--border);padding:var(--space-4)}.stat__label{display:block;margin-bottom:var(--space-2)}.stat__value{font-feature-settings:"tnum";color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-2xl);font-variant-numeric:tabular-nums;font-weight:var(--weight-semi);line-height:1}.stat__meta{color:var(--color-ink-subtle);font-size:var(--text-xs);margin-top:var(--space-2)}.stat__delta{font-weight:var(--weight-semi)}.stat__delta--up{color:var(--color-positive)}.stat__delta--down{color:var(--color-negative)}.field{margin-bottom:var(--space-4)}.field__label{color:var(--color-ink-muted);display:block;font-size:var(--text-xs);font-weight:var(--weight-semi);margin-bottom:var(--space-1)}.field__hint{color:var(--color-ink-subtle)}.field__error,.field__hint{font-size:var(--text-xs);margin-top:var(--space-1)}.field__error{color:var(--color-negative)}.input,.select,.textarea{background:var(--color-surface);border:var(--border-strong);border-radius:var(--radius);color:var(--color-ink);display:block;font-family:var(--font-sans);font-size:var(--text-sm);min-height:34px;padding:var(--space-2) var(--space-3);transition:border-color var(--transition);width:100%}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-brand);outline:var(--focus-ring);outline-offset:0}.input:disabled,.select:disabled,.textarea:disabled{background:var(--color-surface-sunken);color:var(--color-ink-subtle)}.input--error,.select--error{border-color:var(--color-negative)}.textarea{min-height:84px;resize:vertical}.select{-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,#0000 50%,var(--color-ink-muted) 50%),linear-gradient(135deg,var(--color-ink-muted) 50%,#0000 50%);background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:var(--space-6)}.input--numeric{font-feature-settings:"tnum";font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:center}.checkbox-row{align-items:flex-start;display:flex;font-size:var(--text-sm);gap:var(--space-2)}.checkbox-row input[type=checkbox]{accent-color:var(--color-brand);height:15px;margin:2px 0 0;width:15px}.field-row{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:640px){.field-row{grid-template-columns:minmax(0,1fr)}}.badge{border-radius:var(--radius)}.badge--neutral{background:var(--color-surface-sunken);color:var(--color-ink-subtle)}.badge--brand{background:var(--color-brand-wash);color:var(--color-brand)}.badge--positive{background:var(--color-positive-wash);color:var(--color-positive)}.badge--negative{background:var(--color-negative-wash);color:var(--color-negative)}.badge--caution{background:var(--color-caution-wash);color:var(--color-caution)}.badge--upcoming{background:var(--color-info-wash);color:var(--color-info)}.badge--active{background:var(--color-positive-wash);color:var(--color-positive)}.badge--completed{background:var(--color-surface-sunken);color:var(--color-ink-subtle)}.badge--cancelled{background:var(--color-negative-wash);color:var(--color-negative)}.badge--pending{background:var(--color-caution-wash);color:var(--color-caution)}.rating{font-feature-settings:"tnum";font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:var(--weight-semi)}.rating-delta{font-family:var(--font-mono);font-size:var(--text-xs)}.rating-delta--up{color:var(--color-positive)}.rating-delta--down{color:var(--color-negative)}.table-wrap{background:var(--color-surface);border:var(--border);overflow-x:auto}.table{border-collapse:collapse;font-size:var(--text-sm);width:100%}.table thead th{background:var(--color-surface-sunken);border-bottom:var(--border-strong);color:var(--color-ink-subtle);font-size:var(--text-2xs);font-weight:var(--weight-semi);letter-spacing:var(--tracking-label);padding:var(--space-2) var(--space-3);position:-webkit-sticky;position:sticky;text-align:left;text-transform:uppercase;top:0;white-space:nowrap}.table tbody td{border-bottom:var(--border);padding:var(--space-3);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--color-surface-sunken)}.table tbody tr.is-you,.table tr--highlight{background:var(--color-brand-wash)}.table tbody tr.is-muted{color:var(--color-ink-subtle)}.table .col-numeric{font-feature-settings:"tnum";font-family:var(--font-mono);font-variant-numeric:tabular-nums}.table .col-actions,.table .col-numeric{text-align:right;white-space:nowrap}.tabs{border-bottom:var(--border-strong);display:flex;gap:0;margin-bottom:var(--space-4);overflow-x:auto}.tab{background:#0000;border:0;border-bottom:2px solid #0000;color:var(--color-ink-subtle);cursor:pointer;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:var(--space-2) var(--space-4);transition:color var(--transition),border-color var(--transition);white-space:nowrap}.tab:hover{color:var(--color-ink)}.tab.is-active{border-bottom-color:var(--color-brand);color:var(--color-brand);font-weight:var(--weight-semi)}.modal-overlay{align-items:flex-start;background:#16191c8c;display:flex;inset:0;justify-content:center;overflow-y:auto;padding:var(--space-6) var(--space-4);position:fixed;z-index:1000}.modal{background:var(--color-surface);border:var(--border-strong);border-radius:var(--radius);max-width:560px;width:100%}.modal--wide{max-width:840px}.modal__header{align-items:center;border-bottom:var(--border);display:flex;gap:var(--space-3);justify-content:space-between;padding:var(--space-4)}.modal__title{font-size:var(--text-lg);margin:0}.modal__body{padding:var(--space-4)}.modal__footer{background:var(--color-surface-sunken);border-top:var(--border);justify-content:flex-end;padding:var(--space-4)}.modal__footer,.notice{display:flex;gap:var(--space-2)}.notice{align-items:flex-start;border:var(--border-width) solid;border-radius:var(--radius);font-size:var(--text-sm);margin-bottom:var(--space-4);padding:var(--space-3)}.notice svg{flex:none;height:16px;margin-top:1px;width:16px}.notice--info{background:var(--color-info-wash);border-color:var(--color-info);color:var(--color-info)}.notice--positive{background:var(--color-positive-wash);border-color:var(--color-positive);color:var(--color-positive)}.notice--caution{background:var(--color-caution-wash);border-color:var(--color-caution);color:var(--color-caution)}.notice--error{background:var(--color-negative-wash);border-color:var(--color-negative);color:var(--color-negative)}.empty{background:var(--color-surface);border:var(--border-width) dashed var(--color-border-strong);color:var(--color-ink-subtle);padding:var(--space-7) var(--space-4);text-align:center}.empty__title{color:var(--color-ink);font-size:var(--text-base);font-weight:var(--weight-semi);margin-bottom:var(--space-1)}.empty__body{font-size:var(--text-sm);margin-bottom:var(--space-4)}.spinner{animation:spin .7s linear infinite;border:2px solid var(--color-border);border-radius:50%;border-top-color:var(--color-brand);height:16px;width:16px}.spinner--lg{border-width:3px;height:28px;width:28px}.loading-block{align-items:center;color:var(--color-ink-subtle);display:flex;gap:var(--space-3);justify-content:center;padding:var(--space-7)}.deflist,.loading-block{font-size:var(--text-sm)}.deflist{grid-gap:var(--space-2) var(--space-4);display:grid;gap:var(--space-2) var(--space-4);grid-template-columns:-webkit-max-content 1fr;grid-template-columns:max-content 1fr;margin:0}.deflist dt{align-self:center;color:var(--color-ink-subtle);font-size:var(--text-xs);font-weight:var(--weight-semi);letter-spacing:var(--tracking-label);text-transform:uppercase}.deflist dd{margin:0}.meter{background:var(--color-border);border-radius:var(--radius);height:6px;overflow:hidden}.meter__fill{background:var(--color-brand);height:100%}.meter__fill--positive{background:var(--color-positive)}.meter__fill--negative{background:var(--color-negative)}.app{background:var(--color-page);min-height:100vh}.btn{align-items:center;background:var(--color-surface);border:var(--border-strong);border-radius:0;color:var(--color-ink);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);gap:var(--space-2);justify-content:center;letter-spacing:0;line-height:1;min-height:34px;padding:var(--space-2) var(--space-4);text-transform:none;transition:background var(--transition),border-color var(--transition),color var(--transition);white-space:nowrap}.btn,.btn:hover{text-decoration:none}.btn:hover{background:var(--color-surface-sunken);transform:none}.btn:active{background:var(--color-border)}.btn:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.btn svg{flex:none;height:15px;width:15px}.btn:before{content:none;display:none}.btn-primary{background:var(--color-brand);border-color:var(--color-brand);box-shadow:none;color:var(--color-brand-on)}.btn-primary:hover{background:var(--color-brand-hover);border-color:var(--color-brand-hover);box-shadow:none;transform:none}.btn-secondary{background:var(--color-ink);border-color:var(--color-ink);box-shadow:none;color:var(--color-surface)}.btn-secondary:hover{background:#000;border-color:#000;box-shadow:none;transform:none}.btn-outline{background:#0000;border-color:var(--color-brand);color:var(--color-brand)}.btn-outline:hover{background:var(--color-brand-wash);color:var(--color-brand)}.btn-ghost{background:#0000;border-color:#0000;color:var(--color-ink-muted)}.btn-ghost:hover{background:var(--color-surface-sunken);color:var(--color-ink)}.btn-success{background:var(--color-positive);border-color:var(--color-positive);color:#fff}.btn-success:hover{background:#176130;border-color:#176130}.btn-danger{background:var(--color-negative);border-color:var(--color-negative);color:#fff}.btn-danger:hover{background:#8e1e17;border-color:#8e1e17}.btn-warning{background:var(--color-caution);border-color:var(--color-caution);color:#fff}.btn-warning:hover{background:#6e4d00;border-color:#6e4d00}.btn-complete{background:var(--color-brand);border-color:var(--color-brand);color:var(--color-brand-on)}.btn-complete:hover{background:var(--color-brand-hover);border-color:var(--color-brand-hover)}.btn-large{font-size:var(--text-base);min-height:42px;padding:var(--space-3) var(--space-5)}.btn-small{font-size:var(--text-xs);min-height:28px;padding:var(--space-1) var(--space-3)}.btn-full{width:100%}.btn-icon{align-items:center;background:var(--color-surface);border:var(--border);color:var(--color-ink-muted);cursor:pointer;display:inline-flex;height:30px;justify-content:center;padding:0;transition:background var(--transition),color var(--transition);width:30px}.btn-icon:hover{background:var(--color-surface-sunken);box-shadow:none;color:var(--color-ink);transform:none}.btn-google{align-items:center;background:var(--color-surface);border:var(--border-strong);color:var(--color-ink);cursor:pointer;display:inline-flex;font-size:var(--text-sm);font-weight:var(--weight-medium);gap:var(--space-2);justify-content:center;min-height:38px;width:100%}.btn-google:hover{background:var(--color-surface-sunken)}.google-icon{height:16px;width:16px}.card{background:var(--color-surface);border:var(--border);border-radius:0;box-shadow:none;position:relative;transition:border-color var(--transition)}.card:before{content:none;display:none}.card:hover{border-color:var(--color-border-strong);box-shadow:none;transform:none}.card-header{align-items:center;background:var(--color-surface-sunken);border-bottom:var(--border);display:flex;gap:var(--space-3);justify-content:space-between;padding:var(--space-3) var(--space-4)}.card-body{padding:var(--space-4)}.card-footer{background:var(--color-surface-sunken);border-top:var(--border);padding:var(--space-3) var(--space-4)}.form-group{margin-bottom:var(--space-4)}.form-label{color:var(--color-ink-muted);display:block;font-size:var(--text-xs);font-weight:var(--weight-semi);letter-spacing:0;margin-bottom:var(--space-1);text-transform:none}.form-input,.form-select,textarea.form-input{background:var(--color-surface);border:var(--border-strong);border-radius:0;color:var(--color-ink);display:block;font-family:var(--font-sans);font-size:var(--text-sm);min-height:34px;padding:var(--space-2) var(--space-3);transition:border-color var(--transition);width:100%}.form-input:focus,.form-select:focus{border-color:var(--color-brand);box-shadow:none;outline:var(--focus-ring);outline-offset:0}.form-input-error{border-color:var(--color-negative)}.form-error{color:var(--color-negative);font-size:var(--text-xs);margin-top:var(--space-1)}.form-hint,.label-hint{color:var(--color-ink-subtle);font-size:var(--text-xs)}.form-row{grid-gap:var(--space-4);display:grid;gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr))}.input-wrapper{position:relative}.input-wrapper .input-icon{color:var(--color-ink-subtle);height:15px;left:var(--space-3);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:15px}.form-input.with-icon{padding-left:var(--space-6)}.badge{align-items:center;border:var(--border-width) solid;border-radius:0;display:inline-flex;font-size:var(--text-2xs);font-weight:var(--weight-semi);gap:var(--space-1);letter-spacing:var(--tracking-label);line-height:1.6;padding:2px var(--space-2);text-transform:uppercase;white-space:nowrap}.badge-primary{background:var(--color-brand-wash);color:var(--color-brand)}.badge-secondary{background:var(--color-surface-sunken);color:var(--color-ink-muted)}.badge-success{background:var(--color-positive-wash);color:var(--color-positive)}.badge-warning{background:var(--color-caution-wash);color:var(--color-caution)}.badge-danger{background:var(--color-negative-wash);color:var(--color-negative)}.badge-upcoming{background:var(--color-info-wash);color:var(--color-info)}.badge-active,.badge-in-progress{background:var(--color-positive-wash);color:var(--color-positive)}.badge-completed{background:var(--color-surface-sunken);color:var(--color-ink-subtle)}.badge-cancelled{background:var(--color-negative-wash);color:var(--color-negative)}.badge-pending{background:var(--color-caution-wash);color:var(--color-caution)}.badge-inline{background:var(--color-surface-sunken);color:var(--color-ink-muted)}.elo-badge{font-feature-settings:"tnum";align-items:center;background:var(--color-surface-sunken);border:var(--border);border-radius:0;box-shadow:none;color:var(--color-ink);display:inline-flex;font-family:var(--font-mono);font-variant-numeric:tabular-nums;gap:var(--space-1);padding:2px var(--space-2)}.elo-badge,.elo-change{font-size:var(--text-xs);font-weight:var(--weight-semi)}.elo-change{font-family:var(--font-mono)}.elo-change.positive{color:var(--color-positive)}.elo-change.negative{color:var(--color-negative)}.empty-state{background:var(--color-surface);border:var(--border-width) dashed var(--color-border-strong);color:var(--color-ink-subtle);padding:var(--space-7) var(--space-4);text-align:center}.empty-state h3{color:var(--color-ink);margin-bottom:var(--space-1)}.empty-state svg{color:var(--color-border-strong);margin-bottom:var(--space-3)}.error-message,.success-message{align-items:flex-start;border:var(--border-width) solid;border-radius:0;display:flex;font-size:var(--text-sm);gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3)}.error-message{background:var(--color-negative-wash);border-color:var(--color-negative);color:var(--color-negative)}.success-message{background:var(--color-positive-wash);border-color:var(--color-positive);color:var(--color-positive)}.error-message svg,.success-message svg{flex:none;height:16px;margin-top:1px;width:16px}.error-text{color:var(--color-negative);font-size:var(--text-xs)}.text-warning{color:var(--color-caution)}.text-info{color:var(--color-info)}.loading-screen{align-items:center;background:var(--color-page);color:var(--color-ink-muted);display:flex;flex-direction:column;font-size:var(--text-sm);gap:var(--space-4);inset:0;justify-content:center;position:fixed;z-index:9999}.loading-spinner{animation:spin .7s linear infinite;border:3px solid var(--color-border);border-radius:50%;border-top-color:var(--color-brand);height:28px;width:28px}.container{margin:0 auto;max-width:var(--container-max);padding:0 var(--space-5);width:100%}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-2)}.gap-md{gap:var(--space-4)}.gap-lg{gap:var(--space-5)}.grid{grid-gap:var(--space-4);display:grid;gap:var(--space-4)}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.text-center{text-align:center}.text-right{text-align:right}.font-bold{font-weight:var(--weight-semi)}.text-primary{color:var(--color-brand)}.text-secondary{color:var(--color-ink-muted)}.text-success{color:var(--color-positive)}.text-danger{color:var(--color-negative)}.text-muted{color:var(--color-ink-subtle)}.text-sm{font-size:var(--text-sm)}.text-lg{font-size:var(--text-lg)}.mt-sm{margin-top:var(--space-2)}.mt-md{margin-top:var(--space-4)}.mt-lg{margin-top:var(--space-5)}.mb-sm{margin-bottom:var(--space-2)}.mb-md{margin-bottom:var(--space-4)}.mb-lg{margin-bottom:var(--space-5)}.p-sm{padding:var(--space-2)}.p-md{padding:var(--space-4)}.p-lg{padding:var(--space-5)}@keyframes slideInUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(1turn)}}.animate-slide-up{animation:slideInUp .15s ease-out}.animate-fade-in{animation:fadeIn .15s ease-out}.animate-bounce,.animate-pulse{animation:none}@media (prefers-reduced-motion:reduce){.animate-fade-in,.animate-slide-up{animation:none}}.court-pattern{background:var(--color-page);position:relative}.court-pattern:after,.court-pattern:before{content:none;display:none}.bracket-container{background:var(--color-surface);border:var(--border);padding:var(--space-4)}.bracket-round{display:flex;flex-direction:column;gap:var(--space-3)}.bracket-match{background:var(--color-surface);border:var(--border)}.bracket-player{border-bottom:var(--border);font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.bracket-player:last-child{border-bottom:0}.bracket-player.winner{background:var(--color-brand-wash);font-weight:var(--weight-semi)}@media (max-width:640px){.form-row,.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:minmax(0,1fr)}.container{padding:0 var(--space-4)}}.auth-page{align-items:center;background:var(--color-page);display:flex;justify-content:center;min-height:100vh;padding:var(--space-6) var(--space-4)}.auth-container{max-width:460px;width:100%}.auth-container--wide{max-width:720px}.auth-card{background:var(--color-surface);border:var(--border);padding:var(--space-6)}.auth-header{margin-bottom:var(--space-5);text-align:center}.auth-header p{color:var(--color-ink-subtle);font-size:var(--text-sm)}.auth-form{margin:0}.forgot-link{display:inline-block;font-size:var(--text-xs);margin-bottom:var(--space-4)}.auth-divider{align-items:center;color:var(--color-ink-subtle);display:flex;font-size:var(--text-xs);gap:var(--space-3);margin:var(--space-5) 0}.auth-divider:after,.auth-divider:before{background:var(--color-border);content:"";flex:1 1;height:1px}.auth-footer{border-top:var(--border);color:var(--color-ink-subtle);font-size:var(--text-sm);margin-top:var(--space-5);padding-top:var(--space-4);text-align:center}
/*# sourceMappingURL=main.addb628d.css.map*/