/* GHT — two screens, one shared visual language. */
.recap-scores{display:flex;gap:14px;text-align:right;font-variant-numeric:tabular-nums}.recap-scores span{display:flex;flex-direction:column;gap:5px}.recap-scores small{font-size:12px;color:#626f65}.recap-scores strong{font-size:25px;color:#164c35}@media(max-width:400px){.recap-row .recap-scores{grid-column:2/-1;justify-content:flex-end}.recap-scores{gap:24px}}
:root{color-scheme:light;--green:#164c35;--accent:#26734c;--tint:#edf5ee;--paper:#fff;--bg:#f4f5f1;--ink:#202e25;--muted:#626f65;--line:#e0e6df;--gold:#957329;--error:#a42424;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.48;cursor:default}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8caf8b;outline-offset:3px}[hidden]{display:none!important}
.brand{background:var(--green);color:white;padding:calc(env(safe-area-inset-top) + 20px) max(20px,calc((100% - 480px)/2)) 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.brand-mark{color:#e5d295;font-weight:800;font-size:25px;letter-spacing:.09em}main{max-width:520px;margin:auto;padding:24px 20px calc(100px + env(safe-area-inset-bottom))}.page-heading,.section-heading,.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.page-heading{align-items:flex-end}.section-heading{margin-top:24px}h1{font-size:32px;letter-spacing:-1px;margin:4px 0 0}h2{font-size:20px;letter-spacing:-.4px;margin:0}h3{font-size:15px;margin:18px 0 10px}.eyebrow{color:var(--muted);font-size:10px;font-weight:750;letter-spacing:.1em;text-transform:uppercase;margin:0 0 5px}.muted,.hint{color:var(--muted);font-size:13px;line-height:1.5}.hint{margin:12px 0 18px}.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden}.quiet{border:0;background:transparent;color:var(--green);font-size:14px;font-weight:650;padding:12px 8px;min-height:44px}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:12px;padding:16px;border:1px solid var(--green);font-weight:700;min-height:50px}.primary{background:var(--green);color:white}.secondary{background:white;color:var(--green)}.full{display:flex;width:100%;margin-top:18px}.tabs{position:fixed;bottom:0;left:0;right:0;max-width:520px;margin:auto;padding:10px 20px calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;gap:8px;background:rgba(244,245,241,.96);border-top:1px solid var(--line);z-index:4}.tabs a{padding:14px 8px;text-decoration:none;text-align:center;border-radius:12px;font-size:14px;font-weight:700;color:var(--muted)}.tabs [aria-current]{color:var(--green);background:#e2eddf}
.board-row{width:100%;border:0;background:white;display:grid;grid-template-columns:22px 42px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;padding:18px 14px;color:var(--ink)}.board-row+.board-row{border-top:1px solid var(--line)}.board-row:hover{background:var(--tint)}.rank{color:var(--gold);font-size:13px;font-weight:700}.avatar{width:42px;height:42px;flex:0 0 42px;border-radius:50%;object-fit:cover;background:var(--tint);color:var(--green);display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:750;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.player-name{font-size:16px;font-weight:700;overflow-wrap:anywhere}.sub{font-size:11px;color:var(--muted);line-height:1.5;margin-top:5px}.handicap{text-align:right;font-size:25px;font-weight:750;color:var(--green);font-variant-numeric:tabular-nums}.handicap small{font-size:10px;display:block;letter-spacing:.05em;color:var(--muted)}.empty{padding:28px 18px;text-align:center;color:var(--muted);font-size:14px;line-height:1.5}
.setup{padding:16px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}label{font-size:12px;font-weight:650}input,select{max-width:100%}label>input,label>select{display:block;width:100%;margin-top:8px;border:1px solid var(--line);border-radius:8px;padding:12px 8px;color:var(--ink);background:white;font-size:16px;min-height:46px;min-width:0}.group-picker{padding:10px 16px;margin-bottom:12px}.group-picker label{display:flex;align-items:center;gap:12px;padding:10px 0;font-size:15px}.group-picker input{width:22px;height:22px;accent-color:var(--green)}.score-row{display:grid;grid-template-columns:42px minmax(0,1fr) 76px;gap:10px;padding:16px 12px;align-items:center}.score-row+.score-row{border-top:1px solid var(--line)}.score-input{width:76px;min-height:55px;border:1px solid var(--line);border-radius:10px;text-align:center;font-size:26px;font-weight:700;padding:8px;background:#fafbf9;color:var(--green);font-variant-numeric:tabular-nums}.score-input::placeholder{font-size:20px;color:#90988f;font-weight:400}.score-input[aria-invalid=true]{border-color:var(--error)}.tee-select{max-width:115px;border:0;background:var(--tint);border-radius:6px;font-size:12px;padding:6px;margin-top:6px;color:var(--green);min-height:34px}.skip{display:block;border:0;background:transparent;padding:5px 0;color:var(--muted);font-size:12px;min-height:30px}.error{color:var(--error);font-size:14px;line-height:1.5}.error:empty{display:none}
dialog{border:0;border-radius:24px;padding:22px;width:calc(100% - 24px);max-width:480px;max-height:88dvh;overflow-y:auto;color:var(--ink);background:var(--bg);box-shadow:0 20px 80px #0004}dialog::backdrop{background:#11271fcc}.dialog-heading{margin-bottom:18px}.hero{background:var(--green);border-radius:16px;padding:20px;color:white;display:flex;gap:16px;align-items:center}.hero .avatar{width:56px;height:56px;flex-basis:56px}.hero strong{font-size:36px;display:block}.hero small{font-size:12px;opacity:.8}.chart{background:white;border:1px solid var(--line);padding:12px;border-radius:16px}.chart svg{width:100%;height:auto;display:block}.round-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px;border-top:1px solid var(--line)}.round-row:first-child{border-top:0}.round-row.best{background:var(--tint)}.round-value{font-weight:750;font-size:21px;text-align:right}.scorecard{background:white;border-radius:16px;overflow:hidden;border:1px solid var(--line)}.scorecard-heading{background:var(--green);color:white;padding:22px}.scorecard-heading h3{margin:0 0 8px;font-size:24px}.recap-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--line)}.recap-row strong:last-child{font-size:25px;font-variant-numeric:tabular-nums}.low-score{padding:18px;background:var(--tint);color:var(--green);font-size:14px;font-weight:650;line-height:1.5}.share-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.share-actions .quiet{grid-column:1/-1}.download-link{display:block;color:var(--green);font-weight:650;margin:12px 0}
.hcp-change{font-size:14px;line-height:1.5;color:var(--muted);margin-top:6px}.hcp-change.improved{color:var(--green);font-weight:650}.best-badge{display:inline-block;background:#faf1d9;color:#755714;border-radius:8px;padding:5px 8px;font-size:14px;line-height:1.4;margin-top:8px}.recap-note{font-size:14px;line-height:1.5;color:var(--muted)}.duplicate-date{padding:0 16px;font-weight:650;font-size:16px}.duplicate-row{padding:14px 16px;border-top:1px solid var(--line);font-size:16px}.duplicate-row span{display:block;font-size:14px;line-height:1.5;color:var(--muted);margin-top:6px}.duplicate-actions{display:grid;gap:10px}.recap-row{align-items:start}.recap-row>.avatar{margin-top:3px}#duplicates-description{font-size:16px;line-height:1.5}
@media(max-width:360px){main{padding-left:12px;padding-right:12px}.board-row{gap:7px;padding:14px 10px;grid-template-columns:17px 36px minmax(0,1fr) auto}.board-row .avatar{width:36px;height:36px;flex-basis:36px}.player-name{font-size:15px}.score-row{grid-template-columns:36px minmax(0,1fr) 66px;gap:8px}.score-input{width:66px}.recap-row{gap:8px;padding:12px;grid-template-columns:32px minmax(0,1fr) auto}.recap-row .avatar{width:32px;height:32px;flex-basis:32px}}
