:root{--bg:#f2f4f8;--surface:#fff;--raise:#f7f8fb;--ink:#15203a;--muted:#5b6880;--line:#dce2ec;--accent:#4b3fb0;--accent-ink:#fff;--accent-soft:#ebe8fb;--men:#2f74d0;--women:#d6457c;--boys:#c99419;--girls:#1f9a8a;--ok:#1d7f52;--ok-soft:#e1f3ea;--warn:#a15c00;--warn-soft:#fff1d6;--late:#c2410c;--late-soft:#fde9df;--display:"Barlow Condensed", "Arial Narrow", sans-serif;--body:"Source Sans 3", system-ui, -apple-system, sans-serif;--mono:"JetBrains Mono", ui-monospace, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0c1220;--surface:#141c30;--raise:#19223a;--ink:#e7ecf5;--muted:#9ba7bc;--line:#27324c;--accent:#9d94ff;--accent-ink:#120f33;--accent-soft:#262457;--men:#6a9dff;--women:#ff79a8;--boys:#e8b93a;--girls:#3fd0bc;--ok:#46c68f;--ok-soft:#133426;--warn:#f2b14a;--warn-soft:#34260b;--late:#ff8a52;--late-soft:#3a1d12;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font:15px/1.45 var(--body)}h1,h2,h3{font-family:var(--display);text-wrap:balance;letter-spacing:.01em;margin:0;font-weight:700}h1{text-transform:uppercase;font-size:clamp(30px,4vw,44px);line-height:1}h2{text-transform:uppercase;font-size:22px}h3{text-transform:uppercase;color:var(--muted);margin-top:14px;font-size:16px}button,input,select{font:inherit;color:inherit}input,select{background:var(--raise);border:1px solid var(--line);border-radius:8px;min-width:0;padding:6px 8px}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.eyebrow{font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-size:11px}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.error{color:var(--late)}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.tight{gap:4px}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;padding:7px 12px;font-weight:600;text-decoration:none;display:inline-block}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.ghost{color:var(--muted);background:0 0}.btn.small{padding:4px 9px;font-size:13px}.btn:disabled{opacity:.5;cursor:default}.icon{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:6px;width:28px;height:28px}.icon:disabled{opacity:.35}.chip{font-family:var(--mono);background:var(--raise);color:var(--muted);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.late{background:var(--late-soft);color:var(--late)}.chips{flex-wrap:wrap;gap:6px;display:flex}.field{gap:4px;display:grid}.field>span{color:var(--muted);font-size:13px}.check{align-items:center;gap:6px;font-size:14px;display:inline-flex}.inline{align-items:center;gap:6px;display:inline-flex}.vs{font-family:var(--mono);color:var(--muted);text-transform:uppercase;font-size:11px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th{text-align:left;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--ink);white-space:nowrap;padding:8px;font-size:11px}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:6px 8px}.av{object-fit:cover;background:var(--raise);border-radius:50%;flex:none}.av.ph{font-family:var(--display);color:var(--muted);border:1px solid var(--line);justify-content:center;align-items:center;font-weight:700;display:inline-flex}.pool{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#fff;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.pool-men{background:var(--men)}.pool-women{background:var(--women)}.pool-boys{background:var(--boys)}.pool-girls{background:var(--girls)}@media (prefers-color-scheme:dark){.pool{color:#0c1220}}.pool-edge-men{--edge:var(--men)}.pool-edge-women{--edge:var(--women)}.pool-edge-boys{--edge:var(--boys)}.pool-edge-girls{--edge:var(--girls)}.seg{border:1px solid var(--line);border-radius:10px;display:inline-flex;overflow:hidden}.seg button{background:var(--surface);cursor:pointer;border:0;padding:7px 12px;font-weight:600}.seg button.on{background:var(--accent-soft);color:var(--accent)}.gate{place-items:center;min-height:100vh;padding:16px;display:grid}.gate-card{gap:12px;width:min(420px,100%);display:grid}.loading{text-align:center;color:var(--muted);padding:40px 16px}.shell{max-width:1280px;margin:0 auto;padding-block:12px 48px;padding-inline:16px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-block:8px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand img{border-radius:10px;width:44px;height:44px}.brand strong{font-family:var(--display);text-transform:uppercase;font-size:24px}.savebar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.status{font-size:14px;font-weight:600;display:grid}.status small{color:var(--muted);font-size:12px;font-weight:400}.status.dirty{color:var(--warn)}.name{width:140px}.menu{position:relative}.menu summary{list-style:none}.menu summary::-webkit-details-marker{display:none}.menu-list{z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:10px;min-width:250px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #0000002e}.menu-list button,.menu-list a{text-align:left;cursor:pointer;color:var(--ink);background:0 0;border:0;border-radius:6px;padding:8px 10px;font-size:14px;text-decoration:none}.menu-list button:hover,.menu-list a:hover{background:var(--raise)}.notice{border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-block:6px;padding:10px 14px;display:flex}.notice span{flex:280px}.notice.ok{background:var(--ok-soft)}.notice.warn{background:var(--warn-soft)}.notice.error{background:var(--late-soft)}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-block:8px 16px;display:flex;overflow-x:auto}.tabs button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;padding:10px 14px;font-weight:600}.tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.content{gap:16px;display:grid}.board{gap:14px;display:grid}.board-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.confirm{flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:inline-flex}.lane{background:var(--surface);border:1px solid var(--line);border-radius:14px;gap:10px;padding:14px;display:grid}.lane.tray{border-style:dashed}.lane-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 16px;display:flex}.cards{gap:6px;margin:0;padding:0;list-style:none;display:grid}.match{border-left:5px solid var(--edge);cursor:grab;grid-template-columns:76px minmax(0,1fr) auto;gap:12px;padding:10px 12px;display:grid}.match.dim{opacity:.38}.match.dragging{opacity:.4}.match.over{box-shadow:0 -3px 0 var(--accent)}.m-time{align-content:start;font-size:13px;display:grid}.m-time b{font-size:15px}.m-time span{color:var(--muted)}.m-body{gap:6px;min-width:0;display:grid}.m-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sides{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:10px;display:grid}.side{min-width:0}.side-team{border-left:3px solid var(--team);padding-left:6px;font-size:14px;font-weight:700}.side-players{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;font-size:14px;display:flex}.warns{gap:2px;margin:0;padding:0;font-size:12.5px;list-style:none;display:grid}.warns li{background:var(--warn-soft);color:var(--warn);border-radius:6px;padding:2px 8px}.warns li.w-availability,.warns li.w-clash{background:var(--late-soft);color:var(--late)}.m-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:4px;max-width:240px;display:flex}.m-actions select{max-width:150px;padding:4px 6px;font-size:13px}.dropzone{border:2px dashed var(--line);text-align:center;color:var(--muted);border-radius:10px;padding:10px;font-size:13px}.dropzone.over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.players-editor{background:var(--raise);border-radius:10px;gap:8px;padding:10px;display:grid}.pe-side{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pe-side strong{min-width:130px}.finals-picker{background:var(--raise);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px;display:flex}.fp{align-items:center;gap:6px;display:inline-flex}@media (width<=760px){.match{grid-template-columns:60px minmax(0,1fr)}.m-actions{grid-column:1/-1;justify-content:flex-start;max-width:none}.sides{grid-template-columns:minmax(0,1fr)}.sides .vs{display:none}}.team-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,520px),1fr));gap:14px;display:grid}.team-card{border-top:5px solid var(--team);align-content:start;gap:8px;display:grid}.roster,.pairs{gap:4px;margin:0;padding:0;list-style:none;display:grid}.roster li{grid-template-columns:28px minmax(0,1fr) 120px auto;align-items:center;gap:8px;display:grid}.roster .lot{color:var(--muted);font-size:13px}.add-player{flex-wrap:wrap;gap:6px;display:flex}.add-player input{flex:160px}.pairs li{grid-template-columns:160px minmax(0,1fr);align-items:center;gap:8px;display:grid}.slot-name{color:var(--muted);font-size:13px}.slot-picks{flex-wrap:wrap;gap:6px;display:flex}.slot-picks select{flex:160px}@media (width<=600px){.roster li{grid-template-columns:28px minmax(0,1fr)}.pairs li{grid-template-columns:1fr}}.avail{gap:10px;display:grid}.avail-table td{white-space:nowrap}.avail-table .who{align-items:center;gap:8px;min-width:220px;display:flex}.avail-table .who small{color:var(--muted);font-size:12px;display:block}.avail-table td.a-no{background:var(--late-soft)}.avail-table td.a-from,.avail-table td.a-until{background:var(--warn-soft)}.avail-table td input[type=time]{margin-left:6px}.draw{gap:12px;display:grid}.draw-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:14px;display:grid}.draw-grid header{justify-content:space-between}.rounds{gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.rounds li{gap:2px;display:grid}.dot{-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.dot.big{vertical-align:2px;width:18px;height:18px;margin-right:10px}.tie i,.team-name i{border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.settings{gap:14px;display:grid}.settings .card{gap:10px;display:grid}.pool-checks{flex-wrap:wrap;gap:4px 12px;display:flex}.sessions input{width:100%}.grid-4{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.versions{margin:0;padding:0;list-style:none;display:grid}.versions li{border-bottom:1px solid var(--line);grid-template-columns:110px 1fr 180px auto;align-items:center;gap:10px;padding:8px 0;display:grid}.public{gap:14px;max-width:900px;margin:0 auto;padding-block:20px 48px;padding-inline:16px;display:grid}.pub-head,.print-head{align-items:center;gap:16px;display:flex}.pub-head img,.print-head img{border-radius:16px;width:72px;height:72px}.filters{top:env(safe-area-inset-top,0px);background:var(--bg);z-index:2;flex-wrap:wrap;gap:8px;padding-block:8px;display:flex;position:sticky}.filters input{flex:220px;font-size:16px}.running{gap:18px;display:grid}.ro-session{gap:6px;display:grid}.ro-rows{gap:4px;margin:6px 0 0;padding:0;list-style:none;display:grid}.ro{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--edge);border-radius:10px;grid-template-columns:74px minmax(0,1fr);gap:4px 10px;padding:8px 10px;display:grid}.ro-time{font-weight:700}.ro-what{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ro-sides{grid-column:2;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;display:grid}.ro-side{min-width:0;font-size:14px;display:grid}.ro-side .hl{background:var(--accent-soft);color:var(--ink);border-radius:4px;padding-inline:4px;font-weight:700}@media (width<=560px){.ro-sides{grid-template-columns:minmax(0,1fr)}.ro-sides .vs{display:none}}.print{gap:16px;max-width:900px;margin:0 auto;padding:16px;display:grid}.print-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.team-page{gap:8px;display:grid}@media print{:root{--bg:#fff;--surface:#fff;--raise:#f4f5f8;--ink:#111827;--muted:#4b5563;--line:#d1d5db;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{font-size:11pt}.no-print{display:none!important}.print{max-width:none;padding:0}.ro{break-inside:avoid;padding:4px 8px}.ro-session{break-inside:auto}.ro-session h2{break-after:avoid}.team-page{break-before:page}.team-page tr{break-inside:avoid}.pool{-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#fff!important}.ro{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
