:root,[data-theme=default],[data-theme=flame]{--bg: #120c09;--card: #1c1410;--card-border: #2d1e18;--card-hover: #261b15;--text: #fdf6f2;--muted: #a68f84;--muted-light: #42332c;--accent: #ff6b00;--accent-hover: #ff8533;--accent-text: #ffffff;--secondary-accent: #ffa347;--highlight: #ff5500;--danger: #ef4444;--good: #10b981;--shadow: 0 8px 24px rgba(0, 0, 0, .5);--radius: 14px;--radius-sm: 8px;--radius-lg: 18px;--key-bg: #18100d;--key-border: #2d1e18;--key-border-top: #42332c;--key-shadow: #0b0705;--key-active: #ff6b00;--key-active-text: #ffffff;--btn-subtle: #241914;--btn-subtle-border: #38271f;--row-bg: #18100d}[data-theme=forest]{--bg: #0d1510;--card: #15241b;--card-border: #233d2e;--card-hover: #1c3024;--text: #f0f7f2;--muted: #94b09e;--muted-light: #2c4235;--accent: #10b981;--accent-hover: #34d399;--accent-text: #ffffff;--secondary-accent: #34d399;--highlight: #059669;--danger: #ef4444;--good: #10b981;--shadow: 0 8px 24px rgba(0, 0, 0, .5);--radius: 14px;--radius-sm: 8px;--radius-lg: 18px;--key-bg: #121c15;--key-border: #233d2e;--key-border-top: #365e47;--key-shadow: #070d09;--key-active: #10b981;--key-active-text: #ffffff;--btn-subtle: #1c2e23;--btn-subtle-border: #2a4736;--row-bg: #121c15}[data-theme=ocean]{--bg: #09101a;--card: #101c2e;--card-border: #1d304e;--card-hover: #15253d;--text: #f0f6fc;--muted: #8ca3c2;--muted-light: #253957;--accent: #3877d3;--accent-hover: #5a94e8;--accent-text: #ffffff;--secondary-accent: #60a5fa;--highlight: #2563eb;--danger: #ef4444;--good: #10b981;--shadow: 0 8px 24px rgba(0, 0, 0, .5);--radius: 14px;--radius-sm: 8px;--radius-lg: 18px;--key-bg: #0e1726;--key-border: #1d304e;--key-border-top: #2c4774;--key-shadow: #050a12;--key-active: #3877d3;--key-active-text: #ffffff;--btn-subtle: #17263e;--btn-subtle-border: #23395c;--row-bg: #0e1726}[data-theme=blackout]{--bg: #080808;--card: #141414;--card-border: #282828;--card-hover: #1f1f1f;--text: #f5f5f5;--muted: #888888;--muted-light: #333333;--accent: #ff2a2a;--accent-hover: #ff5555;--accent-text: #ffffff;--secondary-accent: #e5e5e5;--highlight: #cc0000;--danger: #ff2a2a;--good: #22c55e;--shadow: 0 8px 24px rgba(0, 0, 0, .7);--radius: 14px;--radius-sm: 8px;--radius-lg: 18px;--key-bg: #0f0f0f;--key-border: #282828;--key-border-top: #3d3d3d;--key-shadow: #040404;--key-active: #ff2a2a;--key-active-text: #ffffff;--btn-subtle: #202020;--btn-subtle-border: #353535;--row-bg: #0f0f0f}[data-theme=cyber]{--bg: #0e0917;--card: #181026;--card-border: #2d1d47;--card-hover: #221638;--text: #f9f5ff;--muted: #a792c9;--muted-light: #3e2861;--accent: #a855f7;--accent-hover: #c084fc;--accent-text: #ffffff;--secondary-accent: #38bdf8;--highlight: #9333ea;--danger: #f43f5e;--good: #10b981;--shadow: 0 8px 24px rgba(0, 0, 0, .55);--radius: 14px;--radius-sm: 8px;--radius-lg: 18px;--key-bg: #140d21;--key-border: #2d1d47;--key-border-top: #472f6e;--key-shadow: #08040d;--key-active: #a855f7;--key-active-text: #ffffff;--btn-subtle: #25183d;--btn-subtle-border: #3b2760;--row-bg: #140d21}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{height:100%;min-height:100dvh;background:var(--bg);color:var(--text);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:contain}#appRoot{display:flex;flex-direction:column;min-height:100dvh;max-width:620px;margin:0 auto;position:relative;padding-bottom:env(safe-area-inset-bottom,20px)}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg);border-bottom:1px solid var(--card-border);position:sticky;top:0;z-index:40}.brand-group{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.brand-icon-wrapper{width:34px;height:34px;border-radius:8px;background:var(--accent);display:flex;align-items:center;justify-content:center;overflow:hidden;color:#fff;flex-shrink:0}.brand-icon-img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.brand-text-group{display:flex;flex-direction:column}.brand-title{font-family:Outfit,sans-serif;font-size:1.25rem;font-weight:800;letter-spacing:-.02em;color:var(--text);line-height:1.1}.brand-subtitle{font-size:.72rem;color:var(--muted);font-weight:500}.header-actions{display:flex;align-items:center;gap:8px}.header-btn{background:var(--btn-subtle);border:1px solid var(--btn-subtle-border);color:var(--text);padding:6px 10px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;display:flex;align-items:center;gap:6px;cursor:pointer;transition:all .15s ease}.header-btn:hover{background:var(--card-hover);border-color:var(--muted);color:var(--text)}.header-btn:active{transform:scale(.96)}.main-content{flex:1;padding:16px;display:flex;flex-direction:column;gap:14px}.card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-title{font-family:Outfit,sans-serif;font-size:1.1rem;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}.card-subtitle{font-size:.82rem;color:var(--muted);margin-top:-4px;margin-bottom:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border-radius:var(--radius-sm);font-size:.92rem;font-weight:700;font-family:Outfit,sans-serif;border:1px solid transparent;cursor:pointer;transition:all .15s ease;text-decoration:none;-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:var(--btn-subtle);border:1px solid var(--btn-subtle-border);color:var(--text)}.btn-secondary:hover{background:var(--card-hover);border-color:var(--muted)}.btn-large{padding:14px 20px;font-size:1rem;border-radius:var(--radius);width:100%}.btn-ghost{background:transparent;color:var(--muted);border:1px solid transparent}.btn-ghost:hover{background:var(--btn-subtle);color:var(--text)}.btn-danger{background:#ef44441f;border:1px solid rgba(239,68,68,.35);color:#ff6b6b}.btn-danger:hover{background:#ef4444;color:#fff}.players-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.player-row{display:flex;align-items:center;gap:10px;background:var(--row-bg);border:1px solid var(--card-border);border-radius:var(--radius-sm);padding:8px 12px;transition:background-color .15s ease,border-color .15s ease;touch-action:pan-y}.player-row.dragged{opacity:.4}.player-row.drag-over{border-color:var(--accent);background:var(--card-hover)}.drag-handle{color:var(--muted);cursor:grab;display:flex;align-items:center;padding:4px;-webkit-user-select:none;user-select:none}.drag-handle:active{cursor:grabbing}.player-color-btn{width:26px;height:26px;border-radius:50%;border:2px solid rgba(255,255,255,.2);cursor:pointer;flex-shrink:0;transition:transform .15s ease}.player-color-btn:hover{transform:scale(1.1)}.player-input-wrapper{flex:1}.player-name-input{width:100%;background:transparent;border:none;color:var(--text);font-size:.98rem;font-weight:600;outline:none;padding:6px 0}.player-name-input::placeholder{color:var(--muted);font-weight:400}.player-remove-btn{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;transition:color .15s ease}.player-remove-btn:hover{color:var(--danger)}.player-actions-row{display:flex;gap:8px;margin-bottom:12px}.player-actions-row .btn{flex:1}.recent-players-box{margin-top:10px;padding-top:10px;border-top:1px solid var(--card-border)}.recent-players-title{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700;margin-bottom:8px}.recent-players-chips{display:flex;flex-wrap:wrap;gap:6px}.player-chip{background:var(--btn-subtle);border:1px solid var(--btn-subtle-border);border-radius:16px;padding:4px 10px;font-size:.8rem;font-weight:600;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s ease}.player-chip:hover{background:var(--card-hover);border-color:var(--muted)}.player-chip.active{background:var(--card-hover);border-color:var(--accent);color:var(--text);font-weight:700}.course-screen-header{display:flex;flex-direction:column;gap:10px}.course-tabs-bar{display:flex;background:var(--btn-subtle);border:1px solid var(--btn-subtle-border);border-radius:var(--radius-sm);padding:3px;gap:4px}.course-tab-btn{flex:1;background:transparent;border:none;color:var(--muted);padding:7px 10px;border-radius:6px;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .15s ease;text-align:center}.course-tab-btn.active{background:var(--card);color:var(--text);border:1px solid var(--card-border)}.search-box-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:12px;color:var(--muted);pointer-events:none}.search-input{width:100%;background:var(--row-bg);border:1px solid var(--card-border);border-radius:var(--radius-sm);padding:10px 14px 10px 38px;color:var(--text);font-size:.92rem;font-weight:500;outline:none;transition:border-color .15s ease}.search-input:focus{border-color:var(--accent)}.search-clear-btn{position:absolute;right:12px;background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:1.1rem;padding:4px}.filters-row{display:flex;gap:8px;flex-wrap:wrap}.select-filter{flex:1;min-width:120px;background:var(--row-bg);border:1px solid var(--card-border);border-radius:var(--radius-sm);color:var(--text);padding:8px 10px;font-size:.85rem;font-weight:600;outline:none;cursor:pointer}.select-filter:focus{border-color:var(--accent)}.btn-gps-nearby{background:var(--btn-subtle);border:1px solid var(--btn-subtle-border);color:var(--text);padding:9px 12px;border-radius:var(--radius-sm);font-size:.85rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .15s ease;width:100%}.btn-gps-nearby:hover{background:var(--card-hover);border-color:var(--muted)}.btn-gps-nearby:disabled{opacity:.6;cursor:not-allowed}.courses-list{display:flex;flex-direction:column;gap:10px}.course-card-item{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:14px;cursor:pointer;transition:border-color .15s ease;position:relative}.course-card-item:hover{border-color:var(--muted)}.course-card-item.selected{border-color:var(--accent)}.course-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:4px}.course-item-title{font-family:Outfit,sans-serif;font-size:1.05rem;font-weight:700;color:var(--text);line-height:1.25}.course-distance-badge{background:var(--btn-subtle);border:1px solid var(--btn-subtle-border);color:var(--good);font-size:.75rem;font-weight:700;padding:2px 7px;border-radius:6px;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.course-item-meta{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.8rem;margin-bottom:8px}.course-metrics-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.metric-pill{background:var(--btn-subtle);border:1px solid var(--btn-subtle-border);border-radius:6px;padding:3px 8px;font-size:.75rem;font-weight:700;color:var(--text);display:inline-flex;align-items:center;gap:4px}.metric-pill.highlight{color:var(--accent)}.course-badges-row{display:flex;gap:6px;flex-wrap:wrap}.course-tag{font-size:.72rem;padding:2px 6px;border-radius:4px;background:var(--row-bg);color:var(--muted);border:1px solid var(--card-border)}.course-tag.verified{color:var(--good);border-color:var(--good)}.course-attribution-banner{font-size:.75rem;color:var(--muted);text-align:center;padding:10px;margin-top:8px}.course-attribution-banner a{color:var(--accent);text-decoration:none;font-weight:600}body.in-game{height:100%!important;height:100vh!important;height:100dvh!important;max-height:100%!important;max-height:100vh!important;max-height:100dvh!important;overflow:hidden!important;margin:0!important;padding:0!important}body.in-game .app-header,body.in-game #appFooter,body.in-game #setup{display:none!important}body.in-game #game.screen,body.in-game .game-screen,#game.screen.game-screen{display:flex!important;flex-direction:column!important;position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;max-width:620px!important;height:100%!important;height:100vh!important;height:100dvh!important;max-height:100%!important;max-height:100vh!important;max-height:100dvh!important;padding:0!important;margin:0 auto!important;box-sizing:border-box!important;overflow:hidden!important;gap:0!important;background:var(--bg)!important;z-index:20!important}.game-hole-header{flex:0 0 auto;background:var(--card);border-bottom:1px solid var(--card-border);padding:10px 14px 8px;display:flex;flex-direction:column;gap:8px;z-index:40}.game-header-top-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.btn-exit-game,.btn-scorecard-header{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--btn-subtle-border);background:var(--btn-subtle);color:var(--muted);width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;flex-shrink:0}.btn-exit-game:hover{background:#ef444426;color:var(--danger);border-color:#ef444466}.btn-scorecard-header:hover{background:var(--card-hover);border-color:var(--accent);color:var(--accent)}.game-header-center-info{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;flex:1}.game-hole-title{margin:0;font-family:Outfit,sans-serif;font-size:1.25rem;font-weight:800;color:var(--text);line-height:1.1;letter-spacing:-.02em}.game-course-subtitle{display:flex;align-items:center;justify-content:center;gap:6px;font-size:.78rem;color:var(--muted);font-weight:600;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.game-header-par-badge{background:var(--btn-subtle);border:1px solid var(--btn-subtle-border);border-radius:4px;padding:1px 5px;font-size:.72rem;font-weight:700;color:var(--text)}.game-header-dist-badge{color:var(--muted);font-size:.72rem}.game-hole-carousel-row{display:flex;align-items:center;gap:4px;width:100%}.btn-hole-nav-arrow{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--btn-subtle-border);background:var(--btn-subtle);color:var(--text);width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;font-weight:800;line-height:1;transition:all .15s ease;flex-shrink:0}.btn-hole-nav-arrow:hover:not(:disabled){background:var(--card-hover);border-color:var(--muted)}.btn-hole-nav-arrow:disabled{opacity:.25;cursor:not-allowed}.game-hole-pills-list{display:flex;gap:4px;overflow-x:auto;padding:2px 0;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:1}.game-hole-pills-list::-webkit-scrollbar{display:none}.game-hole-pill{min-width:30px;height:30px;border-radius:6px;background:var(--row-bg);border:1px solid var(--card-border);color:var(--muted);font-family:Outfit,sans-serif;font-size:.82rem;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.game-hole-pill:hover{border-color:var(--muted);color:var(--text)}.game-hole-pill.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.game-hole-pill.completed{border-color:var(--good);color:var(--good)}.game-tee-honors-strip{display:flex;align-items:center;gap:6px;font-size:.76rem;font-weight:700;color:var(--muted);padding:3px 0 0}.tee-honors-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.game-center-board{flex:1 1 0%;min-height:0;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:8px;-webkit-overflow-scrolling:touch}.game-players-list{display:flex;flex-direction:column;gap:8px}.game-player-card{display:flex;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-sm);padding:8px 12px;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.game-player-card:hover{border-color:var(--muted)}.game-player-card.active-turn{border-color:var(--accent);background:var(--card-hover)}.game-player-card-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.game-player-order-badge{font-size:.78rem;font-weight:800;color:var(--muted);min-width:14px}.game-player-color-avatar{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:.95rem;flex-shrink:0}.game-player-info{display:flex;flex-direction:column;min-width:0;flex:1}.game-player-name-row{display:flex;align-items:center;gap:6px;min-width:0}.game-player-name{font-family:Outfit,sans-serif;font-size:1rem;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-player-turn-tag{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:1px 5px;border-radius:4px;border:1px solid currentColor;line-height:1.2}.game-player-stats-subtext{display:flex;align-items:center;gap:6px;font-size:.76rem;color:var(--muted);font-weight:600;margin-top:1px}.game-vs-par-badge{font-size:.74rem;font-weight:800;padding:0 4px;border-radius:3px;background:var(--btn-subtle);border:1px solid var(--btn-subtle-border)}.game-vs-par-badge.under-par{color:var(--good);border-color:#10b98166}.game-vs-par-badge.over-par{color:var(--danger);border-color:#ef444466}.game-vs-par-badge.even-par{color:var(--muted)}.game-player-card-right{flex-shrink:0;margin-left:10px}.game-throw-box{width:44px;height:44px;border-radius:8px;border:1px solid var(--card-border);background:var(--row-bg);display:flex;align-items:center;justify-content:center;font-family:Outfit,sans-serif;font-size:1.4rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--muted);transition:all .15s ease}.game-throw-box.scored{color:var(--text);border-color:var(--btn-subtle-border);background:var(--btn-subtle)}.game-throw-box.active-box{border-color:var(--accent);color:var(--text)}.game-throw-box.score-ace{border-color:#fbbf24b3!important;background:#fbbf2426!important;color:#fbbf24!important}.game-throw-box.score-eagle{border-color:#60a5fab3!important;background:#60a5fa26!important;color:#60a5fa!important}.game-throw-box.score-birdie{border-color:#34d399b3!important;background:#34d39926!important;color:#34d399!important}.game-throw-box.score-bogey{border-color:#fb923c99!important;background:#fb923c1f!important;color:#fb923c!important}.game-throw-box.score-double-bogey{border-color:#f87171b3!important;background:#f8717126!important;color:#f87171!important}.game-throw-box.score-triple-plus{border-color:#ef4444b3!important;background:#ef44442e!important;color:#ef4444!important}td.score-ace{color:#fbbf24!important;font-weight:800}td.score-eagle{color:#60a5fa!important;font-weight:800}td.score-birdie{color:#34d399!important;font-weight:800}td.score-par{color:var(--text)!important;font-weight:700}td.score-bogey{color:#fb923c!important;font-weight:700}td.score-double-bogey{color:#f87171!important;font-weight:800}td.score-triple-plus{color:#ef4444!important;font-weight:800}.score-mode-switch-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--btn-subtle);border:1px solid var(--btn-subtle-border);color:var(--accent);font-family:Outfit,sans-serif;font-size:.72rem;font-weight:800;padding:2px 8px;border-radius:999px;cursor:pointer;transition:all .15s ease;margin-left:4px}.score-mode-switch-btn:hover{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.game-status-hint{font-size:.76rem;color:var(--muted);text-align:center;margin-top:auto;padding-top:4px}.game-keypad-card{flex:0 0 auto;margin:0!important;padding:10px 12px 14px;background:var(--card);border-radius:0!important;border:none;border-top:1px solid var(--card-border);z-index:50}.keypad-grid,.keypad-grid.relative-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.key{padding:12px 0;min-height:48px;border-radius:8px;border:1px solid var(--key-border, var(--card-border));border-top:1px solid var(--key-border-top, var(--muted-light));background:var(--key-bg, var(--row-bg));font-family:Outfit,sans-serif;font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums;cursor:pointer;color:var(--text);position:relative;box-shadow:0 3px 0 var(--key-shadow, #000);transition:transform .08s ease,background-color .12s,box-shadow .08s;-webkit-user-select:none;user-select:none}.key-relative{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 2px;min-height:52px;gap:2px}.key-rel-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;opacity:.85;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:95%}.key-rel-badge{font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.key-hio{color:#fbbf24}.key-eagle{color:#60a5fa}.key-birdie{color:#34d399}.key-par{color:var(--text)}.key-bogey{color:#fb923c}.key-double{color:#f87171}.key-triple{color:#ef4444}.key-custom{color:var(--accent)}.key:active{transform:translateY(2px);box-shadow:0 1px 0 var(--key-shadow, #000);background:var(--accent);color:var(--accent-text)!important}.key.active{background:var(--accent);color:var(--accent-text)!important;border-color:var(--accent);box-shadow:0 3px #0009}.key.active .key-rel-label,.key.active .key-rel-badge{color:var(--accent-text)!important}.keypad-bottom-row{display:flex;gap:6px;margin-top:8px;width:100%}.btn-stepper{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--btn-subtle-border);background:var(--btn-subtle);color:var(--text);min-width:52px;height:46px;border-radius:8px;font-family:Outfit,sans-serif;font-size:1.4rem;font-weight:800;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 0 var(--key-shadow, #000);transition:transform .08s ease,box-shadow .08s ease;-webkit-user-select:none;user-select:none}.btn-stepper:active{transform:translateY(2px);box-shadow:0 1px 0 var(--key-shadow, #000)}.btn-next-action{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;height:46px;border-radius:8px;font-family:Outfit,sans-serif;font-size:.95rem;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;border:none;box-shadow:0 3px 0 var(--key-shadow, #000);transition:transform .08s ease,box-shadow .08s ease,filter .15s ease;-webkit-user-select:none;user-select:none}.btn-next-action.primary{background:var(--accent);color:var(--accent-text)}.btn-next-action.primary:hover{filter:brightness(1.08)}.btn-next-action.secondary{background:var(--btn-subtle);color:var(--text);border:1px solid var(--btn-subtle-border)}.btn-next-action:active{transform:translateY(2px);box-shadow:0 1px 0 var(--key-shadow, #000)}.custom-score-modal{max-width:380px!important}.custom-score-3x3-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.custom-score-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.custom-score-grid-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--row-bg);border:1px solid var(--card-border);color:var(--text);font-family:Outfit,sans-serif;font-size:1.25rem;font-weight:800;padding:16px 0;border-radius:10px;cursor:pointer;box-shadow:0 3px 0 var(--key-shadow, #000);transition:transform .08s ease,background-color .12s ease}.custom-score-grid-btn:hover{background:var(--btn-subtle)}.custom-score-grid-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--key-shadow, #000)}.custom-score-grid-btn.selected{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px}.modal-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow);overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--card-border)}.modal-header h2,.modal-header h3{font-family:Outfit,sans-serif;font-size:1.15rem;font-weight:800;color:var(--text)}.modal-close-btn{background:transparent;border:none;color:var(--muted);font-size:1.4rem;cursor:pointer;line-height:1;padding:4px;border-radius:4px}.modal-close-btn:hover{color:var(--text)}.modal-body{padding:18px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:14px}.modal-actions{padding:14px 18px;border-top:1px solid var(--card-border);display:flex;gap:8px;justify-content:flex-end}.scorecard-table-wrapper{overflow-x:auto;border-radius:var(--radius-sm);border:1px solid var(--card-border);background:var(--row-bg)}.scorecard-table{width:100%;border-collapse:collapse;font-size:.85rem;text-align:center}.scorecard-table th,.scorecard-table td{padding:8px 6px;border-bottom:1px solid var(--card-border);border-right:1px solid var(--card-border);white-space:nowrap}.scorecard-table th:last-child,.scorecard-table td:last-child{border-right:none}.scorecard-table tr:last-child td{border-bottom:none}.scorecard-table thead th{background:var(--card);font-weight:700;color:var(--muted);font-size:.75rem;text-transform:uppercase}.scorecard-player-name-cell{text-align:left;font-weight:700;color:var(--text);display:flex;align-items:center;gap:6px;padding-left:10px}.scorecard-cell-interactive{cursor:pointer;font-weight:800;font-family:Outfit,sans-serif;transition:background-color .15s ease}.scorecard-cell-interactive:hover{background:var(--card-hover)}.scorecard-cell-interactive.active-hole{box-shadow:inset 0 0 0 1px var(--accent)}.scorecard-total-col{background:var(--btn-subtle);font-weight:800}.podium-container{display:flex;align-items:flex-end;justify-content:center;gap:10px;padding:12px 0 18px}.podium-pillar{display:flex;flex-direction:column;align-items:center;flex:1;max-width:120px}.podium-avatar{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem;color:#fff;margin-bottom:6px}.podium-name{font-size:.85rem;font-weight:700;color:var(--text);margin-bottom:2px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.podium-score{font-family:Outfit,sans-serif;font-size:1rem;font-weight:800;color:var(--accent);margin-bottom:6px}.podium-stand{width:100%;border-radius:8px 8px 0 0;display:flex;align-items:center;justify-content:center;font-family:Outfit,sans-serif;font-weight:800;color:#fff}.podium-stand.first{height:80px;background:#d97706;font-size:1.6rem}.podium-stand.second{height:60px;background:#6b7280;font-size:1.3rem}.podium-stand.third{height:44px;background:#92400e;font-size:1.1rem}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.stat-box{background:var(--row-bg);border:1px solid var(--card-border);border-radius:var(--radius-sm);padding:8px;text-align:center}.stat-box-value{font-family:Outfit,sans-serif;font-size:1.2rem;font-weight:800;color:var(--text)}.stat-box-label{font-size:.7rem;color:var(--muted);font-weight:600;text-transform:uppercase}.saved-games-list{display:flex;flex-direction:column;gap:8px}.saved-game-item{background:var(--row-bg);border:1px solid var(--card-border);border-radius:var(--radius-sm);padding:12px;transition:border-color .15s ease}.saved-game-item:hover{border-color:var(--muted)}.saved-game-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.saved-game-course-name{font-family:Outfit,sans-serif;font-size:1rem;font-weight:700;color:var(--text)}.saved-game-date{font-size:.75rem;color:var(--muted)}.saved-game-meta-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.saved-players-chips-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.saved-player-tag{background:var(--card);border:1px solid var(--card-border);border-radius:4px;padding:2px 7px;font-size:.75rem;font-weight:600;display:inline-flex;align-items:center;gap:6px}.saved-game-actions-row{display:flex;gap:6px}.saved-game-actions-row .btn{flex:1;padding:7px 10px;font-size:.82rem}.app-footer{padding:16px;text-align:center;color:var(--muted);font-size:.78rem;border-top:1px solid var(--card-border);margin-top:auto}.app-footer a{color:var(--accent);text-decoration:none;font-weight:600}.color-picker-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.color-swatch-circle{width:42px;height:42px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s ease}.color-swatch-circle:hover{transform:scale(1.08)}.color-swatch-circle.selected{border-color:#fff}.swatch-dot{width:12px;height:12px;border-radius:50%;display:inline-block}.swatch-dot.mini{width:8px;height:8px}.putting-challenge-card{position:relative;border-radius:var(--radius-lg);background:linear-gradient(135deg,#1c1511,#281c15,#15110e);border:1px solid rgba(255,107,0,.28);box-shadow:0 4px 20px #0006,0 0 1px #ff6b0059;margin-bottom:16px;overflow:hidden;cursor:pointer;transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s ease,border-color .2s ease;-webkit-user-select:none;user-select:none}.putting-challenge-card:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 8px 30px #ff6b0033,0 0 0 1px var(--accent)}.putting-challenge-card:active{transform:translateY(0)}.putting-card-backdrop-glow{position:absolute;top:-40px;right:-40px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,#ff6b0038,#ff6b0000 70%);pointer-events:none;z-index:1}.putting-card-inner{position:relative;z-index:2;padding:16px 18px;display:flex;flex-direction:column;gap:12px}.putting-card-badge-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.putting-badge-tag{display:inline-flex;align-items:center;gap:6px;font-family:Outfit,sans-serif;font-size:.72rem;font-weight:800;letter-spacing:.08em;color:var(--accent);text-transform:uppercase;background:#ff6b001f;border:1px solid rgba(255,107,0,.3);padding:3px 8px;border-radius:999px}.putting-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:pulseGlow 2s infinite ease-in-out}@keyframes pulseGlow{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.putting-record-pill{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;font-weight:700;color:#fbbf24;background:#fbbf241f;border:1px solid rgba(251,191,36,.3);padding:2px 8px;border-radius:999px}.putting-card-main{display:flex;align-items:flex-start;gap:14px}.putting-card-icon-col{flex-shrink:0}.putting-visual-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#ff6b0040,#ff8c001a);border:1px solid rgba(255,107,0,.4);display:flex;align-items:center;justify-content:center;color:var(--accent);position:relative;box-shadow:0 4px 12px #ff6b0026}.putting-icon-disc{position:absolute;bottom:6px;right:6px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid #1c1511;box-shadow:0 0 6px #ff6b0099}.putting-card-text{flex:1;min-width:0}.putting-card-title{margin:0 0 4px;font-family:Outfit,sans-serif;font-size:1.12rem;font-weight:800;color:#fff;line-height:1.25}.putting-card-desc{margin:0 0 10px;font-size:.84rem;color:var(--muted);line-height:1.45}.putting-features-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.putting-chip{display:inline-flex;align-items:center;gap:5px;font-size:.74rem;font-weight:700;color:var(--text);background:var(--row-bg);border:1px solid var(--card-border);padding:2px 8px;border-radius:6px}.putting-card-cta-row{display:flex;justify-content:flex-end;margin-top:2px}.putting-play-cta-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(135deg,var(--accent) 0%,#ff8533 100%);color:#fff;border:none;padding:9px 16px;border-radius:8px;font-family:Outfit,sans-serif;font-size:.9rem;font-weight:800;display:inline-flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 4px 14px #ff6b0059;transition:transform .12s ease,filter .15s ease,box-shadow .15s ease}.putting-play-cta-btn:hover{filter:brightness(1.1);box-shadow:0 6px 18px #ff6b0080}.putting-play-cta-btn:active{transform:scale(.98)}.putting-play-cta-btn .play-arrow{transition:transform .15s ease}.putting-challenge-card:hover .play-arrow{transform:translate(3px)}.putting-screen-container{display:flex;flex-direction:column;width:100%;max-width:620px;margin:0 auto;padding:8px 12px 24px;gap:10px;box-sizing:border-box}.putting-header-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:8px 12px}.btn-exit-putting{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--btn-subtle-border);background:var(--btn-subtle);color:var(--text);border-radius:8px;padding:6px 10px;font-size:.82rem;font-weight:600;display:flex;align-items:center;gap:6px;cursor:pointer;transition:all .15s ease}.btn-exit-putting:hover{background:var(--card-hover);border-color:var(--card-border)}.putting-header-center{text-align:center;flex:1;min-width:0}.putting-title{margin:0;font-size:1.05rem;font-weight:800;font-family:Outfit,sans-serif;color:var(--text);line-height:1.1}.putting-subtitle{font-size:.76rem;color:var(--muted)}.putting-streak-counters{display:flex;align-items:center;gap:6px}.streak-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 10px;border-radius:8px;background:var(--row-bg);border:1px solid var(--card-border);min-width:44px}.streak-badge.active-streak{background:#f9731626;border-color:var(--accent)}.streak-num{font-size:1.15rem;font-weight:800;font-family:Outfit,sans-serif;color:var(--accent);line-height:1}.streak-lbl{font-size:.62rem;font-weight:700;letter-spacing:.05em;color:var(--muted)}.high-streak-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 8px;border-radius:8px;background:var(--row-bg);border:1px solid var(--card-border);min-width:36px}.high-streak-num{font-size:.95rem;font-weight:800;font-family:Outfit,sans-serif;color:var(--text);line-height:1}.high-streak-lbl{font-size:.58rem;font-weight:700;color:var(--muted)}.putting-wind-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--row-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:8px 14px}.wind-compass-widget{display:flex;align-items:center;gap:10px}.wind-arrow-rotator{width:32px;height:32px;border-radius:50%;background:var(--card);border:1px solid var(--card-border);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:1.15rem;font-weight:800;transition:transform .4s cubic-bezier(.34,1.56,.64,1);flex-shrink:0}.wind-data-text{display:flex;flex-direction:column}.wind-speed-main{font-size:.95rem;color:var(--text);font-weight:600}.wind-speed-main strong{color:var(--accent);font-size:1.05rem}.wind-dir-desc{font-size:.72rem;color:var(--muted)}.putting-distance-badge{display:flex;flex-direction:column;align-items:flex-end}.dist-val{font-size:.95rem;font-weight:700;color:var(--text)}.dist-c1{font-size:.7rem;color:var(--muted)}.putting-field-wrapper{position:relative;width:100%;background:#0d1611;border:1px solid var(--card-border);border-radius:var(--radius-lg);overflow:hidden;touch-action:none;box-shadow:var(--shadow)}.putting-canvas-container{position:relative;width:100%;height:560px;max-height:72vh;min-height:480px}.putting-three-mount{position:absolute;top:0;left:0;width:100%;height:100%;display:block}.putting-drag-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:block;cursor:crosshair;-webkit-user-select:none;user-select:none;touch-action:none;z-index:5}.putting-tilt-indicator{position:absolute;top:14px;left:14px;pointer-events:none}.tilt-badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:.78rem;font-weight:700;letter-spacing:.03em;background:#000000bf;border:1px solid rgba(255,255,255,.2);color:#fff}.tilt-badge.hyzer{border-color:#38bdf8;color:#38bdf8}.tilt-badge.anhyzer{border-color:#f43f5e;color:#f43f5e}.tilt-badge.flat{border-color:var(--accent);color:var(--accent)}.putting-result-banner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:10px 20px;border-radius:8px;font-size:1rem;font-weight:800;font-family:Outfit,sans-serif;pointer-events:none;text-align:center;box-shadow:0 4px 14px #0009;animation:bannerPop .25s cubic-bezier(.34,1.56,.64,1)}@keyframes bannerPop{0%{transform:translate(-50%,-50%) scale(.85);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.putting-result-banner.success{background:#22c55ef2;color:#fff;border:1px solid #16a34a}.putting-result-banner.miss{background:#ef4444eb;color:#fff;border:1px solid #dc2626}.putting-swipe-hint{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:#000000b8;border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:6px 14px;color:var(--muted);font-size:.75rem;pointer-events:none;white-space:nowrap;z-index:10}.swipe-arrow-anim{color:var(--accent);font-weight:800;animation:swipeBounce 1.2s infinite ease-in-out}@keyframes swipeBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.putting-footer-stats{display:flex;align-items:center;justify-content:space-around;background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);padding:8px 12px}.putting-stat-item{display:flex;flex-direction:column;align-items:center}.putting-stat-item .stat-label{font-size:.68rem;font-weight:700;color:var(--muted);letter-spacing:.04em}.putting-stat-item .stat-val{font-size:.95rem;font-weight:700;color:var(--text)}.putting-miss-card{max-width:380px}.miss-streak-display{display:flex;flex-direction:column;align-items:center;margin-bottom:6px}.miss-streak-number{font-size:2.8rem;font-weight:800;font-family:Outfit,sans-serif;color:var(--accent);line-height:1}.miss-streak-caption{font-size:.82rem;color:var(--muted);font-weight:600}
