:root{--ink:#173d32;--muted:#6b776f;--lime:#d0ed83;--paper:#f5f4ed;--line:#dce1d7;--white:#fff;--radius:16px}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:15px/1.6 Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:0;border-radius:6px;background:var(--ink);color:#fff;padding:12px 21px;font-weight:700}button:hover{filter:brightness(1.12)}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8ba949;outline-offset:4px}header{height:100px;display:flex;align-items:center;justify-content:space-between;gap:25px;max-width:1440px;margin:auto;padding:0 5%}.brand{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:900;letter-spacing:.5px}.brand small{display:block;font-size:10px;letter-spacing:3px}.brand-mark{border:2px solid var(--ink);border-radius:50%;width:46px;height:46px;display:grid;place-content:center;font-size:17px;position:relative}.brand-mark span{position:absolute;right:-5px;top:-9px;background:var(--paper);font-size:23px}nav{display:flex;gap:26px;font-size:13px}.outline{border:1px solid #b3bfb4;background:transparent;color:var(--ink)}main{max-width:1320px;margin:auto;padding:12px 32px 80px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(46px,5.8vw,82px);line-height:1.02;letter-spacing:-4px;font-weight:500;margin-bottom:24px}h2{font-size:32px;line-height:1.15;font-weight:500;letter-spacing:-1px;margin-bottom:12px}h3{font-size:18px;margin-bottom:8px}p{color:var(--muted)}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:2px;font-weight:800;margin-bottom:28px;display:flex;align-items:center;gap:10px}.dot{width:7px;height:7px;background:#a5ce59;border-radius:50%;display:inline-block}.hero{display:grid;grid-template-columns:1.07fr 1fr;min-height:490px;background:#e9eddf;border-radius:24px;overflow:hidden}.hero-copy{padding:55px 50px}.hero-copy p{max-width:380px;font-size:16px;line-height:1.7}.hero-actions{display:flex;gap:20px;align-items:center;margin-top:30px}.button{display:inline-block;background:var(--ink);color:white;border-radius:6px;padding:12px 23px;font-weight:bold;font-size:14px}.hero-art{position:relative;background:#123e31;display:flex;align-items:center;justify-content:center;overflow:hidden}.court{position:absolute;inset:35px;border:1px solid #799282;transform:rotate(-22deg) scale(1.3);opacity:.4}.court:before{content:'';position:absolute;inset:0 15%;border-left:1px solid #799282;border-right:1px solid #799282}.court:after{content:'';position:absolute;inset:24% 0;border-top:1px solid #799282;border-bottom:1px solid #799282}.hero-art img{width:74%;border-radius:50%;position:relative;box-shadow:0 20px 70px #081b2a55;transform:none}.art-caption{position:absolute;bottom:20px;left:30px;color:#d0ed83;font-size:10px;letter-spacing:3px}.statbar{display:grid;grid-template-columns:repeat(4,1fr);margin:30px 0 45px;border-bottom:1px solid var(--line);padding-bottom:25px}.statbar>div{padding:0 30px;border-right:1px solid var(--line)}.statbar>div:first-child{padding-left:0}.statbar>div:last-child{border:0}.statbar strong{font-size:30px;font-weight:500;display:block;letter-spacing:-1px}.statbar span{font-size:12px;color:var(--muted)}.section-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:38px 0 22px}.section-top p{margin:7px 0 0;font-size:13px}.grid2{display:grid;grid-template-columns:1.7fr 1fr;gap:26px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px}.panel.green{background:var(--ink);color:white}.panel.green p{color:#ced8cb}.label{font-size:10px;font-weight:bold;letter-spacing:2px;text-transform:uppercase}.pill{display:inline-block;font-size:10px;font-weight:700;padding:4px 9px;border-radius:30px;background:#e8efdf;color:#456135;text-transform:uppercase;letter-spacing:.5px}.pill.pending{background:#fff2d3;color:#836025}.muted{color:var(--muted)}.empty{text-align:center;padding:40px 20px;color:var(--muted)}.empty .circle{font-size:30px;color:#6b8550;margin-bottom:12px}.notice{border-left:3px solid var(--lime);padding-left:18px;margin:18px 0;color:inherit;white-space:pre-wrap}.league-card{display:flex;justify-content:space-between;gap:15px;padding:19px 0;border-bottom:1px solid var(--line)}.league-card:last-child{border:0}.league-card p{font-size:12px;margin:5px 0 0}.league-card h3{font-size:16px}.head-page{padding:34px 0 10px}.head-page h1{font-size:55px;letter-spacing:-2px;margin:15px 0}.filters{display:flex;gap:10px;flex-wrap:wrap;margin:25px 0}.filters button{background:transparent;border:1px solid var(--line);color:var(--ink);font-size:12px}.filters button.active{background:var(--ink);color:white}.table-wrap{overflow-x:auto;background:white;border:1px solid var(--line);border-radius:12px}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);background:#eff2e9;padding:16px}td{padding:16px;border-top:1px solid #edf0e8;font-size:13px}td strong{font-weight:700}td.rank{color:#91a96d;font-size:18px}.points{font-weight:800;font-size:17px}.match-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.match{background:white;border:1px solid var(--line);border-radius:12px;padding:23px}.match-meta{display:flex;justify-content:space-between;margin-bottom:20px;font-size:11px;color:var(--muted)}.opponent{display:flex;justify-content:space-between;align-items:center;margin:10px 0;font-size:15px;gap:8px}.opponent span:last-child{font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:4px;white-space:nowrap}.match-foot{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;margin-top:18px}.small-btn{padding:6px 12px;font-size:11px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;font-size:12px;font-weight:700;margin-bottom:14px}input,select,textarea{display:block;width:100%;margin-top:7px;border:1px solid #cbd4c8;border-radius:6px;padding:11px;background:#fff;color:var(--ink)}textarea{min-height:100px;resize:vertical}.full{grid-column:1/-1}.help{font-size:12px;line-height:1.7}.rules li{margin:14px 0;color:var(--muted)}.step{display:flex;gap:18px;margin:25px 0}.step b{background:var(--lime);color:var(--ink);border-radius:50%;width:30px;height:30px;flex-shrink:0;text-align:center;line-height:30px}.step p{font-size:13px;margin-bottom:0}footer{max-width:1320px;margin:auto;border-top:1px solid var(--line);padding:35px 32px;display:flex;justify-content:space-between;gap:20px;font-size:11px}footer>span{font-weight:800}footer small{display:block;letter-spacing:2px;font-size:9px}dialog{border:1px solid var(--line);border-radius:18px;padding:35px;width:min(480px,94vw);max-height:90vh;color:var(--ink)}dialog::backdrop{background:#09231899;backdrop-filter:blur(3px)}.close{position:absolute;right:10px;top:8px;background:none;color:var(--ink);font-size:25px;padding:3px 12px}dialog h2{margin:10px 0 22px;font-size:28px}dialog .switch{font-size:12px;text-decoration:underline;margin-top:18px;display:block;background:none;color:var(--ink);padding:0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:14px 24px;border-radius:8px;display:none;z-index:20;box-shadow:0 5px 30px #0003;max-width:90vw}.error{color:#a53624;font-size:13px}.score-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.loading{padding:60px;text-align:center}.account-links{display:flex;gap:10px;flex-wrap:wrap}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.refresh{font-size:11px;color:var(--muted)}.warn{padding:16px;background:#fbf1d5;border-radius:8px;font-size:12px}.print-only{display:none}@media(max-width:1000px){nav{gap:15px}.hero-copy{padding:40px 32px}.hero{min-height:420px}h1{font-size:58px}.match-grid{grid-template-columns:1fr 1fr}.brand{font-size:11px}}@media(max-width:720px){header{height:auto;min-height:85px;flex-wrap:wrap;padding:18px 22px;gap:16px}header nav{order:3;width:100%;justify-content:space-between;font-size:11px;gap:10px}header button{font-size:11px;padding:8px 11px}.brand{font-size:10px}.brand-mark{width:35px;height:35px;font-size:12px}main{padding:10px 18px 45px}.hero{grid-template-columns:1fr}.hero-copy{padding:35px 26px}h1{font-size:53px;letter-spacing:-2.5px}.hero-art{height:280px}.hero-art img{width:230px}.eyebrow{margin-bottom:25px}.statbar{grid-template-columns:1fr 1fr;row-gap:20px;margin-bottom:25px}.statbar>div{padding:0 15px}.statbar>div:nth-child(3){padding-left:0}.statbar>div:nth-child(2){border:0}.statbar strong{font-size:26px}.grid2,.admin-grid{grid-template-columns:1fr}.match-grid{grid-template-columns:1fr}.panel{padding:22px}.head-page h1{font-size:43px}.section-top{align-items:flex-start}.section-top h2{font-size:27px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}footer{padding:25px 20px;flex-wrap:wrap}.hero-actions{gap:16px;font-size:12px}.table-wrap{margin-bottom:20px}}@media print{header,footer,.filters,button,.actions{display:none}body{background:white}main{max-width:none;padding:0}.match-grid{grid-template-columns:1fr 1fr}.match{break-inside:avoid}.print-only{display:block}}
input[type=checkbox]{display:inline-block;width:auto;margin-right:8px}nav a[aria-current=page]{font-weight:700;text-decoration:underline;text-underline-offset:6px}
/* 1.1.0: language selection and operating-cost sponsor */
.header-tools{display:flex;align-items:center;gap:16px}.language-control{margin:0;font-size:10px;letter-spacing:.4px}.language-control>span{display:block}.language-control select{font-size:12px;margin:1px 0 0;padding:5px 8px;min-width:96px;background:transparent}.sponsor-band{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:22px;padding:22px 28px;border:1px solid #cbd9ba;border-radius:14px;background:#eef2e4}.sponsor-band p{margin:4px 0;color:#52654d;font-size:13px}.sponsor-name{font-weight:750;font-size:21px;letter-spacing:-.3px}.sponsor-link{font-size:13px;white-space:nowrap;text-decoration:underline;text-underline-offset:4px}.footer-sponsor{flex-basis:100%;padding-bottom:18px;border-bottom:1px solid var(--line);display:flex;gap:10px;flex-wrap:wrap}.footer-sponsor a{font-weight:750}footer{flex-wrap:wrap}.hero-actions{flex-wrap:wrap}html[lang=zh-CN] body{font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif}html[lang=zh-CN] h1{letter-spacing:0;line-height:1.2}html[lang=zh-CN] h2{letter-spacing:0;line-height:1.35}html[lang=zh-CN] .eyebrow{letter-spacing:1.2px}html[lang=zh-CN] .label{letter-spacing:1px}html[lang=zh-CN] nav{gap:20px}@media(max-width:1050px){header{flex-wrap:wrap;height:auto;padding-top:20px;padding-bottom:20px}header nav{order:3;flex-basis:100%;justify-content:center}}@media(max-width:720px){.header-tools{gap:8px}.language-control select{font-size:11px;min-width:85px}.language-control>span{font-size:9px}.sponsor-band{padding:20px;align-items:flex-start;flex-direction:column;gap:10px}.sponsor-name{font-size:19px}.sponsor-link{font-size:12px}html[lang=zh-CN] h1{font-size:46px}header nav{justify-content:space-between}.footer-sponsor{flex-direction:column;gap:4px}}

/* 1.2: upright logo, shared score columns, visible winners */
.opponent span:last-child{letter-spacing:0}
.opponent .set-cells,.set-cells{display:grid;grid-template-columns:repeat(3,32px);gap:3px;flex-shrink:0;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:0}
.set-cells>span{display:block;letter-spacing:0!important}
.score-head{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}
.opponent.winner{font-weight:800;background:#edf5dc;border-radius:6px;padding:6px 0;color:#184c32}
.player-name{overflow-wrap:anywhere;min-width:0}
.selected-entries{margin-top:12px;font-size:12px}.selected-entries ul{padding-left:20px;margin:4px 0}
input[type=checkbox]{display:inline-block;width:auto;margin-right:6px}

[hidden]{display:none!important}.fold-toggle{margin:12px 0 20px}.event-card{flex-wrap:wrap}.event-card>.actions{align-content:start;max-width:350px}.selected-entries li{margin:8px 0}.fixture-filter{margin:15px 0}.fixture-filter summary{cursor:pointer;font-weight:bold}.choice-list{max-height:380px;overflow:auto;padding:8px 0}.choice-list label{padding:4px;margin:3px 0}.choice-list input{margin-top:0}input[readonly]{background:#f0f2ec;color:#526454}
