:root{--bg:#0c100e;--surface:#141a17;--surface-2:#1a211d;--line:#29312c;--text:#f0f2ed;--muted:#939e95;--accent:#d4f76a;--accent-dim:#25301c;--radius:14px;font-family:Arial,Helvetica,sans-serif;color-scheme:dark;font-size:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.5}.accent-blue{--accent:#85c5ff;--accent-dim:#1c2c38}.accent-orange{--accent:#ffb36c;--accent-dim:#382a1d}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{color:inherit}a,button,summary{transition:background .18s,color .18s,border-color .18s}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{line-height:1.15}h1{font-size:clamp(30px,3vw,44px);font-weight:700;letter-spacing:-1.8px}h1>span{color:var(--accent)}h2{font-size:28px;letter-spacing:-.9px}h3{font-size:21px;letter-spacing:-.5px}small{font-size:11px}strong{font-weight:600}[hidden]{display:none!important}.site-header{height:88px;border-bottom:1px solid var(--line);background:#101612}.header-inner{max-width:1456px;padding:0 48px;margin:auto;display:flex;align-items:center;gap:56px;height:100%}.brand{display:flex;align-items:center;gap:10px;font-size:25px;font-weight:800;letter-spacing:-1px;white-space:nowrap}.brand small{display:block;font-size:8px;letter-spacing:2.2px;color:var(--muted);font-weight:500;margin-top:-3px}.brand-icon{color:var(--accent);font-size:43px;line-height:1}.brand img{width:42px;height:42px;object-fit:contain}.header-nav{display:flex;height:100%;align-items:center;gap:32px;font-size:12px}.header-nav a{height:100%;display:flex;align-items:center;color:var(--muted);position:relative}.header-nav a.active{color:var(--text)}.header-nav a.active:after{content:'';height:2px;background:var(--accent);position:absolute;bottom:0;left:0;right:0}.header-end{margin-left:auto;display:flex;align-items:center;gap:24px}.season{font-size:9px;letter-spacing:1.5px;color:var(--muted)}.button{border:1px solid var(--accent);background:var(--accent);color:#15200e;min-height:42px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:11px 19px;font-size:12px;font-weight:700;line-height:1.25;white-space:nowrap}.button:hover{filter:brightness(1.08)}.button.ghost{background:transparent;border-color:#3b483e;color:var(--text)}.button.ghost:hover{background:#242f27}.button.small{min-height:34px;padding:8px 13px;font-size:11px}.button:disabled{opacity:.4;cursor:not-allowed;filter:none}.shell{max-width:1456px;margin:auto;padding:38px 48px 60px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 30px}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:600;color:var(--muted);margin-bottom:11px}.page-heading .eyebrow{color:var(--accent);display:flex;align-items:center;gap:8px}.live-dot{display:inline-block;flex-shrink:0;height:6px;width:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px #c9f0680b}.page-heading h1{margin-bottom:9px}.page-heading>div>p:last-child{color:var(--muted);font-size:12px}.heading-mark{font-size:10px;color:#b9c2b9;letter-spacing:1.5px;text-align:right}.heading-mark span{display:block;font-size:8px;color:#677569;margin-top:8px}.tournament-strip{display:flex;gap:12px;margin-bottom:23px;overflow-x:auto;padding-bottom:4px}.strip-label{font-size:8px;color:var(--muted);letter-spacing:1.4px;line-height:1.8;align-self:center;min-width:88px}.strip-label strong{color:var(--text);font-size:10px}.tournament-chip{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:13px 16px;min-width:330px}.tournament-chip.selected{border-color:#728347;background:linear-gradient(100deg,#222a19,#172017)}.tournament-chip strong{display:block;font-size:11px;white-space:nowrap}.tournament-chip small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.chip-ball{height:31px;width:31px;border-radius:50%;background:#2c3822;color:var(--accent);display:grid;place-items:center;font-size:19px}.status{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:4px;background:#b8e95f15;color:var(--accent);font-size:9px;white-space:nowrap;font-weight:600}.status:before{content:'';width:4px;height:4px;border-radius:50%;background:currentColor}.status.muted{background:#ffffff09;color:var(--muted)}.tournament-chip .status{margin-left:auto}.hero{min-height:310px;border-radius:var(--radius);overflow:hidden;position:relative;border:1px solid #35432e;background:radial-gradient(ellipse at 90% 20%,#46662b40,transparent 65%),linear-gradient(120deg,#1a251c,#14241b);display:flex;margin-bottom:22px}.hero-content{padding:32px 36px;z-index:1;max-width:65%}.hero-kicker{display:flex;align-items:center;gap:15px;margin-bottom:18px}.hero-kicker>span:last-child{font-size:9px;color:#c8d1c0;letter-spacing:1.6px}.hero h2{font-size:clamp(25px,3vw,40px);letter-spacing:-1.5px;max-width:650px}.hero p{font-size:12px;color:#a7b6a7;max-width:460px;margin:14px 0 17px;line-height:1.7}.hero-details{display:flex;flex-wrap:wrap;gap:18px;color:#c8d2c8;font-size:10px;margin-bottom:25px}.hero .button{min-height:38px}.hero-art{position:absolute;right:0;top:0;bottom:0;width:40%;overflow:hidden}.court{position:absolute;top:60px;left:70px;width:360px;height:230px;transform:rotate(-24deg) skew(-9deg);border:1px solid #8bb46c60;box-shadow:0 0 0 28px #203c2240;background:#28452b20}.court:before,.court:after{content:'';position:absolute;left:0;right:0;border-top:1px solid #8bb46c50}.court:before{top:12%}.court:after{bottom:12%}.court-center{position:absolute;top:12%;bottom:12%;width:40%;left:30%;border:1px solid #8bb46c60}.court-service{position:absolute;left:30%;width:40%;top:50%;border-top:1px solid #8bb46c60}.court-net{position:absolute;left:50%;top:-6%;bottom:-6%;border-left:2px solid #8bb46c90}.tennis-ball{position:absolute;width:114px;height:114px;border-radius:50%;top:65px;right:94px;background:radial-gradient(circle at 34% 25%,#eaff9b,#c9ec60 55%,#79982a);box-shadow:15px 26px 40px #0007,inset -6px -8px 12px #65831b66;transform:rotate(-30deg);overflow:hidden}.tennis-ball:before,.tennis-ball:after{content:'';position:absolute;top:-10px;width:92px;height:130px;border:3px solid #efffc3bc;border-radius:50%}.tennis-ball:before{left:-63px}.tennis-ball:after{right:-62px}.art-label{position:absolute;bottom:22px;right:25px;font-size:8px;letter-spacing:3px;color:#6d8b65}.tournament-logo{position:absolute;right:20px;top:16px;width:56px;height:56px;object-fit:contain;border-radius:8px}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px}.stats-row>div{position:relative;padding:18px 22px;border:1px solid var(--line);background:var(--surface);border-radius:10px}.stats-row>div>span:first-child{font-size:9px;letter-spacing:1px;color:var(--muted)}.stats-row strong{display:flex;align-items:baseline;gap:14px;font-size:29px;font-weight:600;margin-top:6px;line-height:1.3;letter-spacing:-1px}.stats-row small{color:#829080;letter-spacing:0;font-size:9px;font-weight:400}.stats-row>div:last-child strong{color:var(--accent)}.stat-arrow{position:absolute;top:18px;right:18px;color:var(--accent)}.tabs{display:flex;gap:30px;border-bottom:1px solid var(--line);margin-bottom:28px;align-items:center;overflow-x:auto;white-space:nowrap}.tabs>a{padding:0 0 15px;font-size:12px;color:var(--muted);position:relative}.tabs>a.active{color:var(--accent)}.tabs>a.active:after{content:'';height:2px;position:absolute;bottom:0;left:0;right:0;background:var(--accent)}.tabs>a>span{font-size:9px;border:1px solid var(--line);padding:1px 5px;border-radius:4px;margin-left:6px}.tabs-caption{font-size:9px;color:var(--muted);margin-left:auto;padding-bottom:15px}.overview-grid{display:grid;grid-template-columns:minmax(0,1fr) 335px;gap:24px;align-items:start}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.section-heading .eyebrow{font-size:8px;margin-bottom:7px}.panel>.section-heading{padding:23px 24px 0;margin-bottom:20px}.text-link{font-size:10px;color:var(--accent);white-space:nowrap}.text-link:hover{color:#fff}.table-scroll{overflow:auto}.standings{width:100%;border-collapse:collapse;white-space:nowrap;font-size:11px}.standings th{font-size:8px;letter-spacing:.8px;color:#7e8b81;font-weight:500;text-align:center;padding:13px 10px;background:#111712;border-bottom:1px solid var(--line)}.standings th:nth-child(2){text-align:left}.standings td{text-align:center;border-bottom:1px solid #253027;padding:14px 10px;color:#9eaa9f}.standings td:first-child,.standings th:first-child{padding-left:20px;width:48px}.standings td:last-child,.standings th:last-child{padding-right:23px}.standings tr:last-child td{border-bottom:0}.standings tbody tr:hover{background:#1b241d}.table-player{display:flex;align-items:center;gap:10px;text-align:left}.table-player strong{display:block;font-size:11px;color:#e2e7dd}.table-player small{font-size:9px;color:#748475;display:block;margin-top:3px}.avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;border-radius:50%;background:linear-gradient(140deg,#3b4a37,#222f27);color:#b9c9ae;font-size:9px;font-weight:600;border:1px solid #40513d50}.standings tr:nth-child(3n+2) .avatar,.competitor:nth-child(3) .avatar{background:linear-gradient(140deg,#32454a,#1f2b2e);color:#b1c8cc}.standings tr:nth-child(3n) .avatar{background:linear-gradient(140deg,#4b4035,#2c2923);color:#d8bfa5}.rank{font-size:11px}.rank.qualified{display:grid;place-items:center;background:#bfdc6510;color:var(--accent);border-left:2px solid var(--accent);width:24px;height:24px;border-radius:2px}.standings .points{color:var(--accent);font-size:13px;font-weight:700}.leader{margin-left:auto;font-size:16px;color:var(--accent)}.table-note{border-top:1px solid var(--line);padding:15px 22px;font-size:9px;color:#87947e;display:flex;align-items:center;gap:7px}.table-note i{display:inline-block;width:5px;height:5px;background:var(--accent);border-radius:1px}.table-note span{margin-left:auto;color:#687769;font-size:8px}.next-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:22px 18px 0}.next-panel h3{font-size:18px}.next-panel .section-heading{margin-bottom:18px}.next-panel .eyebrow{font-size:7px}.next-panel .match-card{margin-bottom:12px;background:#111813}.match-card{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:17px 17px 0;min-width:0}.match-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:18px;font-size:7px;letter-spacing:.9px;color:#7c8d7f}.time-label{color:var(--accent);font-size:10px;font-weight:600;letter-spacing:0}.final-label{font-size:7px;letter-spacing:.7px;color:#a0b28c}.competitor{display:flex;align-items:center;gap:9px;font-size:11px;margin-bottom:12px;color:#b1bcb0}.competitor>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competitor .avatar{width:27px;height:27px;font-size:8px}.competitor strong{margin-left:auto;font-size:19px;font-weight:600;color:#778674;padding-left:8px}.competitor.winner{color:#f4f5ec}.competitor.winner strong{color:var(--accent)}.match-footer{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-top:1px solid #ffffff08;margin-top:16px;font-size:8px;color:#778c78}.calendar-link{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:15px 0;font-size:10px;color:var(--accent);margin-top:18px}.calendar-link:hover{color:#fff}.rule-card{position:relative;overflow:hidden;border:1px solid #42482a;border-radius:12px;background:linear-gradient(120deg,#252d1b,#1c2217);padding:23px;margin-top:20px}.rule-card>span:first-child{font-size:8px;letter-spacing:1.5px;color:var(--accent)}.rule-card h3{margin:12px 0;font-size:23px;line-height:1.25;letter-spacing:-.8px}.rule-card p{color:#9fa98b;max-width:225px;font-size:10px;line-height:1.7}.rule-ball{position:absolute;right:-18px;bottom:-36px;font-size:124px;color:#cadb6d0e;line-height:1}.results-section{margin-top:32px}.match-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.match-grid .match-card{height:100%}.help{font-size:11px;line-height:1.8;color:var(--muted);margin:16px 0}.empty{text-align:center;color:var(--muted);padding:25px;font-size:12px}.empty-panel{text-align:center;padding:65px 24px;border:1px dashed #3a493c;border-radius:var(--radius);margin:25px 0;background:var(--surface)}.empty-panel h2,.empty-panel h3{margin-bottom:15px}.empty-panel>p{color:var(--muted);margin-bottom:22px}.empty-ball{font-size:50px;color:var(--accent);margin-bottom:15px}.count-label{font-size:10px;color:var(--accent);border:1px solid var(--line);border-radius:6px;padding:6px 10px}.player-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.player-card{padding:25px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.player-card>.avatar{width:48px;height:48px;font-size:14px;margin-bottom:20px}.player-card h3{font-size:17px;margin-bottom:7px}.player-card p{font-size:11px;color:var(--muted)}.player-card>div{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:20px;padding-top:15px;font-size:9px;color:var(--muted);gap:8px}.player-card strong{color:var(--accent)}.filter-label{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted)}.filter-label select{width:auto;min-width:180px}.bracket{display:flex;overflow:auto;gap:40px;padding:20px 0 30px}.bracket-round{min-width:285px;flex:1;display:flex;flex-direction:column}.bracket-round h4{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:25px}.bracket-games{display:flex;flex-direction:column;justify-content:space-around;gap:22px;flex:1}.bracket-games .match-card{position:relative}.champion{display:flex;gap:25px;align-items:center;border:1px solid #69773b;background:linear-gradient(110deg,#313c20,#15251a);padding:25px 32px;border-radius:12px}.champion>span{font-size:50px;color:var(--accent)}.champion .eyebrow{color:var(--accent)}.champion>strong{margin-left:auto;font-size:30px;color:var(--accent)}.site-footer{max-width:1360px;margin:0 auto;border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:26px 0;color:#788578;font-size:9px;letter-spacing:.7px;gap:20px}.site-footer b{color:var(--accent);padding:0 8px}.footer-ball{color:var(--accent);margin-left:15px}.flash{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid #546b3d;background:#25361f;color:#deefc2;padding:15px 20px;border-radius:9px;font-size:12px;margin-bottom:25px}.flash.error{border-color:#865147;background:#36211e;color:#ffd4cb}.flash button{background:transparent;border:0;font-size:22px;line-height:1}.login-layout{display:grid;grid-template-columns:1fr 430px;gap:80px;max-width:1000px;margin:55px auto;align-items:center}.login-layout h1{font-size:48px;line-height:1.12;letter-spacing:-2px;margin-bottom:20px}.login-layout>div>p:last-of-type{color:var(--muted);font-size:14px;line-height:1.8}.login-court{color:var(--accent);font-size:140px;line-height:1;margin-top:35px;transform:rotate(-25deg);width:170px}.login-form{padding:35px}.login-form h2{margin-bottom:10px;font-size:26px}.login-form>p:not(.eyebrow){color:var(--muted);font-size:12px;margin-bottom:25px}.login-form>label{margin:20px 0}.login-form>.button{width:100%;margin:6px 0 24px;justify-content:space-between}.login-form>.text-link{display:block;text-align:center}label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#bdc7bb}input,select,textarea{border:1px solid #354137;border-radius:6px;background:#0e1510;color:var(--text);width:100%;min-height:41px;padding:10px 12px;outline:none;font-size:12px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px #bbdc5e12}input::placeholder,textarea::placeholder{color:#647364}input[type=file]{font-size:10px;padding:8px;white-space:normal}input::file-selector-button{background:#293529;color:#dce5d4;border:0;padding:5px 8px;border-radius:3px;margin-right:9px;font-size:10px}textarea{resize:vertical}select{cursor:pointer}.stack{display:flex;flex-direction:column;gap:17px}.stack>.help{margin:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.inline-form{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.inline-form>label{min-width:130px}.grow{flex:1}.admin-grid{display:grid;grid-template-columns:305px minmax(0,1fr);gap:24px;align-items:start}.admin-sidebar,.admin-content{display:flex;flex-direction:column;gap:20px}.admin-grid .panel{padding:24px}.admin-grid .section-heading{padding:0;margin-bottom:22px}.admin-grid .section-heading h2{font-size:26px}.admin-grid summary{font-size:13px;font-weight:600;list-style:none}.admin-grid summary::-webkit-details-marker{display:none}.admin-grid details.panel>summary{display:flex;justify-content:space-between;align-items:center}.admin-grid details.panel>summary:after{content:'＋';color:var(--accent);font-size:17px}.admin-grid details.panel[open]>summary{margin-bottom:22px}.admin-grid details.panel[open]>summary:after{content:'−'}.admin-tournaments{margin:16px -10px -10px;max-height:360px;overflow:auto}.admin-tournaments a{display:block;padding:12px 10px;border-radius:5px;margin-bottom:4px}.admin-tournaments a.selected{background:#c5e56d12;border-left:2px solid var(--accent)}.admin-tournaments strong{font-size:12px;display:block}.admin-tournaments small{color:var(--muted);display:block;font-size:9px;margin-top:4px}.workflow{display:flex;justify-content:space-between;border:1px solid var(--line);border-radius:7px;margin-bottom:22px;font-size:10px;padding:12px;gap:10px;color:#748472;flex-wrap:wrap}.workflow .current{color:var(--accent)}.admin-summary{display:flex;gap:30px;color:var(--muted);font-size:10px;flex-wrap:wrap}.admin-summary strong{color:var(--text);font-size:20px;margin-right:5px}.roster{display:flex;flex-direction:column;gap:12px;margin-top:22px}.roster>div{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:12px}.roster strong{font-size:12px}.roster form{margin-left:auto}.text-button{background:transparent;border:0;font-size:10px;color:#c1a992;padding:6px}.directory{margin-top:22px}.directory summary{color:var(--muted);padding:10px 0}.directory .inline-form{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.admin-match{border:1px solid var(--line);border-radius:8px;margin:12px 0;padding:15px}.admin-match>summary{display:flex;align-items:center;gap:16px;font-size:11px}.match-id{color:var(--muted);font-size:9px;min-width:60px}.versus{color:#647862;font-size:9px;margin:0 6px}.score-pill{color:var(--accent);white-space:nowrap;background:#d2f76b0a;border-radius:4px;padding:4px 8px;font-size:12px}.match-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:20px}.danger-panel{border-color:#67433b}.button.danger{background:#512a23;color:#ffcab8;border-color:#875144}.checkbox{display:flex;flex-direction:row;align-items:center}.checkbox input{width:16px;min-height:16px}.admin-sidebar .button{white-space:normal}
@media(min-width:1500px){.shell{padding-top:45px}.hero{min-height:325px}.overview-grid{grid-template-columns:minmax(0,1fr) 360px}.hero-content{padding:38px 40px}}
@media(max-width:1150px){.header-inner{gap:30px;padding:0 28px}.shell{padding:30px 28px 50px}.season{display:none}.overview-grid{grid-template-columns:minmax(0,1fr) 300px;gap:18px}.stats-row strong{flex-direction:column;gap:3px}.hero-content{max-width:70%;padding:28px}.hero-art{width:37%}.court{left:35px}.tennis-ball{right:35px}.table-player{gap:7px}.standings td,.standings th{padding:12px 7px}.standings .table-player .avatar{display:none}.table-note span{display:none}.player-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.site-footer{margin:0 28px}.admin-grid{grid-template-columns:270px minmax(0,1fr)}.admin-grid .panel{padding:20px}.admin-match>summary{gap:8px}}
@media(max-width:900px){.overview-grid{grid-template-columns:1fr}.overview-grid>aside{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.rule-card{margin-top:0}.match-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-row{gap:10px}.stats-row>div{padding:16px}.tabs{gap:24px}.tabs-caption{display:none}.hero-art{opacity:.7}.hero-content{max-width:75%}.header-nav{gap:20px}.header-inner{gap:25px}.admin-grid{grid-template-columns:1fr}.admin-sidebar{display:grid;grid-template-columns:1fr 1fr;align-items:start}.login-layout{gap:35px;grid-template-columns:1fr 380px}.login-layout h1{font-size:38px}.heading-mark{display:none}.standings .table-player .avatar{display:flex}}
@media(max-width:640px){.site-header{height:auto;min-height:75px}.header-inner{flex-wrap:wrap;gap:12px;padding:17px 20px}.brand{font-size:22px}.brand-icon{font-size:35px}.brand small{font-size:7px;letter-spacing:1.6px}.header-nav{order:3;width:100%;height:33px;border-top:1px solid var(--line);margin-top:6px;padding-top:8px}.header-nav a{font-size:11px;padding-bottom:8px}.header-end{gap:0}.header-end .button{font-size:10px;padding:8px 9px}.shell{padding:25px 18px 40px}.page-heading{margin-bottom:25px;align-items:start;gap:15px;flex-wrap:wrap}.page-heading h1{font-size:30px;letter-spacing:-1.2px}.page-heading .eyebrow{font-size:7px;letter-spacing:1.4px}.page-heading>div>p:last-child{font-size:11px}.strip-label{min-width:65px;font-size:7px}.strip-label strong{font-size:8px}.tournament-chip{min-width:285px;padding:11px 13px;gap:10px}.tournament-chip strong{font-size:10px;max-width:170px;overflow:hidden;text-overflow:ellipsis}.tournament-chip .status{font-size:7px;padding:3px 5px}.chip-ball{display:none}.hero{min-height:310px}.hero-content{padding:25px 22px;max-width:100%}.hero h2{font-size:29px;max-width:300px}.hero p{max-width:290px;font-size:11px}.hero-details{max-width:280px;gap:8px 15px;font-size:9px}.hero-art{width:100%;opacity:.22;pointer-events:none}.court{left:190px;top:100px}.tennis-ball{top:140px;right:-20px;width:100px;height:100px}.hero-kicker{gap:10px}.hero-kicker>span:last-child{font-size:8px}.art-label{display:none}.stats-row{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:25px}.stats-row>div{padding:14px 16px}.stats-row>div>span:first-child{font-size:8px}.stats-row strong{font-size:27px;flex-direction:row;flex-wrap:wrap;gap:4px 12px}.stats-row small{font-size:8px}.stat-arrow{display:none}.tabs{gap:22px;margin-bottom:24px}.tabs>a{font-size:11px;padding-bottom:12px}.panel>.section-heading{padding:19px 17px 0}.section-heading{gap:10px}h3{font-size:19px}.text-link{font-size:9px}.section-heading .eyebrow{font-size:7px;letter-spacing:1.4px}.standings th{font-size:7px}.standings td,.standings th{padding:12px 7px}.standings td:first-child,.standings th:first-child{padding-left:12px;width:34px}.standings td:last-child,.standings th:last-child{padding-right:12px}.standings td{font-size:10px}.table-player{min-width:142px}.table-player strong{font-size:10px}.table-player small{font-size:8px}.standings .table-player .avatar{display:none}.leader{font-size:13px}.table-note{padding:13px 15px;font-size:8px}.overview-grid>aside{display:block}.rule-card{margin-top:20px}.next-panel{padding:20px 17px 0}.next-panel .match-card{padding:18px 18px 0}.next-panel .competitor{font-size:12px}.match-grid{grid-template-columns:1fr;gap:14px}.match-grid .competitor{font-size:12px}.match-meta{font-size:8px}.match-footer{font-size:9px}.player-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.player-card{padding:18px}.player-card h3{font-size:15px}.player-card>div{flex-direction:column;font-size:9px}.site-footer{margin:0 18px;flex-direction:column;font-size:8px;padding:22px 0;gap:9px}.login-layout{display:flex;flex-direction:column;gap:30px;margin:20px auto}.login-layout>div{width:100%}.login-layout h1{font-size:38px}.login-court{display:none}.login-form{padding:25px;width:100%}.admin-sidebar{display:flex}.admin-grid .panel{padding:20px 16px}.admin-summary{gap:15px}.admin-summary strong{font-size:16px}.admin-summary span{font-size:9px}.admin-grid .section-heading h2{font-size:22px}.workflow{font-size:8px;padding:10px;gap:6px}.admin-match{padding:12px 10px}.admin-match>summary{flex-wrap:wrap}.admin-match>summary>.grow{min-width:170px;font-size:10px}.match-id{min-width:50px;font-size:8px}.match-edit-grid{grid-template-columns:1fr;gap:24px}.inline-form{gap:14px}.inline-form>label{flex-basis:100%}.inline-form>.button{width:100%}.admin-content .button{white-space:normal}.form-row{gap:10px}.filter-label{flex-direction:column;align-items:flex-end;gap:5px;font-size:9px}.filter-label select{min-width:0;width:145px;font-size:11px}.champion{gap:15px;padding:20px}.champion h2{font-size:22px}.champion>span{font-size:35px}.champion>strong{font-size:20px}.bracket{gap:25px}.empty-panel{padding:40px 20px}.empty-panel h2{font-size:23px}}

/* Leave breathing room when navigating directly to a tournament section. */
#torneo-secciones{scroll-margin-top:20px}

/* Administrative sections and scoped accounts. */
.admin-workspace{grid-template-columns:235px minmax(0,1fr)}.admin-menu{display:flex;flex-direction:column;gap:5px}.admin-menu>a{display:flex;justify-content:space-between;align-items:center;padding:13px 12px;border-radius:7px;color:var(--muted);font-size:12px}.admin-menu>a:hover{background:var(--surface-2);color:var(--text)}.admin-menu>a.selected{background:var(--accent-dim);color:var(--accent);border-left:2px solid var(--accent)}.account-card{padding:0 16px;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.account-card strong{color:var(--text)}.account-card p{margin:7px 0}.account-card small{display:block;margin-top:13px;line-height:1.7}.admin-content>.section-heading{margin-bottom:0}.admin-content>.section-heading .help{margin:9px 0 0}.tournament-context{border-color:#46543d}.player-edit summary small,.user-edit summary small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.player-edit[open]>summary,.user-edit[open]>summary{margin-bottom:20px}.withdraw-form{margin-top:18px;text-align:right}.assignment-fieldset{border:1px solid var(--line);border-radius:8px;padding:16px;min-width:0}.assignment-fieldset legend{font-size:11px;padding:0 7px;color:var(--muted)}.assignment-fieldset .help{margin:0 0 15px}.assignment-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-height:260px;overflow:auto}.assignment-list .checkbox{align-items:flex-start}.assignment-list input{flex-shrink:0}.role-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.role-guide article{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:20px}.role-guide article>span{font-size:10px;color:var(--accent)}.role-guide h3{font-size:15px;margin:12px 0 9px}.role-guide p{color:var(--muted);font-size:11px;line-height:1.7}
@media(max-width:900px){.admin-workspace{grid-template-columns:1fr}.admin-workspace .admin-sidebar{display:block}.admin-menu{display:flex;flex-direction:row;overflow:auto}.admin-menu>a{white-space:nowrap;gap:15px}.account-card{display:none}}
@media(max-width:640px){.role-guide{grid-template-columns:1fr}.role-guide article{padding:16px}.role-guide h3{margin:6px 0}.assignment-list{grid-template-columns:1fr}.admin-grid .panel.admin-menu{padding:10px}.admin-menu>a{font-size:11px}.admin-workspace .section-heading h2{font-size:25px}}

.rule-card h3,.rule-card .organizer-rules{overflow-wrap:anywhere}.rule-card .organizer-rules{white-space:pre-line;max-width:none}.rule-card .rules-format{border-top:1px solid #ffffff15;padding-top:12px;margin-top:15px;font-size:9px;color:var(--accent)}

/* Sponsor banners: uploaded images or editable text cards. */
.sponsors-carousel{margin:0 0 26px}.sponsors-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:13px}.sponsors-heading .eyebrow{margin-bottom:5px;font-size:7px}.sponsors-heading h3{font-size:17px}.carousel-controls{display:flex;gap:7px}.carousel-controls button{background:var(--surface);border:1px solid var(--line);border-radius:6px;min-width:34px;min-height:32px;padding:6px 10px;font-size:11px}.carousel-controls button:hover{border-color:var(--accent);color:var(--accent)}.sponsors-slides{border-radius:12px;overflow:hidden}.sponsor-slide{--sponsor-accent:#d5f76a;--sponsor-bg:#26351a;border:1px solid #ffffff18;border-radius:12px;overflow:hidden;background:linear-gradient(110deg,var(--sponsor-bg),#141b17)}.sponsor-blue{--sponsor-accent:#8bc9ff;--sponsor-bg:#1d3445}.sponsor-orange{--sponsor-accent:#ffbb7d;--sponsor-bg:#443020}.sponsor-banner{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;aspect-ratio:6/1;min-height:145px;max-height:230px;overflow:hidden}.sponsor-banner>img{display:block;width:100%;height:100%;object-fit:contain}.sponsor-copy{padding:23px 35px;position:relative;z-index:1;max-width:85%}.sponsor-copy>span{font-size:8px;letter-spacing:2.5px;color:var(--sponsor-accent)}.sponsor-copy strong{display:block;font-size:clamp(28px,3.4vw,49px);letter-spacing:-1.8px;line-height:1.2;margin:9px 0;overflow-wrap:anywhere}.sponsor-copy p{font-size:11px;color:#becabd;overflow-wrap:anywhere}.sponsor-decoration{font-size:150px;line-height:1;color:var(--sponsor-accent);opacity:.18;position:absolute;right:35px;top:50%;transform:translateY(-50%)}.sponsor-banner:after{content:'';position:absolute;border:1px solid #ffffff0b;border-radius:50%;width:220px;height:220px;right:0;top:-80px;pointer-events:none}.carousel-footer{display:flex;justify-content:space-between;align-items:center;padding:10px 2px 0;font-size:9px;color:var(--muted)}.carousel-dots{display:flex;gap:5px}.carousel-dots button{padding:9px 4px;border:0;background:transparent;min-width:26px;min-height:28px}.carousel-dots button:after{content:'';display:block;height:3px;border-radius:3px;background:#53614d;width:18px}.carousel-dots button[aria-pressed=true]:after{background:var(--accent)}.banner-preview{display:block;width:100%;max-height:180px;object-fit:contain;background:var(--bg);border:1px solid var(--line);border-radius:8px}
@media(max-width:640px){.sponsors-heading .eyebrow{font-size:6px;letter-spacing:1px}.sponsors-heading h3{font-size:15px}.carousel-controls{gap:4px}.carousel-controls button{font-size:10px;padding:6px 8px;min-width:30px}.sponsor-banner{aspect-ratio:3/1;min-height:145px}.sponsor-copy{padding:20px;max-width:90%}.sponsor-copy strong{font-size:32px;letter-spacing:-1px}.sponsor-copy>span{font-size:7px}.sponsor-copy p{font-size:10px}.sponsor-decoration{right:10px;font-size:100px}}

.assignment-form{margin:18px 0 24px;padding:18px;border:1px dashed #647650;border-radius:10px;background:#b7e36e06}.assignment-form .eyebrow{margin:0}.fixture-note{font-size:9px;color:var(--muted);margin-top:12px}
/* Tournament photography and the upload workspace. */
.gallery-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:12px 0 28px}.gallery-heading h2{font-family:'Arial Black',Arial,sans-serif;font-size:clamp(26px,3vw,38px);letter-spacing:-1.5px}.gallery-heading h2>span{color:var(--accent)}.gallery-heading>div>p:last-child{font-size:12px;color:var(--muted);margin-top:12px}.gallery-filter{padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:25px}.gallery-filter>label{max-width:550px}.gallery-grid{columns:3;column-gap:17px}.gallery-item{margin:0 0 17px;break-inside:avoid;overflow:hidden;border-radius:16px;border:1px solid #42513b;background:var(--surface);position:relative}.gallery-item>a{display:block;position:relative;overflow:hidden}.gallery-item img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .5s ease,filter .5s ease}.gallery-item:nth-child(3n) img{aspect-ratio:3/2}.gallery-item:nth-child(3n + 2) img{aspect-ratio:1/1}.gallery-item a:hover img,.gallery-item a:focus-visible img{transform:scale(1.045);filter:brightness(.88)}.gallery-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;padding:20px;background:linear-gradient(transparent 45%,#060d08db)}.gallery-overlay>span:last-child{min-width:0}.gallery-overlay small{display:block;font-size:9px;letter-spacing:.4px;color:#c6ddab;margin-bottom:7px}.gallery-overlay strong{display:block;font-size:15px;line-height:1.35;overflow-wrap:anywhere}.gallery-expand{position:absolute;top:15px;right:15px;width:34px;height:34px;border-radius:50%;background:#0c160c88;border:1px solid #fff3;display:grid;place-items:center;color:var(--accent);font-size:20px}.gallery-preview{margin-top:38px}.gallery-preview .gallery-grid{columns:3}.gallery-empty{text-align:center;border:1px dashed #526440;border-radius:20px;padding:45px 25px;background:radial-gradient(ellipse at 50% 0,#a9d94f0c,transparent 75%),var(--surface);margin:25px 0}.gallery-empty-art{color:var(--accent);margin-bottom:22px;opacity:.75}.gallery-empty h3{font-size:25px;margin:10px 0}.gallery-empty>p:not(.eyebrow){color:var(--muted);font-size:12px;margin:14px 0 24px}.gallery-pagination{display:flex;align-items:center;justify-content:center;gap:22px;margin:28px 0 10px;font-size:11px;color:var(--muted)}.photo-lightbox{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;padding:20px 30px;border:0;background:#070c09f5;color:var(--text)}.photo-lightbox[open]{display:flex;flex-direction:column;animation:photo-open .2s ease}.photo-lightbox::backdrop{background:#000b;backdrop-filter:blur(10px)}.lightbox-toolbar{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;gap:15px}.lightbox-toolbar .eyebrow{margin:0;color:var(--accent)}.lightbox-button{border:1px solid #73856555;background:#24322299;color:var(--text);min-width:44px;height:44px;padding:4px 12px;border-radius:50%;font-size:23px}.lightbox-button:hover{border-color:var(--accent);color:var(--accent)}.lightbox-stage{position:relative;display:flex;align-items:center;justify-content:center;gap:20px;flex:1;min-height:0;padding:20px 0}.lightbox-stage>img{display:block;max-width:calc(100% - 130px);max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:10px}.lightbox-prev,.lightbox-next{flex-shrink:0}.lightbox-caption{width:100%;max-width:1000px;display:flex;justify-content:space-between;align-items:flex-start;gap:25px;margin:0 auto;padding:12px 0;flex-shrink:0}.lightbox-caption small{display:block;font-size:10px;color:var(--accent);margin-bottom:8px}.lightbox-caption p{font-size:14px;line-height:1.5;overflow-wrap:anywhere}.lightbox-caption>span{font-size:11px;white-space:nowrap;color:var(--muted)}.lightbox-open{overflow:hidden}.gallery-dropzone{position:relative;display:flex;align-items:center;gap:8px;text-align:center;justify-content:center;padding:34px 20px;border:1px dashed #809960;border-radius:14px;background:#a8d95507;cursor:pointer;transition:background .2s,border-color .2s}.gallery-dropzone:hover,.gallery-dropzone.is-dragging,.gallery-dropzone:focus-within{background:#a8d95514;border-color:var(--accent)}.gallery-dropzone>strong{color:var(--text);font-size:19px;letter-spacing:-.4px}.gallery-dropzone>span:not(.upload-symbol){font-size:12px;color:var(--muted)}.gallery-dropzone>small{font-size:10px;color:#9fb28e;margin-top:8px}.gallery-dropzone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-symbol{font-size:40px;color:var(--accent);font-weight:300;line-height:1;margin-bottom:12px}.photo-upload-progress{padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.photo-upload-progress progress{width:100%;accent-color:var(--accent);height:8px}.photo-upload-progress p{font-size:11px;color:var(--muted);line-height:1.8;margin-top:10px;overflow-wrap:anywhere}.admin-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.admin-photo-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--bg)}.admin-photo-card>a{display:block}.admin-photo-card>a>img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}.admin-photo-card>form{padding:18px;gap:13px}.admin-photo-card small{font-size:9px;color:var(--muted)}
@keyframes photo-open{from{opacity:0;transform:scale(.99)}to{opacity:1;transform:scale(1)}}
@media(max-width:900px){.gallery-grid,.gallery-preview .gallery-grid{columns:2}.gallery-heading h2{font-size:30px}}
@media(max-width:640px){.gallery-heading{align-items:flex-start;gap:12px}.gallery-heading h2{font-size:27px;max-width:250px}.gallery-heading>div>p:last-child{font-size:11px}.gallery-grid,.gallery-preview .gallery-grid{columns:2;column-gap:10px}.gallery-item{margin-bottom:10px;border-radius:11px}.gallery-overlay{padding:12px}.gallery-overlay small{font-size:7px;line-height:1.4}.gallery-overlay strong{font-size:11px}.gallery-expand{width:27px;height:27px;top:9px;right:9px;font-size:17px}.gallery-filter{padding:15px}.gallery-heading .count-label{font-size:9px;white-space:nowrap}.gallery-pagination{gap:13px;font-size:10px}.photo-lightbox{padding:15px}.lightbox-toolbar .eyebrow{font-size:7px}.lightbox-stage{gap:0}.lightbox-stage>img{max-width:100%;border-radius:7px}.lightbox-prev,.lightbox-next{position:absolute;z-index:1;width:38px;min-width:38px;height:38px;background:#0b1709b8}.lightbox-prev{left:0}.lightbox-next{right:0}.lightbox-caption{gap:15px;padding:15px 0}.lightbox-caption p{font-size:12px}.lightbox-caption small{font-size:8px}.admin-photo-grid{grid-template-columns:1fr}.gallery-dropzone{padding:28px 18px}.gallery-dropzone>strong{font-size:17px}.gallery-empty{padding:35px 20px}.gallery-empty h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){.photo-lightbox[open]{animation:none}.gallery-item img,.gallery-dropzone{transition:none}}
.password-field{display:flex;flex-direction:column;gap:7px}.password-control{position:relative}.password-control>input{padding-right:52px}.password-toggle{position:absolute;top:1px;bottom:1px;right:1px;width:44px;display:grid;place-items:center;background:transparent;border:0;border-radius:5px;color:var(--muted)}.password-toggle:hover,.password-toggle[aria-pressed=true]{color:var(--accent);background:#bfdc6510}.password-toggle .eye-slash{opacity:0}.password-toggle.is-visible .eye-slash{opacity:1}.password-match-status{font-size:11px;line-height:1.6;margin:0}.password-match-status:empty{display:none}.password-match-status[data-match=error]{color:#ffbba8}.password-match-status[data-match=success]{color:var(--accent)}

.login-form>.password-field{margin:20px 0}
/* Uploaded banners use their own image bounds instead of the full text-card rail. */
.sponsor-slide.sponsor-image-slide{width:fit-content;max-width:100%;margin-inline:auto;background:transparent;border-color:#ffffff20}.sponsor-image-slide .sponsor-banner,.public-site .sponsor-image-slide .sponsor-banner{display:block;width:fit-content;max-width:100%;aspect-ratio:auto;min-height:0;max-height:none}.sponsor-image-slide .sponsor-banner:after{display:none}.sponsor-image-slide .sponsor-banner>img{display:block;width:auto;height:auto;max-width:100%;max-height:230px;object-fit:contain}@media(max-width:640px){.sponsor-image-slide .sponsor-banner>img{max-height:180px}}
