:root{--bg:#f6f7f9;--surface:#fff;--border:#e3e6eb;--text:#1a1e24;--text-muted:#667085;--accent:#3d64d1;--accent-soft:#eaf0fe;--badge-bg:#f1f3f6;--success:#09ab67;--success-bg:#ecfdf3;--success-border:#abefc6;--error:#dc665d;--error-bg:#fef3f2;--error-border:#fda29b;--gold:#b8860b}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}h1{letter-spacing:-.01em;margin:0 0 4px;font-size:24px}h2{letter-spacing:-.01em;margin:0 0 4px;font-size:18px}p{margin:0}.topnav{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;padding:14px 32px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.01em;align-items:center;gap:8px;font-size:17px;font-weight:700;display:inline-flex}.brand-logo{width:26px;height:26px}.topnav nav{gap:28px;font-size:14px;display:flex}.topnav nav a{color:var(--text-muted);border-bottom:2px solid #0000;padding-bottom:4px;text-decoration:none}.topnav nav a.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.nav-dropdown{position:relative}.nav-dropdown button{font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin:0;padding:0 0 4px}.nav-dropdown button.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.nav-dropdown-viewport{width:var(--radix-navigation-menu-viewport-width);position:absolute;top:calc(100% + 14px);left:0}.nav-dropdown-menu{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;min-width:170px;padding:6px;display:flex;box-shadow:0 8px 20px #00000014}.nav-dropdown-menu a{color:var(--text);border-bottom:none;border-radius:6px;padding:8px 10px;text-decoration:none}.nav-dropdown-menu a:hover,.nav-dropdown-menu a[data-highlighted]{background:var(--accent-soft);outline:none}.nav-dropdown-menu a.active{color:var(--accent);font-weight:600}main{max-width:980px;margin:0 auto;padding:40px 32px 80px}.subtitle{color:var(--text-muted);margin-bottom:28px;font-size:14px}.auth-page{flex-direction:column;align-items:center;padding-top:15vh;display:flex}.auth-page .hero{text-align:center}.auth-logo{width:128px;height:128px;margin:0 auto 16px;display:block}[role=alert]{color:var(--error);margin-top:10px;font-size:13px}[role=status]{color:var(--success);margin-top:20px;font-size:14px}table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:10px;width:100%;overflow:hidden}thead th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border);background:#fafbfc;padding:12px 20px;font-size:12px;font-weight:600}tbody td{border-bottom:1px solid var(--border);vertical-align:middle;padding:16px 20px;font-size:14px}tbody td a{color:var(--accent);text-decoration:none}tbody td a:hover{text-decoration:underline}tbody td:has(.btn){text-align:right}tr.reported-fencer{background:var(--accent-soft);font-weight:600}.pool-matrix-table{margin-bottom:24px}.pool-matrix-table th,.pool-matrix-table td{text-align:center;border-right:1px solid var(--border);padding:10px 14px;font-size:13px}.pool-matrix-table th:nth-child(2),.pool-matrix-table td:nth-child(2){text-align:left}.pool-matrix-number{color:var(--text-muted);font-weight:600}.pool-matrix-self{background:var(--text-muted)}.pool-matrix-win{background:var(--success-bg)}.pool-matrix-loss{background:var(--error-bg)}.pool-matrix-indicator-positive{color:var(--success)}.pool-matrix-indicator-negative{color:var(--error)}.pool-matrix-table tr.reported-fencer{background:0 0}.pool-matrix-table tr.reported-fencer td{border-top:2px solid var(--accent);border-bottom:2px solid var(--accent)}.pool-matrix-table tr.reported-fencer td:first-child{border-left:2px solid var(--accent)}.pool-matrix-table tr.reported-fencer td:last-child{border-right:2px solid var(--accent)}.tableau-matches-table{margin-bottom:24px}.team-summaries{gap:24px;margin-bottom:32px;display:flex}.team-summary-table{border-collapse:collapse;flex:1 1 0;min-width:0}.team-summary-table th,.team-summary-table td{border:1px solid var(--border);text-align:center;padding:4px 12px}.team-summary-table td:first-child{text-align:left}.team-summary-table td.team-summary-score{min-width:72px;font-weight:600}.tableau-matches-table .indicator-positive{color:var(--success)}.tableau-matches-table .indicator-negative{color:var(--error)}.team-summary-table td.team-summary-win{background:var(--success);color:#fff}.team-summary-table td.team-summary-loss{background:var(--error);color:#fff}.section-empty-message{margin-bottom:24px}.tableau-matches-table td:last-child{font-weight:600}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#fafbfc}.badge{background:var(--badge-bg);color:var(--text-muted);white-space:nowrap;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:500;display:inline-block}.badge.grade{background:var(--accent-soft);color:var(--accent)}.read-only-banner{color:var(--text-muted);background:var(--badge-bg);border-radius:6px;align-items:center;gap:6px;margin:0 0 16px;padding:6px 10px;font-size:13px;display:inline-flex}.cercle-badge{background:var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;font-weight:500;display:inline-flex}.consolidation-dot{border-radius:50%;width:11px;height:11px;display:inline-block}.consolidation-green{background:var(--success)}.consolidation-orange{background:#f79009}.has-selection-marker{box-shadow:inset 10px 0 0 var(--success)}.no-selection-marker{box-shadow:inset 10px 0 0 var(--error)}.consolidation-red{background:var(--error)}.breadcrumb{color:var(--text-muted);margin-bottom:18px;font-size:13px;text-decoration:none;display:inline-block}.breadcrumb:hover{color:var(--accent)}.page-head{border-bottom:1px solid var(--border);margin-bottom:24px;padding-bottom:20px}.page-head .meta{color:var(--text-muted);margin-bottom:12px;font-size:14px}.title-edit-row{align-items:center;gap:10px;display:flex}.title-edit-row input{padding:4px 8px;font-size:22px;font-weight:700}.icon-button{background:var(--badge-bg);width:28px;height:28px;color:var(--text-muted);cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:hover{background:var(--accent-soft);color:var(--accent)}.badges{flex-wrap:wrap;gap:6px;display:flex}th.rank,td.rank{text-align:right;width:64px}th.points,td.points{text-align:right;width:90px}td.rank,td.points{font-variant-numeric:tabular-nums}tr.podium td.rank{color:var(--gold);font-weight:600}.fencer-name{font-weight:600}.fencer-first{color:var(--text-muted);font-weight:400}.nat{letter-spacing:.03em;color:var(--text-muted);background:var(--badge-bg);border-radius:4px;padding:2px 6px;font-size:11px;font-weight:700;display:inline-block}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;max-width:420px;padding:28px}.card label{margin:14px 0 4px;font-size:13px;font-weight:600;display:block}.card label:first-of-type{margin-top:0}.card input{border:1px solid var(--border);width:100%;color:var(--text);border-radius:7px;padding:9px 12px;font-family:inherit;font-size:14px}.card input:focus{border-color:var(--accent);outline:none}.card textarea{border:1px solid var(--border);width:100%;color:var(--text);resize:vertical;border-radius:7px;min-height:60px;padding:9px 12px;font-family:inherit;font-size:14px;display:block}.card textarea:focus{border-color:var(--accent);outline:none}.card input[type=checkbox]{width:auto}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:9px 18px;font-family:inherit;font-size:14px;font-weight:600;display:inline-flex}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:#1a43bd}.btn-secondary{background:var(--badge-bg);color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover:not(:disabled){opacity:.9}.btn-full{justify-content:center;width:100%;margin-top:20px}.dropzone{text-align:center;border:1.5px dashed #c7cbd3;border-radius:8px;padding:32px 20px}.inline-form-card{max-width:none;margin-bottom:20px}.inline-form-row{align-items:stretch;gap:8px;display:flex}.inline-form-row input{flex:1;width:auto}.inline-form-row select{appearance:none;background:var(--surface) url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"6\"><path d=\"M1 1l4 4 4-4\" stroke=\"%23667085\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>") no-repeat right 10px center;border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:7px;padding:9px 28px 9px 12px;font-family:inherit;font-size:14px}.dropzone input{margin:0 auto;display:block}.result-banner{border:1px solid;border-radius:8px;align-items:flex-start;gap:10px;margin-top:20px;padding:14px 16px;font-size:14px;display:flex}.result-banner.success{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.result-banner.error{background:var(--error-bg);border-color:var(--error-border);color:var(--error)}.ftl-search{margin:24px 0}.ftl-search .option-list{margin-bottom:12px}.option-list{flex-direction:column;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.option-list button,.option-list a{text-align:left;background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;box-sizing:border-box;border-radius:8px;padding:10px 14px;font-family:inherit;font-size:14px;text-decoration:none;display:block}.option-list button:hover,.option-list a:hover{border-color:var(--accent);background:var(--accent-soft)}.option-list-row{align-items:center;gap:10px;display:flex}.option-list-row input[type=checkbox]{cursor:pointer;flex-shrink:0}.option-list-row>button{flex:1;min-width:0}.option-list-favorite-row{align-items:center;gap:8px;display:flex}.option-list-favorite-row a{flex:1;width:auto;min-width:0}button.favorite-button{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--text-muted);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}button.favorite-button:hover{border-color:var(--accent);color:var(--accent)}button.favorite-button[aria-pressed=true]{color:#f2b705;background:#fef9e7;border-color:#f2b705}.ftl-import-form>*+*{margin-top:16px}.batch-results{flex-direction:column;gap:8px;display:flex}.batch-result{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:0 14px}.batch-result summary{cursor:pointer;align-items:center;gap:8px;padding:10px 0;font-size:14px;list-style:none;display:flex}.batch-result summary::-webkit-details-marker{display:none}.batch-result-icon{font-weight:700}.batch-result-chevron{color:var(--text-muted);margin-left:auto;transition:transform .15s}.batch-result[open] .batch-result-chevron{transform:rotate(90deg)}.batch-result-success .batch-result-icon{color:var(--success)}.batch-result-error .batch-result-icon{color:var(--error)}.batch-result p{margin:0 0 12px;font-size:13px}.selected-competition{background:var(--accent-soft);color:var(--accent);border-radius:8px;margin-bottom:4px;padding:10px 14px;font-size:14px;display:inline-block}.filters{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.filters select,.type-select{appearance:none;background:var(--surface) url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"6\"><path d=\"M1 1l4 4 4-4\" stroke=\"%23667085\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>") no-repeat right 10px center;border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:7px;padding:7px 28px 7px 12px;font-family:inherit;font-size:13px}.filters select:hover,.type-select:hover{border-color:#c7cbd3}.filters select:focus,.type-select:focus{border-color:var(--accent);outline:none}.filters label{color:var(--text-muted);align-items:center;gap:6px;font-size:13px;display:flex}.filters input[type=date]{border:1px solid var(--border);color:var(--text);border-radius:7px;padding:7px 12px;font-family:inherit;font-size:13px}.filter-checkboxes{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.filter-checkboxes .filter-checkbox{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:7px;flex-shrink:0;align-items:center;gap:6px;margin:0;padding:7px 12px;font-size:13px;display:inline-flex}.filter-checkboxes .filter-checkbox:hover{border-color:#c7cbd3}.filter-checkboxes .filter-checkbox:has(input:checked){background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.filter-checkboxes .filter-checkbox input{cursor:pointer}.search-field{align-items:center;display:flex;position:relative}.search-field .search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:11px}.search-field input{border:1px solid var(--border);width:220px;color:var(--text);border-radius:7px;padding:7px 12px 7px 30px;font-family:inherit;font-size:13px}.search-field input:focus{border-color:var(--accent);outline:none}.accordion-toggle-row{margin-bottom:16px}.accordion-toggle{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;width:36px;height:36px;font-size:20px;line-height:1}.accordion-toggle:hover{background:#1a43bd}.purposes-manager{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.purposes-label{color:var(--text-muted);margin-right:4px;font-size:13px;font-weight:600}.purpose-chip{background:var(--accent-soft);color:var(--accent);border-radius:7px;align-items:center;gap:6px;padding:6px 8px 6px 12px;font-size:13px;font-weight:500;display:inline-flex}.purpose-chip button{color:inherit;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:15px;line-height:1}.purpose-chip .purpose-chip-scale{align-items:center;gap:4px;font-size:12px;font-weight:600;text-decoration:underline;display:inline-flex}.purposes-manager .accordion-toggle{width:28px;height:28px;font-size:16px}.purpose-chip .purpose-chip-action{opacity:.8;align-items:center;display:inline-flex}.purpose-chip .purpose-chip-action:hover{opacity:1}.purpose-form{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.purpose-form-title{margin:0;font-weight:600}.purpose-palette{flex-wrap:wrap;gap:6px;display:flex}.purpose-swatch{border:1px solid var(--border);cursor:pointer;border-radius:6px;width:24px;height:24px;padding:0}.purpose-swatch-neutral{background:var(--accent-soft)}.purpose-swatch[aria-pressed=true]{outline:2px solid var(--text);outline-offset:2px}.competition-edit-modal{max-width:480px}.competition-edit-modal label{color:var(--text-muted);flex-direction:column;gap:4px;margin-top:12px;font-size:13px;font-weight:600;display:flex}.competition-edit-modal input,.competition-edit-modal select{border:1px solid var(--border);color:var(--text);border-radius:7px;padding:8px 10px;font-family:inherit;font-size:14px}.competition-edit-separator{border:none;border-top:1px solid var(--border);margin:20px 0 16px}.competition-edit-danger{justify-content:flex-start;display:flex}.competition-edit-modal input:focus,.competition-edit-modal select:focus{border-color:var(--accent);outline:none}a.win-rate-card-link{color:inherit;cursor:pointer;text-decoration:none}a.win-rate-card-link:hover{border-color:var(--accent)}.modal-overlay{z-index:20;background:#0006;position:fixed;inset:0}.modal{background:var(--surface);z-index:21;border-radius:10px;width:90%;max-width:380px;max-height:85vh;padding:24px;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 10px 30px #0003}.modal p{color:var(--text);font-size:14px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.modal-cancel{background:var(--badge-bg);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:7px;padding:8px 16px;font-family:inherit;font-size:14px}.modal-confirm{background:var(--error);color:#fff;cursor:pointer;border:none;border-radius:7px;padding:8px 16px;font-family:inherit;font-size:14px}.modal-confirm:hover{opacity:.9}.points-scale-modal{max-width:480px}.points-scale-grid{grid-template-columns:1fr 1fr;gap:12px 20px;margin-top:16px;display:grid}.points-scale-grid label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.points-scale-grid input{border:1px solid var(--border);color:var(--text);border-radius:7px;padding:8px 10px;font-family:inherit;font-size:14px}.points-scale-grid input:focus{border-color:var(--accent);outline:none}.points-scale-table{width:100%;margin-top:16px}.selection-bar{background:var(--accent-soft);border:1px solid var(--accent);border-radius:8px;align-items:center;gap:12px;margin-top:16px;padding:12px 16px;font-size:14px;display:flex}.selection-bar>*{white-space:nowrap;flex-shrink:0}.selection-panel{max-width:none;margin-top:10px}.selection-panel ul{flex-wrap:wrap;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.hero,.favorites-section{margin-bottom:32px}.favorites-empty{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:10px;padding:20px;font-size:14px}.nav-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.nav-card{background:var(--surface);border:1px solid var(--border);color:inherit;border-radius:10px;padding:24px;text-decoration:none;display:block}.nav-card:hover{border-color:var(--accent)}.nav-card .icon{margin-bottom:10px;font-size:24px}.nav-card h2{color:var(--text)}.nav-card p{color:var(--text-muted);font-size:14px}.matchup-pickers{gap:20px;margin-bottom:20px;display:flex}.matchup-picker{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex:1;padding:20px}.matchup-picker input{border:1px solid var(--border);width:100%;color:var(--text);border-radius:7px;padding:9px 12px;font-family:inherit;font-size:14px}.matchup-picker input:focus{border-color:var(--accent);outline:none}.matchup-picker-label{margin-bottom:10px;font-size:13px;font-weight:600}.matchup-picker select{border:1px solid var(--border);width:100%;color:var(--text);border-radius:7px;padding:9px 12px;font-family:inherit;font-size:14px}.matchup-side-b{flex:1}.matchup-picker-centered{flex-direction:column;justify-content:center;display:flex}.matchup-totals{gap:16px;margin-bottom:20px;display:flex}.matchup-total-card{text-align:center;flex:1}.matchup-curve{margin-bottom:24px}.matchup-curve h2{margin-bottom:8px}.comparison-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:8px 12px;font-size:13px}.comparison-tooltip-title{margin-bottom:4px;font-weight:600}.matchup-total-table caption{border-bottom:1px solid var(--border);background:#fafbfc;padding:10px 12px;font-size:14px;font-weight:700}.matchup-total-table caption .meta{color:var(--text-muted);margin-top:2px;font-size:12px;font-weight:400;display:block}.matchup-total-table th,.matchup-total-table td{text-align:center}.matchup-total-table td{font-size:22px;font-weight:700}.selective-ranking-table th,.selective-ranking-table td,.team-participation-table th,.team-participation-table td,.team-position-table th,.team-position-table td{border:1px solid var(--border);padding:8px 10px;font-size:12px}.selective-ranking-table .sort-header,.team-participation-table .sort-header,.team-position-table .sort-header,.matchup-detail-table .sort-header,.tracking-group-fencers-table .sort-header,.stage-detail-fencers-table .sort-header,.selection-fencers-table .sort-header,.season-plans-table .sort-header,.athlete-matches-table .sort-header{font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin:0;padding:0;display:inline-flex}.selective-ranking-table .sort-header:hover,.team-participation-table .sort-header:hover,.team-position-table .sort-header:hover,.matchup-detail-table .sort-header:hover,.tracking-group-fencers-table .sort-header:hover,.stage-detail-fencers-table .sort-header:hover,.selection-fencers-table .sort-header:hover,.season-plans-table .sort-header:hover,.athlete-matches-table .sort-header:hover{color:var(--accent)}.selective-ranking-table th[aria-sort=ascending] .sort-header:after,.team-participation-table th[aria-sort=ascending] .sort-header:after,.team-position-table th[aria-sort=ascending] .sort-header:after,.matchup-detail-table th[aria-sort=ascending] .sort-header:after,.tracking-group-fencers-table th[aria-sort=ascending] .sort-header:after,.stage-detail-fencers-table th[aria-sort=ascending] .sort-header:after,.selection-fencers-table th[aria-sort=ascending] .sort-header:after,.season-plans-table th[aria-sort=ascending] .sort-header:after,.athlete-matches-table th[aria-sort=ascending] .sort-header:after{content:"▲";font-size:8px}.selective-ranking-table th[aria-sort=descending] .sort-header:after,.team-participation-table th[aria-sort=descending] .sort-header:after,.team-position-table th[aria-sort=descending] .sort-header:after,.matchup-detail-table th[aria-sort=descending] .sort-header:after,.tracking-group-fencers-table th[aria-sort=descending] .sort-header:after,.stage-detail-fencers-table th[aria-sort=descending] .sort-header:after,.selection-fencers-table th[aria-sort=descending] .sort-header:after,.season-plans-table th[aria-sort=descending] .sort-header:after,.athlete-matches-table th[aria-sort=descending] .sort-header:after{content:"▼";font-size:8px}.team-participation-table td:not(:first-child),.team-position-table td:not(:first-child){text-align:center}.matchup-fencer-a-win{color:var(--success);font-weight:600}.matchup-fencer-a-loss{color:var(--error);font-weight:600}.team-participation-table .indicator-positive,.team-participation-table .indicator-positive a,.team-position-table .indicator-positive{color:var(--success)}.team-participation-table .indicator-negative,.team-participation-table .indicator-negative a,.team-position-table .indicator-negative{color:var(--error)}.athlete-team-participation-table td:nth-child(2){text-align:left}.athlete-team-total-row,.france-ranking-row{background:var(--badge-bg);font-weight:600}.team-section-heading{margin-top:32px}.team-position-table{max-width:420px}.selective-ranking-table .stat-cell{text-align:center;line-height:1.4}.selective-ranking-table .stat-rank{font-weight:600}.selective-ranking-table .stat-points{color:var(--text-muted);font-size:11px}.selective-ranking-table .bracket-t1{background:#fff3b0}.selective-ranking-table .bracket-t2{background:#e2e5ea}.selective-ranking-table .bracket-t4{background:#ffd8a8}.selective-ranking-table .bracket-t8{background:#bfdbfe}.selective-ranking-table .bracket-t16{background:#bbf7d0}.selective-ranking-table .stat-cell-inactive{background:var(--badge-bg);color:var(--text-muted)}.selective-ranking-table .stat-cell-echeance{border:2px solid var(--text-muted)}.view-toggle{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex}.view-toggle button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-family:inherit;font-size:14px}.view-toggle button:hover{color:var(--text)}.view-toggle button.active,.view-toggle button[data-state=active]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.trip-calendar{border:1px solid var(--border);background:var(--surface);border-radius:8px;overflow:hidden}.trip-calendar-nav{border-bottom:1px solid var(--border);justify-content:center;align-items:center;gap:20px;padding:12px 0;display:flex}.trip-calendar-nav button:hover{border-color:var(--accent);color:var(--accent)}.trip-calendar-month{text-align:center;min-width:160px;font-size:14px;font-weight:600}.trip-calendar-weekdays,.trip-calendar-days{grid-template-columns:repeat(7,1fr);display:grid}.trip-calendar-weekday{text-align:center;text-transform:uppercase;color:var(--text-muted);background:var(--badge-bg);padding:6px 0;font-size:11px;font-weight:600}.trip-calendar-week{border-top:1px solid var(--border)}.trip-calendar-day{color:var(--text);min-height:20px;padding:4px 6px;font-size:12px}.trip-calendar-day-outside{color:var(--text-muted);opacity:.5}.trip-calendar-lanes{grid-template-columns:repeat(7,1fr);gap:3px;padding:0 4px 4px;display:grid}.trip-band{text-align:left;background:var(--accent-soft);width:100%;color:var(--accent);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border:none;border-radius:5px;padding:3px 8px;font-family:inherit;font-size:12px;display:block;overflow:hidden}.trip-band:hover{background:var(--accent);color:#fff}.season-calendar-actions{margin-bottom:12px}.season-calendar-wrapper{align-items:flex-start;gap:10px;display:flex}.season-calendar{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex:auto;align-items:flex-start;gap:2px;min-width:0;padding:8px;display:flex;overflow-x:auto}.season-calendar-day-labels{flex:none;padding-top:9px}.season-calendar-day-labels-body{position:relative}.season-calendar-day-label{text-align:right;color:var(--text-muted);font-size:10px;position:absolute;left:0;right:0;transform:translateY(-50%)}.season-calendar-month{flex:1 1 0;min-width:46px}.season-calendar-month-header{text-align:center;color:var(--text-muted);white-space:nowrap;padding-bottom:4px;font-size:11px;font-weight:600}.season-calendar-month-body{border-left:1px solid var(--border);border-right:1px solid var(--border);background-image:repeating-linear-gradient(to bottom, transparent, transparent 26px, var(--border) 26px, var(--border) 27px);position:relative}.season-calendar-band{box-sizing:border-box;z-index:1;border:1px solid var(--surface);text-align:center;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:3px;flex-direction:column;justify-content:center;font-size:10px;font-weight:600;text-decoration:none;display:flex;position:absolute;overflow:hidden}.season-calendar-band:hover{filter:brightness(.92)}.season-calendar-trip-band{box-sizing:border-box;z-index:0;border:1px dashed var(--text-muted);text-align:center;font:inherit;cursor:pointer;background:#66708514;border-radius:5px;flex-direction:column;justify-content:center;padding:2px 4px;display:flex;position:absolute;left:1px;right:1px}.season-calendar-trip-band:hover{border-color:var(--accent);background:var(--accent-soft)}.season-calendar-trip-label{color:var(--text-muted);text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:9px;font-weight:700;display:block;overflow:hidden}.season-calendar-trip-band:hover .season-calendar-trip-label{color:var(--accent)}.season-calendar-stage-band{box-sizing:border-box;z-index:0;border:1px solid var(--success-border);background:var(--success-bg);text-align:center;font:inherit;cursor:pointer;border-radius:5px;flex-direction:column;justify-content:center;padding:2px 4px;display:flex;position:absolute;left:1px;right:1px}.season-calendar-stage-band:hover{border-color:var(--success);background:#d3f5e5}.season-calendar-stage-label,.season-calendar-stage-place{color:var(--success);text-transform:uppercase;overflow-wrap:break-word;font-size:9px;font-weight:700;display:block}.season-calendar-stage-place{opacity:.85;font-weight:600}.trip-modal{max-width:480px;max-height:85vh;overflow-y:auto}.trip-modal label{color:var(--text-muted);flex-direction:column;gap:4px;margin-top:12px;font-size:13px;font-weight:600;display:flex}.trip-modal input{border:1px solid var(--border);color:var(--text);border-radius:7px;padding:8px 10px;font-family:inherit;font-size:14px}.trip-modal input:focus{border-color:var(--accent);outline:none}.trip-modal h3{margin:20px 0 8px;font-size:14px}.trip-modal-competitions,.trip-modal-stages{color:var(--text);flex-direction:column;gap:4px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.trip-modal-competitions li,.trip-modal-stages li{justify-content:space-between;align-items:center;gap:8px;display:flex}.trip-attach-competition,.trip-attach-stage{gap:8px;margin-top:10px;display:flex}.trip-attach-competition select,.trip-attach-stage select{flex:1;min-width:0}.trip-attach-competition .btn,.trip-attach-stage .btn{flex-shrink:0}.athlete-edit-modal label{color:var(--text-muted);flex-direction:column;gap:4px;margin-top:12px;font-size:13px;font-weight:600;display:flex}.athlete-edit-modal input{border:1px solid var(--border);color:var(--text);border-radius:7px;padding:8px 10px;font-family:inherit;font-size:14px}.athlete-edit-modal input:focus{border-color:var(--accent);outline:none}.stage-modal{max-width:480px}.stage-modal label{color:var(--text-muted);flex-direction:column;gap:4px;margin-top:12px;font-size:13px;font-weight:600;display:flex}.stage-modal input,.stage-modal textarea{border:1px solid var(--border);color:var(--text);border-radius:7px;padding:8px 10px;font-family:inherit;font-size:14px}.stage-modal textarea{resize:vertical;min-height:60px}.stage-modal input:focus,.stage-modal textarea:focus{border-color:var(--accent);outline:none}.stage-detail-card{max-width:none}.stage-detail-fields-row{flex-wrap:wrap;gap:16px;display:flex}.stage-detail-fields-row+.stage-detail-fields-row{margin-top:14px}.stage-detail-fields-row label{flex:1;min-width:160px;margin-top:0}.stage-detail-card label.stage-detail-notes{margin-top:14px}.staff-page-fields-row{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.staff-page-fields-row label{flex:1;min-width:160px;margin-top:0}.staff-page-fields-row select{appearance:none;background:var(--surface) url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"6\"><path d=\"M1 1l4 4 4-4\" stroke=\"%23667085\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>") no-repeat right 10px center;border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:7px;padding:9px 28px 9px 12px;font-family:inherit;font-size:14px;display:block}.selection-panel-card{max-width:none;margin:24px 0;padding:10px}.selection-panel-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.selection-panel-toggle{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;margin:0;padding:0;display:flex}.selection-panel-actions{align-items:center;gap:4px;display:flex}.selection-panel-toggle:hover h2{color:var(--accent)}.selection-panel-toggle h2{margin:0}.selection-panel-body{margin-top:20px}.selection-panel-body .title-edit-row{margin-bottom:20px}.selection-add-row{flex-wrap:wrap;gap:24px;margin-bottom:20px;display:flex}.selection-add-row>div{flex:1;min-width:240px}.trip-panel-card{max-width:none;margin:24px 0;padding:10px}.trip-panel-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.trip-panel-toggle{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;margin:0;padding:0;display:flex}.trip-panel-toggle:hover h2{color:var(--accent)}.trip-panel-toggle h2{margin:0}.trip-panel-body{margin-top:20px}.trip-panel-entry+.trip-panel-entry{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.trip-panel-items{margin-top:8px;padding-left:20px}.trip-panel-items li{margin-top:4px}.roadmap-composition-card{max-width:none;margin-bottom:20px}.roadmap-fencers-table{margin-bottom:20px}.roadmap-fencers-table input{border:1px solid var(--border);width:100%;color:var(--text);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:13px}.roadmap-fencers-table input:focus{border-color:var(--accent);outline:none}.roadmap-print-title{text-align:center;margin:0 0 8px;font-size:15px}.roadmap-print-box{margin-bottom:6px}.roadmap-print-table{border-radius:0;font-size:11px;overflow:visible}.roadmap-print-table th,.roadmap-print-table td{border:1px solid var(--border);padding:2px 6px;line-height:1.3}.roadmap-print-table th{text-align:left;white-space:nowrap;vertical-align:top;background:#fafbfc}.roadmap-fencers-print-table{table-layout:fixed}.roadmap-fencers-print-table th{white-space:normal}.roadmap-label-value-print-table{table-layout:fixed}.roadmap-label-value-print-table th{white-space:normal}@page{margin:10mm}@media print{body{background:var(--surface)}.topnav,.breadcrumb,.page-head,.roadmap-print-actions{display:none}main{max-width:none;margin:0;padding:0}}.win-rate-cards{gap:16px;margin-bottom:20px;display:flex}.win-rate-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:10px;flex:1;padding:16px}.win-rate-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:600}.win-rate-value{margin-top:4px;font-size:28px;font-weight:700}.win-rate-meta{color:var(--text-muted);margin-top:4px;font-size:13px}.admin-stats-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;margin-bottom:24px;display:grid}.admin-stat-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;padding:16px;display:flex}.admin-stat-value{font-size:28px;font-weight:700}.admin-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:4px;font-size:13px;font-weight:600}.statistics-views-table .filter-checkboxes{margin-bottom:0}.statistics-views-table .purposes-label{display:none}.statistics-views-table td:first-child{white-space:nowrap}.shared-with-me h2{margin:32px 0 12px}.shared-with-me h2:first-of-type{margin-top:0}.inline-dropdown{align-items:center;gap:8px;display:inline-flex;position:relative}.inline-dropdown-trigger{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:2px 0;font-family:inherit;font-size:13px;display:inline-flex}.inline-dropdown-trigger:hover .inline-dropdown-value,.inline-dropdown-trigger[aria-expanded=true] .inline-dropdown-value{text-decoration:underline}.inline-dropdown-none{color:var(--text-muted)}.inline-dropdown-trigger svg{color:var(--text-muted);flex-shrink:0}.inline-dropdown-menu{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;min-width:100%;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 20px #00000014}.inline-dropdown-menu label{white-space:nowrap;cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:13px;display:flex}.inline-dropdown-menu label:hover{background:var(--bg,#f5f6f8)}.share-panel-card{max-width:none;margin:0 0 20px;padding:10px}.share-panel-toggle{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;margin:0;padding:0;display:flex}.share-panel-toggle h2{margin:0}.share-panel-toggle:hover h2{color:var(--accent)}.share-panel-body{align-items:center;margin:16px 0 0}.status-badge{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.status-badge-published{color:#1d7a46;background:#e3f4ea}.status-badge-draft{color:var(--text-muted);background:#f1f2f4}.position-record{color:var(--text-muted);white-space:nowrap;margin-top:2px;font-size:11px;font-weight:600}.position-record .record-wins{color:#1d7a46}.position-record .record-draws{color:#111827}.position-record .record-losses{color:#c0392b}.statistics-views-body>*{margin:0}.statistics-views-body>*+*{margin-top:12px}.statistics-views-table{overflow:visible}.statistics-views-table td{vertical-align:middle}.cercle-leave-row{margin-top:20px}.selection-panel-title{align-items:center;gap:8px;min-width:0;display:flex}.selection-title-edit{align-items:center;gap:6px;display:flex}.selection-title-edit input{min-width:280px;padding:4px 8px;font-size:18px;font-weight:600}.inline-dropdown-action{text-align:left;width:100%;color:var(--text);white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 10px;font-family:inherit;font-size:13px;display:block}.inline-dropdown-action:hover{background:var(--bg,#f5f6f8)}.share-publish-row{flex-wrap:wrap;align-items:center;gap:8px 28px;margin-bottom:16px;display:flex}.status-badge-outdated{color:#b4610e;background:#fdf0e1}.publication-dot{border-radius:50%;flex-shrink:0;width:11px;height:11px;display:inline-block}.publication-dot-draft{background:#c3c8d0}.publication-dot-published{background:#1d7a46}.publication-dot-outdated{background:#e08a1e}.competition-link{white-space:nowrap;align-items:center;gap:4px;margin-left:8px;display:inline-flex}.matchup-curve-scroll{max-width:100%;overflow-x:auto}.matchup-curve-legend{justify-content:center;gap:20px;margin-bottom:4px;font-size:13px;display:flex}.matchup-curve-legend>span{align-items:center;gap:6px;display:inline-flex}.matchup-curve-legend-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.topnav-actions{align-items:center;gap:12px;display:flex}.language-switcher{border:1px solid var(--border);border-radius:7px;display:inline-flex;overflow:hidden}.language-switcher button{background:var(--surface);color:var(--text-muted);cursor:pointer;border:none;padding:5px 9px;font-family:inherit;font-size:12px;font-weight:600}.language-switcher button[aria-pressed=true]{background:var(--accent);color:#fff}.auth-page .language-switcher{margin-top:16px}.elimination-stage-table{margin:20px 0}.elimination-stage-table caption{text-align:left;margin-bottom:8px;font-weight:600}.elimination-stage-table td,.elimination-stage-table thead th{text-align:center;white-space:nowrap}.elimination-stage-table tbody th{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;vertical-align:middle;padding:16px 20px;font-size:14px;font-weight:400}.elimination-stage-table tbody tr:last-child th{border-bottom:none}.elimination-stage-table .stage-count{color:var(--text-muted);font-size:11px}
