*{box-sizing:border-box}
:root{color-scheme:light;--ink:#133d38;--muted:#66736f;--line:#dde4e0;--paper:#fff;--accent:#d6f373}
body{margin:0;background:#edf1ee;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.45}
button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #557b24;outline-offset:3px}
main{width:min(100% - 48px,780px);margin:48px auto 24px}
header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.eyebrow{font-size:12px;font-weight:750;letter-spacing:.15em;margin:0 0 5px}
h1{font-size:38px;line-height:1.1;letter-spacing:-1.5px;margin:0;font-weight:750}h1 span{color:#759624}
h2{margin:0;font-size:21px;letter-spacing:-.45px}
.new-game{background:transparent;border:1px solid #b6c4bc;border-radius:99px;padding:11px 18px;font-size:14px;font-weight:600;color:var(--ink);min-height:44px}.new-game:hover{background:#e0e8e1}
.game-nav{display:flex;align-items:center;gap:8px;margin:0 0 14px}.game-tabs{display:flex;gap:6px;overflow-x:auto;padding:3px;scrollbar-width:none;flex:1}.game-tabs::-webkit-scrollbar{display:none}
.game-tab,.add-game{border:1px solid #cbd5ce;background:#f7f9f7;color:var(--ink);border-radius:10px;min-height:42px;padding:9px 15px;font-size:14px;font-weight:650;white-space:nowrap}.game-tab[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:white}.game-tab.complete:not(.won)::after{content:' ✓';color:#72923a}.game-tab[aria-selected="true"].complete:not(.won)::after{color:#d6f373}.game-tab.won::after{content:' ★';color:#d6f373}.add-game{background:#dce8b5;border-color:#becd8f}
.loss-summary{background:#dce8b5;border:1px solid #c4d39a;border-radius:16px;padding:15px 18px 17px;margin-bottom:14px}.loss-summary-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}.summary-kicker{display:block;font-size:10px;font-weight:750;letter-spacing:.13em;color:#56693c;margin-bottom:1px}.loss-summary h2{font-size:17px;letter-spacing:-.2px}.loss-summary-head>span{font-size:12px;color:#56634f;text-align:right}.loss-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.loss-cell{min-width:0;background:#f7fbe9;border:1px solid #cedba7;border-radius:10px;padding:8px 7px;text-align:center}.loss-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#5f6e58}.loss-count{display:block;font-size:18px;font-weight:750;line-height:1.25;font-variant-numeric:tabular-nums}.loss-word{font-size:11px;font-weight:550;color:#6b7865}
.sheet{background:var(--paper);border:1px solid #d3ddd5;border-radius:22px;box-shadow:0 16px 48px #163c3010;overflow:clip}.sheet-top{padding:25px 28px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px}.sheet-top p{margin:4px 0 0;color:var(--muted);font-size:14px}.counter{font-size:14px;font-weight:650;white-space:nowrap;background:#eef2ee;padding:7px 12px;border-radius:99px;font-variant-numeric:tabular-nums}.instructions{padding:0 28px 20px;font-size:14px;color:var(--muted)}
table{width:100%;border-collapse:collapse;table-layout:fixed}col.round-col{width:13%}thead{background:#f4f7f4}th,td{text-align:center;padding:0;border-bottom:1px solid var(--line)}thead th{height:64px;padding:8px 5px}.round-title{font-size:12px;font-weight:500;color:var(--muted)}.name{width:100%;min-width:0;background:transparent;border:0;border-bottom:2px solid var(--player);border-radius:0;color:var(--ink);font-size:16px;text-align:center;padding:8px 0;font-weight:650}.name:focus{background:white}tbody th{font-weight:550;font-size:14px;color:var(--muted)}tbody tr:focus-within{background:#f1f7e9}td{height:62px;border-left:1px solid #edf0ec;padding:6px 8px;position:relative}
.score{appearance:none;display:block;width:100%;min-width:0;height:48px;text-align:center;font-size:22px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink);border:1px solid transparent;border-radius:8px;background:transparent;padding:4px 0}.score.with-sign-control{padding-right:28px}.score::placeholder{color:#c5ceca;font-size:18px}.score:hover{background:#f4f7f0}.score:focus{background:#fff;border-color:#98b64f;outline:2px solid #d6f373;outline-offset:0}.score.negative{color:#a34437}.score[aria-invalid="true"]{border-color:#ba4a38;background:#fff0ed}.score:disabled{opacity:.46;cursor:not-allowed}.score.winner-locked{background:#f0f3ef}.score.winner-locked::placeholder{color:#91a096}.cell-sign{position:absolute;right:10px;top:50%;translate:0 -50%;width:30px;height:34px;min-width:30px;padding:0;border:1px solid #9eaf80;border-radius:7px;background:#e9f4c8;color:var(--ink);font-size:20px;font-weight:750;line-height:1;z-index:1;box-shadow:0 1px 4px #173c251c}.cell-sign:hover{background:#d9eba5}.cell-sign[hidden]{display:none}
.entry-tools{padding:12px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--muted);font-size:14px;min-height:66px}.entry-tools button{flex-shrink:0;border:1px solid #bac8bd;border-radius:8px;background:#f2f6ef;color:var(--ink);min-width:66px;min-height:42px;font-size:18px;font-weight:650}.entry-tools button:disabled{opacity:.4;cursor:default}.tool-actions{display:flex;align-items:center;gap:7px}.entry-tools .color-toggle{min-width:auto;padding:8px 10px;font-size:13px;font-weight:650;background:transparent}.entry-tools .color-toggle[aria-expanded="true"]{background:#eaf2d2;border-color:#a9bc6c}
.color-finish{border-top:1px solid var(--line);padding:16px 22px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#f8faf7}.color-finish[hidden]{display:none}.color-finish strong,.color-finish span{display:block}.color-finish strong{font-size:14px}.color-finish span{font-size:12px;color:var(--muted);margin-top:2px}.color-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;flex:1;max-width:390px}.color-button{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid #cbd6cd;background:#fff;color:var(--ink);border-radius:8px;min-height:40px;padding:7px;font-size:13px;font-weight:650}.color-button:hover{background:#eaf2d2}
.instant-winner{background:#e9f7b9;border-top:1px solid #cadf7c;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px}.instant-winner[hidden]{display:none}.instant-winner>div{display:flex;align-items:center;gap:12px}.instant-winner p,.instant-winner strong,.instant-winner span{margin:0;display:block}.instant-winner p span{font-size:13px;color:#526340;margin-top:2px}.winner-mark{font-size:26px}.instant-winner button{border:1px solid #81974a;background:#f9ffea;color:var(--ink);border-radius:8px;padding:8px 10px;min-height:40px;font-size:13px}
.totals{background:var(--ink);color:white;padding:20px 25px 24px;position:sticky;bottom:0;z-index:2}.total-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:15px}.total-heading h2{font-size:16px;letter-spacing:0}.total-heading span{font-size:12px;color:#c3d5cb}.total-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.total-cell{text-align:center;border-left:1px solid #ffffff22;min-width:0}.total-cell:first-child{border-left:0}.total-cell.winner .total-name::after{content:' ★';color:var(--accent)}.total-name{display:block;color:#d0ddd6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;padding:0 4px}.total-value{display:block;font-size:32px;line-height:1.25;font-weight:650;font-variant-numeric:tabular-nums;margin-top:4px;overflow-wrap:anywhere;letter-spacing:-1px;color:var(--accent)}
.round-wins{margin-top:17px;padding-top:14px;border-top:1px solid #ffffff24}.round-wins-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.round-wins-heading strong{font-size:13px}.round-wins-heading span{font-size:11px;color:#aebfb6}.win-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.win-cell{min-width:0;text-align:center;background:#ffffff0d;border:1px solid #ffffff18;border-radius:8px;padding:7px 4px}.win-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d0ddd6;font-size:12px}.win-count{display:block;margin-top:2px;color:var(--accent);font-size:18px;line-height:1.2;font-weight:750;font-variant-numeric:tabular-nums}.win-word{display:block;color:#aebfb6;font-size:10px}
footer{display:flex;justify-content:space-between;gap:12px;padding:16px 4px;font-size:12px;color:var(--muted)}
dialog{max-width:420px;width:calc(100% - 36px);border:0;border-radius:20px;padding:28px;color:var(--ink);box-shadow:0 20px 70px #123d3840}dialog::backdrop{background:#102d2870}dialog p:not(.eyebrow){color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.dialog-actions button{padding:11px 14px;border-radius:9px;border:1px solid var(--line);color:var(--ink);background:white;min-height:44px}.dialog-actions .primary{background:var(--ink);color:white}.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}
@media(max-width:620px){main{width:calc(100% - 24px);margin:24px auto 12px}header{margin-bottom:14px}h1{font-size:32px}.new-game{padding:9px 12px;max-width:122px;line-height:1.15}.game-nav{margin-bottom:10px}.game-tab,.add-game{min-height:40px;padding:8px 12px}.loss-summary{padding:13px 11px 14px;margin-bottom:10px}.loss-summary-head{margin-bottom:10px}.loss-cell{padding:7px 3px}.loss-name{font-size:11px}.loss-count{font-size:17px}.sheet{border-radius:17px}.sheet-top{padding:20px 16px 16px}h2{font-size:19px}.instructions{padding:0 16px 16px}thead th{padding:6px 3px;height:58px}.round-title{font-size:12px}.name{font-size:16px}.score{font-size:20px;height:44px}td{height:54px;padding:4px 3px}.entry-tools{padding:10px 13px;font-size:13px}.color-finish{align-items:stretch;flex-direction:column;padding:14px 13px}.color-buttons{max-width:none}.instant-winner{align-items:flex-start;flex-direction:column;padding:16px 14px}.instant-winner button{align-self:stretch}.totals{padding:17px 12px 20px;padding-bottom:max(20px,env(safe-area-inset-bottom))}.total-value{font-size:27px}.total-name{font-size:13px}.total-heading{margin-bottom:13px}.round-wins{margin-top:14px;padding-top:12px}.round-wins-heading{margin-bottom:8px}.round-wins-heading span{font-size:10px}.win-cell{padding:6px 2px}.win-name{font-size:11px}.win-count{font-size:17px}footer{align-items:center;flex-direction:column;text-align:center;gap:4px}.creator-credit{font-weight:700;color:var(--ink)}}
@media(max-width:390px){.color-button{font-size:12px;padding:5px 3px}.total-value{font-size:24px}}
@media(prefers-reduced-motion:no-preference){button,input{transition:background .15s,border-color .15s}}
