:root{color:#342b24;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--green:#215a43;--green-pale:#edf4ee;--muted:#776b60;--border:#e1d7cb;--ember:#a6401b;--ember-pale:#fff0dc;--charcoal:#261c17;--paper:#fffcf7;background:#f6f1e9;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}button,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;touch-action:manipulation}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline-offset:3px;outline:3px solid #bd551e}button,input,select{min-height:44px}input,select{color:#342b24;background:var(--paper);border:1px solid #d8cabb;border-radius:8px;min-width:0;padding:10px 12px}input{width:100%}select{cursor:pointer}label{font-size:.8rem;font-weight:600}h1,h2,h3,p{margin:0}h1{letter-spacing:-.055em;font-size:2rem;font-weight:650}h2{letter-spacing:-.025em;font-size:1.25rem}h3{font-size:1rem;font-weight:650}.app-shell{max-width:1000px;margin:0 auto;padding:0 40px 20px}.app-header{isolation:isolate;background:var(--charcoal);color:#fff6e9;border:1px solid #513b2d;border-radius:16px;margin-top:16px;position:relative;overflow:hidden}.header-bar{justify-content:space-between;align-items:flex-end;gap:12px;min-height:164px;padding:22px;display:flex;position:relative}.campfire-scene{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.campfire-photo{object-fit:cover;object-position:center 12%;width:64%;height:100%;position:absolute;top:0;right:0}.campfire-scene:after{content:"";background:linear-gradient(90deg,#261c17 20%,#261c17cc 36%,#261c1700 65%),linear-gradient(#20161000 24%,#20161099 67%,#201610f5);position:absolute;inset:0}.campfire-glow{opacity:.5;z-index:1;background:radial-gradient(at 65% 100%,#f67a2144,#0000 65%);position:absolute;inset:25% 0 0 30%}.campfire-embers{z-index:2;position:absolute;inset:0}.campfire-embers span{bottom:15%;left:calc(48% + var(--spark) * 6%);opacity:0;background:#ffc47a;border-radius:50%;width:3px;height:5px;position:absolute;box-shadow:0 0 7px #f8792c}.app-header .button.secondary{color:#fff6e9;background:#2c201bea;border-color:#8a705b}.app-header .button.secondary:hover:not(:disabled){background:#483020;border-color:#e4b181}.app-header .button.primary{background:#ac411a;border-color:#ec9860}.app-header .button.primary:hover:not(:disabled){background:#c04d1e}.app-header .sync-button{color:#ffe0ba;background:#261c17cc}.app-header .sync-warning{color:#ffd2b0;background:#602a1c}.app-header button:focus-visible{outline-color:#ffd092}.brand{letter-spacing:-.04em;white-space:nowrap;align-items:center;gap:10px;font-size:1.6rem;font-weight:750;display:flex}.brand img{width:34px;height:34px}.header-actions{gap:8px;display:flex}.button{border:1px solid var(--border);background:#fff;border-radius:8px;padding:10px 16px;font-size:.875rem;font-weight:600}.button.primary{color:#fff;background:var(--ember);border-color:var(--ember)}.button.primary:hover:not(:disabled){background:#823014}.button.secondary{background:0 0}.button.secondary:hover:not(:disabled),.button:hover:not(:disabled){border-color:#ba764b}.button.small{padding:8px 12px}.full-width{width:100%}.text-button{color:var(--ember);background:0 0;border:0;padding:8px 0;font-size:.8rem;font-weight:550}.text-button:hover:not(:disabled){text-decoration:underline}.icon-button{border:1px solid var(--border);background:#fff;border-radius:8px;place-items:center;min-width:44px;padding:6px;font-size:1.25rem;display:inline-grid}.scorecard-section{margin-top:20px}.scorecard-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--ember);margin-bottom:6px;font-size:.65rem;font-weight:650}.game-picker{flex-direction:column;gap:6px;max-width:50%;display:flex}.game-picker label{color:var(--muted);font-size:.7rem}.game-picker select{width:240px;max-width:100%;font-size:.875rem}.table-scroll{border:1px solid var(--border);background:var(--paper);scrollbar-width:thin;scrollbar-color:#cbb6a0 transparent;border-radius:12px;min-height:280px;max-height:calc(100dvh - 375px);overflow:auto}.scoreboard{border-collapse:separate;border-spacing:0;text-align:center;font-variant-numeric:tabular-nums;width:100%}.scoreboard th,.scoreboard td{border-bottom:1px solid #eee6dc;min-width:100px;padding:0}.scoreboard thead th{z-index:2;background:#efe5d7;border-bottom:1px solid #dccbbb;height:52px;font-size:.8rem;font-weight:600;position:sticky;top:0}.player-heading{text-overflow:ellipsis;white-space:nowrap;max-width:180px;margin:0 auto;padding:0 12px;display:block;overflow:hidden}.scoreboard .hole-column{z-index:1;background:#faf4eb;border-right:1px solid #e8dbcb;width:66px;min-width:66px;position:sticky;left:0}.scoreboard thead .hole-column{z-index:3;color:var(--muted);background:#efe5d7}.scoreboard tbody button{background:0 0;border:0;width:100%;min-height:44px;font-size:.9rem;font-weight:500;display:block;position:relative}.scoreboard tbody th button{color:var(--muted);font-size:.78rem;font-weight:550}.scoreboard tbody button:hover{background:var(--ember-pale)}.scoreboard .empty-score{color:#aaa095;font-weight:400}.scoreboard .selected-row td,.scoreboard .selected-row .hole-column{background:var(--ember-pale)}.scoreboard .selected-row th{box-shadow:inset 3px 0 var(--ember)}.scoreboard .back-nine td,.scoreboard .back-nine th{border-top:2px solid #dfcfbd}.scoreboard .totals-row>th,.scoreboard .totals-row>td{z-index:2;background:#efe5d7;border-bottom:1px solid #dccbbb;height:54px;position:sticky;top:32px}.scoreboard .totals-row .hole-column{z-index:3}.totals-row button{background:0 0;border:0;width:100%;height:100%;padding:2px 0}.totals-row .hole-column button{font-size:.75rem}.player-total{font-variant-numeric:tabular-nums;background:#efe5d7;border:0;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:44px;padding:2px 0;display:flex}.player-total strong{font-size:.7rem;font-weight:500;line-height:14px;display:block}.player-total:hover,.totals-row button:hover{background:#e3d5c2}.total-rank,.total-difference{font-size:1rem;font-weight:700;line-height:18px;display:block}.dirty-dot{background:#a36b21;border-radius:50%;width:5px;height:5px;margin:0 0 0 4px;display:inline-block;position:absolute}.scorecard-footer{color:var(--muted);justify-content:space-between;gap:12px;padding:12px 2px;font-size:.65rem;display:flex}.demo-note{text-align:center;color:#827365;padding-top:16px;font-size:.65rem}.dialog{border:1px solid var(--border);color:#342b24;background:var(--paper);border-radius:16px;width:min(480px,100% - 32px);max-height:88dvh;padding:0;overflow:hidden;box-shadow:0 20px 70px #28170f40}.dialog[open]{flex-direction:column;display:flex}.dialog::backdrop{background:#20140e70}.dialog-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:14px 24px;display:flex}.close-button{background:#f1e8dc;border-color:#0000;font-size:1.7rem}.dialog-body{overscroll-behavior:contain;padding:24px;overflow:auto}.bottom-dialog{border-bottom:0;border-radius:18px 18px 0 0;width:min(720px,100%);max-width:100%;max-height:100dvh;margin:auto auto 0}.bottom-dialog>.dialog-body{padding:0 16px max(8px, env(safe-area-inset-bottom))}.hole-navigation{z-index:1;background:var(--paper);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:8px 0;display:flex;position:sticky;top:0}.hole-navigation>div{text-align:center}.hole-navigation strong{font-size:1rem;font-weight:650}.hole-navigation strong .muted{font-weight:400}.hole-status{color:var(--muted);margin-top:4px;font-size:.7rem;display:block}.entry-scroll{overflow-x:auto}.entry-matrix{grid-template-columns:repeat(var(--player-count), minmax(0, 1fr));gap:6px;padding-top:8px;display:grid}.entry-matrix.wide-roster{min-width:calc(var(--player-count) * 48px)}.player-entry{text-align:center;min-width:0}.entry-heading{margin-bottom:6px}.entry-heading h3{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;line-height:20px;overflow:hidden}.entry-heading .player-total{height:44px}.entry-heading .player-total strong{font-size:.65rem;line-height:12px}.entry-heading .total-rank,.entry-heading .total-difference{font-size:.875rem;line-height:14px}.entry-status{place-items:center;min-height:20px;display:grid}.column-status{background:var(--green-pale);min-width:26px;height:18px;color:var(--green);border-radius:6px;place-items:center;font-size:.75rem;font-weight:650;display:inline-grid}.column-status.is-missing{color:#8a642b;background:#fbf2e4}.column-status.saving-status{color:var(--muted);background:#f5f6f2}.retry-score{color:#943f27;background:#fff2ec;border:0;border-radius:6px;width:100%;min-height:44px;padding:0;font-size:1.4rem}.score-buttons{grid-template-columns:1fr;gap:4px;display:grid}.score-buttons button{background:#f8f1e7;border:1px solid #e0d2c1;border-radius:6px;width:100%;height:44px;padding:0;font-size:1rem;font-weight:550}.score-buttons button[aria-pressed=true]{background:var(--green);color:#fff;border-color:var(--green);box-shadow:inset 0 0 0 1px #fff6}.score-buttons button:hover:not(:disabled):not([aria-pressed=true]){background:#f4e4d0}.score-buttons button:disabled{opacity:.65}.more-score{border:1px solid var(--border);width:100%;color:var(--green);background:#fff;border-radius:6px;margin-top:4px;padding:0;font-size:.8rem}.has-score .score-buttons button[aria-pressed=false],.has-score .more-score[aria-pressed=false]{color:#686d69;background:#e6e7e5;border-color:#e6e7e5;font-weight:400}.more-score[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff;font-weight:650}.leaderboard-game{overflow-wrap:anywhere;font-weight:650}.leaderboard-note{color:var(--muted);margin-top:4px;font-size:.75rem}.leaderboard-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:16px;font-size:.85rem}.leaderboard-table th,.leaderboard-table td{border-bottom:1px solid var(--border);text-align:right;padding:12px 6px}.leaderboard-table thead th{color:var(--muted);font-size:.7rem;font-weight:550}.leaderboard-table thead th:nth-child(2),.leaderboard-table .leaderboard-player{text-align:left}.leaderboard-table tbody th{overflow-wrap:anywhere;max-width:160px}.leaderboard-table tbody th strong{display:block}.leaderboard-table tbody th span{color:var(--muted);margin-top:3px;font-size:.7rem;font-weight:400;display:block}.leaderboard-rank,.leaderboard-total{font-weight:700}.leaderboard-table .leaderboard-rank{vertical-align:middle;text-align:center;color:var(--green);font-size:1rem}.leaderboard-table .rank-band{background:var(--green-pale)}.leaderboard-table tbody+tbody{border-top:2px solid var(--border)}.results-tabs{border-bottom:1px solid var(--border);gap:4px;margin-top:16px;display:flex}.results-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;flex:1;padding:8px;font-size:.85rem}.results-tabs button[aria-selected=true]{border-bottom-color:var(--green);color:var(--green);font-weight:650}.progress-chart{padding-top:10px}.progress-plot{width:100%;height:auto;display:block;overflow:visible}.progress-plot text{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:9px}.progress-plot .chart-axis-title{fill:#342b24;font-size:9px}.chart-grid{stroke:var(--border);stroke-width:1px}.chart-legend{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin-top:6px;display:grid}.chart-legend button{border:1px solid var(--border);text-align:left;background:0 0;border-radius:4px;align-items:center;gap:4px;min-width:0;padding:3px;font-size:.6rem;display:flex}.chart-legend button[aria-pressed=false]{opacity:.5;background:#eee9e1}.chart-swatch{border-top:3px solid;flex:0 0 10px}.chart-player-name{overflow-wrap:anywhere;flex:1}.chart-note{color:var(--muted);margin-top:6px;font-size:.65rem;line-height:1.4}.matrix-error{color:#943f27;background:#fff2ec;border-radius:6px;margin-top:6px;padding:8px;font-size:.75rem}.other-form{margin-bottom:12px}.other-form label{color:var(--muted);font-size:.7rem}.input-action{gap:8px;margin-top:6px;display:flex}.input-action input{flex:1}.muted{color:var(--muted)}.notice{border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:.8rem;display:flex}.error-notice{color:#943f27;background:#fff2ec}.error-notice .text-button{color:inherit;flex-shrink:0}.loading-state,.empty-state{text-align:center;color:var(--muted);padding:80px 20px}.empty-state p{margin:12px 0 24px}.new-game-form>input{margin-top:6px}.competition-rule{gap:8px;margin:16px 0;display:grid}.competition-rule select{width:100%;font-size:.85rem}.competition-rule p{font-size:.8rem}.form-section-heading{justify-content:space-between;align-items:center;gap:8px;margin:24px 0 12px;display:flex}.form-section-heading span{color:var(--muted);font-size:.7rem}.player-input{margin-top:8px}.add-participant{margin:6px 0 16px}.form-intro{color:var(--muted);font-size:.85rem;line-height:1.5}.manage-players{margin:12px 0 24px;padding:0;list-style:none}.manage-players li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:10px 0;display:flex}.manage-players strong{overflow-wrap:anywhere;font-size:.9rem;display:block}.manage-players span{color:var(--muted);margin-top:4px;font-size:.7rem;display:block}.remove-button{color:#986349}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=1100px){.app-shell{padding-top:12px}.scorecard-section{margin-top:20px}}@media (width<=600px){.app-shell{padding:0 8px 8px}.app-header{border-radius:12px;margin-top:8px}.header-bar{flex-direction:column;justify-content:flex-end;align-items:stretch;gap:8px;min-height:130px;padding:8px}.header-actions{justify-content:flex-end}.campfire-photo{width:100%}.campfire-scene:after{background:linear-gradient(#20161022 28%,#201610ed 75%,#201610 100%),linear-gradient(90deg,#261c1755,#0000 60%)}.brand{gap:7px;font-size:1.4rem}.brand img{width:30px;height:30px}.header-actions{gap:4px}.header-actions .button{padding:8px;font-size:.75rem}.scorecard-section{margin-top:12px}.scorecard-heading{gap:12px;margin-bottom:12px}h1{font-size:1.6rem}.eyebrow{letter-spacing:.11em;font-size:.55rem}.game-picker{max-width:52%}.game-picker select{padding:8px;font-size:.8rem}.table-scroll{border-radius:8px;max-height:calc(100dvh - 280px)}.scoreboard{table-layout:fixed}.scoreboard.wide-roster{min-width:calc(var(--player-count) * 40px + 28px)}.scoreboard th,.scoreboard td{min-width:0}.scoreboard .hole-column{width:28px;min-width:0}.scoreboard thead th{height:40px;font-size:.65rem}.scoreboard tbody button{min-height:32px;padding:0;font-size:.8rem}.scoreboard tbody th button{font-size:.65rem}.totals-row .hole-column button{font-size:.6rem}.player-heading{max-width:none;padding:0 1px}.scorecard-footer{gap:8px;font-size:.6rem}.demo-note{padding-top:10px;font-size:.6rem}.entry-matrix{gap:3px;padding-top:4px}.entry-heading{margin-bottom:4px}.entry-heading h3{font-size:.65rem;line-height:18px}.score-buttons{gap:3px}.score-buttons button{height:clamp(44px,12.5dvh - 37.5px,52px)}.bottom-dialog{border:0;border-radius:0;height:100dvh;max-height:100dvh}.bottom-dialog>.dialog-header{padding:4px 8px}.bottom-dialog>.dialog-header h2{font-size:1rem}.bottom-dialog>.dialog-header .close-button{height:44px;line-height:1}.bottom-dialog>.dialog-body{padding:0 6px max(4px, env(safe-area-inset-bottom))}.hole-navigation{padding:6px 0}.dialog-header{padding:12px 20px}.dialog-body{padding:20px}.notice{flex-wrap:wrap}}@media (width<=600px) and (height<=680px){.header-bar{min-height:106px}.table-scroll{max-height:calc(100dvh - 256px)}}@media (prefers-reduced-motion:no-preference){.campfire-embers span{animation:4.5s ease-out both ember-rise;animation-delay:calc(var(--spark) * -.45s)}.campfire-glow{animation:1.5s ease-in-out 3 fire-breathe}.quiet-header .campfire-embers span,.quiet-header .campfire-glow{animation-play-state:paused}@keyframes ember-rise{0%{opacity:0;transform:translateY(12px)scale(.5)}15%{opacity:.65}65%{opacity:.35}to{opacity:0;transform:translate(-22px,-110px)scale(.25)}}@keyframes fire-breathe{50%{opacity:.8}}.dialog[open]{animation:.16s ease-out appear}@keyframes appear{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}}.app-shell{padding-top:max(0px, env(safe-area-inset-top));padding-left:max(8px, env(safe-area-inset-left));padding-right:max(8px, env(safe-area-inset-right));padding-bottom:max(16px, env(safe-area-inset-bottom))}@media (width>=601px){.app-shell{padding-left:max(40px, env(safe-area-inset-left));padding-right:max(40px, env(safe-area-inset-right))}}.bottom-dialog{max-height:calc(100dvh - env(safe-area-inset-top))}.bottom-dialog>.dialog-header{padding-left:max(8px, env(safe-area-inset-left));padding-right:max(8px, env(safe-area-inset-right))}.bottom-dialog>.dialog-body{padding-left:max(6px, env(safe-area-inset-left));padding-right:max(6px, env(safe-area-inset-right))}.app-support{text-align:center;color:var(--muted);padding-top:4px}.app-support .demo-note{padding-top:6px;line-height:1.5}.connection-note,.offline-readiness{margin:4px 0;font-size:.7rem;line-height:1.5}.install-button{min-width:100px}.install-help{font-size:.9rem;line-height:1.6}.install-help p+p{margin-top:16px}.sync-button{width:44px;color:var(--green);background:0 0;border-color:#0000}.sync-button svg{width:21px;height:21px}.sync-warning{color:#943f27;background:#fff2ec}.sync-details{font-size:.85rem;line-height:1.5}.sync-details>*+*{margin-top:14px}.sync-list{max-height:180px;padding-left:20px;overflow:auto}.dialog-header>h2{margin-right:auto}@media (prefers-reduced-motion:no-preference){.sync-spinner{animation:1.2s linear infinite sync-rotate}@keyframes sync-rotate{to{transform:rotate(360deg)}}}.fire-overlay{z-index:1000;color:#ffe5be;background:radial-gradient(at 50% 65%,#63270e 0%,#301b12 42%,#160f0b 80%);flex-direction:column;justify-content:center;align-items:center;height:100dvh;padding:0;display:flex;position:fixed;inset:0;overflow:hidden}.fire-overlay p{bottom:max(24px, env(safe-area-inset-bottom));text-align:center;font-size:.9rem;position:absolute;left:16px;right:16px}body:has(.fire-overlay){overflow:hidden}.fire-film{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute;inset:0}.fire-shade{pointer-events:none;background:linear-gradient(#0000 60%,#000b);position:absolute;inset:0}.fire-overlay p{z-index:1;color:#fff4df;text-shadow:0 2px 12px #000}html,body,#app{height:100%}body{overflow:hidden}.app-shell{height:100dvh;padding-bottom:max(8px, env(safe-area-inset-bottom));flex-direction:column;display:flex}.app-header{flex:none}.info-button{color:#fff3df;z-index:1;background:#261c17b3;border:0;width:44px;height:44px;padding:10px;position:absolute;top:6px;right:6px}.info-button svg{width:22px;height:22px}.scorecard-section{flex-direction:column;flex:1 1 0;min-height:0;margin-top:10px;display:flex}.scorecard-heading,.scorecard-section>.notice{flex:none;margin-bottom:6px}.table-scroll{flex:1 1 0;min-height:0;max-height:none}.scoreboard{height:100%}.scoreboard thead th{height:32px}.scoreboard tbody button{height:100%;min-height:18px;padding:1px 0;line-height:1.1}.empty-state{padding:24px 12px;overflow:auto}.app-info{font-size:.85rem;line-height:1.6}.app-info>*+*{margin-top:16px}.app-info .demo-note,.app-info .connection-note,.app-info .offline-readiness{text-align:left;font-size:inherit;padding-top:0}.app-info a{color:var(--ember);text-underline-offset:3px}.app-info code{font-size:.9em}
