@font-face{font-family:Fraunces;src:url(/fonts/Fraunces-700.ttf)format("truetype");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:"Source Sans 3";src:url(/fonts/SourceSans3-400.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}:root{--ivory:#f8f3e8;--paper:#fdfbf6;--green:#245748;--green-soft:#2c5b4f;--gold:#8a6031;--coral:#d7684f;--ink:#182d29;--muted:#69716a;--line:#ddcba8;color:var(--ink);background:var(--ivory);font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--ivory);min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--coral);outline-offset:3px}input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fffdf8;border-radius:7px;padding:.58rem .65rem;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.93rem}input:hover{border-color:var(--gold)}label{color:var(--green);letter-spacing:.02em;gap:.35rem;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.77rem;font-weight:700;display:grid}h1,h2,p{margin-top:0}h1,h2{font-family:Fraunces,Georgia,serif}.app-brand-link{width:200px;display:block}.app-brand-link img{width:100%;height:auto;display:block}.app-footer{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.app-footer a{color:var(--green);text-underline-offset:3px}h1{letter-spacing:-.04em;font-size:clamp(2.2rem,5vw,4.4rem);line-height:.98}h2{margin-bottom:.3rem;font-size:1.6rem}.app-shell{width:min(1180px,100% - 2rem);margin:0 auto;padding:1.2rem 0 2.5rem}.masthead{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1.5rem;padding:.4rem 0 1.5rem;display:flex}.brand{color:var(--green);letter-spacing:.03em;margin:0;font-size:1.25rem;font-weight:700}.brand span{color:var(--coral)}.masthead__sub,.quiet{color:var(--muted);font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.84rem;line-height:1.5}.masthead__sub{margin:.28rem 0 0}.save-box{color:var(--muted);text-align:right;justify-content:flex-end;align-items:center;gap:.5rem;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.76rem;display:flex}.save-dot{background:var(--gold);border-radius:50%;flex:none;width:.55rem;height:.55rem}.save-dot--saved,.save-dot--recovered{background:#4f8a61}.save-dot--error,.save-dot--protected{background:var(--coral)}.card{border:1px solid var(--line);background:#fffaf0d6;border-radius:14px;box-shadow:0 10px 30px #2c2d1d0d}.start-layout{grid-template-columns:.85fr 1.15fr;align-items:start;gap:clamp(2rem,6vw,6rem);padding:clamp(3rem,9vw,7rem) 0 3rem;display:grid}.intro{padding:1rem 0}.intro>p:not(.eyebrow){max-width:29rem;color:var(--muted);font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:1.05rem;line-height:1.65}.intro__motif{color:var(--coral);letter-spacing:.35rem;margin-top:2.5rem;font-size:1.5rem}.eyebrow{color:var(--gold);letter-spacing:.15em;text-transform:uppercase;margin-bottom:.5rem;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.71rem;font-weight:800}.setup{padding:clamp(1.1rem,3vw,2rem)}.section-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.section-heading h2{color:var(--green)}.text-button{color:var(--green-soft);background:0 0;border:0;border-bottom:1px solid;padding:.15rem 0;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.82rem;font-weight:700}.text-button:hover{color:var(--coral)}.setup-grid,.player-fields{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}.setup-grid{margin:1.2rem 0}.pair-list{gap:.7rem;max-height:min(52dvh,34rem);padding-right:.35rem;display:grid;overflow-y:auto}.pair-editor{border:1px solid var(--line);border-radius:9px;min-width:0;margin:0;padding:.85rem}.pair-editor legend{color:var(--gold);letter-spacing:.09em;text-transform:uppercase;padding:0 .35rem;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.7rem;font-weight:800}.pair-editor__head{grid-template-columns:1fr auto;align-items:center;gap:.55rem;margin-bottom:.65rem;display:grid}.pair-number{color:var(--muted);margin:0;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.74rem}.icon-button{border:1px solid var(--line);background:var(--paper);width:2.15rem;height:2.15rem;color:var(--coral);border-radius:7px;font-size:1.4rem;line-height:1}.setup-actions{justify-content:space-between;gap:.7rem;margin-top:1.2rem;display:flex}.button{border:1px solid var(--green);background:var(--green);color:#fffaf0;border-radius:7px;padding:.68rem .9rem;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.82rem;font-weight:800;box-shadow:0 3px #102a24}.button:hover:not(:disabled){background:var(--green-soft);transform:translateY(-1px)}.button--quiet{border-color:var(--line);color:var(--green);box-shadow:none;background:0 0}.button--small{padding:.48rem .65rem;font-size:.72rem}.notice{border-left:3px solid var(--gold);color:var(--green);background:#fff6dd;border-radius:0 7px 7px 0;margin:1rem 0 0;padding:.7rem .9rem;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.86rem}.setup-summary{height:fit-content;padding:1.25rem}.setup-summary dl{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;margin:1.2rem 0;display:grid}.setup-summary dl div{padding:.6rem 0}.setup-summary dt{color:var(--muted);text-transform:uppercase;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.69rem}.setup-summary dd{color:var(--green);margin:.2rem 0 0;font-size:1.35rem;font-weight:700}.dashboard{grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:1.4rem;padding-top:1rem;display:grid}.secondary-column{align-content:start;gap:1.4rem;display:grid}.round-nav{gap:.35rem;margin-bottom:.75rem;padding-bottom:.2rem;display:flex;overflow-x:auto}.round-tab{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:99px;flex:none;padding:.42rem .72rem;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.74rem;font-weight:700}.round-tab--active{border-color:var(--green);background:var(--green);color:#fff}.round-heading{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:.7rem;display:flex}.round-heading__actions{justify-items:end;gap:.55rem;display:grid}.round-heading h1{color:var(--green);margin:0;font-size:2.1rem}.manual-adjustment{max-width:18rem;color:var(--green-soft);text-align:right;margin:0;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.72rem;font-weight:700}[data-swap-status][hidden],[data-swap-reason][hidden]{display:none}.swap-status{color:var(--green);background:#fff6dd;border:1px solid #e2c67d;border-radius:7px;justify-content:space-between;align-items:center;gap:.75rem;margin:0 0 .75rem;padding:.55rem .7rem;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.75rem;display:flex}.pairing-dialog{border:1px solid var(--line);background:var(--paper);width:min(1100px,100vw - 1.5rem);max-width:none;height:min(860px,100dvh - 1.5rem);color:var(--ink);border-radius:16px;margin:auto;padding:clamp(1rem,3vw,1.5rem);overflow:hidden;box-shadow:0 24px 70px #183d3547}.pairing-dialog[open]{display:block}.pairing-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#183d35ad}.pairing-viewer__header{justify-content:space-between;align-items:start;gap:1rem;display:flex}.pairing-viewer__header h2{color:var(--green);margin:0}.pairing-viewer__header .icon-button{flex:none}.pairing-viewer>.quiet{margin:0}.pairing-viewer{border:1px solid var(--line);background:var(--ivory);border-radius:11px;grid-template-rows:auto auto minmax(0,1fr);gap:.65rem;height:100%;min-height:0;padding:.7rem;display:grid}.pairing-viewer__content{grid-template-rows:auto minmax(0,1fr);gap:.45rem;min-height:0;display:grid}.pairing-viewer__actions--header{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.pairing-viewer__content>.field-message{text-align:right;margin:0}.pairing-poster-scroll{overscroll-behavior:contain;background:#e8dfcf;border-radius:7px;min-height:0;overflow:auto}.pairing-poster-scroll img{object-fit:initial;max-width:none;max-height:none;display:block}.pairing-viewer--fullscreen{background:var(--ivory);border:0;border-radius:0;grid-template-rows:auto auto minmax(0,1fr);width:100vw;height:100dvh;padding:clamp(.75rem,2vw,1.5rem)}.pairing-viewer:fullscreen{background:var(--ivory);border:0;border-radius:0;grid-template-rows:auto auto minmax(0,1fr);width:100vw;height:100dvh;padding:clamp(.75rem,2vw,1.5rem)}.pairing-viewer--fullscreen .pairing-poster-scroll{height:auto;max-height:none}.pairing-viewer:fullscreen .pairing-poster-scroll{height:auto;max-height:none}.repeat-alert{border:1px solid #e2c67d;border-left:3px solid var(--gold);color:var(--green);background:#fff6dd;border-radius:7px;margin:0 0 .75rem;padding:.65rem .8rem;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.76rem;line-height:1.4}.repeat-alert[hidden]{display:none}.repeat-match-details{grid-column:1/-1}.repeat-match-details:empty{display:none}.repeat-marker,.repeat-detail,.repeat-proposal p{margin:0;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.71rem;line-height:1.35}.repeat-marker{color:#8a6528}.repeat-detail{color:var(--muted);margin-top:.28rem}.repeat-proposal{background:#fffaf0;border:1px solid #e2c67d;border-radius:7px;gap:.32rem;margin-top:.38rem;padding:.55rem .65rem;display:grid}.repeat-proposal .button{width:fit-content;margin-top:.08rem}.repeat-summary-list{overscroll-behavior:contain;max-height:7rem;margin:.4rem 0 0;padding-left:1.1rem;overflow:auto}.matches{gap:.5rem;display:grid}.match{border:1px solid var(--line);background:var(--paper);border-left:4px solid #d5c3a0;border-radius:10px;grid-template-columns:3rem minmax(0,1fr) 2.25rem;align-items:center;gap:.4rem .85rem;padding:.55rem .75rem;display:grid}.table-label{color:var(--gold);letter-spacing:.08em;text-align:center;text-transform:uppercase;margin:0;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.62rem;font-weight:800;line-height:1.5}.table-number{color:var(--green);letter-spacing:0;font-size:1.3rem;line-height:1.2;display:block}.match-pairings{gap:.3rem;min-width:0;display:grid}.match-row{grid-template-columns:minmax(0,1fr) 3.25rem;align-items:center;gap:.65rem;min-width:0;display:grid}.match-row+.match-row{border-top:1px solid var(--line);padding-top:.3rem}.match--confirmed{border-left-color:#588c65}.team{grid-template-columns:6rem minmax(0,1fr) 1.8rem;align-items:center;gap:.65rem;min-width:0;display:grid;position:relative;overflow:visible}.team__history-trigger,.team__players{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.team__history-trigger{min-width:0;color:var(--green);text-align:left;background:0 0;border:0;padding:0;font-size:.98rem;font-weight:700}.team__players{color:var(--muted);margin:0;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.7rem;line-height:1.4}.team__actions{align-items:center;display:flex}.swap-button{border:1px solid var(--line);background:var(--ivory);width:1.8rem;height:1.8rem;color:var(--green-soft);border-radius:5px;padding:0;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.9rem;font-weight:800;line-height:1}.swap-button:hover:not(:disabled),.swap-button--selected{border-color:var(--gold);color:var(--green);background:#fff6dd}.swap-button--selected{box-shadow:inset 0 0 0 1px var(--gold)}.pair-history{z-index:4;border:1px solid var(--gold);width:max-content;max-width:min(18rem,100vw - 2rem);color:var(--ink);text-align:left;visibility:hidden;opacity:0;background:#fffdf8;border-radius:7px;padding:.55rem .65rem;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.7rem;line-height:1.4;transition:opacity .12s,transform .12s,visibility .12s;position:absolute;top:calc(100% + .45rem);left:0;transform:translateY(-.2rem);box-shadow:0 8px 20px #1f2d292e}.team:hover .pair-history,.team:focus-within .pair-history,.team--history-open .pair-history{visibility:visible;opacity:1;transform:translateY(0)}.team.team--history-dismissed .pair-history{visibility:hidden;opacity:0;transform:translateY(-.2rem)}.pair-history p{margin:0}.pair-history__title{color:var(--green);font-weight:800;margin-bottom:.25rem!important}.pair-history ul{gap:.15rem;margin:0;padding:0;list-style:none;display:grid}.pair-history__result--win{color:#277342}.pair-history__result--loss{color:#a6463a}.score-field{min-width:0}.score-field input{text-align:center;min-width:0;height:2.25rem;padding:.35rem .2rem;font-weight:800}.score-field input[aria-invalid=true]{border-color:#a6463a}.score-confirm{border:1px solid var(--green);background:var(--green);width:2.25rem;height:2.25rem;color:var(--paper);border-radius:7px;padding:0;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:1rem;font-weight:800}.score-confirm:hover:not(:disabled){background:var(--green-soft)}.score-confirm:disabled{border-color:var(--line);color:var(--muted);background:0 0}.score-confirm--confirmed:disabled{color:#277342;opacity:1;background:#f4faed;border-color:#a8c5a2}.match-issue{grid-column:1/-1}.field-message{color:var(--muted);margin:0;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.71rem;line-height:1.35}.field-message--error{color:#a6463a}.round-action{justify-content:space-between;align-items:center;gap:1.2rem;margin-top:1rem;padding:1rem 1.1rem;display:flex}.round-action--ready{background:#f4faed;border-color:#a8c5a2}.round-action p{color:var(--muted);margin:.25rem 0 0;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.76rem;line-height:1.4}.standings{height:fit-content;padding:1.15rem}.suit-mark{color:var(--coral);font-size:1.5rem}table{border-collapse:collapse;width:100%;margin:.7rem 0 .9rem;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.78rem}th,td{border-bottom:1px solid var(--line);text-align:right;padding:.6rem .25rem}thead th{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:.65rem}th:nth-child(2),tbody th{text-align:left}tbody th{color:var(--green)}.standing-players{color:var(--muted);white-space:nowrap;margin-top:.16rem;font-size:.65rem;font-weight:400;display:block}footer{color:var(--muted);text-align:center;margin-top:3rem;font-family:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;font-size:.72rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width<=860px){.start-layout,.dashboard{grid-template-columns:1fr}.start-layout{gap:1.3rem;padding-top:2.4rem}.dashboard,.secondary-column{gap:1rem}}@media (width<=560px){body{min-width:0}.app-shell{width:min(100% - 1rem,1180px)}.masthead{flex-direction:column;align-items:flex-start;gap:.7rem}.save-box{text-align:left;flex-wrap:wrap;justify-content:flex-start}.setup-grid,.player-fields{grid-template-columns:1fr}.setup-actions,.round-action{flex-direction:column;align-items:stretch}.round-heading{gap:.6rem}.round-heading h1{font-size:1.8rem}.round-heading .eyebrow{font-size:.65rem}.round-heading__actions{max-width:55%}.round-heading__actions .button{width:auto}.swap-status{flex-direction:column;align-items:flex-start}.swap-status .text-button,.repeat-proposal .button{width:fit-content}.pairing-dialog{width:calc(100vw - .75rem);max-height:calc(100dvh - .75rem);padding:.8rem}.pairing-viewer__header h2{font-size:1.3rem}.pairing-viewer__header{flex-direction:column;align-items:flex-start}.pairing-viewer__actions--header{justify-content:space-between;width:100%}.pairing-viewer__content>.field-message{text-align:left}.match{grid-template-columns:minmax(0,1fr) 2.25rem;gap:.35rem .65rem;padding:.5rem .6rem}.table-label{text-align:left;grid-area:1/1}.table-number{font-size:inherit;line-height:inherit;color:inherit;display:inline}.match-pairings{grid-area:2/1/auto/-1}.match>.score-confirm{grid-area:1/2;justify-self:end;width:1.8rem;height:1.8rem}.team{grid-template-columns:minmax(0,1fr) 1.8rem;gap:.12rem .5rem}.team__history-trigger{grid-area:1/1}.team__players{grid-area:2/1}.team__actions{grid-area:1/2/3}.button{width:100%}.text-button{width:fit-content}.setup-summary{display:block}.setup-summary dl{margin:1rem 0}}
