:root{--bg:#f7f5f0;--bg-elevated:#fff;--bg-muted:#efece4;--bg-sunken:#e5e1d6;--brand:#005944;--brand-deep:#004536;--brand-soft:#e3f2ed;--accent:#b8ff00;--accent-ink:#0a0a0a;--accent-secondary:#ff5a1f;--accent-secondary-soft:#ffe8df;--text:#0a0a0a;--text-secondary:#1a1a1a;--text-muted:#2e2e2e;--text-on-brand:#fff;--text-on-accent:#0a0a0a;--border:#1a1a1a;--border-soft:#0a0a0a2e;--focus-ring:#00594459;--shadow:0 12px 40px #0a0a0a1f;--map-rough:#1f6b35;--map-fairway:#5fb85f;--map-fairway-edge:#3d8f45;--map-green:#6ecf55;--map-green-surround:#3d6b2e;--map-bg:#dce8d4;--map-pin:#ffef78;--map-landing:#b8ff00;--map-line:#0a0a0a66;--text-xs:1rem;--text-sm:1.125rem;--text-md:1.25rem;--text-lg:1.375rem;--text-xl:1.5rem;--text-2xl:1.875rem;--text-3xl:2.25rem;--text-display:clamp(2.5rem, 10vw, 3.75rem);--tap-min:3.25rem;--tap-md:3.75rem;--tap-lg:4.25rem;--tap-xl:4.75rem;--radius-sm:.85rem;--radius-md:1.15rem;--radius-lg:1.5rem;--radius-pill:999px;--content-width:32rem;--space:1rem;--space-lg:1.35rem;color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--text-md);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.4}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;color:var(--text);background:radial-gradient(circle at top, #b8ff001f, transparent 28rem), radial-gradient(circle at bottom right, #00594414, transparent 24rem), var(--bg);margin:0}button,input,select,textarea{font:inherit;font-size:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.app-shell{align-content:center;gap:var(--space-lg);min-height:100vh;padding:max(1rem, env(safe-area-inset-top)) 1rem max(1.5rem, env(safe-area-inset-bottom));display:grid}.app-shell--top{align-content:start}.hero-card,.quick-stats,.shot-card,.round-history{width:min(100%, var(--content-width));border:2px solid var(--border-soft);background:var(--bg-elevated);box-shadow:var(--shadow);margin:0 auto}.hero-card{border-radius:var(--radius-lg);padding:var(--space-lg)}.eyebrow{color:var(--brand);font-size:var(--text-sm);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .65rem;font-weight:800}h1{color:var(--text);font-size:var(--text-display);letter-spacing:-.04em;margin:0;font-weight:900;line-height:.95}.lede{color:var(--text-secondary);font-size:var(--text-md);margin:1rem 0 1.5rem;font-weight:600;line-height:1.45}.start-round-button,.save-hole-button{width:100%;min-height:var(--tap-xl);border:3px solid var(--accent-ink);border-radius:var(--radius-pill);color:var(--text-on-accent);background:var(--accent);font-size:var(--text-xl);font-weight:900;box-shadow:0 8px #0a0a0a2e}.start-round-button:active,.save-hole-button:active,.voice-action-button:active,.review-hole-row button:active{transform:translateY(2px);box-shadow:0 4px #0a0a0a2e}.save-hole-button{width:min(100%, var(--content-width));margin:0 auto}.onboarding-form{gap:var(--space);display:grid}.onboarding-form label{color:var(--text);font-size:var(--text-sm);gap:.5rem;font-weight:800;display:grid}.onboarding-form .checkbox-row{grid-template-columns:auto 1fr;align-items:center;gap:.75rem}.onboarding-form .checkbox-row input{width:1.75rem;min-height:1.75rem;accent-color:var(--brand)}.onboarding-form input,.onboarding-form select{width:100%;min-height:var(--tap-md);border:2px solid var(--border);border-radius:var(--radius-md);color:var(--text);background:var(--bg-elevated);font:inherit;font-size:var(--text-md);padding:0 1rem;font-weight:700}.onboarding-form input:focus,.onboarding-form select:focus,.putts-control input:focus,.putt-distance-actions button:focus,.score-control input:focus,.score-actions button:focus,.fairway-actions button:focus,.green-zone-actions button:focus,.stats-filter-grid select:focus,.voice-card textarea:focus{border-color:var(--brand);outline:3px solid var(--focus-ring);outline-offset:1px}.form-grid--two{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.holes-grid{border:2px solid var(--border-soft);border-radius:var(--radius-md);background:var(--bg-muted);gap:.75rem;max-height:48vh;padding:.9rem;display:grid;overflow:auto}.holes-grid legend{color:var(--brand);font-size:var(--text-sm);padding:0 .35rem;font-weight:900}.hole-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem;display:grid}.status-line{color:var(--text-muted);font-size:var(--text-sm);margin:1rem 0 0;font-weight:800}.hole-entry-card{gap:var(--space);display:grid}.hole-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;display:grid}.hole-meta strong,.running-score{border:2px solid var(--border-soft);border-radius:var(--radius-md);background:var(--bg-elevated);padding:.95rem .65rem}.hole-meta strong{color:var(--text);font-size:var(--text-sm);text-align:center;font-weight:900}.running-score{color:var(--text-secondary);font-size:var(--text-sm);justify-content:space-between;align-items:center;font-weight:800;display:flex}.running-score strong{color:var(--brand);font-size:var(--text-3xl);font-weight:900;line-height:1}.shot-card{gap:var(--space);border-radius:var(--radius-lg);padding:var(--space);display:grid}.shot-card-header{gap:.35rem;display:grid}.shot-card h2,.shot-card p{margin:0}.shot-card h2{color:var(--text);font-size:var(--text-xl);font-weight:900}.shot-card p{color:var(--text-muted);font-size:var(--text-sm);font-weight:600;line-height:1.35}.fairway-map{border-radius:var(--radius-md);border:2px solid var(--border);background:radial-gradient(circle at 50% 20%, #ffffff59, transparent 10rem), var(--map-bg);width:100%;min-height:15rem}.fairway-rough{fill:var(--map-rough)}.fairway-cut{fill:var(--map-fairway);stroke:var(--border);stroke-width:3px}.fairway-centerline{fill:none;stroke:var(--map-line);stroke-dasharray:8 9;stroke-linecap:round;stroke-width:4px}.landing-dot{fill:var(--map-landing);stroke:var(--accent-ink);stroke-width:4px}.landing-dot--center{fill:var(--accent)}.fairway-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;display:grid}.fairway-actions button{min-height:var(--tap-md);border:2px solid var(--border);border-radius:var(--radius-md);color:var(--text);background:var(--bg-muted);font-size:var(--text-sm);padding:.35rem .4rem;font-weight:900}.fairway-actions button:active,.green-zone-actions button:active,.putt-distance-actions button:active,.score-actions button:active{background:var(--brand-soft);border-color:var(--brand)}.green-map{border-radius:var(--radius-md);border:2px solid var(--border);background:radial-gradient(circle at 50% 48%, #b8ff002e, transparent 9rem), var(--map-bg);width:100%;min-height:15rem}.green-surround{fill:var(--map-green-surround)}.green-surface{fill:var(--map-green);stroke:var(--border);stroke-width:4px}.green-grid-line{fill:none;stroke:var(--map-line);stroke-dasharray:5 7;stroke-linecap:round;stroke-width:3px}.pin-dot{fill:var(--map-pin);stroke:var(--accent-ink);stroke-width:4px}.green-zone-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;display:grid}.green-zone-actions button{min-height:var(--tap-min);border:2px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:var(--bg-muted);font-size:var(--text-xs);padding:.35rem .25rem;font-weight:900;line-height:1.15}.putts-control{color:var(--text);font-size:var(--text-sm);grid-template-columns:1fr 5.5rem;align-items:center;gap:1rem;font-weight:900;display:grid}.putts-control input{width:100%;min-height:var(--tap-md);border:2px solid var(--border);border-radius:var(--radius-md);color:var(--text);background:var(--bg-elevated);font:inherit;font-size:var(--text-2xl);text-align:center;font-weight:900}.putt-distance-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;display:grid}.putt-distance-actions button{min-height:var(--tap-min);border:2px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:var(--bg-muted);font-size:var(--text-xs);padding:.35rem .2rem;font-weight:900;line-height:1.15}.score-input-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.score-control{color:var(--text);font-size:var(--text-sm);gap:.55rem;font-weight:900;display:grid}.score-control input{width:100%;min-height:var(--tap-lg);border:2px solid var(--border);border-radius:var(--radius-md);color:var(--text);background:var(--bg-elevated);font:inherit;font-size:var(--text-2xl);text-align:center;font-weight:900}.score-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;display:grid}.score-actions button{min-height:var(--tap-lg);border:2px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:var(--bg-muted);font-size:var(--text-xs);place-items:center;gap:.15rem;padding:.35rem .2rem;font-weight:900;display:grid}.score-actions button strong{color:var(--brand);font-size:var(--text-lg);font-weight:900}.round-review-card{gap:var(--space);display:grid}.review-totals{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;display:grid}.review-totals div{border:2px solid var(--border-soft);border-radius:var(--radius-md);background:var(--bg-elevated);gap:.35rem;padding:.95rem .65rem;display:grid}.review-totals span,.review-hole-row span{color:var(--text-muted);font-size:var(--text-xs);font-weight:800}.review-totals strong{color:var(--brand);font-size:var(--text-2xl);font-weight:900;line-height:1.05}.round-review-list{gap:.7rem}.review-hole-row{border:2px solid var(--border-soft);border-radius:var(--radius-md);background:var(--bg-elevated);grid-template-columns:1fr auto;align-items:center;gap:.75rem;padding:.9rem;display:grid}.review-hole-row div{gap:.25rem;display:grid}.review-hole-row button{min-height:var(--tap-min);border:2px solid var(--accent-ink);border-radius:var(--radius-pill);color:var(--text-on-accent);background:var(--accent);font-size:var(--text-sm);padding:0 1rem;font-weight:900}.toast-status{max-width:var(--content-width);border:2px solid var(--accent-ink);border-radius:var(--radius-pill);color:var(--text-on-accent);background:var(--accent);font-size:var(--text-sm);text-align:center;box-shadow:var(--shadow);z-index:50;margin:0 auto;padding:1rem 1.15rem;font-weight:900;position:fixed;bottom:1rem;left:1rem;right:1rem}.quick-stats,.round-history{border-radius:var(--radius-lg);background:var(--border-soft);grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.quick-stats div{background:var(--bg-elevated);gap:.4rem;padding:1.1rem .75rem;display:grid}.quick-stats strong{color:var(--text);font-size:var(--text-md);font-weight:900}.quick-stats span{color:var(--text-muted);font-size:var(--text-xs);font-weight:700;line-height:1.25}.round-history{background:var(--bg-elevated);grid-template-columns:1fr}.round-history-header,.round-history-row{background:var(--bg-elevated);border-bottom:1px solid var(--border-soft);grid-template-columns:1fr auto;align-items:center;gap:.75rem;padding:1.1rem;display:grid}.round-history-row:last-child{border-bottom:0}.round-history-header h2{color:var(--text);font-size:var(--text-lg);margin:0;font-weight:900}.round-history-header span,.round-history-row span{color:var(--text-muted);font-size:var(--text-xs);font-weight:800}.round-history-row div{gap:.25rem;display:grid}.round-history-row div:last-child{justify-items:end}.round-history-row strong{color:var(--text);font-size:var(--text-md);font-weight:900}.stats-hub{gap:var(--space);width:min(100%, var(--content-width));border:2px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--bg-elevated);padding:var(--space);box-shadow:var(--shadow);margin:0 auto;display:grid}.stats-hub-header{justify-content:space-between;align-items:start;gap:1rem;display:flex}.stats-hub-header h2,.analytics-list h3,.shot-cost-summary h3{color:var(--text);font-size:var(--text-xl);margin:0;font-weight:900}.stats-hub-header>strong{color:var(--brand);font-size:var(--text-lg);white-space:nowrap;font-weight:900}.stats-filter-grid{gap:.85rem;display:grid}.stats-filter-grid label{color:var(--text);font-size:var(--text-sm);gap:.45rem;font-weight:800;display:grid}.stats-filter-grid select{min-height:var(--tap-md);border:2px solid var(--border);border-radius:var(--radius-md);color:var(--text);background:var(--bg-elevated);font:inherit;font-size:var(--text-md);padding:0 .95rem;font-weight:700}.analytics-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;display:grid}.analytics-metrics div,.shot-cost-summary,.analytics-row{border:2px solid var(--border-soft);border-radius:var(--radius-md);background:var(--bg-muted);padding:.95rem .75rem}.analytics-metrics div{gap:.3rem;display:grid}.analytics-metrics span,.analytics-row span,.shot-cost-summary p,.analytics-list p{color:var(--text-muted);font-size:var(--text-xs);font-weight:800}.analytics-metrics strong{color:var(--brand);font-size:var(--text-2xl);font-weight:900;line-height:1.05}.shot-cost-summary{gap:.55rem;display:grid}.shot-cost-summary p{line-height:1.4;font-size:var(--text-sm);margin:0}.analytics-list{gap:.65rem;display:grid}.analytics-list h3{font-size:var(--text-lg)}.analytics-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.analytics-row strong{color:var(--text);font-size:var(--text-sm);text-transform:capitalize;font-weight:900}.analytics-svg{border-radius:var(--radius-md);border:2px solid var(--border);background:var(--map-bg);width:100%;min-height:13rem}.analytics-dot{fill:var(--accent-secondary);stroke:var(--accent-ink);stroke-width:3px}.heat-dot{fill:#ff5a1fb3;stroke:var(--accent-ink);stroke-width:3px}.voice-card textarea{border:2px solid var(--border);border-radius:var(--radius-md);width:100%;min-height:7.5rem;color:var(--text);background:var(--bg-elevated);font:inherit;font-size:var(--text-md);padding:.95rem;font-weight:600;line-height:1.4}.voice-transcript-control{color:var(--text);font-size:var(--text-sm);gap:.5rem;font-weight:900;display:grid}.voice-action-button{min-height:var(--tap-lg);border:2px solid var(--accent-ink);border-radius:var(--radius-pill);color:var(--text-on-accent);background:var(--accent);font-size:var(--text-md);font-weight:950}.voice-action-button:disabled{color:var(--text-muted);background:var(--bg-sunken);border-color:var(--border-soft);box-shadow:none;cursor:not-allowed}.voice-confirmation{border:2px solid var(--brand);border-radius:var(--radius-md);background:var(--brand-soft);gap:.45rem;padding:.95rem;display:grid}.voice-confirmation span,.voice-confirmation p{color:var(--text);font-size:var(--text-sm);text-transform:capitalize;margin:0;font-weight:700}.social-hub{gap:var(--space);width:min(100%, var(--content-width));border:2px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--bg-elevated);padding:var(--space);box-shadow:var(--shadow);margin:0 auto;display:grid}.social-card{border:2px solid var(--border-soft);border-radius:var(--radius-md);background:var(--bg-muted);gap:.5rem;padding:.95rem;display:grid}.social-card h3,.social-card p{margin:0}.social-card h3{color:var(--text);font-size:var(--text-lg);font-weight:900}.social-card p{color:var(--text-muted);font-size:var(--text-sm);font-weight:700;line-height:1.35}.action-secondary{color:var(--text-on-accent);background:var(--accent-secondary);border-color:var(--accent-ink)}@media (width<=380px){.form-grid--two,.score-input-grid{grid-template-columns:1fr}.putt-distance-actions,.score-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.green-zone-actions button,.putt-distance-actions button{min-height:var(--tap-md);font-size:var(--text-sm)}}@media (prefers-reduced-motion:reduce){.start-round-button:active,.save-hole-button:active,.voice-action-button:active,.review-hole-row button:active{transform:none}}.secondary-button{width:100%;min-height:var(--tap-lg);border:2px solid var(--border);border-radius:var(--radius-pill);color:var(--text);background:var(--bg-elevated);font-size:var(--text-md);font-weight:900}.secondary-button:active{background:var(--bg-muted)}.account-card,.course-api-card,.weather-card{width:min(100%, var(--content-width));border:2px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow);padding:var(--space);gap:.85rem;margin:0 auto;display:grid}.account-card h2,.course-api-card h2{color:var(--text);font-size:var(--text-xl);margin:0;font-weight:900}.account-card p{color:var(--text-muted);font-size:var(--text-sm);margin:.35rem 0 0;font-weight:600;line-height:1.4}.account-actions{gap:.75rem;display:grid}.account-form{gap:.85rem;display:grid}.account-form label,.course-api-card label,.social-card label{color:var(--text);font-size:var(--text-sm);gap:.5rem;font-weight:800;display:grid}.account-form input,.course-api-card input,.social-card input{width:100%;min-height:var(--tap-md);border:2px solid var(--border);border-radius:var(--radius-md);color:var(--text);background:var(--bg-elevated);font:inherit;font-size:var(--text-md);padding:0 1rem;font-weight:700}.course-api-card>button,.course-result-row button{min-height:var(--tap-md);border:2px solid var(--accent-ink);border-radius:var(--radius-pill);color:var(--text-on-accent);background:var(--accent);font-size:var(--text-sm);padding:0 1rem;font-weight:900}.course-result-row{border:2px solid var(--border-soft);border-radius:var(--radius-md);background:var(--bg-muted);gap:.65rem;padding:.9rem;display:grid}.course-result-row div{gap:.25rem;display:grid}.course-result-row strong{color:var(--text);font-size:var(--text-md);font-weight:900}.course-result-row span{color:var(--text-muted);font-size:var(--text-sm);font-weight:700}.weather-card{box-shadow:none;grid-template-columns:1fr;width:100%}.weather-card strong{color:var(--brand);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;font-weight:900}.weather-card span{color:var(--text);font-size:var(--text-md);font-weight:800}.error-text{color:var(--accent-secondary);font-size:var(--text-sm);margin:0;font-weight:900}.home-launcher{width:min(100%, var(--content-width));align-content:center;gap:1rem;margin:0 auto;display:grid}.home-header{gap:.35rem;padding:0 .15rem;display:grid}.home-header h1{letter-spacing:-.03em;font-size:clamp(1.85rem,8vw,2.5rem);line-height:1.05}.home-tile{border:2px solid var(--border);border-radius:var(--radius-lg);width:100%;min-height:5.5rem;color:var(--text);background:var(--bg-elevated);box-shadow:var(--shadow);text-align:left;align-content:center;justify-items:start;gap:.35rem;padding:1rem 1.05rem;display:grid}.home-tile:active{transform:translateY(1px)}.home-tile--start{border:3px solid var(--accent-ink);min-height:7.5rem;color:var(--text-on-accent);background:var(--accent);padding:1.25rem 1.2rem;box-shadow:0 8px #0a0a0a2e}.home-tile--start:active{box-shadow:0 4px #0a0a0a2e}.home-tile-title{font-size:var(--text-xl);font-weight:900;line-height:1.1}.home-tile--start .home-tile-title{font-size:clamp(1.75rem,7vw,2.15rem)}.home-tile-sub{font-size:var(--text-sm);opacity:.85;font-weight:700;line-height:1.25}.home-tile--start .home-tile-sub{opacity:.9;font-weight:800}.home-secondary-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;display:grid}.home-secondary-row .home-tile{min-height:6.25rem;padding:.9rem .7rem}.home-secondary-row .home-tile-title{font-size:var(--text-md)}.home-secondary-row .home-tile-sub{font-size:var(--text-xs)}.home-subview-header{width:min(100%, var(--content-width));margin:0 auto}.back-button{min-height:var(--tap-md);border:2px solid var(--border);border-radius:var(--radius-pill);min-width:6.5rem;color:var(--text);background:var(--bg-elevated);font-size:var(--text-md);margin-bottom:.35rem;padding:0 1.15rem;font-weight:900}.back-button:active{background:var(--bg-muted)}.account-card .back-button{justify-self:start}@media (width<=420px){.home-secondary-row{grid-template-columns:1fr}.home-secondary-row .home-tile{min-height:var(--tap-xl)}.home-secondary-row .home-tile-title{font-size:var(--text-lg)}.home-secondary-row .home-tile-sub{font-size:var(--text-sm)}}.text-button{width:100%;min-height:var(--tap-md);border-radius:var(--radius-md);color:var(--brand);font-size:var(--text-sm);text-underline-offset:.18em;background:0 0;border:0;padding:.35rem .5rem;font-weight:800;text-decoration:underline}.text-button:active{color:var(--brand-deep)}.choose-course-card{gap:.9rem;display:grid}.choose-course-card h1{font-size:clamp(2rem,8vw,2.75rem)}.course-results{gap:.65rem;display:grid}.course-results-heading{color:var(--brand);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;margin:.25rem 0 0;font-weight:900}.holes-grid--simple{max-height:none}.hole-par-row{grid-template-columns:minmax(4.5rem,auto) 1fr;align-items:center;gap:.65rem;display:grid}.hole-par-label{color:var(--text);font-size:var(--text-sm);font-weight:900}.par-chooser{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;display:grid}.par-choice{min-height:var(--tap-md);border:2px solid var(--border);border-radius:var(--radius-md);color:var(--text);background:var(--bg-muted);font-size:var(--text-lg);font-weight:900}.par-choice--selected{border-color:var(--accent-ink);color:var(--text-on-accent);background:var(--accent);box-shadow:0 4px #0a0a0a24}.par-choice:active{transform:translateY(1px)}
