:root{--bg:#09080a;--card:#130f08;--card-raised:#1a1409;--border:#74602c;--accent:#d4a853;--accent-dim:#8a6f39;--accent-text:#17130a;--accent-hover:#e0b666;--muted:#b89b6c;--text:#f8f0dd;--win:#7c9a6b;--loss:#b0524a;--draw:#a89566;--result-white-bg:#efe6cf;--result-white-text:#17130a;--result-black-bg:#241f16;--result-black-text:#f8f0dd;--result-black-border:#4a3f28;--scrim:#14100a99;--font-ui:system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", ui-monospace, Menlo, Consolas, monospace}:root[data-theme=light]{--bg:#f6f1e4;--card:#fffdf8;--card-raised:#efe6d1;--border:#ddcda3;--accent:#9c6f1e;--accent-dim:#c9a35c;--accent-text:#fffaf0;--accent-hover:#7d5a17;--muted:#86754f;--text:#251f14;--win:#4c7a3d;--loss:#a1443c;--draw:#8a723f}*{box-sizing:border-box}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237a6440' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:26px!important}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;margin:0;line-height:1.45}a{color:var(--accent)}button{font-family:inherit}.app{max-width:940px;margin:0 auto;padding:0 20px 80px}.masthead{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;padding:32px 0 18px;display:flex}.masthead-right{align-items:center;gap:12px;min-width:0;display:flex}.masthead-auth{flex-shrink:0;padding:6px 12px;font-size:12px}.wordmark{letter-spacing:.02em;color:var(--text);font-size:20px;font-weight:800;text-decoration:none}.wordmark small{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:2px;font-size:12.5px;font-weight:500;display:block}.season-pill{font-family:var(--font-mono);color:var(--muted);background:var(--card-raised);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;flex-shrink:1;min-width:0;max-width:38vw;padding:4px 12px;font-size:12px;overflow:hidden}.site-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:22px;margin-bottom:22px;padding:14px 0 0;display:flex}.site-nav .links{gap:22px;display:flex}.site-nav a.link{color:var(--muted);border-bottom:2px solid #0000;padding-bottom:12px;font-size:13px;font-weight:600;text-decoration:none;transition:color .15s,border-color .15s}.site-nav a.link.current{color:var(--text);border-bottom-color:var(--accent)}.mode-toggle{background:var(--card);border:1px solid var(--border);border-radius:8px;gap:4px;padding:3px;display:flex}.mode-toggle button{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 10px;font-size:11.5px;font-weight:700;transition:background-color .15s,color .15s}.mode-toggle button.on{background:var(--accent);color:var(--accent-text)}h1.page-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 16px;font-size:15px;font-weight:700}.board-wrap{overflow-x:auto}table.board{border-collapse:collapse;width:100%}table.board th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--border);padding:0 10px 8px;font-size:11px;font-weight:600}table.board td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 10px;font-size:14px}table.board tr:last-child td{border-bottom:none}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.rank-num{font-family:var(--font-mono);color:var(--muted);font-size:13px}.rank-1{color:var(--accent);font-weight:700}.player-name{font-weight:600}.score-cell{text-align:right;color:var(--accent);font-size:15px;font-weight:700}.value-cell{text-align:right;color:var(--muted);font-size:13px}.badge{text-transform:uppercase;letter-spacing:.04em;vertical-align:middle;background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);border-radius:5px;margin-left:8px;padding:2px 7px;font-size:10.5px;font-weight:700;display:inline-block}.lb-cards{flex-direction:column;gap:8px;display:none}.lb-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 14px}.lb-card-top{grid-template-columns:1fr auto 1fr;align-items:baseline;gap:10px;display:grid}.lb-card-left{align-items:baseline;gap:10px;min-width:0;display:flex}.lb-card-top .rank-num{flex:none;width:18px}.lb-card-top .player-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.lb-card-top .lb-points{font-family:var(--font-mono);color:var(--accent);justify-self:end;font-size:15px;font-weight:700}.lb-card-record{font-family:var(--font-mono);white-space:nowrap;justify-self:center;font-size:13px;font-weight:700}.lb-card-record .rec-w{color:var(--win)}.lb-card-record .rec-d{color:var(--draw)}.lb-card-record .rec-l{color:var(--loss)}.lb-card-record .rec-sep{color:var(--muted);font-weight:400}.lb-card-stats{color:var(--muted);font-size:11px;font-family:var(--font-mono);white-space:nowrap;scrollbar-width:none;margin-top:4px;overflow-x:auto}.lb-card-stats::-webkit-scrollbar{display:none}.round{border:1px solid var(--border);background:var(--card);border-radius:10px;margin-bottom:10px;overflow:hidden}.round.open{overflow:visible}.round-head{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;transition:background-color .15s;display:flex}.round-head:hover{background:var(--card-raised)}.round-head-left{align-items:baseline;gap:10px;display:flex}.round-title{font-size:14.5px;font-weight:700}.round-date{color:var(--muted);font-size:12.5px;font-family:var(--font-mono)}.chevron{color:var(--muted);font-size:12px;transition:transform .15s}.round.open .chevron{transform:rotate(90deg)}.round-body{border-top:1px solid var(--border);padding:4px 16px 16px;animation:.18s round-body-in}@keyframes round-body-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes chip-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.round-body,.chip,.autocomplete,.modal-backdrop,.modal-panel{animation:none}}.modal-backdrop{background:var(--scrim);z-index:100;justify-content:center;align-items:center;padding:20px;animation:.15s modal-fade-in;display:flex;position:fixed;inset:0}.modal-panel{background:var(--card-raised);border:1px solid var(--border);border-radius:14px;width:100%;max-width:460px;max-height:calc(100vh - 40px);animation:.18s modal-panel-in;overflow-y:auto;box-shadow:0 24px 60px #0000008c}.modal-header{border-bottom:1px solid var(--border);background:var(--card-raised);justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:sticky;top:0}.modal-title{color:var(--text);font-size:15px;font-weight:700}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px;font-size:15px;line-height:1;transition:color .12s,background-color .12s}.modal-close:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.modal-body{flex-direction:column;gap:16px;padding:20px;display:flex}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-panel-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}table.pairings{border-collapse:collapse;width:100%;margin-top:4px}table.pairings th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 6px 5px;font-size:10.5px;font-weight:600}table.pairings td{border-top:1px solid var(--border);vertical-align:middle;padding:7px 6px;font-size:13.5px}table.pairings th:last-child,table.pairings td:last-child{text-align:right}tr.unpaired-row td:last-child{text-align:left}.table-no{font-family:var(--font-mono);color:var(--muted);width:26px}.result-pill{font-family:var(--font-mono);white-space:nowrap;border-radius:5px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-block}.result-pill.white-win{background:var(--result-white-bg);color:var(--result-white-text);border:1px solid var(--result-black-border)}.result-pill.black-win{background:var(--result-black-bg);color:var(--result-black-text);border:1px solid var(--result-black-border)}.result-pill.draw{background:color-mix(in srgb, var(--draw) 18%, transparent);color:var(--draw)}.outcome-pill{font-family:var(--font-mono);white-space:nowrap;border-radius:5px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-block}.outcome-pill.win{background:color-mix(in srgb, var(--win) 18%, transparent);color:var(--win)}.outcome-pill.draw{background:color-mix(in srgb, var(--draw) 18%, transparent);color:var(--draw)}.outcome-pill.loss{background:color-mix(in srgb, var(--loss) 18%, transparent);color:var(--loss)}.unpaired-flag{background:color-mix(in srgb, var(--accent) 7%, transparent);border-left:3px solid var(--accent);border-radius:4px;align-items:center;gap:10px;margin-top:8px;padding:7px 10px;display:flex}.unpaired-flag .txt{font-size:13px}.unpaired-flag .txt em{color:var(--accent);font-style:italic;font-weight:700}.unpaired-flag .assign{color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border:none;margin-left:auto;font-size:12px;font-weight:600}.not-playing,.external-section{border-top:1px dashed var(--border);margin-top:14px;padding-top:12px}.not-playing-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:700}.external-row{align-items:center;gap:10px;padding:5px 0;font-size:13px;display:flex}.external-row .txt{min-width:90px}.external-remove{color:var(--accent);cursor:pointer;opacity:.75;background:0 0;border:none;padding:2px 4px;font-size:13px;line-height:1;transition:opacity .15s}.external-remove:hover{opacity:1}.external-tag,.external-tag-btn{color:var(--muted);font-size:12px;font-weight:600}.external-tag-btn{border:none;border-bottom:1px dotted var(--accent-dim);cursor:pointer;font-family:var(--font-ui);background:0 0;padding:4px 2px;transition:color .15s,border-color .15s}.external-tag-btn:hover{border-color:var(--accent)}.external-tag.win,.external-tag-btn.win{color:var(--win)}.external-tag.loss,.external-tag-btn.loss{color:var(--loss)}.external-tag.draw,.external-tag-btn.draw{color:var(--draw)}.external-tag.pending,.external-tag-btn.pending{color:var(--muted);font-style:italic}.editable-name{cursor:pointer;border-bottom:1px dotted var(--accent-dim);color:inherit;font:inherit;background:0 0;border-top:none;border-left:none;border-right:none;padding:0;transition:color .15s,border-color .15s}.editable-name:hover{color:var(--accent);border-bottom-color:var(--accent)}.result-toggle{gap:4px;display:inline-flex}.result-toggle button{font-family:var(--font-mono);border:1px solid var(--border);background:var(--bg);color:var(--muted);cursor:pointer;padding:5px 9px;font-size:11.5px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s}.result-toggle button:first-child{border-radius:6px 0 0 6px}.result-toggle button:last-child{border-radius:0 6px 6px 0}.result-toggle button.sel.white-win{background:var(--result-white-bg);color:var(--result-white-text);border-color:var(--result-white-bg)}.result-toggle button.sel.draw{background:color-mix(in srgb, var(--draw) 18%, transparent);color:var(--draw);border-color:var(--draw)}.result-toggle button.sel.black-win{background:var(--result-black-bg);color:var(--result-black-text);border-color:var(--result-black-border)}.result-toggle button.sel.win{background:color-mix(in srgb, var(--win) 18%, transparent);color:var(--win);border-color:var(--win)}.result-toggle button.sel.loss{background:color-mix(in srgb, var(--loss) 18%, transparent);color:var(--loss);border-color:var(--loss)}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:22px}.field-row{flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:18px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:600}.field input,.field select{font-family:var(--font-ui);color:var(--text);background-color:var(--bg);border:1px solid var(--border);border-radius:7px;min-width:160px;padding:9px 11px;font-size:14px}.field input:focus,.field select:focus{border-color:var(--accent);outline:none}.whos-playing{text-align:center;padding:30px 10px 10px}.whos-playing .prompt{text-wrap:balance;margin-bottom:18px;font-size:22px;font-weight:700}.password-field-wrap{position:relative}.password-field-wrap input{width:100%;padding-right:34px}.eye-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:4px;transition:color .15s;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.eye-toggle:hover{color:var(--accent)}.name-input-wrap{max-width:420px;margin:0 auto;position:relative}.name-input{text-align:center;background:var(--bg);border:1px solid var(--accent-dim);width:100%;color:var(--text);font-size:16px;font-family:var(--font-ui);border-radius:10px;padding:13px 16px}.name-input:focus{border-color:var(--accent);outline:none}.name-input-wrap:has(.editable-name-input){max-width:180px;margin:0;display:inline-block}.editable-name-input{background:var(--bg);border:1px solid var(--accent-dim);width:100%;color:var(--text);font-size:13.5px;font-family:var(--font-ui);border-radius:6px;padding:5px 8px}.editable-name-input:focus{border-color:var(--accent);outline:none}.autocomplete{background:var(--card-raised);border:1px solid var(--border);text-align:left;z-index:10;border-radius:8px;animation:.12s round-body-in;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden;box-shadow:0 12px 24px #0006}.autocomplete div{cursor:pointer;padding:9px 14px;font-size:13.5px;transition:background-color .12s,color .12s}.autocomplete div:hover{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent)}.chips{flex-wrap:wrap;justify-content:center;gap:8px;max-width:480px;margin:20px auto 0;display:flex}.chip{background:var(--card-raised);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:5px 8px 5px 12px;font-size:13px;font-weight:600;animation:.15s chip-in;display:inline-flex}.chip .x{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:12px}.chip.unreg{border-color:var(--draw);color:var(--draw)}.frequent-bubbles{flex-wrap:wrap;justify-content:center;gap:6px;max-width:100%;margin:14px auto 0;display:flex}.frequent-bubble{border:1px dashed var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:12.5px;font-weight:600;transition:border-color .15s,color .15s,transform .1s;display:inline-flex}.frequent-bubble .plus{color:var(--accent);font-weight:800}.link-add{color:var(--muted);cursor:pointer;background:0 0;border:none;margin-top:16px;font-size:12.5px;display:inline-block}.link-add:hover{color:var(--accent)}.btn{font-family:var(--font-ui);cursor:pointer;border:1px solid #0000;border-radius:8px;padding:11px 20px;font-size:14px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s,transform .1s}.btn:disabled{opacity:.45;cursor:default}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{color:var(--text);border-color:var(--border);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--accent-dim);color:var(--accent)}.btn-row{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:26px;display:flex}.table-stepper{font-family:var(--font-mono);background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;gap:4px;padding:2px 6px;display:inline-flex}.table-stepper button{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:13px}.table-stepper button:hover{color:var(--accent)}.settings-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;padding:16px 0;display:flex}.settings-row:first-child{border-top:none}.settings-row .label{font-size:14px;font-weight:600}.settings-row .help{color:var(--muted);max-width:420px;margin-top:3px;font-size:12.5px}.switch{background:var(--border);cursor:pointer;border:none;border-radius:999px;flex:none;width:40px;height:23px;transition:background-color .15s;position:relative}.switch:after{content:"";background:var(--muted);border-radius:50%;width:17px;height:17px;transition:all .15s;position:absolute;top:3px;left:3px}.switch.on{background:color-mix(in srgb, var(--accent) 35%, transparent)}.switch.on:after{background:var(--accent);left:20px}.settings-num{font-family:var(--font-mono);text-align:center;background:var(--bg);border:1px solid var(--border);width:56px;color:var(--text);border-radius:6px;padding:7px;font-size:14px}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:28px 0 6px;font-size:11px;font-weight:700}.section-label:first-child{margin-top:0}.players-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.players-search{background:var(--bg);border:1px solid var(--border);min-width:160px;max-width:260px;color:var(--text);border-radius:7px;flex:1;padding:8px 12px;font-size:13.5px}.players-search:focus{border-color:var(--accent);outline:none}.players-toolbar-actions{gap:8px;display:flex}@media (width<=640px){.players-toolbar{flex-direction:column;align-items:stretch}.players-search{max-width:none}.players-toolbar-actions{justify-content:flex-end}}table.roster{border-collapse:collapse;width:100%}table.roster th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--border);padding:0 10px 8px;font-size:11px;font-weight:600}table.roster td{border-bottom:1px solid var(--border);padding:11px 10px;font-size:13.5px}table.roster tr:last-child td{border-bottom:none}.player-row{cursor:pointer;transition:background-color .12s}.player-row:hover{background:color-mix(in srgb, var(--accent) 6%, transparent)}.player-cards{flex-direction:column;gap:8px;display:none}.player-card{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--border);cursor:pointer;border-radius:10px;padding:12px 14px}.player-card.full{border-left-color:var(--win)}.player-card.internal_only{border-left-color:var(--accent)}.player-card.guest{border-left-color:var(--draw)}.player-card-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.player-card-name{font-size:14.5px;font-weight:700}.player-card-notes{color:var(--text);margin-top:4px;font-size:13px}.player-card-meta{color:var(--muted);font-size:11.5px;font-family:var(--font-mono);margin-top:4px}.pill{border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-block}.pill.full{background:color-mix(in srgb, var(--win) 16%, transparent);color:var(--win)}.pill.internal{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent)}.pill.guest{background:color-mix(in srgb, var(--draw) 18%, transparent);color:var(--draw)}.roster-select{font-family:var(--font-ui);border:1px solid var(--border);background-color:var(--bg);color:var(--text);cursor:pointer;border-radius:7px;padding:6px 10px;font-size:13px;font-weight:600;transition:border-color .15s}.roster-select:hover{border-color:var(--accent-dim)}.roster-select:focus{border-color:var(--accent);outline:none}.custom-select{display:inline-block;position:relative}.custom-select-trigger{text-align:left;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237a6440' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:26px}.custom-select-menu{min-width:140px;max-height:220px;overflow-y:auto}.custom-select-menu div.sel{background:color-mix(in srgb, var(--accent) 12%, transparent)}.roster-select-full{color:var(--win)}.roster-select-internal_only{color:var(--accent)}.roster-select-guest{color:var(--draw)}.note-cell{color:var(--muted);font-size:12.5px}.notes-input{width:100%;min-width:160px;font-size:12.5px;font-family:var(--font-ui);color:var(--text);background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 6px;transition:border-color .15s,background-color .15s}.notes-input:hover{border-color:var(--border)}.notes-input:focus{border-color:var(--accent-dim);background:var(--bg);outline:none}.guest-count-hint{color:var(--muted);margin-top:3px;font-size:11px}.guest-count-hint.due{color:var(--accent);font-weight:600}footer.note{text-align:center;color:var(--muted);margin-top:40px;font-size:12px}.error-banner{background:color-mix(in srgb, var(--loss) 12%, transparent);border:1px solid var(--loss);color:var(--loss);border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}@media (width<=640px){.app{padding:0 14px 60px}.masthead{padding:22px 0 14px}.wordmark{font-size:17px}.card{padding:16px}.whos-playing .prompt{font-size:19px}table.pairings td,table.pairings th{padding:6px 4px;font-size:12.5px}table.board{display:none}.lb-cards{display:flex}.players-table-wrap{display:none}.player-cards{display:flex}.frequent-bubbles{gap:8px}.frequent-bubble{padding:9px 14px;font-size:14px}}
