
:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#172f38;background:#f2f5f6;font-synthesis:none;--ink:#102c36;--muted:#687e86;--line:#e4e9ec;--lime:#c4f568;--green:#147b5c}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #86b83c;outline-offset:3px}button{color:inherit}header{height:82px;background:var(--ink);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:24px}.brand{display:flex;align-items:center;gap:10px;font-size:24px;letter-spacing:-1px;font-weight:850}.brand img{width:38px;height:38px}.brand em{font-size:12px;font-style:normal;letter-spacing:1px;background:var(--lime);color:var(--ink);padding:5px 7px;border-radius:4px;margin-left:4px}.top-nav{display:flex;gap:8px}.top-nav button{border:0;color:#bed0d6;background:none;padding:12px 18px;border-radius:8px;font-weight:650}.top-nav button.active{color:var(--ink);background:var(--lime)}.headnote{color:#9ab1b9;font-size:12px}.layout{max-width:1510px;margin:auto;display:grid;grid-template-columns:220px minmax(0,1fr) 265px;gap:28px;padding:32px}.left,.right{align-self:start;position:sticky;top:24px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase}.left .eyebrow{padding:0 12px}.league-nav{display:grid;gap:7px;margin:15px 0 28px}.league-btn{display:flex;align-items:center;gap:10px;width:100%;border:1px solid transparent;background:transparent;text-align:left;border-radius:10px;padding:12px 9px;font-weight:750;font-size:12px}.league-btn img{width:38px;height:38px;object-fit:contain;background:#fff;border-radius:50%;padding:3px}.league-btn.active{background:#fff;border-color:#d6e2e6;box-shadow:0 3px 7px #17374205}.league-btn.active:after{content:'';width:5px;height:24px;background:var(--green);border-radius:8px;margin-left:auto}.small-note{color:var(--muted);font-size:12px;line-height:1.7}.league-all{font-size:21px;width:38px;text-align:center}.hero{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;gap:10px}.hero h1{font-size:35px;line-height:1.12;letter-spacing:-1.3px;margin:10px 0}.hero p{font-size:13px;color:var(--muted);line-height:1.6;margin:8px 0 0}.live-status{font-size:10px;color:var(--green);white-space:nowrap;border:1px solid #c4ded2;padding:7px 10px;border-radius:30px;background:#eaf6ee;display:flex;gap:6px;align-items:center}.dot{height:6px;width:6px;border-radius:50%;background:currentColor;display:inline-block}.card{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.toolbar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.search{flex:1;min-width:140px;border:1px solid #dde5e8;border-radius:8px;padding:11px 13px;background:#fff;outline-color:var(--green);font-size:13px}.datepick{border:1px solid #dde5e8;border-radius:8px;background:#fff;padding:9px;max-width:170px;font-size:12px}.quiet{border:1px solid #dce5e8;border-radius:8px;padding:9px 13px;background:#fff;font-size:12px;font-weight:650}.quiet:hover{background:#edf2f3}.tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);padding:0 20px;overflow-x:auto}.tabs button{border:0;background:transparent;padding:17px 0;color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap;border-bottom:3px solid transparent}.tabs button.active{border-color:var(--green);color:var(--green)}.group-header{display:flex;gap:10px;align-items:center;background:#f8fafb;padding:12px 19px;border-bottom:1px solid var(--line);font-size:11px;font-weight:800;letter-spacing:.2px}.group-header img{width:27px;height:27px;border-radius:50%;background:white;object-fit:contain}.group-header span:last-child{margin-left:auto;color:var(--muted);font-size:10px;font-weight:600}.match{display:flex;align-items:center;padding:0 12px 0 4px;border-bottom:1px solid #edf0f1}.match:last-child{border:0}.match:hover{background:#f8fbfa}.match-link{min-width:0;flex:1;display:grid;grid-template-columns:67px minmax(0,1fr) 65px;gap:10px;padding:18px 12px;align-items:center}.time{font-size:11px;color:var(--muted);text-align:center;line-height:1.8}.time.live{color:#c3443e;font-weight:750}.teamnames{display:grid;gap:10px;font-size:13px;font-weight:600;min-width:0}.teamnames span{overflow-wrap:anywhere}.scorecol{display:grid;gap:9px;text-align:right;font-weight:850;font-variant-numeric:tabular-nums;font-size:16px}.scorecol small{font-size:11px;font-weight:500;color:var(--green);display:inline-block;min-width:24px;margin-left:8px}.star{border:0;background:transparent;font-size:24px;color:#9aabb2;padding:8px;line-height:1}.star.on{color:#a97400}.cardtitle{font-size:15px;margin:0;padding:20px 18px;border-bottom:1px solid var(--line);font-weight:750}.favorite-item{padding:14px 17px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);font-size:12px}.favorite-item a{flex:1}.favorite-item small{display:block;color:var(--muted);margin-top:5px;font-size:10px}.favorite-item img{width:30px;height:30px;border-radius:50%;object-fit:contain}.right .card{margin-bottom:18px}.right .small-note{padding:0 18px}.cta{padding:22px 18px;background:var(--ink);color:#fff;border-radius:13px}.cta .bell{color:var(--lime);font-size:26px}.cta h3{font-size:19px;margin:12px 0;letter-spacing:-.5px}.cta p{color:#afc2c9;font-size:12px;line-height:1.7}.primary{display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--lime);color:var(--ink);border-radius:8px;padding:12px 17px;font-size:12px;font-weight:800;gap:8px}.cta .primary{width:100%;margin-top:8px}.empty{text-align:center;padding:44px 24px;color:var(--muted);font-size:13px;line-height:1.7}.empty b{display:block;color:var(--ink);font-size:17px;margin:12px 0}.empty .empty-icon{font-size:33px;color:#92a5ad}.bottomnote{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:10px;margin-top:16px}.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.team-card{padding:18px;display:flex;gap:12px;align-items:center}.team-card a{flex:1;font-size:13px;font-weight:750}.team-card small{display:block;font-size:10px;color:var(--muted);margin-top:5px;font-weight:500}.initial{display:grid;place-items:center;background:#eef3f5;color:#557680;border:1px solid var(--line);font-weight:800;border-radius:10px;width:38px;height:38px;flex-shrink:0}.detail-hero{padding:25px 20px;text-align:center;background:linear-gradient(130deg,#183e49,#102c36);color:#fff}.detail-meta{font-size:11px;color:#a6c2cb;line-height:1.8}.detail-score{display:grid;grid-template-columns:1fr 110px 1fr;align-items:center;gap:15px;padding:25px 0}.detail-score h2{font-size:18px;letter-spacing:-.5px;overflow-wrap:anywhere}.big-score{font-size:38px;font-weight:850;letter-spacing:2px;white-space:nowrap}.subscore{color:var(--lime);font-size:12px;margin-top:5px}.detail-hero .star{color:#bcd0d8}.detail-hero .star.on{color:var(--lime)}.detail-actions{display:flex;justify-content:center;gap:8px;margin-top:10px}.section{padding:22px}.section h3{font-size:15px;margin:0 0 16px}.score-table{width:100%;border-collapse:collapse;font-size:12px}.score-table td,.score-table th{padding:12px 8px;border-bottom:1px solid var(--line);text-align:center}.score-table td:first-child,.score-table th:first-child{text-align:left}.rosters{display:grid;grid-template-columns:1fr 1fr;gap:25px}.player{display:flex;gap:10px;align-items:center;font-size:12px;padding:10px 0;border-bottom:1px solid var(--line)}.number{background:#f0f4f6;border-radius:4px;min-width:25px;text-align:center;padding:4px;font-size:10px}.player small{color:var(--green);font-size:9px;margin-left:auto}.event{display:flex;gap:14px;border-bottom:1px solid var(--line);padding:12px 0;font-size:12px}.event time{color:var(--muted);font-size:10px;min-width:40px}.event small{display:block;color:var(--muted);margin-top:4px}.back{border:0;background:transparent;color:var(--muted);font-size:12px;padding:0 0 17px}.settings-section{padding:22px;border-bottom:1px solid var(--line)}.settings-section h3{margin:0 0 10px;font-size:16px}.settings-section p{font-size:12px;color:var(--muted);line-height:1.7}.checkrow{display:flex;align-items:center;gap:12px;padding:10px 0;font-size:13px}.checkrow input{accent-color:var(--green);width:18px;height:18px}.status-box{padding:12px;background:#f0f5ed;color:#466331;border-radius:8px;font-size:12px;line-height:1.7;margin:15px 0}.button-row{display:flex;gap:8px;flex-wrap:wrap}dialog{border:0;border-radius:14px;box-shadow:0 25px 100px #08253150;padding:25px;width:min(440px,calc(100vw - 28px));color:var(--ink)}dialog::backdrop{background:#0a252d80;backdrop-filter:blur(3px)}dialog h2{font-size:19px;margin:0 0 12px}dialog p{font-size:12px;color:var(--muted);line-height:1.6}.dialog-head{display:flex;align-items:start;justify-content:space-between;gap:10px}.close{border:0;background:transparent;font-size:23px}.error{color:#b53434}.boot{padding:15vh 24px;text-align:center}.boot b{font-size:32px}.boot em{color:var(--green)}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#102c36;color:white;border-radius:10px;padding:14px 20px;z-index:10;font-size:13px;box-shadow:0 8px 30px #0002;max-width:90vw;display:none}#toast.show{display:block}.mobile-nav{display:none}.offline{background:#fff0d2;color:#8b6000;padding:10px 16px;font-size:12px;border-radius:8px;margin-bottom:15px}.team-header{display:flex;align-items:center;gap:16px;margin-bottom:20px}.team-header h1{font-size:26px}.team-header .initial{width:60px;height:60px;font-size:23px}.team-header .star{margin-left:auto}@media(min-width:1550px){.layout{gap:36px}}@media(max-width:1180px){.layout{grid-template-columns:185px minmax(0,1fr);gap:24px}.right{display:none}.headnote{display:none}}@media(max-width:760px){header{height:67px;padding:0 18px}.brand{font-size:21px}.brand img{width:31px;height:31px}.brand em{font-size:10px}.top-nav{display:none}.layout{display:block;padding:18px 14px 90px}.left{position:static}.left .eyebrow,.left .small-note{display:none}.league-nav{display:flex;overflow-x:auto;margin:0 -14px 22px;padding:0 14px 8px;gap:8px}.league-btn{width:auto;flex-shrink:0;padding:9px;background:#fff;border-color:var(--line);font-size:10px}.league-btn img{width:28px;height:28px}.league-all{width:22px;font-size:18px}.league-btn.active{border-color:var(--green);background:#edf7ed}.league-btn.active:after{display:none}.hero{margin-bottom:20px}.hero h1{font-size:29px}.hero p{font-size:12px;max-width:240px}.live-status{font-size:9px;padding:6px 8px}.toolbar{gap:7px}.datepick{max-width:145px}.tabs{gap:20px;padding:0 15px}.group-header{padding:10px 12px}.group-header span:last-child{max-width:110px;text-align:right}.match-link{grid-template-columns:42px minmax(0,1fr) 52px;gap:8px;padding:16px 6px}.match{padding-right:5px}.teamnames{font-size:12px}.time{font-size:9px}.star{padding:6px;font-size:23px}.scorecol{font-size:15px}.scorecol small{min-width:18px;margin-left:4px}.bottomnote{font-size:9px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:8px 10px max(8px,env(safe-area-inset-bottom));z-index:5}.mobile-nav button{border:0;background:transparent;display:grid;gap:4px;color:var(--muted);font-size:10px;padding:4px 20px}.mobile-nav button span{font-size:21px}.mobile-nav button.active{color:var(--green);font-weight:800}#toast{bottom:82px}.team-grid{grid-template-columns:1fr}.detail-score{grid-template-columns:1fr 80px 1fr;gap:6px}.detail-score h2{font-size:14px}.big-score{font-size:31px}.detail-hero{padding:20px 12px}.detail-actions .quiet{font-size:10px}.rosters{grid-template-columns:1fr;gap:22px}.section{padding:18px 14px}.score-table{font-size:10px}.score-table td,.score-table th{padding:10px 4px}.headnote{display:block;font-size:9px;max-width:70px;text-align:right}.team-header h1{font-size:23px}.settings-section{padding:20px 16px}}@media(prefers-reduced-motion:no-preference){button,a{transition:background .15s,color .15s}.live-status .dot{animation:pulse 2s infinite}@keyframes pulse{50%{opacity:.35}}}


