:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@font-face{font-family:Inter;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg-primary: #0f1219;--bg-surface: #181c25;--bg-elevated: #1f2430;--bg-card: rgba(255, 255, 255, .04);--bg-input: #141820;--text-primary: #e8eaed;--text-secondary: #9aa0ab;--text-muted: #848b96;--accent: #3ddc84;--accent-dim: #2db86a;--accent-soft: rgba(61, 220, 132, .12);--accent-glow: rgba(61, 220, 132, .06);--accent-blue: #64b5f6;--accent-blue-soft: rgba(100, 181, 246, .12);--color-eagle: #ffd54f;--color-birdie: #3ddc84;--color-bogey: #f05b58;--color-bogey-soft: rgba(239, 83, 80, .12);--color-warn: #ffb74d;--border-subtle: rgba(255, 255, 255, .06);--border-visible: rgba(255, 255, 255, .12);--border-accent: rgba(61, 220, 132, .25);--shadow-card: 0 4px 24px rgba(0, 0, 0, .25);--shadow-glow: 0 0 24px var(--accent-glow);--shadow-btn: 0 2px 12px rgba(61, 220, 132, .2);--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-full: 50%;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--fs-xs: .75rem;--fs-sm: .85rem;--fs-base: 1rem;--fs-lg: 1.25rem;--fs-xl: 1.75rem;--fs-2xl: 2.5rem;--fs-3xl: 3.5rem;--fw-normal: 450;--fw-medium: 550;--fw-bold: 700}*{box-sizing:border-box;margin:0;padding:0}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.bottom-tab:focus-visible,.qs-score-btn:focus-visible,.hole-nav button:focus-visible,.qs-hole-nav button:focus-visible{outline-offset:-2px}.skip-link{position:absolute;top:-40px;left:16px;background:var(--accent);color:var(--bg-primary);padding:8px 16px;border-radius:var(--radius-sm);font-weight:var(--fw-medium);z-index:200;transition:top .2s ease}.skip-link:focus{top:8px}body{font-family:var(--font);font-weight:var(--fw-normal);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;background:var(--bg-primary);color:var(--text-primary);min-height:100vh}body:before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 20% 0%,rgba(61,220,132,.1) 0%,transparent 50%),radial-gradient(ellipse at 80% 15%,rgba(100,181,246,.08) 0%,transparent 50%),radial-gradient(ellipse at 40% 80%,rgba(255,183,77,.05) 0%,transparent 50%);filter:blur(80px);pointer-events:none}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.app{max-width:600px;margin:0 auto;padding:env(safe-area-inset-top,0px) 16px calc(80px + env(safe-area-inset-bottom,0px));animation:fadeSlideIn .3s ease-out}.app>main{display:block;width:100%}.app>main>*,.caddy-screen>*,.qs-screen>*,.bag-editor>*,.courses-screen>*,.history-screen>*,.stats-screen>*,.putting-screen>*,.more-menu>*{width:100%}.app-header{padding:16px 0 12px;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between}.app-header h1{font-size:var(--fs-lg);font-weight:var(--fw-bold);background:linear-gradient(135deg,var(--accent),var(--accent-blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sport-toggle{display:flex;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:3px}.sport-toggle button{background:none;border:none;color:var(--text-muted);padding:10px 16px;border-radius:6px;font-size:var(--fs-sm);font-family:var(--font);cursor:pointer;font-weight:var(--fw-medium);min-height:44px;transition:all .2s ease}.sport-toggle button.active{background:var(--accent-soft);color:var(--accent)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#0f1219d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border-subtle);display:flex;justify-content:space-around;align-items:center;height:64px;padding-bottom:env(safe-area-inset-bottom,0px);z-index:100}.bottom-tab{display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;color:var(--text-muted);font-size:.7rem;font-family:var(--font);font-weight:var(--fw-medium);cursor:pointer;padding:6px 14px;min-width:48px;min-height:48px;justify-content:center;transition:color .2s ease;position:relative}.bottom-tab.active{color:var(--accent)}.bottom-tab.active:after{content:"";position:absolute;bottom:4px;width:4px;height:4px;border-radius:var(--radius-full);background:var(--accent)}.bottom-tab span{line-height:1}.play-mode-toggle{display:flex;width:100%;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:4px;margin-bottom:20px}.play-mode-toggle button{flex:1;background:none;border:none;color:var(--text-muted);padding:12px 10px;border-radius:10px;font-size:var(--fs-sm);font-family:var(--font);cursor:pointer;font-weight:var(--fw-medium);min-height:44px;transition:all .2s ease}.play-mode-toggle button.active{background:var(--accent-soft);color:var(--accent)}.more-menu{display:flex;flex-direction:column;gap:8px;width:100%}.more-menu-item{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;background:var(--bg-card);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);color:var(--text-primary);cursor:pointer;font-size:var(--fs-base);font-family:var(--font);text-align:left;transition:transform .15s ease,background .15s ease}.more-menu-item:active{transform:scale(.98)}.more-icon{display:flex;align-items:center;flex-shrink:0}.import-status{text-align:center;padding:10px;font-size:var(--fs-sm);color:var(--accent);font-weight:var(--fw-medium);animation:fadeSlideIn .3s ease-out}.sw-update-toast{position:fixed;bottom:calc(var(--nav-height, 64px) + env(safe-area-inset-bottom,0px) + 12px);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:var(--bg-elevated);border:1px solid var(--accent);border-radius:12px;padding:10px 16px;font-size:var(--fs-sm);color:var(--text-primary);z-index:1000;animation:fadeSlideIn .3s ease-out;box-shadow:0 4px 20px #0006}.sw-update-toast button{background:var(--accent);color:var(--bg-primary);border:none;border-radius:8px;padding:6px 14px;font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;min-height:32px}.sw-update-toast button:last-child{background:transparent;color:var(--text-muted);padding:6px 8px}.more-label{flex:1;font-weight:var(--fw-medium)}.more-chevron{color:var(--text-muted);font-size:1.2rem}.more-back{background:none;border:none;color:var(--accent);font-size:var(--fs-sm);font-family:var(--font);font-weight:var(--fw-medium);cursor:pointer;padding:10px 0;min-height:44px;margin-bottom:16px;transition:opacity .15s}.more-back:active{opacity:.7}.disc-form,.hole-card,.suggestion-card,.score-entry,.score-banner,.debrief-card,.add-course-form,.stats-card,.putting-stats-card,.putting-start-card,.putting-active-card,.bag-analysis,.qs-banner,.qs-hole-card,.import-preview,.shot-logger{background:var(--bg-card);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:transform .15s ease;width:100%}.disc-card,.course-card,.round-card{background:var(--bg-card);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:transform .15s ease;width:100%}.disc-card:active,.course-card:active{transform:scale(.98)}.btn-primary{background:linear-gradient(135deg,var(--accent-dim),var(--accent));color:#0f1219;border:none;padding:14px;border-radius:var(--radius-md);font-size:var(--fs-base);font-family:var(--font);font-weight:var(--fw-bold);cursor:pointer;width:100%;transition:transform .15s ease,box-shadow .15s ease;box-shadow:var(--shadow-btn)}.btn-primary:active{transform:scale(.97);box-shadow:0 1px 6px #3ddc8426}.btn-primary:disabled{opacity:.4;cursor:default;transform:none}.btn-secondary{background:var(--bg-surface);border:1px solid var(--border-visible);color:var(--accent);padding:12px 18px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-sm);font-family:var(--font);font-weight:var(--fw-medium);min-height:44px;transition:all .15s ease}.btn-secondary:active{transform:scale(.97);background:var(--bg-elevated)}.bag-editor h2,.courses-screen h2,.history-screen h2,.stats-screen h2,.putting-screen h2{font-size:var(--fs-lg);font-weight:var(--fw-bold);margin-bottom:20px;color:var(--accent)}.disc-form{padding:20px;margin-bottom:24px}.disc-form h3{font-size:var(--fs-base);color:var(--accent);margin-bottom:14px;font-weight:var(--fw-medium)}.form-row{display:flex;gap:10px;margin-bottom:12px}.form-row input,.form-row select{flex:1;background:var(--bg-input);border:1px solid var(--border-subtle);color:var(--text-primary);padding:10px 12px;border-radius:var(--radius-sm);font-size:var(--fs-sm);font-family:var(--font);transition:border-color .2s ease}.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--accent)}.form-row input::placeholder{color:var(--text-muted)}.flight-numbers{gap:8px;overflow:visible}.flight-numbers label{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs);color:var(--text-secondary)}.flight-numbers input{text-align:center;min-width:0;padding:10px 6px}.form-actions{display:flex;gap:10px;margin-top:14px}.form-actions button{padding:12px 20px;min-height:44px;border-radius:var(--radius-sm);border:none;cursor:pointer;font-size:var(--fs-sm);font-family:var(--font);font-weight:var(--fw-medium);transition:transform .1s ease}.form-actions button:active{transform:scale(.97)}.form-actions button[type=submit]{background:linear-gradient(135deg,var(--accent-dim),var(--accent));color:var(--bg-primary)}.form-actions button[type=button]{background:var(--bg-elevated);color:var(--text-secondary)}.name-search{flex:1;position:relative}.name-search input{width:100%}.disc-suggestions{position:absolute;top:100%;left:0;right:0;background:var(--bg-surface);border:1px solid var(--border-accent);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);max-height:240px;overflow-y:auto;z-index:10;box-shadow:0 8px 24px #0000004d}.disc-suggestion{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;border:none;border-bottom:1px solid var(--border-subtle);background:none;color:var(--text-primary);cursor:pointer;font-size:var(--fs-sm);font-family:var(--font);text-align:left;transition:background .15s ease}.disc-suggestion:hover{background:var(--bg-elevated)}.disc-suggestion:last-child{border-bottom:none}.sug-name{flex:1;font-weight:var(--fw-medium)}.sug-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.sug-type{font-size:var(--fs-xs);background:var(--accent-soft);color:var(--accent);padding:2px 8px;border-radius:4px;text-transform:capitalize;font-weight:var(--fw-medium)}.sug-flight{font-size:.8rem;color:var(--accent);font-family:monospace}.disc-list{margin-bottom:24px;width:100%}.disc-list h3{font-size:var(--fs-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px;font-weight:var(--fw-medium)}.disc-card{padding:14px 16px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:12px}.disc-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1}.disc-info strong{font-size:var(--fs-base);font-weight:var(--fw-medium)}.disc-type{font-size:var(--fs-xs);background:var(--accent-soft);color:var(--accent);padding:2px 8px;border-radius:4px;text-transform:capitalize;font-weight:var(--fw-medium)}.flight-nums{font-size:.8rem;color:var(--accent);font-family:monospace}.plastic,.weight{font-size:var(--fs-xs);color:var(--text-muted)}.disc-actions{display:flex;gap:6px;flex-shrink:0}.disc-actions button{background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-secondary);padding:6px 12px;border-radius:6px;cursor:pointer;font-size:.8rem;font-family:var(--font);transition:transform .1s ease}.disc-actions button:active{transform:scale(.95)}.disc-actions button.remove{color:var(--color-bogey);border-color:var(--color-bogey-soft);background:#ef535014}.empty{color:var(--text-muted);font-size:var(--fs-sm);padding:12px 0}.caddy-screen{display:flex;flex-direction:column;gap:20px;width:100%}.hole-selector{display:flex;flex-direction:column;gap:12px}.hole-selector select{background:var(--bg-input);border:1px solid var(--border-subtle);color:var(--text-primary);padding:10px 12px;border-radius:var(--radius-sm);font-size:var(--fs-sm);font-family:var(--font);width:100%}.hole-nav{display:flex;align-items:center;gap:16px;justify-content:center}.hole-nav button{background:var(--bg-elevated);border:1px solid var(--border-visible);color:var(--accent);width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s ease,box-shadow .15s ease;box-shadow:0 2px 8px #00000040}.hole-nav button:active{transform:scale(.9)}.hole-nav button:disabled{opacity:.15;cursor:default;border-color:transparent;box-shadow:none}.hole-nav span{font-size:var(--fs-base);font-weight:var(--fw-bold);min-width:60px;text-align:center}.hole-card{padding:20px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden}.hole-card:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.4}.hole-stat-row{display:flex;gap:12px;justify-content:space-around}.stat{text-align:center;display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.stat-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--fw-medium)}.stat-value{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary);margin-top:2px;font-variant-numeric:tabular-nums;animation:slideUp .3s ease-out}.stat-sub{font-size:var(--fs-xs);color:var(--text-muted);overflow-wrap:break-word;word-break:break-word}.hole-meta{font-size:.8rem;color:var(--text-secondary)}.hole-meta.hazards{color:var(--color-bogey)}.hole-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn-small{padding:4px 10px;font-size:var(--fs-sm)}.gps-accuracy{font-size:var(--fs-xs, .7rem);padding:2px 8px;border-radius:12px;font-weight:600}.gps-good{background:#1a3a1a;color:#4caf50}.gps-ok{background:#3a3a1a;color:#ffc107}.gps-poor{background:#3a1a1a;color:#f44336}.shot-log-section{display:flex;flex-direction:column;gap:12px}.shot-log-toggle{align-self:flex-start;font-size:var(--fs-sm)}.shot-logger{padding:16px;display:flex;flex-direction:column;gap:12px}.shot-field label,.shot-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:4px;font-weight:var(--fw-medium)}.shot-field select{width:100%;background:var(--bg-input);border:1px solid var(--border-subtle);color:var(--text-primary);padding:8px 10px;border-radius:6px;font-size:var(--fs-sm);font-family:var(--font)}.shot-field-row{display:flex;gap:8px}.shot-field-row .shot-field{flex:1}.past-shots{border-top:1px solid var(--border-subtle);padding-top:10px}.past-shots-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-weight:var(--fw-medium)}.past-shot-row{display:flex;align-items:center;gap:8px;font-size:.8rem;padding:4px 0;color:var(--text-secondary)}.ps-disc{color:var(--text-primary);font-weight:var(--fw-medium);flex:1}.ps-line{color:var(--accent);text-transform:capitalize}.ps-result{color:var(--text-secondary);text-transform:capitalize}.ps-score{font-weight:var(--fw-bold);color:var(--text-primary);min-width:16px;text-align:right;font-variant-numeric:tabular-nums}.past-shot-hint{font-size:.8rem;color:var(--text-muted);padding:8px 12px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer;font-family:var(--font);transition:color .15s}.past-shot-hint:hover{color:var(--text-secondary)}.ask-caddy{font-size:1.1rem;padding:16px;letter-spacing:.02em}.suggestion-loading{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;gap:14px}.skeleton-line{height:14px;background:linear-gradient(90deg,var(--bg-surface) 25%,var(--bg-elevated) 50%,var(--bg-surface) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}.skeleton-line.wide{width:80%}.skeleton-line.medium{width:55%}.skeleton-line.short{width:35%;height:20px}.error{color:var(--color-bogey);font-size:var(--fs-sm)}.error-inline{color:var(--color-bogey);font-size:.8rem}.suggestion-card{padding:20px;display:flex;flex-direction:column;gap:14px;border-color:var(--border-accent);box-shadow:var(--shadow-glow);position:relative;overflow:hidden}.suggestion-card:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.5}.suggestion-primary{display:flex;align-items:baseline;gap:10px}.suggestion-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--fw-medium)}.suggestion-disc{font-size:1.4rem;font-weight:var(--fw-bold);color:var(--accent)}.suggestion-line{font-size:var(--fs-sm);color:var(--text-secondary);text-transform:capitalize}.suggestion-reasoning{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.5}.alternatives{border-top:1px solid var(--border-subtle);padding-top:12px;display:flex;flex-direction:column;gap:8px}.alt-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;font-weight:var(--fw-medium)}.alt-row{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm)}.alt-disc{flex:1;color:var(--text-primary)}.alt-line{color:var(--text-secondary);text-transform:capitalize}.alt-risk{font-size:var(--fs-xs);font-weight:var(--fw-medium);min-width:48px;text-align:right}.score-banner{display:flex;align-items:center;gap:12px;padding:14px 18px}.score-holes{font-size:.8rem;color:var(--text-muted);flex:1}.score-total{font-size:var(--fs-base);color:var(--text-primary);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.score-rel{font-size:var(--fs-base);font-weight:var(--fw-bold);min-width:36px;text-align:right;font-variant-numeric:tabular-nums}.score-rel.under{color:var(--accent)}.score-rel.over{color:var(--color-bogey)}.score-rel.even{color:var(--text-secondary)}.score-entry{padding:20px;display:flex;flex-direction:column;gap:14px}.score-entry-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--fw-medium)}.score-entry-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.score-btn{background:var(--bg-elevated);border:1px solid var(--border-visible);color:var(--text-primary);width:56px;height:56px;border-radius:var(--radius-full);font-size:1.5rem;cursor:pointer;line-height:1;transition:transform .15s ease,box-shadow .15s ease;box-shadow:4px 4px 12px #0000004d,-2px -2px 8px #ffffff08}.score-btn:active{transform:scale(.88);box-shadow:inset 3px 3px 8px #0000004d,inset -2px -2px 6px #ffffff08}.score-display{text-align:center;flex:1}.score-strokes{display:block;font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--text-primary);line-height:1;font-variant-numeric:tabular-nums;animation:slideUp .2s ease-out}.score-vs-par{font-size:.8rem;color:var(--accent);text-transform:capitalize;font-weight:var(--fw-medium)}.next-hole{width:100%;text-align:center}.round-saved{text-align:center;color:var(--accent);font-size:var(--fs-sm)}.round-saved-actions{display:flex;flex-direction:column;align-items:center;gap:8px}.round-saved-actions .round-share,.round-saved-actions .debrief-btn{width:100%}.debrief-card{padding:20px;display:flex;flex-direction:column;gap:14px;text-align:left;border-color:var(--border-accent)}.debrief-summary{font-size:var(--fs-base);color:var(--text-primary);line-height:1.5}.debrief-section{display:flex;flex-direction:column;gap:6px}.debrief-section ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:4px}.debrief-section li{font-size:var(--fs-sm);color:var(--text-secondary);padding-left:14px;position:relative}.debrief-section li:before{content:"·";position:absolute;left:0;color:var(--text-muted)}.debrief-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--fw-bold)}.debrief-good{color:var(--accent)}.debrief-bad{color:var(--color-bogey)}.debrief-tip{border-top:1px solid var(--border-subtle);padding-top:12px}.debrief-tip .debrief-label{color:var(--color-warn);margin-bottom:6px;display:block}.debrief-tip p{font-size:var(--fs-sm);color:var(--text-primary);line-height:1.5}.course-list{display:flex;flex-direction:column;gap:10px;width:100%}.course-card{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.course-info{display:flex;flex-direction:column;gap:4px;flex:1}.course-info strong{font-size:var(--fs-base);font-weight:var(--fw-medium)}.course-meta{font-size:.8rem;color:var(--text-muted)}.course-badge{font-size:var(--fs-xs);background:var(--accent-soft);color:var(--accent);padding:2px 8px;border-radius:4px;align-self:flex-start;font-weight:var(--fw-medium)}.course-actions{display:flex;gap:6px;flex-shrink:0}.course-actions .remove{color:var(--color-bogey);border-color:var(--color-bogey-soft);background:#ef535014}.add-course-form{padding:20px;margin-top:16px}.add-course-form h3{font-size:var(--fs-base);color:var(--accent);margin-bottom:14px;font-weight:var(--fw-medium)}.add-course-form label{font-size:.8rem;color:var(--text-secondary);display:flex;flex-direction:column;gap:4px}.add-course-form select,.add-course-form input{background:var(--bg-input);border:1px solid var(--border-subtle);color:var(--text-primary);padding:8px 10px;border-radius:6px;font-size:var(--fs-sm);font-family:var(--font)}.hole-edit-list{display:flex;flex-direction:column;gap:6px;margin:12px 0;max-height:300px;overflow-y:auto}.hole-edit-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-subtle)}.hole-edit-num{font-size:.8rem;color:var(--accent);min-width:28px;font-weight:var(--fw-medium)}.hole-edit-row label{flex-direction:row;align-items:center;gap:6px}.hole-edit-row select{width:50px}.hole-edit-row input[type=number]{width:70px}.round-list{display:flex;flex-direction:column;gap:10px;width:100%}.round-card{overflow:hidden}.round-summary{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;cursor:pointer;gap:12px;width:100%;background:none;border:none;color:inherit;font:inherit;font-family:var(--font);text-align:left}.round-course-info{display:flex;flex-direction:column;gap:2px;flex:1}.round-course-info strong{font-size:var(--fs-base);font-weight:var(--fw-medium)}.round-date{font-size:var(--fs-xs);color:var(--text-muted)}.round-scores{display:flex;align-items:center;gap:10px}.round-strokes{font-size:1.1rem;font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.round-rel{font-size:var(--fs-base);font-weight:var(--fw-bold);min-width:32px;text-align:right;font-variant-numeric:tabular-nums}.round-rel.under{color:var(--accent)}.round-rel.over{color:var(--color-bogey)}.round-rel.even{color:var(--text-secondary)}.round-expand{font-size:.8rem;color:var(--text-muted);min-width:12px}.round-detail{padding:0 18px 18px;display:flex;flex-direction:column;gap:14px}.round-holes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:6px}.round-hole{display:flex;flex-direction:column;align-items:center;padding:8px 4px;border-radius:var(--radius-sm);background:var(--bg-input);border:1px solid var(--border-subtle)}.round-hole.eagle{border-color:var(--color-eagle);background:#ffd54f14}.round-hole.birdie{border-color:var(--accent);background:var(--accent-soft)}.round-hole.par{border-color:var(--border-subtle)}.round-hole.bogey{border-color:var(--color-bogey);background:#ef535014}.round-hole.double-plus{border-color:var(--color-bogey);background:#ef535026}.rh-num{font-size:.7rem;color:var(--text-muted)}.rh-strokes{font-size:1.1rem;font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.rh-label{font-size:.6rem;color:var(--text-secondary);text-transform:uppercase}.round-actions-row{display:flex;justify-content:space-between;gap:8px}.round-share{color:var(--accent);border-color:var(--border-accent)}.round-share:disabled{opacity:.4;cursor:default}.round-delete{align-self:flex-end}.import-section{margin-bottom:20px;display:flex;flex-direction:column;gap:12px}.import-btn{align-self:flex-start}.import-preview{padding:16px 18px;display:flex;flex-direction:column;gap:10px;border-color:var(--border-accent)}.import-summary{font-size:var(--fs-sm);color:var(--text-primary)}.import-detail{font-size:.8rem;color:var(--text-secondary)}.import-actions{display:flex;gap:8px;margin-top:4px}.import-actions .btn-primary{width:auto;padding:10px 20px;font-size:var(--fs-sm)}.import-actions .btn-secondary{padding:10px 16px}.import-success{font-size:var(--fs-sm);color:var(--accent)}.round-source{font-size:.6rem;background:var(--accent-soft);color:var(--accent);padding:1px 6px;border-radius:3px;margin-left:6px;vertical-align:middle;font-weight:var(--fw-medium)}.round-layout{font-size:.8rem;color:var(--text-muted);padding:0 0 4px}.stats-card{padding:20px;margin-bottom:14px}.stats-row{display:flex;justify-content:space-around;gap:8px}.stats-section-title{font-size:var(--fs-sm);color:var(--accent);margin-bottom:10px;font-weight:var(--fw-medium)}.stats-subtitle{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:12px}.trend-bar{display:flex;gap:6px;justify-content:center;margin-bottom:10px;flex-wrap:wrap}.trend-dot-col{display:flex;flex-direction:column;align-items:center}.trend-dot{font-size:.8rem;font-weight:var(--fw-bold);padding:6px 10px;border-radius:var(--radius-sm);background:var(--bg-input);border:1px solid var(--border-subtle);font-variant-numeric:tabular-nums}.trend-dot.under{color:var(--accent);border-color:var(--border-accent)}.trend-dot.over{color:var(--color-bogey);border-color:var(--color-bogey-soft)}.trend-dot.even{color:var(--text-secondary)}.trend-summary{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--text-secondary)}.trend-improving{color:var(--accent);font-weight:var(--fw-medium)}.trend-declining{color:var(--color-bogey);font-weight:var(--fw-medium)}.dist-bars{display:flex;flex-direction:column;gap:10px}.dist-row{display:flex;align-items:center;gap:10px}.dist-label{font-size:var(--fs-xs);color:var(--text-secondary);min-width:52px;font-weight:var(--fw-medium)}.dist-track{flex:1;height:20px;background:var(--bg-input);border-radius:6px;overflow:hidden}.dist-fill{height:100%;border-radius:6px;transition:width .4s ease}.dist-fill.eagle{background:linear-gradient(90deg,#ffd54f,#ffca28)}.dist-fill.birdie{background:linear-gradient(90deg,var(--accent-dim),var(--accent))}.dist-fill.par-bar{background:linear-gradient(90deg,#4a5568,#718096)}.dist-fill.bogey{background:linear-gradient(90deg,#e53935,#ef5350)}.dist-fill.double-plus{background:linear-gradient(90deg,#c62828,#d32f2f)}.dist-pct{font-size:var(--fs-xs);color:var(--text-primary);min-width:28px;text-align:right;font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.dist-count{font-size:var(--fs-xs);color:var(--text-muted);min-width:24px;text-align:right;font-variant-numeric:tabular-nums}.course-stats-list{display:flex;flex-direction:column;gap:12px}.course-stat-row{display:flex;flex-direction:column;gap:4px;padding-bottom:10px;border-bottom:1px solid var(--border-subtle)}.course-stat-row:last-child{border-bottom:none;padding-bottom:0}.cs-name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary)}.cs-details{display:flex;gap:12px;font-size:.8rem}.cs-count{color:var(--text-muted)}.cs-avg{font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.cs-best{font-size:var(--fs-xs)}.disc-stats-list{display:flex;flex-direction:column;gap:14px}.disc-stat-row{display:flex;flex-direction:column;gap:6px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.disc-stat-row:last-child{border-bottom:none;padding-bottom:0}.ds-header{display:flex;justify-content:space-between;align-items:baseline}.ds-name{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--text-primary)}.ds-throws{font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.ds-bar-track{height:6px;background:var(--bg-input);border-radius:3px;overflow:hidden}.ds-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-dim),var(--accent));border-radius:3px;min-width:2px;transition:width .4s ease}.ds-details{display:flex;flex-wrap:wrap;gap:6px;font-size:var(--fs-xs)}.ds-tag{background:var(--accent-soft);color:var(--accent);padding:2px 8px;border-radius:4px;text-transform:capitalize;font-weight:var(--fw-medium)}.ds-good{color:var(--accent)}.ds-bad{color:var(--color-bogey)}.ds-avg{color:var(--text-secondary)}.putting-stats-card,.putting-start-card{padding:20px;margin-bottom:14px}.putting-stats-grid{display:flex;justify-content:space-around;gap:8px}.putting-stat-box{display:flex;flex-direction:column;align-items:center;gap:4px}.putting-stat-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--fw-medium)}.putting-stat-pct{font-size:1.5rem;font-weight:var(--fw-bold);color:var(--text-primary);font-variant-numeric:tabular-nums}.putting-stat-pct.hot{color:var(--accent)}.putting-stat-pct.cold{color:var(--color-bogey)}.putting-stat-count{font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.putting-start-buttons{display:flex;flex-direction:column;gap:10px}.putting-start-btn{text-align:center}.putting-active-card{padding:28px 20px;display:flex;flex-direction:column;align-items:center;gap:24px;border-color:var(--border-accent)}.putting-distance-label{font-size:var(--fs-sm);color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--fw-bold)}.putting-score{display:flex;align-items:baseline;gap:4px}.putting-made{font-size:3.5rem;font-weight:var(--fw-bold);color:var(--accent);font-variant-numeric:tabular-nums}.putting-slash{font-size:2rem;color:var(--text-muted)}.putting-total{font-size:2rem;color:var(--text-primary);font-variant-numeric:tabular-nums}.putting-pct{font-size:1.2rem;color:var(--text-secondary);margin-left:12px;font-variant-numeric:tabular-nums}.putting-buttons{display:flex;gap:16px;width:100%}.putting-miss,.putting-make{flex:1;padding:20px;border:none;border-radius:var(--radius-md);font-size:1.2rem;font-family:var(--font);font-weight:var(--fw-bold);cursor:pointer;transition:transform .15s ease}.putting-miss:active,.putting-make:active{transform:scale(.95)}.putting-miss{background:#ef53501a;border:2px solid var(--color-bogey);color:var(--color-bogey)}.putting-make{background:var(--accent-soft);border:2px solid var(--accent);color:var(--accent)}.putting-bottom-row{display:flex;gap:10px;width:100%}.putting-undo{flex:1;text-align:center}.putting-undo:disabled{opacity:.3}.putting-finish{flex:1;text-align:center}.putting-history{margin-top:4px}.putting-history-list{margin-top:10px;display:flex;flex-direction:column;gap:4px}.putting-history-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--border-subtle);font-size:var(--fs-sm)}.ph-dist{font-weight:var(--fw-medium);color:var(--accent);min-width:40px}.ph-score{color:var(--text-primary);min-width:36px;font-variant-numeric:tabular-nums}.ph-pct{font-weight:var(--fw-bold);min-width:36px;font-variant-numeric:tabular-nums}.ph-pct.hot{color:var(--accent)}.ph-pct.cold{color:var(--color-bogey)}.ph-date{color:var(--text-muted);font-size:var(--fs-xs);margin-left:auto}.qs-screen{display:flex;flex-direction:column;gap:16px;width:100%}.qs-course-select{background:var(--bg-input);border:1px solid var(--border-subtle);color:var(--text-primary);padding:10px 12px;border-radius:var(--radius-sm);font-size:var(--fs-sm);font-family:var(--font);width:100%}.qs-banner{display:flex;align-items:center;gap:12px;padding:14px 18px}.qs-banner-holes{font-size:.8rem;color:var(--text-muted);flex:1}.qs-banner-strokes{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--text-primary);font-variant-numeric:tabular-nums}.qs-banner-rel{font-size:var(--fs-lg);font-weight:var(--fw-bold);min-width:36px;text-align:right;font-variant-numeric:tabular-nums}.qs-banner-rel.under{color:var(--accent)}.qs-banner-rel.over{color:var(--color-bogey)}.qs-banner-rel.even{color:var(--text-secondary)}.qs-hole-card{padding:28px 20px;display:flex;flex-direction:column;gap:28px;position:relative;overflow:hidden}.qs-hole-card:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.3}.qs-hole-nav{display:flex;align-items:center;justify-content:space-between;gap:12px}.qs-hole-nav button{background:var(--bg-elevated);border:1px solid var(--border-visible);color:var(--accent);width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s ease,box-shadow .15s ease;box-shadow:0 2px 8px #00000040}.qs-hole-nav button:active{transform:scale(.9)}.qs-hole-nav button:disabled{opacity:.15;cursor:default;border-color:transparent;box-shadow:none}.qs-hole-info{text-align:center}.qs-hole-num{display:block;font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.qs-hole-par{font-size:.8rem;color:var(--text-muted)}.qs-score-row{display:flex;align-items:center;justify-content:center;gap:28px}.qs-score-btn{background:var(--bg-elevated);border:1px solid var(--border-visible);color:var(--text-primary);width:68px;height:68px;border-radius:var(--radius-full);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s ease,box-shadow .15s ease;box-shadow:4px 4px 12px #0000004d,-2px -2px 8px #ffffff08}.qs-score-btn:active{transform:scale(.88);box-shadow:inset 3px 3px 8px #0000004d,inset -2px -2px 6px #ffffff08}.qs-score-display{text-align:center}.qs-strokes{display:block;font-size:var(--fs-3xl);font-weight:var(--fw-bold);color:var(--text-primary);line-height:1;font-variant-numeric:tabular-nums;animation:slideUp .2s ease-out}.qs-label{font-size:var(--fs-sm);color:var(--accent);text-transform:capitalize;font-weight:var(--fw-medium);margin-top:4px}.qs-next{width:100%;text-align:center}.qs-hole-card .btn-secondary{background:linear-gradient(135deg,var(--accent-dim),var(--accent));color:var(--bg-primary);border:none;font-weight:var(--fw-bold);box-shadow:var(--shadow-btn);padding:14px;border-radius:var(--radius-md);font-size:var(--fs-base)}.bag-analysis{padding:20px;margin-top:20px}.bag-analysis h3{font-size:var(--fs-base);color:var(--accent);margin-bottom:12px;font-weight:var(--fw-medium)}.ba-coverage{display:flex;align-items:baseline;gap:4px;margin-bottom:16px}.ba-filled{font-size:2rem;font-weight:var(--fw-bold);color:var(--accent);font-variant-numeric:tabular-nums}.ba-slash{font-size:1.2rem;color:var(--text-muted)}.ba-total{font-size:var(--fs-sm);color:var(--text-secondary)}.ba-section{margin-bottom:14px}.ba-section:last-child{margin-bottom:0}.ba-section-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--fw-bold);margin-bottom:8px}.ba-good{color:var(--accent)}.ba-warn{color:var(--color-warn)}.ba-row{padding:8px 0;border-bottom:1px solid var(--border-subtle);font-size:var(--fs-sm)}.ba-row:last-child{border-bottom:none}.ba-covered{display:flex;justify-content:space-between;align-items:center}.ba-slot{color:var(--text-primary);font-weight:var(--fw-medium)}.ba-disc{color:var(--accent)}.ba-gap{display:flex;flex-direction:column;gap:2px}.ba-gap-info{display:flex;justify-content:space-between;align-items:baseline}.ba-why{font-size:var(--fs-xs);color:var(--text-secondary)}.ba-flight-range{font-size:var(--fs-xs);color:var(--text-muted);font-family:monospace}.golf-quick-add{margin-top:14px}.golf-quick-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-weight:var(--fw-medium)}.golf-preset-grid{display:flex;flex-wrap:wrap;gap:8px}.golf-preset-btn{padding:8px 12px!important;font-size:.8rem!important}.golf-type-header{font-size:var(--fs-xs);color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin:12px 0 6px;padding-bottom:6px;border-bottom:1px solid var(--border-subtle);font-weight:var(--fw-medium)}@media(max-width:400px){.app{padding-left:12px;padding-right:12px}.qs-score-row{gap:16px}.qs-score-btn{width:60px;height:60px}.hole-nav{gap:10px}.stats-row{flex-wrap:wrap;gap:12px}.stat{flex:1 1 40%}.disc-card{flex-direction:column;align-items:flex-start;gap:10px}}@media(max-height:500px)and (orientation:landscape){.bottom-nav{height:48px}.bottom-tab{padding:4px 14px;min-height:44px}.bottom-tab svg{width:18px;height:18px}.app{padding-bottom:calc(56px + env(safe-area-inset-bottom,0px))}.qs-hole-card{padding:16px 20px;gap:16px}.qs-strokes{font-size:var(--fs-2xl)}.qs-score-btn{width:52px;height:52px}}@media(min-width:768px){:root{--fs-xs: .8rem;--fs-sm: .9rem}.app{max-width:700px;padding-left:24px;padding-right:24px}.stats-row{gap:16px}.disc-card{padding:16px 20px}.qs-hole-card{padding:32px 28px}}@media(min-width:1024px){.app{max-width:900px}.bottom-nav{max-width:900px;left:50%;transform:translate(-50%);border-radius:var(--radius-lg) var(--radius-lg) 0 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
