:root{--court:#1f4e8c;--court-deep:#173c6c;--ink:#10263d;--ink-soft:#4a5d70;--glass:#eef3f6;--paper:#fff;--line:#d3dde5;--ball:#e3f04b;--ball-deep:#c9d62e;--ok:#1e7a4c;--warn:#9a5b00;--danger:#b42318;--font-display:"Barlow Condensed", "Arial Narrow", sans-serif;--font-body:"Barlow", system-ui, sans-serif;--radius:6px;--radius-card:10px;--space:1rem;--max:72rem;--focus:0 0 0 3px var(--ball), 0 0 0 5px var(--ink)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--ink);background:var(--glass);margin:0;font-size:1.0625rem;line-height:1.55}h1,h2,h3{font-family:var(--font-display);margin:0 0 .5em;font-weight:700;line-height:1.1}h1{font-size:clamp(2.2rem,5vw,3.2rem)}h2{font-size:1.6rem}h3{font-size:1.25rem;font-weight:600}p{margin:0 0 1em}a{color:var(--court);text-underline-offset:.15em}a:hover{color:var(--court-deep)}:focus-visible{box-shadow:var(--focus);border-radius:3px;outline:none}.muted{color:var(--ink-soft)}.small{font-size:.9rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{background:var(--ball);z-index:10;padding:.5rem 1rem;position:absolute;top:0;left:-999px}.skip-link:focus{left:.5rem}.demo-bar{background:var(--ink);color:var(--paper);text-align:center;padding:.4rem 1rem;font-size:.9rem}.site-header{background:var(--court);color:var(--paper)}.site-header-inner{max-width:var(--max);padding:.75rem var(--space);align-items:center;gap:1rem;margin:0 auto;display:flex}.brand{color:var(--paper);font-family:var(--font-display);align-items:center;gap:.6rem;margin-right:auto;font-size:1.35rem;font-weight:700;line-height:1.1;text-decoration:none;display:flex}.brand:hover{color:var(--paper)}.brand-ball{background:radial-gradient(circle at 0% 50%, transparent 55%, #ffffffe6 57%, transparent 62%), radial-gradient(circle at 100% 50%, transparent 55%, #ffffffe6 57%, transparent 62%), var(--ball);border-radius:50%;flex:none;width:1.4rem;height:1.4rem}.site-nav{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.site-nav a,.nav-button{color:var(--paper);border-radius:var(--radius);font:500 1rem var(--font-body);cursor:pointer;background:0 0;border:0;padding:.4rem .7rem;text-decoration:none}.site-nav a:hover,.nav-button:hover{color:var(--paper);background:#ffffff1f}.site-nav a[aria-current=page]{box-shadow:inset 0 -3px 0 var(--ball);border-radius:0}.site-nav .nav-cta{background:var(--ball);color:var(--ink);font-weight:600}.site-nav .nav-cta:hover{background:var(--ball-deep);color:var(--ink)}.nav-sep{background:#ffffff4d;width:1px;height:1.4rem;margin:0 .4rem}.nav-toggle{display:none}.site-main{max-width:var(--max);padding:2rem var(--space) 4rem;min-height:60vh;margin:0 auto}.site-main:focus{outline:none}.site-footer{border-top:1px solid var(--line);color:var(--ink-soft);padding:1.5rem var(--space);text-align:center;font-size:.9rem}@media (width<=52rem){.site-header-inner{flex-wrap:wrap}.nav-toggle{color:var(--paper);border-radius:var(--radius);font:500 1rem var(--font-body);background:0 0;border:1px solid #ffffff80;padding:.35rem .8rem;display:block}.site-nav{flex-direction:column;align-items:stretch;width:100%;padding-bottom:.5rem;display:none}.site-nav.is-open{display:flex}.site-nav a,.nav-button{text-align:left;padding:.6rem .5rem}.site-nav a[aria-current=page]{box-shadow:inset 3px 0 0 var(--ball)}.nav-sep{width:100%;height:1px;margin:.3rem 0}}.page-header{margin-bottom:1.5rem}.page-header .lead{color:var(--ink-soft);max-width:40em;font-size:1.15rem}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-card);margin-bottom:1.5rem;padding:1.25rem 1.5rem}.card>h2{font-size:1.4rem}.button{border:1.5px solid var(--court);border-radius:var(--radius);background:var(--paper);min-height:2.6rem;color:var(--court);font:600 1rem var(--font-body);cursor:pointer;justify-content:center;align-items:center;gap:.4rem;padding:.45rem 1.1rem;text-decoration:none;display:inline-flex}.button:hover{background:var(--glass);color:var(--court-deep)}.button:disabled{opacity:.55;cursor:progress}.button-primary{background:var(--court);color:var(--paper)}.button-primary:hover{background:var(--court-deep);color:var(--paper)}.button-quiet{background:0 0;border-color:#0000}.button-small{min-height:2.1rem;padding:.25rem .75rem;font-size:.93rem}.notice{border-radius:var(--radius);background:var(--paper);border-left:4px solid;margin:0 0 1.5rem;padding:.85rem 1.1rem}.notice>:last-child{margin-bottom:0}.notice ul{margin:0;padding-left:1.2rem}.notice-info{color:var(--court)}.notice-success{color:var(--ok)}.notice-warning{color:var(--warn)}.notice a{color:inherit;font-weight:600}.empty-state{border:1.5px dashed var(--line);border-radius:var(--radius-card);text-align:center;color:var(--ink-soft);padding:2rem}.loading{color:var(--ink-soft)}.tag{background:var(--glass);color:var(--ink);border-radius:999px;padding:.05rem .55rem;font-size:.8rem;font-weight:600;display:inline-block}.plain-list{margin:0;padding:0;list-style:none}.plain-list li{border-bottom:1px solid var(--line);padding:.35rem 0}.columns{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:2rem;display:grid}.split{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:1.5rem;display:grid}.split>.card{margin-bottom:0}@media (width<=52rem){.split{grid-template-columns:1fr}}.split+.card,.split+section{margin-top:1.5rem}.section-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.hero{max-width:48rem;margin-bottom:2rem}.hero-title{letter-spacing:-.01em;margin-bottom:.4em;font-size:clamp(2.8rem,8vw,5.2rem);line-height:.95}.hero-status{color:var(--ink-soft);font-size:1.2rem}.hero .button{margin:0 .5rem .5rem 0}.home-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:2rem;display:grid}@media (width<=52rem){.home-grid{grid-template-columns:1fr}}.round-progress{margin:0;padding:0;list-style:none}.round-progress li{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.7rem 0;display:grid}.round-progress a{font-weight:600}.round-progress .muted{text-overflow:ellipsis;white-space:nowrap;font-size:.93rem;overflow:hidden}.progress-dots{gap:.3rem;display:flex}.dot{border:1.5px solid var(--ink-soft);border-radius:50%;width:.8rem;height:.8rem}.dot-confirmed{background:var(--ball);border-color:var(--ink)}.dot-submitted{background:linear-gradient(90deg, var(--ball) 50%, transparent 50%);border-color:var(--ink)}.dot-disputed{background:var(--danger);border-color:var(--danger)}.tie-line{display:block}.board{margin-bottom:2.5rem}.announcement{border-radius:var(--radius-card)}.announcement h2,.announcement h3{margin-bottom:.3em}.announcement p:last-child{margin-bottom:0}.announcement-meta{align-items:center;gap:.6rem;margin-bottom:.4rem;font-size:.9rem;display:flex}.announcement.is-featured{background:var(--ball);box-shadow:0 0 0 1px var(--ball-deep);padding:1.5rem 1.75rem;font-size:1.12rem}.announcement.is-featured h2{font-size:clamp(1.8rem,4vw,2.4rem)}.announcement.is-featured .tag{background:var(--ink);color:var(--ball)}.announcement.is-featured a{color:var(--ink);font-weight:600}.board-rest{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1rem;margin-top:1rem;display:grid}.board-rest .announcement{background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--court);padding:1rem 1.25rem}.board-rest .announcement-important{border-left-color:var(--danger)}.board-rest .announcement-event{border-left-color:var(--ball-deep)}.tag-important{color:var(--danger);background:#fde6e3}.tag-event{color:#5b6200;background:#f3f7c7}.scoreboard{background-color:var(--court);outline:1px solid var(--court-deep);border-radius:var(--radius-card);color:var(--paper);background-image:linear-gradient(90deg,#0000 calc(50% - 1px),#ffffff24 calc(50% - 1px) calc(50% + 1px),#0000 calc(50% + 1px)),linear-gradient(90deg,#0000 22%,#ffffff1a 22% calc(22% + 2px),#0000 calc(22% + 2px) calc(78% - 2px),#ffffff1a calc(78% - 2px) 78%,#0000 78%);border:3px solid #ffffffd9;margin-bottom:.75rem;position:relative;overflow-x:auto}.standings{border-collapse:collapse;width:100%}.standings caption{text-align:left;font:600 1rem var(--font-body);color:#fffc;padding:.9rem 1.1rem 0}.standings th{font:500 .88rem var(--font-body);color:#ffffffbf;text-align:left;border-bottom:2px solid #ffffff80;padding:.8rem .9rem .5rem}.standings abbr{text-decoration:none}.standings td{border-bottom:1px solid #ffffff24;padding:.55rem .9rem}.standings tr:last-child td{border-bottom:0}.standings .col-num{text-align:right;font-variant-numeric:tabular-nums}.standings .col-pos{width:3.5rem;font:700 1.35rem var(--font-display);font-variant-numeric:tabular-nums}.standings .col-points{font:700 1.5rem var(--font-display);color:var(--ball)}.standings .player-link{color:var(--paper);font-weight:600;text-decoration:none}.standings .player-link:hover{text-decoration:underline}.standings .muted{color:#fff9}.standings .tie{color:#ffffffb3;margin-left:.1rem;font-size:.85rem}.standings tr.is-leader .col-pos:after{content:"";background:var(--ball);vertical-align:.15em;border-radius:50%;width:.7rem;height:.7rem;margin-left:.35rem;display:inline-block}.standings tr.is-group-alt td{background:#ffffff12}.standings tr.is-group-start td{border-top:2px solid #fff6}.standings tr.is-me td{background:#e3f04b29}.standings tr.is-withdrawn td{opacity:.6}@media (width<=36rem){.standings .col-optional{display:none}}.round-tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.round-tabs a,.admin-tabs a{border:1.5px solid var(--line);background:var(--paper);color:var(--ink);border-radius:999px;padding:.45rem 1rem;font-weight:500;text-decoration:none}.round-tabs a[aria-current=page],.admin-tabs a[aria-current=page]{background:var(--court);border-color:var(--court);color:var(--paper)}.live{background:var(--ball);color:var(--ink);border-radius:999px;padding:0 .45rem;font-size:.8rem;font-weight:600}.round-summary{color:var(--ink-soft)}.group-grid{grid-template-columns:repeat(auto-fill,minmax(21rem,1fr));gap:1.25rem;display:grid}@media (width<=26rem){.group-grid{grid-template-columns:1fr}}.group-card{background:var(--paper);border:1px solid var(--line);border-top:5px solid var(--court);border-radius:var(--radius-card);padding:1rem 1.25rem;scroll-margin-top:1rem}.group-card-head{justify-content:space-between;align-items:start;gap:1rem;display:flex}.group-card-head h3{margin:0;font-size:1.5rem;font-weight:700}.group-when{text-align:right;color:var(--ink-soft);margin:0;font-size:.88rem}.group-players{counter-reset:gp;margin:.75rem 0;padding:0;list-style:none}.group-players li{counter-increment:gp;align-items:center;gap:.6rem;padding:.3rem 0;display:flex}.group-players li:before{content:counter(gp);width:1.2rem;color:var(--ink-soft);font:600 1rem var(--font-display)}.group-players .player-link{color:var(--ink);flex:1;text-decoration:none}.group-players .player-link:hover{text-decoration:underline}.group-players li.is-me{font-weight:600}.group-points{font:700 1.3rem var(--font-display);font-variant-numeric:tabular-nums}.match-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.match{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;padding:.55rem 0;font-size:.93rem;display:grid}.match-team .player-link{color:inherit;text-decoration:none}.match-team .player-link:hover{text-decoration:underline}.team-b{text-align:right}.amp{color:var(--ink-soft)}.match-team.is-winner{font-weight:600}.match-team.is-mine{box-shadow:inset 0 -2px 0 var(--ball-deep)}.match-score{font:700 1.35rem var(--font-display);font-variant-numeric:tabular-nums;align-items:baseline;gap:.25rem;display:flex}.match-score i{color:var(--ink-soft);font-style:normal;font-weight:500}.match-status{text-align:center;grid-column:1/-1}.match-submitted .match-score,.match-disputed .match-score{color:var(--ink-soft)}.group-foot{margin:.6rem 0 0;font-size:.85rem}.status{white-space:nowrap;border-radius:999px;padding:.05rem .5rem;font-size:.8rem;font-weight:600}.status-pending{background:var(--glass);color:var(--ink-soft)}.status-submitted{color:var(--warn);background:#fff4d6}.status-confirmed{color:var(--ok);background:#e2f3e9}.status-disputed{color:var(--danger);background:#fde6e3}.player-stats{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-card);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:1px;margin:0 0 2rem;display:grid;overflow:hidden}.player-stats div{background:var(--paper);padding:.9rem 1.1rem}.player-stats dt{color:var(--ink-soft);font-size:.9rem}.player-stats dd{font:700 2.2rem var(--font-display);font-variant-numeric:tabular-nums;margin:0}.player-stats small{font:500 .9rem var(--font-body);color:var(--ink-soft)}.history-round{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-card);margin-bottom:1rem;padding:1rem 1.25rem}.history-head h3{margin-bottom:.2rem}.history-table{border-collapse:collapse;width:100%;font-size:.95rem}.history-table th{text-align:left;color:var(--ink-soft);border-bottom:1px solid var(--line);padding:.4rem .5rem;font-weight:500}.history-table td{border-bottom:1px solid var(--line);padding:.5rem}.history-table tr:last-child td{border-bottom:0}.history-table .col-num{text-align:right;font:700 1.15rem var(--font-display);font-variant-numeric:tabular-nums}.outcome{font-size:.9rem;font-weight:600}.outcome-win{color:var(--ok)}.outcome-loss{color:var(--danger)}.outcome-draw{color:var(--ink-soft)}@media (width<=36rem){.history-table thead{display:none}.history-table tr{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;padding:.4rem 0;display:grid}.history-table td{border:0;padding:.1rem .25rem}.history-table td:nth-child(2){color:var(--ink-soft);grid-column:1}.history-table td:nth-child(3){grid-area:1/2}}.prose{max-width:42rem}.prose h2{margin-top:2rem}.pairings-example{gap:.5rem;margin:1rem 0 1.25rem;padding:0;list-style:none;display:grid}.pairings-example li{background:var(--court);color:var(--paper);border-radius:var(--radius);font:600 1.35rem var(--font-display);grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:.6rem 1.25rem;display:grid}.pairings-example span:last-child{text-align:right}.pairings-example i{font:400 1rem var(--font-body);color:var(--ball);font-style:normal}.form{gap:1rem;display:grid}.form.narrow{max-width:26rem}.form label{gap:.3rem;font-weight:500;display:grid}.form small{color:var(--ink-soft);font-size:.88rem;font-weight:400}input,select,textarea{font:400 1rem var(--font-body);color:var(--ink);border:1.5px solid var(--line);border-radius:var(--radius);background:var(--paper);width:100%;padding:.55rem .7rem}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--court)}.form label.check{align-items:flex-start;gap:.6rem;font-weight:400;display:flex}.check input{width:1.15rem;height:1.15rem;accent-color:var(--court);flex:none;margin-top:.2rem}.form-error{color:var(--danger);border-radius:var(--radius);background:#fde6e3;padding:.6rem .9rem;font-weight:500}.form-error[hidden]{display:none}.inline-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;margin-bottom:1rem}.inline-form .form-error{grid-column:1/-1}.inline-form[hidden]{display:none}.form-row{flex-wrap:wrap;align-items:end;gap:1rem;display:flex}.form-row>label{flex:12rem}@media (width<=36rem){.inline-form{grid-template-columns:1fr}}.steps ol{padding-left:1.3rem}.steps li{margin-bottom:.6rem}.checklist{margin:0 0 1rem;padding:0;list-style:none}.checklist li{align-items:center;gap:.6rem;padding:.4rem 0;display:flex}.check-icon{border:2px solid var(--line);border-radius:50%;flex:none;width:1.3rem;height:1.3rem}.is-ok .check-icon{background:var(--ok);border-color:var(--ok);box-shadow:inset 0 0 0 3px var(--paper)}.is-todo{color:var(--ink-soft)}.contact-list{margin:0 0 1rem;padding:0;list-style:none}.contact-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;display:flex}.result-list{counter-reset:res;margin:0 0 1rem;padding:0;list-style:none}.result-row{counter-increment:res;border-bottom:1px solid var(--line);grid-template-columns:2rem minmax(0,1fr) auto auto;align-items:center;gap:.5rem 1rem;padding:.9rem 0;display:grid}.result-row:before{content:counter(res);font:700 1.4rem var(--font-display);color:var(--ink-soft)}.result-teams{flex-wrap:wrap;align-items:baseline;gap:.3rem .6rem;font-weight:500;display:flex}.result-teams i,.admin-match-teams i{color:var(--ink-soft);font-size:.9rem;font-style:normal}.score-inputs,.score-text{align-items:center;gap:.35rem;display:flex}.score-inputs input{text-align:center;width:3.6rem;font:700 1.3rem var(--font-display);padding:.3rem}.score-text{font:700 1.5rem var(--font-display);font-variant-numeric:tabular-nums}.score-inputs i,.score-text i{color:var(--ink-soft);font-style:normal}.result-row>.row-actions,.result-row>span.small{grid-column:2/-1}.row-actions{flex-wrap:wrap;align-items:start;gap:.5rem;display:flex}.dispute summary{list-style:none}.dispute summary::-webkit-details-marker{display:none}.dispute-form{gap:.5rem;margin-top:.5rem;display:flex}.dispute-form input{min-width:12rem}.result-actions{flex-wrap:wrap;gap:.75rem;display:flex}@media (width<=36rem){.result-row{grid-template-columns:1.5rem minmax(0,1fr)}.result-row>.score-inputs,.result-row>.score-text,.result-row>.status{grid-column:2}}.totals{margin:0;padding:0;list-style:none}.totals li{border-bottom:1px solid var(--line);justify-content:space-between;padding:.35rem 0;display:flex}.totals b{font:700 1.3rem var(--font-display)}.admin-tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.count{background:var(--danger);color:var(--paper);border-radius:999px;padding:0 .45rem;font-size:.8rem}.table-wrap{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-card);margin-bottom:1rem;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%}.admin-table th{text-align:left;color:var(--ink-soft);border-bottom:1px solid var(--line);padding:.7rem .9rem;font-weight:500}.admin-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:.7rem .9rem}.admin-table select{width:auto}.admin-table .ok{color:var(--ok);font-weight:500}.admin-table .ko{color:var(--warn);font-weight:500}.switch input{width:1.3rem;height:1.3rem;accent-color:var(--ok)}.plan-grid{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:1rem;margin-bottom:1rem;display:grid}.plan-group{border:1px solid var(--line);border-top:4px solid var(--court);border-radius:var(--radius);padding:.75rem 1rem}.plan-group ol{margin:0;padding-left:1.2rem}.admin-matches{margin:0;padding:0;list-style:none}.admin-match{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:.3rem 1rem;padding:.8rem 0;display:grid}.admin-match>.small:first-child,.admin-match .dispute-note,.admin-match .form-error{grid-column:1/-1}.dispute-note{color:var(--danger)}.admin-round summary{cursor:pointer;padding:.5rem 0;font-weight:600}@media (width<=44rem){.admin-match{grid-template-columns:1fr}}.admin-list{margin:0;padding:0;list-style:none}.admin-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;display:flex}#toast-region{z-index:20;gap:.5rem;width:min(28rem,100% - 2rem);display:grid;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:var(--paper);border-radius:var(--radius);border-left:5px solid var(--ball);padding:.75rem 1rem;animation:.2s ease-out toast-in}.toast-error{border-left-color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(.5rem)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.skill-choice{border:1px solid var(--line);border-radius:var(--radius-card);margin-bottom:1rem;padding:1rem 1.1rem}.skill-choice legend{font:600 1rem var(--font-body);padding:0 .4rem}.skill-option{border-top:1px solid var(--line);align-items:flex-start;gap:.6rem;padding:.5rem 0}.skill-option:first-of-type{border-top:0}.skill-option span{display:block}.skill-option strong{font-weight:600;display:block}.skill-option small{color:var(--muted);line-height:1.35;display:block}.skill-hint{margin-top:.3rem;display:block}
