:root{--bg: #f4f1ea;--surface: #fffdf8;--ink: #1d1b18;--muted: #6b665d;--line: #e2dccf;--accent: #1f5c4a;--accent-ink: #fff;--accent-soft: #e2efe9;--warn-bg: #fdf3d8;--warn-ink: #7a5a00;--error-bg: #fbe4e1;--error-ink: #94251a;--ok-bg: #e2efe9;--ok-ink: #1f5c4a;--radius: 10px;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #151514;--surface: #1e1e1c;--ink: #ece8df;--muted: #9b968b;--line: #34332f;--accent: #5fb394;--accent-ink: #0e1a15;--accent-soft: #1f3a30;--warn-bg: #3a3017;--warn-ink: #f0d283;--error-bg: #3f1f1b;--error-ink: #f3a196;--ok-bg: #1f3a30;--ok-ink: #8fd6b9;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 var(--font)}h2{font-size:1.05rem;margin:0 0 .75rem}h3{font-size:.95rem;margin:0 0 .4rem}code{font-family:var(--mono);font-size:.9em}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.6rem 1.25rem;background:var(--surface);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:.6rem}.brand-mark{font-size:1.8rem;line-height:1;color:var(--accent)}.brand-name{font-weight:700;letter-spacing:.01em}.brand-sub{font-size:.8rem;color:var(--muted)}.tabs{display:flex;gap:.25rem;overflow-x:auto}.tab{padding:.45rem .8rem;border-radius:999px;color:var(--muted);text-decoration:none;font-weight:500;white-space:nowrap}.tab:hover{color:var(--ink);background:var(--bg)}.tab.active{background:var(--accent);color:var(--accent-ink)}.page{max-width:1100px;margin:0 auto;padding:1.25rem}.stack{display:grid;gap:1rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.15rem}.card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.card-head h2{margin:0}.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.hint{color:var(--muted);font-size:.85rem;margin:.5rem 0 0}.empty{color:var(--muted);margin:0}.banner{padding:.55rem .8rem;border-radius:8px;font-size:.9rem;margin:.75rem 0 0}.app>.banner{margin:0;border-radius:0;text-align:center}.banner.warn{background:var(--warn-bg);color:var(--warn-ink)}.banner.error{background:var(--error-bg);color:var(--error-ink)}.banner.ok{background:var(--ok-bg);color:var(--ok-ink)}input,select,textarea{font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:.45rem .6rem;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}textarea{width:100%;font-family:var(--mono);font-size:.85rem}button{font:inherit;font-weight:600;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);border-radius:7px;padding:.45rem .9rem}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:transparent;color:var(--accent)}button.ghost{background:transparent;border-color:transparent;color:var(--muted);font-weight:500}button.ghost:hover:not(:disabled){color:var(--ink);background:var(--bg)}button.danger{background:var(--error-ink);border-color:var(--error-ink);color:#fff}button.small{padding:.2rem .55rem;font-size:.85rem}.grid-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem 1rem}.grid-form label,label.inline{display:grid;gap:.25rem;font-size:.82rem;color:var(--muted);font-weight:500}label.inline{display:flex;align-items:center;gap:.4rem}.grid-form input,.grid-form select{color:var(--ink)}.tb-list{margin:0 0 .75rem;padding:0;list-style:none;counter-reset:tb;display:grid;gap:.25rem}.tb-list li{counter-increment:tb;display:flex;justify-content:space-between;align-items:center;padding:.3rem .4rem .3rem .6rem;border:1px solid var(--line);border-radius:7px}.tb-list li:before{content:counter(tb);color:var(--muted);font-variant-numeric:tabular-nums;margin-right:.6rem}.tb-list li span:first-of-type{flex:1}.row-actions{display:flex;gap:.15rem;justify-content:flex-end;white-space:nowrap}.hint a{color:var(--accent)}.reg-list{margin:0;padding:0;list-style:none}.reg-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.6rem 0;border-bottom:1px solid var(--line)}.reg-who{display:grid;gap:.1rem;min-width:0;overflow-wrap:anywhere}.danger-zone{margin-top:1.25rem;padding-top:1rem;border-top:1px dashed var(--line)}.add-player{display:grid;grid-template-columns:2fr .8fr .6fr .6fr 1.2fr auto;gap:.5rem}@media(max-width:720px){.add-player{grid-template-columns:1fr 1fr}.add-player input:first-child{grid-column:1 / -1}}.bulk{margin-top:.75rem}.bulk summary{cursor:pointer;color:var(--accent);font-weight:600;font-size:.9rem}.bulk textarea{margin:.5rem 0}.chips{display:flex;flex-wrap:wrap;gap:.35rem}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .65rem;border:1px solid var(--line);border-radius:999px;font-size:.85rem;cursor:pointer;-webkit-user-select:none;user-select:none}.chip input{display:none}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.round-picker{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center}.pill{background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:.25rem .7rem;font-variant-numeric:tabular-nums}.pill.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}table.data th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;padding:.4rem .5rem;border-bottom:1px solid var(--line);white-space:nowrap}table.data td{padding:.35rem .5rem;border-bottom:1px solid var(--line)}@media(hover:hover){table.data tbody tr:hover{background:color-mix(in srgb,var(--accent-soft) 45%,transparent)}}.num{text-align:right}.center{text-align:center}.mono{font-family:var(--mono);font-size:.85rem}.muted{color:var(--muted)}.strong{font-weight:700}tr.withdrawn td{color:var(--muted);text-decoration:line-through}tr.withdrawn td input{text-decoration:line-through}input.cell{border-color:transparent;background:transparent;padding:.2rem .35rem;width:100%}input.cell:hover{border-color:var(--line)}input.cell.num{text-align:right;width:5rem}input.cell.short{width:3.5rem}.result-col{text-align:center;white-space:nowrap}.result-picker{display:inline-flex;gap:.2rem;align-items:center}button.res{background:transparent;color:var(--ink);border:1px solid var(--line);padding:.2rem .5rem;font-family:var(--mono);font-size:.85rem;font-weight:600;min-width:2.8rem}button.res:hover{border-color:var(--accent)}button.res.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}select.res-select{padding:.2rem .3rem;font-size:.8rem;width:3.4rem}select.res-select.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.bye-tag{font-size:.8rem;color:var(--muted);font-style:italic}table.crosstable td.diag{background:var(--line)}table.grid th.center,table.grid td.center{min-width:2rem}.print-only{display:none}.side{display:inline-block;width:.7rem;height:.7rem;border-radius:50%;margin-right:.45rem;vertical-align:-.05rem;border:1.5px solid var(--ink)}.side.w{background:#fff}.side.b{background:#1d1b18}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;background:transparent;border:none;color:var(--ink);border-radius:8px}.icon-btn:hover{background:var(--bg)}table.sticky-cols .sticky-1,table.sticky-cols .sticky-2{position:sticky;background:var(--surface);z-index:1}table.sticky-cols .sticky-1{left:0;min-width:2.6rem;width:2.6rem}table.sticky-cols .sticky-2{left:2.6rem;box-shadow:1px 0 0 var(--line);white-space:nowrap}.segmented{display:inline-flex;padding:.15rem;border:1px solid var(--line);border-radius:999px;background:var(--bg)}.segmented button{background:transparent;border:none;color:var(--muted);border-radius:999px;padding:.25rem .8rem;font-size:.85rem}.segmented button.active{background:var(--surface);color:var(--accent);box-shadow:0 1px 2px #00000014}table.by-player .table-no{font-weight:800;font-size:1.05rem;color:var(--accent)}.nowrap{white-space:nowrap}.arbiter-control{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-left:auto}.live-badge,.save-badge{font-size:.78rem;font-weight:600;padding:.2rem .6rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}.live-badge.off,.save-badge.offline,.save-badge.error{background:var(--warn-bg);color:var(--warn-ink)}.save-badge.saving{background:var(--bg);color:var(--muted)}.pin-form{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.pin-form input{width:9rem}.pin-error{color:var(--error-ink);font-size:.85rem;width:100%}.notice{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.dialog-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:1rem;background:#00000073}.dialog{max-width:32rem;width:100%}.result-text{font-family:var(--mono);font-weight:700}.danger-zone h3:not(:first-child){margin-top:1.1rem}.mobile-bar,.drawer,.drawer-overlay,.mobile-actionbar{display:none}@media(max-width:767px){body{font-size:15px}input,select,textarea{font-size:16px}button{min-height:2.5rem}button.small{min-height:2.25rem}.hide-sm{display:none!important}.app-header{display:none}.mobile-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:.5rem;height:calc(3.5rem + env(safe-area-inset-top));padding:env(safe-area-inset-top) .5rem 0;background:var(--surface);border-bottom:1px solid var(--line)}.mobile-title{display:grid;min-width:0;flex:1;line-height:1.2}.mobile-page{font-weight:700}.mobile-sub{font-size:.78rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.round-badge{flex-shrink:0;padding:.2rem .6rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:.8rem;font-variant-numeric:tabular-nums}.drawer-overlay{display:block;position:fixed;inset:0;z-index:40;background:#00000080;animation:fade-in .2s ease}.drawer{display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:50;width:16rem;max-width:82vw;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-right:1px solid var(--line);transform:translate(-100%);transition:transform .25s ease,visibility 0s linear .25s;visibility:hidden}.drawer.open{transform:translate(0);visibility:visible;transition:transform .25s ease}.drawer-head{display:flex;align-items:center;justify-content:space-between;height:3.5rem;padding:0 .5rem 0 1rem;border-bottom:1px solid var(--line)}.drawer-nav{flex:1;overflow-y:auto;padding:.75rem;display:grid;align-content:start;gap:.25rem}.drawer-link{display:flex;align-items:center;gap:.75rem;padding:.8rem .9rem;border-radius:8px;color:var(--muted);text-decoration:none;font-weight:500}.drawer-link.active{background:var(--accent-soft);color:var(--accent);font-weight:700}.drawer-foot{padding:.9rem 1rem;border-top:1px solid var(--line)}.drawer-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-foot .hint{margin:.15rem 0 0}.drawer-foot .arbiter-control{margin:.75rem 0 0}.app-header .arbiter-control{display:none}.page{padding:.75rem .75rem calc(5.5rem + env(safe-area-inset-bottom))}.stack{gap:.75rem}.card{padding:.9rem}.mobile-actionbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:.6rem .9rem calc(.6rem + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -4px 16px #0000000f}.mobile-actionbar .hint{margin:0}.mobile-actionbar button{min-height:2.9rem;padding:0 1.2rem}.round-picker{flex-wrap:nowrap;overflow-x:auto;width:100%;padding-bottom:.15rem;scrollbar-width:none}.pill{min-height:2.25rem;flex-shrink:0}.round-actions{width:100%}.round-actions button{flex:1}table.pairings thead{display:none}table.pairings,table.pairings tbody{display:block}table.pairings tr{display:grid;grid-template-columns:2.8rem 1fr auto;grid-template-areas:"bd wname wpts" "bd bname bpts" "res res res";align-items:center;padding:.7rem 0;border-bottom:1px solid var(--line)}table.data.pairings td{border:none;padding:.15rem .25rem}table.pairings .bd{grid-area:bd;align-self:start;text-align:left;font-weight:800;font-size:1.15rem;line-height:1.1;color:var(--muted);padding-top:.1rem}table.pairings .bd:before{content:"Table";display:block;font-size:.6rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}table.pairings tr.pending .bd{color:var(--accent)}table.pairings .wname{grid-area:wname;font-weight:600}table.pairings .bname{grid-area:bname;font-weight:600}table.pairings .wpts{grid-area:wpts}table.pairings .bpts{grid-area:bpts}table.pairings .result-col{grid-area:res;text-align:left;padding-top:.55rem}.result-picker{display:grid;grid-template-columns:repeat(3,1fr) 4.2rem 2.75rem;gap:.35rem;width:100%}button.res{min-height:2.75rem;font-size:1rem;min-width:0}select.res-select{height:2.75rem;width:100%;font-size:.9rem}.result-picker .ghost.small{min-height:2.75rem;border:1px solid var(--line)}.bye-tag{display:inline-block;padding-left:.25rem}table.players thead{display:none}table.players,table.players tbody{display:block}table.players tr{display:grid;grid-template-columns:1.8rem 1fr 3.9rem 3.9rem;grid-template-areas:"no name name name" "no rating title fed" "no club actions actions";gap:.35rem;padding:.65rem 0;border-bottom:1px solid var(--line)}table.data.players td{border:none;padding:0}table.players .pr-no{grid-area:no;text-align:left;font-weight:800;color:var(--muted);padding-top:.55rem}table.players .pr-name{grid-area:name}table.players .pr-rating{grid-area:rating}table.players .pr-title{grid-area:title}table.players .pr-fed{grid-area:fed}table.players .pr-club{grid-area:club}table.players .pr-actions{grid-area:actions;justify-content:flex-end;align-items:center}table.players input.cell,table.players input.cell.num,table.players input.cell.short{width:100%;border-color:var(--line);padding:.35rem .5rem;text-align:left}table.players .pr-name input.cell{font-weight:600}table.players td>input{display:block}table.players .pr-actions button{border:1px solid var(--line)}.add-player button[type=submit]{grid-column:1 / -1}.chip{padding:.45rem .8rem;font-size:.9rem}.tb-list button{min-width:2.5rem}table.data th{padding:.4rem .35rem}table.data td{padding:.45rem .35rem}.card-head>.row{width:100%}.card-head>.row button{margin-left:auto}}@keyframes fade-in{0%{opacity:0}}@media print{:root{--bg: #fff;--surface: #fff;--ink: #000;--muted: #444;--line: #bbb;color-scheme:light}body{font-size:11pt}.no-print,.mobile-bar,.drawer,.drawer-overlay,.mobile-actionbar{display:none!important}.page{padding:0!important}.print-only{display:inline}.page{max-width:none;padding:0}.card{border:none;padding:0}.stack{display:block}table.data tbody tr:hover{background:none}table.data td{padding:.2rem .4rem}}
