/* Small runtime foundation. The original prototype styles are intentionally not loaded. */
*{box-sizing:border-box}html,body{margin:0;min-height:100%;scroll-behavior:smooth}body{font-family:Heebo,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{border:0;background:none;color:inherit}a{color:inherit;text-decoration:none}img{max-width:100%}svg{display:inline-block;vertical-align:middle}h1,h2,h3,p{margin:0}button:disabled{cursor:default}bdi,[dir=ltr]{font-variant-numeric:tabular-nums}textarea{resize:vertical}[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;right:16px;background:#d5ed43;color:#101d2b;padding:12px;z-index:100}.skip-link:focus{top:12px}.full{width:100%}.icon{width:20px;height:20px}.button{border:1px solid transparent}.text-button{display:inline-flex;gap:7px;align-items:center;justify-content:center;font-size:12px}.text-action{display:flex;align-items:center;justify-content:center}.back-link>.icon{transform:rotate(180deg)}.page-heading,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.section-heading{margin:26px 0 14px}.section-heading>span{font-size:10px;color:var(--muted)}.overline{display:block}.muted,.field-help{color:var(--muted)}.form-error:empty{display:none}.card{overflow:hidden}.t-status{display:inline-flex;align-items:center;white-space:nowrap}.archive-tabs{display:flex}.archive-grid{display:grid;grid-template-columns:1fr}.active-tournament-link{display:flex;align-items:center;justify-content:space-between}.active-tournament-link h3{font-size:22px;margin-top:12px}.active-tournament-link p{font-size:11px;color:var(--muted);margin-top:8px}.other-personal-tournaments{margin-top:15px;font-size:11px}.other-personal-tournaments>p{color:var(--muted);margin-bottom:6px}.other-personal-tournaments a{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.other-personal-tournaments strong,.other-personal-tournaments small{display:block}.other-personal-tournaments small{margin-top:4px;color:var(--muted)}.admin-home-entry{display:flex;align-items:center;gap:13px;border:1px solid var(--line);padding:14px;border-radius:13px;background:#eef2e2}.admin-home-entry strong,.admin-home-entry small{display:block}.admin-home-entry small{font-size:10px;color:var(--muted);margin-top:4px}.admin-home-entry>.icon:last-child{margin-right:auto}
.avatar{flex:none}.result-attribution{display:block;margin-top:10px}.result-attribution time{display:inline-block}.correction-attribution{display:block}.mini-sets,.score-type{display:block;text-align:left}.score-type{font-size:9px;color:var(--muted);margin-top:5px}.player-row .winner-icon{color:#829957}.player-row .winner-icon .icon{width:13px;height:13px}.player-row.winner{font-weight:700}.player-row.own-player{color:var(--navy)}.round-tabs{display:flex}.draw-bottom-note{line-height:1.8}.tournament-meta>span{display:flex;align-items:center;gap:7px}.metadata-divider{display:inline-block;margin-inline:5px}.registration-strip small,.mini-personal small{display:block}.registrants-section{margin-top:24px}.count-tag{font-size:16px}.registered-grid{display:grid;background:white;border:1px solid var(--line)}.registered-player{display:flex;gap:9px;align-items:center;border-bottom:1px solid var(--line)}.registered-player>span:nth-child(2){flex:1}.registered-player small{display:block;font-size:9px}.registered-check{color:#718851}.seed-tag{font-size:9px;border:1px solid #dce3cf;padding:4px 6px;border-radius:5px;color:#718159}.remove-entry{width:44px;height:44px}.seeding-summary{margin:15px 0;display:flex;align-items:center;justify-content:space-between;gap:10px}.seeding-summary>div{display:flex;gap:9px;align-items:center}.seeding-summary strong,.seeding-summary small{display:block}.seeding-summary small{font-size:9px;color:var(--muted);margin-top:4px}.draw-publish-panel p{margin-bottom:15px}.draw-publish-panel small{display:block;color:var(--muted);margin-top:10px}.published-draw-note{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.recent-results-grid{display:grid;gap:12px}.tournament-results{margin-top:30px}
.report-players{display:flex;align-items:center;justify-content:space-around}.report-players>div{display:flex;flex:1;flex-direction:column;align-items:center;gap:7px;text-align:center}.report-steps{list-style:none}.report-steps li>span{display:grid;place-items:center;border-radius:50%;flex:none}.score-grid{display:grid;align-items:center}.score-grid input{text-align:center;appearance:textfield;-moz-appearance:textfield}.score-grid input::-webkit-inner-spin-button{appearance:none}.score-grid small{display:block}.confirmed-score{display:block}.confirm-score-labels,.confirm-score-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-template-columns:minmax(110px,2fr);gap:9px;align-items:center;text-align:center}.confirm-score-row strong{text-align:right;display:flex;gap:5px;align-items:center}.confirm-score-labels>span:first-child{text-align:right}.confirm-score-table{width:100%}.result-confirm{text-align:center}.score-help{display:flex;gap:8px}.admin-report-note{padding:14px;background:#edf1e4;border:1px solid var(--line);margin-bottom:20px}.admin-report-note small{display:block;margin-top:6px}.report-heading{margin-bottom:26px}
.date-fields{display:grid}.field textarea{min-height:96px}.form-section-heading{display:flex;align-items:center}.knockout-choice{display:flex;align-items:center;gap:10px;border:1px solid var(--line);margin-bottom:20px}.knockout-choice>div{flex:1}.knockout-choice strong,.knockout-choice span{display:block}.knockout-choice strong{font-size:12px}.knockout-choice span{font-size:10px;color:var(--muted);margin-top:4px}.admin-summary{display:flex}.admin-summary>div{flex:1;display:flex;align-items:center;justify-content:center}.admin-summary>div+div{border-inline-start:1px solid var(--line)}.admin-tournament-list{display:grid;grid-template-columns:1fr;gap:15px}.admin-tournament-main{display:flex;justify-content:space-between;align-items:center;gap:15px}.admin-participant-count{text-align:center}.admin-participant-count strong,.admin-participant-count span{display:block}.admin-participant-count strong{font-size:27px}.admin-participant-count span{font-size:9px;color:var(--muted)}.admin-row-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:17px}.admin-row-actions>span{font-size:10px;color:var(--muted)}.role-badge{font-size:10px;border:1px solid var(--line);background:#eaf0dc;border-radius:6px;padding:5px 8px}.admin-tournament-controls{margin-bottom:24px}.admin-tournament-controls>div:first-child{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.admin-tournament-controls p{font-size:11px;line-height:1.8;margin-top:12px}.admin-control-actions{display:flex;gap:10px;margin-top:18px}.admin-control-actions .button{flex:1;font-size:11px}.admin-delete-row{margin-top:15px}.danger-text{color:var(--red)!important}.admin-safe-note{display:flex;gap:10px;background:#edf1e4;margin:20px 0;line-height:1.8}.deleted-tournaments-link{display:flex;gap:10px;align-items:center;min-height:48px;font-size:12px;border-block:1px solid var(--line);padding-block:12px}.deleted-tournaments-link span{margin-right:auto}.season-admin-actions{display:flex;gap:10px;flex-wrap:wrap}.season-picker{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.season-picker select{min-height:44px;border:1px solid var(--line);border-radius:8px;padding:7px 11px}.season-champion{color:var(--green);margin:15px 0 25px}.managed-matches{display:grid;gap:14px}.managed-match .card-topline{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:15px}.managed-player-names{display:flex;flex-direction:column;gap:5px}.managed-player-names small{font-size:9px;color:var(--muted)}.managed-player-names .icon{width:14px;height:14px;margin-right:5px}.managed-score{font-size:13px;color:var(--muted);margin-block:15px}.managed-match .button{margin-top:18px}.managed-round{margin-bottom:30px}.result-history{font-size:11px;margin:15px 0}.result-history summary{min-height:44px;cursor:pointer}.result-history li{padding-bottom:14px}.result-history span{display:block;font-size:10px;color:var(--muted)}
.empty-state{padding:35px 20px;text-align:center;margin:20px 0}.empty-state h2,.empty-state h3{font-size:25px}.empty-state p{font-size:13px;color:var(--muted);line-height:1.8;margin:15px 0 25px}.empty-state .button{margin:5px}.season-history .archive-card,.archive-card{padding:20px}.archive-card h2{font-size:25px}.footer{display:flex;align-items:center;justify-content:space-between}.footer-brand{display:flex;align-items:center;gap:7px}.toast{position:fixed;z-index:100;bottom:24px;left:50%;transform:translate(-50%,15px);background:var(--navy);color:white;border:1px solid #718454;border-radius:11px;padding:14px 20px;display:flex;align-items:center;gap:10px;font-size:12px;opacity:0;pointer-events:none;max-width:calc(100% - 30px);width:max-content;transition:.2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.toast .icon{color:var(--lime)}
dialog{border:1px solid var(--line);padding:0;color:var(--navy);max-height:90dvh;overflow:auto;width:calc(100% - 40px)}dialog::backdrop{background:#101d2b99}.modal-open{overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.modal-header .icon-button{width:44px;height:44px;border-radius:50%;flex:none}.modal-body .button{margin-top:12px}.modal-intro{font-size:13px;line-height:1.85;margin-bottom:20px;color:var(--muted)}.modal-tournament{display:flex;align-items:center;gap:12px;margin-bottom:20px}.modal-tournament strong,.modal-tournament span{display:block}.modal-tournament span{font-size:11px;color:var(--muted);margin-top:4px}.rules-points{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:25px}.rules-points>div{background:#edf1e3;text-align:center;border-radius:10px;padding:15px 4px}.rules-points strong{display:block;font-size:34px}.rules-points span{font-size:9px;color:var(--muted)}.copy-block h3{font-size:17px;margin:22px 0 8px}.copy-block p{font-size:12px;line-height:1.8;color:var(--muted)}.match-detail-names{display:flex;align-items:center;justify-content:space-around;margin:25px 0;text-align:center;gap:10px}.match-detail-names h3{font-size:17px;margin-top:10px}.match-detail-names>span{font-size:11px;color:var(--muted)}.confirmation-sets{display:flex;justify-content:center;gap:12px;margin:20px 0;font-size:17px}.fine-print{font-size:10px;color:var(--muted);line-height:1.8}.winner-detail{display:block;font-size:11px;margin-top:5px;color:var(--green)}.format-note{background:#edf1e3;border-radius:10px;padding:14px;font-size:12px;line-height:1.8;margin-bottom:20px}
.bracket{display:flex;gap:20px;direction:rtl}.bracket-column{display:flex;flex-direction:column;min-width:180px;flex:1}.bracket-column>h3{font-size:14px;min-height:50px}.bracket-column>h3>span{display:block;font-size:9px;color:var(--muted);font-weight:400;margin-top:5px}.bracket-matches{display:flex;flex:1;flex-direction:column;justify-content:space-around;gap:20px}.bracket-node{position:relative;display:flex;align-items:center;flex:1}.bracket-node>.match-card{position:relative;z-index:1}.bracket-column:not(:last-child) .bracket-node:after{content:'';position:absolute;left:-10px;top:25%;bottom:25%;width:10px;border-left:1px solid #c7d2bd;border-block:1px solid #c7d2bd}.bracket-column:not(:first-child) .bracket-node:before{content:'';position:absolute;right:-10px;width:10px;height:1px;background:#c7d2bd;top:50%}.bracket-column:first-child .bracket-node:after{top:50%;bottom:-10px;border-top:1px solid #c7d2bd;border-bottom:0}.bracket-column:first-child .bracket-node:nth-child(even):after{top:-10px;bottom:50%;border-top:0;border-bottom:1px solid #c7d2bd}
@media(max-width:760px){.desktop-only{display:none!important}.bracket{display:none}.season-admin-actions{display:grid;grid-template-columns:1fr}.season-admin-actions .button{width:100%}dialog{margin:0;inset:auto 0 0;width:100%;max-width:100%}.admin-row-actions{flex-wrap:wrap}.seeding-summary{align-items:flex-start;flex-direction:column}}
@media(min-width:761px){.recent-results-grid,.managed-matches{grid-template-columns:repeat(3,minmax(0,1fr))}.registered-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
