/* Pencil & Pin 3.10.3: shared surfaces, clearer type and compact mobile composition. */
:root{--panel:var(--surface);--panel-line:var(--line);--section-space:28px}
body{line-height:1.55}
button,input,select,textarea{font:inherit}
.fine,.li-main small,.kpi small,.snapshot-period,.insight-period,.chart-caption,.gp-label,.goal-context small,.goal-footer,.tee-tag,.green-figure-caption,.green-denominators,.bunker-summary-copy small{font-size:13px;line-height:1.5}
.fine,.li-main small,.insight-period{font-size:14px}
.k-label,.eyebrow,.dir-label{font-size:11px;letter-spacing:.065em}
h1{line-height:1.1}h2{line-height:1.2}
.page-head{margin-bottom:24px}
.btn{font-weight:600;transition:background-color .15s,border-color .15s;min-height:44px}
.btn:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--brand);outline-offset:4px}
.group-head{align-items:baseline;gap:16px}.group-head h2{font-size:22px}
/* Home follows the same reading order in the DOM and on screen. */
.home-overview{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
.home-overview>.home-progress{order:0;margin:0}
.home-overview>.home-focus{order:1;margin:0}
.home-overview>.home-snapshot{order:2;margin:0}
.home-overview>.home-recent{order:3;margin:0}
.home-overview>.home-prep{order:4;margin:0}
.home-overview .goal-panel{padding:20px;border-radius:12px;margin:0}
.goal-panel .gp-head{align-items:center}.goal-panel .gp-title{font-size:27px;margin:0}
.goal-panel .eyebrow{margin:0 0 4px;color:var(--on-deep-muted)}
.goal-modes{margin:14px 0 12px}.goal-modes button{min-height:40px;font-size:13px}
.goal-current{margin:0;align-items:center}.goal-value{font-size:50px;line-height:1.05}
.goal-context{max-width:155px}.goal-context small{display:block}
.goal-chart{width:100%;max-width:360px;margin-inline:auto}
.goal-panel .gp-chart{margin-top:12px}.goal-footer{margin-top:12px;padding-top:12px}
.chart .axis,.chart .chart-value,.goal-chart text{font-family:var(--font);font-variant-numeric:tabular-nums}
.chart .grid,.goal-chart .grid{stroke-width:.7}
.ins-chart .gp-legend .score-series{color:var(--deep)}
:root[data-theme="dark"] .ins-chart .gp-legend .score-series{color:var(--ink)}
.ins-chart .gp-legend .lg-roll{border-color:var(--deep)}
:root[data-theme="dark"] .ins-chart .gp-legend .lg-roll{border-color:var(--ink)}
.home-overview .home-focus .coach,.insight-focus,.report>.coach{background:var(--panel);border:1px solid var(--panel-line);border-left:3px solid var(--brand);border-radius:10px;padding:22px;margin:0}
.coach .coach-title,.insight-focus h2{font-family:"Newsreader",Georgia,serif;font-size:25px;line-height:1.15;margin:8px 0 14px}
.coach h2{font:600 12px var(--font);letter-spacing:.04em;color:var(--muted)}
.coach .advice{font-size:16px;line-height:1.6}.coach .advice-label{font-size:13px;margin-bottom:4px}
.coach-basis{margin-top:18px;padding-top:14px}.coach-basis summary{font-size:14px;min-height:36px}
.practice-follow{margin-top:18px;padding-top:18px}.practice-follow p{margin-block:6px}
.home-overview .stat-row .kpi{padding-block:16px}.home-overview .stat-row .k-val{font-size:32px}
.snapshot-period{margin:10px 0 14px}.home-snapshot .group-head{margin:0}
.home-recent .round-row{min-height:88px}.round-row .li-score b{font-size:32px}
.home-prep{display:flex;gap:12px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line)}
.home-prep .prep-link{flex:1;min-width:140px;font-size:14px}
/* Overview before detail; category controls remain available while scrolling. */
.insights-page>.insight-focus{margin:20px 0}.insight-focus p{max-width:76ch;margin-bottom:14px}
.insight-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--line);margin:20px 0}
.insight-overview .kpi{border:0;border-left:1px solid var(--line);padding:16px 12px;background:transparent;border-radius:0;min-width:0}
.insight-overview .kpi:first-child{border-left:0;padding-left:0}.insight-overview .k-val{font-size:30px}.insight-overview .k-label{font-size:10px;min-height:30px;display:flex;align-items:center}
.insight-jumps{position:sticky;top:0;z-index:5;background:var(--paper);padding:12px 0;margin:0 0 8px;border-bottom:1px solid var(--line);scrollbar-width:none}
.insight-jumps button{border-radius:7px;min-height:42px;font-size:14px}.insight-jumps button:focus{background:var(--surface-2)}
.insight-section{scroll-margin-top:82px}.ins-body>.insight-section{padding:24px 0 12px}
.insight-section>h2{font-size:24px;margin-bottom:22px}
.insight-section .metric-row,.insight-section .li{font-size:15px}.insight-section .li small{font-size:13px}
.green-stripe{opacity:.2}.green-figure{border-radius:10px;overflow:hidden}
.green-map .miss-pct{font-size:18px;font-weight:700}.green-map .miss-label{font-size:15px}
.green-denominators{margin-top:14px}.green-denominators summary{font-size:13px;cursor:pointer;min-height:40px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:3px}
.green-denominators p{font-size:13px;line-height:1.6}.green-misses h3{font-size:16px}
/* Round recap: details expand when needed, storage follows analysis. */
.report .score-hero{border-radius:12px}.report .round-takeaway{margin:24px 0}
.report>.round-detail{padding-block:16px;margin:0;border-bottom:1px solid var(--line)}
.round-detail>summary{font:600 20px "Newsreader",Georgia,serif;cursor:pointer;min-height:44px;padding:8px 0}
.round-detail[open]>summary{margin-bottom:12px}.report>.coach{margin:24px 0}
.report .round-next{margin-top:28px;gap:20px}.round-next h2{font-size:19px}
.report>.btn-row{padding-top:20px}.report .round-next p{font-size:14px}
/* Photo capture uses original controls with clearer grouping. */
.capture-steps{display:flex;list-style:none;gap:10px;padding:0;margin:8px 0 28px}
.capture-steps li{display:flex;align-items:center;gap:7px;flex:1;color:var(--muted);font-size:14px;border-bottom:2px solid var(--line);padding-bottom:12px}
.capture-steps li>span{display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--line);border-radius:50%;font-size:12px}
.capture-steps .current{border-color:var(--brand);color:var(--ink);font-weight:600}.capture-steps .current>span{background:var(--brand);color:var(--paper);border-color:var(--brand)}
.capture-steps .complete{border-color:var(--green)}
.flow .group.capture-photo{background:var(--panel);border:1px solid var(--panel-line);border-radius:12px;padding:22px;margin:20px 0}
.photo-placeholder{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:24px 12px;border:1px dashed var(--line);border-radius:8px;margin:18px 0;background:var(--paper)}
.photo-placeholder svg{color:var(--muted)}.photo-placeholder span{font-size:14px;color:var(--muted)}
.capture-photo .btn-row{display:flex;gap:10px;flex-wrap:wrap}.capture-photo .file-btn{flex:1;min-width:125px;min-height:48px}
.scan-preview{border:1px solid var(--line);border-radius:8px;margin-top:18px;max-height:440px;object-fit:contain;background:var(--paper)}
.scan-review .quickfix{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:8px;padding:18px}
.scan-review .scan-table td:has(.uncertain),.scan-review .scan-table td:has(.invalid){background:var(--ochre-soft)}
.drill{padding:22px 0}.practice-page .group{margin-bottom:20px}
@media(max-width:959px){
 .home>.page-head{margin-bottom:16px}.home-add{margin-bottom:24px}.home-add .scan-cta{min-height:46px;font-size:15px}.home-add-alt{font-size:13px}
 .home-overview .goal-chart{max-width:305px}.home-overview .goal-panel .gp-chart .chart-caption{font-size:11px;margin:4px 0 0}
 .home-overview .goal-value{font-size:46px}.home-overview .goal-panel .gp-label{font-size:12px}
 .home-overview .goal-footer{font-size:12px}.home-overview .goal-panel .goal-modes{margin:12px 0}
 .home-overview .goal-panel .gp-head .gp-title{font-size:25px}.gp-link{font-size:13px}
 .home-overview .home-progress,.home-overview .home-focus,.home-overview .home-snapshot,.home-overview .home-recent,.home-overview .home-prep{grid-column:1;grid-row:auto}
 .home-overview .home-focus .coach{padding:20px}.insights-page .chart .axis,.insights-page .chart .chart-value{font-size:14px}
 .insight-overview small{font-size:12px}.insight-overview .k-val{font-size:29px}
 .insights-page .dir-pct{font-size:36px}.report .score-hero .big{font-size:86px}
}
@media(min-width:960px){
 .home-overview{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:auto auto auto auto;gap:28px}
 .home-overview>.home-progress{grid-column:1;grid-row:1}.home-overview>.home-focus{grid-column:2;grid-row:1}
 .home-overview>.home-snapshot{grid-column:1/-1;grid-row:2}.home-overview>.home-recent{grid-column:1/-1;grid-row:3}
 .home-overview>.home-prep{grid-column:1/-1;grid-row:4}.home-overview .goal-panel{padding:24px}
 .home-overview .goal-chart{max-width:340px}.home-overview .home-focus .coach{padding:24px}
 .ins-body{gap:28px 36px}.ins-body>.insight-section{padding:26px 0 16px}
 .insight-overview .kpi{padding:18px 24px}.insight-overview .k-label{font-size:11px;min-height:0}.insight-overview .k-val{font-size:34px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
/* Compact the mobile goal without shrinking the chart's text or tap targets. */
@media(max-width:959px){
 .home-overview .goal-panel{padding:16px}
 .home-overview .goal-panel .gp-head{margin-bottom:4px}
 .home-overview .goal-panel .goal-modes{margin:8px 0}
 .home-overview .goal-panel .goal-modes button{min-height:44px}
 .home-overview .goal-panel .goal-footer{margin-top:8px;padding-top:8px}
 .home-overview .goal-panel .gp-chart{margin-top:8px}
 .home-overview .goal-panel .goal-current{margin-bottom:0}
 .home-overview .goal-chart{max-width:310px}
}
.insights-page>.insight-focus{max-width:none;width:100%}
#view .capture-photo{background:var(--panel);border:1px solid var(--panel-line);border-radius:12px;padding:22px;margin:20px 0}

/* 3.10.4: restore the original directional palette on Insights only. */
.insights-page .miss-circle.d-L{fill:var(--blue)}
.insights-page .miss-circle.d-R{fill:var(--orange)}
.insights-page .miss-circle.d-S{fill:var(--gold)}
.insights-page .miss-circle.d-LG{fill:var(--violet)}
.insights-page .miss-count:not(.zero){fill:#FFFFFF}
.insights-page .miss-circle.d-S + .miss-count{fill:#203449}
:root[data-theme="dark"] .insights-page .miss-circle.d-L{fill:var(--blue)}
:root[data-theme="dark"] .insights-page .miss-circle.d-R{fill:var(--orange)}
:root[data-theme="dark"] .insights-page .miss-circle.d-S{fill:var(--gold)}
:root[data-theme="dark"] .insights-page .miss-circle.d-LG{fill:var(--violet)}
:root[data-theme="dark"] .insights-page .miss-count:not(.zero){fill:#10202E}
.insights-page .dir-bar span.d-left{background:var(--blue)}
.insights-page .dir-bar span.d-right{background:var(--orange)}
.insights-page .dir-bar span.d-short,.insights-page .dir-chip.d-short i{background:var(--gold)}
.insights-page .dir-bar span.d-long,.insights-page .dir-chip.d-long i{background:var(--violet)}
:root[data-theme="dark"] .insights-page .dir-bar span.d-left{background:var(--blue)}
:root[data-theme="dark"] .insights-page .dir-bar span.d-right{background:var(--orange)}
:root[data-theme="dark"] .insights-page .dir-bar span.d-short,:root[data-theme="dark"] .insights-page .dir-chip.d-short i{background:var(--gold)}
:root[data-theme="dark"] .insights-page .dir-bar span.d-long,:root[data-theme="dark"] .insights-page .dir-chip.d-long i{background:var(--violet)}
.insights-page .chart .roll{stroke:var(--blue)}
.insights-page .ins-chart .gp-legend .lg-roll{border-top-color:var(--blue)}
:root[data-theme="dark"] .insights-page .ins-chart .gp-legend .lg-roll{border-top-color:var(--blue)}

/* 3.10.5: course-inspired data palette, scoped to Insights. */
.insights-page{--blue:#527795;--orange:#AC593C;--violet:#79617F;--gold:#D2AD50;--green:#287052;--sage:#A9C4AF}
:root[data-theme="dark"] .insights-page{--blue:#8BAAC1;--orange:#DC987D;--violet:#B5A0BA;--gold:#D2AD50;--green:#7FBB96;--sage:#A9C4AF}
.insights-page .p1,.insights-page .sw.c1{background:var(--green)}
.insights-page .p2,.insights-page .sw.c2{background:var(--sage)}
.insights-page .p3,.insights-page .sw.c5{background:var(--orange)}
.insights-page .split .bar-seg.c1{fill:var(--green)}
.insights-page .split .bar-seg.c2{fill:var(--sage)}
.insights-page .split .bar-seg.c5{fill:var(--orange)}
/* Exact scores and per-round dates stay readable instead of being scaled down. */
.round-chart-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding-bottom:8px;min-width:0}
.round-chart-scroll .round-score-plot{display:block;max-width:none!important;min-width:100%;height:214px;margin:0}
.round-chart-scroll .round-score-plot text{font-family:var(--font);font-size:12px}
.round-chart-scroll .round-score-plot .round-score-label{font-size:16px;font-weight:600;fill:var(--ink);stroke:var(--paper);stroke-width:5px;paint-order:stroke fill;stroke-linejoin:round}
.round-chart-scroll .round-score-plot .score-hit-area{fill:transparent;stroke:none}
.round-chart-scroll .round-score-plot a:focus{outline:none}
.round-chart-scroll .round-score-plot a:focus .dot{stroke:var(--gold,#D2AD50);stroke-width:4px}
.round-chart-legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12px;line-height:1.5;margin:14px 0 8px;color:var(--muted)}
.round-chart-legend span{display:inline-flex;align-items:center;gap:6px}.round-chart-legend i{display:inline-block;width:18px;border-top:2px solid var(--ink)}
.round-chart-legend .average-key{border-top:2px dashed var(--blue,#527795)}
.round-chart-legend .target-key{border-top:2px dashed #D2AD50}
.round-chart-hint{font-size:12px;line-height:1.5;color:var(--muted);margin:8px 0 0}
.goal-panel{--gold:#D2AD50}
.goal-panel .round-chart-legend,.goal-panel .round-chart-hint{color:var(--on-deep-muted)}
.goal-panel .round-chart-legend .score-key{border-color:var(--on-deep)}
.goal-panel .round-chart-legend .average-key{border-color:#A9C4AF}
.goal-panel .round-chart-scroll .round-score-plot .line{stroke:var(--on-deep)}
.goal-panel .round-chart-scroll .round-score-plot .roll{stroke:#A9C4AF;stroke-dasharray:5 4;stroke-width:2}
.goal-panel .round-chart-scroll .round-score-plot .dot{stroke:var(--on-deep);fill:var(--deep)}
.goal-panel .round-chart-scroll .round-score-plot .dot.best{fill:#D2AD50;stroke:#D2AD50}
.goal-panel .round-chart-scroll .round-score-plot .round-score-label{fill:var(--on-deep);stroke:var(--deep)}
.goal-panel .gp-chart{min-width:0}.home-overview .home-progress{min-width:0}

/* 3.13.0: scan reliability */
.photo-ok { margin: 8px 0 0; color: var(--green); font-weight: 600; }
.photo-flags { margin: 6px 0 8px; padding-left: 18px; }
.photo-flags li { margin: 0 0 4px; }
.scan-stats .fine { margin-top: 4px; }

/* 3.14.0: How to mark your card */
.mark-card { --card-sand:#E9DECA; margin:12px 0 16px; padding:10px 12px; background:var(--card-sand); border:1px solid #CDBF9F; border-radius:6px; color:#203449; }
.mark-card table { width:100%; border-collapse:collapse; table-layout:fixed; }
.mark-card th, .mark-card td { height:44px; padding:0 4px; text-align:center; border-bottom:1px solid #CDBF9F; }
.mark-card tr:last-child th, .mark-card tr:last-child td { border-bottom:0; }
.mark-card th { width:26%; text-align:left; font:600 12px/1 "Barlow Condensed","Barlow",sans-serif; letter-spacing:.08em; color:#203449; }
.mark-card tr.printed td { font:600 15px/1 "Barlow Condensed","Barlow",sans-serif; color:#203449; height:30px; }
.mark-card td { border-left:1px solid #CDBF9F; }
.mark-card .pm { display:inline-block; font-family:var(--hand); font-size:26px; line-height:1; color:#3B4350; }
.mark-card td:nth-child(2) .pm { transform:rotate(-3deg); }
.mark-card td:nth-child(3) .pm { transform:rotate(2deg) translateY(1px); }
.mark-card td:nth-child(4) .pm { transform:rotate(-1deg); }
.mark-guide h2 small { font:500 14px var(--display); color:var(--faint); }
.mark-guide .paper-key-row b:first-child { font-family:var(--display); }
:root[data-theme="dark"] .mark-card { background:#E9DECA; }

/* 3.15.1 premium layer: steady numerals, light surfaces, press feedback. No scroll-linked effects, so scrolling stays native. */
:root{--pp-radius:12px;--pp-shadow:0 1px 2px rgba(32,52,73,.07);--pp-ease:cubic-bezier(.22,.61,.36,1)}
:root[data-theme="dark"]{--pp-shadow:0 1px 2px rgba(0,0,0,.35)}
.k-val,.goal-value,.li-val,.li-score,.kpi,.chart text,.goal-chart text,table,dd{font-variant-numeric:tabular-nums lining-nums}
.group,.kpis,.choice,.drill,.resume,.card-preview{border-radius:var(--pp-radius);box-shadow:var(--pp-shadow)}
.home-overview .home-focus .coach,.insight-focus,.report>.coach{border-radius:var(--pp-radius)}
.btn,.li.link,.kpi,.row-toggle,.choice{transition:transform .2s var(--pp-ease),background-color .15s,border-color .15s}
.btn:active,.li.link:active,.kpi:active,.row-toggle:active,.choice:active{transform:scale(.985)}

/* 3.16.0 design system: the app's accent follows the brand palette (navy and sand), one radius scale, one focus style. */
:root{--r-s:8px;--r-m:12px;--r-l:16px;--brand:#203449;--brand-hover:#16283A;--on-brand:#F8F4EA;--brand-soft:#E9DECA}
:root[data-theme="dark"]{--brand:#E9DECA;--brand-hover:#F4ECDC;--on-brand:#10202E;--brand-soft:#2A3F52}
a:not([class]){text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.btn,.chip,.seg,input,select,textarea,.field input,.field select,.field textarea{border-radius:var(--r-m)}
.btn.primary{box-shadow:0 1px 2px rgba(32,52,73,.2)}
input:focus,select:focus,textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px var(--brand-soft)}
.btn:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible{outline-color:var(--ink)}

/* 3.17.0 layout polish: quieter coach card, folded stroke list, one page-title rhythm. */
.home-overview .home-focus .coach,.insight-focus,.report>.coach{border-left:1px solid var(--panel-line)}
.opps>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;min-height:44px;font:500 22px/1.2 "Newsreader",Georgia,serif;color:var(--ink)}
.opps>summary::-webkit-details-marker{display:none}
.opps>summary::after{content:"+";font:500 22px var(--font);color:var(--muted)}
.opps[open]>summary::after{content:"\2212"}
.opps[open]>summary{margin-bottom:8px}
.page-head h1{font-size:clamp(32px,8vw,38px);letter-spacing:-.015em}

/* 3.18.0 paper scorecard: each nine is a sheet of the course card with pencil marks. */
:root{--sheet:#FFFDF7;--sheet-head:#E9DECA;--sheet-line:#E3D9C4}
:root[data-theme="dark"]{--sheet:#1B2D3C;--sheet-head:#2A3F52;--sheet-line:#35485B}
.scorecard-panel{background:none;border:0;box-shadow:none;padding:6px 0 0}
.scorecard-panel h2{margin-left:2px}
.scorecard-panel .sc-wrap{gap:18px;padding:4px 2px 8px}
.scorecard-panel .sc{background:var(--sheet);box-shadow:0 1px 1px rgba(32,52,73,.1),0 10px 18px -14px rgba(32,52,73,.35);background-image:repeating-linear-gradient(0deg,transparent 0 35px,rgba(32,52,73,.025) 35px 36px)}
.scorecard-panel .sc th,.scorecard-panel .sc td{border-color:var(--sheet-line)}
.scorecard-panel .sc thead th,.scorecard-panel .sc th[scope="row"],.scorecard-panel .sc .tot{background:var(--sheet-head);color:var(--ink)}
.scorecard-panel .sc thead th{font-weight:600}
.scorecard-panel .sc tr.score .tot,.scorecard-panel .sc tr.sub .tot{font-family:var(--hand);color:var(--pencil)}
.scorecard-panel .sc-wrap .sc:nth-child(odd){transform:rotate(-.3deg)}
.scorecard-panel .sc-wrap .sc:nth-child(even){transform:rotate(.25deg)}
.sc-key{margin-top:10px}

/* 3.19.0 clubhouse style: condensed capital headlines and numbers, capital buttons, a gold stitched patch for wins,
   fairway green for the practice card. Base palette stays navy, sand and off-white. */
:root{--cond:"Barlow Condensed","Barlow",sans-serif;--win:#E7B634;--win-edge:#B98D1C;--fairway:#1E5139;--on-fairway:#FAF8F2;--on-fairway-muted:#BFD6C8}
h1,.page-head h1,.flow-top h1{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.005em;line-height:.98}
.page-head h1{font-size:clamp(36px,10vw,46px)}
h2,.group-head h2,.gp-title,.goal-panel .gp-head h2.gp-title,.coach .coach-title,.insight-focus h2,.round-takeaway .tk-head,.focus-card h2{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.01em;line-height:1.02}
h2,.group-head h2{font-size:24px}
.goal-panel .gp-head h2.gp-title,.home-overview .goal-panel .gp-title{font-size:32px!important}
.coach .coach-title,.insight-focus h2,.round-takeaway .tk-head{font-size:28px}
.focus-card h2{font-size:30px}
.coach h2,.opps>summary{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.coach h2{font-size:14px;color:var(--muted)}
.opps>summary{font-size:22px;letter-spacing:.01em}
.goal-value,.score-hero .big,.k-val,.li-score b,.hero-side .topar,.nines b,.dir-pct,.gp-num,.drill-min,.hole-info b{font-family:var(--cond);font-weight:700;letter-spacing:0}
.btn{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:18px}
.btn.small{font-size:16px}
.tab{text-transform:uppercase;letter-spacing:.06em;font-size:11px}
.stamp,.score-hero .stamp,:root[data-theme="dark"] .stamp{position:relative;background:var(--win);color:#203449;border:0;border-radius:999px;padding:9px 16px;font-family:var(--cond);font-weight:700;letter-spacing:.06em;box-shadow:0 2px 0 var(--win-edge),0 6px 14px -6px rgba(0,0,0,.35)}
.stamp::before{content:"";position:absolute;inset:3px;border:1.5px dashed rgba(32,52,73,.55);border-radius:inherit;pointer-events:none}
.stamp small{color:#203449;opacity:1}
.focus-card{background:var(--fairway);color:var(--on-fairway)}
.focus-card h2{color:var(--on-fairway)}
.fc-skill{color:var(--win)}
.fc-row small{color:var(--on-fairway-muted)}
:root{--score-font:var(--cond)}
.round-detail>summary,.photo-box>summary{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.01em;font-size:22px}
.home-overview .stat-row .k-val,.kpi .k-val{font-family:var(--cond);font-weight:700}
.home .home-title,.home-title .home-brand{text-transform:none;letter-spacing:0}
.home-title .home-brand{font-family:"Newsreader",Georgia,serif;font-weight:600}
.page>h1,.onboarding h1,.home:has(.home-main)>.page-head h1{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.005em}
/* 3.20.0 — richer green map and the fairway map for tee shots */
:root{--map-mow:rgba(255,255,255,.22);--map-green-light:#CFE3C7;--map-green-dark:#A9C9A0;--map-fairway:#C9DEBF}
:root[data-theme="dark"]{--map-mow:rgba(255,255,255,.05);--map-green-light:#3F6545;--map-green-dark:#2C4A31;--map-fairway:#30513A}
.green-mow,.fairway-mow{fill:var(--map-mow)}
.green-light{stop-color:var(--map-green-light)}.green-dark{stop-color:var(--map-green-dark)}
.green-surface{stroke:none}
.green-edge{fill:none;stroke:var(--map-ink);stroke-width:1.6;opacity:.75}
.green-fringe{stroke:var(--map-contour);stroke-width:1;stroke-opacity:.35}
.green-hole-shadow{fill:var(--map-ink);opacity:.18}
.green-pin{stroke-width:2}
.map-bunker{fill:var(--sand);stroke:var(--sand-line);stroke-width:1.2}
.fairway-figure{max-width:400px;margin:4px auto 0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--map-ground)}
.fairway-map{display:block}
.fairway-surface{fill:var(--map-fairway)}
.fairway-edge{fill:none;stroke:var(--map-contour);stroke-width:1.4;opacity:.7}
.fairway-tee{fill:var(--map-green-light);stroke:var(--map-contour);stroke-width:1.2}
.fw-marker{fill:var(--map-ink)}
.fw-flight{fill:none;stroke:var(--map-ink);stroke-width:1.2;stroke-dasharray:2 5;opacity:.45}
.fw-dot{stroke:var(--map-ground);stroke-width:3}
.fw-zone.d-left .fw-dot{fill:var(--blue)}.fw-zone.d-hit .fw-dot{fill:var(--green)}.fw-zone.d-right .fw-dot{fill:var(--orange)}
.fw-label{fill:var(--map-ink);font:600 12px var(--font);letter-spacing:.08em;text-transform:uppercase}
.fw-pct{fill:var(--map-ink);font:700 38px var(--cond)}
.fw-count{fill:var(--map-ink);font:500 13px var(--font);opacity:.8}
.dir-wrap .dir-chips{margin-top:12px}

/* 3.21.0: open beta. Guest bar, quick marking key on the scan screen, feedback form. */
.guest-bar small { display:block; opacity:.85; }
.demo-actions .demo-exit { color:inherit; }
.quick-key .paper-key-row { padding:8px 0; }
.quick-key .paper-key-row { grid-template-columns:96px 1fr; }
.quick-key .paper-key-row b.mk { font:400 18px/1.3 var(--hand); color:var(--pencil); text-align:left; justify-self:start; white-space:normal; }
.quick-key .more-link { display:inline-flex; margin-top:10px; }
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.fb-thumbs { border:0; padding:0; margin:0 0 14px; }
.fb-thumbs legend { font-weight:600; margin-bottom:8px; }
.fb-thumbs legend small, .fb-form .field small { font-weight:400; color:var(--faint); }
.fb-thumbs label { position:relative; display:inline-flex; margin-right:8px; }
.fb-thumbs input { position:absolute; left:0; top:0; width:1px; height:1px; opacity:0; }
.fb-thumbs span { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:8px 16px; border:1px solid var(--line); border-radius:999px; cursor:pointer; }
.fb-thumbs input:checked + span { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.fb-thumbs input:focus-visible + span { outline:3px solid var(--blue); outline-offset:2px; }
.fb-form textarea { width:100%; font:inherit; padding:10px 12px; border:1px solid var(--line); border-radius:var(--radius-s); background:var(--surface); color:var(--ink); resize:vertical; }
.fb-form .fb-status:empty { display:none; }
.fb-thanks { margin:0; font-weight:600; }
.guest-save .btn { margin-top:4px; }
