:root,[data-theme=birdiebook]{color-scheme:light;--color-primary: #17633d;--color-primary-hover: #104d2f;--color-primary-strong: #102f20;--color-primary-soft: #e7f4eb;--color-primary-muted: #cce1d3;--color-accent: #d8aa42;--color-accent-soft: #fff5d8;--color-on-primary: #ffffff;--color-on-primary-subtle: rgba(255, 255, 255, .08);--color-on-primary-soft: rgba(255, 255, 255, .1);--color-on-primary-hover: rgba(255, 255, 255, .16);--color-on-primary-border: rgba(255, 255, 255, .18);--color-on-primary-border-strong: rgba(255, 255, 255, .35);--color-accent-glow: rgba(216, 170, 66, .22);--color-accent-border: rgba(216, 170, 66, .72);--color-analysis: #6f3a87;--color-analysis-soft: #f3eafa;--color-bg: #f3f6f3;--color-surface: #ffffff;--color-surface-secondary: #f7faf7;--color-surface-tertiary: #edf4ef;--color-surface-glass: rgba(255, 255, 255, .94);--color-overlay: rgba(8, 25, 15, .68);--color-text: #102017;--color-text-secondary: #314138;--color-text-muted: #65716b;--color-text-on-dark-muted: #c7decf;--color-border: #dce7df;--color-border-strong: #cbd8cf;--color-focus: rgba(23, 99, 61, .22);--color-success: #247a4a;--color-success-soft: #e7f4eb;--color-warning: #8a6514;--color-warning-soft: #fff5d8;--color-danger: #982d20;--color-danger-soft: #fff0ed;--color-danger-overlay: rgba(152, 45, 32, .28);--color-info: #176b91;--color-info-soft: #e8f5fb;--color-score-eagle: #3f4ca8;--color-score-birdie: #17633d;--color-score-par: #526158;--color-score-bogey: #9a5d18;--color-score-double: #982d20;--color-fairway: #83bd68;--color-green: #3f9b57;--color-water: #70b8cf;--color-bunker: #f2d99a;--color-map-bg: #e9f3e6;--color-map-bg-detailed: #dce8d3;--color-water-edge: #438ea7;--color-fairway-edge: #4f8a45;--color-green-edge: #256c3c;--color-tee: #5b9f50;--color-tee-edge: #326f37;--color-bunker-edge: #c5a962;--color-media-stage: #07100b;--font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .6875rem;--font-size-sm: .8125rem;--font-size-md: .9375rem;--font-size-lg: 1.125rem;--font-size-xl: 1.5rem;--font-size-2xl: clamp(2rem, 5vw, 3.5rem);--line-height-tight: 1.15;--line-height-body: 1.5;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 22px;--radius-pill: 999px;--shadow-sm: 0 4px 14px rgba(16, 32, 23, .06);--shadow-md: 0 14px 36px rgba(16, 32, 23, .11);--shadow-lg: 0 24px 60px rgba(16, 32, 23, .18);--transition-fast: .16s ease;--touch-target: 44px;--content-width: 1120px}[data-theme=coastal]{--color-primary: #155b68;--color-primary-hover: #0e4651;--color-primary-strong: #113942;--color-primary-soft: #e4f1f3;--color-primary-muted: #c7dde1;--color-accent: #c88a42;--color-accent-soft: #fbf0e3;--color-analysis: #76547f;--color-analysis-soft: #f2edf4;--color-bg: #f5f6f4;--color-surface-secondary: #f8faf9;--color-surface-tertiary: #ebf1f1;--color-surface-glass: rgba(250, 253, 253, .94);--color-text: #14282c;--color-text-secondary: #344c50;--color-text-muted: #68797b;--color-text-on-dark-muted: #c9dde0;--color-border: #d9e3e3;--color-border-strong: #c4d2d3;--color-focus: rgba(21, 91, 104, .24);--color-success: #327354;--color-success-soft: #e7f2eb;--color-score-birdie: #155b68}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{font-family:var(--font-family);color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{background:var(--color-bg)}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-md);line-height:var(--line-height-body)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}#root{min-height:100vh}.app-shell{width:min(1180px,calc(100% - 28px));margin:0 auto;padding:24px 0 44px}.topbar,.hole-header,.hole-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.topbar{margin-bottom:var(--space-5)}.eyebrow{margin:0 0 5px;color:var(--color-text-muted);font-size:.78rem;font-weight:800;text-transform:uppercase}h1,h2,h3{margin:0;color:var(--color-text);letter-spacing:0}h1{font-size:clamp(2rem,5vw,3.6rem);line-height:.95}h2{font-size:1.15rem}h3{font-size:.95rem}.brand-home{display:inline-flex;align-items:center;gap:var(--space-3);padding:0;background:transparent;color:var(--color-text);font-size:clamp(2rem,5vw,3.6rem);font-weight:900;line-height:.95;text-align:left;cursor:pointer}.brand-home img{width:clamp(44px,8vw,64px);height:clamp(44px,8vw,64px);flex:0 0 auto;filter:drop-shadow(0 8px 14px rgba(23,99,61,.16))}.brand-home span{display:block}.app-version{display:block;margin-top:6px;color:var(--color-text-muted);font-size:.76rem;font-weight:850}button,input,select{font:inherit}button{border:0}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md)}.setup-grid,.setup-main,.tracker-grid{display:grid;gap:var(--space-4)}.setup-grid{grid-template-columns:minmax(0,1fr) minmax(280px,380px);align-items:start}.setup-panel,.previous-panel,.archive-panel,.admin-panel,.hole-panel,.round-panel,.detail-panel,.stats-panel,.scorecard-panel,.archive-toggle-panel,.home-player-section{padding:var(--space-4)}.setup-panel{display:grid;gap:var(--space-4)}label{display:grid;gap:var(--space-2);color:var(--color-text-secondary);font-weight:800}input,select{width:100%;box-sizing:border-box;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-secondary);color:var(--color-text);min-height:44px;padding:9px 11px}input:focus,select:focus{outline:3px solid rgba(46,125,82,.2);border-color:var(--color-primary)}.primary-action,.ghost-action,.compact-action,.delete-hole,.shot-actions button,.round-list button,.hole-main,.player-picker button,.round-pill button{border-radius:var(--radius-sm);cursor:pointer}.primary-action{min-height:46px;padding:11px 16px;background:var(--color-primary);color:var(--color-on-primary);font-weight:900}.ghost-action{min-height:44px;padding:10px 14px;background:var(--color-surface-tertiary);color:var(--color-text);font-weight:800}.compact-action{min-height:36px;padding:8px 10px;background:var(--color-surface-tertiary);color:var(--color-text);font-weight:850}.delete-hole{min-height:100%;padding:8px 10px;background:var(--color-danger-soft);color:var(--color-danger);border:1px solid var(--color-danger);font-weight:850}.delete-hole.confirm{background:var(--color-danger);color:var(--color-on-primary);border-color:var(--color-danger)}button:disabled{cursor:not-allowed;opacity:.52}.alert{margin-bottom:var(--space-4);padding:12px 14px;border:1px solid var(--color-danger);border-radius:var(--radius-sm);background:var(--color-danger-soft);color:var(--color-danger);font-weight:800}.round-pill{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:flex-end;max-width:min(620px,100%);padding:var(--space-2);border-radius:var(--radius-sm);background:var(--color-text);color:var(--color-on-primary)}.round-pill button{display:grid;grid-template-columns:30px 1fr;gap:1px 7px;align-items:center;min-width:110px;padding:7px 9px;text-align:left;background:var(--color-on-primary-subtle);color:var(--color-on-primary);border:1px solid rgba(255,255,255,.12)}.round-pill button>small{grid-column:2}.round-player-avatar{grid-row:1 / span 2;display:grid;place-items:center;width:30px;height:30px;overflow:hidden;border-radius:var(--radius-pill);object-fit:cover;background:var(--color-on-primary-hover);color:inherit;font-weight:950}.round-pill button.active{background:var(--color-on-primary);color:var(--color-text);border-color:var(--color-on-primary)}.round-pill .add-player-top{min-width:54px;grid-template-columns:1fr;justify-items:center;text-align:center}.round-pill .add-player-top small{grid-column:1}.round-pill .add-player-top span{font-size:1.3rem;line-height:1}.round-pill span{font-size:.86rem;font-weight:950}.round-pill small{color:inherit;opacity:.78;font-size:.72rem;font-weight:850}.player-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:var(--space-4);background:var(--color-overlay)}.player-modal{width:min(430px,100%);display:grid;gap:var(--space-4);padding:var(--space-4)}.add-player-modal-form{display:grid;gap:var(--space-3)}.round-list,.holes-list,.shot-list{display:grid;gap:var(--space-2);margin-top:var(--space-4)}.round-list-row,.round-open,.hole-main{display:grid;gap:3px;width:100%;padding:var(--space-3);text-align:left;background:var(--color-surface-secondary);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.round-list-row.with-action{grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);align-items:stretch;padding:0;border:0;background:transparent}.round-list-row.with-action .compact-action{min-height:100%}.round-open{cursor:pointer}.round-list span,.round-open span,.hole-main span{font-weight:900}.archive-panel{max-width:720px}.tracker-grid{grid-template-columns:minmax(0,1fr) 330px;grid-template-areas:"card card" "memory memory" "hole round" "score round" "stats round" "archive round";align-items:start}.score-strip,.split-strip{grid-area:score;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.split-strip{grid-area:split;grid-template-columns:repeat(2,minmax(0,1fr))}.score-strip div,.split-strip div{min-height:74px;padding:13px;border-radius:var(--radius-sm);background:var(--color-primary-strong);color:var(--color-on-primary);display:grid;align-content:center}.split-strip div{grid-template-columns:1fr auto auto auto auto;align-items:baseline;column-gap:var(--space-2);background:var(--color-primary)}.score-strip span,.split-strip span{color:var(--color-primary-muted);font-weight:800;font-size:.8rem}.score-strip strong{font-size:1.85rem;line-height:1}.split-strip strong{font-size:1.35rem;line-height:1}.split-strip small{color:var(--color-primary-muted);font-weight:800}.hole-panel{grid-area:hole}.round-panel{grid-area:round}.detail-panel{grid-area:detail}.stats-panel{grid-area:stats}.archive-toggle-panel{grid-area:archive;display:grid;gap:var(--space-2)}.hole-map-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:var(--space-4);background:var(--color-overlay)}.hole-map-modal{width:min(720px,100%);max-height:min(760px,calc(100vh - 36px));overflow:auto;display:grid;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md)}.hole-map{width:100%;height:min(62vh,520px);min-height:240px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-map-bg)}.hole-map text{fill:var(--color-text);font-size:18px;font-weight:900;paint-order:stroke;stroke:var(--color-on-primary);stroke-width:4px}.embedded-golf-guide{width:100%;height:min(68vh,560px);min-height:420px;overflow:hidden;border-radius:var(--radius-md);background:var(--color-media-stage);box-shadow:var(--shadow-md)}.embedded-golf-guide img{display:block;width:100%;height:100%;object-fit:contain}.embedded-guide-hole-picker{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:var(--space-1)}.embedded-guide-hole-picker button{min-height:34px;padding:4px 2px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-secondary);color:var(--color-primary-strong);font-size:.76rem;font-weight:900;cursor:pointer}.embedded-guide-hole-picker button.active{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.embedded-guide-links{display:flex;flex-wrap:wrap;gap:var(--space-2) 16px}.golf-guide-source-link{width:fit-content;color:var(--color-primary);font-size:.78rem;font-weight:900;text-decoration:none}.golf-guide-source-link:hover{text-decoration:underline}.printed-hole-guide{display:grid;gap:var(--space-3)}.hole-map.detailed{background:var(--color-map-bg-detailed);border-color:var(--color-border)}.guide-water{fill:var(--color-water);stroke:var(--color-water-edge);stroke-width:2}.guide-fairway{fill:var(--color-fairway);stroke:var(--color-fairway-edge);stroke-width:2}.guide-green{fill:var(--color-green);stroke:var(--color-green-edge);stroke-width:2.5}.guide-tee{fill:var(--color-tee);stroke:var(--color-tee-edge);stroke-width:2}.guide-bunker{fill:var(--color-bunker);stroke:var(--color-bunker-edge);stroke-width:2}.guide-play-line{fill:none;stroke:#ffffffe0;stroke-width:3;stroke-dasharray:7 7;stroke-linecap:round}.guide-pin line{stroke:var(--color-primary-strong);stroke-width:3}.guide-pin path{fill:var(--color-danger);stroke:var(--color-danger);stroke-width:1.5}.hole-map .guide-label{fill:var(--color-primary-strong);stroke:#ffffffbf;stroke-width:3px;font-size:12px;letter-spacing:.08em}.guide-hole-number{fill:var(--color-primary-strong);stroke:var(--color-on-primary);stroke-width:2}.hole-map .guide-hole-number-text{fill:var(--color-on-primary);stroke:none;font-size:16px}.hole-guide-legend{display:flex;flex-wrap:wrap;gap:var(--space-2) 14px;padding:9px 11px;border-radius:var(--radius-sm);background:var(--color-surface-secondary)}.hole-guide-legend span{display:flex;align-items:center;gap:var(--space-1);color:var(--color-text-secondary);font-size:.72rem;font-weight:850}.hole-guide-legend i{width:13px;height:13px;border-radius:4px}.hole-guide-legend .fairway{background:var(--color-fairway)}.hole-guide-legend .green{background:var(--color-green)}.hole-guide-legend .bunker{background:var(--color-bunker)}.hole-guide-legend .water{background:var(--color-water)}.hole-map-empty{display:grid;place-items:center;gap:var(--space-1);min-height:180px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-secondary);text-align:center}.hole-map-empty strong{color:var(--color-text)}.scorecard-panel{grid-area:card;display:grid;gap:var(--space-3)}.scorecard-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.scorecard-totals div{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2px 8px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--color-primary-strong);color:var(--color-on-primary)}.scorecard-totals span{color:var(--color-primary-muted);font-size:.75rem;font-weight:850}.scorecard-totals strong{grid-row:1 / span 2;grid-column:2;font-size:1.55rem}.scorecard-totals small{color:var(--color-primary-muted);font-size:var(--font-size-xs)}.round-memory-panel{grid-area:memory;display:grid;gap:var(--space-4);padding:var(--space-4)}.photo-upload{display:inline-grid;place-items:center;cursor:pointer}.photo-upload.disabled{cursor:not-allowed;opacity:.52}.photo-upload input{position:absolute;width:1px;height:1px;min-height:0;overflow:hidden;opacity:0;pointer-events:none}.photo-upload-help{flex-basis:100%;color:var(--color-text-muted);text-align:right}@media (max-width: 560px){.photo-upload-help{text-align:left}}.round-memory-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--space-3)}.round-memory-item{display:grid;gap:var(--space-2);margin:0}.round-memory-item .delete-hole{min-height:40px}.round-memory-photo{display:block;width:100%;aspect-ratio:4 / 3;border-radius:var(--radius-sm);object-fit:cover;background:var(--color-surface-tertiary)}.round-memory-empty{display:grid;place-items:center;gap:var(--space-1);min-height:150px;padding:var(--space-5);border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-secondary);text-align:center}.round-memory-empty>span{font-size:2rem}.round-memory-empty strong{color:var(--color-text)}.scorecard-nine{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:var(--space-2);align-items:stretch}.scorecard-cell{display:grid;justify-items:center;align-content:center;gap:var(--space-1);min-width:0;min-height:58px;border-radius:var(--radius-sm);background:var(--color-surface-secondary);border:1px solid var(--color-border);cursor:pointer}.scorecard-cell:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.scorecard-cell span{color:var(--color-text-muted);font-size:.78rem;font-weight:900}.scorecard-score{display:grid;place-items:center;width:32px;height:32px;color:var(--color-text);font-size:1.02rem;line-height:1}.scorecard-score.birdie{border:2px solid var(--color-score-birdie);border-radius:var(--radius-pill);color:var(--color-score-birdie)}.scorecard-score.bogey{border:2px solid var(--color-score-bogey);border-radius:5px;color:var(--color-score-bogey)}.scorecard-score.empty{color:var(--color-text-muted)}.scorecard-panel{overflow:hidden;padding:0;border:2px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-surface)}.real-scorecard-player{display:grid;grid-template-columns:34px minmax(0,1fr) 52px 52px 30px;align-items:center;gap:var(--space-2);min-height:72px;padding:8px 14px;background:var(--color-surface);color:var(--color-text)}.real-scorecard-player>div{display:grid;gap:3px;min-width:0}.real-scorecard-player>div strong{overflow:hidden;font-size:1.28rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.real-scorecard-player>div small{font-size:.78rem}.real-scorecard-player>strong{font-size:1.3rem;font-weight:500;text-align:center}.real-scorecard-player .scorecard-position-number{text-align:left}.real-scorecard-player .under-par{color:var(--color-score-birdie);font-size:1.75rem;font-weight:800}.real-scorecard-wrap{width:100%;overflow:hidden}.real-scorecard{width:100%;table-layout:fixed;border-collapse:collapse;color:var(--color-text);font-size:.84rem}.real-scorecard th,.real-scorecard td{height:30px;box-sizing:border-box;padding:3px 2px;border-bottom:1px solid var(--color-border);text-align:center}.real-scorecard th:first-child{width:18%;padding-left:14px;text-align:left}.real-scorecard th:last-child,.real-scorecard td:last-child{width:7%;font-weight:800}.real-scorecard thead th{height:32px;border:0;background:var(--color-primary);color:var(--color-on-primary);font-size:.8rem;font-weight:800}.real-scorecard tbody th{font-weight:500}.real-scorecard .result-row th,.real-scorecard .result-row td{font-weight:900}.real-score{width:27px;height:27px;display:inline-grid;place-items:center;padding:0;border-radius:0;background:transparent;color:var(--color-text);font-weight:900;cursor:pointer}.real-score.birdie{border:2px solid var(--color-score-birdie);border-radius:50%;color:var(--color-score-birdie)}.real-score.bogey{border:2px solid var(--color-score-bogey);border-radius:4px;color:var(--color-score-bogey)}.real-score.empty{color:var(--color-text-muted)}.real-scorecard-footer{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);padding:15px 14px;background:var(--color-surface);color:var(--color-text)}.real-scorecard-footer span:nth-child(2){text-align:center}.real-scorecard-footer span:last-child{text-align:right}.real-scorecard-footer strong{color:var(--color-text);font-size:1.18rem}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.panel-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:flex-end}.stat-note{color:var(--color-text-muted);font-size:.86rem;font-weight:800}.archive-toggle{display:flex;align-items:center;gap:var(--space-3);width:fit-content;color:var(--color-text);font-weight:900}.archive-toggle input{width:20px;min-height:20px;accent-color:var(--color-primary)}.manual-course-fields{display:grid;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-secondary)}.manual-holes{display:grid;gap:var(--space-2);max-height:430px;overflow:auto;padding-right:4px}.manual-hole-row{display:grid;grid-template-columns:72px minmax(80px,1fr) minmax(90px,1fr) auto;gap:var(--space-2);align-items:end;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.manual-hole-row>span{align-self:center;color:var(--color-text);font-weight:950}.manual-hole-row label{gap:var(--space-1);font-size:.78rem}.manual-hole-row input,.manual-hole-row select{min-height:38px;padding:7px 9px}.admin-panel{max-width:860px;display:grid;gap:var(--space-4)}.version-history{display:grid;gap:var(--space-5)}.version-history-intro{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--color-primary-strong),var(--color-primary));color:var(--color-on-primary)}.version-history-intro h3,.version-history-intro p{margin:0}.version-history-intro small{color:var(--color-text-on-dark-muted)}.current-version-badge{flex:0 0 auto;padding:8px 12px;border:1px solid var(--color-accent);border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-text);font-size:.75rem;font-weight:950}.version-timeline{position:relative;display:grid;gap:var(--space-4);padding-left:24px}.version-timeline:before{content:"";position:absolute;top:10px;bottom:10px;left:7px;width:2px;background:var(--color-border-strong)}.version-timeline>article{position:relative}.version-marker{position:absolute;z-index:1;top:21px;left:-23px;width:14px;height:14px;border:3px solid var(--color-surface-secondary);border-radius:50%;background:var(--color-text-muted);box-shadow:0 0 0 2px var(--color-border-strong)}.version-timeline article.current .version-marker{background:var(--color-accent);box-shadow:0 0 0 2px var(--color-primary)}.version-card{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md)}.version-timeline article.current .version-card{border-color:var(--color-success);background:var(--color-surface-secondary)}.version-card>header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.version-card>header>div{display:flex;align-items:center;gap:var(--space-2)}.version-number{color:var(--color-primary);font-weight:950}.version-category{padding:4px 7px;border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:900;text-transform:uppercase}.version-card time{color:var(--color-text-muted);font-size:.72rem}.version-card h4,.version-card p{margin:0}.version-card p{color:var(--color-text-muted);font-size:.86rem}.version-card ul{display:grid;gap:var(--space-1);margin:0;padding-left:19px;color:var(--color-text-muted);font-size:.8rem}.version-card footer{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2);padding-top:9px;border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:.72rem}.admin-user-management{display:grid;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:linear-gradient(145deg,var(--color-surface-secondary),var(--color-success-soft))}.admin-section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.admin-user-list{display:grid;gap:var(--space-2)}.admin-user-card{display:grid;grid-template-columns:42px minmax(0,1fr) 150px auto;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.admin-user-card.disabled{opacity:.68;background:var(--color-surface-secondary)}.admin-user-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--color-primary);color:var(--color-on-primary);font-weight:950}.admin-user-identity{display:grid;gap:2px;min-width:0}.admin-user-identity strong{overflow:hidden;text-overflow:ellipsis}.admin-user-card label{gap:3px;font-size:.7rem}.admin-user-card select{min-height:38px;padding:6px 8px}.player-hub{grid-column:1 / -1;display:grid;gap:var(--space-3);min-width:0}.player-hub-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);padding:5px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.player-hub-tabs button{display:grid;gap:2px;min-height:56px;padding:9px 12px;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);text-align:left;cursor:pointer}.player-hub-tabs button span{color:inherit;font-weight:950}.player-hub-tabs button small{color:inherit;font-size:var(--font-size-xs)}.player-hub-tabs button.active{background:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-sm)}.user-directory{grid-column:1 / -1;display:grid;gap:var(--space-5)}.user-directory-layout{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:var(--space-4)}.user-directory-list{display:grid;align-content:start;gap:var(--space-2)}.user-directory-list button{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary);color:var(--color-primary-strong);text-align:left;cursor:pointer}.user-directory-list button.active{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:inset 0 0 0 1px var(--color-primary)}.directory-avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--color-primary);color:var(--color-on-primary);font-weight:950}.user-directory-list button>span:nth-child(2){display:grid;min-width:0}.user-directory-list strong,.user-directory-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-directory-list b{padding:3px 7px;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-text);font-size:var(--font-size-xs)}.modern-view-courses{grid-template-columns:1fr}.course-directory{display:grid;gap:var(--space-5)}.course-directory>label{max-width:460px}.course-round-list{grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:var(--space-3);margin-top:0}.course-districts{display:grid;gap:var(--space-5)}.course-district{display:grid;gap:var(--space-3);padding:15px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:linear-gradient(145deg,var(--color-surface-secondary),var(--color-surface-secondary))}.course-district>header{display:flex;align-items:end;justify-content:space-between;gap:var(--space-3);padding-bottom:10px;border-bottom:1px solid var(--color-border)}.course-district>header h3,.course-district>header p{margin:0}.course-list-entry{display:grid;min-width:0;gap:var(--space-3)}.course-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"mark copy" "facts facts" "action action";gap:11px 12px;min-height:190px;padding:var(--space-4);overflow:hidden;border:1px solid var(--color-on-primary-border);border-radius:var(--radius-lg);background:radial-gradient(circle at 100% 0,var(--color-accent-glow),transparent 36%),linear-gradient(145deg,var(--color-primary-strong),var(--color-primary));color:var(--color-on-primary);box-shadow:var(--shadow-md);text-align:left;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.course-card:after{content:"";position:absolute;right:-33px;bottom:-44px;width:112px;height:112px;border:15px solid rgba(255,255,255,.055);border-radius:50%;pointer-events:none}.course-card:hover{transform:translateY(-3px);border-color:var(--color-accent-border);box-shadow:var(--shadow-md)}.course-card.is-active{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent),var(--shadow-md)}.course-card:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.course-card-mark{grid-area:mark;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--color-accent-border);border-radius:var(--radius-md);background:var(--color-on-primary-soft);font-size:1.2rem}.course-card-copy{grid-area:copy;display:grid;align-content:center;gap:var(--space-1);min-width:0}.course-card-copy strong{font-size:.96rem;line-height:1.2}.course-card-copy small{overflow:hidden;color:var(--color-text-on-dark-muted);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap}.course-card-facts{grid-area:facts;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.course-card-facts>span{display:grid;gap:1px;padding:9px 10px;border:1px solid var(--color-on-primary-border);border-radius:var(--radius-md);background:var(--color-on-primary-subtle);color:var(--color-text-on-dark-muted);font-size:.7rem}.course-card-facts b{color:var(--color-on-primary);font-size:1rem}.course-card-action{grid-area:action;display:flex;align-items:center;justify-content:space-between;align-self:end;padding-top:10px;border-top:1px solid var(--color-on-primary-border);color:var(--color-accent);font-size:.72rem;font-weight:900}.course-card-action b{font-size:1rem;transition:transform .16s ease}.course-card:hover .course-card-action b{transform:translate(3px)}@media (max-width: 650px){.course-round-list{grid-template-columns:1fr}.course-district{padding:var(--space-3)}}.course-added-meta{display:block;margin-top:4px;color:var(--color-text-muted)}.course-directory-detail{display:grid;gap:var(--space-4);min-width:0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.course-directory-detail h2,.course-directory-detail p{margin:0}.course-facts{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.course-facts span{padding:7px 10px;border-radius:var(--radius-pill);background:var(--color-surface-secondary);color:var(--color-text-secondary);font-size:.8rem}.course-hole-overview{display:grid;gap:var(--space-1);overflow-x:auto}.course-hole-row{display:grid;grid-template-columns:repeat(6,minmax(52px,1fr));gap:var(--space-2);min-width:420px;padding:7px 9px;border-radius:var(--radius-sm);background:var(--color-surface-secondary);text-align:center}.course-hole-row.heading{background:var(--color-primary-strong);color:var(--color-on-primary);font-size:.7rem;font-weight:900;text-transform:uppercase}.community-course-import{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-secondary)}.community-course-import h3,.community-course-import p{margin:0}.community-course-review{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.directory-profile{display:grid;align-content:start;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}.directory-profile-header{display:flex;align-items:center;gap:13px;padding-bottom:14px;border-bottom:1px solid var(--color-border)}.directory-profile-header>div{display:grid;gap:3px}.directory-profile-header h2,.directory-profile-header p{margin:0}.directory-profile-header small{color:var(--color-text-muted)}.account-public-profile{display:grid;gap:11px;padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.account-name-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.email-visibility{display:flex;align-items:center;gap:var(--space-2)}.email-visibility input{width:18px;min-height:18px;accent-color:var(--color-primary)}.directory-stat-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}.directory-stat-cards div{display:grid;gap:3px;padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-tertiary)}.directory-stat-cards span{color:var(--color-text-muted);font-size:.7rem}.directory-stat-cards strong{color:var(--color-primary-strong);font-size:1.2rem}.directory-profile-actions{display:flex;justify-content:flex-end}.directory-profile>.directory-profile-header{order:1}.directory-profile>.directory-round-history{order:2}.account-profile-settings{border:1px solid var(--color-border)}.account-profile-settings h3{margin:0}.directory-profile>.stats-section-title{order:3}.directory-profile>.player-stat-cards{order:4}.directory-profile>.player-stat-columns{order:5}.directory-profile>.strength-grid{order:6}.directory-round-history{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.directory-round-history>header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.directory-round-history h3,.directory-round-history p{margin:0}.directory-round-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.directory-round-row{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-1);min-width:0}.directory-round-open{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-2);min-width:0;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);text-align:left;cursor:pointer}.directory-round-open:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.directory-round-date{padding:4px 6px;border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:900}.directory-round-open>span:nth-child(2){display:grid;min-width:0;gap:2px}.directory-round-list strong,.directory-round-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.directory-round-list strong{font-size:.78rem}.directory-round-list small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.directory-round-list b{color:var(--color-primary)}.directory-round-archive{min-height:32px;padding:5px 9px;border:1px solid var(--color-primary-muted);border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary);font-size:.7rem;font-weight:900;cursor:pointer}.directory-round-archive:hover{border-color:var(--color-primary)}.directory-round-archive:disabled{cursor:wait;opacity:.55}.admin-login{display:grid;gap:var(--space-3);max-width:360px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-secondary)}.inline-error{margin:0;color:var(--color-danger);font-weight:850}.admin-add-player{display:grid;grid-template-columns:minmax(180px,1fr) 120px auto;gap:var(--space-3);align-items:end;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-secondary)}.admin-player-list{display:grid;gap:var(--space-2)}.admin-player-row{display:grid;grid-template-columns:minmax(180px,1fr) 110px auto auto;gap:var(--space-2);align-items:end;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-secondary)}.admin-player-row label,.admin-add-player label{gap:var(--space-1);font-size:.78rem}.admin-player-row input,.admin-add-player input{min-height:38px;padding:7px 9px}.admin-course-editor{display:grid;gap:var(--space-3);padding-top:6px;border-top:1px solid var(--color-border)}.admin-course-search{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:var(--space-3);align-items:end;padding:var(--space-3);border:1px solid var(--color-primary-muted);border-radius:var(--radius-sm);background:var(--color-surface-secondary)}.admin-course-search>small{grid-column:1 / -1}.admin-course-search-result{display:grid;gap:var(--space-1);padding:var(--space-3);border-left:4px solid var(--color-primary);border-radius:6px;background:var(--color-surface-secondary);color:var(--color-text-secondary)}.admin-course-search-result strong{color:var(--color-text)}.admin-course-search-result.duplicate{border-left-color:var(--color-warning);background:var(--color-warning-soft)}.course-duplicate-warning{padding:9px 10px;border-radius:var(--radius-sm);background:var(--color-warning-soft);color:var(--color-warning);font-weight:900}.admin-course-search-result a{width:fit-content;color:var(--color-primary);font-weight:850}.admin-course-search-choices{display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-primary-muted);border-radius:var(--radius-sm);background:var(--color-surface-secondary)}.admin-course-search-choices>div{display:grid;gap:2px}.admin-course-search-choices button{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;padding:11px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-primary-strong);text-align:left;cursor:pointer}.admin-course-search-choices button span{display:grid;gap:2px}.admin-course-search-choices button small{color:var(--color-text-muted)}.admin-course-search-choices button b{white-space:nowrap;font-size:.82rem}.admin-course-search-choices button.active{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-border)}.course-import-warning{color:var(--color-warning);font-weight:800}.admin-course-form{display:grid;gap:var(--space-3)}.admin-course-holes{display:grid;gap:var(--space-2);max-height:520px;overflow:auto;padding-right:4px}.admin-course-hole-row{display:grid;grid-template-columns:72px minmax(74px,.8fr) minmax(84px,.8fr) minmax(96px,1fr) auto;gap:var(--space-2);align-items:end;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-secondary)}.admin-course-hole-row>span{align-self:center;color:var(--color-text);font-weight:950}.admin-course-hole-row label{gap:var(--space-1);font-size:.78rem}.admin-course-hole-row input,.admin-course-hole-row select{min-height:38px;padding:7px 9px}.player-setup{display:grid;gap:var(--space-3)}.player-setup-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,1fr) minmax(110px,150px) auto;gap:var(--space-3);align-items:end}.player-setup-row .ghost-action{min-height:44px;white-space:nowrap}.hole-title-block{min-width:0}.hole-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);min-width:0}.hole-title-button{padding:0;background:transparent;color:var(--color-text);font-size:1.15rem;font-weight:900;line-height:1.15;text-align:left}.hole-guide-button{min-height:32px;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-primary-soft);color:var(--color-primary);font-size:.72rem;font-weight:950;cursor:pointer}.hole-guide-button:hover{background:var(--color-primary);color:var(--color-on-primary)}.mini-shot-list{display:flex;gap:var(--space-2);max-width:min(100%,520px);overflow-x:auto;padding:2px 0}.mini-shot{display:grid;flex:0 0 auto;gap:1px;min-width:82px;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-secondary);color:var(--color-text);font-size:.78rem;font-weight:950}.mini-shot small{color:var(--color-text-muted);font-size:.68rem;font-weight:850;white-space:nowrap}.mini-shot.empty{min-width:78px;color:var(--color-text-muted);font-weight:850}.mini-shot.water-shot{border-color:var(--color-info);background:var(--color-info-soft);color:var(--color-info)}.mini-shot.water-shot small{color:var(--color-info)}.mini-shot.bunker-shot{border-color:var(--color-warning);background:var(--color-warning-soft);color:var(--color-warning)}.mini-shot.bunker-shot small{color:var(--color-warning)}.mini-shot.green-shot{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success)}.mini-shot.green-shot small{color:var(--color-success)}.mini-shot.lost-shot{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger)}.mini-shot.lost-shot small{color:var(--color-danger)}.hole-allowance{display:block;margin-top:5px;color:var(--color-text-muted);font-size:.8rem;font-weight:900}.hole-score{display:grid;justify-items:end;gap:2px}.hole-score span{color:var(--color-text-muted);font-weight:800}.hole-score strong{color:var(--color-primary);font-size:1.8rem;line-height:1}.quick-shot-controls{display:grid;gap:var(--space-3);margin-top:var(--space-4)}.hole-quick-picker{display:grid;gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.hole-quick-picker>span{color:var(--color-text-muted);font-size:.7rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.hole-quick-picker>div{display:grid;grid-template-columns:repeat(18,minmax(0,1fr));gap:var(--space-1)}.hole-quick-picker button{min-width:0;min-height:34px;padding:4px 2px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-primary-strong);font-size:.78rem;font-weight:900;cursor:pointer}.hole-quick-picker button.active{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--shadow-md)}.quick-shot-controls .hole-quick-picker{position:relative;z-index:1;margin-top:0;padding:10px;background:var(--color-on-primary-subtle)}.quick-shot-controls .hole-quick-picker>span{color:var(--color-text-on-dark-muted)}.quick-shot-controls .hole-quick-picker button{border-color:var(--color-on-primary-border);background:var(--color-on-primary-soft);color:var(--color-on-primary)}.quick-shot-controls .hole-quick-picker button.active{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-text)}.hole-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin:18px 0}.course-distances{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:-6px 0 16px}.course-distances span{border-radius:var(--radius-pill);background:var(--color-surface-tertiary);padding:7px 10px;color:var(--color-text-secondary);font-weight:850}.player-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);margin-top:var(--space-4)}.player-picker button{display:grid;gap:3px;min-height:58px;padding:var(--space-3);text-align:left;background:var(--color-surface-secondary);color:var(--color-text);border:1px solid var(--color-border)}.player-picker button span{font-weight:900}.player-picker button em{color:var(--color-text-muted);font-style:normal;font-size:.78rem;font-weight:850;white-space:nowrap}.player-picker button.active{border-color:var(--color-primary);background:var(--color-primary-soft)}.add-player-form{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,1fr) 110px auto;gap:var(--space-2);margin-top:var(--space-3)}.shot-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.shot-actions button{min-height:76px;display:grid;align-content:center;gap:var(--space-1);padding:11px;background:var(--color-surface-secondary);color:var(--color-text);border:1px solid var(--color-border-strong);text-align:left}.shot-actions button span{font-weight:950}.shot-action-icon{width:24px;height:24px;display:none;place-items:center}.shot-action-icon svg{width:100%;height:100%;overflow:visible}.shot-actions .danger-action{background:var(--color-info-soft);border-color:var(--color-info-soft)}.shot-actions .success-action{background:var(--color-primary-soft);border-color:var(--color-success);color:var(--color-success)}.shot-actions .bunker-action{background:var(--color-warning-soft);border-color:var(--color-warning);color:var(--color-warning)}.shot-actions .putt-action{background:var(--color-primary-strong);border-color:var(--color-primary-strong);color:var(--color-on-primary)}.shot-actions .putt-action small{color:var(--color-primary-muted)}.quick-shot-controls{position:relative;padding:var(--space-4);overflow:hidden;border-radius:var(--radius-lg);background:radial-gradient(circle at 90% 0,var(--color-accent-glow),transparent 30%),linear-gradient(145deg,var(--color-primary-strong),var(--color-primary));box-shadow:inset 0 1px var(--color-on-primary-border),0 14px 30px #102f202e}.quick-shot-controls:after{content:"";position:absolute;right:-55px;bottom:-90px;width:200px;height:200px;border:24px solid rgba(255,255,255,.045);border-radius:50%;pointer-events:none}.quick-shot-heading,.shot-choice-section{position:relative;z-index:1}.quick-shot-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.quick-shot-heading>div{display:inline-flex;align-items:center;gap:var(--space-2);padding:8px 13px;border:1px solid var(--color-accent-border);border-radius:var(--radius-pill);background:var(--color-primary-strong);color:var(--color-on-primary);box-shadow:var(--shadow-md)}.quick-shot-heading>div strong{font-size:1.05rem}.quick-shot-heading>small{color:var(--color-border);font-weight:850}.shot-choice-section{display:grid;gap:var(--space-2);padding-top:3px}.shot-choice-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);color:var(--color-on-primary)}.shot-choice-title strong{font-size:.82rem;letter-spacing:.02em}.shot-choice-title small{padding:3px 8px;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-text);font-size:var(--font-size-xs);font-weight:900}.shot-club-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-2)}.shot-club-grid button{position:relative;min-width:0;min-height:46px;padding:7px 5px;overflow:visible;border:1px solid var(--color-on-primary-hover);border-radius:var(--radius-md);background:var(--color-on-primary-subtle);color:var(--color-border);cursor:pointer}.shot-club-grid button:hover{border-color:var(--color-on-primary-border-strong);transform:translateY(-1px)}.shot-club-grid button.selected{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-text);box-shadow:var(--shadow-md)}.shot-club-grid button.selected:after{content:"✓";position:absolute;top:-6px;right:-5px;width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:var(--color-accent);color:var(--color-text);font-size:.7rem;font-weight:950}.shot-club-grid button span{display:block;overflow:hidden;font-size:.78rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.quick-shot-controls .shot-actions{gap:var(--space-2)}.quick-shot-controls .shot-actions button{min-height:64px;border-color:var(--color-on-primary-border);border-radius:var(--radius-md);background:var(--color-on-primary-soft);color:var(--color-on-primary)}.quick-shot-controls .shot-actions button small{color:var(--color-text-on-dark-muted)}.quick-shot-controls .shot-actions button:hover{border-color:var(--color-accent);background:var(--color-on-primary-hover)}.quick-shot-controls .shot-actions .bunker-action{border-color:var(--color-warning);background:var(--color-warning-soft);color:var(--color-warning)}.quick-shot-controls .shot-actions .bunker-action small{color:var(--color-warning)}.quick-shot-controls .shot-actions .danger-action{border-color:#f7a49180;background:var(--color-danger-overlay);color:var(--color-danger-soft)}.quick-shot-controls .shot-actions .water-action{border-color:var(--color-info);background:var(--color-info-soft);color:var(--color-info)}.quick-shot-controls .shot-actions .water-action small{color:var(--color-info)}.quick-shot-controls .shot-actions .success-action{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success)}.quick-shot-controls .shot-actions .success-action small{color:var(--color-success)}.quick-shot-controls .shot-actions .putt-action{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success)}.quick-shot-controls .shot-actions .putt-action small{color:var(--color-success)}.hole-result-summary{display:grid;gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.hole-result-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.hole-result-heading>div{display:grid;gap:1px}.hole-result-heading span{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:850}.hole-result-heading strong{color:var(--color-text);font-size:.9rem}.hole-result-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-1)}.hole-result-values div{display:grid;justify-items:center;gap:1px;min-height:48px;padding:6px 4px;border-radius:var(--radius-sm);background:var(--color-surface);text-align:center}.hole-result-values span{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:800}.hole-result-values strong{color:var(--color-primary);font-size:1.15rem;line-height:1}.hole-result-summary .mini-shot-list{display:flex;max-width:100%;overflow-x:auto}.mobile-shot-history,.mobile-hole-stats{display:none}.compact-round-totals{gap:var(--space-1)}.compact-round-totals div{min-height:48px;padding:8px 10px}.compact-round-totals span{font-size:var(--font-size-xs)}.compact-round-totals strong{font-size:1.25rem}.hole-footer{margin-top:var(--space-4)}.hole-footer .hole-navigation{width:100%}.hole-navigation{display:flex;gap:var(--space-2)}.holes-list{max-height:690px;overflow:auto;padding-right:4px}.hole-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);align-items:stretch}.hole-main{grid-template-columns:1fr auto}.hole-main small{grid-column:1 / -1}.hole-main.active{border-color:var(--color-primary);background:var(--color-primary-soft)}.detail-stats{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:12px 0}.detail-stats span{border-radius:var(--radius-pill);background:var(--color-surface-tertiary);padding:7px 10px;color:var(--color-text-secondary);font-weight:850}.shot-list{padding:0;list-style:none}.shot-list li{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;min-height:42px;padding:9px 11px;border-radius:var(--radius-sm);background:var(--color-surface-secondary);border:1px solid var(--color-border)}.shot-list span{font-weight:900}.shot-list strong{margin-left:auto}.stat-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin:14px 0 18px}.stat-cards div{min-height:86px;display:grid;align-content:center;gap:3px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-secondary)}.stat-cards span,.bar-row span{color:var(--color-text-muted);font-size:.8rem;font-weight:850}.stat-cards strong{color:var(--color-primary);font-size:1.7rem;line-height:1}.round-stat-comparison{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin:var(--space-4) 0 var(--space-5);padding:var(--space-3);overflow:hidden;border-radius:var(--radius-lg);background:radial-gradient(circle at 90% 0,var(--color-accent-glow),transparent 30%),linear-gradient(145deg,var(--color-primary-strong),var(--color-primary));box-shadow:inset 0 1px var(--color-on-primary-border),var(--shadow-md)}.round-stat-comparison:after{content:"";position:absolute;right:-65px;bottom:-105px;width:230px;height:230px;border:28px solid var(--color-on-primary-subtle);border-radius:50%;pointer-events:none}.round-stat-metric{position:relative;z-index:1;overflow:hidden;border:1px solid var(--color-on-primary-border);border-radius:var(--radius-md);background:var(--color-on-primary-subtle);box-shadow:var(--shadow-sm)}.round-stat-metric>header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:10px 12px;border-bottom:1px solid var(--color-on-primary-border);background:var(--color-on-primary-soft)}.round-stat-heading{display:flex;min-width:0;align-items:center;gap:var(--space-2)}.round-stat-icon{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border:1px solid var(--color-on-primary-border);border-radius:var(--radius-sm);background:var(--color-on-primary-soft);color:var(--color-on-primary)}.round-stat-icon svg{width:21px;height:21px}.round-stat-points .round-stat-icon{border-color:var(--color-accent-border);background:var(--color-accent-soft);color:var(--color-warning)}.round-stat-gir .round-stat-icon,.round-stat-fairway .round-stat-icon{background:var(--color-success-soft);color:var(--color-success)}.round-stat-putts .round-stat-icon{background:var(--color-info-soft);color:var(--color-info)}.round-stat-penalties .round-stat-icon{background:var(--color-danger-soft);color:var(--color-danger)}.round-stat-metric h3{color:var(--color-on-primary);font-size:.9rem}.round-stat-metric>header small{color:var(--color-text-on-dark-muted);font-size:var(--font-size-xs);font-weight:800}.round-stat-player-list{display:grid}.round-stat-player-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px var(--space-2);align-items:center;min-height:56px;padding:7px 12px;border-bottom:1px solid var(--color-on-primary-border)}.round-stat-player-list>div:last-child{border-bottom:0}.round-stat-player-list>div.winner{background:var(--color-warning-soft);box-shadow:inset 3px 0 0 var(--color-warning)}.round-stat-player-list span{overflow:hidden;color:var(--color-on-primary);font-size:.82rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.round-stat-player-list strong{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;color:var(--color-accent);font-size:1.15rem}.round-stat-player-list small{grid-column:1 / -1;color:var(--color-text-on-dark-muted);font-size:var(--font-size-xs)}.round-stat-player-list>div.winner span,.round-stat-player-list>div.winner small{color:var(--color-text)}.round-stat-player-list>div.winner strong{color:var(--color-warning)}.stat-trophy{font-size:.85rem;font-style:normal;line-height:1}.player-round-breakdowns{display:grid;gap:var(--space-4)}.player-round-breakdown{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.player-round-breakdown>header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.player-round-breakdown>header>div{display:grid;gap:2px}.player-round-breakdown>header>strong{color:var(--color-primary);font-size:.8rem}.round-score-results{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);margin-top:var(--space-3)}.round-score-results div{position:relative;display:grid;min-height:76px;align-content:center;gap:4px;overflow:hidden;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.round-score-results div:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--color-primary)}.round-score-results .birdie:before{background:var(--color-score-birdie)}.round-score-results .bogey:before,.round-score-results .double-bogey:before{background:var(--color-score-bogey)}.round-score-results span{color:var(--color-text-muted);font-size:.7rem;font-weight:850;line-height:1.25}.round-score-results strong{color:var(--color-primary-strong);font-size:1.45rem;line-height:1}.player-round-breakdown .stats-columns{margin-top:var(--space-3)}.player-round-breakdown h4{color:var(--color-text);font-size:.85rem}.stats-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}.bar-list{display:grid;gap:var(--space-2);margin-top:var(--space-3)}.bar-row{display:grid;grid-template-columns:minmax(80px,.8fr) minmax(80px,1.5fr) auto;gap:var(--space-2);align-items:center}.bar-row div{height:10px;overflow:hidden;border-radius:var(--radius-pill);background:var(--color-surface-tertiary)}.bar-row i{display:block;height:100%;border-radius:inherit;background:var(--color-primary)}.bar-row strong{color:var(--color-text);font-size:.9rem}.home-player-section{display:grid;gap:var(--space-3)}.stat-filter-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.home-player-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}.friend-add-button{min-height:40px;padding:8px 13px}.friend-profile-card{position:relative;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.friend-profile-card.active{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:inset 0 0 0 1px var(--color-primary)}.friend-profile-select{display:grid;grid-template-columns:36px 1fr;gap:3px 9px;align-items:center;width:100%;padding:10px 38px 10px 12px;text-align:left;background:transparent;color:var(--color-text);cursor:pointer}.friend-profile-select .player-avatar-small{grid-row:1 / span 2}.friend-profile-select>span{font-weight:950}.friend-profile-select>small{grid-column:2}.friend-remove{position:absolute;top:50%;right:8px;width:26px;height:26px;transform:translateY(-50%);border-radius:50%;background:var(--color-surface);color:var(--color-danger);font-size:1rem;cursor:pointer}.friend-picker-dialog{width:min(520px,100%);max-height:calc(100vh - 28px)}.friend-search-list{display:grid;gap:var(--space-2);overflow-y:auto;max-height:min(480px,55vh);padding-right:3px}.friend-search-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.friend-search-row>div{display:grid;gap:2px}.friend-added{color:var(--color-primary);font-size:.74rem;font-weight:900}.home-player-list>button{display:grid;grid-template-columns:36px 1fr;gap:3px 9px;align-items:center;width:100%;padding:10px 12px;text-align:left;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-secondary);color:var(--color-text);cursor:pointer}.home-player-list>button small{grid-column:2}.home-player-list>button.active{border-color:var(--color-primary);background:var(--color-primary-soft)}.home-player-list span{font-weight:950}.player-stat-detail,.head-to-head{display:grid;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-secondary)}.player-stat-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.player-profile-identity{display:flex;align-items:center;gap:var(--space-3)}.profile-handicap-editor{display:flex;align-items:end;gap:var(--space-2);padding:9px;border-radius:var(--radius-md);background:var(--color-surface-tertiary)}.profile-handicap-editor label{gap:3px;color:var(--color-primary);font-size:.7rem;text-transform:uppercase}.profile-handicap-editor input{width:88px;min-height:36px;padding:6px 9px;background:var(--color-surface);font-size:1rem;font-weight:900}.profile-handicap-editor .compact-action{min-height:36px}.player-avatar,.player-avatar-small{display:grid;place-items:center;flex:0 0 auto;overflow:hidden;border-radius:var(--radius-pill);object-fit:cover;background:var(--color-border);color:var(--color-primary);font-weight:950}.player-avatar{width:72px;height:72px;font-size:1.6rem}.player-avatar-small{grid-row:1 / span 2;width:36px;height:36px;font-size:.9rem}.avatar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.avatar-upload{display:inline-grid;place-items:center;cursor:pointer}.avatar-upload.disabled{cursor:not-allowed;opacity:.52}.avatar-upload input{position:absolute;width:1px;height:1px;min-height:0;overflow:hidden;opacity:0;pointer-events:none}.avatar-crop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:var(--space-4);background:var(--color-overlay)}.avatar-crop-dialog{width:min(420px,100%);max-height:calc(100vh - 24px);overflow:auto;display:grid;justify-items:stretch;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md)}.avatar-crop-viewport{position:relative;justify-self:center;overflow:hidden;border:3px solid var(--color-primary);border-radius:var(--radius-pill);background:var(--color-border);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.avatar-crop-viewport:active{cursor:grabbing}.avatar-crop-viewport img{position:absolute;max-width:none;object-fit:fill;transform:translate(-50%,-50%);pointer-events:none;-webkit-user-select:none;user-select:none}.avatar-crop-dialog input[type=range]{min-height:28px;padding:0;accent-color:var(--color-primary)}.avatar-crop-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.player-profile-editor{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-secondary)}.profile-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.bag-editor{display:grid;gap:var(--space-2);margin:0;padding:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm)}.bag-editor legend{padding:0 5px;color:var(--color-text-secondary);font-weight:900}.bag-club-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-2)}.bag-club-grid label{display:flex;align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer}.bag-club-grid label.selected{border-color:var(--color-primary);background:var(--color-primary-soft)}.bag-club-grid input{width:17px;min-height:17px;accent-color:var(--color-primary)}.handicap-history{display:grid;gap:var(--space-2)}.handicap-history ol{display:grid;gap:var(--space-1);max-height:150px;overflow:auto;margin:0;padding:0;list-style:none}.handicap-history li{display:flex;justify-content:space-between;gap:var(--space-3);padding:7px 9px;border-radius:var(--radius-sm);background:var(--color-surface)}.handicap-history li span{color:var(--color-text-muted);font-size:.8rem;font-weight:800}.doughnut-chart{--hit: 0%;flex:0 0 auto;width:88px;height:88px;display:grid;place-items:center;align-content:center;border-radius:var(--radius-pill);background:conic-gradient(var(--color-primary) var(--hit),var(--color-border) 0);position:relative;overflow:hidden}.doughnut-chart:before{content:"";position:absolute;top:15px;right:15px;bottom:15px;left:15px;border-radius:inherit;background:var(--color-surface-secondary)}.doughnut-chart strong,.doughnut-chart span{position:relative;z-index:1;line-height:1}.doughnut-chart strong{color:var(--color-text);font-size:1.2rem}.doughnut-chart span{color:var(--color-text-muted);font-size:.72rem;font-weight:900}.player-stat-cards,.strength-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.player-stat-cards div,.strength-grid div,.par-average-list div{display:grid;gap:2px;min-height:70px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-secondary)}.player-stat-cards span,.strength-grid span,.par-average-list span{color:var(--color-text-muted);font-size:.76rem;font-weight:850}.player-stat-cards strong,.strength-grid strong,.par-average-list strong{color:var(--color-primary);font-size:1.25rem;line-height:1}.player-stat-columns{display:grid;gap:var(--space-4)}.player-result-bars,.par-average-list{display:grid;gap:var(--space-2);margin-top:var(--space-2)}.player-result-row{display:grid;grid-template-columns:74px minmax(70px,1fr) auto;gap:var(--space-2);align-items:center}.player-result-row span{color:var(--color-text-muted);font-size:.78rem;font-weight:850}.player-result-row div{height:12px;border-radius:var(--radius-pill);overflow:hidden;background:var(--color-surface-tertiary)}.player-result-row i{display:block;height:100%;border-radius:inherit;background:var(--color-primary)}.player-result-row strong{color:var(--color-text);font-size:.9rem}.compare-picker{display:flex;flex-wrap:wrap;gap:var(--space-2)}.compare-picker label{display:flex;align-items:center;gap:var(--space-2);width:fit-content;padding:7px 9px;border-radius:var(--radius-pill);background:var(--color-surface-tertiary);color:var(--color-text);font-size:.82rem}.compare-picker input{width:16px;min-height:16px;accent-color:var(--color-primary)}.comparison-table{display:grid;gap:var(--space-2);overflow-x:auto;padding-bottom:2px}.comparison-row{display:grid;grid-template-columns:minmax(92px,1.4fr) repeat(7,minmax(76px,1fr));gap:var(--space-2);min-width:720px;align-items:center;padding:8px 10px;border-radius:var(--radius-sm);background:var(--color-surface-secondary);color:var(--color-text);font-size:.82rem;font-weight:850}.comparison-row.heading{background:var(--color-primary-strong);color:var(--color-on-primary);font-size:.74rem;text-transform:uppercase}.user-head-to-head{margin-top:var(--space-4)}.head-to-head-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--space-4)}.head-to-head-heading h3,.head-to-head-heading p{margin:0}.head-to-head-heading label{min-width:190px}.round-owner-player{display:grid;gap:2px;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.round-owner-player span,.round-owner-player small{color:var(--color-text-muted);font-size:.78rem}.round-owner-player strong{color:var(--color-primary-strong)}.player-stat-detail{gap:var(--space-5);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.player-stat-detail>.player-stat-header{order:1;padding:4px 2px 16px;border-bottom:1px solid var(--color-border)}.player-stat-detail>.stats-section-title{order:2}.player-stat-detail>.player-stat-cards{order:3}.player-stat-detail>.player-stat-columns{order:4}.player-stat-detail>.strength-grid{order:5}.player-stat-detail>.player-profile-editor{order:6}.stats-section-title{display:flex;align-items:end;justify-content:space-between;gap:var(--space-3);padding-top:4px}.section-kicker{margin:0 0 3px;color:var(--color-primary);font-size:var(--font-size-xs);font-weight:950;letter-spacing:.09em;text-transform:uppercase}.player-stat-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.player-stat-cards div{min-height:82px;border:0;border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md)}.player-stat-columns{grid-template-columns:repeat(2,minmax(0,1fr));padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md)}.strength-grid div{border:0;border-radius:var(--radius-md);background:var(--color-surface-secondary)}.player-profile-editor{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:var(--space-4);padding:var(--space-5);border:0;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}.player-profile-editor .profile-editor-heading{grid-column:1 / -1;padding-bottom:14px;border-bottom:1px solid var(--color-border)}.player-profile-editor .avatar-actions{align-content:center;padding:var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.player-profile-editor>label{align-content:center;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.player-profile-editor .handicap-history{grid-column:1 / -1;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.bag-editor{grid-column:1 / -1;position:relative;gap:var(--space-3);padding:var(--space-4);overflow:hidden;border:0;border-radius:var(--radius-lg);background:radial-gradient(circle at 90% 0,var(--color-accent-glow),transparent 30%),linear-gradient(145deg,var(--color-primary-strong),var(--color-primary));box-shadow:inset 0 1px var(--color-on-primary-border),0 14px 30px #102f202e}.bag-editor:after{content:"";position:absolute;right:-40px;bottom:-75px;width:180px;height:180px;border:22px solid rgba(255,255,255,.045);border-radius:50%;pointer-events:none}.bag-editor legend{position:relative;z-index:1;display:inline-flex;align-items:center;gap:var(--space-3);margin-left:3px;padding:7px 12px;border:1px solid var(--color-accent-border);border-radius:var(--radius-pill);background:var(--color-primary-strong);color:var(--color-on-primary);box-shadow:var(--shadow-md);font-size:1.08rem;line-height:1}.bag-editor legend:before{content:"⛳"}.bag-editor legend small{padding:3px 8px;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-text);font-size:var(--font-size-xs)}.bag-description{position:relative;z-index:1;margin:0;color:var(--color-text-on-dark-muted);font-size:.78rem}.bag-club-grid{position:relative;z-index:1;grid-template-columns:repeat(5,minmax(0,1fr))}.bag-club-grid label{position:relative;min-height:48px;justify-content:center;padding:8px 7px;border-color:var(--color-on-primary-hover);border-radius:var(--radius-md);background:var(--color-on-primary-subtle);color:var(--color-border);text-align:center;transition:transform .15s ease,background .15s ease,border-color .15s ease}.bag-club-grid label:hover{transform:translateY(-2px);border-color:var(--color-on-primary-border-strong)}.bag-club-grid label.selected{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-text);box-shadow:var(--shadow-md)}.bag-club-grid label.limit-disabled{opacity:.42;cursor:not-allowed;transform:none}.bag-club-grid label.selected:after{content:"✓";position:absolute;top:-6px;right:-5px;width:19px;height:19px;display:grid;place-items:center;border-radius:50%;background:var(--color-accent);color:var(--color-text);font-size:.7rem;font-weight:950}.bag-club-grid input{position:absolute;width:1px;min-height:1px;opacity:0}.bag-club-grid span{overflow:hidden;font-size:.78rem;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.custom-club-editor{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-2)}.custom-club-editor label{display:grid;gap:var(--space-1);color:var(--color-border);font-size:.75rem;font-weight:850}.custom-club-editor input{min-height:42px;padding:8px 11px;border:1px solid var(--color-on-primary-border-strong);border-radius:var(--radius-sm);background:var(--color-on-primary-soft);color:var(--color-on-primary)}.custom-club-editor input::placeholder{color:var(--color-border)}.bag-club-custom{position:relative;min-width:0}.bag-club-custom label{width:100%;height:100%;box-sizing:border-box}.bag-club-custom>button{position:absolute;z-index:3;right:-5px;bottom:-6px;width:19px;height:19px;display:grid;place-items:center;padding:0;border:2px solid var(--color-primary-strong);border-radius:50%;background:var(--color-danger);color:var(--color-on-primary);font-size:.72rem;font-weight:950;line-height:1;cursor:pointer}.bag-club-custom>button:hover{background:var(--color-danger);transform:scale(1.08)}.admin-round-archive{display:grid;gap:var(--space-5);margin-top:var(--space-5)}.admin-round-group{display:grid;gap:var(--space-1);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.admin-round-group.archived{background:var(--color-surface-secondary)}.admin-round-summary{display:grid;align-content:center;gap:3px;padding:11px 12px}.admin-round-summary span{color:var(--color-text);font-weight:900}.archive-admin-actions{display:flex;gap:var(--space-2);align-items:stretch}.archive-admin-actions .delete-hole{min-height:36px}.admin-round-entry{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.admin-round-entry .round-list-row{border:0;border-radius:0}.admin-photo-manager{border-top:1px solid var(--color-border)}.admin-photo-manager summary{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;color:var(--color-primary);font-size:.82rem;font-weight:900;cursor:pointer;list-style:none}.admin-photo-manager summary::-webkit-details-marker{display:none}.admin-photo-manager summary:before{content:"▸";margin-right:7px}.admin-photo-manager[open] summary:before{content:"▾"}.admin-photo-manager summary span{margin-left:auto;min-width:24px;padding:2px 7px;border-radius:var(--radius-pill);background:var(--color-primary-soft);text-align:center}.admin-photo-manager>.muted{margin:0;padding:4px 12px 14px}.admin-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-3);padding:2px 12px 14px}.admin-photo-grid figure{display:grid;gap:var(--space-2);margin:0}.admin-photo-grid img{width:100%;aspect-ratio:1;border-radius:var(--radius-sm);background:var(--color-surface-tertiary);object-fit:cover}.admin-photo-grid .delete-hole{min-height:36px}.classic-return{margin-top:var(--space-2);padding:5px 9px;border-radius:var(--radius-pill);background:var(--color-surface-tertiary);color:var(--color-primary);font-size:.72rem;font-weight:900;cursor:pointer}.modern-shell{width:min(var(--content-width),calc(100% - 32px));padding-top:92px}.modern-topbar{position:fixed;z-index:35;top:0;left:0;right:0;height:70px;display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:var(--space-3);padding:0 max(16px,calc((100vw - var(--content-width)) / 2));background:var(--color-surface-glass);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.menu-trigger{width:44px;height:44px;display:grid;align-content:center;gap:var(--space-1);padding:11px;border-radius:var(--radius-md);background:var(--color-primary-strong);cursor:pointer}.menu-trigger span{height:2px;border-radius:2px;background:var(--color-surface)}.modern-brand{width:100%;min-width:0;justify-self:stretch;display:flex;align-items:center;gap:var(--space-3);padding:0;background:transparent;color:var(--color-text);cursor:pointer;text-align:left}.modern-brand img{width:40px;height:40px;object-fit:contain}.modern-brand>span{display:grid;min-width:0;gap:1px}.modern-brand strong{font-size:1.08rem}.modern-brand small{font-size:.7rem}.round-header-context{max-width:min(44vw,520px);padding-left:var(--space-3);border-left:1px solid var(--color-border-strong)}.round-header-context strong,.round-header-context small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.round-header-context strong{color:var(--color-primary-strong);font-size:.82rem}.round-header-context small{color:var(--color-text-muted);font-weight:800}.modern-profile{display:flex;align-items:center;gap:var(--space-2);padding:5px 9px 5px 5px;border-radius:var(--radius-pill);background:var(--color-surface-tertiary);color:var(--color-primary-strong);cursor:pointer}.modern-profile img,.modern-profile>span{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;object-fit:cover;background:var(--color-primary);color:var(--color-on-primary);font-weight:900}.modern-profile small{color:inherit;font-weight:900}.modern-version{font-size:.72rem;font-weight:850;color:var(--color-text-muted)}.header-login{min-height:38px;padding:8px 13px;border-radius:var(--radius-pill);background:var(--color-primary);color:var(--color-on-primary);font-size:.78rem;font-weight:900;cursor:pointer}.modern-profile.account-only{max-width:230px}.account-menu-wrap{position:relative;z-index:45;justify-self:end}.modern-profile b{color:var(--color-primary);font-size:.76rem}.account-menu-backdrop{position:fixed;z-index:41;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:transparent;cursor:default}.account-dropdown{position:absolute;z-index:42;top:calc(100% + 9px);right:0;width:260px;display:grid;gap:var(--space-1);padding:7px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md)}.account-dropdown button{display:grid;grid-template-columns:32px 1fr;align-items:center;gap:var(--space-2);padding:11px;border-radius:var(--radius-sm);background:transparent;color:var(--color-primary-strong);text-align:left;cursor:pointer}.account-dropdown button:hover{background:var(--color-primary-soft)}.account-dropdown button>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--color-surface-tertiary)}.account-dropdown button>div{display:grid;gap:2px}.account-dropdown small{font-size:var(--font-size-xs)}.account-dropdown button.account-logout{margin-top:3px;border-top:1px solid var(--color-border);border-radius:0 0 var(--radius-sm) var(--radius-sm);color:var(--color-danger)}.account-dropdown button.account-logout>span{background:var(--color-danger-soft);color:var(--color-danger)}.account-dropdown button.account-logout:hover{background:var(--color-danger-soft)}.auth-overlay{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:var(--space-4);background:var(--color-overlay);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.auth-dialog{position:relative;width:min(430px,100%);display:grid;justify-items:stretch;gap:var(--space-4);padding:26px;box-sizing:border-box;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}.auth-dialog>img{width:58px;height:58px;object-fit:contain}.auth-dialog form{display:grid;gap:var(--space-3)}.auth-text-action{padding:4px;background:transparent;color:var(--color-primary);font-size:.82rem;font-weight:850;text-decoration:underline;cursor:pointer}.auth-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:var(--color-surface-tertiary);color:var(--color-primary-strong);font-size:1.35rem;cursor:pointer}.account-dialog{max-height:calc(100vh - 24px);overflow-y:auto}.account-heading{display:flex;align-items:center;gap:var(--space-3);padding-right:34px}.account-heading>img,.account-heading>span{width:58px;height:58px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;object-fit:cover;background:var(--color-primary);color:var(--color-on-primary);font-size:1.3rem;font-weight:950}.password-change-form{padding-top:15px;border-top:1px solid var(--color-border)}.account-avatar-settings{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.success-message{margin:0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--color-primary-soft);color:var(--color-primary);font-size:.82rem;font-weight:850}.admin-invitations{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.admin-invitations form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:var(--space-2)}.admin-checkbox{display:flex;align-items:center;gap:var(--space-2);min-height:44px}.admin-checkbox input{width:18px;min-height:18px}.invitation-list{display:grid;gap:var(--space-2)}.invitation-list div{display:flex;justify-content:space-between;gap:var(--space-3);padding:8px 10px;border-radius:var(--radius-sm);background:var(--color-surface)}.menu-backdrop{position:fixed;z-index:69;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:var(--color-overlay);cursor:pointer}.modern-menu{position:fixed;z-index:70;inset:0 auto 0 0;width:min(330px,88vw);display:flex;flex-direction:column;padding:var(--space-4);box-sizing:border-box;overflow-y:auto;transform:translate(-105%);transition:transform .22s ease;background:var(--color-surface);box-shadow:var(--shadow-lg)}.modern-menu.open{transform:translate(0)}.modern-menu-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.modern-menu-head div{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text)}.modern-menu-head img{width:42px;height:42px}.modern-menu-head button{width:38px;height:38px;border-radius:50%;background:var(--color-surface-tertiary);color:var(--color-primary-strong);font-size:1.5rem;cursor:pointer}.modern-menu nav{display:grid;gap:var(--space-1)}.modern-menu nav>button{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:var(--space-2);width:100%;padding:11px;border-radius:var(--radius-md);background:transparent;color:var(--color-primary-strong);font-size:1rem;text-align:left;cursor:pointer}.modern-menu nav>button:hover{background:var(--color-primary-soft)}.modern-menu nav>button.active{background:var(--color-primary-soft);color:var(--color-primary);box-shadow:inset 3px 0 0 var(--color-primary)}.modern-menu nav>button>span{display:grid;gap:2px;font-weight:900}.modern-menu nav small{font-size:.7rem;font-weight:700}.menu-divider{margin:14px 10px 5px;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:950;letter-spacing:.08em;text-transform:uppercase}.menu-version{margin-top:auto;padding:20px 10px 0}.modern-hidden,.modern-secondary-hidden{display:none!important}.modern-view-home,.modern-view-new,.modern-view-stats,.modern-view-rounds{grid-template-columns:1fr}.modern-welcome{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:var(--space-5);grid-column:1 / -1;align-items:stretch;padding:clamp(26px,5vw,54px);border-radius:var(--radius-xl);background:linear-gradient(135deg,var(--color-primary-strong),var(--color-primary));box-shadow:var(--shadow-md);color:var(--color-on-primary)}.modern-welcome h1{color:var(--color-on-primary);font-size:clamp(2.3rem,6vw,4.8rem);letter-spacing:-.045em}.modern-welcome .eyebrow,.modern-welcome p{color:var(--color-primary-muted)}.welcome-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-5)}.modern-welcome .primary-action{background:var(--color-accent);color:var(--color-text)}.latest-round-card{position:relative;display:grid;align-content:center;gap:var(--space-2);min-height:190px;padding:var(--space-5);overflow:hidden;border:1px solid var(--color-on-primary-border);border-radius:var(--radius-lg);background:var(--color-on-primary-soft);color:var(--color-on-primary);text-align:left;cursor:pointer}.latest-round-card.has-photo{padding-right:42%}.latest-round-card>small,.latest-round-card>strong,.latest-round-card>span:not(.latest-photo-polaroid),.latest-round-card>b{position:relative;z-index:2}.latest-photo-polaroid{position:absolute;z-index:1;top:50%;right:-5px;width:39%;padding:6px 6px 18px;transform:translateY(-50%) rotate(6deg);border-radius:3px;background:var(--color-surface);box-shadow:var(--shadow-md);transition:transform .2s ease}.latest-round-card:hover .latest-photo-polaroid{transform:translateY(-50%) rotate(3deg) scale(1.03)}.latest-photo-polaroid img{display:block;width:100%;aspect-ratio:1;border-radius:1px;object-fit:cover;background:var(--color-border)}.latest-round-card small,.latest-round-card span{color:var(--color-primary-muted)}.latest-round-card strong{font-size:1.35rem}.latest-round-card b{margin-top:var(--space-3);color:var(--color-accent)}.modern-tracker{grid-template-columns:1fr;grid-template-areas:"players" "card" "memory" "hole" "score" "round" "stats" "archive";max-width:900px;margin:0 auto;padding-bottom:82px}.modern-tracker.section-play{gap:var(--space-1)}.modern-player-switcher{grid-area:players;display:flex;gap:var(--space-2);overflow-x:auto;padding:2px 1px 5px;scrollbar-width:none}.modern-tracker.section-play .modern-player-switcher{padding-bottom:0}.modern-player-switcher::-webkit-scrollbar{display:none}.modern-player-switcher button{flex:1 0 135px;display:grid;grid-template-columns:36px 1fr;align-items:center;gap:1px 8px;min-height:54px;padding:7px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-primary-strong);text-align:left;cursor:pointer}.modern-player-switcher button.active{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:inset 0 0 0 1px var(--color-primary)}.modern-player-switcher img,.modern-player-switcher .switcher-avatar{grid-row:1 / span 2;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;object-fit:cover;background:var(--color-border);color:var(--color-primary);font-weight:950}.modern-player-switcher .switcher-name{overflow:hidden;font-size:.84rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.modern-player-switcher small{font-size:var(--font-size-xs)}.modern-player-switcher button.switcher-add{flex-grow:0}.mobile-player-drawer,.mobile-player-backdrop{display:none}.modern-tracker .hole-panel{border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.modern-tracker:not(.section-settings) .hole-settings,.modern-tracker:not(.section-settings) .course-distances{display:none}.modern-tracker.section-scorecard .hole-panel,.modern-tracker.section-memory .hole-panel,.modern-tracker.section-memory .score-strip,.modern-tracker.section-memory .modern-player-switcher,.modern-tracker.section-roundstats .hole-panel,.modern-tracker.section-roundstats .score-strip,.modern-tracker.section-roundstats .modern-player-switcher,.modern-tracker.section-overview .hole-panel,.modern-tracker.section-overview .score-strip{display:none}.round-bottom-dock{position:fixed;z-index:30;left:50%;bottom:14px;display:flex;align-items:center;gap:var(--space-1);transform:translate(-50%)}.round-bottom-nav{display:grid;grid-template-columns:repeat(4,82px);gap:var(--space-1);padding:6px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-glass);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.round-bottom-nav button{display:grid;place-items:center;gap:2px;min-height:50px;border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);font-size:1.1rem;cursor:pointer}.round-bottom-nav button span{font-size:var(--font-size-xs);font-weight:900}.round-bottom-nav button.active{background:var(--color-primary-soft);color:var(--color-primary)}.round-bottom-nav button.play{background:var(--color-primary);color:var(--color-on-primary)}.round-bottom-hole{display:none}@media (max-width: 850px){.setup-grid,.tracker-grid{grid-template-columns:1fr}.tracker-grid{grid-template-areas:"hole" "score" "card" "memory" "stats" "archive" "round"}.score-strip,.hole-settings,.shot-actions,.stat-cards,.stats-columns,.player-picker,.home-player-list{grid-template-columns:repeat(2,minmax(0,1fr))}.bag-club-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.scorecard-nine{grid-template-columns:repeat(9,minmax(36px,1fr));overflow-x:auto}}@media (max-width: 850px){.tracker-grid.modern-tracker{grid-template-areas:"players" "card" "memory" "hole" "score" "round" "stats" "archive"}}@media (max-width: 720px){.modern-welcome{grid-template-columns:1fr;padding:28px 22px}.latest-round-card{min-height:130px}}@media (max-width: 560px){.app-shell{width:min(100% - 18px,1180px);padding-top:12px}.topbar,.hole-header,.hole-footer,.panel-title-row,.player-stat-header,.profile-editor-heading{align-items:stretch;flex-direction:column}.panel-actions{justify-content:stretch}.panel-actions .compact-action{width:100%}.round-pill{justify-content:flex-start}.round-pill button{min-width:min(142px,calc(50% - 3px))}.hole-score{justify-items:start}.score-strip,.split-strip,.hole-settings,.hole-row,.stat-cards,.stats-columns,.player-picker,.player-setup-row,.add-player-form,.manual-hole-row,.admin-add-player,.admin-player-row,.admin-course-hole-row,.admin-course-search,.player-stat-cards,.strength-grid,.stat-filter-controls{grid-template-columns:1fr}.admin-course-search>small{grid-column:1}.bag-club-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.doughnut-chart{justify-self:start}.mini-shot-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:100%;overflow:visible}.mini-shot{min-width:0}.shot-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.shot-actions button{min-height:64px;padding:9px}.score-strip div,.split-strip div{min-height:58px}.scorecard-panel{overflow-x:auto}.scorecard-nine{min-width:520px}.bar-row{grid-template-columns:minmax(72px,.8fr) minmax(80px,1fr) auto}}@media (max-width: 560px){.round-score-results{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.hole-panel{padding:12px 10px}.hole-panel .hole-header{align-items:flex-start;flex-direction:row}.quick-shot-controls{gap:10px;margin-top:10px;padding:12px 9px}.quick-shot-heading{align-items:center;flex-direction:row}.quick-shot-heading>div{padding:6px 10px}.shot-club-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.shot-club-grid button{min-height:44px}.quick-shot-controls .shot-actions button{min-height:56px}.hole-result-heading{align-items:stretch}}@media (max-width: 560px){.modern-tracker.section-play{gap:0}.modern-tracker.section-play .hole-panel{display:flex;flex-direction:column;gap:6px;padding:8px;overflow:hidden}.modern-tracker.section-play .hole-header{flex:0 0 auto;padding:2px 3px}.modern-tracker.section-play .hole-title-row{gap:6px}.modern-tracker.section-play .hole-title-button{font-size:.92rem}.modern-tracker.section-play .hole-guide-button{min-height:28px;padding:4px 8px;font-size:.66rem}.modern-tracker.section-play .hole-allowance{margin-top:2px;font-size:.68rem}.modern-tracker.section-play>.compact-round-totals,.modern-tracker.section-play .hole-result-summary{display:none}.modern-tracker.section-play .mobile-shot-history{display:grid;flex:0 0 auto;gap:5px;padding:7px 8px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.mobile-shot-history .hole-result-heading{flex-direction:row;align-items:center}.mobile-shot-history .hole-result-heading>div{display:flex;align-items:baseline;gap:6px}.mobile-shot-history .hole-result-heading>div span{order:2}.mobile-shot-history .compact-action{min-height:28px;padding:4px 7px;font-size:.63rem}.mobile-shot-history .mini-shot-list{display:flex;gap:5px;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:1px 0;scroll-snap-type:x proximity;overscroll-behavior-inline:contain;scrollbar-width:none}.mobile-shot-history .mini-shot-list::-webkit-scrollbar{display:none}.mobile-shot-history .mini-shot{flex:0 0 106px;min-width:106px;min-height:43px;padding:5px 7px;scroll-snap-align:start}.mobile-shot-history .mobile-next-shot{place-content:center;border-style:dashed;color:var(--color-text-muted);background:var(--color-surface);text-align:center}.mobile-shot-history .mobile-next-shot strong{color:var(--color-text);font-size:.72rem}.modern-tracker.section-play .quick-shot-controls{flex:1 1 auto;gap:6px;min-height:0;margin-top:0;padding:8px}.modern-tracker.section-play .quick-shot-heading{display:none}.modern-tracker.section-play .shot-choice-section{gap:4px;padding-top:0}.modern-tracker.section-play .shot-choice-title strong{font-size:.74rem}.modern-tracker.section-play .shot-choice-title small{max-width:58%;padding:2px 6px;overflow:hidden;font-size:.58rem;text-overflow:ellipsis;white-space:nowrap}.modern-tracker.section-play .shot-club-grid{grid-template-columns:repeat(var(--mobile-club-columns),minmax(64px,1fr));grid-template-rows:repeat(2,42px);grid-auto-flow:row;gap:5px;min-width:0;padding:6px 3px 2px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;overscroll-behavior-inline:contain;scrollbar-width:none}.modern-tracker.section-play .shot-club-grid::-webkit-scrollbar{display:none}.modern-tracker.section-play .shot-club-grid button{min-width:64px;min-height:42px;padding:5px 4px;scroll-snap-align:start}.modern-tracker.section-play .shot-club-grid button span{font-size:.68rem}.modern-tracker.section-play .shot-club-grid button.selected:after{top:-5px;right:-3px;width:17px;height:17px;font-size:.6rem}.modern-tracker.section-play .shot-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.modern-tracker.section-play .quick-shot-controls .shot-actions button{min-height:49px;padding:4px 2px;justify-items:center;gap:1px;text-align:center}.modern-tracker.section-play .quick-shot-controls .shot-actions button>span:not(.shot-action-icon){font-size:.58rem;line-height:1.08}.modern-tracker.section-play .quick-shot-controls .shot-actions button>small{display:none}.modern-tracker.section-play .shot-action-icon{width:21px;height:21px;display:grid}.modern-tracker.section-play .mobile-hole-stats{position:relative;z-index:1;display:grid;gap:4px;padding:7px;border:1px solid var(--color-on-primary-border);border-radius:var(--radius-md);background:var(--color-on-primary-subtle)}.mobile-compact-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--color-on-primary)}.mobile-compact-heading strong{font-size:.72rem}.mobile-compact-heading small{color:var(--color-text-on-dark-muted);font-size:.58rem;font-weight:800}.mobile-hole-stats .hole-result-values{gap:4px}.mobile-hole-stats .hole-result-values div{min-height:36px;padding:4px 3px;border:1px solid var(--color-on-primary-border);background:var(--color-on-primary-soft)}.mobile-hole-stats .hole-result-values span{color:var(--color-text-on-dark-muted);font-size:.58rem;text-transform:uppercase}.mobile-hole-stats .hole-result-values strong{color:var(--color-accent-soft);font-size:.95rem}.modern-tracker.section-play .hole-quick-picker{gap:4px;padding:7px}.modern-tracker.section-play .hole-quick-picker>span{font-size:.58rem}.modern-tracker.section-play .hole-quick-picker>div{display:flex;gap:4px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}.modern-tracker.section-play .hole-quick-picker>div::-webkit-scrollbar{display:none}.modern-tracker.section-play .hole-quick-picker button{flex:0 0 34px;min-width:34px;min-height:34px;padding:2px}}@media (max-width: 560px){.custom-club-editor{grid-template-columns:1fr}.custom-club-editor button{width:100%}}@media (max-width: 560px){.version-history-intro,.version-card>header{align-items:flex-start;flex-direction:column}.version-card footer{grid-template-columns:1fr}}@media (max-width: 700px){.user-directory-layout{grid-template-columns:1fr}.account-name-fields,.directory-stat-cards{grid-template-columns:1fr 1fr}.admin-course-search-choices button{align-items:flex-start;flex-direction:column}}@media (max-width: 560px){.directory-round-history{padding:var(--space-3)}.directory-round-history>header{align-items:flex-start;flex-direction:column}.directory-round-list{grid-template-columns:1fr}}@media (max-width: 560px){.player-hub-tabs{grid-template-columns:1fr}}@media (max-width: 560px){.round-stat-comparison{gap:var(--space-2);padding:var(--space-2)}.round-stat-metric>header{align-items:flex-start;flex-direction:column;gap:3px;padding:8px 9px}.round-stat-icon{width:30px;height:30px;flex-basis:30px}.round-stat-icon svg{width:19px;height:19px}.round-stat-player-list>div{min-height:52px;padding:6px 9px}}@media (max-width: 560px){.player-round-breakdown{padding:var(--space-3)}.player-round-breakdown>header{align-items:flex-start;flex-direction:column}}@media (max-width: 560px){.hole-quick-picker>div{grid-template-columns:repeat(9,minmax(0,1fr))}.hole-quick-picker button{min-height:var(--touch-target)}}.hole-navigation>button{min-width:0;flex:1 1 0;padding-inline:8px}.slope-button{background:var(--color-surface-secondary)}.slope-modal{max-width:620px}.slope-player-summary{display:grid;grid-template-columns:1fr auto;gap:2px 12px;margin:14px 0;padding:14px 16px;border-radius:var(--radius-md);background:var(--color-primary-strong);color:var(--color-on-primary)}.slope-player-summary span{grid-column:1 / -1;color:var(--color-text-on-dark-muted);font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.slope-player-summary strong{font-size:1.15rem}.slope-player-summary small{align-self:center;color:var(--color-success-soft)}.slope-group-picker{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.slope-group-picker button{flex:1;padding:9px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);font-weight:900;cursor:pointer}.slope-group-picker button.active{border-color:var(--color-primary);background:var(--color-surface-secondary);color:var(--color-primary)}.slope-table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.slope-table{width:100%;border-collapse:collapse;text-align:center}.slope-table th,.slope-table td{padding:11px 8px;border-bottom:1px solid var(--color-border)}.slope-table thead th{background:var(--color-primary);color:var(--color-on-primary);font-size:.75rem}.slope-table tbody th{color:var(--color-primary);text-align:left}.slope-table tbody td:last-child strong{display:inline-grid;place-items:center;min-width:35px;min-height:35px;border-radius:50%;background:var(--color-danger);color:var(--color-on-primary);font-size:1rem}.slope-table tbody tr:last-child th,.slope-table tbody tr:last-child td{border-bottom:0}.slope-explanation{margin:14px 0 8px;color:var(--color-text-muted);font-size:.82rem;line-height:1.45}.slope-source{color:var(--color-text-muted)}.slope-source a{color:var(--color-primary);font-weight:900}@media (max-width: 560px){.scorecard-totals{grid-template-columns:1fr}}@media (max-width: 560px){.modern-shell{width:min(100% - 18px,1120px);padding-top:82px}.modern-topbar{height:64px;gap:7px;padding:0 9px;grid-template-columns:44px minmax(0,1fr) auto}.modern-brand{gap:7px}.modern-brand img{width:32px;height:32px}.modern-brand strong{font-size:.9rem}.modern-brand .brand-tagline,.modern-profile small{display:none}.round-header-context{max-width:none;padding-left:7px}.round-header-context strong{font-size:.68rem}.round-header-context small{display:block;font-size:.61rem}.modern-profile{padding-right:5px}.modern-welcome h1{font-size:2.5rem}.welcome-actions{display:grid}.round-bottom-dock{bottom:8px;max-width:calc(100vw - 12px)}.round-bottom-nav{width:min(272px,calc(100vw - 80px));grid-template-columns:repeat(4,minmax(0,1fr));box-sizing:border-box}}@media (max-width: 560px){.modern-tracker.section-play .modern-player-switcher,.modern-tracker.section-play .hole-footer{display:none}.modern-tracker.section-play .mobile-player-backdrop{position:fixed;z-index:38;top:64px;right:0;bottom:0;left:0;display:block;border:0;background:var(--color-overlay);cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modern-tracker.section-play .mobile-player-drawer{position:fixed;z-index:39;top:76px;left:0;width:min(278px,calc(100vw - 58px));display:block;transform:translate(-100%);transition:transform .22s ease}.modern-tracker.section-play .mobile-player-drawer.open{transform:translate(0)}.mobile-player-drawer-panel{visibility:hidden;overflow:hidden;border:1px solid var(--color-on-primary-border);border-left:0;border-radius:0 var(--radius-lg) var(--radius-lg) 0;background:linear-gradient(155deg,var(--color-primary-strong),var(--color-primary));box-shadow:var(--shadow-lg);transition:visibility 0s .22s}.mobile-player-drawer.open .mobile-player-drawer-panel{visibility:visible;transition-delay:0s}.mobile-player-drawer-panel>header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:14px 14px 11px;border-bottom:1px solid var(--color-on-primary-border)}.mobile-player-drawer-panel>header>div{display:grid;gap:1px}.mobile-player-drawer-panel>header small{color:var(--color-text-on-dark-muted);font-size:var(--font-size-xs);font-weight:800}.mobile-player-drawer-panel>header strong{color:var(--color-on-primary)}.mobile-player-drawer-panel>header button{width:34px;height:34px;border-radius:50%;background:var(--color-on-primary-soft);color:var(--color-on-primary);font-size:1.3rem;cursor:pointer}.mobile-player-list{display:grid;padding:var(--space-2)}.mobile-player-list>button{display:grid;grid-template-columns:38px minmax(0,1fr) 24px;align-items:center;gap:var(--space-2);min-height:56px;padding:7px 8px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-on-primary);text-align:left;cursor:pointer}.mobile-player-list>button.active{border-color:var(--color-accent-border);background:var(--color-on-primary-soft)}.mobile-player-list img,.mobile-player-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;object-fit:cover;background:var(--color-surface);color:var(--color-primary);font-weight:950}.mobile-player-list>button>span:not(.mobile-player-avatar){display:grid;min-width:0;gap:1px}.mobile-player-list>button strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-player-list>button small{color:var(--color-text-on-dark-muted);font-size:var(--font-size-xs)}.mobile-player-list>button b{justify-self:center;color:var(--color-accent);font-size:1rem}.mobile-player-add{width:calc(100% - 16px);display:grid;grid-template-columns:38px 1fr;align-items:center;gap:var(--space-2);margin:0 8px 10px;padding:9px;border:1px dashed var(--color-on-primary-border-strong);border-radius:var(--radius-md);background:var(--color-on-primary-soft);color:var(--color-on-primary);text-align:left;cursor:pointer}.mobile-player-add>span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--color-accent);color:var(--color-text);font-size:1.15rem;font-weight:950}.mobile-player-add>div{display:grid;gap:1px}.mobile-player-add small{color:var(--color-text-on-dark-muted);font-size:var(--font-size-xs)}.mobile-player-tab{position:absolute;top:12px;left:100%;width:48px;min-height:58px;display:grid;grid-template-rows:34px auto;justify-items:center;gap:1px;padding:6px;border:1px solid var(--color-accent-border);border-left:0;border-radius:0 var(--radius-md) var(--radius-md) 0;background:linear-gradient(155deg,var(--color-primary-strong),var(--color-primary));color:var(--color-on-primary);box-shadow:var(--shadow-md);cursor:pointer}.mobile-player-tab img,.mobile-player-tab span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;object-fit:cover;background:var(--color-surface);color:var(--color-primary);font-weight:950}.mobile-player-tab b{color:var(--color-accent);line-height:1}.modern-tracker.section-play .round-bottom-hole{width:32px;min-width:32px;height:48px;display:grid;place-items:center;padding:0;border:1px solid var(--color-accent-border);border-radius:var(--radius-sm);background:linear-gradient(155deg,var(--color-primary-strong),var(--color-primary));color:var(--color-on-primary);box-shadow:var(--shadow-md);cursor:pointer}.modern-tracker.section-play .round-bottom-hole.next{background:var(--color-accent);color:var(--color-text)}.round-bottom-hole span{font-size:1.2rem;font-weight:950;line-height:1}.round-bottom-hole:disabled{opacity:.38;cursor:default}}@media (max-width: 560px){.admin-invitations form{grid-template-columns:1fr}.admin-user-management{padding:var(--space-3)}.admin-section-heading{align-items:stretch;flex-direction:column}.admin-user-card{grid-template-columns:38px minmax(0,1fr)}.admin-user-avatar{width:38px;height:38px}.admin-user-card label,.admin-user-card>button{grid-column:1 / -1}.invitation-list div{display:grid}.player-stat-detail{padding:var(--space-3)}.stats-section-title,.profile-editor-heading{align-items:stretch;flex-direction:column}.player-stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.player-stat-columns,.player-profile-editor{grid-template-columns:1fr}.player-profile-editor .profile-editor-heading,.bag-editor{grid-column:1}.bag-club-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.modern-shell .score-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-1)}.modern-shell .score-strip div{min-height:48px;padding:8px 6px;text-align:center}.modern-shell .score-strip span{font-size:var(--font-size-xs)}.modern-shell .score-strip strong{font-size:1.25rem}.modern-shell .scorecard-totals{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-1)}.modern-shell .scorecard-totals div{display:grid;grid-template-columns:1fr;justify-items:center;gap:2px;padding:8px 4px;text-align:center}.modern-shell .scorecard-totals strong{grid-row:auto;grid-column:auto;font-size:1.3rem}.modern-shell .scorecard-totals span,.modern-shell .scorecard-totals small{font-size:var(--font-size-xs)}.modern-shell .scorecard-panel{min-width:0;overflow-x:hidden;padding-inline:10px}.modern-shell .scorecard-nine{min-width:0;grid-template-columns:repeat(9,minmax(0,1fr));gap:3px;overflow:visible}.modern-shell .scorecard-cell{min-width:0;min-height:50px;padding:3px 0}.modern-shell .scorecard-score{width:25px;height:25px;font-size:.86rem}.modern-shell .scorecard-cell span{font-size:var(--font-size-xs)}.modern-shell .scorecard-panel{padding:0}.modern-shell .real-scorecard-player{grid-template-columns:24px minmax(0,1fr) 38px 42px 24px;gap:var(--space-1);min-height:62px;padding:6px 8px}.modern-shell .real-scorecard-player>div strong{font-size:1rem}.modern-shell .real-scorecard-player>div small{font-size:var(--font-size-xs)}.modern-shell .real-scorecard-player>strong{font-size:1rem}.modern-shell .real-scorecard-player .under-par{font-size:1.35rem}.modern-shell .real-scorecard{font-size:.72rem}.modern-shell .real-scorecard th,.modern-shell .real-scorecard td{height:27px;padding:2px 0}.modern-shell .real-scorecard th:first-child{width:19%;padding-left:6px}.modern-shell .real-scorecard th:last-child,.modern-shell .real-scorecard td:last-child{width:7%}.modern-shell .real-scorecard thead th{height:29px;font-size:var(--font-size-xs)}.modern-shell .real-score{width:22px;height:22px;font-size:.7rem}.modern-shell .real-scorecard-footer{gap:3px;padding:12px 8px;font-size:.72rem}.modern-shell .real-scorecard-footer strong{font-size:.9rem}}.swing-analyzer{width:min(100%,1240px);margin:0 auto;padding:8px 0 50px;color:var(--color-text)}.analyzer-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-5)}.analyzer-heading h1{margin:2px 0 6px;font-size:clamp(2rem,4vw,3.4rem);line-height:1}.analyzer-heading p{margin:0;color:var(--color-text-muted)}.analyzer-source-actions{display:flex;gap:var(--space-2)}.analyzer-upload{display:inline-grid;place-items:center;min-height:48px;padding:0 20px;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-on-primary);font-weight:900;cursor:pointer}.analyzer-upload.secondary{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-primary)}.analyzer-upload input{position:absolute;width:1px;height:1px;opacity:0}.capture-preflight{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(300px,1fr);gap:var(--space-3) var(--space-5);margin-bottom:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-success-soft)}.capture-preflight-heading h2{margin:2px 0;font-size:var(--font-size-xl)}.capture-preflight-heading small{color:var(--color-text-muted)}.capture-preflight-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.capture-preflight-controls label{display:grid;gap:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:850}.capture-preflight-controls select{width:100%;min-height:44px;padding:8px 32px 8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.capture-guide-copy{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.capture-guide-copy>*{min-width:0}.capture-guide-copy strong{color:var(--color-primary-strong);font-size:var(--font-size-sm)}.capture-guide-copy span{position:relative;padding-left:19px;color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:1.45}.capture-guide-copy span:before{content:"✓";position:absolute;left:0;color:var(--color-success);font-weight:950}.swing-library{display:grid;gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);background:#ffffffe6;box-shadow:var(--shadow-md)}.swing-library-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--space-4)}.swing-library-heading h2{margin:1px 0 2px}.swing-library-heading small{color:var(--color-text-muted)}.swing-library-controls{display:flex;gap:var(--space-2)}.swing-library-controls label{display:grid;gap:3px;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:850}.swing-library-controls select{min-height:38px;padding:5px 28px 5px 9px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.swing-library-list{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(290px,330px);gap:var(--space-2);overflow-x:auto;padding-bottom:3px}.swing-library-list>article{display:grid;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.swing-library-list>article.active{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.swing-library-open{display:grid;grid-template-columns:36px 1fr;align-items:center;gap:var(--space-2);min-height:82px;padding:var(--space-3);border:0;background:transparent;color:var(--color-primary-strong);text-align:left;cursor:pointer}.swing-library-open>span:last-child{display:grid;gap:2px;min-width:0}.swing-library-open strong,.swing-library-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.swing-library-list small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.swing-library-play{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--color-primary);color:var(--color-on-primary);font-size:.7rem}.swing-library-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:var(--space-2);padding:9px;border-top:1px solid var(--color-border);background:var(--color-surface)}.swing-library-card-actions label{display:grid;gap:3px;color:var(--color-text-muted);font-size:.62rem;font-weight:850}.swing-library-card-actions select{width:100%;min-height:36px;padding:5px 26px 5px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.swing-video-delete{grid-column:1 / -1;justify-self:end;min-height:36px;padding:6px 12px;border:1px solid var(--color-danger);border-radius:var(--radius-sm);background:var(--color-danger-soft);color:var(--color-danger);font-size:.68rem;font-weight:900;cursor:pointer}.swing-library-status{margin:0;padding:7px 9px;border-radius:var(--radius-sm);background:var(--color-success-soft);color:var(--color-primary);font-size:.7rem}.swing-library-empty{margin:0;padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-secondary);color:var(--color-text-muted);font-size:.75rem}.analyzer-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:var(--space-4);align-items:start}.analyzer-main-column{display:grid;gap:var(--space-4);min-width:0}.analyzer-stage-card,.analyzer-sidebar section{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}.analyzer-stage-card{overflow:hidden}.swing-report{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}.swing-report-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.swing-report-heading h2{margin:2px 0 0;font-size:var(--font-size-xl)}.report-quality{padding:7px 10px;border-radius:var(--radius-pill);background:var(--color-success-soft);color:var(--color-success);font-size:var(--font-size-xs);font-weight:900;white-space:nowrap}.report-quality.medium{background:var(--color-warning-soft);color:var(--color-warning)}.report-quality.low{background:var(--color-danger-soft);color:var(--color-danger)}.report-focus{display:grid;grid-template-columns:auto 1fr;gap:2px var(--space-2);padding:var(--space-3);border-left:4px solid var(--color-success);border-radius:var(--radius-sm);background:var(--color-success-soft)}.report-focus>span{grid-row:1 / 3;align-self:start;padding:4px 7px;border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-muted);font-size:.62rem;font-weight:900;text-transform:uppercase}.report-focus strong{color:var(--color-primary-strong)}.report-focus p{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.45}.report-focus.warning{border-color:var(--color-danger);background:var(--color-danger-soft)}.report-focus.attention{border-color:var(--color-warning);background:var(--color-warning-soft)}.report-timing-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-2)}.report-timing-grid>div{display:grid;align-content:center;gap:2px;min-height:76px;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-secondary);text-align:center}.report-timing-grid span,.report-timing-grid small{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:800}.report-timing-grid strong{color:var(--color-primary-strong);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}.report-warnings{padding:var(--space-3);border:1px solid var(--color-warning);border-radius:var(--radius-sm);background:var(--color-warning-soft);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.report-warnings ul{margin:var(--space-1) 0 0;padding-left:18px;line-height:1.5}.phase-report-table{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.phase-report-row{display:grid;grid-template-columns:minmax(145px,1.5fr) repeat(4,minmax(70px,1fr));align-items:center;min-width:530px;width:100%;padding:10px 12px;border:0;border-top:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-xs);text-align:center;font-variant-numeric:tabular-nums}button.phase-report-row{cursor:pointer}button.phase-report-row:hover{background:var(--color-success-soft)}.phase-report-row>:first-child{text-align:left}.phase-report-row strong{display:grid;gap:1px;color:var(--color-primary-strong)}.phase-report-row strong small{color:var(--color-text-muted);font-size:.62rem}.phase-report-header{border-top:0;background:var(--color-surface-secondary);color:var(--color-text-muted);font-weight:900}.report-disclaimer{color:var(--color-text-muted);line-height:1.5}.swing-report-empty{padding:var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-secondary);text-align:center}.swing-report-empty p{max-width:620px;margin:var(--space-1) auto 0;color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:1.5}.analyzer-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:12px 14px}.analyzer-meta strong{margin-right:auto;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analyzer-meta span{padding:5px 8px;border-radius:var(--radius-pill);background:var(--color-surface-secondary);color:var(--color-text-secondary);font-size:.7rem;font-weight:850}.analyzer-meta .storage-status{flex-basis:100%;border-radius:var(--radius-sm);background:var(--color-success-soft);color:var(--color-primary)}.analyzer-meta .storage-status.uploading,.analyzer-meta .storage-status.analyzing,.analyzer-meta .storage-status.trimming{background:var(--color-warning-soft);color:var(--color-warning)}.analyzer-meta .storage-status.error{background:var(--color-danger-soft);color:var(--color-danger)}.video-stage{position:relative;display:grid;place-items:center;min-height:420px;padding:var(--space-3);overflow:hidden;background:var(--color-media-stage);touch-action:none}.video-frame{position:relative;width:min(100%,calc(min(68vh,720px) * var(--video-ratio)));aspect-ratio:var(--video-ratio);background:var(--color-media-stage)}.video-stage video{display:block;width:100%;height:100%;object-fit:fill}.video-stage canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;cursor:crosshair;touch-action:none}.video-stage canvas.placing-club-point{cursor:cell}.tracking-overlay{position:absolute;z-index:3;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:var(--space-2);padding:var(--space-5);background:#040d08b3;color:var(--color-on-primary);text-align:center;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tracking-overlay small{color:var(--color-text-on-dark-muted)}.birdiebook-wait{gap:var(--space-3);background:radial-gradient(circle at 50% 42%,#1d643de0,#030f08f0 65%)}.birdiebook-wait-logo{position:relative;width:82px;height:82px;display:grid;place-items:center;border-radius:50%;background:#fffffff5;animation:birdiebook-wait-pulse 1.5s ease-in-out infinite}.birdiebook-wait-logo:after{content:"";position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;border:2px solid rgba(247,240,74,.75);border-radius:50%;animation:birdiebook-wait-ring 1.5s ease-out infinite}.birdiebook-wait-logo img{width:62px;height:62px;object-fit:contain}.workflow-steps{display:grid;grid-template-columns:repeat(4,auto);gap:var(--space-2);margin-top:7px}.workflow-steps span{display:grid;justify-items:center;gap:var(--space-1);max-width:76px;color:#ffffff8c;font-size:var(--font-size-xs);font-weight:850}.workflow-steps i{width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--color-on-primary-border-strong);border-radius:50%;font-style:normal}.workflow-steps span.active,.workflow-steps span.done{color:var(--color-on-primary)}.workflow-steps span.active i{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-primary-strong)}.workflow-steps span.done i{border-color:var(--color-success);background:var(--color-success);color:var(--color-on-primary)}.stage-badge{position:absolute;left:12px;bottom:12px;padding:6px 9px;border-radius:var(--radius-sm);background:#050f09b8;color:var(--color-on-primary);font-size:.72rem;font-weight:850;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.phase-timeline{position:relative;padding:14px 16px 12px}.phase-timeline>input{position:relative;z-index:5;display:block;width:100%;height:34px;margin:0;-moz-appearance:none;appearance:none;border:0;background:transparent;accent-color:var(--color-primary);cursor:ew-resize;touch-action:none;-webkit-appearance:none}.phase-timeline>input::-webkit-slider-runnable-track{height:8px;border-radius:var(--radius-pill);background:var(--color-border-strong)}.phase-timeline>input::-webkit-slider-thumb{width:28px;height:28px;margin-top:-10px;border:3px solid var(--color-surface);border-radius:50%;background:var(--color-primary);box-shadow:var(--shadow-sm);cursor:grab;-webkit-appearance:none}.phase-timeline>input:active::-webkit-slider-thumb{cursor:grabbing}.phase-timeline>input::-moz-range-track{height:8px;border-radius:var(--radius-pill);background:var(--color-border-strong)}.phase-timeline>input::-moz-range-thumb{width:26px;height:26px;border:2px solid var(--color-surface);border-radius:50%;background:var(--color-primary);cursor:grab}.club-anchor-markers{position:absolute;z-index:3;inset:52px 24px auto;height:24px;pointer-events:none}.club-anchor-markers button{position:absolute;width:20px;height:20px;padding:0;border:2px solid var(--color-text);border-radius:50%;background:var(--color-warning);color:var(--color-text);font-size:.58rem;font-weight:950;cursor:pointer;pointer-events:auto;transform:translate(-50%)}.club-anchor-markers button:hover{transform:translate(-50%) scale(1.15)}.phase-markers{position:absolute;inset:79px 24px auto;height:28px}.phase-markers:before{content:"";position:absolute;top:11px;right:0;left:0;height:2px;background:var(--color-border)}.phase-markers button{position:absolute;top:0;z-index:1;width:32px;height:28px;padding:0;overflow:visible;border:0;background:transparent;cursor:ew-resize;touch-action:none;transform:translate(-50%)}.phase-markers button.dragging{z-index:4}.phase-markers i{position:absolute;left:8px;top:3px;width:16px;height:16px;border:2px solid white;border-radius:50%;background:var(--color-warning);box-shadow:0 0 0 1px var(--color-warning);transition:transform .12s}.phase-markers button.dragging i{background:var(--color-primary);box-shadow:0 0 0 5px #17633d33;transform:scale(1.2)}.phase-markers i.manual{background:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.phase-label-strip{display:grid;grid-auto-flow:column;grid-auto-columns:max-content;gap:var(--space-1);margin-top:72px;padding:2px 0 5px;overflow-x:auto;scrollbar-width:thin}.phase-label-strip button{display:grid;gap:1px;min-height:40px;padding:5px 9px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-secondary);color:var(--color-text-muted);text-align:left;cursor:pointer}.phase-label-strip button.manual{border-color:var(--color-primary);color:var(--color-primary)}.phase-label-strip strong{font-size:var(--font-size-xs)}.phase-label-strip small{font-size:.58rem}.phase-drag-help{display:block;margin-top:6px;color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:1.3;text-align:center}.phase-timeline-state{display:block;margin:5px auto 0;width:fit-content;padding:4px 8px;border-radius:var(--radius-pill);background:var(--color-success-soft);color:var(--color-primary);font-size:.62rem;font-weight:800;line-height:1.3;text-align:center}.playback-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:11px 14px 14px;border-top:1px solid var(--color-border)}.playback-controls button{min-height:38px;padding:7px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-primary-strong);font-weight:850;cursor:pointer}.playback-controls .play-button{min-width:88px;border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.speed-picker{display:flex;gap:3px;margin-left:10px;padding:3px;border-radius:var(--radius-md);background:var(--color-surface-secondary)}.speed-picker button{min-height:32px;padding:4px 8px;border:0;background:transparent;font-size:.7rem}.speed-picker button.active{background:var(--color-surface);box-shadow:var(--shadow-md)}.analyzer-sidebar{display:grid;gap:var(--space-3)}.analyzer-sidebar section{display:grid;gap:var(--space-3);padding:var(--space-4)}.analyzer-sidebar .section-kicker{margin:0}.analyzer-sidebar label{display:grid;gap:var(--space-1);color:var(--color-text-muted);font-size:.72rem;font-weight:850}.analyzer-sidebar select{min-height:40px}.analyzer-sidebar small{color:var(--color-text-muted);line-height:1.4}.tempo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-1)}.tempo-grid div{display:grid;gap:2px;padding:9px 5px;border-radius:var(--radius-sm);background:var(--color-surface-secondary);text-align:center}.tempo-grid span{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:800}.tempo-grid strong{font-size:.82rem}.analyzer-sidebar section.club-tracker{border-color:var(--color-warning);background:var(--color-warning-soft)}.analyzer-sidebar section.pose-panel{border-color:var(--color-success);background:var(--color-success-soft)}.pose-panel .tracker-progress i{background:var(--color-success)}.pose-save-state{margin:0;padding:7px 8px;border-radius:var(--radius-sm);background:var(--color-success-soft);color:var(--color-primary);font-size:var(--font-size-xs);line-height:1.35}.pose-toggle{grid-template-columns:20px 1fr;align-items:center}.pose-toggle input{width:18px;min-height:18px;accent-color:var(--color-primary)}.analyzer-sidebar section.biomechanics-panel{border-color:var(--color-border-strong)}.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.metric-grid div{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:var(--space-1);padding:9px;border-radius:var(--radius-sm);background:var(--color-success-soft)}.metric-grid span{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:850}.metric-grid strong{color:var(--color-success);font-size:.85rem}.tracker-status{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);color:var(--color-text-muted);font-size:.72rem}.tracker-status strong{color:var(--color-primary-strong)}.tracker-progress{height:6px;overflow:hidden;border-radius:99px;background:var(--color-border)}.tracker-progress i{display:block;height:100%;border-radius:inherit;background:var(--color-warning);transition:width .15s ease}.tracker-button{min-height:43px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);font-weight:900;cursor:pointer}.tracker-button.armed{background:var(--color-warning);color:var(--color-text);animation:tracker-pulse 1s infinite alternate}.tracker-button.secondary{background:var(--color-surface-secondary);color:var(--color-text-secondary)}.tracker-button:disabled{opacity:.48;cursor:not-allowed}.tracker-button.save-trace{border:1px solid #d34c31;background:#ff6846;color:#fff}.tracker-button.save-trace:disabled{border-color:var(--color-border);background:var(--color-surface-secondary);color:var(--color-text-muted)}.guided-tracer{overflow:hidden}.trace-legend{display:flex;flex-wrap:wrap;gap:6px 10px;padding:8px 9px;border-radius:var(--radius-sm);background:#ffffff9e;color:var(--color-text-muted);font-size:.66rem;font-weight:850}.trace-legend span{display:inline-flex;align-items:center;gap:5px}.trace-legend i{width:19px;height:4px;border-radius:99px;background:#f3b72f}.trace-legend i.downswing{background:#ff6846}.trace-options{display:grid;gap:7px;padding:9px;border:1px solid rgba(20,32,24,.12);border-radius:var(--radius-sm);background:#ffffff8c}.trace-options label{grid-template-columns:18px minmax(0,1fr);align-items:center;gap:7px;color:var(--color-text-secondary);font-size:.7rem;cursor:pointer}.trace-options input{width:17px;min-height:17px;accent-color:var(--color-primary)}.trace-gap-warning,.trace-save-state{margin:0;padding:8px 9px;border-radius:var(--radius-sm);font-size:.7rem;line-height:1.4}.trace-gap-warning{border:1px solid rgba(211,76,49,.25);background:#ff68461a;color:#873421}.trace-save-state{border:1px solid rgba(23,99,61,.18);background:#fff9;color:var(--color-primary-strong)}.club-anchor-list{display:grid;gap:var(--space-1);max-height:220px;overflow-y:auto}.club-anchor-list>div{display:grid;grid-template-columns:1fr 32px;gap:var(--space-1);align-items:stretch}.club-anchor-list button{min-height:38px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer}.club-anchor-list>div>button:first-child{display:grid;grid-template-columns:25px 1fr;align-items:center;gap:var(--space-2);padding:5px 8px;text-align:left}.club-anchor-list b{width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:var(--color-warning);color:var(--color-text);font-size:var(--font-size-xs)}.club-anchor-list span{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-1)}.club-anchor-list strong{font-size:.72rem}.club-anchor-list small{font-size:var(--font-size-xs)}.club-anchor-list>div>button:last-child{color:var(--color-danger);font-size:1.1rem;font-weight:900}.tracker-clear{padding:3px;background:transparent;color:var(--color-text-muted);font-size:.7rem;font-weight:850;text-decoration:underline;cursor:pointer}.tracker-error{margin:0;padding:var(--space-2);border-radius:var(--radius-sm);background:var(--color-danger-soft);color:var(--color-danger);font-size:.72rem;line-height:1.35}@keyframes tracker-pulse{to{box-shadow:0 0 0 4px #c7aa2033}}@keyframes birdiebook-wait-pulse{50%{transform:scale(1.07);box-shadow:0 0 30px #f7f04a59}}@keyframes birdiebook-wait-ring{0%{opacity:.9;transform:scale(.9)}to{opacity:0;transform:scale(1.25)}}@media (max-width: 900px){.analyzer-layout{grid-template-columns:1fr}.analyzer-sidebar{grid-template-columns:repeat(2,1fr)}.capture-guide-copy{grid-template-columns:repeat(2,minmax(0,1fr))}.report-timing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 600px){.swing-analyzer{padding-bottom:30px}.analyzer-heading,.swing-library-heading,.swing-report-heading{align-items:stretch;flex-direction:column}.capture-preflight{grid-template-columns:1fr}.capture-preflight-controls,.capture-guide-copy{grid-template-columns:1fr 1fr}.capture-guide-copy{grid-column:auto}.swing-library-controls,.analyzer-source-actions{display:grid;grid-template-columns:1fr 1fr}.analyzer-upload{width:100%;padding-inline:10px}.analyzer-sidebar{grid-template-columns:1fr}.video-stage{min-height:360px}.video-frame{width:min(100%,calc(70vh * var(--video-ratio)))}.analyzer-meta strong{width:100%;max-width:100%}.playback-controls{flex-wrap:wrap}.speed-picker{width:100%;justify-content:center;margin:3px 0 0}.report-quality{width:fit-content}.report-focus{grid-template-columns:1fr}.report-focus>span{grid-row:auto;width:fit-content}.report-timing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}h1,h2,h3,h4{color:var(--color-text);line-height:var(--line-height-tight)}h1{font-size:var(--font-size-2xl)}h2{font-size:var(--font-size-lg)}h3{font-size:var(--font-size-md)}small,.muted{color:var(--color-text-muted)}.panel,.analyzer-stage-card,.analyzer-sidebar section,.tour-reference-card{border-color:var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm)}label{color:var(--color-text-secondary);font-size:var(--font-size-sm)}input,select,textarea{min-height:var(--touch-target);border-color:var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);outline-color:var(--color-focus)}.primary-action,.header-login,.tracker-button,.mark-phase,.analyzer-upload:not(.secondary){min-height:var(--touch-target);border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);font-weight:900;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.primary-action:hover,.header-login:hover,.tracker-button:hover,.mark-phase:hover,.analyzer-upload:not(.secondary):hover{border-color:var(--color-primary-hover);background:var(--color-primary-hover)}.ghost-action,.compact-action,.tracker-button.secondary,.analyzer-upload.secondary{min-height:var(--touch-target);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-tertiary);color:var(--color-text-secondary);font-weight:850;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.ghost-action:hover,.compact-action:hover,.tracker-button.secondary:hover,.analyzer-upload.secondary:hover{border-color:var(--color-border-strong);background:var(--color-primary-soft)}.delete-hole,.danger-action,.alert,.inline-error,.tracker-error{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger)}.success-message,.phase-save-state,.pose-save-state{background:var(--color-success-soft);color:var(--color-success)}.stat-note,.round-status,.current-version-badge{border-radius:var(--radius-pill)}button:disabled,[aria-disabled=true]{cursor:not-allowed;opacity:.5;transform:none}@media (max-width: 560px){.primary-action,.ghost-action,.compact-action,.tracker-button,.mark-phase,.header-login{min-height:48px}.panel,.analyzer-stage-card,.analyzer-sidebar section,.tour-reference-card{border-radius:var(--radius-md)}}