/* Official supplied FideSport logo */
header{height:112px}.brand img{width:96px;height:96px;object-fit:contain;border-radius:50%}@media(max-width:760px){header{height:96px}.brand img{width:80px;height:80px}}
.header-tools{display:flex;align-items:center;gap:8px}.header-tool{background:#23414b;border:1px solid #56727c;color:#fff;border-radius:8px;padding:10px 12px;font-size:12px;white-space:nowrap}.account-form{display:grid;gap:15px;max-width:430px;margin:24px 0}.account-form label{display:grid;gap:8px;font-size:13px;font-weight:650}.account-form input{padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:inherit;min-width:0}.account-form small{font-size:11px;line-height:1.7;color:var(--muted)}#auth-error{color:#bf3434}.account-form .primary{justify-self:start}
:root[data-theme=dark]{color-scheme:dark;color:#e4edf1;background:#0c171e;--muted:#a5bac5;--line:#31434d;--green:#9ae5bb}
[data-theme=dark] .card,[data-theme=dark] dialog,[data-theme=dark] .mobile-nav,[data-theme=dark] .search,[data-theme=dark] .datepick,[data-theme=dark] .quiet,[data-theme=dark] .account-form input{background:#172832;color:#e4edf1;border-color:var(--line)}
[data-theme=dark] .league-btn{background:#172832;border-color:var(--line)}[data-theme=dark] .league-btn.active{background:#254039;border-color:#73bf9b}[data-theme=dark] .group-header,[data-theme=dark] .number,[data-theme=dark] .initial{background:#203540;color:#d4e7ed}[data-theme=dark] .match{border-color:var(--line)}[data-theme=dark] .match:hover,[data-theme=dark] .quiet:hover{background:#223b45}[data-theme=dark] .empty b{color:#e4edf1}[data-theme=dark] .live-status,[data-theme=dark] .status-box{background:#1d3e33;color:#afe5bf;border-color:#3c6552}[data-theme=dark] .star.on{color:#f9d174}[data-theme=dark] .time.live{color:#ffaaa0}[data-theme=dark] #auth-error{color:#ffaaa0}[data-theme=dark] #toast{border:1px solid #698390}
@media(max-width:760px){.header-tools{gap:6px}.header-tool{padding:9px;font-size:11px}header{gap:10px}.brand img{width:76px;height:76px}}@media(min-width:761px) and (max-width:980px){header{padding:0 18px;gap:12px}.top-nav button{padding:12px 9px}}

.standings .group-header h2{font-size:13px;margin:0}.standings-scroll{overflow:auto;max-width:100%}.league-table{border-collapse:separate;border-spacing:0;min-width:100%;font-size:12px}.league-table th,.league-table td{padding:13px 12px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}.league-table thead th{color:var(--muted);font-size:10px;max-width:105px;white-space:normal;min-width:55px}.league-table tbody th{position:sticky;left:0;text-align:left;background:#fff;min-width:145px;max-width:220px;white-space:normal}.league-table td:nth-child(3){font-weight:850;color:var(--green)}.league-table tbody tr:hover td{background:#f1f7f4}[data-theme=dark] .league-table tbody th{background:#172832}[data-theme=dark] .league-table tbody tr:hover td{background:#203540}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

.form-badges{display:inline-flex;gap:5px;vertical-align:middle}.form-badge{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;color:#fff;font-size:17px;font-weight:650;line-height:1}.form-badge.win{background:#00a844}.form-badge.loss{background:#df001e}.form-badge.unknown{background:#596568}.form-badge.draw{background:#9a6900}

.team-crest{width:28px;height:28px;object-fit:contain;flex-shrink:0;background:#fff;border-radius:5px;padding:2px}.team-crest.large{width:58px;height:58px;padding:4px}.team-initial{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border-radius:5px;background:#e4edeb;color:#466058;font-size:10px;font-weight:750}.team-initial.large{width:58px;height:58px;font-size:20px}.team-with-crest{display:flex;align-items:center;gap:8px}.teamnames .team-crest,.teamnames .team-initial{width:22px;height:22px}.teamnames{gap:5px}.league-table tbody th{min-width:180px}.detail-score .team-crest.large{margin:auto}
.subscore{white-space:nowrap;font-variant-numeric:tabular-nums}.subscore.suspended-score{display:grid;gap:4px}.suspended-set{white-space:nowrap}.suspended-note{font-size:10px;line-height:1.25;white-space:normal}@media(max-width:760px){.subscore{font-size:10px}.suspended-note{font-size:8px}.detail-score>div:nth-child(2){min-width:0}}

.recent-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.recent-results h3{font-size:14px}.recent-match{display:grid;grid-template-columns:42px minmax(0,1fr) auto 26px;gap:8px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px}.recent-match time{font-size:10px;color:var(--muted)}.recent-match>span:nth-child(2){display:grid;gap:5px}.recent-match .form-badge{width:25px;height:25px;font-size:13px}.recent-results .quiet{margin-top:12px}@media(max-width:760px){.recent-results{grid-template-columns:1fr}}

.standings-team-link{color:inherit;text-decoration:none}.standings-team-link:hover{text-decoration:underline}.standings-team-link:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:4px}

.league-table tr.match-team-row>th,.league-table tr.match-team-row>td{background:color-mix(in srgb,var(--green) 16%,transparent);font-weight:750}.league-table tr.match-team-row>td:first-child{box-shadow:inset 4px 0 var(--green)}
.set-tabs{display:flex;gap:8px;margin:-4px 0 18px;overflow-x:auto}.set-tabs button{border:0;border-radius:8px;background:transparent;color:var(--muted);padding:11px 16px;font-size:11px;font-weight:850;white-space:nowrap}.set-tabs button.active{background:#64757d;color:#fff}.point-by-point>h3{text-align:center;background:#edf3f4;border-radius:6px;padding:10px;margin-bottom:12px;font-size:11px;letter-spacing:.7px}.public-court{display:grid;grid-template-columns:1fr 1fr;border:4px solid #4798ce;background:#f2d4aa;margin:0 auto 20px;max-width:820px}.public-court-half{padding:8px 9px 10px;min-width:0}.public-court-half+.public-court-half{border-left:4px solid #fff}.public-court-half h4{text-align:center;margin:0 0 7px;font-size:12px;overflow-wrap:anywhere}.public-court-players{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,minmax(70px,1fr));gap:7px}.public-court-player{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;min-width:0;border:2px solid #b99a70;border-radius:10px;background:#fff1dc;padding:6px;color:#173045}.public-court-player.serving{border-color:#147b5c;background:#d9f8b5;box-shadow:inset 0 0 0 2px #147b5c}.public-court-player b{font-size:16px}.public-court-player span{font-size:11px;font-weight:650;line-height:1.15;overflow-wrap:anywhere}.public-court-player .empty-position{font-size:20px}.point-list{max-width:430px;margin:0 auto}.point-row{display:grid;grid-template-columns:1fr 72px 1fr;align-items:center;min-height:52px}.point-row strong{display:flex;justify-content:center;gap:8px;font-size:21px;font-variant-numeric:tabular-nums}.point-row strong em{font-style:normal;color:var(--muted)}.point-row strong .won{color:#e40046}.point-side{display:flex;align-items:center;gap:9px;font-size:18px}.point-side.left{justify-content:flex-end}.point-side.right{justify-content:flex-start}.point-side i{font-style:normal;font-size:11px;font-weight:850;color:#00a844;border:1px solid var(--line);border-radius:5px;padding:5px 8px}
[data-theme=dark] .set-tabs button.active{background:#667981}[data-theme=dark] .point-by-point>h3{background:#082a34}[data-theme=dark] .public-court-half h4{color:#173045}
@media(max-width:600px){.public-court{margin-left:-8px;margin-right:-8px}.public-court-half{padding:6px}.public-court-players{gap:4px;grid-template-rows:repeat(3,minmax(62px,1fr))}.public-court-player{padding:4px 2px}.public-court-player b{font-size:14px}.public-court-player span{font-size:9px}.point-row{min-height:47px}}
.league-group-title{display:flex;align-items:center;gap:10px;padding:15px 18px;background:var(--ink);color:#fff;font-size:12px;font-weight:800;letter-spacing:.3px}.league-group-title img{width:30px;height:30px;object-fit:contain;background:#fff;border-radius:50%;padding:3px}.round-group+.round-group{border-top:8px solid #f2f5f6}.round-header{padding:12px 18px;background:#eaf0f2;color:var(--ink);font-size:11px;font-weight:850;letter-spacing:.8px}.date-header{padding:8px 18px;background:#f8fafb;color:var(--muted);font-size:10px;font-weight:750;border-bottom:1px solid var(--line)}[data-theme=dark] .round-header{background:#203540;color:#e4edf1}[data-theme=dark] .date-header{background:#172832;color:#b6c9d0}[data-theme=dark] .round-group+.round-group{border-color:#102129}.team-switcher{display:flex;align-items:center;gap:10px}.team-switcher>.quiet{flex:0 0 42px;height:42px;padding:0;font-size:20px}.team-switcher .team-header{flex:1;min-width:0}.team-detail{touch-action:pan-y}
.favorite-item img.favorite-league-logo{width:22px;height:22px;border-radius:50%;object-fit:contain;background:#fff;border:1px solid var(--line);padding:2px;flex-shrink:0}
.favorite-match-league{display:flex;align-items:center;gap:7px;padding:11px 18px 0;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.45px}.favorite-match-league img.favorite-competition-logo{width:20px;height:20px;object-fit:contain;border-radius:50%;background:#fff}
