@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/438aa629764e75f3-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/875ae681bfde4580-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/51251f8b9793cdb3-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/e857b654a2caa584-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/cc978ac5ee68c2b6-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/4c9affa5bc8f420e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Manrope Fallback;src:local("Arial");ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.00%;size-adjust:103.19%}.__className_7e352e{font-family:Manrope,Manrope Fallback;font-style:normal}.__variable_7e352e{--font-manrope:"Manrope","Manrope Fallback"}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/3d165c286d94e27c-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/e54d16b9f2c4535b-s.p.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/7c21074d9bafed1b-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/916860560b9a2bc2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/591e43f23f51e5a5-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/97ac91773d3121b2-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Source Serif 4 Fallback";src:local("Times New Roman");ascent-override:87.87%;descent-override:28.41%;line-gap-override:0.00%;size-adjust:117.91%}.__className_54164e{font-family:"Source Serif 4","Source Serif 4 Fallback";font-style:normal}.__variable_54164e{--font-source-serif:"Source Serif 4","Source Serif 4 Fallback"}:root{--ink:#1a1f2c;--ink-muted:#5c6570;--paper:#e9e6df;--line:#c8c2b6;--line-soft:#d9d4ca;--accent:#1e3a5f;--accent-soft:#e8eef5;--up:#1f6b4a;--down:#9b3d35;--surface:#ffffff;--surface-muted:#f2f0ea;--row-even:#f0ede6;--row-hover:#e8eef5;--row-expanded:#e2eaf3;--shadow:0 1px 2px rgba(26,31,44,0.06);--radius:8px;--radius-sm:6px;--control-h:2.15rem;--title-red:#a61b12;--font-sans:var(--font-manrope),"Segoe UI","Noto Sans",sans-serif;--font-serif:var(--font-source-serif),Georgia,"Noto Serif",serif;--medal-gold-bg:#f3ead0;--medal-gold-ink:#7a6118;--medal-silver-bg:#e8eaed;--medal-silver-ink:#4f575f;--medal-bronze-bg:#f0e6dc;--medal-bronze-ink:#7a5236}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);min-height:100%;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button,input,select{font:inherit}.app-shell{max-width:1480px;margin:0 auto;padding:1.1rem 1.5rem 2.5rem}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem;padding:.55rem 0 .85rem;border-bottom:1px solid var(--line);background:transparent}.site-logo{display:inline-flex;align-items:center;gap:.65rem;min-width:0;text-decoration:none}.site-logo,.site-logo:hover{color:var(--ink)}.site-logo:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.site-logo-mark{display:inline-flex;flex-shrink:0;line-height:0;border-radius:7px;overflow:hidden}.site-logo-mark img{display:block;border-radius:7px}.site-logo-text{min-width:0;font-family:var(--font-serif);font-size:clamp(.98rem,1.7vw,1.18rem);font-weight:700;letter-spacing:-.02em;line-height:1.2}.header-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.65rem .85rem;font-size:.9rem;flex:0 0 auto}.locale-switch a{color:var(--ink-muted);font-size:.82rem;margin-left:.45rem}.locale-switch a.active{color:var(--accent);font-weight:600}.site-footer{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:.75rem 1.5rem;flex-wrap:wrap;margin-top:2rem;padding-top:1.1rem;border-top:1px solid var(--line);color:var(--ink-muted);font-size:.82rem;line-height:1.4}.site-footer p{margin:0}.site-footer a{color:var(--ink-muted);text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:.15em;transition:color .12s ease,-webkit-text-decoration-color .12s ease;transition:color .12s ease,text-decoration-color .12s ease;transition:color .12s ease,text-decoration-color .12s ease,-webkit-text-decoration-color .12s ease}.site-footer a:hover{color:var(--accent);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.site-footer a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.breadcrumb{margin:0 0 .65rem;font-size:.86rem}.rankings-page{display:grid;grid-gap:0;gap:0;max-width:1440px;min-width:0;width:100%}.rankings-intro{display:grid;grid-gap:.25rem;gap:.25rem;margin-bottom:1rem;max-width:42rem}.page-title{font-family:var(--font-serif);font-size:clamp(1.4rem,2.4vw,1.8rem);margin:0;letter-spacing:-.02em;line-height:1.25;font-weight:650;overflow-wrap:anywhere;word-break:break-word}.page-subtitle{font-size:.95rem;line-height:1.45;font-weight:450}.page-subtitle,.period-meta{margin:0;color:var(--ink-muted)}.period-meta{font-size:.88rem}.tournament-intro{display:grid;grid-gap:.2rem;gap:.2rem;margin-bottom:1.1rem}.time-control-selector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,26rem);max-width:100%;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface);margin:0 0 1.05rem}.time-control-option{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-right:1px solid var(--line-soft);background:var(--surface);color:#2a312e;min-height:40px;min-width:0;padding:.55rem 1rem;cursor:pointer;font-size:.92rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;transition:background .14s ease,color .14s ease}.time-control-option:last-child{border-right:0}.time-control-option:hover{background:var(--surface-muted);color:var(--ink)}.time-control-option:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.time-control-option[data-active=true]{background:var(--accent);color:#fffefb}.time-control-option[data-active=true]:hover{background:#16304f;color:#fffefb}.player-time-control{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:100%;margin:0;box-sizing:border-box;border:0;border-bottom:1px solid var(--line-soft);border-radius:0;overflow:hidden;background:var(--surface-muted)}.player-time-control-option{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-right:1px solid var(--line-soft);background:transparent;color:#2a312e;min-height:44px;min-width:0;padding:.55rem .5rem;cursor:pointer;font-size:.92rem;font-weight:600;display:flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;transition:background .14s ease,color .14s ease}.player-time-control-option:last-child{border-right:0}.player-time-control-option:hover{background:var(--surface);color:var(--ink)}.player-time-control-option:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.player-time-control-option[data-active=true]{background:var(--accent);color:#fffefb}.player-time-control-option[data-active=true]:hover{background:#16304f;color:#fffefb}.filters{gap:.55rem .85rem;margin-bottom:.75rem}.filter-group,.filters{display:flex;flex-wrap:wrap;align-items:center}.filter-group{gap:.35rem}.filter-group+.filter-group{padding-left:.7rem;border-left:1px solid var(--line-soft)}.filter-group-search{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;flex:0 1 auto}.filter-group-controls{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.filter-group-controls .select:first-child{width:9rem}.filter-group-controls .select:last-child{width:9.25rem}.btn,.chip,.search-input,.select{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--radius-sm);min-height:var(--control-h);padding:.35rem .7rem;box-shadow:none}.chip{cursor:pointer;font-size:.86rem;font-weight:500;transition:background .12s ease,border-color .12s ease,color .12s ease}.chip:hover{border-color:#b7cfc7;background:var(--surface-muted)}.btn:focus-visible,.chip:focus-visible,.info-tip-btn:focus-visible,.live-rating-details-btn:focus-visible,.player-link:focus-visible,.search-input:focus-visible,.select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chip[data-active=true]{background:var(--accent-soft);border-color:#a8b8cc;color:var(--accent);font-weight:600}.chip-clear{color:var(--ink-muted)}.select{font-size:.86rem}.search-field{position:relative;display:flex;align-items:center;width:min(340px,100%)}.search-icon{position:absolute;left:.7rem;color:var(--ink-muted);display:grid;place-items:center;pointer-events:none}.search-input{width:100%;max-width:340px;padding-left:2.15rem;font-size:.9rem}.search-input:focus{border-color:#a8b8cc}.btn{cursor:pointer;background:var(--accent);color:white;border-color:var(--accent);display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font-weight:600;font-size:.88rem}.btn:hover{color:white;filter:brightness(1.04)}.btn.secondary{background:var(--surface);color:var(--ink);border-color:var(--line);font-weight:500}.btn.secondary:hover{color:var(--accent);border-color:#a8b8cc;background:var(--accent-soft);filter:none}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.rankings-status{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;color:var(--ink-muted);font-size:.8rem;margin:0 0 .65rem;max-width:1360px}.status-dot{width:.4rem;height:.4rem;border-radius:50%;background:var(--accent);opacity:.7}.status-sep{opacity:.6}.ranking-dashboard{display:grid;grid-template-columns:minmax(0,1fr) minmax(440px,500px);grid-gap:1.375rem;gap:1.375rem;align-items:start;width:100%}.ranking-main{display:grid;grid-gap:.75rem;gap:.75rem;min-width:0}.table-wrap{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius);overflow-x:auto;width:100%;max-width:100%;box-shadow:var(--shadow)}.rank-table{width:100%;min-width:720px;border-collapse:collapse;table-layout:fixed;font-size:.9rem}.rank-table col.col-rank{width:50px}.rank-table col.col-player{width:auto}.rank-table col.col-official{width:100px}.rank-table col.col-live{width:135px}.rank-table col.col-delta{width:90px}.rank-table col.col-age{width:54px}.rank-table th{text-align:left;font-weight:600;color:#4f5853;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;height:42px;padding:.35rem .55rem;border-bottom:1.5px solid var(--line);background:var(--surface-muted);white-space:nowrap;vertical-align:middle}.rank-table td{height:52px;padding:.25rem .55rem;border-bottom:1px solid var(--line-soft);vertical-align:middle}.rank-table tbody tr[data-stripe=odd]>td{background:var(--surface)}.rank-table tbody tr[data-stripe=even]>td{background:var(--row-even)}.rank-table tbody tr:not(.rank-history-row):hover>td{background:var(--row-hover)}.rank-table tbody tr:not(.rank-history-row):hover .live-rating-details-btn{color:var(--accent);border-color:#c5ddd6;background:var(--surface)}.rank-table .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.rank-table td.col-rank,.rank-table th.col-rank{text-align:center;padding-left:.35rem;padding-right:.35rem}.rank-table td.col-official,.rank-table th.col-official{padding-left:.9rem;box-shadow:inset 1px 0 0 var(--line)}.rank-table td.col-live,.rank-table th.col-live{text-align:right}.official-num{color:var(--ink-muted);font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.age-num{color:#3d4541;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.live-num,.live-rating-value{font-weight:700;font-size:.98rem;color:var(--ink);line-height:1}.live-num,.live-rating-cell,.live-rating-value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.live-rating-cell{display:inline-grid;grid-template-columns:minmax(3.6rem,auto) 28px;align-items:center;justify-content:end;column-gap:.4rem;width:100%}.live-rating-value{text-align:right;justify-self:end}.live-rating-action{width:28px;height:28px;display:inline-grid;place-items:center}.live-rating-details-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:28px;height:28px;border-radius:6px;border:1px solid transparent;background:transparent;color:#5a635c;display:inline-grid;place-items:center;padding:0;cursor:pointer;transition:background .14s ease,color .14s ease,border-color .14s ease}.live-rating-details-btn:hover{color:var(--accent);background:var(--accent-soft);border-color:#a8b8cc}.live-rating-details-btn:active{transform:scale(.96)}.live-rating-details-btn[aria-expanded=true]{color:var(--accent);background:var(--accent-soft);border-color:#a8b8cc}.live-rating-details-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rating-change{display:inline-flex;align-items:center;justify-content:flex-end;gap:.2rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.rating-change-marker{font-size:.62rem;line-height:1}.delta-up{color:var(--up)}.delta-down{color:var(--down)}.delta-flat{color:#6a736d;font-weight:500}.th-with-info{display:inline-flex;align-items:center;justify-content:flex-end;gap:.28rem;width:100%}.info-tip{position:relative;display:inline-flex}.info-tip-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:.95rem;height:.95rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-muted);font-size:.6rem;font-weight:700;line-height:1;padding:0;cursor:pointer}.info-tip-btn:hover{border-color:#a8b8cc;color:var(--accent)}.info-tip-panel{position:absolute;top:calc(100% + .4rem);right:0;z-index:5;width:min(260px,70vw);padding:.55rem .65rem;background:var(--ink);color:#f5f5f2;border-radius:var(--radius-sm);font-size:.75rem;font-weight:450;text-transform:none;letter-spacing:0;line-height:1.4;box-shadow:var(--shadow)}.rank-pill{display:inline-flex;align-items:center;justify-content:center;min-width:1.45rem;height:1.45rem;padding:0 .28rem;border-radius:999px;color:#3d4541;font-weight:600;font-size:.84rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rank-top-1 .rank-pill{background:var(--medal-gold-bg);color:var(--medal-gold-ink);font-weight:700}.rank-top-2 .rank-pill{background:var(--medal-silver-bg);color:var(--medal-silver-ink);font-weight:700}.rank-top-3 .rank-pill{background:var(--medal-bronze-bg);color:var(--medal-bronze-ink);font-weight:700}.rank-row-expanded>td{background:var(--row-expanded)!important;border-bottom-color:transparent}.rank-history-row td{height:auto;padding:0;background:var(--row-expanded)!important;border-bottom:1px solid var(--line-soft)}.rank-history-row:hover{background:transparent!important}.title-badge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:21px;padding:0 .35rem;border-radius:4px;font-size:.68rem;font-weight:700;letter-spacing:.03em;line-height:1;flex-shrink:0;color:#fff;border:0;background:var(--title-red)}.title-badge--sm{min-width:30px;height:18px;font-size:.62rem;border-radius:3px}.player-link{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:var(--ink);max-width:100%;min-width:0;border-radius:4px;text-decoration:none}.player-link:hover{color:var(--accent)}.player-link:hover .player-name{text-decoration:underline;text-underline-offset:2px}.player-cell{display:grid;grid-gap:.28rem;gap:.28rem;min-width:0;max-width:100%}.player-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-games-panel{margin:0 .7rem .65rem 2.4rem;padding:.55rem .7rem .6rem;border:1px solid #d2e3dd;border-radius:var(--radius-sm);background:var(--surface);animation:fade-up .14s ease}.live-games-heading{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:#4f5853;margin-bottom:.35rem;font-weight:600}.live-games-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:0;gap:0}.live-games-list li{display:grid;grid-template-columns:4rem minmax(8rem,1.2fr) minmax(7rem,1.2fr) 3rem 4rem;grid-gap:.35rem .65rem;gap:.35rem .65rem;align-items:center;font-size:.86rem;padding:.34rem .1rem;border-top:1px solid var(--line-soft)}.live-games-list li:first-child{border-top:0}.live-game-date{color:#4f5853;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.82rem;font-weight:500}.live-game-vs{min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;font-weight:600;color:var(--ink)}.live-game-opp-rating{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;color:#3d4541}.live-game-tournament{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-game-result{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;color:#3d4541;font-weight:600}.live-game-delta{justify-content:flex-end}.live-games-summary{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:.5rem;padding-top:.45rem;border-top:1px solid var(--line-soft);font-size:.84rem;color:#4f5853;align-items:center}.live-games-summary strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.live-games-summary-change{display:inline-flex;align-items:center;gap:.35rem}.pagination{display:flex;align-items:center;justify-content:center;gap:.85rem;margin-top:.15rem}.pagination-btn{min-width:6.5rem}.pagination-meta{color:#3d4541;font-size:.88rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.upcoming-games-panel{background:var(--surface);border:1.5px solid var(--line);border-radius:9px;padding:1rem;position:-webkit-sticky;position:sticky;top:1.1rem;min-width:0;width:100%;box-shadow:var(--shadow)}.upcoming-games-heading-row{display:flex;align-items:center;justify-content:space-between;gap:.65rem;margin-bottom:.85rem;padding-bottom:.75rem;border-bottom:1.5px solid var(--line)}.upcoming-games-title{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.015em;text-transform:none;color:var(--ink);line-height:1.25}.upcoming-games-count{flex-shrink:0;display:inline-flex;align-items:center;min-height:1.5rem;padding:.15rem .55rem;border-radius:999px;background:var(--surface-muted);border:1px solid var(--line);font-size:.72rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#5a635c;white-space:nowrap}.upcoming-games-empty{margin:0;padding:.35rem 0 .15rem;color:var(--ink-muted);font-size:.88rem;line-height:1.45;display:grid;grid-gap:.45rem;gap:.45rem;justify-items:start}.upcoming-games-empty p{margin:0}.upcoming-games-error{display:grid;grid-gap:.65rem;gap:.65rem;justify-items:start}.upcoming-retry-btn{min-height:2rem;padding:.3rem .75rem;font-size:.82rem}.upcoming-games-skeleton{display:grid;grid-gap:.55rem;gap:.55rem}.upcoming-skel-line{height:.7rem;border-radius:4px;background:linear-gradient(90deg,#f0ece4,#f7f5ef 50%,#f0ece4);background-size:200% 100%;animation:skel-shine 1.2s ease-in-out infinite}.upcoming-skel-line.short{width:42%}.upcoming-skel-line.mid{width:78%}.upcoming-skel-pairing{height:2.2rem;border-radius:4px;background:linear-gradient(90deg,#f0ece4,#f7f5ef 50%,#f0ece4);background-size:200% 100%;animation:skel-shine 1.2s ease-in-out infinite}@keyframes skel-shine{0%{background-position:100% 0}to{background-position:-100% 0}}.upcoming-games-list{display:grid;grid-gap:1.15rem;gap:1.15rem}.upcoming-tournament-group{display:grid;grid-gap:.65rem;gap:.65rem;min-width:0}.upcoming-tournament-group.is-subsequent{padding-top:1rem;border-top:1.5px solid var(--line)}.upcoming-tournament-header{display:grid;grid-gap:.2rem;gap:.2rem;min-width:0;margin-bottom:.15rem}.upcoming-tournament-heading{margin:0;font-size:inherit;font-weight:inherit}.upcoming-tournament-name{margin:0;font-size:.92rem;font-weight:700;line-height:1.35;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}a.upcoming-tournament-name:hover{color:var(--accent)}a.upcoming-tournament-name:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.upcoming-tournament-meta{margin:0;font-size:.78rem;color:var(--ink-muted);line-height:1.35}.upcoming-round-group{display:grid;grid-gap:.2rem;gap:.2rem;min-width:0}.upcoming-round-group+.upcoming-round-group{margin-top:.55rem}.upcoming-round-header{display:inline-flex;align-items:center;gap:.4rem;margin:0 0 .2rem;width:-moz-fit-content;width:fit-content;max-width:100%;padding:.35rem .65rem;border-radius:6px;border:0;background:#eef6f3;font-size:.75rem;font-weight:600;color:#2f4f47;line-height:1.3}.upcoming-round-icon{flex-shrink:0;color:var(--accent);opacity:.85}.upcoming-pairing-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:0;gap:0}.upcoming-pairing-row{display:grid;grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr);grid-column-gap:.45rem;column-gap:.45rem;align-items:start;min-width:0;padding:.65rem .2rem;border-bottom:1px solid var(--line);border-radius:4px;transition:background .12s ease}.upcoming-pairing-row.is-stripe{background:var(--row-even)}.upcoming-pairing-row:hover{background:var(--row-hover)}.upcoming-pairing-list>li:last-child{border-bottom:0}.upcoming-pairing-sep{display:grid;place-items:center;color:#9a9388;font-size:.8rem;font-weight:500;line-height:1}.upcoming-pairing-result{display:grid;place-items:center;min-width:2.4rem;padding:.12rem .2rem;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-size:.78rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.2;white-space:nowrap}.upcoming-pairing-row.is-completed .upcoming-player-name{color:#3d4541}.upcoming-player{display:grid;grid-gap:.12rem;gap:.12rem;min-width:0;max-width:100%;font-size:.82rem;line-height:1.3}.upcoming-player-main{display:flex;align-items:baseline;flex-wrap:wrap;gap:.22rem .3rem;min-width:0}.upcoming-player.is-primary .upcoming-player-name{font-weight:600;color:var(--ink)}.upcoming-player.is-secondary .upcoming-player-name{font-weight:500;color:#2f3733}.upcoming-player-name{min-width:0;flex:1 1 6.5rem;overflow-wrap:anywhere;word-break:break-word;color:inherit;text-decoration:none}a.upcoming-player-name:hover{color:var(--accent);text-decoration:underline;text-underline-offset:2px}a.upcoming-player-name:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.upcoming-player .title-badge,.upcoming-title-badge{flex-shrink:0;min-width:28px;height:18px;padding:0 .32rem;font-size:.58rem;border-radius:3px}.upcoming-player-rating{font-size:.72rem;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#7a7368;white-space:nowrap;padding-left:.05rem}.upcoming-games-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.85rem;padding:.7rem .15rem .1rem;border-top:1.5px solid var(--line);color:var(--accent);font-size:.84rem;font-weight:600;text-decoration:none;border-radius:4px}.upcoming-games-footer:hover{color:#16304f;background:transparent}.upcoming-games-footer:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.empty-cell{padding:1.25rem .85rem!important;text-align:center}.empty-state{display:inline-flex;flex-direction:column;align-items:center;gap:.55rem;color:var(--ink-muted)}.empty-state-icon{opacity:.4;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mobile-only{display:none}.disclaimer{margin-top:1.5rem;margin-bottom:0;color:var(--ink-muted);font-size:.8rem;line-height:1.45;max-width:62ch}@media (prefers-reduced-motion:reduce){.player-hero-decor{transition:none}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem;margin-bottom:1rem;box-shadow:var(--shadow)}.panel h2{font-family:var(--font-serif);font-size:1.15rem;margin:0 0 .85rem;letter-spacing:-.01em}.panel-ratings{padding:0;overflow:hidden}.panel-ratings .stat .value{font-size:1.55rem}.panel-ratings .stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem 1rem;padding:1.05rem 1.15rem 1.15rem}.panel-ratings .stat .label{overflow-wrap:anywhere}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:.85rem 1rem;gap:.85rem 1rem}.stat{border-top:2px solid var(--accent-soft);padding-top:.45rem}.stat .label{color:var(--ink-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:.2rem}.stat .value{font-size:1.35rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.2}.chart{width:100%;height:220px}.chart-line{fill:none;stroke:var(--accent);stroke-width:2}.chart-live{fill:var(--accent)}.chart-point{fill:var(--ink)}.admin-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.admin-nav a{padding:.35rem .65rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-size:.9rem}.admin-nav a.active{border-color:var(--accent);background:var(--accent-soft)}.form-stack{display:grid;grid-gap:.75rem;gap:.75rem;max-width:420px}.form-stack label{display:grid;grid-gap:.3rem;gap:.3rem;font-size:.9rem}.calc-details,.muted{color:var(--ink-muted)}.calc-details{background:var(--surface-muted);border-left:3px solid var(--accent);margin:.4rem 0 .2rem;padding:.65rem .85rem;font-size:.88rem;border-radius:0 var(--radius-sm) var(--radius-sm) 0;display:grid;grid-gap:.25rem;gap:.25rem}.player-games-list{display:grid;grid-gap:.35rem;gap:.35rem}.player-game-item{border-bottom:1px solid var(--line-soft);padding:.35rem 0 .55rem}.player-game-item:last-child{border-bottom:0}.player-game-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;width:100%;text-align:left;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.25rem .15rem;color:inherit;border-radius:var(--radius-sm)}.player-game-toggle:hover{background:var(--surface-muted)}.player-game-main{display:grid;grid-gap:.2rem;gap:.2rem;min-width:0}.player-game-chevron{color:var(--ink-muted);font-size:.8rem;line-height:1.6}.player-hero{position:relative;display:grid;grid-template-columns:auto 1fr;grid-gap:1.25rem 1.5rem;gap:1.25rem 1.5rem;align-items:start;margin:0 0 1.35rem;padding:1.15rem 1.25rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.player-hero-decor{position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,transparent 62%,rgba(30,58,95,.035) 0),repeating-linear-gradient(90deg,transparent,transparent 11px,rgba(30,58,95,.02) 0,rgba(30,58,95,.02) 12px);opacity:1;z-index:0}.player-hero>:not(.player-hero-decor){position:relative;z-index:1}.player-avatar{width:112px;height:112px;border-radius:var(--radius);overflow:hidden;background:var(--surface-muted);border:1px solid var(--line);flex-shrink:0}.player-avatar-img{width:100%;height:100%;object-fit:cover;display:block}.player-avatar-fallback{width:100%;height:100%;display:grid;place-items:center;color:var(--ink-muted);background:linear-gradient(160deg,var(--accent-soft) 0,var(--surface-muted) 70%)}.player-hero-main{min-width:0}.player-hero-title{margin-bottom:.65rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.45rem .6rem}.player-hero-title .title-badge{font-size:.72rem;height:22px;min-width:36px;vertical-align:middle}.player-meta-list{list-style:none;margin:0 0 .95rem;padding:0;display:flex;flex-wrap:wrap;gap:.45rem 1.15rem;min-width:0}.player-meta-list li{display:flex;align-items:baseline;gap:.4rem;font-size:.92rem;min-width:0}.meta-label{color:var(--ink-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.meta-value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.status-pill{display:inline-block;padding:.15rem .5rem;border-radius:999px;background:#f3e8e5;color:var(--down);font-size:.78rem;font-weight:600}.player-hero-actions{display:flex;flex-wrap:wrap;gap:.5rem}.fide-link-btn{text-decoration:none}.fide-link-arrow{font-size:.85em;opacity:.8}.contrib-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:.55rem;gap:.55rem}.contrib-list li{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:.35rem 0;border-bottom:1px solid var(--line-soft)}.contrib-list li:last-child{border-bottom:0}@keyframes fade-up{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1240px){.ranking-dashboard{grid-template-columns:minmax(0,1fr) minmax(400px,460px);gap:1.15rem}}@media (max-width:1040px){.ranking-dashboard{grid-template-columns:1fr;gap:1.2rem}.upcoming-games-panel{position:static;max-width:760px}.upcoming-player{font-size:.86rem}.upcoming-player-rating{font-size:.72rem}}@media (max-width:900px){.filter-group+.filter-group{padding-left:0;border-left:0}.filters{gap:.5rem}.filter-group-controls{width:100%}.filter-group-controls .select:first-child,.filter-group-controls .select:last-child{width:calc(50% - .2rem);min-width:0;flex:1 1 8rem}.time-control-selector{width:100%;grid-template-columns:repeat(3,1fr)}.time-control-option{min-width:0;padding-left:.65rem;padding-right:.65rem}.rank-table{width:100%}.rank-table col.col-player{width:auto}.rank-table col.col-official{width:96px}.rank-table col.col-live{width:130px}.rank-table col.col-delta{width:84px}}@media (max-width:720px){.app-shell,body,html{overflow-x:clip}.app-shell{padding:.85rem .85rem 2.5rem}.site-header{flex-direction:column;align-items:stretch;gap:.75rem}.site-logo-text{max-width:11.5rem}.site-footer{flex-direction:column;align-items:flex-start;gap:.35rem}.header-actions{justify-content:flex-start;gap:.55rem .75rem;font-size:.86rem}.page-title{font-size:clamp(1.2rem,5.5vw,1.55rem);overflow-wrap:anywhere}.time-control-selector{width:100%;margin-bottom:.95rem}.time-control-option{min-height:42px;font-size:.86rem;padding-left:.4rem;padding-right:.4rem}.chip{font-size:.82rem;padding:.32rem .58rem}.filters{gap:.5rem}.filter-group,.filter-group-controls,.filter-group-search{flex:1 1 100%;width:100%;max-width:100%}.filter-group-controls .select:first-child,.filter-group-controls .select:last-child{width:100%;flex:1 1 100%}.table-wrap{width:100%;overflow-x:visible}.rank-table{width:100%;min-width:0;table-layout:fixed}.rank-table thead{display:none}.rank-table col.col-rank{width:2.5rem}.rank-table col.col-player{width:auto}.rank-table col.col-age,.rank-table col.col-delta,.rank-table col.col-live,.rank-table col.col-official{width:0}.desktop-col,.rank-table td.col-age,.rank-table td.col-delta,.rank-table td.col-live,.rank-table td.col-official,.rank-table th.col-age,.rank-table th.col-delta,.rank-table th.col-live,.rank-table th.col-official{display:none}.rank-table td,.rank-table th{height:auto;padding:.8rem .45rem;vertical-align:top}.rank-table tbody tr:not(.rank-history-row)>td{border-bottom:1px solid var(--line-soft)}.rank-table td.col-rank{padding-top:.9rem}.player-cell{gap:.45rem}.player-name{white-space:normal;overflow:visible;text-overflow:unset;overflow-wrap:anywhere;line-height:1.3}.mobile-only{display:block}.mobile-metrics{display:grid;grid-gap:.35rem;gap:.35rem;min-width:0;padding-top:.05rem}.mobile-metrics-primary{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1rem}.mobile-metrics-primary .live-rating-cell{width:auto;justify-content:start}.mobile-metrics-primary .rating-change{justify-content:flex-start;font-size:.9rem}.mobile-metrics-meta{display:flex;flex-wrap:wrap;gap:.25rem .85rem;color:var(--ink-muted);font-size:.78rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.35}.live-rating-cell{grid-template-columns:minmax(3.6rem,auto) 30px;column-gap:.35rem}.live-rating-action,.live-rating-details-btn{width:30px;height:30px}.upcoming-games-panel{max-width:none;padding:.85rem}.upcoming-games-heading-row{align-items:flex-start;flex-wrap:wrap}.upcoming-pairing-row{grid-template-columns:1fr;grid-template-areas:"white" "sep" "black";row-gap:.28rem;align-items:start;padding:.7rem .1rem}.upcoming-pairing-row>.upcoming-player:first-of-type{grid-area:white}.upcoming-pairing-sep{grid-area:sep;justify-self:start;padding-left:.1rem}.upcoming-pairing-row>.upcoming-player:last-of-type{grid-area:black}.player-hero{grid-template-columns:1fr;justify-items:start;padding:1rem}.player-avatar{width:96px;height:96px}.player-time-control-option{font-size:.82rem;padding-left:.25rem;padding-right:.25rem;min-height:44px}.panel{padding:.95rem .9rem;min-width:0}.panel-ratings{padding:0}.panel-ratings .stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem .5rem;padding:.9rem .85rem 1rem}.panel-ratings .stat .value{font-size:1.15rem}.panel-ratings .stat .label{font-size:.6rem;letter-spacing:.02em}.player-meta-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.4rem .75rem;gap:.4rem .75rem}.live-games-panel{margin:0 .45rem .55rem}.live-games-list li{grid-template-columns:3.4rem minmax(0,1fr) auto;grid-template-areas:"date vs delta" "date tournament result";gap:.2rem .45rem}.live-game-date{grid-area:date}.live-game-vs{grid-area:vs;min-width:0}.live-game-tournament{grid-area:tournament}.live-game-result{grid-area:result;text-align:left}.live-game-delta{grid-area:delta;align-self:center}.filter-group-search,.search-field,.search-input{width:100%;max-width:none}.filters{gap:.45rem}.pagination{flex-wrap:wrap;gap:.55rem}.pagination-btn{min-width:5.5rem}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:420px){.app-shell{padding:.75rem .7rem 2.25rem}.header-actions{width:100%}.locale-switch{margin-left:auto}.rank-table col.col-rank{width:2.15rem}.rank-pill{min-width:1.3rem;height:1.3rem;font-size:.78rem}.title-badge{min-width:30px;height:19px;font-size:.62rem}.upcoming-games-count{font-size:.68rem}}