:root{--bg:#0a1628;--surface:#1e3a5f;--surface-2:#162d4a;--header-green:#16a34a;--accent:#22c55e;--accent-muted:#15803d;--text:#f8fafc;--text-dim:#94a3b8;--border:#2d4a6b;--danger:#ef4444;--light:#f8fafc;--light-2:#e9eef5;--ink:#0a1628;--pad:16px;--radius:12px;--tap:56px;--header-h:56px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:16px;line-height:1.4;overflow-x:hidden}.label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);font-size:11px;font-weight:700}.app-header{z-index:30;height:var(--header-h);background:var(--bg);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top);position:sticky;top:0}.app-header--green{background:var(--header-green);border-bottom-color:#0000}.app-header--transparent{background:0 0;border-bottom-color:#0000}.app-header--transparent .hdr-btn{color:#fff}.app-header-inner{max-width:640px;height:var(--header-h);grid-template-columns:minmax(var(--tap), max-content) 1fr minmax(var(--tap), max-content);align-items:center;margin:0 auto;padding:0 4px;display:grid}.app-header-inner>:last-child{justify-self:end}.hdr-btn{width:var(--tap);height:var(--tap);color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:26px;line-height:1;display:flex}.app-header--green .hdr-btn{color:#fff}.hdr-btn:active{opacity:.6}.hdr-titlewrap{text-align:center;min-width:0}.hdr-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:18px;font-weight:800;overflow:hidden}.app-header--green .hdr-title{color:#fff}.hdr-sub{letter-spacing:.05em;text-transform:uppercase;color:#ffffffd9;font-size:11px;font-weight:700;display:block}.app-header:not(.app-header--green) .hdr-sub{color:var(--text-dim)}.app-header--green .hdr-sub{color:#bbf7d0}.hdr-action{min-width:var(--tap);height:var(--tap);color:var(--accent);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 10px;font-size:15px;font-weight:700;display:flex}.app-header--green .hdr-action{color:#fff}.drawer-backdrop{z-index:40;background:#0009;animation:.15s fade-in;position:fixed;inset:0}.drawer{z-index:41;background:var(--surface-2);border-right:1px solid var(--border);width:78%;max-width:320px;padding:max(16px, env(safe-area-inset-top)) 0 16px;flex-direction:column;animation:.18s slide-in;display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:8px 0 32px #0006}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-head{letter-spacing:-.02em;padding:8px 20px 16px;font-size:26px;font-weight:900}.drawer-head .bang{color:var(--accent)}.drawer-links{flex-direction:column;display:flex}.drawer-link{min-height:var(--tap);color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-left:4px solid #0000;align-items:center;gap:12px;padding:0 20px;font-size:18px;font-weight:600;display:flex}.drawer-link:active{background:var(--surface)}.drawer-actions{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:auto;padding:16px 20px 0;display:flex}.drawer-action{min-height:var(--tap);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-items:center;padding:0 16px;font-size:16px;font-weight:700;display:flex}.drawer-action.is-danger{color:#ef4444;border-color:#ef4444}.drawer-action:active{opacity:.7}.drawer-link.is-active{border-left-color:var(--accent);color:var(--accent)}.screen{width:100%;max-width:640px;padding:20px 16px max(24px, env(safe-area-inset-bottom));min-height:calc(100dvh - var(--header-h));flex-direction:column;margin:0 auto;display:flex}.screen-intro{color:var(--text-dim);margin:-4px 0 20px;font-size:15px}.btn{width:100%;min-height:var(--tap);border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;border:2px solid #0000;justify-content:center;align-items:center;gap:8px;padding:14px 20px;font-size:18px;font-weight:700;transition:transform 50ms,background-color .1s;display:flex}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.4;cursor:default}.btn:disabled:active{transform:none}.btn-primary{background:var(--accent);color:var(--ink)}.btn-primary:active{background:var(--accent-muted)}.btn-outline{color:var(--text);border-color:var(--border);background:0 0}.btn-outline:active{background:var(--surface)}.btn-outline-white{color:#fff;border-color:#ffffffbf}.btn-outline-white:active{background:#ffffff1f}.btn-danger-outline{color:var(--danger);border-color:var(--danger);background:0 0}.footer{flex-direction:column;gap:12px;margin-top:auto;padding-top:16px;display:flex}.footer-row{gap:12px;margin-top:auto;padding-top:16px;display:flex}.footer-row .btn{flex:1}.home{text-align:center;z-index:1;justify-content:space-between;position:relative}.home-bg{z-index:0;background:linear-gradient(#0a162899,#0a162899),url(/golf-bg.jpg) 50%/cover no-repeat;position:fixed;inset:0}.home-top{padding-top:14vh}.home-title{letter-spacing:-.02em;color:var(--text);margin:0;font-size:48px;font-weight:900}.home-title .bang{color:var(--accent)}.home-tagline{color:var(--accent);margin:12px 0 0;font-size:16px;font-style:italic}.home-actions{flex-direction:column;gap:14px;padding-bottom:6vh;display:flex}.pill-resume{min-height:var(--tap);background:var(--accent);color:var(--ink);cursor:pointer;border:none;border-radius:999px;flex-direction:column;align-self:center;align-items:center;gap:2px;margin-top:28px;padding:10px 22px;font-weight:800;display:inline-flex}.pill-resume .sub{opacity:.8;font-size:12px;font-weight:700}.section{margin-bottom:24px}.section-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.section-hint{color:var(--accent);font-size:13px;font-weight:800}.section-hint.is-warn{color:var(--danger)}.card{padding:var(--pad);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.card+.card{margin-top:14px}.card-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);justify-content:space-between;align-items:baseline;gap:10px;margin:0 0 12px;font-size:11px;font-weight:700;display:flex}.field{flex-direction:column;gap:6px;display:flex}.input{width:100%;min-height:var(--tap);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:16px;font-weight:600}.input:focus{border-color:var(--accent);outline:none}.input::placeholder{color:#5f7591}.input-lg{font-size:20px;font-weight:700}.player-list{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.player-card{padding:var(--pad);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);border-left:4px solid #0000;flex-direction:column;gap:14px;display:flex}.player-card.is-confirmed{border-left-color:var(--accent)}.player-index{max-width:220px}.confirm-toggle{min-height:var(--tap);color:var(--text);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:12px 16px;font-size:16px;font-weight:700}.confirm-toggle:disabled{opacity:.4;cursor:default}.confirm-toggle.is-on{background:var(--accent);color:var(--ink);border-color:var(--accent)}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;gap:6px;padding:6px;display:flex}.segment{min-height:var(--tap);color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;font-size:16px;font-weight:700}.segment.is-active{background:var(--accent);color:var(--ink)}.date-display{min-height:var(--tap);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;align-items:center;padding:0 16px;font-size:18px;font-weight:600;display:flex}.team-list{flex-direction:column;gap:10px;display:flex}.team-row{background:var(--surface);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:8px 8px 8px 16px;display:flex}.team-name{text-overflow:ellipsis;white-space:nowrap;font-size:18px;font-weight:600;overflow:hidden}.ab-switch{flex:none;gap:6px;display:flex}.ab-btn{width:var(--tap);height:var(--tap);color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:10px;font-size:20px;font-weight:800}.ab-btn.is-active{background:var(--accent);color:var(--ink);border-color:var(--accent)}.games-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.game-toggle{min-height:var(--tap);color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:10px 12px;font-size:15px;font-weight:700;display:flex}.game-toggle.is-on{color:var(--ink);background:var(--accent);border-color:var(--accent)}.game-toggle .check{opacity:0;font-weight:900}.game-toggle.is-on .check{opacity:1}.payouts-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.payout{flex-direction:column;gap:6px;display:flex}.money-input{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;align-items:center;gap:4px;padding:0 12px;display:flex}.money-input:focus-within{border-color:var(--accent)}.money-input.is-invalid{border-color:var(--danger)}.money-input .dollar{color:var(--text-dim);font-size:18px;font-weight:700}.money-input input{width:100%;min-height:var(--tap);color:var(--text);background:0 0;border:none;font-size:18px;font-weight:700}.money-input input:focus{outline:none}.stroke-list{flex-direction:column;gap:14px;display:flex}.stroke-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.stroke-name{font-size:20px;font-weight:800}.stroke-hi{color:var(--text-dim);font-size:13px;font-weight:700}.stroke-stats{gap:10px;margin-bottom:14px;display:flex}.stroke-stat{background:var(--surface-2);border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px;display:flex}.stroke-stat-num{color:var(--accent);font-size:28px;font-weight:800}.stroke-rows{flex-direction:column;gap:10px;display:flex}.stroke-row{flex-direction:column;gap:6px;display:flex}.stroke-pill{color:var(--ink);background:var(--accent);border-radius:999px;padding:8px 12px;font-size:15px;font-weight:700;display:inline-block}.stroke-pill.is-none{color:var(--text-dim);background:var(--surface-2)}.pill-row{flex-wrap:wrap;gap:6px;display:flex}.pill-row .stroke-pill{text-align:center;min-width:32px;padding:6px 9px;font-size:14px}.stroke-pill .dbl{vertical-align:super;margin-left:1px;font-size:11px}.se-status{background:var(--surface-2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;max-width:640px;margin:0 auto;padding:10px 16px;font-size:14px;font-weight:600;display:flex}.se-status span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.se-status .mid{text-align:center;color:var(--accent)}.se-status .end{text-align:right}.se-status .k{color:var(--text-dim)}.score-entry{padding-bottom:calc(var(--tap) + 40px)}.se-players{flex-direction:column;gap:12px;display:flex}.se-player{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);overflow:hidden}.se-player-head{width:100%;min-height:var(--tap);background:var(--surface-2);cursor:pointer;text-align:left;border:none;align-items:center;gap:10px;padding:10px 16px;display:flex}.se-player-name{min-width:0;color:var(--accent);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:18px;font-weight:700;overflow:hidden}.se-player-gross{color:var(--text-dim);font-size:15px;font-weight:700}.se-chevron{color:var(--text-dim);font-size:18px;transition:transform .15s}.se-chevron.is-open{transform:rotate(90deg)}.se-player-body{background:var(--surface);color:var(--text);border-top:1px solid var(--border);flex-direction:column;gap:14px;padding:16px;display:flex}.se-score-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.se-score-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);font-size:11px;font-weight:700}.se-score-center{flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.se-score{color:var(--accent);text-align:center;min-width:1.4em;font-size:28px;font-weight:700}.se-net{color:var(--text-dim);font-size:13px;font-weight:600}.se-step{width:var(--tap);height:var(--tap);color:var(--text);border:2px solid var(--border);cursor:pointer;background:0 0;border-radius:12px;flex:none;font-size:26px;font-weight:700}.se-step:active{background:var(--surface-2)}.se-toggles{flex-wrap:wrap;gap:8px;display:flex}.se-toggle{min-width:calc(33.33% - 6px);min-height:48px;color:var(--text-dim);background:var(--surface-2);border:2px solid var(--border);cursor:pointer;border-radius:999px;flex:auto;padding:8px 10px;font-size:14px;font-weight:700}.se-toggle.is-on{color:var(--ink);background:var(--accent);border-color:var(--accent)}.se-bottom{z-index:20;background:var(--bg);border-top:1px solid var(--border);padding:10px 16px max(10px, env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0}.se-bottom-inner{gap:12px;max-width:640px;margin:0 auto;display:flex}.se-bottom-inner .btn{flex:1}.se-bottom-inner .btn-compact{flex:none;padding:14px;font-size:16px}.se-bottom-inner .btn-next{flex:1}.modal-backdrop{z-index:50;background:#000000b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:16px;width:100%;max-width:420px;padding:24px}.modal h2{margin:0 0 8px;font-size:22px}.modal p{color:var(--text-dim);margin:0 0 18px;font-size:15px}.modal-choices{flex-direction:column;gap:10px;display:flex}.modal-cancel{min-height:48px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;margin-top:14px;font-size:15px;font-weight:700}.tabs{gap:8px;margin-bottom:18px;display:flex}.tab{min-height:48px;color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:999px;flex:1;padding:8px 10px;font-size:15px;font-weight:700}.tab.is-active{color:var(--ink);background:var(--accent);border-color:var(--accent)}.mp-status{color:var(--accent);font-size:24px;font-weight:800}.mp-teams{color:var(--text-dim);flex-direction:column;gap:2px;margin:6px 0 14px;font-size:14px;display:flex}.mp-grid{grid-template-columns:repeat(9,1fr);gap:4px;margin-bottom:6px;display:grid}.mp-cell{flex-direction:column;align-items:center;gap:2px;display:flex}.mp-cell-hole{color:var(--text-dim);font-size:11px;font-weight:700}.mp-cell-result{text-align:center;width:100%;color:var(--text-dim);background:var(--surface-2);border-radius:6px;padding:6px 0;font-size:16px;font-weight:800}.mp-cell-result.is-W{background:var(--accent);color:var(--ink)}.mp-cell-result.is-L{background:var(--danger);color:#fff}.mp-cell-result.is-H{background:var(--surface);color:var(--text)}.legend{color:var(--text-dim);margin:8px 0 0;font-size:12px}.table-scroll{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:15px}.table th,.table td{text-align:center;border-bottom:1px solid var(--border);padding:10px 8px}.table thead th{text-transform:uppercase;letter-spacing:.04em;color:var(--ink);background:var(--accent);font-size:11px;font-weight:800}.table tbody tr:nth-child(odd){background:var(--bg)}.table tbody tr:nth-child(2n){background:var(--surface-2)}.table .t-name{text-align:left;font-weight:700}.table .t-num{text-align:right;font-weight:800}.t-num.is-pos{color:var(--accent)}.t-num.is-neg{color:var(--danger)}.scorecard{min-width:340px}.scorecard th,.scorecard td{white-space:nowrap;padding:8px 6px}.scorecard .sc-hole{color:var(--text-dim);text-align:left;font-weight:700}.scorecard .sc-par{color:var(--text-dim);font-size:13px}.scorecard tr.is-summary{font-weight:800}.scorecard tr.is-summary td{background:var(--surface);color:var(--text)}.sc-gross{font-weight:700}.sc-netsm{color:var(--text-dim);font-size:11px;font-weight:600;display:block}.game-select{width:100%;min-height:var(--tap);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;padding:0 14px;font-size:16px;font-weight:700}.game-holes{flex-direction:column;gap:8px;display:flex}.game-hole{background:var(--surface-2);border-radius:8px;align-items:center;gap:12px;padding:10px 14px;font-size:15px;display:flex}.game-hole .gh-num{min-width:64px;color:var(--text-dim);font-weight:800}.game-hole .gh-val{font-weight:700}.game-hole .gh-val.is-dim{color:var(--text-dim);font-weight:600}.snake-history{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.snake-history li{align-items:center;gap:10px;font-size:16px;display:flex}.snake-hole{color:var(--text-dim);min-width:70px;font-weight:700}.snake-arrow{color:var(--accent);font-weight:900}.snake-holder{font-weight:800}.settle-subhead{text-align:center;color:var(--text-dim);margin:-4px 0 2px;font-size:14px;font-style:italic}.settle-course{text-align:center;margin:2px 0 20px}.settle-list{flex-direction:column;gap:10px;display:flex}.settle-row{background:var(--surface-2);border-radius:10px;padding:12px}.settle-row-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.settle-name{margin-right:auto;font-size:18px;font-weight:800}.settle-gross{color:var(--text-dim);background:var(--surface);border-radius:999px;padding:3px 9px;font-size:13px;font-weight:700}.settle-net{font-size:20px;font-weight:800}.settle-net.is-pos{color:var(--accent)}.settle-net.is-neg{color:var(--danger)}.settle-breakdown{color:var(--text-dim);flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:14px;font-weight:600;display:flex}.pay-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.pay-list li{background:var(--surface-2);border-left:4px solid var(--accent);border-radius:8px;padding:12px 14px;font-size:17px;font-weight:700}.history-list{flex-direction:column;gap:12px;display:flex}.history-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.history-head{width:100%;min-height:var(--tap);text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.history-course{text-overflow:ellipsis;white-space:nowrap;font-size:18px;font-weight:700;overflow:hidden}.history-right{flex:none;align-items:center;gap:12px;display:flex}.history-date{color:var(--text-dim);font-size:14px}.history-caret{color:var(--text-dim);font-size:14px;transition:transform .15s}.history-caret.is-open{transform:rotate(180deg)}.history-detail{border-top:1px solid var(--border);flex-direction:column;gap:14px;padding:4px 16px 16px;display:flex}.mp-status.sm{padding-top:12px;font-size:20px}.hbh-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin:4px 0 10px;font-size:11px;font-weight:700}.hbh-hole{background:var(--surface-2);border-radius:10px;margin-bottom:8px;padding:10px 12px}.hbh-head{align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.hbh-num{font-size:16px;font-weight:800}.hbh-par{color:var(--text-dim);font-size:13px;font-weight:600}.hbh-gross{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px;display:grid}.hbh-cell{background:var(--surface);border-radius:6px;flex-direction:column;align-items:center;gap:1px;padding:4px 0;display:flex}.hbh-name{color:var(--text-dim);font-size:11px;font-weight:700}.hbh-score{font-size:18px;font-weight:800}.hbh-events{flex-wrap:wrap;gap:5px;margin-bottom:8px;display:flex}.hbh-event{color:var(--text);background:var(--surface);border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700}.hbh-money{grid-template-columns:repeat(2,1fr);gap:4px 10px;display:grid}.hbh-mcell{color:var(--text-dim);font-size:13px;font-weight:700}.hbh-mcell.is-pos{color:var(--accent)}.hbh-mcell.is-neg{color:var(--danger)}.hbh-note{color:var(--text-dim);margin:8px 0 0;font-size:12px}.empty{text-align:center;color:var(--text-dim);margin-top:40px;font-size:16px}.muted{color:var(--text-dim);font-size:15px}.placeholder{text-align:center;justify-content:center;align-items:center;gap:16px}.placeholder h1{margin:0;font-size:24px}.placeholder p{max-width:32ch;color:var(--text-dim);margin:0}
