/* High-contrast, big-target styles for use in sunlight, one-handed. */
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
:root {
  --green: #0b5d1e; --green2: #12862d; --ink: #000; --bg: #fff; --muted: #333;
  --line: #c3ccc5; --red: #b00020; --blue: #0039a6; --sel: #000; --soft: #eef3ee;
}
html, body { margin: 0; background: var(--bg); color: var(--ink);
  font: 600 18px/1.3 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  -webkit-text-size-adjust: 100%; overscroll-behavior: none; }
#app { max-width: 560px; margin: 0 auto;
  padding: calc(env(safe-area-inset-top) + 6px) 10px calc(env(safe-area-inset-bottom) + 14px); }
h1 { font-size: 30px; margin: 10px 0 6px; }
h2 { font-size: 22px; margin: 18px 0 8px; }
h3 { font-size: 19px; margin: 12px 0 6px; }
p { margin: 6px 0; }
.muted { color: var(--muted); font-weight: 500; }
button { font: inherit; color: inherit; cursor: pointer; border-radius: 16px; border: 1px solid var(--line);
  background: #fff; min-height: 56px; padding: 6px 10px; touch-action: manipulation; }
button:active { transform: scale(.97); }
button.primary { background: var(--green); color: #fff; border-color: var(--green); font-size: 22px; font-weight: 800; }
button.danger { background: #fff; color: var(--red); border-color: var(--red); }
button.sel { background: var(--sel); color: #fff; }
button.big { width: 100%; min-height: 66px; font-size: 22px; font-weight: 800; margin: 6px 0; }
button:disabled { opacity: .35; }
input[type=text] { font: inherit; font-size: 20px; width: 100%; padding: 12px; border: 1px solid var(--line); border-radius: 16px; }
.row { display: flex; gap: 8px; }
.row > * { flex: 1; }
.grid { display: grid; gap: 8px; }
.g2 { grid-template-columns: repeat(2, 1fr); }
.g3 { grid-template-columns: repeat(3, 1fr); }
.g4 { grid-template-columns: repeat(4, 1fr); }
.label { font-size: 15px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; margin: 10px 0 5px; }
.topbar { display: flex; align-items: center; gap: 8px; position: sticky; top: 0; background: #fff; z-index: 5;
  padding: 6px 0; border-bottom: 1px solid var(--line); }
.topbar .title { flex: 1; text-align: center; }
.topbar .title b { font-size: 24px; display: block; }
.topbar .title span { font-size: 16px; }
.topbar .title span button { min-height: 40px; padding: 0 10px; font-size: 15px; border-width: 1px; }
.topbar button { min-width: 64px; font-size: 26px; font-weight: 900; }
.topbar button.txt { font-size: 17px; }
.status { background: var(--soft); border: 1px solid var(--line); border-radius: 16px; padding: 8px 12px; margin: 8px 0; font-size: 20px; }
.status b { font-size: 24px; }
.shots { margin: 8px 0; }
.shot { display: flex; width: 100%; text-align: left; align-items: center; gap: 8px; margin: 6px 0; min-height: 58px; border-width: 1px; }
.shot .n { font-weight: 900; font-size: 20px; width: 34px; }
.shot .d { flex: 1; font-weight: 600; font-size: 17px; }
.shot .sg { font-weight: 900; font-size: 18px; min-width: 56px; text-align: right; }
.shot.editing { outline: 4px solid var(--blue); }
.pos { color: var(--green); } .neg { color: var(--red); }
.display { font-size: 38px; font-weight: 900; text-align: center; border: 1px solid var(--line); border-radius: 16px;
  padding: 4px; margin: 8px 0; min-height: 60px; background: #fffbe6; }
.display small { font-size: 22px; }
.keypad { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; }
.keypad button { min-height: 56px; font-size: 30px; font-weight: 800; }
.keypad .clr { font-size: 19px; }
.lies button { font-size: 16px; padding: 4px; min-height: 54px; line-height: 1.1; }
.grid.g4 button { padding: 4px; }
.row.sub { margin-top: 18px; } .row.sub button { min-height: 46px; font-size: 17px; }
.row.save .holed { flex: 0 0 38%; background: #ffd400; border-color: #000; color: #000; }
.display .dl { font-size: 16px; font-weight: 800; text-transform: uppercase; vertical-align: middle; margin-right: 6px; }
.note { border-left: 1px solid var(--blue); padding: 8px 10px; background: #eef2fb; margin: 8px 0; font-weight: 600; }
.done { border: 1px solid var(--green); border-radius: 18px; padding: 12px; text-align: center; margin: 12px 0; }
.done b { font-size: 30px; }
table { width: 100%; border-collapse: collapse; font-size: 17px; }
th, td { border-bottom: 1px solid var(--line); padding: 8px 4px; text-align: left; }
td.num, th.num { text-align: right; }
.card { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.card button { min-height: 64px; padding: 2px; font-size: 14px; line-height: 1.15; }
.card button b { font-size: 22px; display: block; }
.card .under { background: #d6f5dc; } .card .over { background: #ffe0e0; } .card .empty { color: #666; border-style: dashed; }
.big-score { text-align: center; margin: 8px 0; }
.big-score .s { font-size: 54px; font-weight: 900; line-height: 1; }
.stat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.stat { border: 1px solid var(--line); border-radius: 16px; padding: 8px 10px; }
.stat b { font-size: 26px; display: block; }
.stat span { font-size: 14px; font-weight: 700; text-transform: uppercase; }
.hist { display: flex; justify-content: space-between; width: 100%; text-align: left; margin: 6px 0; }
#toast { position: fixed; left: 50%; top: calc(env(safe-area-inset-top) + 12px); transform: translateX(-50%);
  background: #000; color: #fff; padding: 12px 18px; border-radius: 16px; font-size: 18px; display: none; z-index: 50; max-width: 90%; pointer-events: none; }
#toast.show { display: block; }
.help { font-size: 15px; font-weight: 500; }

/* ---- v2 hole card: one row per shot ---- */
#app { padding-left: 6px; padding-right: 6px; }
.holecard { border: 1px solid var(--line); border-radius: 20px; padding: 8px 6px 10px; margin: 10px 0; background: #fff; }
.hc-head { display: flex; align-items: center; justify-content: space-between; padding: 0 4px 8px; border-bottom: 1px solid var(--line); }
.hc-head h2 { margin: 0; font-size: 30px; }
.par { display: flex; align-items: center; gap: 6px; }
.par span { font-size: 18px; font-weight: 800; margin-right: 2px; }
.par button { min-width: 48px; min-height: 48px; font-size: 22px; font-weight: 900; padding: 0; }
.srow { display: grid; grid-template-columns: 30px 70px minmax(0, 1fr) 52px 44px 44px; gap: 4px; align-items: center; padding: 6px 2px 0; }
.srow.shead { font-size: 15px; font-weight: 900; text-transform: uppercase; padding-top: 8px; }
.srow.shead span { text-align: center; }
.srow.bad { background: #fff6cc; border-radius: 14px; }
.srow.dead { opacity: .35; }
.srow .c-n { min-height: 48px; padding: 0; border-width: 1px; font-size: 18px; font-weight: 900; border-radius: 14px; }
.c-d { display: flex; align-items: center; gap: 2px; }
.c-d input { width: 50px; min-width: 0; font: inherit; font-size: 22px; font-weight: 800; text-align: center; height: 48px;
  border: 1px solid var(--line); border-radius: 14px; padding: 0 2px; background: #fffbe6; }
.c-d input:focus { outline: 4px solid var(--blue); }
.c-d .u { font-style: normal; font-size: 14px; font-weight: 700; }
.srow select { width: 100%; height: 48px; font: inherit; font-size: 16px; font-weight: 800; border: 1px solid var(--line); border-radius: 14px;
  background: #fff; color: #000; padding: 0 4px; -webkit-appearance: none; appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #000 50%), linear-gradient(135deg, #000 50%, transparent 50%);
  background-position: calc(100% - 12px) 21px, calc(100% - 7px) 21px; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 18px; }
.teetxt, .obtxt, .holedtxt { font-weight: 900; font-size: 18px; padding-left: 6px; }
.obtxt { color: var(--red); font-size: 15px; }
.c-p .pen { width: 44px; height: 44px; min-height: 44px; border-radius: 50%; padding: 0; font-size: 15px; font-weight: 900; }
.c-p .pen.on { background: var(--red); border-color: var(--red); color: #fff; }
.c-p .pen:disabled { opacity: 1; }
.c-del .del { width: 44px; height: 44px; min-height: 44px; padding: 0; background: #d0213a; border-color: #d0213a; color: #fff; font-size: 22px; border-radius: 14px; }
.sinfo { font-size: 13px; font-weight: 600; color: #333; padding: 2px 4px 4px 36px; min-height: 4px; border-bottom: 1px solid #ccc; }
.rowmenu { display: flex; gap: 6px; padding: 6px 2px; }
.rowmenu button { flex: 1; min-height: 48px; font-size: 15px; padding: 2px; border-color: var(--blue); color: var(--blue); }
.addshot { background: #0039a6; border-color: #0039a6; color: #fff; margin-top: 10px; }
.hint { font-size: 15px; font-weight: 700; padding: 8px 4px 0; color: #333; }
.hole-done { margin-top: 10px; padding: 12px; border: 1px solid var(--green); border-radius: 16px; text-align: center; font-size: 20px; }
.hole-done b { font-size: 28px; }

.srow.shead .c-n { min-height: 0; border: 0; }
.srow select[data-f="dir"] { text-align: center; font-size: 20px; padding-left: 6px; }
.srow .c-l.wide { grid-column: span 3; }
/* v3: finish hole + stroke count */
.count { font-size: 17px; font-weight: 800; padding: 8px 4px 0; }
.finish { background: var(--green); border-color: var(--green); color: #fff; }
.finish:disabled { background: #d9d9d9; border: 3px dashed #777; color: #555; opacity: 1; }
.holecard.fin .srow select:disabled, .holecard.fin .srow input:disabled { background: #f2f2f2; color: #000; opacity: 1; -webkit-text-fill-color: #000; }
.holecard.fin { border-color: var(--green); }
.srow button:disabled { opacity: .45; }
.holecard.fin .c-p .pen.on:disabled, .c-p .pen.on:disabled { opacity: 1; }
.srow select[data-f="loc"] { font-size: 15px; letter-spacing: -0.3px; padding-left: 4px; padding-right: 14px; background-position: calc(100% - 10px) 21px, calc(100% - 5px) 21px; }
.srow { grid-template-columns: 30px 68px minmax(0, 1fr) 50px 44px 44px; }
/* v4: baselines */
.lbl { display: block; font-weight: 700; font-size: 16px; margin: 12px 0 4px; }
select.blsel { font: inherit; font-size: 19px; font-weight: 700; width: 100%; min-height: 54px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 16px; background: #fff; color: #000; }
.blbox { border: 1px solid var(--line); border-radius: 18px; padding: 4px 12px 2px; margin: 8px 0 12px; background: #f6f6f6; }
table.cmp { font-size: 15px; }
table.cmp th, table.cmp td { padding: 10px 3px; }
table.cmp tr[data-act] { cursor: pointer; }
table.cmp tr.cur td { background: #fff3b0; font-weight: 800; }
table.cmp sup { font-size: 10px; margin-left: 2px; }
.about { font-size: 17px; line-height: 1.45; }
.about a { color: #0645ad; font-weight: 700; word-break: break-word; }
.about li { margin-bottom: 8px; }
/* v5: 8-way direction + maps */
.srow .dirbtn { width: 100%; height: 48px; min-height: 48px; padding: 0; font-size: 26px; font-weight: 900; border: 1px solid var(--line); border-radius: 14px; background: #fff; color: #888; }
.srow .dirbtn.on { color: #000; background: #e8f0ff; border-color: var(--blue); }
.sheet-bg { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 50; }
.sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 51; background: #fff; border-top: 1px solid var(--line); border-radius: 18px 18px 0 0;
  padding: 12px 14px calc(env(safe-area-inset-bottom) + 12px); }
.sheet h3 { margin: 4px 0; font-size: 22px; }
.sheet .help { margin: 4px 0 10px; }
.dirgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 10px; }
.dirgrid button { min-height: 78px; padding: 4px 2px; font-size: 16px; font-weight: 800; border: 1px solid var(--line); border-radius: 16px; background: #fff; color: #000; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.1; }
.dirgrid button span { font-size: 28px; line-height: 1; margin-bottom: 4px; }
.dirgrid button.sel { background: var(--blue); border-color: var(--blue); color: #fff; }
.dirgrid button.none { color: #666; border-style: dashed; }
button.stat.tile { display: block; width: 100%; text-align: left; border: 1px solid var(--blue); background: #eef4ff; color: #000; font: inherit; cursor: pointer; min-height: 44px; }
button.stat.tile span::after { content: ''; }
.stat .mini { display: block; font-size: 15px; font-weight: 800; margin-top: 4px; }
body.noscroll { overflow: hidden; }
.mapview { position: fixed; inset: 0; z-index: 60; background: #fff; overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: calc(env(safe-area-inset-top) + 8px) 12px calc(env(safe-area-inset-bottom) + 16px); }
.maphead { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.maphead b { font-size: 22px; }
.maphead .close { min-height: 48px; padding: 4px 14px; font-size: 18px; font-weight: 800; border: 1px solid var(--line); border-radius: 16px; background: #000; color: #fff; }
.seg { display: flex; gap: 6px; margin: 10px 0 6px; }
.seg button { flex: 1; min-height: 48px; font-size: 17px; font-weight: 800; border: 1px solid var(--line); border-radius: 16px; background: #fff; color: #000; }
.seg button.sel { background: #000; color: #fff; }
.mapsum { margin: 6px 0; font-size: 17px; }
.mapview svg { display: block; width: 100%; height: auto; border: 1px solid var(--line); border-radius: 16px; }
.legend { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 10px 0; font-size: 15px; font-weight: 700; }
.legend span { display: flex; align-items: center; gap: 6px; }
.legend .dot { display: inline-block; width: 16px; height: 16px; border-radius: 50%; border: 2px solid #000; flex: none; }
.legend .dot.num { width: 22px; height: 22px; background: #000; color: #fff; font-style: normal; font-size: 13px; text-align: center; line-height: 18px; font-weight: 900; }
/* v6: pin location + fairway map */
.pinbtn { display: block; width: 100%; min-height: 50px; margin: 8px 0 4px; font-size: 18px; font-weight: 800; border: 1px dashed #9faba1; border-radius: 16px; background: #fff; color: #000; }
.pinbtn.set { border-style: solid; border-color: #9fcf9a; background: #e9f7e6; }
.pinbtn small { font-size: 14px; font-weight: 700; text-decoration: underline; margin-left: 6px; }
.pinwrap { margin: 6px 0; }
.pinlbl { text-align: center; font-weight: 900; font-size: 16px; margin: 4px 0; }
.pingreen { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); height: 420px; border-radius: 50%;
  overflow: hidden; border: 1px solid #145214; background: #3da33d; }
.pingreen button { border: 0; border-radius: 0; outline: 2px dashed rgba(255,255,255,.75); outline-offset: -1px; background: transparent; color: #fff;
  font-size: 16px; font-weight: 900; padding: 2px; min-height: 44px; text-shadow: 0 1px 2px #000; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.pingreen button.sel { background: #ffd23f; color: #000; text-shadow: none; outline: 4px solid #000; outline-offset: -4px; }
.pingreen .flag { font-size: 30px; line-height: 1; }
.pincur { font-size: 19px; text-align: center; margin: 10px 0; }
.row2 { display: flex; gap: 8px; }
.row2 .big { flex: 1; }
.fwcounts { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 10px; font-size: 17px; font-weight: 700; margin: 4px 0 8px; }
.legend .ln { display: inline-block; width: 26px; height: 5px; border-radius: 3px; flex: none; }
.legend .ln.dash { background: repeating-linear-gradient(90deg, #e0102a 0 7px, transparent 7px 11px); }
.legend .x { font-size: 18px; width: 16px; text-align: center; }
.pingreen { border-radius: 44%; }
.pingreen button { line-height: 1.1; }
.pingreen button:nth-child(3n+1) { align-items: flex-end; padding-right: 8px; text-align: right; }
.pingreen button:nth-child(3n) { align-items: flex-start; padding-left: 8px; text-align: left; }
.pingreen button:nth-child(-n+3) { justify-content: flex-end; padding-bottom: 14px; }
.pingreen button:nth-child(n+7) { justify-content: flex-start; padding-top: 14px; }
.legend .dia { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; background: #c9c9c9; border: 2px solid #000; transform: rotate(45deg); flex: none; font-style: normal; font-size: 11px; font-weight: 900; }
.legend .star { color: #ffd23f; -webkit-text-stroke: 1.5px #000; font-size: 22px; line-height: 1; width: 18px; text-align: center; }
.mapview .legend svg { width: 20px; height: 20px; border: 0; border-radius: 0; display: inline-block; }
/* v8: pin-location map */
.pinstats button { position: relative; color: #fff; }
.pinstats button small { display: block; font-size: 13px; font-weight: 800; margin-top: 2px; }
.pinstats .badge { display: inline-block; min-width: 28px; height: 28px; line-height: 24px; border-radius: 14px; background: #fff; color: #000; border: 2px solid #000;
  font-size: 16px; font-weight: 900; text-shadow: none; text-align: center; margin-bottom: 3px; padding: 0 4px; }
.pinstats button.has .badge { background: #000; color: #fff; border-color: #fff; }
.pinstats button:not(.has) { opacity: .85; }
.pingreen.pinstats { height: 460px; }
/* v13 proximity yardage rail: 17 buttons (200 top .. 40 bottom) left of the map, map shifted right */
.mapview .yall { display: block; width: 100%; min-height: 48px; margin: 8px 0 6px; border: 1px solid var(--line); border-radius: 16px; background: #fff; font-size: 18px; font-weight: 900; color: #000; }
.mapview .yall.sel { background: #000; color: #fff; }
.proxwrap { display: flex; gap: 6px; align-items: stretch; }
.proxwrap svg { flex: 1 1 auto; min-width: 0; width: auto; }
.proxrail { flex: 0 0 54px; display: flex; flex-direction: column; gap: 2px; }
.proxrail .ybtn { flex: 1 1 0; min-height: 34px; padding: 0; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: #000;
  display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; gap: 1px; }
.proxrail .ybtn b { font-size: 16px; font-weight: 900; }
.proxrail .ybtn small { font-size: 11px; font-weight: 800; color: #1e6fd9; }
.proxrail .ybtn.sel { background: #000; color: #fff; border-color: #000; box-shadow: 0 0 0 3px #ffd23f; }
.proxrail .ybtn.sel small { color: #ffd23f; }
.proxrail .ybtn:disabled { background: #eee; color: #b0b0b0; border-color: #d0d0d0; }
/* v14 proximity: starting-lie chips, by-lie table, practice warning */
.liechips { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 2px; }
.liechips .liebtn { flex: 1 1 30%; min-height: 44px; border: 1px solid var(--line); border-radius: 14px; background: #fff; color: #000; font-size: 15px; font-weight: 900; padding: 2px 4px; }
.liechips .liebtn small { font-size: 12px; color: #1e6fd9; font-weight: 800; }
.liechips .liebtn.sel { background: #000; color: #fff; box-shadow: 0 0 0 3px #ffd23f; }
.liechips .liebtn.sel small { color: #ffd23f; }
.liechips .liebtn:disabled { background: #eee; color: #b0b0b0; border-color: #d0d0d0; }
.liechips .liebtn:disabled small { color: #b0b0b0; }
.lietab td, .lietab th { font-size: 15px; padding: 8px 4px; }
.lietab tr.sel td { background: #fff6cc; font-weight: 900; }
.lietab tr.warn td { background: #ffe1e4; color: #9b0016; font-weight: 900; }
.warnmsg { margin: 8px 0; padding: 10px 12px; border: 1px solid #e0102a; border-radius: 16px; background: #ffe1e4; color: #9b0016; font-weight: 900; font-size: 16px; }
.legend .sw { display: inline-block; width: 22px; height: 14px; border-radius: 3px; flex: none; }
/* v15 traditional scorecard: Front 9 / Back 9 tables (OUT / IN), TOTAL, score marks */
.mk { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; font-size: 18px; font-weight: 900; line-height: 1; box-sizing: border-box; }
.mk-birdie { border: 2px solid #000; border-radius: 50%; }
.mk-eagle { border: 2px solid #000; border-radius: 50%; box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 4px #000; width: 28px; height: 28px; font-size: 15px; }
.mk-bogey { border: 2px solid #000; border-radius: 2px; }
.mk-double { border: 2px solid #000; border-radius: 2px; box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 4px #000; width: 28px; height: 28px; font-size: 15px; }
.sclegend { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 12px; font-size: 15px; }
.sclegend > span { display: inline-flex; align-items: center; gap: 6px; }
/* v15 History, backup / restore */
.histbtn { font-size: 26px; font-weight: 900; background: #fff; border-width: 1px; }
.histbtn small { font-size: 15px; font-weight: 700; }
.filebtn { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 66px; margin: 6px 0; border: 1px solid var(--line); border-radius: 16px; background: #fff; font-size: 22px; font-weight: 800; cursor: pointer; box-sizing: border-box; }
.notice { padding: 12px; border-radius: 16px; border: 1px solid var(--line); font-weight: 800; font-size: 17px; margin: 8px 0; }
.notice.good { background: #d6f5dc; border-color: #0a7a2a; color: #064d1a; }
.notice.bad { background: #ffe1e4; border-color: #e0102a; color: #9b0016; }
.notice.remind { background: #fff6cc; border-color: #b38f00; color: #5c4700; }
.hrow { display: flex; gap: 6px; align-items: stretch; margin: 6px 0; }
.hrow .hist { flex: 1 1 auto; margin: 0; min-width: 0; }
.hrow .hscore { text-align: right; }
.hrow .hdel { flex: 0 0 52px; padding: 0; font-size: 22px; border-color: var(--red); }
.tbspace { width: 60px; }
.sclegend .lgpar { color: #999; font-weight: 700; }
/* v17 putting green */
.pnrow { display: flex; gap: 6px; margin: 8px 0; }
.pnrow .pnbtn { flex: 1 1 0; min-height: 56px; border: 1px solid var(--line); border-radius: 16px; background: #fff; color: #000; font-size: 18px; font-weight: 900; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.1; }
.pnrow .pnbtn small { font-size: 13px; color: #1e6fd9; }
.pnrow .pnbtn.sel { background: #000; color: #fff; box-shadow: 0 0 0 3px #ffd23f; }
.pnrow .pnbtn.sel small { color: #ffd23f; }
.pnrow .pnbtn:disabled { background: #eee; color: #b0b0b0; border-color: #d0d0d0; opacity: 1; }
.pnrow .pnbtn:disabled small { color: #b0b0b0; }
#puttstats { grid-template-columns: repeat(3, 1fr); }

/* Backup card (Google Drive – the class names are from the old OneDrive card) */
.odcard { border: 1px solid #0a5bb5; border-radius: 18px; padding: 12px 14px 8px; margin: 12px 0; background: #f2f7ff; }
.odcard h3 { margin: 0 0 6px; }
.odacct, .odstat { margin: 4px 0 8px; font-size: 16px; overflow-wrap: anywhere; }
.odbtns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.odbtns .big { margin: 0; font-size: 16px; }
.oddisc { display: block; margin: 10px auto 4px; color: #a00; font-weight: 700; min-height: 44px; }
/* Player name */
.playerbox { display: flex; align-items: center; justify-content: space-between; gap: 8px; border: 1px solid #ccc; border-radius: 16px; padding: 6px 12px; margin: 8px 0; font-size: 17px; }
.playerbox.edit { display: block; padding: 10px 12px; }
.playerbox .txt { min-height: 44px; font-weight: 700; }
.pnrow2 { display: flex; gap: 8px; }
.pnrow2 input { flex: 1; min-width: 0; margin: 0; }
.pnrow2 button { min-height: 48px; padding: 0 14px; font-weight: 800; border-radius: 14px; }
.hplayer { font-size: 14px; font-weight: 700; color: #0a5bb5; }
.odgroup h3 { margin: 14px 0 6px; }
.pdfsheet { border: 1px solid #0b5d1e; border-radius: 18px; padding: 12px; margin: 10px 0; background: #f3fbf4; }
.pdfsheet .txt { display: block; margin: 6px auto 0; min-height: 44px; font-weight: 700; }
.storybtn small { display: block; font-weight: 400; font-size: 13px; opacity: 0.85; }
.storywrap { position: relative; width: 62%; max-width: 280px; margin: 10px auto; }
.storysheet .storyprev { display: block; width: 100%; border-radius: 14px; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3); cursor: zoom-in; }
.storyexp { position: absolute; top: 8px; right: 8px; width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 50%; border: 0;
  background: rgba(0, 0, 0, 0.55); color: #fff; font-size: 24px; line-height: 44px; box-shadow: none; }
.storyfull { position: fixed; inset: 0; z-index: 1000; background: #000; }
.storyfull .sfscroll { position: absolute; inset: 0; overflow: hidden; display: flex; align-items: center; justify-content: center; -webkit-overflow-scrolling: touch; }
.storyfull .sfscroll.zoomed { overflow: auto; display: block; }
.storyfull .sfimg { max-width: 100%; max-height: 100%; object-fit: contain; cursor: zoom-in; }
.storyfull .sfimg.zoomed { max-width: none; max-height: none; width: 200%; cursor: zoom-out; }
.storyfull .sfclose { position: absolute; top: calc(10px + env(safe-area-inset-top)); right: 12px; width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 50%; border: 0;
  background: rgba(255, 255, 255, 0.18); color: #fff; font-size: 22px; line-height: 44px; box-shadow: none; }
.storyfull .sfhint { position: absolute; left: 50%; bottom: calc(14px + env(safe-area-inset-bottom)); transform: translateX(-50%); margin: 0; padding: 6px 14px;
  border-radius: 999px; background: rgba(255, 255, 255, 0.16); color: #fff; font-size: 13px; pointer-events: none; }

/* v35 softer look (function unchanged): 1px low-contrast lines, soft shadows, more air. Key numbers keep bold colour. */
:root { --shadow: 0 1px 2px rgba(0,0,0,.06), 0 2px 8px rgba(0,0,0,.06); }
#app { padding-left: 14px; padding-right: 14px; }
.grid, .row { gap: 10px; }
button, .stat, .holecard, .blbox, .status, .odcard, .playerbox, .notice, .pdfsheet, .display, .filebtn { box-shadow: var(--shadow); }
button.sel, button.primary { box-shadow: 0 2px 6px rgba(0,0,0,.18); }
button { border-color: #b9c3bb; }
.topbar, .hc-head { border-bottom-color: #e3e8e4; }
th, td { border-bottom-color: #e6ebe7; }
.sinfo { border-bottom-color: #eef1ee; }
.holecard { padding: 12px 10px 14px; margin: 14px 0; }
.stat { padding: 10px 12px; }
.c-d input, .srow select, .srow .dirbtn { border-color: #9faba1; }
.mapview svg { border: none; box-shadow: var(--shadow); }
.infobtn { min-height: 44px; min-width: 44px; padding: 0; border: none; box-shadow: none; background: transparent; display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; }
.infobtn span { display: inline-flex; width: 26px; height: 26px; border-radius: 50%; border: 1px solid #9faba1; color: #345; font: italic 700 15px/24px Georgia, serif; justify-content: center; background: #f6f8f6; }
.infobtn[aria-expanded="true"] span { background: #345; color: #fff; }
.infowrap { display: flex; align-items: center; gap: 4px; color: #57615a; font-size: 14px; font-weight: 600; }
.infotext[hidden] { display: none; }
.infotext { background: #f6f8f6; border-radius: 12px; padding: 10px 12px; }
.rpall { display: flex; align-items: center; gap: 10px; min-height: 48px; font-weight: 800; }
.rpall input, .rpchk input { width: 26px; height: 26px; accent-color: var(--green); }
.rprow { display: flex; align-items: stretch; gap: 8px; margin: 8px 0; }
.rpchk { display: flex; align-items: center; justify-content: center; min-width: 48px; }
.rpopen { flex: 1; text-align: left; display: flex; flex-direction: column; gap: 2px; min-height: 64px; }
.rpopen span { font-size: 15px; font-weight: 600; }
.rpst { font-size: 13px; font-weight: 700; }
.rp-new { color: var(--green); } .rp-same { color: #666; } .rp-diff { color: #a15c00; }
.hc.ro { opacity: 1; }
button.discard { display: block; width: 100%; min-height: 48px; margin: 4px 0 10px; font-size: 16px; font-weight: 700; color: var(--red); border-color: #e7b9c0; background: #fff; }
.pmgroups { flex-wrap: wrap; gap: 6px; }
.pmgroups button { flex: 1 1 22%; min-height: 48px; font-size: 14px; padding-left: 4px; padding-right: 4px; } /* v117: 4 buttons – 6–10 ft, Under 6 ft, Over 10 ft, All putts */
.pmgroups button small { display: block; font-size: 11.5px; opacity: .75; }
.mapsum.pmshow { margin-top: -2px; font-size: 14.5px; color: #4d5f52; }
.pmgroups button small { font-weight: 600; }
.rpbtn { font-size: 18px; min-height: 52px; }
.rpnav { align-items: center; gap: 6px; }
.rpnav button { flex: 0 0 auto; min-width: 96px; }
.rpinfo { flex: 1; text-align: center; font-size: 15px; font-weight: 800; }
.sgsec { margin: 18px 0 10px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow); overflow: hidden; }
.sghead { width: 100%; min-height: 60px; display: flex; justify-content: space-between; align-items: center; border: 0; border-radius: 0; background: #f4f8f4; font-size: 19px; font-weight: 800; padding: 12px 16px; text-align: left; }
.sghead small { font-size: 13px; color: #666; font-weight: 600; }
.sghead .chev { font-size: 18px; color: #145214; }
#sgbody { padding: 4px 12px 12px; }
.clubrow { display: flex; align-items: center; gap: 14px; padding: 2px 0 6px 52px; }
.clubrow .clublbl { display: flex; align-items: center; gap: 6px; font-size: 14px; color: #555; }
.clubrow select { min-height: 44px; min-width: 92px; font-size: 17px; border: 1px solid #9faba1; border-radius: 10px; padding: 0 8px; background: #fff; }
.clubrow .layup { display: flex; align-items: center; gap: 6px; min-height: 44px; font-size: 16px; font-weight: 700; }
.clubrow .layup input { width: 26px; height: 26px; }
.clubrow .layup small { font-weight: 500; color: #666; }
.clubrow.putter { color: #777; padding-top: 0; }
.clubrow .holeout { margin-left: auto; padding: 0 12px 0 8px; border-radius: 22px; background: rgba(255,255,255,.55); border: 1px solid rgba(30,111,217,.18); }
.clubrow .holeout.on { background: #e3f6e8; border-color: #4caf6e; color: #1f6b3a; }
.clubrow .holeout input { accent-color: #2e9d57; }
.heattog { margin: 6px 0; }
svg.heat .fwdot, svg.heat .xdot, svg.heat .gdot, svg.heat .mdot, svg.heat .pdot, svg.heat .pdot2, svg.heat .pmend, svg.heat .xlbl, svg.heat .plbl, svg.heat .pmlbl, svg.heat .mlbl, svg.heat .farlbl, svg.heat .xstart, svg.heat .mcount { display: none; }
svg.heat path[fill="none"] { opacity: .12; }
.heatsum { margin: 8px 2px; font-size: 16px; }
.clubbtns { flex-wrap: wrap; gap: 6px; }
.clubbtns button { flex: 1 0 17%; min-height: 46px; font-size: 16px; padding: 4px; }
.clubbtns button small { color: #1565e0; }
#clubrank tr[data-act] { cursor: pointer; }
#clubrank tr.cur td { background: #fff6c2; }
.heatnote .ramp { display: inline-block; width: 70px; height: 12px; border-radius: 6px; vertical-align: middle; border: 1px solid #3a0000; background: linear-gradient(90deg, rgb(253,224,218), rgb(139,0,0)); }
.cmpbtn { margin: 6px 0 12px; }
.cmpn { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 8px 0; font-size: 17px; }
.cmpn button { min-width: 56px; min-height: 48px; font-size: 24px; font-weight: 900; }
.cmpcols { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cmplist { margin: 0; padding-left: 16px; font-size: 13px; }
.cmpkinds, .cmpgrps { flex-wrap: wrap; gap: 6px; }
.cmpgrps button { flex: 1 0 28%; }
.cmpmaps { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cmpmaps figure { margin: 0; border-radius: 12px; overflow: hidden; border: 2px solid #145214; }
.cmpmaps figure.cmpworst { border: 3px dashed #b00020; }
.cmpmaps figcaption { font-weight: 900; font-size: 14px; padding: 4px 8px; background: #f4f8f4; }
.cmpmaps svg { display: block; width: 100%; height: auto; }
.cmpov svg { display: block; width: 100%; height: auto; border-radius: 14px; }
.cmphide { position: absolute; left: -9999px; top: 0; width: 360px; visibility: hidden; }
.cmphide svg { width: 360px; }
.gaptable td.gap { font-size: 16px; }
#cmplegend .ramp, .heatnote .ramp { display: inline-block; width: 60px; height: 12px; border-radius: 6px; vertical-align: middle; border: 1px solid #3a0000; background: linear-gradient(90deg, rgb(253,224,218), rgb(139,0,0)); }
.heatnote .ramp.rainbow { border-color: #333; background: linear-gradient(90deg, rgba(0,0,255,.5), #00dcff, #00e63c, #fff000, #ff8c00, #e60000); }
.heatclus { display: flex; align-items: center; gap: 8px; margin: 8px 2px; font-size: 14px; }
.heatclus label { display: flex; gap: 6px; align-items: center; }
.heatclus input[type=range] { flex: 1; min-height: 44px; accent-color: #8b0000; }

/* ---------- Home: full-bleed watercolor, frosted glass controls ---------- */
body.onhome { overflow: hidden; }
.home { position: fixed; inset: 0; z-index: 1; color: #fff; overflow: hidden; }
.home-bg { position: absolute; inset: 0; background: #cfe0c4 url('img/home-bg.webp') 50% 50% / cover no-repeat; }
.home-fade { position: absolute; left: 0; right: 0; top: 0; height: calc(env(safe-area-inset-top) + 150px);
  background: linear-gradient(to bottom, rgba(10, 25, 35, .62), rgba(10, 25, 35, .3) 55%, rgba(10, 25, 35, 0)); pointer-events: none; }
.home-title { position: absolute; left: 0; right: 0; top: calc(env(safe-area-inset-top) + 22px); margin: 0; text-align: center;
  font-family: "Didot", "Bodoni 72", "Playfair Display", Georgia, serif; font-weight: 300; font-size: 40px; letter-spacing: .06em;
  color: #fff; text-shadow: 0 1px 12px rgba(0, 0, 0, .35); pointer-events: none; }
.glass { background: rgba(255, 255, 255, .28); -webkit-backdrop-filter: blur(16px) saturate(140%); backdrop-filter: blur(16px) saturate(140%);
  border: 1px solid rgba(255, 255, 255, .55); color: #fff; box-shadow: 0 6px 24px rgba(0, 0, 0, .18); }
.home .plusbtn { position: absolute; top: calc(env(safe-area-inset-top) + 24px); right: calc(env(safe-area-inset-right) + 18px); z-index: 3;
  width: 46px; height: 46px; border-radius: 50%; padding: 0; font-size: 30px; font-weight: 200; line-height: 1; display: flex; align-items: center; justify-content: center; }
.home-bottom { position: absolute; left: 0; right: 0; bottom: calc(env(safe-area-inset-bottom) + 26px); display: flex; flex-direction: column; align-items: center; gap: 12px; }
.home .pill { min-width: 170px; padding: 12px 28px; border-radius: 999px; font-size: 17px; font-weight: 500; letter-spacing: .04em;
  display: flex; flex-direction: column; align-items: center; text-shadow: 0 1px 6px rgba(0, 0, 0, .3); }
.home .pill small { font-size: 12px; font-weight: 400; opacity: .9; letter-spacing: 0; margin-top: 2px; }
.sheet-back { position: absolute; inset: 0; z-index: 4; background: rgba(0, 0, 0, .12); }
.home .hsheet { position: absolute; z-index: 5; top: calc(env(safe-area-inset-top) + 80px); right: calc(env(safe-area-inset-right) + 18px);
  width: min(300px, calc(100vw - 36px)); border-radius: 22px; padding: 8px; background: rgba(255, 255, 255, .72); color: #17301f;
  display: flex; flex-direction: column; gap: 4px; animation: sheetin .18s ease-out; }
@keyframes sheetin { from { opacity: 0; transform: translateY(-6px) scale(.98); } to { opacity: 1; transform: none; } }
.home .sheet-item { background: transparent; border: 0; color: #17301f; text-align: left; font-size: 17px; font-weight: 500; padding: 13px 14px; border-radius: 14px; }
.home .sheet-item + .sheet-item { border-top: 1px solid rgba(23, 48, 31, .1); border-radius: 0 0 14px 14px; }
.home .sheet-item.muted { text-align: center; font-size: 15px; color: #47604f; }
.home .sheet-h { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #47604f; padding: 8px 8px 2px; }
.home .hsheet input, .home .hsheet select { margin: 4px 0; border-radius: 12px; }
.home .hsheet .lbl { color: #47604f; padding: 0 4px; }
.home .sheet-go { margin-top: 6px; border: 0; border-radius: 999px; padding: 13px; font-size: 17px; font-weight: 600; background: #2f6b3f; color: #fff; }
.home .pill, .home .plusbtn { background: rgba(25, 45, 30, .26); border-color: rgba(255, 255, 255, .6); }

/* ---------- Frosted glass (shared): add .frostpage to a page wrapper, then .frost / .frostpage .frostbtn / .frostpage .frostchip / .frostpage .frostcard / .frostpage .frostdanger ---------- */
:root { --frost-bg: rgba(255, 255, 255, .55); --frost-bg-strong: rgba(255, 255, 255, .72); --frost-line: rgba(255, 255, 255, .7);
  --frost-ink: #17301f; --frost-ink-soft: #3f5a48; --frost-accent: #2f6b3f; --frost-shadow: 0 6px 22px rgba(20, 45, 30, .14); --frost-blur: blur(18px) saturate(140%); }
.frostpage { color: var(--frost-ink); min-height: 100%; }
.frostpage::before { content: ''; position: fixed; inset: -40px; z-index: -1; pointer-events: none;
  background: linear-gradient(rgba(214, 233, 228, .58), rgba(220, 236, 214, .62)), url('img/home-bg.webp') 50% 50% / cover no-repeat; filter: blur(22px) saturate(115%); }
html:has(.frostpage) { background: #d9e8df; } body:has(.frostpage) { background: transparent; } /* body bg would paint over the z-index:-1 backdrop */
.frost { background: var(--frost-bg); -webkit-backdrop-filter: var(--frost-blur); backdrop-filter: var(--frost-blur);
  border: 1px solid var(--frost-line); border-radius: 22px; box-shadow: var(--frost-shadow); }
.topbar.frost { top: calc(env(safe-area-inset-top) + 4px); margin: 4px 0 10px; padding: 8px 10px; }
.frostpage .muted, .frostpage small.muted { color: var(--frost-ink-soft); }
.frostpage .frostbtn, .frostpage .frostchip, .frostpage .frostcard, .frostpage .frostdanger { -webkit-backdrop-filter: var(--frost-blur); backdrop-filter: var(--frost-blur);
  border: 1px solid var(--frost-line); box-shadow: var(--frost-shadow); color: var(--frost-ink); transition: background .15s, transform .1s; }
.frostpage .frostbtn { background: var(--frost-bg-strong); border-radius: 999px; font-weight: 600; }
.frostpage .topbar .frostbtn { padding: 8px 14px; box-shadow: none; }
.frostpage .frostbtn.big { border-radius: 20px; }
.frostpage .frostbtn:active, .frostpage .frostchip:active, .frostpage .frostcard:active, .frostpage .frostdanger:active { transform: scale(.98); background: rgba(255, 255, 255, .85); }
.frostpage .frostchip { background: var(--frost-bg); border-radius: 999px; font-weight: 500; }
.frostpage .frostchip.sel { background: var(--frost-accent); color: #fff; border-color: rgba(255, 255, 255, .5); }
.frostpage .frostchip small { color: inherit; }
.frostpage .frostcard { background: var(--frost-bg); border-radius: 20px; padding: 12px 14px; }
.frostpage .frostcard b { color: var(--frost-ink); }
.frostpage .frostdanger { background: rgba(255, 236, 236, .5); border-color: rgba(200, 70, 70, .35); color: #a33a3a; border-radius: 20px; }
.frostpage .frostnote { background: var(--frost-bg); border-radius: 16px; padding: 12px 14px; }

/* ---------- In-round pages (hole entry, scorecard, pickers): frosted, sunlight-readable ---------- */
:root { --frost-sel: #2f6b3f; --frost-pink: rgba(255, 228, 230, .78); --frost-pink-line: rgba(196, 72, 82, .45); --frost-pink-ink: #9e2a35; }
.roundpage .topbar.frost { position: sticky; z-index: 5; }
.roundpage .holecard.frostcard { background: rgba(255, 255, 255, .62); border: 1px solid var(--frost-line); border-radius: 24px; padding: 12px 10px 14px; }
.roundpage .holecard.fin { border-color: var(--rp-fin); box-shadow: 0 0 0 2px var(--rp-fin), var(--frost-shadow); }
.roundpage .hc-head h2, .roundpage .topbar .title b, .roundpage .holecard { color: var(--frost-ink); }
/* every control: soft white glass, rounded, large */
.roundpage .holecard button, .roundpage .topbar button, .roundpage .sheet button, .roundpage > button, .roundpage > .row button, .roundpage .holecard select, .roundpage .c-d input { background-color: rgba(255, 255, 255, .8); border: 1px solid rgba(150, 175, 160, .55); color: var(--frost-ink);
  border-radius: 16px; box-shadow: 0 2px 8px rgba(20, 45, 30, .08); }
.roundpage .c-d input { background-color: rgba(255, 255, 255, .92); font-weight: 800; }
.roundpage .c-d input:focus { outline: 3px solid var(--rp-sel); outline-offset: 1px; }
.roundpage select { border-radius: 14px; }
/* selected = solid soft green, white text (clear in sunlight) */
html body .roundpage button.sel, html body .roundpage .par button.sel, html body .roundpage .srow .dirbtn.on, html body .roundpage .pinbtn.set, html body .roundpage .dirgrid button.sel {
  background: var(--rp-sel); border-color: var(--rp-sel); color: var(--rp-sel-ink); box-shadow: 0 3px 10px var(--rp-sel-shadow); }
.roundpage .pinbtn.set small { color: #fff; }
.roundpage .srow .dirbtn { color: #6b7d72; }
/* penalty on: clear red pill; delete keys: soft pink */
html body .roundpage .c-p .pen.on { background: #b83a45; border-color: #b83a45; color: #fff; }
html body .roundpage .srow .del, html body .roundpage .frostdanger, html body .roundpage button.danger { background: var(--frost-pink); border: 1px solid var(--frost-pink-line); color: var(--frost-pink-ink); }
/* main actions: same smooth button, primary/Add Shot in the green */
.roundpage .frostbtn { background: rgba(255, 255, 255, .78); border: 1px solid var(--frost-line); color: var(--frost-ink); box-shadow: var(--frost-shadow); }
.roundpage .frostbtn.big, .roundpage button.big { border-radius: 22px; }
html body .roundpage button.primary, html body .roundpage .addshot { background: var(--rp-main); border-color: var(--rp-main-line); color: var(--rp-main-ink); box-shadow: 0 6px 18px var(--rp-main-shadow); }
html body .roundpage .finish:not(:disabled) { background: var(--rp-main); border-color: var(--rp-main-line); color: var(--rp-main-ink); }
.roundpage button:disabled { opacity: .45; }
.roundpage .pinbtn { border-style: solid; }
.roundpage .count, .roundpage .hint, .roundpage .hole-done { color: var(--frost-ink); }
.roundpage .hole-done { background: var(--rp-done); border-radius: 16px; }
.roundpage .rowmenu { background: rgba(255, 255, 255, .75); -webkit-backdrop-filter: var(--frost-blur); backdrop-filter: var(--frost-blur); border-radius: 18px; padding: 6px; border: 1px solid var(--frost-line); }
.roundpage .sinfo, .roundpage .clubrow small { color: var(--frost-ink-soft); }
.roundpage > .help { background: rgba(255, 255, 255, .55); border-radius: 16px; padding: 10px 12px; color: var(--frost-ink-soft); }
.roundpage .holecard.fin .srow select:disabled, .roundpage .holecard.fin .srow input:disabled { background-color: rgba(240, 246, 242, .9); }
/* sheets and modals during a round */
.roundpage .sheet-bg { background: rgba(20, 40, 30, .25); }
.roundpage .sheet.frostsheet { background: rgba(236, 245, 240, .82); -webkit-backdrop-filter: var(--frost-blur); backdrop-filter: var(--frost-blur);
  border: 1px solid var(--frost-line); border-radius: 26px 26px 0 0; color: var(--frost-ink); }
.roundpage #pinview, .roundpage #replayview { background: rgba(225, 238, 232, .86); -webkit-backdrop-filter: blur(24px) saturate(130%); backdrop-filter: blur(24px) saturate(130%); color: var(--frost-ink); }
.roundpage #pinview .maphead, .roundpage #replayview .maphead { background: transparent; }
.roundpage .maphead .close { background: var(--frost-ink); color: #fff; border-color: var(--frost-ink); }
/* scorecard + stats */
.roundpage table { background: rgba(255, 255, 255, .7); border-radius: 14px; overflow: hidden; }
.roundpage .stat, .roundpage button.stat.tile { background: rgba(255, 255, 255, .7); border: 1px solid var(--frost-line); border-radius: 16px; color: var(--frost-ink); }
html body .roundpage .holecard.fin button.sel:disabled, html body .roundpage .holecard.fin .dirbtn.on:disabled, html body .roundpage .holecard.fin .pen.on:disabled { opacity: 1; }

/* Round themes: A = soft light-blue accents on the photo backdrop (default); B = "sky" – dusty blue → sand gradient, near-black selected pills */
.roundpage { --rp-sel: #3b6e9f; --rp-sel-ink: #fff; --rp-sel-shadow: rgba(40, 90, 140, .35);
  --rp-main: linear-gradient(180deg, #a9cdf0, #7fb2e5); --rp-main-line: #79a9da; --rp-main-ink: #0e2a44; --rp-main-shadow: rgba(60, 120, 180, .3);
  --rp-fin: rgba(59, 110, 159, .35); --rp-done: rgba(226, 238, 250, .88); }
.frostpage.theme-sky { --rp-sel: #1c1c1e; --rp-sel-ink: #fff; --rp-sel-shadow: rgba(0, 0, 0, .28); --rp-fin: rgba(28, 28, 30, .18); --rp-done: rgba(240, 245, 250, .8);
  --frost-ink: #1a2230; --frost-ink-soft: #445064; --frost-line: rgba(255, 255, 255, .6); --frost-shadow: 0 6px 22px rgba(30, 50, 80, .12); }
.frostpage.theme-sky::before { background: linear-gradient(180deg, #7491b0 0%, #8ba5bf 22%, #9db5c4 48%, #d7d5bd 74%, #e6dcb8 88%, #c9b98e 100%); filter: blur(0); inset: 0; }
.roundpage.theme-sky .holecard.frostcard, .roundpage.theme-sky table, .roundpage.theme-sky .stat { background: rgba(244, 248, 252, .58); }
.roundpage.theme-sky .topbar.frost { background: rgba(236, 243, 250, .45); border-radius: 999px; }
.roundpage.theme-sky .holecard button, .roundpage.theme-sky .topbar button, .roundpage.theme-sky .sheet button, .roundpage.theme-sky > button, .roundpage.theme-sky > .row button,
.roundpage.theme-sky .holecard select, .roundpage.theme-sky .frostbtn { background-color: rgba(240, 246, 252, .72); border-color: rgba(255, 255, 255, .7); }
.roundpage.theme-sky .topbar .frostbtn { border-radius: 50%; width: 48px; height: 48px; padding: 0; }
.roundpage.theme-sky .topbar .frostbtn.txt { border-radius: 999px; width: auto; padding: 0 14px; }
.roundpage.theme-sky .sheet.frostsheet { background: rgba(230, 238, 246, .8); }
.roundpage.theme-sky, .roundpage.theme-sky .hc-head h2 { font-family: -apple-system, "SF Pro Text", "Helvetica Neue", "Inter", system-ui, sans-serif; letter-spacing: .005em; }
.roundpage.theme-sky .hc-head h2, .roundpage.theme-sky .topbar .title b { font-weight: 600; }
.roundpage.theme-sky > .help { background: rgba(244, 248, 252, .5); }

/* Sky theme on non-round pages (History, Archive): .frostpage.theme-sky + the shared frost classes */
.frostpage.theme-sky { font-family: -apple-system, "SF Pro Text", "Helvetica Neue", "Inter", system-ui, sans-serif; color: var(--frost-ink); }
.frostpage.theme-sky .topbar.frost { background: rgba(236, 243, 250, .45); border-radius: 999px; }
.frostpage.theme-sky .topbar .title b { font-weight: 600; }
.frostpage.theme-sky .frostbtn, .frostpage.theme-sky .frostchip, .frostpage.theme-sky .frostcard, .frostpage.theme-sky .frostnote { background-color: rgba(240, 246, 252, .62); border-color: rgba(255, 255, 255, .7); color: var(--frost-ink); }
.frostpage.theme-sky .frostchip.sel { background: #1c1c1e; border-color: #1c1c1e; color: #fff; }
.frostpage .frostmain { background: linear-gradient(180deg, #a9cdf0, #7fb2e5); border: 1px solid #79a9da; color: #0e2a44; border-radius: 22px; font-weight: 700;
  box-shadow: 0 6px 18px rgba(60, 120, 180, .3); }
.frostpage .frostmain small { color: #1f3d5c; }
html body .frostpage .frostdanger, html body .frostpage.theme-sky .frostdanger { background: rgba(255, 228, 230, .78); border: 1px solid rgba(196, 72, 82, .45); color: #9e2a35; }
.archivepage .playerbox, .archivepage .odcard, .archivepage .notice, .archivepage > .help { background: rgba(244, 248, 252, .62); border: 1px solid rgba(255, 255, 255, .7); border-radius: 20px;
  -webkit-backdrop-filter: var(--frost-blur); backdrop-filter: var(--frost-blur); box-shadow: var(--frost-shadow); color: var(--frost-ink); }
.archivepage > .help { padding: 10px 12px; }
.archivepage .notice.good { background: rgba(225, 245, 230, .85); color: #1d4d2b; }
.archivepage .notice.bad { background: rgba(255, 228, 230, .85); color: #8e1f2b; }
.archivepage .notice.remind { background: rgba(255, 246, 214, .85); color: #5c4700; }
.archivepage .playerbox button, .archivepage .odcard button { border-radius: 999px; }
.archivepage button.primary, .archivepage .odcard button.primary { background: linear-gradient(180deg, #a9cdf0, #7fb2e5); border-color: #79a9da; color: #0e2a44; }
.archivepage h2 { font-weight: 600; color: var(--frost-ink); }
.frostpage .frostbtn.big, .frostpage label.frostbtn { border-radius: 22px; }

/* Tap-to-reveal tips (Archive): small (i) / 💡 button + soft glass panel */
.tiphead { display: flex; align-items: center; gap: 2px; }
.tiprow { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; margin: 6px 0; }
.tiprow .tiplbl { font-size: 15px; font-weight: 600; color: var(--frost-ink-soft, #445064); }
.tipbtn span { font-style: normal; }
.tiprow .tippop, .tiphead + .tippop { flex-basis: 100%; }
.frostpage .tipbtn span { background: rgba(240, 246, 252, .8); border-color: rgba(120, 140, 165, .5); color: #1a2230; }
.frostpage .tipbtn[aria-expanded="true"] span { background: #1c1c1e; color: #fff; border-color: #1c1c1e; }
.frostpage .tippop { background: rgba(244, 248, 252, .82); -webkit-backdrop-filter: var(--frost-blur); backdrop-filter: var(--frost-blur); border: 1px solid rgba(255, 255, 255, .75);
  border-radius: 16px; padding: 10px 12px; margin: 4px 0 6px; font-size: 15px; font-weight: 500; line-height: 1.4; color: var(--frost-ink); box-shadow: var(--frost-shadow); animation: sheetin .16s ease-out; }
.archivepage .odcard { padding-bottom: 10px; }
button.tiplbl { background: none; border: 0; box-shadow: none; padding: 0 6px; min-height: 44px; font: inherit; font-size: 15px; font-weight: 600; color: var(--frost-ink-soft, #445064); text-align: left; }
.tiphead button.tiplbl { font-size: inherit; font-weight: inherit; color: inherit; padding: 0; }
button.tiplbl:active { transform: none; opacity: .7; }

/* Voice entry (v79): hold-to-talk mic + listening bubble + confirm card, in the sky look */
.countrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 64px; margin-top: 6px; }
.countrow .count { margin: 0; padding: 0 4px; }
/* v81: the 'Hold to talk' pill sits inline beside the stroke count, above Add Shot (never floats over Finish) */
.micbtn { position: relative; flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; min-height: 60px; padding: 0 20px 0 16px; margin: 0; border-radius: 999px;
  background: linear-gradient(180deg, #a9cdf0, #7fb2e5); border: 1px solid rgba(255, 255, 255, .8); color: #0e2a44; font-size: 17px; font-weight: 700; width: auto;
  box-shadow: 0 6px 18px rgba(30, 60, 100, .24), inset 0 1px 0 rgba(255, 255, 255, .6);
  -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; touch-action: none; -webkit-tap-highlight-color: transparent; }
html body .roundpage .holecard .micbtn { background: linear-gradient(180deg, #a9cdf0, #7fb2e5); border: 1px solid rgba(255, 255, 255, .8); color: #0e2a44; border-radius: 999px; width: auto; min-height: 60px; padding: 0 20px 0 16px; margin: 0; }
.micbtn .micico { flex: 0 0 auto; }
.micbtn.off { opacity: .92; }
html body .roundpage .holecard .micbtn.on { background: #1c1c1e; color: #fff; border-color: #1c1c1e; animation: micpulse 1.2s ease-out infinite; }
@keyframes micpulse { 0% { box-shadow: 0 0 0 0 rgba(127, 178, 229, .75), 0 8px 24px rgba(0, 0, 0, .3); } 100% { box-shadow: 0 0 0 22px rgba(127, 178, 229, 0), 0 8px 24px rgba(0, 0, 0, .3); } }
.micbubble { position: fixed; left: 14px; right: 14px; top: calc(14px + env(safe-area-inset-top)); z-index: 31; padding: 14px 16px; border-radius: 22px;
  background: rgba(236, 243, 250, .86); -webkit-backdrop-filter: blur(20px) saturate(140%); backdrop-filter: blur(20px) saturate(140%);
  border: 1px solid rgba(255, 255, 255, .8); box-shadow: 0 10px 30px rgba(30, 50, 80, .22); color: #1a2230; animation: sheetin .16s ease-out; }
.micbubble[hidden] { display: none; }
.micbubble b { display: block; font-size: 14px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #445064; }
.micbubble .mictext { display: block; margin-top: 4px; font-size: 22px; font-weight: 600; line-height: 1.25; }
.voicecard h3 { display: flex; align-items: center; gap: 8px; }
.voicecard .vraw { font-size: 20px; font-weight: 600; margin: 4px 0 10px; color: #1a2230; }
.voicecard .vfields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 6px 0 8px; }
.voicecard .vf { background: rgba(255, 255, 255, .7); border: 1px solid rgba(255, 255, 255, .8); border-radius: 16px; padding: 8px 12px; }
.voicecard .vf span { display: block; font-size: 13px; font-weight: 600; color: #445064; text-transform: uppercase; letter-spacing: .03em; }
.voicecard .vf b { font-size: 20px; font-weight: 700; color: #1a2230; }
.voicecard .vnote, .voicecard .vwhy { font-size: 15px; color: #445064; margin: 4px 0 8px; }
.voicecard .vwarn { font-size: 15px; font-weight: 600; color: #9e2a35; margin: 4px 0 8px; }
.voicecard .vbtns { display: flex; gap: 8px; margin-top: 8px; }
.voicecard .vbtns button { flex: 1 1 0; } .voicecard .vbtns button:first-child { flex-grow: 1.4; }
.voicecard .vbtns button { min-height: 56px; margin: 0; font-size: 18px; font-weight: 700; }
html body .roundpage .voicecard .vbtns .frostmain { background: linear-gradient(180deg, #a9cdf0, #7fb2e5); border: 1px solid #79a9da; color: #0e2a44; }
.voicecard input[type=text] { font-size: 20px; border-radius: 16px; border: 1px solid rgba(150, 170, 190, .6); background: rgba(255, 255, 255, .9); box-sizing: border-box; }
.voicecard .vedit { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.voicecard .vedit label { display: flex; flex-direction: column; gap: 2px; font-size: 13px; font-weight: 600; color: #445064; text-transform: uppercase; }
.voicecard .vedit select, .voicecard .vedit input[type=text] { min-height: 48px; font-size: 18px; font-weight: 700; padding: 6px 10px; border-radius: 14px; border: 1px solid rgba(150, 170, 190, .6); background: rgba(255, 255, 255, .9); color: #1a2230; }
.voicecard .vedit .vchk { flex-direction: row; align-items: center; gap: 8px; min-height: 48px; font-size: 16px; text-transform: none; color: #1a2230; }
.voicecard .vedit .vchk input { width: 24px; height: 24px; accent-color: #1c1c1e; }
.srow.vflash { animation: vflash 1.6s ease-out; border-radius: 14px; }
@keyframes vflash { 0% { background: rgba(127, 178, 229, .7); } 100% { background: transparent; } }

/* Saved courses + scorecard scan (v80) – sky look */
.home .ncrs { display: flex; flex-wrap: wrap; gap: 6px; padding: 2px 2px 4px; }
.home .ncchip, .home .ntee { border: 1px solid rgba(23, 48, 31, .15); background: rgba(255, 255, 255, .7); color: #17301f; border-radius: 999px; padding: 9px 14px; font-size: 15px; font-weight: 600; min-height: 40px; }
.home .ncchip.sel, .home .ntee.sel { background: #1c1c1e; border-color: #1c1c1e; color: #fff; }
.home .ntees { display: flex; flex-wrap: wrap; gap: 6px; padding: 2px; }
.home .ntee { display: flex; flex-direction: column; align-items: center; line-height: 1.1; padding: 7px 12px; }
.home .ntee small { font-size: 11px; font-weight: 500; opacity: .75; }
.home .ntype { margin-top: 6px; border-top: 0 !important; border-radius: 14px !important; background: rgba(169, 205, 240, .55); color: #0e2a44; font-weight: 600; text-align: center; }
.cardnote { font-size: 15px; color: var(--frost-ink-soft, #445064); margin: 8px 4px; }
.cardpage .cardrev { margin-top: 12px; padding: 12px 10px; }
.cardpage .crsname { font-size: 20px; font-weight: 700; border-radius: 14px; border: 1px solid rgba(150, 170, 190, .55); background: rgba(255, 255, 255, .9); box-sizing: border-box; }
.cardpage .revtees { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 6px; }
.cardpage .revtees .frostchip { min-height: 40px; padding: 6px 14px; font-size: 15px; font-weight: 600; border: 1px solid rgba(255, 255, 255, .7); }
.cardpage .teename { display: flex; gap: 6px; margin-bottom: 8px; }
.cardpage .teename input { flex: 1; font-size: 16px; padding: 8px 12px; border-radius: 12px; border: 1px solid rgba(150, 170, 190, .55); background: rgba(255, 255, 255, .85); }
.cardpage .teename button { flex: 0 0 48px; min-height: 44px; padding: 0; border-radius: 12px; }
.cardpage .revgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cardpage .rg-h, .cardpage .rg-r, .cardpage .rg-t { display: grid; grid-template-columns: 24px 1fr 1.5fr; gap: 4px; align-items: center; }
.cardpage .rg-h span { font-size: 12px; font-weight: 600; text-transform: uppercase; color: var(--frost-ink-soft); text-align: center; }
.cardpage .rg-r { margin: 3px 0; } .cardpage .rg-r > span { font-size: 15px; font-weight: 700; text-align: center; color: var(--frost-ink-soft); }
.cardpage .rg-r input { width: 100%; min-width: 0; box-sizing: border-box; height: 40px; padding: 0 4px; text-align: center; font-size: 18px; font-weight: 700; border-radius: 10px; border: 1px solid rgba(150, 170, 190, .5); background: rgba(255, 255, 255, .88); color: #1a2230; }
.cardpage .rg-r input:placeholder-shown { background: rgba(255, 240, 200, .95); border-color: rgba(200, 150, 40, .6); }
.cardpage .rg-t { border-top: 1px solid rgba(26, 34, 48, .15); margin-top: 4px; padding-top: 4px; font-size: 14px; }
.cardpage .rg-t span { font-weight: 600; color: var(--frost-ink-soft); font-size: 12px; text-transform: uppercase; } .cardpage .rg-t b { text-align: center; }
.cardpage .revtot { text-align: center; font-weight: 700; margin: 10px 0 0; } .cardpage .revmiss { text-align: center; color: #8a5a00; font-weight: 600; margin: 4px 0 0; font-size: 14px; }
.archivepage .crsbtn { display: flex; flex-direction: column; align-items: center; }
.archivepage .crsbtn small { font-size: 13px; font-weight: 500; color: var(--frost-ink-soft); }
.coursespage .crsrow { display: flex; align-items: center; gap: 8px; margin: 10px 0; padding: 6px 6px 6px 4px; }
.coursespage .crsopen { flex: 1; text-align: left; background: none; border: 0; box-shadow: none; padding: 8px 10px; min-height: 56px; display: flex; flex-direction: column; color: var(--frost-ink); }
.coursespage .crsopen b { font-size: 19px; font-weight: 700; } .coursespage .crsopen small { font-size: 14px; color: var(--frost-ink-soft); margin-top: 2px; }
.coursespage .crsdel { flex: 0 0 48px; min-height: 48px; padding: 0; border-radius: 14px; }

/* v83: keyboard-dictation box – compact, frosted, pinned to the top so the keyboard never covers it */
html body .roundpage .sheet.voicedict { top: calc(10px + env(safe-area-inset-top)); bottom: auto; left: 10px; right: 10px; border-radius: 24px; padding: 12px 12px 10px;
  border: 1px solid rgba(255, 255, 255, .8); box-shadow: 0 12px 34px rgba(30, 50, 80, .25); }
.voicedict .vdrow { display: flex; gap: 8px; align-items: stretch; margin-top: 10px; }
.voicedict #vtext { display: block; width: 100%; box-sizing: border-box; height: 56px; font-size: 20px; font-weight: 600; padding: 0 14px; border-radius: 16px;
  border: 1px solid rgba(150, 175, 200, .6); background: rgba(255, 255, 255, .92); color: #1a2230; }
/* v84: ✓ is the one way to submit – big, wide, primary; ✕ small beside it */
html body .roundpage .voicedict .vdrow button { margin: 0; padding: 0; min-height: 64px; height: 64px; border-radius: 18px; font-weight: 800; }
html body .roundpage .voicedict .vdrow button.vgo { flex: 1 1 auto; font-size: 32px; background: linear-gradient(180deg, #8fc0ee, #5d9ddf); color: #0b2440; border: 1px solid rgba(255, 255, 255, .85);
  box-shadow: 0 8px 20px rgba(40, 90, 150, .32), inset 0 1px 0 rgba(255, 255, 255, .6); }
html body .roundpage .voicedict .vdrow button.vx { flex: 0 0 64px; width: 64px; font-size: 20px; }
.voicedict .vhint { margin: 8px 4px 0; font-size: 15px; font-weight: 600; color: #445064; }

/* v84: softer in-round screens (sky look). Lighter weights, softer ink, thin translucent borders, rounder corners, quieter shadows.
   Tap targets stay 44px+, text stays dark on light for sun. */
.roundpage.theme-sky { --soft-ink: #2b3440; --soft-ink2: #4a5563; --soft-line: rgba(255, 255, 255, .78); --soft-slate: #3a4654;
  --soft-shadow: 0 1px 4px rgba(30, 50, 80, .07); }
html body .roundpage.theme-sky .holecard, html body .roundpage.theme-sky .hc-head h2 { color: var(--soft-ink); }
html body .roundpage.theme-sky .srow.shead { font-weight: 500; font-size: 13px; letter-spacing: .06em; color: var(--soft-ink2); }
html body .roundpage.theme-sky .holecard button, html body .roundpage.theme-sky .holecard select, html body .roundpage.theme-sky .c-d input,
html body .roundpage.theme-sky .topbar button, html body .roundpage.theme-sky > button, html body .roundpage.theme-sky > .row button {
  border: 1px solid var(--soft-line); border-radius: 18px; box-shadow: var(--soft-shadow); }
/* distance numbers: medium weight, a touch smaller, soft near-black */
html body .roundpage.theme-sky .c-d input { font-weight: 500; font-size: 20px; color: var(--soft-ink); -webkit-text-fill-color: var(--soft-ink); background-color: rgba(255, 255, 255, .9); }
html body .roundpage.theme-sky .c-d .u { font-weight: 400; color: var(--soft-ink2); }
html body .roundpage.theme-sky .srow .c-n { font-weight: 500; color: var(--soft-ink2); }
html body .roundpage.theme-sky .holecard select { font-weight: 500; color: var(--soft-ink); }
html body .roundpage.theme-sky .clubrow select { font-weight: 400; }
html body .roundpage.theme-sky .clublbl span, html body .roundpage.theme-sky .layup, html body .roundpage.theme-sky .clubrow.putter { font-weight: 400; color: var(--soft-ink2); }
html body .roundpage.theme-sky .sinfo { font-weight: 400; color: var(--soft-ink2); }
html body .roundpage.theme-sky .sinfo b { font-weight: 600; }
/* selected / direction pills: dark slate instead of near-black, thinner arrows */
html body .roundpage.theme-sky button.sel, html body .roundpage.theme-sky .par button.sel, html body .roundpage.theme-sky .srow .dirbtn.on,
html body .roundpage.theme-sky .pinbtn.set, html body .roundpage.theme-sky .dirgrid button.sel {
  background: var(--soft-slate); border-color: var(--soft-slate); color: #fff; box-shadow: 0 2px 6px rgba(40, 55, 75, .18); }
html body .roundpage.theme-sky .srow .dirbtn { font-weight: 300; font-size: 22px; color: #8593a3; }
html body .roundpage.theme-sky .srow .dirbtn.on { font-weight: 300; }
html body .roundpage.theme-sky .par button { font-weight: 500; }
html body .roundpage.theme-sky .c-p .pen { font-weight: 600; }
html body .roundpage.theme-sky .c-p .pen.on { background: #b8505a; border-color: #b8505a; }
/* delete: smaller, lighter icon, still a 44px target */
html body .roundpage.theme-sky .srow .del { min-width: 44px; min-height: 44px; font-size: 17px; font-weight: 400; color: #b0606a;
  background: rgba(255, 238, 240, .55); border: 1px solid rgba(220, 150, 158, .35); box-shadow: none; }
/* main actions: 600 weight, softer depth */
html body .roundpage.theme-sky .addshot, html body .roundpage.theme-sky .finish, html body .roundpage.theme-sky > button.big, html body .roundpage.theme-sky .holecard button.big { font-weight: 600; border-radius: 22px; }
html body .roundpage.theme-sky .addshot { box-shadow: 0 4px 12px rgba(60, 110, 170, .2); }
html body .roundpage.theme-sky .count { font-weight: 500; color: var(--soft-ink); }
html body .roundpage.theme-sky .hint { font-weight: 500; color: var(--soft-ink2); }
html body .roundpage.theme-sky .holecard .micbtn { border-radius: 999px; font-weight: 600; box-shadow: 0 4px 12px rgba(30, 60, 100, .16), inset 0 1px 0 rgba(255, 255, 255, .6); }
html body .roundpage.theme-sky .topbar .title span { font-weight: 500; color: var(--soft-ink2); }
/* v85 Birdie zone – v134: no bird; Stats-style round picker, Quick-view tiles, thin crisp map */
.bzpage .bzseg, .cmppage .bzseg { display: flex; padding: 3px; gap: 2px; margin: 10px 0; border-radius: 999px; background: rgba(255, 255, 255, .55); border: 1px solid rgba(23, 48, 31, .1); }
.bzpage .bzseg button, .cmppage .bzseg button { flex: 1; min-height: 36px; padding: 0 6px; border: 0; border-radius: 999px; background: transparent; box-shadow: none; font-size: 13.5px !important; font-weight: 400 !important; color: #4a5866; }
.bzpage .bzseg button.sel, .cmppage .bzseg button.sel { background: rgba(255, 255, 255, .95); color: #1f2d38; box-shadow: 0 1px 4px rgba(20, 40, 60, .12); }
.bzpage .bzcard { margin: 0 0 12px; padding: 10px 10px 10px; }
.bzpage .bzqv { gap: 6px; margin: 0 0 8px; }
.bzpage .bzqv .qv { padding: 8px 4px 7px; border-radius: 14px; }
.bzpage .bzqv .qvl { font-size: 11px; font-weight: 400; color: #45525e; letter-spacing: 0; white-space: nowrap; }
.bzpage .bzqv b { font-size: 24px !important; font-weight: 400 !important; color: #1f2d38; font-variant-numeric: tabular-nums; }
.bzpage .bzqv .qvu { font-style: normal; font-size: 15px; font-weight: 300; }
.bzpage .bzqv small { font-size: 11px; font-weight: 300; color: #6d7a86; }
.bzpage .bzqv .qv[data-q="ifin"] { border-color: rgba(31, 115, 201, .35); }
.bzpage .bzqv .qv[data-q="ifin"] b { color: #1f73c9; }
.bzpage .bzqv .qvsg.bzplus { font-size: 12px; font-weight: 600; margin-top: 1px; color: #1f73c9; }
.bzpage .bzsr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
.bzpage .bzwrap { display: flex; align-items: stretch; gap: 4px; }
.bzpage .bzslcol { flex: 0 0 34px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 2px 0; }
.bzpage .bzsltop, .bzpage .bzslbot { font-size: 12px; font-weight: 600; color: #6d7a86; font-variant-numeric: tabular-nums; }
.bzpage .bzslbot { color: #1f73c9; }
.bzpage .bzslider { writing-mode: vertical-lr; direction: rtl; flex: 1; width: 34px; margin: 6px 0; accent-color: #1f73c9; touch-action: none; }
.bzpage .bzslider:focus { outline: none; }
.bzpage #bzmap { flex: 1; min-width: 0; width: 100%; height: auto; display: block; border-radius: 50%; }
.bzpage .bzlegend { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 12px; margin: 8px 0 2px; font-size: 12.5px; color: #4a5866; }
.bzpage .bzlegend > span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.bzpage .bzlegend .tipbtn { margin-left: auto; }
.bzpage .bzk { display: inline-block; width: 10px; height: 10px; border-radius: 50%; box-sizing: border-box; }
.bzpage .bzk.ring { border: 2px solid #e0313f; }
.bzpage .bzk.r { background: #e0313f; }
.bzpage .bzk.bl { background: #1f73c9; }
.bzpage .bzk.w { background: #fff; border: 1px solid #1c1c1e; }
.bzpage .bznote { margin: 6px 0 2px; font-size: 12.5px; color: #8a3b1f; }
.bzpage .bzmeta { margin: 4px 0 0; font-size: 12.5px; color: #6d7a86; }
.bzpage .bzh { margin: 2px 0 6px; font-size: 15px; font-weight: 600; color: #1f2d38; display: flex; align-items: center; gap: 6px; }
.bzpage .bztab { width: 100%; border-collapse: collapse; font-size: 13.5px; color: #1f2d38; font-variant-numeric: tabular-nums; }
.bzpage .bztab td { padding: 4px 4px; border: 0; border-top: 1px solid rgba(23, 48, 31, .07); }
.bzpage .bztab tr:first-child td { border-top: 0; }
.bzpage .bztab td:first-child { width: 58px; font-weight: 500; white-space: nowrap; }
.bzpage .bztab .bzbar span { display: block; height: 8px; border-radius: 4px; background: #1f73c9; min-width: 2px; }
.bzpage .bztab .num { text-align: right; width: 42px; }
.bzpage .bztab .num.muted { width: 48px; color: #6d7a86; }
/* ---------- Scorecard: front 9 + back 9 photos (v86) – soft, thin lines ---------- */
.cardpage .txtlink { background: none !important; border: 0 !important; box-shadow: none !important; color: #2c5d8c; font-size: 15px; font-weight: 500; min-height: 36px; padding: 4px; }

/* ---------- Live sharing (v87): "Share live" pill on the hole screen + link sheet ---------- */
.livebar { display: flex; flex-direction: column; align-items: center; margin: -2px 0 8px; }
html body .roundpage .livebtn { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 6px 16px; border-radius: 999px; font-size: 16px; font-weight: 500;
  box-shadow: 0 2px 10px rgba(30, 50, 80, .08); }
.livebtn .liveico { opacity: .8; }
html body .roundpage .livebtn.on { background: rgba(255, 255, 255, .82); }
.livebtn small { font-size: 13px; font-weight: 500; color: var(--frost-ink-soft); text-decoration: underline; text-underline-offset: 2px; }
.livedot { width: 9px; height: 9px; border-radius: 50%; background: #e0565e; box-shadow: 0 0 0 0 rgba(224, 86, 94, .5); animation: livepulse 2s infinite; }
.livedot.wait { background: #c9a245; animation: none; }
@keyframes livepulse { 0% { box-shadow: 0 0 0 0 rgba(224, 86, 94, .45); } 70% { box-shadow: 0 0 0 8px rgba(224, 86, 94, 0); } 100% { box-shadow: 0 0 0 0 rgba(224, 86, 94, 0); } }
.livenote { margin: 6px 0 0; font-size: 14px; font-weight: 500; color: #8a6a1f; background: rgba(255, 246, 222, .75); border: 1px solid rgba(201, 162, 69, .35); border-radius: 999px; padding: 4px 12px; }
.livenote.ok { color: #2f5f43; background: rgba(230, 245, 236, .7); border-color: rgba(80, 150, 110, .25); }
.livesheet h3 { font-weight: 600; }
.livesheet .livehelp { font-weight: 400; font-size: 16px; color: var(--frost-ink-soft); margin: 4px 0 10px; }
.livesheet .livelink { width: 100%; font: 400 15px/1.3 -apple-system, system-ui, sans-serif; padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(150, 170, 190, .45);
  background: rgba(255, 255, 255, .85); color: var(--frost-ink); }
.livesheet .livenote { display: inline-block; margin: 8px 0 4px; }
html body .roundpage .livesheet button.big { min-height: 54px; font-size: 18px; font-weight: 600; }

/* ---------- Live viewer (?watch=…): read-only scorecard for family ---------- */
body.lvbody { background: transparent; }
.lvpage { font-weight: 400; padding-bottom: 20px; }
.lvpage .frostcard { margin: 10px 0; border-radius: 22px; padding: 14px 16px; }
.lvbanner { margin: 6px 0 8px; padding: 10px 14px; border-radius: 16px; font-size: 15px; font-weight: 500; text-align: center;
  background: rgba(255, 244, 228, .8); border: 1px solid rgba(201, 150, 69, .35); color: #7a5418; }
.lvbanner.fin { background: rgba(236, 244, 252, .8); border-color: rgba(120, 150, 190, .35); color: #2c4766; }
.lvkick { margin: 0; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--frost-ink-soft); display: flex; align-items: center; gap: 7px; font-weight: 500; }
.lvkick .lvdot { width: 8px; height: 8px; border-radius: 50%; background: #9aa6b4; }
.lvkick .lvdot.on { background: #e0565e; animation: livepulse 2s infinite; }
.lvhead h1 { margin: 6px 0 2px; font-size: 30px; font-weight: 600; }
.lvsub { margin: 0; color: var(--frost-ink-soft); font-size: 15px; }
.lvbig { display: flex; align-items: center; gap: 16px; margin: 12px 0 4px; }
.lvbig b { font-size: 64px; line-height: 1; font-weight: 300; letter-spacing: -.02em; min-width: 84px; }
.lvbig b.under { color: #b23a48; } .lvbig b.even { color: #1a2230; } .lvbig b.over { color: #2c4766; }
.lvbig > span { display: flex; flex-direction: column; font-size: 20px; font-weight: 500; }
.lvbig small { font-size: 14px; font-weight: 400; color: var(--frost-ink-soft); }
.lvupd { margin: 6px 0 0; font-size: 13px; color: var(--frost-ink-soft); }
.lvmsg { color: var(--frost-ink-soft); }
.lvnine { display: grid; grid-template-columns: 42px repeat(9, minmax(0, 1fr)) 34px; margin: 4px 0 10px; min-width: 0; } /* v139: columns shrink to fit any phone (Safari made them overflow) */
.lvtotal { display: flex; align-items: baseline; gap: 10px; margin: 0 0 10px; padding: 8px 2px 0; border-top: 1px solid rgba(255, 255, 255, .6); font-size: 13px; color: var(--frost-ink-soft); }
.lvtotal b { font-size: 20px; font-weight: 500; color: var(--frost-ink); }
.lvtotal em { font-style: normal; font-size: 14px; }
.lvrow { display: grid; grid-template-rows: 26px 26px 38px; align-items: center; font-size: 12px; color: var(--frost-ink-soft); }
.lvrow span { display: flex; align-items: center; }
.lvtot span { justify-content: center; font-weight: 500; color: var(--frost-ink); font-size: 14px; }
.lvtot span:first-child { font-size: 12px; color: var(--frost-ink-soft); font-weight: 400; }
.lvpage button.lvcol { display: grid; grid-template-rows: 26px 26px 38px; align-items: center; justify-items: center; min-height: 0; min-width: 0; width: 100%; padding: 0; margin: 0; -webkit-appearance: none; appearance: none; font-size: inherit;
  border: 0; border-radius: 12px; background: transparent; font-weight: 400; box-shadow: none; }
.lvpage button.lvcol:active { transform: none; background: rgba(255, 255, 255, .5); }
.lvcol.now { background: rgba(255, 255, 255, .45); }
.lvcol.open { background: rgba(255, 255, 255, .75); box-shadow: inset 0 0 0 1px rgba(28, 28, 30, .25); }
.lvh { font-size: 13px; color: var(--frost-ink-soft); } .lvp { font-size: 14px; color: var(--frost-ink-soft); }
.lvs i, .lvkey i { font-style: normal; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; box-sizing: border-box; font-size: 16px; font-weight: 500; color: var(--frost-ink); }
i.birdie { border-radius: 50%; border: 1.5px solid #c9505c; color: #b23a48; background: rgba(255, 232, 234, .7); }
i.eagle { border-radius: 50%; border: 1.5px solid #c9505c; color: #fff; background: #d0606b; box-shadow: 0 0 0 2px rgba(255, 255, 255, .9), 0 0 0 3.5px #c9505c; }
i.par { color: var(--frost-ink); }
i.bogey { border-radius: 6px; border: 1.5px solid #7f9bbd; background: rgba(232, 240, 250, .7); color: #2c4766; }
i.dbl { border-radius: 6px; border: 1.5px solid #4f6d93; background: #6b88ad; color: #fff; }
i.prog { color: #e0565e; font-size: 22px; }
.lvkey { margin: 2px 0 0; font-size: 12px; color: var(--frost-ink-soft); display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.lvtap { margin: 4px 0 0; font-size: 12px; color: var(--frost-ink-soft); }
.lvkey i { width: 20px; height: 20px; font-size: 11px; }
.lvs i { width: min(28px, calc((100vw - 120px) / 9.6)); height: min(28px, calc((100vw - 120px) / 9.6)); font-size: min(16px, 4.2vw); } /* v139: square boxes that shrink on narrow phones */
.lvshots h2 { margin: 0 0 6px; font-size: 20px; font-weight: 600; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.lvshots h2 small { font-weight: 400; font-size: 15px; color: var(--frost-ink-soft); }
.lvres { margin-left: auto; font-size: 14px; font-weight: 500; padding: 3px 10px; border-radius: 999px; background: rgba(255, 255, 255, .7); }
.lvres.birdie, .lvres.eagle { color: #b23a48; background: rgba(255, 232, 234, .8); } .lvres.bogey, .lvres.dbl { color: #2c4766; background: rgba(232, 240, 250, .8); } .lvres.prog { color: #b23a48; }
.lvfacts { margin: 0 0 8px; font-size: 14px; color: var(--frost-ink-soft); }
.lvlist { list-style: none; margin: 0; padding: 0; }
.lvlist li { display: flex; gap: 10px; padding: 8px 0; border-top: 1px solid rgba(255, 255, 255, .6); font-size: 16px; }
.lvlist li:first-child { border-top: 0; }
.lvn { flex: 0 0 24px; height: 24px; border-radius: 50%; background: rgba(28, 28, 30, .08); display: inline-flex; align-items: center; justify-content: center; font-size: 13px; color: var(--frost-ink-soft); }
.lvt small { color: var(--frost-ink-soft); font-size: 14px; }
.lvt em { display: block; font-style: normal; font-size: 13px; color: var(--frost-ink-soft); }
.lvfoot { text-align: center; font-size: 13px; color: rgba(26, 34, 48, .6); margin: 14px 0 0; }
.lvcele { position: fixed; left: 0; right: 0; bottom: calc(env(safe-area-inset-bottom) + 22px); display: flex; justify-content: center; z-index: 60; pointer-events: auto; animation: lvin .5s ease-out; transition: opacity .5s, transform .5s; }
.lvcele.out { opacity: 0; transform: translateY(16px); }
.lvcele-in { display: flex; align-items: center; gap: 14px; padding: 10px 20px 10px 10px; border-radius: 999px; background: rgba(255, 250, 240, .88);
  -webkit-backdrop-filter: blur(18px) saturate(140%); backdrop-filter: blur(18px) saturate(140%); border: 1px solid rgba(255, 255, 255, .8); box-shadow: 0 10px 30px rgba(30, 50, 80, .22); }
.lvcele img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; background: #fff; }
.lvcele p { margin: 0; display: flex; flex-direction: column; }
.lvcele b { font-size: 20px; font-weight: 600; color: #b5562a; }
.lvcele span { font-size: 13px; color: var(--frost-ink-soft); }
@keyframes lvin { from { opacity: 0; transform: translateY(24px) scale(.96); } to { opacity: 1; transform: none; } }

/* v88: course dropdown + tee boxes on the New round sheet, tee box naming on the card, player row + first-open name sheet */
.home .hsheet { max-height: calc(100vh - env(safe-area-inset-top) - 100px); overflow-y: auto; -webkit-overflow-scrolling: touch; }
.home .hsheet .lbl { font-size: 13px; font-weight: 500; letter-spacing: .04em; margin: 8px 0 2px; }
.home .hsheet input[type=text] { font-size: 17px; font-weight: 400; padding: 11px 14px; border: 1px solid rgba(23, 48, 31, .14); background: rgba(255, 255, 255, .85); box-sizing: border-box; }
.home .crspick { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 48px; padding: 10px 14px; margin: 2px 0;
  border: 1px solid rgba(23, 48, 31, .14); border-radius: 14px; background: rgba(255, 255, 255, .85); color: #47604f; font-size: 17px; font-weight: 400; text-align: left; box-shadow: none; }
.home .crspick.chosen { color: #17301f; font-weight: 500; }
.home .crspick.open { border-color: rgba(59, 110, 159, .45); box-shadow: 0 0 0 3px rgba(127, 178, 229, .25); }
.home .crspick span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home .crspick i { font-style: normal; font-size: 13px; color: #6a8574; }
.home .crslist { display: flex; flex-direction: column; margin: 2px 0 4px; border: 1px solid rgba(23, 48, 31, .1); border-radius: 14px; background: rgba(255, 255, 255, .92);
  max-height: 42vh; overflow-y: auto; box-shadow: 0 8px 24px rgba(20, 45, 30, .12); animation: sheetin .14s ease-out; }
.home .crsopt { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; background: transparent; border: 0; border-bottom: 1px solid rgba(23, 48, 31, .07); border-radius: 0;
  padding: 11px 14px; color: #17301f; font-size: 16px; font-weight: 400; text-align: left; box-shadow: none; }
.home .crsopt:last-child { border-bottom: 0; }
.home .crsopt b { font-weight: 500; }
.home .crsopt small { font-size: 12px; color: #5b7464; }
.home .crsopt.sel { background: rgba(169, 205, 240, .35); }
.home .crsopt.crsadd { color: #2f6b3f; font-weight: 500; }
.home .ncchip, .home .ntee { font-weight: 500; box-shadow: none; }
.home .ntee.naddtee { flex-direction: row; background: rgba(169, 205, 240, .4); border: 1px dashed rgba(59, 110, 159, .45); color: #0e2a44; font-weight: 500; }
.home .nedit { background: none; border: 0; box-shadow: none; color: #3b6e9f; font-size: 14px; font-weight: 400; text-align: left; padding: 4px 6px; min-height: 32px; }
.home .nplayer { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 48px; padding: 6px 6px 6px 14px; margin: 2px 0; box-sizing: border-box;
  border: 1px solid rgba(23, 48, 31, .14); border-radius: 12px; background: rgba(255, 255, 255, .85); color: #17301f; font-size: 17px; }
.home .nplayer b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home .nplayer.npadd { justify-content: flex-start; color: #2f6b3f; font-weight: 500; padding: 10px 14px; box-shadow: none; }
.home .npedit { display: flex; align-items: center; gap: 6px; }
.home .npedit input[type=text] { flex: 1; min-width: 0; }
.home .npsave { border: 0; border-radius: 12px; background: #3b6e9f; color: #fff; font-size: 15px; font-weight: 500; padding: 11px 14px; min-height: 44px; box-shadow: none; }
.home .namesheet { left: 50%; right: auto; transform: translateX(-50%); top: calc(env(safe-area-inset-top) + 130px); width: min(330px, calc(100vw - 36px)); padding: 14px; gap: 6px; animation: none; }
.home .namesheet .sheet-h { font-size: 22px; font-weight: 300; letter-spacing: .02em; text-transform: none; color: #17301f; padding: 2px 4px 0;
  font-family: "Didot", "Bodoni 72", "Playfair Display", Georgia, serif; }
.home .namehelp { margin: 0 4px 4px; font-size: 14px; line-height: 1.35; color: #47604f; }
.cardpage .teelbl { margin: 10px 2px 2px; font-size: 13px; font-weight: 500; letter-spacing: .04em; color: var(--frost-ink-soft); display: block; }
.cardpage .revtees .frostchip { font-weight: 500; }
.cardpage .revtees .addtee { border-style: dashed; border-color: rgba(59, 110, 159, .45); }
.cardpage .teequick { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.cardpage .teequick .tq { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 4px 12px; font-size: 14px; font-weight: 400; border: 1px solid rgba(255, 255, 255, .7); }
.cardpage .teequick .tq i { width: 11px; height: 11px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .18); }
.tq-black i { background: #222; } .tq-blue i { background: #3d6fc4; } .tq-white i { background: #fff; } .tq-gold i { background: #d9b23c; } .tq-red i { background: #d0443a; } .tq-green i { background: #3f8f4f; }
.home .crsopt { min-height: 52px; justify-content: center; }
.home .namehelp { font-weight: 400; }
/* v90 "Hole out" box: soft pill, green when ticked */
html body .roundpage.theme-sky .clubrow .holeout { color: var(--soft-ink); font-weight: 500; }
html body .roundpage.theme-sky .clubrow .holeout.on { color: #1f6b3a; background: #e3f6e8; border-color: #8fd0a6; }

/* ---------- My Bag (v92) – soft, light, rounded ---------- */
.bagpage { padding-bottom: 40px; }
.bagpage .bagempty { margin: 14px 0; text-align: center; padding: 22px 18px; }
.bagpage .bagempty b { font-size: 19px; font-weight: 600; } .bagpage .bagempty p { font-size: 15px; font-weight: 400; color: var(--frost-ink-soft); line-height: 1.45; margin: 8px 0 0; }
.bagpage .frostcard { box-shadow: 0 4px 16px rgba(20, 45, 30, .08); }
.bagpage .bagcond { margin: 6px 0 12px; padding: 14px 16px; }
.bagpage .bcbase { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; font-size: 14px; color: var(--frost-ink-soft); }
.bagpage .bcbase b { font-size: 16px; font-weight: 600; color: var(--frost-ink); }
.bagpage .bclink { margin-left: auto; background: none; border: 0; color: var(--frost-accent); font-size: 15px; font-weight: 500; padding: 6px 2px; min-height: 36px; }
.bagpage .bcbedit { display: flex; gap: 8px; align-items: flex-end; margin: 8px 0 2px; flex-wrap: wrap; }
.bagpage .bcbedit label { display: flex; flex-direction: column; gap: 3px; font-size: 12px; color: var(--frost-ink-soft); }
.bagpage .bcbedit label span { display: flex; align-items: center; gap: 4px; font-size: 14px; }
.bagpage .bcbedit input { width: 72px; height: 40px; border-radius: 12px; border: 1px solid rgba(23, 48, 31, .14); background: rgba(255, 255, 255, .85); font-size: 17px; text-align: center; }
.bagpage .bcsave { height: 40px; padding: 0 16px; border-radius: 12px; border: 1px solid rgba(47, 107, 63, .3); background: var(--frost-accent); color: #fff; font-weight: 500; font-size: 15px; }
.bagpage .bchint { font-size: 13px; color: var(--frost-ink-soft); margin: 6px 2px; font-weight: 400; }
.bagpage .bchead { font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--frost-ink-soft); font-weight: 500; margin: 14px 0 2px; border-top: 1px solid rgba(23, 48, 31, .08); padding-top: 12px; }
.bagpage .bcslide { margin: 8px 0 4px; }
.bagpage .bclbl { display: flex; justify-content: space-between; align-items: baseline; font-size: 15px; font-weight: 400; }
.bagpage .bclbl b { font-size: 18px; font-weight: 600; color: var(--frost-accent); }
.bagpage input[type=range] { width: 100%; margin: 8px 0 0; accent-color: var(--frost-accent); height: 30px; }
.bagpage .bcends { display: flex; justify-content: space-between; font-size: 11px; color: var(--frost-ink-soft); opacity: .8; }
.bagpage .bcrow { margin: 8px 0 4px; }
.bagpage .bcreset { padding: 8px 14px; font-size: 14px; min-height: 38px; } .bagpage .bcreset:disabled { opacity: .45; }
.bagpage .bcuse { display: flex; gap: 10px; align-items: center; font-size: 15px; font-weight: 400; margin: 8px 0 4px; min-height: 40px; }
.bagpage .bcuse input { width: 22px; height: 22px; accent-color: var(--frost-accent); flex: 0 0 auto; }
.bagpage .bcnote { font-size: 12px; color: var(--frost-ink-soft); line-height: 1.4; margin: 6px 0 0; font-weight: 400; }
.bagpage .bagsort { display: flex; gap: 6px; margin: 4px 0 8px; }
.bagpage .bagsort .frostchip { padding: 7px 14px; font-size: 14px; min-height: 36px; box-shadow: none; }
.bagpage .baglist { padding: 6px 10px; margin-bottom: 12px; }
.bagpage .bagrow { display: grid; grid-template-columns: 1fr 92px 72px; align-items: center; gap: 6px; padding: 6px 0; border-top: 1px solid rgba(23, 48, 31, .07); }
.bagpage .baglist.same .bagrow { grid-template-columns: 1fr 92px; } .bagpage .baglist.same .badj { display: none; }
.bagpage .bagrow.bhead { border-top: 0; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--frost-ink-soft); font-weight: 500; padding: 2px 0 4px; }
.bagpage .bagrow.bhead .badj { text-transform: none; letter-spacing: 0; font-size: 11px; line-height: 1.2; }
.bagpage .bname { background: none; border: 0; text-align: left; padding: 4px 2px; min-height: 44px; display: flex; flex-direction: column; justify-content: center; color: var(--frost-ink); min-width: 0; }
.bagpage .bname b { font-size: 17px; font-weight: 600; } .bagpage .bname small { font-size: 12px; color: var(--frost-ink-soft); font-weight: 400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bagpage .bcarry { display: flex; align-items: center; gap: 4px; } .bagpage .bcarry.none { color: var(--frost-ink-soft); padding-left: 22px; }
.bagpage .bcarry input { width: 62px; padding: 0 4px; box-sizing: border-box; height: 40px; border-radius: 12px; border: 1px solid rgba(23, 48, 31, .14); background: rgba(255, 255, 255, .85); font-size: 18px; font-weight: 500; text-align: center; color: #1a2230; }
.bagpage .bcarry input:placeholder-shown { background: rgba(255, 248, 225, .9); border-color: rgba(200, 150, 40, .35); }
.bagpage .bcarry i { font-style: normal; font-size: 12px; color: var(--frost-ink-soft); }
.bagpage .badj { display: flex; align-items: baseline; gap: 4px; justify-content: flex-end; }
.bagpage .badj b { font-size: 18px; font-weight: 600; color: var(--frost-accent); } .bagpage .badj small { font-size: 12px; font-weight: 500; }
.bagpage .badj small.up { color: #2e7d46; } .bagpage .badj small.down { color: #b0473f; }
.bagpage .bagedit { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 0 10px; }
.bagpage .bagedit label { display: flex; flex-direction: column; gap: 3px; font-size: 12px; color: var(--frost-ink-soft); flex: 1 1 90px; }
.bagpage .bagedit label.wide { flex-basis: 100%; }
.bagpage .bagedit input { height: 40px; border-radius: 12px; border: 1px solid rgba(23, 48, 31, .14); background: rgba(255, 255, 255, .85); font-size: 16px; padding: 0 10px; }
.bagpage .bebtns { display: flex; gap: 8px; width: 100%; } .bagpage .bebtns button { flex: 1; min-height: 42px; font-size: 15px; font-weight: 500; box-shadow: none; }
.bagpage .bagh { font-size: 21px; font-weight: 600; margin: 10px 4px 6px; }
.bagpage .bagcat { font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--frost-ink-soft); font-weight: 500; margin: 14px 4px 6px; }
.bagpage .bagchips { display: flex; flex-wrap: wrap; gap: 7px; margin: 4px 0; }
.bagpage .bagchips .frostchip { padding: 9px 14px; font-size: 15px; min-height: 42px; box-shadow: none; font-weight: 400; }
.bagpage .bagchips .frostchip.bother, .bagpage .bagchips .frostchip.bquick { border-style: dashed; border-color: rgba(23, 48, 31, .25); }
.bagpage .bagslots .frostchip { display: flex; flex-direction: column; align-items: center; min-width: 58px; padding: 6px 10px; line-height: 1.15; }
.bagpage .bagslots .frostchip b { font-size: 16px; font-weight: 600; color: inherit; } .bagpage .bagslots .frostchip small { font-size: 11px; opacity: .75; }
.bagpage .bagtype { display: flex; gap: 8px; margin: 8px 0; }
.bagpage .bagtype input { flex: 1; min-width: 0; height: 44px; border-radius: 14px; border: 1px solid rgba(23, 48, 31, .14); background: rgba(255, 255, 255, .85); font-size: 16px; padding: 0 12px; }
.bagpage .bagtype.two input + input { flex: 0 0 90px; }
.bagpage .bagtype button { padding: 0 16px; font-size: 15px; font-weight: 500; }
.bagpage .frostmain { margin-top: 14px; }
/* ---------- v93 Profile + Wedges (soft, light, rounded) ---------- */
.profpage .profname { margin: 6px 0 12px; padding: 10px 14px; }
.profpage .profname .playerbox { margin: 0; background: none; border: 0; padding: 0; box-shadow: none; font-size: 16px; font-weight: 400; }
.profpage .profcard { display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; margin: 0 0 12px; padding: 18px 16px; min-height: 84px; font: inherit; box-shadow: 0 4px 16px rgba(20, 45, 30, .08); }
.profpage .pcic { font-size: 26px; width: 46px; height: 46px; border-radius: 50%; background: rgba(255, 255, 255, .7); border: 1px solid rgba(23, 48, 31, .08); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.profpage .pctx { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; }
.profpage .pctx b { font-size: 19px; font-weight: 600; } .profpage .pctx small { font-size: 13px; font-weight: 400; color: var(--frost-ink-soft); line-height: 1.35; }
.profpage .pcgo { font-size: 26px; font-weight: 300; color: var(--frost-ink-soft); }
.wedgepage .wlist { padding: 4px 12px; margin: 6px 0 12px; }
.wedgepage .wrow { border-top: 1px solid rgba(23, 48, 31, .07); } .wedgepage .wrow:first-child { border-top: 0; }
.wedgepage .whead { display: flex; align-items: center; gap: 12px; width: 100%; background: none; border: 0; padding: 10px 2px; min-height: 54px; text-align: left; color: var(--frost-ink); font: inherit; }
.wedgepage .whead b { font-size: 20px; font-weight: 600; min-width: 62px; } .wedgepage .whead b i { font-style: normal; font-size: 12px; font-weight: 400; color: var(--frost-ink-soft); margin-left: 2px; }
.wedgepage .wsum { flex: 1; min-width: 0; font-size: 14px; font-weight: 400; color: var(--frost-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wedgepage .wsum.none { color: var(--frost-ink-soft); opacity: .7; }
.wedgepage .wchev { font-size: 16px; color: var(--frost-ink-soft); width: 18px; text-align: center; }
.wedgepage .wrow.open { background: rgba(255, 255, 255, .35); margin: 0 -12px; padding: 0 12px 4px; border-radius: 16px; }
.wedgepage .wbody { padding: 0 0 10px; } .wedgepage .wbody .bagcat { margin: 12px 2px 6px; }
.wedgepage .wchips .frostchip { padding: 8px 13px; font-size: 15px; min-height: 42px; }
.wedgepage .wchips .frostchip small { font-size: 12px; opacity: .75; }
.wedgepage .wnote { width: 100%; box-sizing: border-box; height: 40px; margin: 6px 0 2px; border-radius: 12px; border: 1px solid rgba(23, 48, 31, .12); background: rgba(255, 255, 255, .7); font-size: 15px; padding: 0 12px; color: var(--frost-ink); }
.wedgepage .bebtns { margin-top: 14px; } .wedgepage .bebtns button:disabled { opacity: .45; }
.profpage .playerbox button { border-radius: 999px; font-weight: 500; box-shadow: none; } .profpage .playerbox .txt { color: var(--frost-accent); background: none; border: 0; }
.profpage .playerbox input { border-radius: 12px; border: 1px solid rgba(23, 48, 31, .14); background: rgba(255, 255, 255, .85); }
.wedgepage .whead, .wedgepage .whead:active { box-shadow: none; border-radius: 12px; background: none; transform: none; }
/* ---------- v94 Wedges simple view + Edit, and the wedge ladder on the scoring page ---------- */
.wedgepage .wsimple { padding: 2px 4px 12px; display: flex; flex-direction: column; gap: 2px; }
.wedgepage .wsline { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 7px 2px; border-top: 1px solid rgba(23, 48, 31, .06); }
.wedgepage .wsline:first-child { border-top: 0; }
.wedgepage .wsline span { font-size: 14px; font-weight: 400; color: var(--frost-ink-soft); }
.wedgepage .wsline b { font-size: 17px; font-weight: 500; text-align: right; }
.wedgepage .wedit { width: 100%; min-height: 52px; font-size: 17px; font-weight: 500; margin: 2px 0 10px; border-radius: 18px; box-shadow: none; }
.wedgepage .wedit.on { background: #1c1c1e; color: #fff; border-color: #1c1c1e; }
.clubrow.wladder { flex-wrap: wrap; row-gap: 6px; }
.clubrow.wladder .clublbl { flex: 1; min-width: 0; }
.clubrow.wladder select { flex: 1; min-width: 0; width: 100%; max-width: none; font-size: 14px; }
.clubrow .wladet { flex-basis: 100%; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; padding: 7px 12px; border-radius: 14px; background: rgba(255, 255, 255, .55); border: 1px solid rgba(23, 48, 31, .08); font-size: 15px; font-weight: 500; color: var(--frost-ink, #17301f); }
.clubrow .wladet i { font-style: normal; font-size: 11px; font-weight: 400; text-transform: uppercase; letter-spacing: .04em; color: var(--frost-ink-soft, #3f5a48); margin-right: 5px; }
.clubrow .wladet small { flex-basis: 100%; font-size: 12px; font-weight: 400; color: var(--frost-ink-soft, #3f5a48); }
/* v94 High / Low flight segmented control */
.wedgepage .wflight { display: flex; gap: 4px; padding: 4px; margin: 0 0 12px; border-radius: 16px; background: rgba(255, 255, 255, .45); border: 1px solid rgba(23, 48, 31, .08); }
.wedgepage .wflight button { flex: 1; min-height: 40px; border: 0; border-radius: 12px; background: none; box-shadow: none; font-size: 15px; font-weight: 400; color: var(--frost-ink-soft, #3f5a48); transform: none; }
.wedgepage .wflight button.on { background: rgba(255, 255, 255, .92); color: var(--frost-ink, #17301f); font-weight: 600; box-shadow: 0 1px 4px rgba(23, 48, 31, .10); }
/* ---------- v96 Round stats: top box, Quick view, collapsible stat tiles, small legend ---------- */
.rstop { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; margin: 6px 0 12px; background: rgba(255, 255, 255, .62);
  border: 1px solid var(--frost-line, rgba(23, 48, 31, .1)); border-radius: 20px; overflow: hidden; box-shadow: 0 4px 16px rgba(20, 45, 30, .08); }
.rstop th { background: none; color: var(--frost-ink-soft, #3f5a48); font-size: 12px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; padding: 10px 2px 0; text-align: center; border: 0; }
.rstop td { text-align: center; font-size: 20px; font-weight: 400; padding: 2px 2px 12px; border: 0; color: var(--frost-ink, #17301f); vertical-align: top; }
.rstop td.big { font-size: 34px; font-weight: 600; line-height: 1.15; }
.rstop td small { display: block; font-size: 12px; font-weight: 400; color: var(--frost-ink-soft, #3f5a48); line-height: 1.2; }
.rstop td#rs-yds, .rstop td#rs-putts { padding-top: 10px; }
.qvhead { margin-top: 2px; }
.quickview { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 0 16px; }
.quickview .qv { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 10px 4px 9px; border-radius: 18px; background: rgba(255, 255, 255, .62); border: 1px solid var(--frost-line, rgba(23, 48, 31, .1)); text-align: center; }
.quickview .qvl { font-size: 12px; font-weight: 500; color: var(--frost-ink-soft, #3f5a48); letter-spacing: .03em; }
.quickview b { font-size: 28px; font-weight: 300; line-height: 1.15; color: var(--frost-ink, #17301f); }
.quickview small { font-size: 11px; font-weight: 400; color: var(--frost-ink-soft, #3f5a48); }
.quickview .qvsg { font-style: normal; font-size: 14px; font-weight: 500; margin-top: 3px; color: var(--frost-ink-soft, #3f5a48); }
.quickview .qvsg.pos { color: #2f7d4a; } .quickview .qvsg.neg { color: #b8504a; }
.quickview .qvsg i { font-style: normal; font-size: 10px; font-weight: 400; letter-spacing: .04em; opacity: .8; }
.stat-grid.stxlist { display: flex; flex-direction: column; gap: 0; background: rgba(255, 255, 255, .6); border: 1px solid var(--frost-line, rgba(23, 48, 31, .1)); border-radius: 20px; padding: 2px 12px; }
.stxlist .stx { border-top: 1px solid rgba(23, 48, 31, .07); }
.stxlist .stx:first-child { border-top: 0; }
.stxlist .stxh, .roundpage .stxlist .stxh { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 50px; padding: 8px 2px; background: none !important; border: 0 !important; box-shadow: none !important; border-radius: 12px; text-align: left; color: var(--frost-ink, #17301f); font-size: 16px; font-weight: 400; transform: none; }
.stxlist .stxh span { flex: 1; }
.stxlist .stxh b { font-weight: 500; font-size: 16px; }
.stxlist .stxc { width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translate(-2px, -2px); opacity: .45; flex: none; margin: 0 4px 0 2px; }
.stxlist .stx.open .stxc { transform: rotate(-135deg) translate(-2px, -2px); }
.stxlist .stxb { padding: 0 0 12px; }
.stxlist .stxb .stat { width: 100%; }
.stxlist .stxn { margin: 6px 2px 0; font-size: 13px; font-weight: 400; color: var(--frost-ink-soft, #3f5a48); }
.sclegend { font-size: 12px; font-weight: 400; gap: 4px 12px; color: var(--frost-ink-soft, #3f5a48); }
.sclegend .mk { transform: scale(.75); transform-origin: center; }
.sclegend > span { gap: 3px; }
.sclegend .lgpar { font-weight: 500; }
/* ---------- v97 Send round / Add a round: soft bottom sheets ---------- */
.rsheet-bg { position: fixed; inset: 0; z-index: 60; background: rgba(20, 35, 30, .22); }
.rsheet { position: fixed; left: 8px; right: 8px; bottom: calc(8px + env(safe-area-inset-bottom)); z-index: 61; max-height: calc(100% - 40px); overflow-y: auto;
  display: flex; flex-direction: column; gap: 8px; padding: 16px 14px 12px; border-radius: 26px; background: rgba(248, 250, 248, .94);
  -webkit-backdrop-filter: blur(22px) saturate(140%); backdrop-filter: blur(22px) saturate(140%); border: 1px solid rgba(255, 255, 255, .8);
  box-shadow: 0 10px 40px rgba(20, 45, 30, .22); color: #17301f; font-family: -apple-system, "SF Pro Text", "Helvetica Neue", system-ui, sans-serif; }
.rsheet .rsh-h { font-size: 21px; font-weight: 400; text-align: center; padding: 2px 4px 0; }
.rsheet .rsh-sub, .rsheet .rsh-help { margin: 0; font-size: 14px; font-weight: 400; color: #4b6355; text-align: center; }
.rsheet .rsh-help { font-size: 13px; margin: 2px 6px; }
.rsheet .rsh-go, .rsheet .rsh-item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; width: 100%; min-height: 52px; margin: 0;
  border-radius: 18px; padding: 11px 14px; font-size: 17px; font-weight: 500; text-align: center; box-shadow: none; cursor: pointer; }
.rsheet .rsh-go { background: #2f6b3f; color: #fff; border: 0; }
.rsheet .rsh-item { background: rgba(255, 255, 255, .85); color: #17301f; border: 1px solid rgba(23, 48, 31, .12); }
.rsheet .rsh-item.muted { background: transparent; border: 0; color: #4b6355; font-size: 16px; min-height: 44px; }
.rsheet .rsh-go small, .rsheet .rsh-item small { font-size: 12px; font-weight: 400; opacity: .8; word-break: break-all; }
.rsheet .rsh-or { text-align: center; font-size: 13px; color: #6a7f72; }
.rsheet .rsh-lbl { font-size: 13px; font-weight: 500; color: #4b6355; margin: 0 4px -4px; }
.rsheet .rsh-code { width: 100%; box-sizing: border-box; border-radius: 14px; border: 1px solid rgba(23, 48, 31, .18); background: #fff; padding: 10px 12px;
  font: 14px/1.35 ui-monospace, "SF Mono", Menlo, monospace; color: #17301f; resize: none; word-break: break-all; }
.rsheet .rsh-ok { margin: 0; text-align: center; font-size: 15px; font-weight: 500; color: #2f7d4a; }
.rsheet .rsh-err { margin: 0; padding: 10px 12px; border-radius: 14px; background: #fdecea; color: #9b2c22; font-size: 14px; font-weight: 400; }
.rsheet .rsh-err.rsh-note { background: #fff6d9; color: #6b5200; }
.rsheet .arcard { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 14px 10px 12px; border-radius: 20px; background: #fff; border: 1px solid rgba(23, 48, 31, .1); }
.rsheet .arcourse { font-size: 20px; font-weight: 600; }
.rsheet .ardate, .rsheet .arwho { font-size: 13px; color: #4b6355; }
.rsheet .arnums { display: grid; grid-template-columns: repeat(3, 1fr); width: 100%; margin: 8px 0 6px; }
.rsheet .arnums div { display: flex; flex-direction: column; align-items: center; }
.rsheet .arnums small { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: #4b6355; }
.rsheet .arnums b { font-size: 30px; font-weight: 400; }
.frostpage .addrbtn { display: flex; flex-direction: column; align-items: center; width: 100%; margin: 4px 0 10px; padding: 10px 14px; border-radius: 18px; font-size: 16px; font-weight: 500; }
.frostpage .addrbtn small { font-size: 12px; font-weight: 400; color: var(--frost-ink-soft); }
.roundpage .sendbtn small { display: block; font-size: 12px; font-weight: 400; opacity: .75; }
/* ---------- v98 Google Drive backup card (main backup in Archive) ---------- */
.archivepage .gdcard { background: rgba(240, 250, 243, .7); }
.gdcard .gdgo { width: 100%; margin: 4px 0 2px; }
.archivepage .gdcard button.primary { background: linear-gradient(180deg, #8fd0a4, #5fb07c); border-color: #5fa477; color: #10301c; }
.gdcard .gdsignin { display: block; width: 100%; margin: 0 0 10px; min-height: 44px; padding: 8px 14px; border-radius: 999px; font-size: 15px; font-weight: 500;
  background: rgba(255, 255, 255, .8); border: 1px solid rgba(47, 107, 63, .3); color: #2f6b3f; box-shadow: none; }
/* ---------- v99 Change player ---------- */
.frostpage .histtools { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 4px 0 10px; }
.frostpage .histtools .addrbtn { margin: 0; min-height: 60px; }
.frostpage .mvhelp { margin: 6px 4px 8px; text-align: center; font-size: 15px; font-weight: 500; color: var(--frost-ink-soft); }
.hrow.mvon .hist { align-items: center; gap: 10px; }
.hrow.mvon .hmain { flex: 1 1 auto; min-width: 0; }
.mvchk { flex: 0 0 28px; height: 28px; border-radius: 50%; border: 2px solid rgba(23, 48, 31, .3); background: rgba(255, 255, 255, .8); display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 700; color: #fff; }
.hrow.mvsel .mvchk { background: #2f6b3f; border-color: #2f6b3f; }
.hrow.mvsel .hist { box-shadow: 0 0 0 2px rgba(47, 107, 63, .55); }
.mvbar { position: fixed; left: 8px; right: 8px; bottom: calc(8px + env(safe-area-inset-bottom)); z-index: 50; display: flex; gap: 8px; padding: 8px; border-radius: 26px;
  background: rgba(248, 250, 248, .92); -webkit-backdrop-filter: blur(22px) saturate(140%); backdrop-filter: blur(22px) saturate(140%); border: 1px solid rgba(255, 255, 255, .8);
  box-shadow: 0 10px 40px rgba(20, 45, 30, .22); }
.mvbar button { min-height: 52px; margin: 0; border-radius: 20px; font-size: 17px; font-weight: 500; box-shadow: none; }
.mvbar .mvcancel { flex: 0 0 auto; padding: 0 16px; background: transparent; border: 0; color: #4b6355; }
.mvbar .mvgo { flex: 1 1 auto; background: #2f6b3f; color: #fff; border: 0; }
.mvbar .mvgo:disabled { background: rgba(47, 107, 63, .25); color: #fff; }
.frostpage #histlist:has(.mvon) { padding-bottom: 84px; }
.rsheet .mvname:disabled { opacity: .5; }
.rsheet .mvinput { font: 17px/1.3 -apple-system, "SF Pro Text", system-ui, sans-serif; }
.rsheet .mvlist { display: flex; flex-direction: column; gap: 2px; padding: 8px 12px; border-radius: 16px; background: #fff; border: 1px solid rgba(23, 48, 31, .1); font-size: 15px; text-align: center; }
.frostpage .mvall { display: block; margin: -4px auto 6px; min-height: 40px; padding: 0 14px; border-radius: 999px; font-size: 15px; font-weight: 500; color: #2f6b3f; background: rgba(255, 255, 255, .6); border: 1px solid rgba(47, 107, 63, .25); }
/* ---------- v100 Best vs worst: clear Best / Worst column groups ---------- */
.cmpcols { gap: 8px; margin: 6px 0 4px; }
.cmpcard { border-radius: 18px; padding: 8px 10px 6px; }
.cmpcard h3 { margin: 0 0 4px; font-size: 15px; font-weight: 700; }
.gbcard { background: #eaf6ee; border: 1px solid #cfe8d7; } .gbcard h3 { color: #2f6b3f; }
.gwcard { background: #fdeeea; border: 1px solid #f3d3ca; } .gwcard h3 { color: #a2452f; }
.cmpcard .cmplist { list-style: none; padding: 0; margin: 0; font-size: 13px; }
.cmpcard .cmplist li { display: grid; grid-template-columns: 1fr auto; column-gap: 6px; padding: 4px 0; border-top: 1px solid rgba(0, 0, 0, .06); }
.cmpcard .cmplist li:first-child { border-top: 0; }
.cmpcard .cl-d { grid-column: 1; color: #55665c; font-size: 12px; }
.cmpcard .cl-c { grid-column: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cmpcard .cl-s { grid-column: 2; grid-row: 1 / span 2; align-self: center; text-align: right; white-space: nowrap; }
.cmpcard .cl-s b { font-size: 16px; }
.gapcard { border-radius: 18px; overflow: hidden; border: 1px solid #e3e9e4; background: #fff; }
table.gapt { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; font-size: 13px; font-variant-numeric: tabular-nums; }
table.gapt col.c-from { width: 17.5%; } table.gapt col.c-gap { width: 13.5%; }
table.gapt th, table.gapt td { padding: 7px 2px; text-align: center; border-bottom: 1px solid #edf1ee; white-space: nowrap; }
table.gapt th { font-size: 11px; font-weight: 600; color: #4b6355; letter-spacing: .01em; }
table.gapt th.ghead { font-size: 14px; font-weight: 700; padding: 8px 2px 4px; border-bottom: 0; }
table.gapt th.ghead small { display: block; font-size: 10.5px; font-weight: 500; color: #55665c; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; }
table.gapt .from { text-align: left; padding-left: 8px; font-weight: 600; }
table.gapt th.gb { background: #e3f3e8; } table.gapt th.ghead.gb { color: #2f6b3f; }
table.gapt th.gw { background: #fbe6e0; } table.gapt th.ghead.gw { color: #a2452f; }
table.gapt td.gb { background: #f3faf5; } table.gapt td.gw { background: #fdf4f1; }
table.gapt .g1 { border-left: 3px solid #fff; }
table.gapt .gap { border-left: 2px solid #c9d3cc; font-size: 14px; }
table.gapt td.gap b { font-weight: 700; }
table.gapt tr.gsec td { text-align: left; padding: 9px 8px 4px; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #6a7f72; background: #fafcfa; }
table.gapt tbody tr:last-child td { border-bottom: 0; }
.gapnote { font-size: 13px; line-height: 1.4; }

/* ---------- v101 Google Drive restore: list of every round in a player's backup ---------- */
.gdlpage { padding-bottom: 104px; }
.gdlpage .gdlsum { margin: 8px 2px 6px; padding: 12px 14px; border-radius: 20px; background: rgba(244, 248, 252, .7); border: 1px solid rgba(255, 255, 255, .75); font-size: 16px; color: #2b3440; }
.gdlpage .gdlsum b { font-size: 18px; }
.gdlchips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.gdlchip { font-size: 13px; font-weight: 600; padding: 4px 10px; border-radius: 999px; }
.gdlchip.gdlnew { background: rgba(47, 125, 74, .14); color: #245a35; }
.gdlchip.gdlonc { background: rgba(90, 105, 120, .13); color: #4a5563; }
.gdltools { display: flex; gap: 8px; margin: 8px 2px; }
.gdltools .gdltool { flex: 1 1 0; min-height: 44px; margin: 0; border-radius: 999px; font-size: 15px; font-weight: 600; background: rgba(255, 255, 255, .78); border: 1px solid rgba(255, 255, 255, .85); color: #245a35; box-shadow: none; }
.gdltools .gdltool:disabled { color: #8a96a0; background: rgba(255, 255, 255, .45); }
.gdllist { display: flex; flex-direction: column; gap: 8px; margin: 4px 2px 10px; }
.gdlrow { display: flex; align-items: stretch; gap: 0; border-radius: 20px; background: rgba(250, 252, 253, .86); border: 1px solid rgba(255, 255, 255, .85); box-shadow: 0 4px 14px rgba(30, 50, 70, .08); overflow: hidden; }
.gdlrow.gdlsel { box-shadow: 0 0 0 2px rgba(47, 107, 63, .6), 0 4px 14px rgba(30, 50, 70, .08); background: rgba(240, 250, 243, .92); }
.gdlrow .gdltick { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 12px; margin: 0; padding: 12px 6px 12px 12px; background: transparent; border: 0; border-radius: 0; box-shadow: none; text-align: left; color: #22303c; font: inherit; }
.gdlbox { flex: 0 0 28px; height: 28px; border-radius: 50%; border: 2px solid rgba(23, 48, 31, .3); background: #fff; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 700; color: #fff; }
.gdlsel .gdlbox { background: #2f6b3f; border-color: #2f6b3f; }
.gdlmain { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.gdldate { font-size: 13px; color: #55636f; }
.gdlcourse { font-size: 17px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gdlst { font-size: 12.5px; font-weight: 600; }
.gdlst-new { color: #2f7d4a; } .gdlst-newer { color: #9a6a12; } .gdlst-same { color: #7b8691; }
.gdlscore { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; min-width: 40px; }
.gdlscore b { font-size: 22px; font-weight: 700; line-height: 1.1; } .gdlscore small { font-size: 13px; color: #55636f; }
.gdlrow .gdlview { flex: 0 0 40px; margin: 0; padding: 0; border: 0; border-left: 1px solid rgba(30, 50, 70, .08); border-radius: 0; background: transparent; box-shadow: none; font-size: 24px; color: #7b8691; min-height: 0; }
.gdlrow.gdlon { background: rgba(240, 243, 246, .7); }
.gdlrow.gdlon .gdltick { color: #6f7b86; } .gdlrow.gdlon .gdlbox { background: rgba(230, 234, 238, .9); border-color: rgba(100, 115, 130, .25); border-style: dashed; }
.gdlrow.gdlon .gdlscore b { color: #6f7b86; }
.gdlpage .gdlnote { margin: 6px 6px 10px; font-size: 14px; line-height: 1.4; color: #3d4955; }
.gdlbar { position: fixed; left: 8px; right: 8px; bottom: calc(8px + env(safe-area-inset-bottom)); z-index: 50; display: flex; align-items: center; gap: 8px; padding: 8px 8px 8px 16px; border-radius: 26px;
  background: rgba(248, 250, 248, .93); -webkit-backdrop-filter: blur(22px) saturate(140%); backdrop-filter: blur(22px) saturate(140%); border: 1px solid rgba(255, 255, 255, .8); box-shadow: 0 10px 40px rgba(20, 45, 30, .22); }
.gdlbar .gdlcount { flex: 0 0 auto; font-size: 15px; font-weight: 600; color: #3d4955; }
.gdlbar .gdlgo { flex: 1 1 auto; min-height: 52px; margin: 0; border-radius: 20px; font-size: 17px; font-weight: 600; background: #2f6b3f; color: #fff; border: 0; box-shadow: none; }
.gdlbar .gdlgo:disabled { background: rgba(47, 107, 63, .25); }
.gdlrow .gdltick:disabled { opacity: 1; cursor: default; }
.gdlrow.gdlon .gdlcourse { color: #56626e; } .gdlrow.gdlon .gdldate { color: #6f7b86; }
/* ---------- v102 Rounds: tight list (replaces the big History tiles) ---------- */
.histpage .hchips { display: flex; gap: 6px; overflow-x: auto; margin: 0 0 8px; padding: 2px 0; scrollbar-width: none; }
.histpage .hchips::-webkit-scrollbar { display: none; }
.histpage .hchips .frostchip { flex: 0 0 auto; min-height: 32px; padding: 0 12px; font-size: 14px; }
.histpage .htools { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 6px; margin: 0 0 10px; }
.histpage .htool { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; min-height: 46px; margin: 0; padding: 4px 2px;
  border-radius: 14px; font-size: 11.5px; font-weight: 500; line-height: 1.15; color: var(--frost-ink); background: rgba(255, 255, 255, .62); border: 1px solid rgba(23, 48, 31, .1); box-shadow: none; }
.histpage .htool span { font-size: 16px; line-height: 1.1; }
.histpage #histbz { font-size: 10.5px; white-space: nowrap; letter-spacing: -.1px; } /* v134: "Scoring chances" stays on one line */
.histpage .hhead, .histpage .hist { display: grid; grid-template-columns: 40px 30px 40px 46px minmax(0, 1fr); column-gap: 8px; align-items: center; }
.histpage .hhead { grid-template-columns: 40px 30px 40px 46px minmax(0, 1fr) 30px; padding: 0 0 4px 10px; font-size: 10.5px; font-weight: 600; letter-spacing: .06em;
  text-transform: uppercase; line-height: 1.1; color: var(--frost-ink-soft); }
.histpage .hhead .hc1, .histpage .hhead .hc2, .histpage .hhead .hc3, .histpage .hhead .hc4 { text-align: center; }
.histpage .hlist { background: rgba(255, 255, 255, .66); border: 1px solid rgba(23, 48, 31, .08); border-radius: 20px; overflow: hidden; }
.histpage .hrow { display: flex; align-items: stretch; margin: 0; border-top: 1px solid rgba(23, 48, 31, .08); }
.histpage .hrow:first-child { border-top: 0; }
.histpage .hrow .hist { flex: 1 1 auto; min-width: 0; min-height: 58px; margin: 0; padding: 7px 0 7px 10px; border: 0; border-radius: 0; background: transparent; box-shadow: none; text-align: left; color: var(--frost-ink); }
.histpage .hrow .hist:active { background: rgba(47, 107, 63, .06); }
.histpage .hcirc { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; font-size: 16px; font-weight: 600;
  border: 2px solid rgba(23, 48, 31, .18); background: #fff; color: var(--frost-ink); }
.histpage .hcirc.tp-under { border-color: #7cc596; background: #e9f7ee; color: #24603a; }
.histpage .hcirc.tp-even { border-color: #b9cbd8; background: #f2f6f9; color: #2c4152; }
.histpage .hcirc.tp-over { border-color: #e6a9a4; background: #fcefed; color: #8a3a33; }
.histpage .hholes { justify-self: center; min-width: 26px; padding: 2px 6px; border-radius: 999px; font-size: 12px; font-weight: 600; text-align: center;
  background: rgba(23, 48, 31, .06); color: #4b6355; border: 1px solid rgba(23, 48, 31, .1); }
.histpage .hholes.unf { background: #fff6e3; border: 1px dashed #d9a441; color: #8a5a00; }
.histpage .hdate, .histpage .hpar, .histpage .hmain { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.histpage .hdate, .histpage .hpar { align-items: center; }
.histpage .hdate b { font-size: 14px; font-weight: 600; }
.histpage .hpar b { font-size: 14px; font-weight: 600; }
.histpage .hdate small, .histpage .hmain small { font-size: 11.5px; color: var(--frost-ink-soft); }
.histpage .hpar small { font-size: 11px; font-weight: 500; }
.histpage .hmain b { font-size: 14.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.histpage .hmain small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.histpage .hmain .hunf { font-style: normal; color: #8a5a00; }
.histpage .hdel { flex: 0 0 34px; display: flex; align-items: center; justify-content: center; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0;
  background: transparent; box-shadow: none; color: rgba(23, 48, 31, .32); }
.histpage .hdel svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.histpage .hdel:active { color: #b3473d; }
.histpage .hrow.mvon .hist, .histpage .hhead:has(.hcchk) { grid-template-columns: 24px 40px 30px 40px 46px minmax(0, 1fr); }
.histpage .hrow.mvon .hist { padding-right: 10px; column-gap: 8px; row-gap: 0; }
.histpage .hrow.mvon .mvchk { width: 24px; height: 24px; font-size: 14px; }
.histpage .hrow.mvsel { background: rgba(47, 107, 63, .08); }
.histpage .hrow.mvsel .hist { box-shadow: none; }
.histpage .mvhelp { margin: 0 4px 4px; font-size: 14px; }
.histpage .mvall { margin: 0 auto 8px; min-height: 34px; font-size: 14px; }
.histpage .topbar .title span, .histpage .topbar .frostbtn { white-space: nowrap; }
.histpage .topbar .title { min-width: 0; }
/* ---------- v102 My Bag: Bag | Wedge ladder toggle ---------- */
.bagpage .bagseg { display: flex; gap: 4px; padding: 4px; margin: 0 0 12px; border-radius: 999px; background: rgba(255, 255, 255, .5); border: 1px solid rgba(23, 48, 31, .1); }
.bagpage .bagseg button { flex: 1; min-height: 42px; margin: 0; border: 0; border-radius: 999px; background: none; box-shadow: none; font-size: 16px; font-weight: 500; color: var(--frost-ink-soft, #3f5a48); transform: none; }
.bagpage .bagseg button.on { background: #fff; color: var(--frost-ink, #17301f); font-weight: 600; box-shadow: 0 1px 5px rgba(23, 48, 31, .12); }
/* ---------- v103 Scorecard: one soft card that scrolls sideways ---------- */
.sclabel span { font-weight: 400; color: var(--frost-ink-soft, #3f5a48); text-transform: none; letter-spacing: 0; }
.sc1card { margin: 6px 0 8px; border-radius: 18px; background: rgba(255, 255, 255, .9); border: 1px solid rgba(23, 48, 31, .08);
  box-shadow: 0 4px 16px rgba(20, 45, 30, .08); overflow: hidden; }
.sc1card .scscroll { overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; scrollbar-width: none; }
.sc1card .scscroll::-webkit-scrollbar { display: none; }
.scard.sc1 { overflow: visible; width: auto; table-layout: auto; border-collapse: separate; border-spacing: 0; margin: 0; border: 0; font-size: 12.5px; font-weight: 400;
  color: var(--frost-ink, #17301f); font-variant-numeric: tabular-nums; }
.scard.sc1 th, .scard.sc1 td { margin: 0; border-radius: 0; border: 0; border-bottom: 1px solid rgba(23, 48, 31, .06); padding: 0; height: 31px; text-align: center; vertical-align: middle; white-space: nowrap; background: transparent; }
.scard.sc1 tr:last-child > * { border-bottom: 0; }
.scard.sc1 th[scope="row"] { position: sticky; left: 0; z-index: 2; width: auto; min-width: 70px; padding: 0 8px 0 12px; text-align: left; background: #fafbfa;
  font-size: 10.5px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: #5d7266; box-shadow: 1px 0 0 rgba(23, 48, 31, .08); }
.scard.sc1 td { min-width: 34px; }
.scard.sc1 td.g9 { box-shadow: inset -1px 0 0 rgba(23, 48, 31, .07); }
.scard.sc1 td.sum { min-width: 40px; padding: 0 4px; background: rgba(23, 48, 31, .035); font-weight: 400; font-size: 12px; }
.scard.sc1 td.sum.tot { padding-right: 10px; font-weight: 500; }
.scard.sc1 .hc { display: flex; align-items: center; justify-content: center; width: 100%; height: 30px; min-height: 0; min-width: 0; margin: 0; padding: 0 3px;
  border: 0; border-radius: 0; background: transparent !important; box-shadow: none; font: inherit; color: inherit; }
.scard.sc1 .hc:active { transform: none; background: rgba(47, 107, 63, .08) !important; }
/* row groups: score · strokes gained · stats, split by a soft line and a little air */
.scard.sc1 tr.scgap > * { height: 6px; padding: 0; background: rgba(23, 48, 31, .025); border-bottom: 1px solid rgba(23, 48, 31, .09); }
.scard.sc1 tr.scgap > th { position: sticky; left: 0; z-index: 2; background: #f6f8f6; }
.scard.sc1 tr.shole > * { background: #f1f5f2; }
.scard.sc1 tr.shole th[scope="row"] { background: #f1f5f2; }
.scard.sc1 tr.shole .hc, .scard.sc1 tr.shole td.sum { font-weight: 500; color: var(--frost-ink, #17301f); }
.scard.sc1 tr.spar, .scard.sc1 tr.syds { color: #4d6357; }
.scard.sc1 tr.syds { font-size: 11px; }
.scard.sc1 tr.sputts .hc, .scard.sc1 .sputts td { color: inherit; }
.scard.sc1 tr.ssg td { font-size: 11px; }
.scard.sc1 tr.ssg td .hc { padding: 0 2px; }
.scard.sc1 tr.sclub td { font-size: 11px; color: #4d6357; }
.scard.sc1 tr.sp1 td, .scard.sc1 tr.spl td, .scard.sc1 tr.sdrive td { font-size: 11.5px; }
.scard.sc1 .scdash { color: #a5b2aa; }
.scard.sc1 .scic { width: 15px; height: 15px; fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.scard.sc1 .scic.yes { stroke: #2f8a4f; } .scard.sc1 .scic.yes circle { fill: rgba(47, 138, 79, .1); }
.scard.sc1 .scic.no { stroke: #c4655c; } .scard.sc1 .scic.no circle { fill: rgba(196, 101, 92, .08); }
/* soft, thin score shapes */
.scard.sc1 .mk, .sclegend .mk { width: 23px; height: 23px; font-size: 12.5px; font-weight: 400; border-width: 1px; border-color: currentColor; }
.scard.sc1 .mk-birdie { border-color: #3a8a57; background: rgba(58, 138, 87, .1); color: #22603a; }
.scard.sc1 .mk-eagle { border-color: #3a8a57; background: rgba(58, 138, 87, .16); color: #22603a; box-shadow: inset 0 0 0 1.5px #fff, inset 0 0 0 2.5px #3a8a57; }
.scard.sc1 .mk-bogey { border-color: #c79a3a; background: rgba(214, 170, 70, .12); color: #7a5512; border-radius: 4px; }
.scard.sc1 .mk-double { border-color: #c4655c; background: rgba(196, 101, 92, .1); color: #8a3a33; border-radius: 4px; box-shadow: inset 0 0 0 1.5px #fff, inset 0 0 0 2.5px #c4655c; }
.sclegend .mk-birdie, .sclegend .mk-eagle { border-color: #3a8a57; } .sclegend .mk-bogey { border-color: #c79a3a; border-radius: 4px; }
.sclegend .mk-eagle { box-shadow: inset 0 0 0 1.5px #fff, inset 0 0 0 2.5px #3a8a57; }
.sclegend .mk-double { border-color: #c4655c; border-radius: 4px; box-shadow: inset 0 0 0 1.5px #fff, inset 0 0 0 2.5px #c4655c; }
/* ---------- v104 Lag putts box under the putt-misses map ---------- */
.lagbox { margin: 12px 0 6px; padding: 10px 12px 4px; border-radius: 16px; background: rgba(255, 255, 255, .7); border: 1px solid rgba(23, 48, 31, .08); }
.lagbox .lagh { font-size: 14px; font-weight: 600; margin: 0 0 6px; }
.lagbox .lagcells { margin: 0; }
.lagbox .help { margin: 6px 0 4px; font-size: 12.5px; }

/* v106: My Bag – "Adjust for playing conditions" is a collapsible section (collapsed by default), same soft chevron as the stat rows */
.bagpage .bagcond { padding: 4px 16px; }
.bagpage .bagcond.open { padding-bottom: 14px; }
.bagpage .bcfold { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 56px; padding: 8px 0; background: none !important; border: 0 !important; box-shadow: none !important; text-align: left; color: var(--frost-ink, #17301f); transform: none; cursor: pointer; }
.bagpage .bcfold .bcft { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bagpage .bcfold .bcft b { font-size: 16px; font-weight: 500; }
.bagpage .bcfold .bcft small { font-size: 13px; font-weight: 400; color: var(--frost-ink-soft); }
.bagpage .bcchev { width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translate(-2px, -2px); opacity: .45; flex: none; margin: 0 4px 0 2px; }
.bagpage .bagcond.open .bcchev { transform: rotate(-135deg) translate(-2px, -2px); }
.bagpage .bcbody { border-top: 1px solid rgba(23, 48, 31, .08); padding-top: 10px; }

/* ---------- v106: light type everywhere (Scott: "get rid of the large bold font") ----------
   Big text is lighter (300–400) and smaller (numbers <= 24px, headings ~18–20px); small labels at most 500.
   Only font size / weight change here – padding, heights and tap targets stay as they were. The PDF report is drawn separately and is unchanged. */
button.big, label.big, a.big, .big.frostbtn, .big.frostmain, .big.primary, .big.danger, .big.sendbtn, .big.rpbtn { font-size: 18px !important; font-weight: 400 !important; }
.big small, .big .sub { font-weight: 400 !important; }
h1 { font-weight: 300 !important; }
.home .home-title { font-size: 32px !important; font-weight: 300 !important; }
h2, .roundpage h2, .archivepage h2, .bagpage h2.bagh { font-size: 19px !important; font-weight: 500 !important; }
h3, .mapview h3, .tiphead .tiplbl { font-size: 17px !important; font-weight: 500 !important; }
.holecard .hc-head h2 { font-size: 22px !important; font-weight: 400 !important; }
.hc-head .par span { font-size: 15px !important; font-weight: 500 !important; }
.topbar .title b { font-size: 19px !important; font-weight: 500 !important; }
.topbar .frostbtn, .topbar button.txt { font-weight: 400 !important; }
.stat b, .stat.tile b, .stat-grid .stat b { font-size: 22px !important; font-weight: 400 !important; }
.quickview .qv b { font-size: 22px !important; font-weight: 300 !important; }
td#rs-score.big, td#rs-topar.big, .rsbox td.big { font-size: 24px !important; font-weight: 400 !important; }
.mapview .maphead b { font-size: 18px !important; font-weight: 500 !important; }
.mapview .maphead .close { font-size: 16px !important; font-weight: 400 !important; }
.sghead, .sghead span, #sghtotal { font-size: 17px !important; font-weight: 500 !important; }
.sghead .chev { font-weight: 400 !important; }
.cmpn button { font-size: 22px !important; font-weight: 300 !important; }
.pnrow .pnbtn, .mapview button.yall { font-size: 16px !important; font-weight: 500 !important; }
.bzcard .bzcount, #bzcount { font-size: 18px !important; font-weight: 400 !important; }
.pdfsheet > b { font-size: 17px !important; font-weight: 500 !important; }
.pdfsheet button.txt { font-size: 16px !important; font-weight: 400 !important; }
.holecard .pinbtn { font-size: 16px !important; font-weight: 400 !important; }
.legend b.star, .legend b.x { font-weight: 400 !important; }
.wrow .whead b { font-size: 18px !important; font-weight: 500 !important; }
.bagpage .bclbl b { font-size: 17px !important; font-weight: 500 !important; }
.bagpage .bcarry.none { font-weight: 400 !important; }
/* v106 light type – medium text: no more 700–900 weights on buttons, chips, labels and summary numbers */
.seg button, .seg button.sel, .mapsum b, .label, .qvhead, .sclabel, .liebtn, .ybtn b, .pinstats button, .pinstats .badge, .pinlbl, th, .fwcounts span, .fwcounts b,
.cl-s b, .playerbox button.txt, .playerbox b, .cmpn b, .pmgroups button { font-weight: 500 !important; }
.stat.tile .mini, small.mini, .notice, .discard, .legend > span { font-weight: 400 !important; }
.mapview svg text.fwpct { font-weight: 500; } /* on-screen fairway % only; the PDF keeps its own drawing */
/* v106 light type – smaller text: semi-bold 600–900 eased to 500 (labels) or 400 (body text) */
.hist b, .hist .hcirc, .topbar .title span, .stat > span, .stat.tile > span, td.gap b, .cmpmaps figcaption, .tiplbl, #wflight button,
td.gb, td.gw, td.from, .bcbase b, .bagseg button, .cmpn span, .sheet-item, .sheet-go, .sheet-h, .bname b, .miclbl, .row.sub button.txt,
.playerbox span, .lagh, .cl-c, .cl-s, .liebtn small, .pmgroups button small, .sghead small, .legend .dot.num, .bzslcol span { font-weight: 500 !important; }
tbody td, .mapsum, .mapsum small, .infocap, .bzlegend, .odstat, .bcbase > span, .hist .hholes, .cl-d, .bcarry i { font-weight: 400 !important; }
/* v107: app version – small, light, quiet */
.appver { font-size: 12px !important; font-weight: 300 !important; letter-spacing: .03em; text-align: center; pointer-events: none; user-select: none; }
.archivepage .setver { margin: 22px 0 6px; color: #7d8a96; }
.home .homever { position: absolute; left: 0; right: 0; bottom: calc(env(safe-area-inset-bottom) + 6px); z-index: 2; font-size: 11px !important; color: rgba(255, 255, 255, .72); text-shadow: 0 1px 2px rgba(0, 0, 0, .25); }
/* v108: density altitude – checkbox + "?" row, one slider with a typed box, and the soft help card (light type only) */
.bagpage .bcdarow { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.bagpage .bcdarow .bcda { flex: 1; margin: 4px 0; }
.bagpage .dahbtn { flex: none; width: 44px; height: 44px; min-height: 44px; padding: 0; border: 0; background: transparent; display: inline-flex; align-items: center; justify-content: center;
  font-size: 0 !important; color: transparent; box-shadow: none; }
.bagpage .dahbtn::before { content: '?'; display: inline-flex; width: 28px; height: 28px; border-radius: 50%; align-items: center; justify-content: center; font-size: 15px; font-weight: 400;
  color: var(--frost-ink-soft); background: rgba(255, 255, 255, .75); border: 1px solid rgba(23, 48, 31, .16); }
.bagpage .dahbtn[aria-expanded="true"]::before { background: var(--frost-accent); color: #fff; border-color: transparent; }
.bagpage .datype { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 400; color: var(--frost-ink-soft); }
.bagpage .datype input { width: 86px; height: 40px; border-radius: 12px; border: 1px solid rgba(23, 48, 31, .14); background: rgba(255, 255, 255, .88); font-size: 17px; font-weight: 400; text-align: center; color: var(--frost-ink); padding: 0 6px; }
.bagpage .dasign { width: 40px; height: 40px; min-height: 40px; padding: 0; border-radius: 12px; border: 1px solid rgba(23, 48, 31, .14); background: rgba(255, 255, 255, .7); font-size: 17px; font-weight: 300; color: var(--frost-ink-soft); box-shadow: none; }
.bagpage #bagdaslide .bclbl { align-items: center; }
.bagpage #bagdaslide input[type=range] { width: 100%; margin: 10px 0 2px; }
.bagpage .bcdabase { font-size: 12px; font-weight: 400; color: var(--frost-ink-soft); margin: 6px 0 0; line-height: 1.4; }
.dahelp-back { position: fixed; inset: 0; z-index: 40; background: rgba(20, 35, 50, .18); }
.bagpage .dahelp { position: fixed; z-index: 41; left: 16px; right: 16px; top: calc(env(safe-area-inset-top) + 110px); max-height: calc(100vh - env(safe-area-inset-top) - 140px); overflow-y: auto;
  padding: 18px 18px 14px; border-radius: 22px; background: rgba(250, 252, 250, .97); border: 1px solid rgba(23, 48, 31, .1); box-shadow: 0 10px 34px rgba(20, 45, 30, .18);
  font-size: 15px; font-weight: 400; line-height: 1.45; color: var(--frost-ink); }
.bagpage .dahelp p { margin: 0 0 10px; font-weight: 400; }
.bagpage .dahelp .dahh { font-size: 17px; font-weight: 500; margin-bottom: 8px; }
.bagpage .dahelp .daex { color: var(--frost-ink-soft); }
.bagpage .dahelp a { color: #2a5f8f; font-weight: 400; text-decoration: underline; text-underline-offset: 2px; }
.bagpage .dahelp .dahclose { display: block; width: 100%; min-height: 44px; margin-top: 4px; border-radius: 999px; font-size: 16px !important; font-weight: 400 !important; }
/* v110: Stats page – trends over time. Soft white cards, thin borders, light type only, inline SVG charts */
.statspage { padding-bottom: calc(env(safe-area-inset-bottom) + 24px); }
.statspage .topbar .title b { font-size: 20px !important; font-weight: 400 !important; }
.statspage .topbar .title span { font-size: 13px !important; font-weight: 300 !important; }
.statspage .hchips { display: flex; gap: 6px; overflow-x: auto; margin: 0 0 8px; padding: 2px 0; scrollbar-width: none; }
.statspage .hchips::-webkit-scrollbar { display: none; }
.statspage .hchips .frostchip { flex: 0 0 auto; min-height: 32px; padding: 0 12px; font-size: 14px !important; font-weight: 400 !important; }
.statspage .stbar { display: flex; gap: 8px; align-items: center; margin: 0 0 6px; }
.statspage .stseg { display: flex; flex: none; padding: 3px; gap: 2px; border-radius: 999px; background: rgba(255, 255, 255, .55); border: 1px solid rgba(23, 48, 31, .1); }
.statspage .stseg button { min-height: 32px; padding: 0 11px; border: 0; border-radius: 999px; background: transparent; box-shadow: none; font-size: 13.5px !important; font-weight: 400 !important; color: #4a5866; }
.statspage .stseg button.sel { background: rgba(255, 255, 255, .95); color: #1f2d38; box-shadow: 0 1px 4px rgba(20, 40, 60, .12); }
.statspage select.stbl { flex: 1; min-width: 0; height: 38px; padding: 0 10px; border-radius: 999px; border: 1px solid rgba(23, 48, 31, .12); background: rgba(255, 255, 255, .72);
  font: inherit; font-size: 13.5px; font-weight: 400; color: #33424f; -webkit-appearance: none; appearance: none; text-overflow: ellipsis; }
.statspage .stsub { margin: 2px 4px 8px; font-size: 12.5px; font-weight: 300; color: #3f4e5b; }
.statspage .stcard { background: rgba(255, 255, 255, .8); border: 1px solid rgba(23, 48, 31, .08); border-radius: 20px; padding: 12px 10px 10px; margin: 0 0 12px; }
.statspage .sth { font-size: 16px; font-weight: 400; color: #23313d; margin: 0 4px 8px; }
.statspage .stnote { font-size: 11.5px; font-weight: 300; line-height: 1.4; color: #6a7783; margin: 8px 4px 0; }
.statspage .stnone p:first-child { font-size: 16px; font-weight: 300; margin: 6px 4px; color: #2b3944; }
.statspage .stlegend { display: flex; flex-wrap: wrap; gap: 5px; margin: 0 0 6px; }
.statspage .stleg { display: inline-flex; align-items: center; gap: 5px; min-height: 30px; padding: 0 9px; border-radius: 999px; border: 1px solid rgba(23, 48, 31, .12);
  background: #fff; box-shadow: none; font-size: 12px !important; font-weight: 400 !important; color: #33424f; }
.statspage .stleg i { width: 10px; height: 10px; border-radius: 50%; background: var(--c); border: 1.5px solid var(--c); box-sizing: border-box; }
.statspage .stleg.off { color: #a3adb6; background: rgba(255, 255, 255, .5); }
.statspage .stleg.off i { background: transparent; border-color: #c3cad1; }
.statspage svg.stchart { display: block; width: 100%; height: auto; overflow: visible; touch-action: manipulation; }
.statspage .stgrid { stroke: #e6eaee; stroke-width: 1; }
.statspage .stzero { stroke: #8f9aa5; stroke-width: 1; stroke-dasharray: 4 3; }
.statspage .sty, .statspage .stx { font-size: 10.5px; font-weight: 300; fill: #6d7a86; }
.statspage .stline { fill: none; stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; }
.statspage .stdot { stroke: #fff; stroke-width: 1.2; }
.statspage .stdot.on { stroke-width: 1.6; }
.statspage .stsel { stroke: #9aa6b2; stroke-width: 1; stroke-dasharray: 2 3; }
.statspage .sthit { fill: transparent; cursor: pointer; }
.statspage .stempty { font-size: 12px; font-weight: 300; color: #7b8792; text-align: center; margin: -110px 0 96px; }
.statspage .sttip { margin: 8px 2px 0; padding: 8px 10px; border-radius: 14px; background: #f5f8fa; border: 1px solid rgba(23, 48, 31, .07); font-size: 12.5px; font-weight: 400; color: #2b3944; }
.statspage .sttiph { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-weight: 400; }
.statspage .sttipx { min-width: 28px; min-height: 28px; padding: 0; border: 0; background: transparent; box-shadow: none; font-size: 18px !important; font-weight: 300 !important; color: #7b8792; }
.statspage .sttipv { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 4px; }
.statspage .sttipv span { display: inline-flex; align-items: center; gap: 5px; font-weight: 300; }
.statspage .sttipv i { width: 8px; height: 8px; border-radius: 50%; background: var(--c); }
.statspage .sttipv em { font-style: normal; font-weight: 400; }
.statspage .sttipm { margin-top: 3px; font-weight: 300; color: #6a7783; }
.statspage table.sttable { width: 100%; font-size: 14px; border-collapse: collapse; }
.statspage table.sttable th { font-size: 12px; font-weight: 400 !important; color: #6a7783; padding: 4px 6px 6px; border-bottom: 1px solid #e6eaee; }
.statspage table.sttable td { font-weight: 300 !important; color: #23313d; padding: 6px 6px; border-bottom: 1px solid #eef1f3; }
.statspage table.sttable td.num, .statspage table.sttable th.num { text-align: right; font-variant-numeric: tabular-nums; width: 82px; }
.statspage table.sttable tr:last-child td { border-bottom: 0; }
/* v116: Stats graphs – one small graph each, round picker, compare switch; light small fonts, thin borders */
.statspage .stseg#strange { display: flex; width: 100%; box-sizing: border-box; margin: 0 0 8px; }
.statspage .stseg#strange button { flex: 1; min-height: 36px; padding: 0 6px; font-size: 13.5px !important; }
.statspage .strounds { position: relative; max-height: 196px; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; margin: 0 0 8px; padding: 3px; border-radius: 16px;
  background: rgba(255, 255, 255, .6); border: 1px solid rgba(23, 48, 31, .1); }
.statspage .stri { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 38px; padding: 0 10px; margin: 0; border: 1px solid transparent; border-radius: 12px; background: transparent;
  box-shadow: none; text-align: left; font-size: 13.5px !important; font-weight: 300 !important; color: #2b3944; transform: none; }
.statspage .stri + .stri { margin-top: 1px; }
.statspage .stri.sel { background: rgba(255, 255, 255, .96); border-color: rgba(59, 130, 196, .35); box-shadow: 0 1px 4px rgba(20, 40, 60, .08); font-weight: 400 !important; }
.statspage .stri .strd { flex: none; width: 92px; color: #5c6a76; }
.statspage .stri .strc { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.statspage .stri .strs { flex: none; font-variant-numeric: tabular-nums; }
.statspage .stri .strs small { font-size: 12px; color: #6a7783; }
.statspage .stbar { flex-wrap: wrap; }
.statspage .stcmp { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 12px 0 8px; border-radius: 999px; border: 1px solid rgba(23, 48, 31, .12);
  background: rgba(255, 255, 255, .72); box-shadow: none; font-size: 13.5px !important; font-weight: 400 !important; color: #2b3944; transform: none; }
.statspage .stcmp i { position: relative; width: 30px; height: 18px; border-radius: 999px; background: #d3dae0; transition: background .15s; flex: none; }
.statspage .stcmp i::after { content: ''; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .2); transition: left .15s; }
.statspage .stcmp.on i { background: #3b82c4; }
.statspage .stcmp.on i::after { left: 14px; }
.statspage .stsec { margin: 14px 6px 6px; font-size: 13px; font-weight: 400; color: #3f4e5b; letter-spacing: .02em; }
.statspage .stsec.stsecsg { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.statspage .stsec.stsecsg select.stbl { flex: 0 1 auto; max-width: 62%; height: 36px; font-size: 13px !important; }
.statspage .stsgnote { margin: 0 6px 8px; }
.statspage .stgraph .sth { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 15px; margin-bottom: 4px; }
.statspage .stgraph .sth .stv { font-size: 12.5px; font-weight: 300; color: #5c6a76; white-space: nowrap; }
.statspage .stgraph .sth .stv em { font-style: normal; font-weight: 400; color: #23313d; }
.statspage .stavg { stroke-width: 1.3; stroke-dasharray: 5 4; opacity: .75; }
.statspage .stavgall { stroke: #8f9aa5; stroke-width: 1.3; stroke-dasharray: 3 3; }
.statspage .stline.stlight, .statspage .stline.stcmpline { stroke: #b9c3cc; }
.statspage .stline.stcmpline { stroke: #97a3ae; stroke-dasharray: 5 4; stroke-width: 1.4; }
.statspage .stdot.stlight { fill: #c4cdd5; }
.statspage .stdot.stcmpdot { fill: #fff; stroke: #97a3ae; stroke-width: 1.2; }
.statspage .stdot.sthl { stroke-width: 2; }
.statspage .stval { font-size: 10.5px; font-weight: 400; fill: #3f4e5b; }
.statspage .starea { opacity: .1; stroke: none; }
.statspage .stdist .stxs { font-size: 10px; fill: #8f9aa5; }
.statspage .stdist .stxn { font-size: 10.5px; fill: #5c6a76; }
.statspage .stn { margin: 2px 4px 0; font-size: 11.5px; font-weight: 400; color: #5c6a76; text-align: center; }
.statspage .stfew { margin: 4px 4px 0; font-size: 12.5px; font-weight: 300; color: #6a7783; }
.statspage #sttable tr.stsgrow td:first-child { color: #3f4e5b; }

/* v111/v112: percent next to the fractions in the Round stats list, e.g. 9 / 12 (75%); value never wraps mid-way */
.stxlist .stxh b { white-space: nowrap; }
.stxlist .stxh .stxp { font-style: normal; font-weight: 400; font-size: inherit; color: inherit; } /* v112: brackets, same dark colour and size as the number – not grey */
/* v113: Courses near me – soft rounded button, plain light text, thin borders */
.home .nearbtn { width: 100%; min-height: 44px; margin: 4px 0 2px; padding: 10px 14px; border: 1px solid rgba(59, 110, 159, .3); border-radius: 14px;
  background: rgba(169, 205, 240, .35); color: #0e2a44; font-size: 16px; font-weight: 400; text-align: left; box-shadow: none; }
.home .nearbox { display: flex; flex-direction: column; gap: 4px; margin: 4px 0; }
.home .nearwhy, .home .nearmsg { margin: 4px 4px 2px; font-size: 14px; font-weight: 400; line-height: 1.4; color: #2d4636; }
.home .nearerr { color: #6b3a2a; }
.home .nearok { min-height: 44px; border: 0; border-radius: 999px; padding: 11px; background: #3b6e9f; color: #fff; font-size: 16px; font-weight: 400; box-shadow: none; }
.home .nearlink { background: none; border: 0; box-shadow: none; color: #3b6e9f; font-size: 14px; font-weight: 400; padding: 6px; min-height: 34px; }
.home .nmiss { background: rgba(255, 236, 200, .6); border: 1px solid rgba(190, 140, 60, .3); border-radius: 12px; box-shadow: none; color: #6b4a14; font-size: 14px; font-weight: 400; text-align: left; padding: 8px 10px; margin: 4px 0 0; min-height: 36px; }
.gccredit { margin: 4px 6px 0; font-size: 12px; font-weight: 300; color: #5b7464; }
.gccredit a, .credits a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; }
.archivepage .credits { margin: 18px 6px 0; font-size: 12px; font-weight: 300; line-height: 1.45; color: #6b7884; text-align: center; }
/* v113 revision: tight one-line course rows like the Rounds list (name · town · holes … distance), compact tee chips with a colour dot */
.home .nearlist { max-height: 432px; overflow-y: auto; box-shadow: none; border-radius: 16px; background: rgba(255, 255, 255, .72); border: 1px solid rgba(23, 48, 31, .08); }
.home .nearlist .nearopt { display: flex; flex-direction: row; align-items: center; gap: 6px; width: 100%; min-height: 0; height: 42px; margin: 0; padding: 0 12px;
  background: transparent; border: 0; border-top: 1px solid rgba(23, 48, 31, .08); border-radius: 0; box-shadow: none; text-align: left; color: #17301f; white-space: nowrap; }
.home .nearlist .nearopt:first-child { border-top: 0; }
.home .nearlist .nearopt:active { background: rgba(47, 107, 63, .06); }
.home .nearopt b { flex: 0 0 auto; max-width: calc(100% - 62px); overflow: hidden; text-overflow: ellipsis; font-size: 14.5px; font-weight: 400; }
.home .nearopt small { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: 12px; font-weight: 300; color: #5b7464; }
.home .nearopt .nmi { flex: 0 0 auto; margin-left: auto; padding-left: 6px; font-size: 12px; font-weight: 400; color: #4b6355; font-variant-numeric: tabular-nums; }
.home .nsaved { flex: 0 0 auto; font-style: normal; font-size: 10px; font-weight: 400; line-height: 1; color: #2f6b3f; border: 1px solid rgba(47, 107, 63, .3); border-radius: 999px; padding: 2px 5px; }
.home .nearopt .nsaved + .nmi { margin-left: 4px; }
.home .nearopt .nsaved { margin-left: auto; }
.home .ntees { gap: 5px; }
.home .ntee { flex-direction: row; align-items: center; gap: 6px; min-height: 32px; padding: 4px 10px; border-radius: 10px; font-size: 14px; font-weight: 400; line-height: 1.1;
  border: 1px solid rgba(23, 48, 31, .14); background: rgba(255, 255, 255, .75); }
.home .ntee.sel { background: #1c1c1e; border-color: #1c1c1e; color: #fff; }
.home .ntee small { font-size: 11px; font-weight: 300; opacity: .8; white-space: nowrap; }
.home .ntee.naddtee { min-height: 32px; padding: 4px 10px; font-size: 13px; font-weight: 400; }
.tdot { flex: 0 0 auto; display: inline-block; width: 10px; height: 10px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .28); background: #fff; box-sizing: border-box; vertical-align: -1px; }
.tdot-none { background: #fff; border-color: #9aa0a6; }
.home .ntee.sel .tdot { border-color: rgba(255, 255, 255, .75); }
.cardpage .revtees .frostchip .tdot { margin-right: 5px; }

/* ---------- v114: tee list folds to the chosen tee; even, left-aligned one-line tee rows; roomier "Compare my shots against" ---------- */
.home .hsheet > * { flex-shrink: 0; } /* a long sheet scrolls instead of squashing its rows (the squashed select on iPhone) */
.home .ntees { flex-direction: column; flex-wrap: nowrap; gap: 4px; padding: 2px 0; }
.home .ntee { display: flex; flex-direction: row; align-items: center; justify-content: flex-start; text-align: left; white-space: nowrap; gap: 7px;
  width: 100%; max-width: 100%; box-sizing: border-box; min-height: 34px; padding: 5px 10px; overflow: hidden; }
.home .ntee .tdot { flex: 0 0 auto; }
.home .ntee .tname { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home .ntee small { flex: 0 0 auto; margin-left: auto; padding-left: 6px; }
.home .ntee.naddtee { justify-content: flex-start; }
.home .nteefold .ncaret { flex: 0 0 auto; font-style: normal; font-size: 12px; font-weight: 300; opacity: .85; margin-left: 4px; }
.home .nteefold small { margin-left: auto; }
.home .nlink { background: none !important; border: 0 !important; box-shadow: none !important; color: #3b6e9f; font-size: 14px; font-weight: 400; text-align: left; padding: 2px 6px; min-height: 30px; align-self: flex-start; }
.home .ntees.folded + .nlink + .nmiss, .home .ntees.folded + .nlink + .gccredit { margin-top: 0; }
.home .hsheet select.blsel { -webkit-appearance: none; appearance: none; box-sizing: border-box; height: 48px; min-height: 48px; line-height: normal; padding: 0 34px 0 14px;
  font-size: 17px; font-weight: 400; color: #17301f; border: 1px solid rgba(23, 48, 31, .14); border-radius: 12px; background-color: rgba(255, 255, 255, .85);
  background-image: linear-gradient(45deg, transparent 50%, #47604f 50%), linear-gradient(135deg, #47604f 50%, transparent 50%);
  background-position: calc(100% - 18px) 21px, calc(100% - 13px) 21px; background-size: 5px 5px; background-repeat: no-repeat; }

/* ---------- v115: compact hole screen – small light type, tight rows; finished shots are one tight line ---------- */
html body .roundpage.holepage { font-size: 14px; }
html body .roundpage.holepage .topbar.frost { margin: 2px 0 6px; padding: 4px 6px; }
html body .roundpage.holepage .topbar .title b { font-size: 15px !important; font-weight: 500 !important; }
html body .roundpage.holepage .topbar .title span { font-size: 12px !important; font-weight: 400 !important; line-height: 1.3; }
html body .roundpage.holepage .topbar .frostbtn { width: 38px; height: 38px; min-width: 38px; min-height: 38px; font-size: 20px; }
html body .roundpage.holepage .livebar { margin: 0 0 4px; }
html body .roundpage.holepage .livebtn { min-height: 32px; padding: 4px 12px; font-size: 13px; }
html body .roundpage.holepage .holecard.frostcard { padding: 8px 8px 10px; margin: 6px 0; border-radius: 18px; }
html body .roundpage.holepage .hc-head { padding: 0 2px 6px; align-items: center; gap: 8px; }
html body .roundpage.holepage .holecard .hc-head h2 { font-size: 17px !important; font-weight: 500 !important; white-space: nowrap; }
html body .roundpage.holepage .hmeta { display: flex; align-items: center; justify-content: flex-end; gap: 0; font-size: 13px; font-weight: 400; color: var(--soft-ink2, #4a5a6a); flex-wrap: wrap; }
html body .roundpage.holepage .hmeta > * + *::before { content: '·'; margin: 0 7px; opacity: .6; }
html body .roundpage.holepage .hpar { font-size: 13px; font-weight: 500; color: var(--soft-ink, #1d2a36); }
html body .roundpage.holepage .holecard button.hparbtn { min-height: 32px; padding: 0 10px; border-radius: 10px; font-size: 13px; font-weight: 500; box-shadow: none; }
html body .roundpage.holepage .hparbtn small { font-size: 11px; opacity: .6; margin-left: 2px; }
html body .roundpage.holepage .parpick { display: inline-flex; align-items: center; gap: 4px; }
html body .roundpage.holepage .parpick .plbl { margin-right: 2px; }
html body .roundpage.holepage .holecard .parpick button { min-width: 34px; min-height: 34px; height: 34px; padding: 0; border-radius: 10px; font-size: 14px; font-weight: 400; box-shadow: none; }
html body .roundpage.holepage .holecard .pinbtn { min-height: 34px; margin: 6px 0 2px; padding: 4px 10px; border-radius: 12px; font-size: 13px !important; font-weight: 400 !important; box-shadow: none; }
html body .roundpage.holepage .pinbtn small { font-size: 12px; font-weight: 400; }
/* tight lines */
html body .roundpage.holepage .thead, html body .roundpage.holepage .tline { display: grid; grid-template-columns: 18px 50px minmax(0, .7fr) minmax(0, 1.7fr) 48px; align-items: center; column-gap: 5px; }
html body .roundpage.holepage .thead { padding: 8px 6px 3px; font-size: 11px; font-weight: 400; letter-spacing: .05em; text-transform: uppercase; color: var(--soft-ink2, #5b6b7a); border-bottom: 1px solid rgba(60, 80, 100, .12); }
html body .roundpage.holepage .thead span:last-child, html body .roundpage.holepage .t-s { text-align: right; }
html body .roundpage.holepage .holecard button.tline, html body .roundpage.holepage .tline { width: 100%; min-height: 34px; height: auto; margin: 0; padding: 4px 6px; border: 0; border-bottom: 1px solid rgba(60, 80, 100, .1); border-radius: 0;
  background: transparent; box-shadow: none; text-align: left; font-size: 13px; font-weight: 400; color: var(--soft-ink, #1d2a36); line-height: 1.2; }
html body .roundpage.holepage .holecard button.tline:active { background: rgba(255, 255, 255, .5); }
html body .roundpage.holepage .holecard button.tline.bad { background: rgba(255, 236, 200, .55); border-radius: 8px; }
html body .roundpage.holepage .tline > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html body .roundpage.holepage .t-n { color: var(--soft-ink2, #5b6b7a); }
html body .roundpage.holepage .tdash { font-style: normal; opacity: .45; }
html body .roundpage.holepage .tline > span.t-l { display: flex; align-items: center; gap: 4px; }
html body .roundpage.holepage .tlw { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html body .roundpage.holepage .tto { font-style: normal; font-size: 12px; color: var(--soft-ink2, #5b6b7a); }
html body .roundpage.holepage .tpen { flex-shrink: 0; }
html body .roundpage.holepage .tpen { font-style: normal; font-size: 11px; color: #a4424c; }
html body .roundpage.holepage .sgchip { display: inline-block; min-width: 42px; padding: 2px 5px; border-radius: 7px; text-align: center; font-size: 12px; font-weight: 500; font-variant-numeric: tabular-nums; }
html body .roundpage.holepage .sgchip.pos { background: rgba(76, 175, 110, .2); color: #1f6b3a; }
html body .roundpage.holepage .sgchip.neg { background: rgba(214, 90, 100, .18); color: #9c2f3b; }
html body .roundpage.holepage .sgchip.zero, html body .roundpage.holepage .sgchip.lay { background: rgba(120, 135, 150, .14); color: #4f5f6e; }
/* the shot being entered */
html body .roundpage.holepage .srow { grid-template-columns: 26px 70px minmax(0, 1fr) 42px 38px 38px; gap: 4px; padding: 4px 0 0; }
html body .roundpage.holepage .srow.shead { padding-top: 8px; font-size: 11px !important; font-weight: 400 !important; letter-spacing: .04em; }
html body .roundpage.holepage .srow.shead .c-d { white-space: nowrap; font-size: 10.5px; letter-spacing: .02em; }
html body .roundpage.holepage .srow .c-n { min-height: 38px; height: 38px; font-size: 13px; font-weight: 400; border-radius: 10px; box-shadow: none; }
html body .roundpage.holepage .c-d input { width: 46px; height: 38px; font-size: 16px; font-weight: 400; border-radius: 10px; box-shadow: none; }
html body .roundpage.holepage .c-d .u { font-size: 11px; }
html body .roundpage.holepage .srow select { height: 38px; font-size: 14px; font-weight: 400; border-radius: 10px; box-shadow: none; background-position: calc(100% - 10px) 16px, calc(100% - 5px) 16px; }
html body .roundpage.holepage .srow .dirbtn { height: 38px; min-height: 38px; font-size: 18px; border-radius: 10px; box-shadow: none; }
html body .roundpage.holepage .c-p .pen { width: 38px; height: 38px; min-height: 38px; font-size: 12px; font-weight: 500; box-shadow: none; }
html body .roundpage.holepage .srow .del { width: 38px; height: 38px; min-width: 38px; min-height: 38px; font-size: 15px; border-radius: 10px; }
html body .roundpage.holepage .clubrow { gap: 10px; padding: 4px 0 4px 30px; }
html body .roundpage.holepage .clubrow .clublbl { font-size: 12px; }
html body .roundpage.holepage .clubrow select { min-height: 36px; height: 36px; font-size: 14px; border-radius: 10px; box-shadow: none; }
html body .roundpage.holepage .clubrow .layup { min-height: 36px; font-size: 13px; font-weight: 400; gap: 5px; }
html body .roundpage.holepage .clubrow .layup input { width: 20px; height: 20px; }
html body .roundpage.holepage .clubrow .layup small { font-size: 11px; }
html body .roundpage.holepage .clubrow .holeout { padding: 0 10px 0 6px; border-radius: 18px; }
html body .roundpage.holepage .sinfo { font-size: 12px; font-weight: 400; padding: 0 4px 4px 30px; border-bottom: 0; }
html body .roundpage.holepage .sinfo:empty { display: none; }
html body .roundpage.holepage .sinfo b { font-weight: 500; }
html body .roundpage.holepage .rowmenu button { min-height: 34px; font-size: 13px; font-weight: 400; }
/* count, Say it, Add Shot, Finish, buttons under the card */
html body .roundpage.holepage .countrow { min-height: 44px; margin-top: 6px; }
html body .roundpage.holepage .count { font-size: 13px; font-weight: 400; padding: 0 4px; }
html body .roundpage.holepage .holecard .micbtn { min-height: 38px; padding: 0 14px 0 10px; gap: 6px; font-size: 14px; font-weight: 500; box-shadow: 0 2px 8px rgba(30, 60, 100, .14); }
html body .roundpage.holepage .micbtn .micico { width: 18px; height: 18px; }
html body .roundpage.holepage button.big, html body .roundpage.holepage .holecard button.big, html body .roundpage.holepage > button.big { min-height: 42px; margin: 5px 0; padding: 6px 12px; font-size: 15px !important; font-weight: 400 !important; border-radius: 14px; }
html body .roundpage.holepage .addshot { box-shadow: 0 2px 8px rgba(60, 110, 170, .16) !important; }
html body .roundpage.holepage .hint { font-size: 12px; font-weight: 400; padding: 4px 4px 0; }
html body .roundpage.holepage .hole-done { font-size: 14px; font-weight: 400; padding: 6px 4px; }
html body .roundpage.holepage .row.sub { margin-top: 8px; } html body .roundpage.holepage .row.sub button { min-height: 38px; font-size: 14px; font-weight: 400; }
html body .roundpage.holepage button.discard { min-height: 38px; font-size: 14px; }
html body .roundpage.holepage .help { font-size: 12px; }
html body .roundpage.holepage .srow.shead .c-n { height: auto; min-height: 0; border: 0; background: none; }
/* v118: Club performance – Quick-view tiles, a clean fairway diagram and light cards (like the v116 Stats graphs) */
.mapview .clubbtns button { min-height: 40px; font-size: 14px !important; font-weight: 400 !important; padding: 2px 4px; }
.mapview .clubbtns button small { color: #6d7a86; font-size: 11px; font-weight: 400 !important; }
.mapview .clubqv { margin: 8px 0 12px; }
.mapview .clubqv .qvu { font-style: normal; font-size: 13px; font-weight: 300; }
.mapview .clubqv .qvsg { font-size: 12px; font-weight: 400; }
.mapview .clubqv b .pos { color: #2f7d4a; } .mapview .clubqv b .neg { color: #b8504a; }
.mapview .clubcard { background: rgba(255, 255, 255, .8); border: 1px solid rgba(23, 48, 31, .08); border-radius: 20px; padding: 12px 10px 10px; margin: 0 0 12px; }
.mapview .clubcard .cch { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 15px; font-weight: 400; color: #23313d; margin: 0 2px 6px; }
.mapview .clubcard .ccv { font-size: 12.5px; font-weight: 300; color: #5c6a76; white-space: nowrap; }
.mapview .clubcard .ccv em { font-style: normal; font-weight: 400; color: #23313d; }
.mapview .clubcard svg { display: block; width: 100%; height: auto; }
.mapview .clubcard .ccnote { font-size: 11.5px; font-weight: 300; line-height: 1.4; color: #6a7783; margin: 6px 4px 0; }
.mapview .clubcard .stat-grid { margin-top: 8px; }
.mapview .clubcard .legend { font-size: 12px; font-weight: 300; }
.clubfw .cfwh { font-size: 11px; font-weight: 400; fill: #5c6a76; letter-spacing: .02em; }
.clubfw .cfwp { font-size: 24px; font-weight: 300; fill: #23313d; }
.clubfw #cfwpF { fill: #2f7d4a; }
.clubfw .cfwn { font-size: 10.5px; font-weight: 300; fill: #6d7a86; }
.clubfw .cfwedge { stroke: #a9c4a0; stroke-width: 1; }
.mapview .clubwarn { border-width: 1px; border-color: rgba(184, 80, 74, .35); background: rgba(255, 236, 232, .7); color: #8a3a33; font-weight: 400 !important; font-size: 14px; }
.mapview .clubwarn b { font-weight: 500; }
.mapview .clubtab { font-size: 13px; font-weight: 300; }
.mapview .clubempty { margin: 14px 4px; padding: 14px; border-radius: 18px; background: rgba(255, 255, 255, .7); border: 1px solid rgba(23, 48, 31, .08); font-size: 14px; font-weight: 300; color: #3f4e5b; line-height: 1.45; }
.mapview .clubsum { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin: 8px 2px 0; font-size: 15px; font-weight: 300; }
.mapview .clubsum b, .mapview .clubcard .cch b { font-weight: 400 !important; }
.mapview .clubsum .infobtn, .mapview .clubcard .cch .infobtn, .mapview .clubh3 .infobtn, .mapview .clubwarn .infobtn, .mapview .clubempty .infobtn { min-height: 32px; min-width: 32px; margin: -6px 0 -6px 2px; vertical-align: middle; }
.mapview .clubsum .infobtn span, .mapview .clubcard .cch .infobtn span, .mapview .clubh3 .infobtn span, .mapview .clubwarn .infobtn span, .mapview .clubempty .infobtn span { width: 18px; height: 18px; font: italic 400 11px/17px Georgia, serif; border-color: #b3bdc6; color: #5c6a76; }
.mapview .clubsum .infobtn[aria-expanded="true"] span, .mapview .clubcard .infobtn[aria-expanded="true"] span, .mapview .clubh3 .infobtn[aria-expanded="true"] span, .mapview .clubwarn .infobtn[aria-expanded="true"] span, .mapview .clubempty .infobtn[aria-expanded="true"] span { background: #5c6a76; color: #fff; }
.mapview .clubcard .cch > span:first-child { display: inline-flex; align-items: center; }
.mapview .tippop[id^="tip-club"] { margin: 4px 0 8px; padding: 8px 10px; font-size: 12px; font-weight: 300; line-height: 1.45; color: #3f4e5b; background: rgba(246, 248, 250, .95); border: 1px solid rgba(23, 48, 31, .08); border-radius: 12px; }
.mapview .tippop[id^="tip-club"] b { font-weight: 500; }
.mapview .clubh3 { display: flex; align-items: center; gap: 2px; font-size: 15px !important; font-weight: 400 !important; }
.mapview .clubqv .qv { padding: 9px 4px 8px; }
.mapview .clubtab b, .mapview .clubtab th { font-weight: 400 !important; }
.mapview .clubtab th { color: #6d7a86; font-size: 11.5px; }
.mapview #clubrank tr.cur td { background: rgba(59, 130, 196, .08); }
.mapview .clubwarn b { font-weight: 500 !important; }
/* v118: Club performance dialog chrome – small, light, segmented (round-page maps keep their own look for now) */
.mapview.clubview { padding-top: calc(env(safe-area-inset-top) + 8px); }
.mapview.clubview .maphead b { font-size: 16px !important; font-weight: 400 !important; color: #23313d; letter-spacing: -.1px; }
.mapview.clubview .maphead .close { min-height: 32px; padding: 2px 10px; font-size: 13px !important; font-weight: 300 !important; color: #3b6f9e; background: transparent !important; border: 1px solid rgba(23, 48, 31, .12) !important; border-radius: 10px; }
.mapview.clubview .seg { gap: 2px; padding: 2px; margin: 8px 0 4px; background: #eef1f3; border-radius: 10px; }
.mapview.clubview .seg button { min-height: 30px !important; padding: 2px 6px; font-size: 12.5px !important; font-weight: 300 !important; color: #4b5866 !important; background: transparent !important; border: 0 !important; border-radius: 8px; box-shadow: none; }
.mapview.clubview .seg button.sel { background: #fff !important; color: #23313d !important; font-weight: 400 !important; box-shadow: 0 1px 2px rgba(23, 48, 31, .12); }
.mapview.clubview .seg button:disabled { color: #b7c0c8 !important; }
.mapview.clubview .clubbtns { display: grid; grid-template-columns: repeat(6, 1fr); background: transparent; padding: 0; gap: 4px; margin-top: 10px; }
.mapview.clubview .clubbtns button { min-height: 30px !important; font-size: 12.5px !important; border: 1px solid rgba(23, 48, 31, .1) !important; background: #fff !important; border-radius: 8px; }
.mapview.clubview .clubbtns button.sel { border-color: #3b82c4 !important; background: rgba(59, 130, 196, .08) !important; color: #23313d !important; box-shadow: none; }
.mapview.clubview .clubbtns button:disabled { background: #f6f8f9 !important; border-color: rgba(23, 48, 31, .05) !important; }
.mapview.clubview .clubbtns button small { font-size: 10px; color: #8a96a1; }
.mapview.clubview h3 { font-size: 14px !important; font-weight: 400 !important; color: #23313d; margin: 14px 2px 6px; }
.mapview.clubview .clubqv { gap: 6px; }
.mapview.clubview .clubqv .qv { border-radius: 14px; }
.mapview.clubview .clubqv .qvl { font-size: 11.5px; font-weight: 300; color: #5c6a76; }
.mapview.clubview .clubqv small { font-size: 11px; font-weight: 300; color: #6d7a86; }
.mapview.clubview .clubqv .qvsg { font-size: 11px !important; font-weight: 300; color: #6d7a86; font-style: normal; }
.mapview.clubview .stat-grid .stat b, .mapview.clubview .stat-grid b { font-size: 15px !important; font-weight: 300 !important; }
.mapview.clubview .stat-grid .stat, .mapview.clubview .stat-grid span { font-size: 11.5px; font-weight: 300; }
.mapview.clubview .clubwarn { font-size: 12.5px !important; font-weight: 300 !important; padding: 6px 10px; border-radius: 10px; border-width: 1px; }
.mapview.clubview .clubtab { font-size: 12.5px; }
.mapview.clubview .clubtab td, .mapview.clubview .clubtab th { padding: 5px 4px; border-bottom: 1px solid #edf0f2; }
.mapview.clubview .legend { font-size: 11.5px; font-weight: 300; gap: 4px 10px; }
.mapview.clubview .legend .dot { width: 9px; height: 9px; border-width: 1px; }
.mapview.clubview > button.big[data-act="mapclose"] { min-height: 40px !important; margin: 16px 0 8px; font-size: 13.5px !important; font-weight: 300 !important; color: #3b6f9e !important; background: transparent !important; border: 1px solid rgba(23, 48, 31, .12) !important; border-radius: 12px; box-shadow: none !important; }
.mapview.clubview #clubcells { gap: 6px; margin-top: 8px; }
.mapview.clubview #clubcells .stat { padding: 7px 10px; border-radius: 12px; border: 1px solid rgba(23, 48, 31, .08); background: rgba(246, 248, 250, .9); box-shadow: none; }
.mapview.clubview #clubcells .stat b { font-size: 15px !important; font-weight: 300 !important; color: #23313d; }
.mapview.clubview #clubcells .stat span { display: block; font-size: 11px !important; font-weight: 300 !important; text-transform: none !important; letter-spacing: 0 !important; color: #6d7a86; }
.mapview .clubdist { display: block; margin: 2px 0 0; overflow: visible; }
.mapview .clubdist .cdl { font-size: 11px; font-weight: 300; fill: #6d7a86; }
.mapview .clubdist .cdmean { font-size: 11.5px; font-weight: 400; fill: #23313d; }
.mapview .clubdist .cdt { font-size: 10.5px; font-weight: 300; fill: #6d7a86; }
.mapview .clubdist .cdax { font-size: 10.5px; font-weight: 300; fill: #8a96a1; }
.mapview .clubdistsum { margin: 2px 2px 0; text-align: center; font-variant-numeric: tabular-nums; }
/* v119: Club performance lines readable on a phone */
.clubfw .cfwedge { stroke: #7fa572; stroke-width: 1.5; }
.mapview .clubdist .cdg { stroke: #dde3e8; }
.mapview .clubdist .cdt { font-size: 11px; fill: #55636f; }
.mapview .clubdist .cdax { font-size: 11px; fill: #6d7a86; }
.clubfw .cfwn { fill: #5c6a76; }
/* v121: Proximity page – same small, light look as Club performance (.mapview.proxview only; the round-page maps and Compare keep their look) */
.mapview.proxview .proxsum { margin-top: 8px; }
.mapview.proxview .proxsum .infobtn, .mapview.proxview .proxleg .infobtn { min-height: 32px; min-width: 32px; margin: -6px 0 -6px 2px; vertical-align: middle; }
.mapview.proxview .proxsum .infobtn span, .mapview.proxview .proxleg .infobtn span { width: 18px; height: 18px; font: italic 400 11px/17px Georgia, serif; border-color: #b3bdc6; color: #5c6a76; }
.mapview.proxview .proxsum .infobtn[aria-expanded="true"] span, .mapview.proxview .proxleg .infobtn[aria-expanded="true"] span { background: #5c6a76; color: #fff; }
.mapview .tippop[id^="tip-prox"] { margin: 4px 0 8px; padding: 8px 10px; font-size: 12px; font-weight: 300; line-height: 1.45; color: #3f4e5b; background: rgba(246, 248, 250, .95); border: 1px solid rgba(23, 48, 31, .08); border-radius: 12px; }
.mapview .tippop[id^="tip-prox"] b { font-weight: 500 !important; }
.mapview .tippop[id^="tip-prox"] p { margin: 8px 0 0; }
.mapview .tippop[id^="tip-prox"] .legend { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; margin: 0; font-size: 12px; font-weight: 300; }
.mapview .tippop[id^="tip-prox"] .legend span { display: flex; align-items: flex-start; gap: 6px; }
.mapview .tippop[id^="tip-prox"] .legend .sw { flex: none; width: 14px; height: 10px; margin-top: 3px; border-radius: 3px; }
.mapview.proxview .proxnote { margin: 2px 2px 0; font-size: 11.5px; font-weight: 300; color: #6d7a86; }
/* four small tiles in one row */
.mapview.proxview .proxqv { grid-template-columns: repeat(4, 1fr); gap: 5px; margin: 8px 0 6px; }
.mapview.proxview .proxqv .qv { padding: 7px 2px 6px; border-radius: 12px; background: rgba(255, 255, 255, .8); border: 1px solid rgba(23, 48, 31, .08); }
.mapview.proxview .proxqv .qvl { font-size: 11px; letter-spacing: 0; }
.mapview.proxview .proxqv b { font-size: 17px !important; font-weight: 300 !important; line-height: 1.2; color: #23313d; white-space: nowrap; }
.mapview.proxview .proxqv small { font-size: 10.5px; }
.mapview.proxview .clubh3 { margin: 10px 2px 2px; }
.mapview.proxview .proxlbl { margin: 8px 2px 0; font-size: 11.5px; font-weight: 300; color: #6d7a86; }
/* distance and lie chips: 6 across, thin borders, pale blue when picked */
.mapview.proxview .proxrail { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; flex: none; margin: 4px 0 0; }
.mapview.proxview .proxrail button, .mapview.proxview .liechips .liebtn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; min-height: 34px !important; height: auto; margin: 0; padding: 2px 2px;
  border: 1px solid rgba(23, 48, 31, .1) !important; border-radius: 8px; background: #fff !important; color: #23313d !important; box-shadow: none !important; font-size: 12.5px !important; font-weight: 300 !important; line-height: 1.15; width: auto; }
.mapview.proxview .proxrail button b { font-size: 12.5px !important; font-weight: 400 !important; }
.mapview.proxview .proxrail button small, .mapview.proxview .liechips .liebtn small { font-size: 10px !important; font-weight: 300 !important; color: #8a96a1 !important; }
.mapview.proxview .proxrail button.sel, .mapview.proxview .liechips .liebtn.sel { border-color: #3b82c4 !important; background: rgba(59, 130, 196, .08) !important; color: #23313d !important; box-shadow: none !important; }
.mapview.proxview .proxrail button.sel small, .mapview.proxview .liechips .liebtn.sel small { color: #3b6f9e !important; }
.mapview.proxview .proxrail button:disabled, .mapview.proxview .liechips .liebtn:disabled { background: #f6f8f9 !important; border-color: rgba(23, 48, 31, .05) !important; color: #b7c0c8 !important; }
.mapview.proxview .proxrail button:disabled small, .mapview.proxview .liechips .liebtn:disabled small { color: #c5ccd2 !important; }
.mapview.proxview .liechips { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; margin: 3px 0 8px; }
.mapview.proxview .liechips .liebtn { flex: none; }
.mapview.proxview #proxwarn .warnmsg { margin: 4px 0; padding: 6px 10px; font-size: 12.5px !important; font-weight: 300 !important; border-width: 1px; border-radius: 10px; }
.mapview.proxview .proxwrap { display: block; margin-top: 2px; }
.mapview.proxview .proxwrap svg { display: block; width: 100%; height: auto; border-radius: 14px; border: 1px solid rgba(23, 48, 31, .08); }
.mapview.proxview .proxleg { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 12px; margin: 6px 2px 0; font-size: 11.5px; font-weight: 300; color: #5c6a76; }
.mapview.proxview .proxleg span { display: inline-flex; align-items: center; gap: 4px; }
.mapview.proxview .proxleg .infobtn { margin-left: auto; }
.mapview.proxview .legend .ln.dash { width: 16px; height: 0; border-top: 1.5px dashed #d64552; background: none; }
.mapview.proxview .dirtab { font-size: 12.5px; font-weight: 300; }
.mapview.proxview .dirtab td, .mapview.proxview .dirtab th { font-size: 12.5px; padding: 5px 4px; border-bottom: 1px solid #edf0f2; font-weight: 300 !important; }
.mapview.proxview .dirtab th { font-weight: 400 !important; color: #6d7a86; font-size: 11.5px; }
.mapview.proxview .lietab tr.sel td { background: rgba(59, 130, 196, .08); }
.mapview.proxview .lietab tr.warn td { color: #8a3a33; }
/* the map: same shapes, thin crisp outlines, flat soft colours, small light labels */
.mapview.proxview #proxmap .pbg { fill: #eef5ea; }
.mapview.proxview #proxmap .pgreen { fill: #8fc283; stroke: #3f7a45; stroke-width: 1.5; }
.mapview.proxview #proxmap .pring { stroke: #fff; stroke-width: 1; stroke-opacity: .8; }
.mapview.proxview #proxmap .pring2 { stroke-width: 1.5; stroke-opacity: .95; }
.mapview.proxview #proxmap text.ring { font-size: 9.5px; font-weight: 500; fill: #fff; }
.mapview.proxview #proxmap .phole { fill: #23313d; r: 3.5px; }
.mapview.proxview #proxmap .ppole { stroke: #23313d; stroke-width: 1.5; }
.mapview.proxview #proxmap .pflag { fill: #d9505c; }
.mapview.proxview #proxmap .pdir { font-size: 10.5px; font-weight: 400; fill: #5c6a76; letter-spacing: .04em; }
.mapview.proxview #proxmap .pnodir { font-size: 10px; }
.mapview.proxview #proxmap .lie-rough { fill: #a7cf96; stroke: #6f9f5f; stroke-width: 1.5; }
.mapview.proxview #proxmap .lie-fw { fill: #cfe9bd; stroke: #7fb06c; stroke-width: 1.5; }
.mapview.proxview #proxmap .lie-mow { fill: #ffffff; opacity: .28; }
.mapview.proxview #proxmap #lie-sand { fill: #f3e6b8; stroke: #c9ab5a; stroke-width: 1.5; }
.mapview.proxview #proxmap #lie-other { fill: #7fa477; stroke: #5d8456; stroke-width: 1.5; }
.mapview.proxview #proxmap .lie-tree { fill: #5d8456; }
.mapview.proxview #proxmap #lie-tee { fill: #e6f6dc; stroke: #7fb06c; stroke-width: 1.5; }
.mapview.proxview #proxmap .liet { font-size: 9px; font-weight: 500; letter-spacing: .06em; fill: #2f5a33; }
.mapview.proxview #proxmap .tracer { stroke-width: 1.75; stroke-opacity: .7; }
.mapview.proxview #proxmap .xstart { stroke-width: 1.5; r: 3.5px; }
.mapview.proxview #proxmap circle.xdot { stroke: #fff; stroke-width: 1.5; r: 5.5px; }
.mapview.proxview #proxmap g.xdot path, .mapview.proxview #proxmap path.xdot { stroke-width: 1.5; }
.mapview.proxview #proxmap g.xdot path { stroke: #fff; }
.mapview.proxview #proxmap g.xdot text { font-size: 10px; font-weight: 500; }
.mapview.proxview #proxmap .xlbl { font-size: 10px; font-weight: 500; stroke-width: 2.5; }
.mapview.proxview #proxmap .d1halo { stroke-width: 3; stroke-opacity: .6; }
.mapview.proxview #proxmap .d1line { stroke: #d64552; stroke-width: 1.5; stroke-dasharray: 6 4; }
.mapview.proxview #proxmap .d1lab { font-size: 10px; font-weight: 500; fill: #b8323f; stroke-width: 2.5; }
.mapview .tippop[id^="tip-prox"] .legend .ln.dash { flex: none; width: 14px; height: 0; margin-top: 8px; border-top: 1.5px dashed #d64552; background: none; }
.mapview .tippop[id^="tip-prox"] .legend .dot { flex: none; width: 9px; height: 9px; margin-top: 4px; border-width: 1px; }
.mapview .tippop[id^="tip-prox"] .legend .star { font-size: 12px; line-height: 1.2; }
.mapview .tippop[id^="tip-prox"] .legend svg { margin-top: 2px; }
/* v122: Proximity page – same tight layout, richer colours and a touch bolder type (300→400, 400→500); round-page maps, Club performance and Compare unchanged */
.mapview.proxview .maphead b { font-weight: 500 !important; color: #1b2733; }
.mapview.proxview .maphead .close { font-weight: 400 !important; color: #1f66b3; border-color: rgba(31, 102, 179, .35) !important; }
.mapview.proxview .seg { background: #e6ebef; }
.mapview.proxview .seg button { font-weight: 400 !important; color: #3a4754 !important; }
.mapview.proxview .seg button.sel { font-weight: 500 !important; color: #1b2733 !important; box-shadow: 0 1px 2px rgba(23, 48, 31, .18); }
.mapview.proxview .clubh3, .mapview.proxview h3 { font-weight: 500 !important; color: #1b2733; }
.mapview.proxview .mapsum, .mapview.proxview .mapsum b { font-weight: 400 !important; color: #1b2733; }
.mapview.proxview .proxnote, .mapview.proxview .proxlbl { font-weight: 400; color: #55636f; }
.mapview.proxview .proxqv .qv { background: #fff; border-color: rgba(23, 48, 31, .14); }
.mapview.proxview .proxqv .qvl { font-weight: 400 !important; color: #45525e; }
.mapview.proxview .proxqv b { font-weight: 400 !important; color: #1b2733; }
.mapview.proxview .proxqv small { font-weight: 400 !important; color: #55636f; }
.mapview.proxview .proxrail button, .mapview.proxview .liechips .liebtn { font-weight: 400 !important; color: #1b2733 !important; border-color: rgba(23, 48, 31, .16) !important; }
.mapview.proxview .proxrail button b { font-weight: 500 !important; }
.mapview.proxview .proxrail button small, .mapview.proxview .liechips .liebtn small { font-weight: 400 !important; color: #6b7884 !important; }
.mapview.proxview .proxrail button.sel, .mapview.proxview .liechips .liebtn.sel { border-color: #1f73c9 !important; background: rgba(31, 115, 201, .12) !important; }
.mapview.proxview .proxrail button.sel small, .mapview.proxview .liechips .liebtn.sel small { color: #1f66b3 !important; }
.mapview.proxview .proxleg { font-weight: 400; color: #3f4c58; }
.mapview.proxview .legend .ln.dash { border-top-color: #e0313f; }
.mapview.proxview .dirtab, .mapview.proxview .dirtab td { font-weight: 400 !important; color: #1b2733; }
.mapview.proxview .dirtab th { font-weight: 500 !important; color: #55636f; }
.mapview.proxview .lietab tr.sel td { background: rgba(31, 115, 201, .12); }
.mapview.proxview .lietab tr.warn td { color: #b3261e; }
.mapview.proxview > button.big[data-act="mapclose"] { font-weight: 400 !important; color: #1f66b3 !important; }
.mapview .tippop[id^="tip-prox"] { font-weight: 400; color: #2f3c48; }
.mapview .tippop[id^="tip-prox"] .legend { font-weight: 400; }
.mapview .tippop[id^="tip-prox"] .legend .ln.dash { border-top-color: #e0313f; }
.mapview.proxview .proxsum .infobtn span, .mapview.proxview .proxleg .infobtn span { border-color: #8d99a5; color: #3f4c58; }
/* the map: richer greens and sand, crisp outlines, labels a touch bolder */
.mapview.proxview #proxmap .pbg { fill: #e2f0da; }
.mapview.proxview #proxmap .pgreen { fill: #5cb85c; stroke: #2e7d32; }
.mapview.proxview #proxmap .pring { stroke-opacity: .85; }
.mapview.proxview #proxmap text.ring { font-weight: 600; }
.mapview.proxview #proxmap .phole { fill: #1b2733; }
.mapview.proxview #proxmap .ppole { stroke: #1b2733; }
.mapview.proxview #proxmap .pflag { fill: #e0313f; }
.mapview.proxview #proxmap .pdir { font-weight: 500; fill: #3f4c58; }
.mapview.proxview #proxmap .lie-rough { fill: #7dbb64; stroke: #3f8a3a; }
.mapview.proxview #proxmap .lie-fw { fill: #b2e08f; stroke: #4f9e3e; }
.mapview.proxview #proxmap .lie-mow { opacity: .3; }
.mapview.proxview #proxmap #lie-sand { fill: #f2d785; stroke: #c29a2e; }
.mapview.proxview #proxmap #lie-other { fill: #4e8f43; stroke: #2f6b2a; }
.mapview.proxview #proxmap .lie-tree { fill: #2f6b2a; }
.mapview.proxview #proxmap #lie-tee { fill: #d2f0c0; stroke: #4f9e3e; }
.mapview.proxview #proxmap .liet { font-weight: 600; fill: #1f4a24; }
.mapview.proxview #proxmap .tracer { stroke-width: 2; stroke-opacity: .85; }
.mapview.proxview #proxmap g.xdot text, .mapview.proxview #proxmap .xlbl { font-weight: 600; }
.mapview.proxview #proxmap .d1line { stroke: #e0313f; }
.mapview.proxview #proxmap .d1lab { font-weight: 600; fill: #c62832; }
/* v123: round-page map sheets (GIR, approach misses, tee shots, putts, putt misses / lag / all putts, pin) – same tight, vibrant look as the v122 Proximity page.
   Page chrome comes from .clubview; .lightmap adds v122 weights/colours. SVGs are restyled by CSS on their on-screen ids only, so Compare (ids stripped) and the PDF (drawn from the raw SVG text) keep their look. */
.mapview.lightmap .maphead b { font-weight: 500 !important; color: #1b2733; }
.mapview.lightmap .maphead .close { font-weight: 400 !important; color: #1f66b3; border-color: rgba(31, 102, 179, .35) !important; }
.mapview.lightmap > button.big[data-act="mapclose"] { font-weight: 400 !important; color: #1f66b3 !important; }
.mapview.lightmap .seg { background: #e6ebef; }
.mapview.lightmap .seg button { font-weight: 400 !important; color: #3a4754 !important; }
.mapview.lightmap .seg button.sel { font-weight: 500 !important; color: #1b2733 !important; box-shadow: 0 1px 2px rgba(23, 48, 31, .18); }
.mapview.lightmap .seg button small { font-size: 10px; font-weight: 400 !important; color: #6b7884; margin-left: 2px; }
.mapview.lightmap h3 { font-size: 14px !important; font-weight: 500 !important; color: #1b2733; }
.mapview.lightmap .mapsum { margin: 6px 2px; font-size: 13px; font-weight: 400 !important; color: #1b2733; line-height: 1.35; }
.mapview.lightmap .mapsum b { font-weight: 500 !important; }
.mapview.lightmap .mapsum small { font-size: 11.5px; color: #55636f; }
.mapview.lightmap .mapsum.pmshow { font-size: 12px; color: #55636f; margin-top: -2px; }
.mapview.lightmap .fwcounts { font-size: 12.5px; margin: 2px 2px 6px; color: #1b2733; }
.mapview.lightmap .fwcounts b { font-weight: 500 !important; }
.mapview.lightmap svg[id] { border-radius: 14px; border: 1px solid rgba(23, 48, 31, .1); box-shadow: none; }
/* 1st / 2nd / 3rd+ putt buttons → small chips */
.mapview.lightmap .pnrow { gap: 4px; margin: 8px 0 4px; }
.mapview.lightmap .pnrow .pnbtn { min-height: 34px; padding: 2px; border: 1px solid rgba(23, 48, 31, .16); border-radius: 8px; background: #fff; color: #1b2733; box-shadow: none; font-size: 12.5px !important; font-weight: 500 !important; line-height: 1.15; }
.mapview.lightmap .pnrow .pnbtn small { font-size: 10px; font-weight: 400; color: #6b7884; }
.mapview.lightmap .pnrow .pnbtn.sel { background: rgba(31, 115, 201, .12); color: #1b2733; border-color: #1f73c9; box-shadow: none; }
.mapview.lightmap .pnrow .pnbtn.sel small { color: #1f66b3; }
.mapview.lightmap .pnrow .pnbtn:disabled { background: #f6f8f9; border-color: rgba(23, 48, 31, .06); color: #b7c0c8; }
/* number tiles: thin-bordered, small */
.mapview.lightmap .stat-grid { gap: 6px; margin: 8px 0; }
.mapview.lightmap .stat-grid .stat { padding: 7px 10px; border-radius: 12px; border: 1px solid rgba(23, 48, 31, .14); background: #fff; box-shadow: none; }
.mapview.lightmap .stat-grid .stat b { font-size: 15px !important; font-weight: 400 !important; color: #1b2733; }
.mapview.lightmap .stat-grid .stat span { display: block; font-size: 11px !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: 0 !important; color: #55636f; }
.mapview.lightmap .lagbox { padding: 8px 10px 4px; border-radius: 12px; background: #fff; border: 1px solid rgba(23, 48, 31, .14); }
.mapview.lightmap .lagbox .lagh { font-size: 13px; font-weight: 500 !important; color: #1b2733; }
/* legends: small */
.mapview.lightmap .legend { gap: 3px 12px; margin: 6px 2px; font-size: 11.5px; font-weight: 400; color: #3f4c58; }
.mapview.lightmap .legend span { gap: 4px; }
.mapview.lightmap .legend .dot { width: 9px; height: 9px; border-width: 1px; }
.mapview.lightmap .legend .dot.num { width: 14px; height: 14px; font-size: 9px; line-height: 12px; }
.mapview.lightmap .legend .dia { width: 9px; height: 9px; border-width: 1px; font-size: 7px; }
.mapview.lightmap .legend .star { font-size: 13px; -webkit-text-stroke: 1px #1b2733; width: 12px; }
.mapview.lightmap .legend .x { font-size: 12px; width: 12px; }
.mapview.lightmap .legend .ln { width: 16px; height: 2px; }
.mapview.lightmap .legend .ln.dash { height: 0; border-top: 2px dashed #e0313f; background: none; }
.mapview.lightmap .legend .sw { width: 14px; height: 10px; }
.mapview.lightmap .legend svg { width: 14px; height: 14px; }
/* tables */
.mapview.lightmap .dirtab { font-size: 12.5px; }
.mapview.lightmap .dirtab td, .mapview.lightmap .dirtab th { font-size: 12.5px; padding: 5px 4px; border-bottom: 1px solid #edf0f2; font-weight: 400 !important; color: #1b2733; }
.mapview.lightmap .dirtab th { font-size: 11.5px; font-weight: 500 !important; color: #55636f; }
/* long notes are behind ⓘ (infoize); make that line small */
.mapview.lightmap .infowrap { font-size: 12px; font-weight: 400; color: #55636f; }
.mapview.lightmap .infobtn { min-height: 32px; min-width: 32px; }
.mapview.lightmap .infobtn span { width: 18px; height: 18px; font: italic 400 11px/17px Georgia, serif; border-color: #8d99a5; color: #3f4c58; background: #fff; }
.mapview.lightmap .infobtn[aria-expanded="true"] span { background: #3f4c58; color: #fff; }
.mapview.lightmap p.help.infotext, .mapview.lightmap p.help { font-size: 12px; font-weight: 400; color: #3f4c58; line-height: 1.45; }
/* pin overview: the 3×3 green */
.mapview.lightmap .pinlbl { font-size: 10.5px; font-weight: 500 !important; letter-spacing: .04em; color: #3f4c58; }
.mapview.lightmap .pingreen { background: #5cb85c; border: 1.5px solid #2e7d32; }
.mapview.lightmap .pingreen button { outline: 1px dashed rgba(255, 255, 255, .8); font-size: 12px; font-weight: 500 !important; text-shadow: 0 0 2px rgba(20, 60, 25, .6); }
.mapview.lightmap .pinstats button small { font-size: 10.5px; font-weight: 500 !important; }
.mapview.lightmap .pinstats .badge { min-width: 22px; height: 22px; line-height: 19px; border-radius: 11px; border-width: 1.5px; border-color: #1b2733; font-size: 12px; font-weight: 500 !important; color: #1b2733; text-shadow: none; }
.mapview.lightmap .pinstats button.has .badge { background: #1b2733; color: #fff; border-color: #fff; }
.mapview.lightmap button.big[data-act="pinseg"] { min-height: 34px !important; width: auto; padding: 0 12px; margin: 8px 0 2px; border-radius: 10px; font-size: 12.5px !important; font-weight: 400 !important; color: #1f66b3 !important; background: transparent !important; border: 1px solid rgba(31, 102, 179, .35) !important; box-shadow: none !important; }
/* shared heat-map bits on every map sheet (round maps, Club performance, Proximity) */
.mapview .heatsum { margin: 6px 2px; font-size: 12.5px; font-weight: 400; color: #1b2733; }
.mapview .heatsum b { font-weight: 500 !important; }
.mapview .heatclus { margin: 4px 2px; gap: 6px; font-size: 11.5px; font-weight: 400; color: #55636f; }
.mapview .heatclus b { font-weight: 500 !important; color: #1b2733; }
.mapview .heatclus input[type=range] { min-height: 32px; accent-color: #c62832; }
.mapview .heatnote .ramp { width: 50px; height: 8px; border-width: 1px; }
.mapview svg :is(.hotspot, .island) rect { stroke: #c62832; stroke-width: 1; fill: #fff; fill-opacity: .96; }
.mapview svg :is(.hotspot, .island) text { font-size: 10px; font-weight: 600; fill: #9b1c26; }
.mapview svg :is(.hotspot, .island) circle { stroke: #9b1c26; stroke-width: 1; }
.mapview svg :is(.hotspot, .island) line.leader { stroke: #9b1c26; stroke-width: 1; }
.mapview #heatavg circle[stroke="#000"] { stroke: #1b2733; stroke-width: 2; }
.mapview #heatavg path { stroke: #1b2733; stroke-width: 1.5; }
/* the maps: richer greens, crisp 1.5px edges, small labels a touch bolder (sizes/weights override the SVG attributes on screen only) */
.mapview.lightmap :is(#girmap, #missmap, #puttmap, #pinmap, #pmissmap) > rect:is([fill="#cfe8c4"], [fill="#d7ecd0"]) { fill: #e2f0da; }
.mapview.lightmap :is(#girmap, #missmap, #puttmap, #pinmap, #pmissmap) :is([fill="#3da33d"], [fill="#67b866"]) { fill: #5cb85c; stroke: #2e7d32; stroke-width: 1.5; }
.mapview.lightmap :is(#girmap, #puttmap, #pmissmap) circle[fill="none"][stroke="#fff"] { stroke-width: 1; stroke-opacity: .85; }
.mapview.lightmap :is(#girmap, #puttmap, #pmissmap) circle[fill="none"][stroke="#fff"]:is([stroke-width="2.5"], [stroke-width="2.2"], [stroke-width="1.6"]) { stroke-width: 1.5; stroke-opacity: 1; }
.mapview.lightmap #girmap > line[stroke="#fff"] { stroke-width: 1; stroke-opacity: .7; }
.mapview.lightmap :is(#girmap, #puttmap) text.ring { font-size: 9.5px; font-weight: 600; fill: #fff; stroke: #2e7d32; stroke-width: 1.5px; paint-order: stroke; stroke-linejoin: round; }
.mapview.lightmap #pmissmap text.ring { font-size: 9.5px; font-weight: 500; fill: #fff; stroke: #2e7d32; stroke-width: 1.5px; paint-order: stroke; stroke-linejoin: round; }
.mapview.lightmap :is(#girmap, #missmap, #puttmap, #pinmap) > text[font-weight="800"]:not(.ring), .mapview.lightmap #pmissmap > text[fill="#28402c"] { font-size: 10.5px; font-weight: 500; fill: #3f4c58; letter-spacing: .04em; }
.mapview.lightmap :is(#girmap, #missmap, #puttmap, #pinmap, #fwmap) text[font-weight="900"] { font-weight: 600; }
.mapview.lightmap :is(#girmap, #missmap, #pinmap) line[stroke="#000"][stroke-width="3"] { stroke: #1b2733; stroke-width: 1.5; }
.mapview.lightmap :is(#girmap, #missmap, #pinmap) path[fill="#d0213a"] { fill: #e0313f; }
.mapview.lightmap :is(#girmap, #missmap, #puttmap, #pinmap) circle[fill="#000"]:not([stroke]) { fill: #1b2733; }
.mapview.lightmap :is(#girmap, #missmap, #puttmap, #pinmap) :is(circle, path, rect)[stroke="#000"] { stroke: #1b2733; stroke-width: 1.5; }
/* GIR */
.mapview.lightmap #girmap circle.gdot[fill="#ffd23f"] { fill: #f5b82e; }
.mapview.lightmap #girmap text.farlbl { font-size: 10.5px; font-weight: 600; fill: #1b2733; stroke: #fff; stroke-width: 2.5px; paint-order: stroke; stroke-linejoin: round; }
/* approach misses */
.mapview.lightmap #missmap line[stroke="#8fb486"] { stroke: #8dbb84; stroke-width: 1; }
.mapview.lightmap #missmap .mcount circle { r: 12px; stroke-width: 1; }
.mapview.lightmap #missmap .mcount circle[fill="#000"] { fill: #1b2733; stroke: #1b2733; }
.mapview.lightmap #missmap .mcount circle[fill="#fff"] { stroke: #9aa7b2; }
.mapview.lightmap #missmap .mcount text { font-size: 12.5px; font-weight: 600; transform: translateY(-1.5px); transform-box: fill-box; }
.mapview.lightmap #missmap > text[font-weight="800"] { letter-spacing: .02em; }
/* putts */
.mapview.lightmap #puttmap circle.pdot2 { stroke-width: 1.5; }
.mapview.lightmap #puttmap circle.pdot2[stroke="#d0312d"] { stroke: #e0313f; stroke-width: 2; }
.mapview.lightmap #puttmap text.plbl { font-size: 10px; font-weight: 600; stroke-width: 2.5px; stroke-linejoin: round; }
.mapview.lightmap #pmissmap path.pmtr { stroke: #e0313f; }
.mapview.lightmap #pmissmap circle.pmstart[stroke="#d0312d"] { stroke: #e0313f; }
/* pin */
.mapview.lightmap #pinmap line[stroke-dasharray="5 5"] { stroke-width: 1; stroke-opacity: .85; }
.mapview.lightmap #pinmap rect[fill="#ffd23f"] { fill: #f5c542; fill-opacity: .35; }
.mapview.lightmap #pinmap circle.pdot[fill="#e0102a"] { fill: #e0313f; }
.mapview.lightmap #pinmap text:is(.plbl, .mlbl) { font-size: 10px; font-weight: 600; stroke-width: 2.5px; stroke-linejoin: round; }
/* tee shots */
.mapview.lightmap #fwmap rect[fill="#4f9a3c"] { fill: #7dbb64; stroke: #3f8a3a; stroke-width: 1.5; }
.mapview.lightmap #fwmap path[fill="#7fd16a"] { fill: #b2e08f; stroke: #4f9e3e; stroke-width: 1.5; }
.mapview.lightmap #fwmap line[stroke-dasharray="4 16"] { stroke-width: 1.5; }
.mapview.lightmap #fwmap text[font-size="11"] { font-size: 10px; font-weight: 600; }
.mapview.lightmap #fwmap ellipse[fill="#e8c766"] { fill: #f2d785; stroke: #c29a2e; stroke-width: 1.5; }
.mapview.lightmap #fwmap rect[fill="#9be08a"] { fill: #d2f0c0; stroke: #4f9e3e; stroke-width: 1.5; }
.mapview.lightmap #fwmap line[stroke-dasharray="3 6"] { stroke-width: 1; stroke-opacity: .85; }
.mapview.lightmap #fwmap text.yd { font-size: 10px; font-weight: 600; stroke: #2e6b2a; stroke-width: 2px; paint-order: stroke; stroke-linejoin: round; }
.mapview.lightmap #fwmap text[fill="#fff"][font-size="12"]:not(.yd) { font-size: 10px; font-weight: 600; fill: #1f4a24; }
.mapview.lightmap #fwmap path.tracer { stroke: #fff; stroke-width: 4.5; stroke-opacity: .55; }
.mapview.lightmap #fwmap path[stroke="#b6ff9e"] { stroke: #1e8c3a; stroke-width: 2.25; }
.mapview.lightmap #fwmap path[stroke="#ff4d5e"] { stroke: #e0313f; stroke-width: 2.25; }
.mapview.lightmap #fwmap circle.fwdot { stroke-width: 1.5; }
.mapview.lightmap #fwmap circle.fwdot[stroke="#000"] { stroke: #1b2733; }
.mapview.lightmap #fwmap circle.fwdot[stroke="#00a000"] { stroke: #1e8c3a; }
.mapview.lightmap #fwmap text.fwdot { font-size: 16px; font-weight: 600; }
.mapview.lightmap #fwmap #fwpct rect, .mapview.lightmap #fwmap g > rect[fill="#fff"] { stroke: rgba(23, 48, 31, .18); stroke-width: 1; }
.mapview.lightmap #fwmap text[font-weight="700"] { font-weight: 500; fill: #3f4c58; }
.mapview.lightmap #fwmap text.fwpct { font-size: 16px; font-weight: 600; }
.mapview.lightmap #fwmap text.fwpct[fill="#00791b"] { fill: #1e8c3a; }
.mapview.lightmap #fwmap text.fwpct[fill="#b00020"] { fill: #e0313f; }
/* Proximity: ring labels (e.g. "50 ft" sitting off the green) get a thin dark-green outline so they read on the pale background */
.mapview.proxview #proxmap text.ring { stroke: #2e7d32; stroke-width: 2px; paint-order: stroke; stroke-linejoin: round; }

/* ===== v124: Proximity page – compact controls so the green shows on screen while you pick ===== */
.mapview.proxview .proxsum { margin: 4px 2px 0; font-size: 12.5px; line-height: 1.3; min-height: 26px; }
.mapview.proxview .proxsum .infobtn { margin: -4px -4px -4px 2px; }
.mapview.proxview .proxnote { margin: 0 2px; font-size: 11px; line-height: 1.3; }
.mapview.proxview .proxqv { margin: 4px 0 2px; gap: 4px; }
.mapview.proxview .proxqv .qv { padding: 3px 2px 3px; border-radius: 10px; }
.mapview.proxview .proxqv .qvl { font-size: 10.5px; line-height: 1.2; }
.mapview.proxview .proxqv b { font-size: 15px !important; line-height: 1.15; }
.mapview.proxview .proxqv small { font-size: 10px; line-height: 1.15; }
.mapview.proxview .proxhrow { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin: 4px 2px 0; min-height: 30px; }
.mapview.proxview .proxhrow .clubh3 { margin: 0; font-size: 13px; }
.mapview.proxview .benchsel { display: inline-flex; align-items: center; gap: 5px; flex: none; }
.mapview.proxview .benchsel .ln.dash { display: inline-block; width: 14px; height: 0; border-top: 1.5px dashed #e0313f; }
.mapview.proxview .benchsel select { height: 28px; max-width: 170px; padding: 0 22px 0 8px; font: 400 12px/26px inherit; color: #1b2733; background-color: #fff; border: 1px solid rgba(23, 48, 31, .16); border-radius: 8px; -webkit-appearance: none; appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #55636f 50%), linear-gradient(135deg, #55636f 50%, transparent 50%); background-position: right 11px center, right 7px center; background-size: 4px 4px; background-repeat: no-repeat; }
.mapview.proxview .benchsel select option.nodata { color: #8a96a1; }
.mapview.proxview .proxrail { grid-template-columns: repeat(9, 1fr); gap: 3px; margin: 2px 0 0; }
.mapview.proxview .proxrail button { padding: 1px 0; }
.mapview.proxview .proxrail button b { font-size: 12px !important; }
.mapview.proxview .proxrail button small { font-size: 9.5px !important; line-height: 1.05; }
.mapview.proxview .proxctl { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 4px 2px 0; min-height: 28px; }
.mapview.proxview .proxctl .proxlbl { margin: 0; }
.mapview.proxview .heatslot .heattog { margin: 0; width: 150px; }
.mapview.proxview .heatslot .heattog button { min-height: 26px !important; font-size: 12px !important; padding: 0 6px; }
.mapview.proxview .liechips { margin: 3px 0 4px; gap: 3px; }
.mapview.proxview .liechips .liebtn { min-height: 34px !important; font-size: 12px !important; }
.mapview.proxview #proxmap .nobenchlab { font-size: 10px; font-weight: 500; fill: #3f4c58; stroke: #fff; stroke-width: 2.5px; }
.mapview.proxview .proxleg .nobench { color: #6b7884; font-style: italic; }
/* v125: Stats categories – thin-bordered header rows that open / close (chevron), per-shot graphs, drive box chart, par-curve legend; a touch bolder graph type */
.statspage .stcats { margin: 6px 0 0; }
.statspage .stcat { margin: 0 0 6px; border-radius: 16px; background: rgba(255, 255, 255, .6); border: 1px solid rgba(23, 48, 31, .1); overflow: hidden; }
.statspage .stcat.open { background: rgba(255, 255, 255, .75); }
.statspage .stcath { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 44px; margin: 0; padding: 0 12px; border: 0; border-radius: 0; background: transparent; box-shadow: none;
  text-align: left; font-size: 14.5px !important; font-weight: 400 !important; color: #23313d; transform: none; }
.statspage .stcath b { flex: none; font-weight: 500; }
.statspage .stcatsum { flex: 1; min-width: 0; text-align: right; font-size: 12px; font-weight: 300; color: #6a7783; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.statspage .stcatsum em { font-style: normal; font-weight: 400; color: #23313d; }
.statspage .stcatc { flex: none; width: 8px; height: 8px; margin: 0 2px 3px 4px; border-right: 1.6px solid #6a7783; border-bottom: 1.6px solid #6a7783; transform: rotate(45deg); transition: transform .15s; }
.statspage .stcat.open > .stcath .stcatc, .statspage .stsubcat.open > .stsubh .stcatc { transform: rotate(-135deg); margin-bottom: -3px; }
.statspage .stcatb { padding: 0 6px 6px; border-top: 1px solid rgba(23, 48, 31, .07); }
.statspage .stcatb[hidden] { display: none; }
.statspage .stcatb > .stcard { margin-top: 6px; }
.statspage .stgrp { margin: 10px 6px 0; font-size: 12px; font-weight: 400; color: #5c6a76; letter-spacing: .03em; text-transform: uppercase; }
.statspage .stparbar { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 2px 2px; }
.statspage .stparcur { min-height: 36px; padding: 0 12px; border-radius: 999px; border: 1px solid rgba(31, 115, 201, .35); background: rgba(31, 115, 201, .07); box-shadow: none;
  font-size: 13px !important; font-weight: 400 !important; color: #155ba3; transform: none; }
.statspage .stparleg { display: flex; gap: 14px; justify-content: center; margin: 6px 0 0; font-size: 12px; font-weight: 400; color: #3f4e5b; }
.statspage .stparleg span { display: inline-flex; align-items: center; gap: 6px; }
.statspage .stparleg i { width: 20px; height: 0; border-top: 2.2px solid #34495e; }
.statspage .stparleg i.dash { border-top: 1.6px dashed #97a3ae; }
.statspage .stparhint { margin: 4px 6px 0; }
.statspage .stri .stopenb { display: inline-block; margin-right: 5px; padding: 0 5px; border-radius: 6px; background: rgba(31, 115, 201, .12); color: #155ba3; font-style: normal; font-size: 10.5px; font-weight: 400; }
.statspage .stri.stopen .strd { width: auto; min-width: 92px; }
.statspage .stbox .stboxlab { font-size: 11px; fill: #3f4e5b; }
.statspage .sty, .statspage .stx { font-weight: 400; fill: #5f6c78; }
.statspage .stline { stroke-width: 2.2; }
.statspage .stgraph .sth > span:first-child { font-weight: 500; }
/* v126: Stats > Putting > Putt misses – a collapsed sub-menu at the bottom of Putting (same chevron), distance chips, the grid around the hole */
.statspage .stsubcat { margin: 8px 0 0; border-radius: 14px; background: rgba(255, 255, 255, .7); border: 1px solid rgba(23, 48, 31, .1); overflow: hidden; }
.statspage .stsubcat.open { background: rgba(255, 255, 255, .85); }
.statspage .stsubh { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 44px; margin: 0; padding: 0 10px; border: 0; border-radius: 0; background: transparent; box-shadow: none;
  text-align: left; font-size: 14px !important; font-weight: 400 !important; color: #23313d; transform: none; }
.statspage .stsubh b { flex: none; font-weight: 500; color: #1f2d38; }
.statspage .stsubb { padding: 0 4px 4px; border-top: 1px solid rgba(23, 48, 31, .08); }
.statspage .stsubb[hidden] { display: none; }
.statspage .stsubb > .stcard { margin: 6px 0 0; }
.statspage .stpmchips { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 2px 0; }
.statspage .stpmchip { min-height: 32px; padding: 0 10px; border-radius: 999px; border: 1px solid rgba(23, 48, 31, .14); background: #fff; box-shadow: none; transform: none;
  font-size: 12px !important; font-weight: 400 !important; color: #33424f; }
.statspage .stpmchip.sel { background: #3b82c4; border-color: #2f6ea8; color: #fff; }
.statspage .stpmgreen { fill: #fff; }
.statspage .stpmedgebox { fill: none; stroke: #aab4bd; stroke-width: 1; }
.statspage .stpmline { stroke: #d3d9de; stroke-width: 1; }
.statspage .stpmedge { font-size: 10px; font-weight: 500; letter-spacing: .06em; fill: #5f6c78; }
.statspage .stpmname { font-size: 10px; font-weight: 400; fill: #5f6c78; }
.statspage .stpmn { font-size: 16px; font-weight: 600; fill: #23313d; }
.statspage .stpmn.zero { fill: #a3adb6; font-weight: 400; }
.statspage .stpmhole .stpmn { font-size: 12px; font-weight: 500; }
.statspage .stpmp { font-size: 11px; font-weight: 500; fill: #4a5763; }
.statspage .stpmall { font-size: 9.5px; font-weight: 400; fill: #8f9aa5; }
.statspage .stpmnodir { color: #7b8792; font-weight: 300; }
.statspage .stpmcard .infowrap, .statspage .stpdfrow .infowrap { font-size: 12px; font-weight: 400; color: #55636f; }

/* v126 Stats PDF button + sheet */
.statspage .stpdfbtn { font-size: 13px; font-weight: 600; padding: 7px 11px; color: #5a2f9e; white-space: nowrap; }
.statspage .stpdfrow { margin: 6px 12px 10px; }
.statspage .stpdfrow .pdfsheet { margin: 0; }
/* v126 putt-miss grid: plain white boxes; white text only on the green made box */
.statspage .stpmhole .stpmn, .statspage .stpmhole .stpmp { fill: #fff; }
/* v127 ⓘ at the end of a Stats count line (same icon, small like the Proximity page's) */
.statspage .stn .infobtn.infoin { min-height: 28px; min-width: 28px; margin: -6px 0 -6px 0; vertical-align: middle; }
.statspage .stn .infobtn.infoin span { width: 18px; height: 18px; font: italic 400 11px/17px Georgia, serif; border-color: #b3bdc6; color: #5c6a76; }
.statspage .stn .infobtn.infoin[aria-expanded="true"] span { background: #345; color: #fff; }
.statspage .stn .st2nd b { font-weight: 500; }
.statspage .stn .st2nd { white-space: nowrap; }

/* v128 Help page (+ menu › Help): Get started lines, the video, the guide PDF */
.helppage { padding-bottom: calc(env(safe-area-inset-bottom) + 24px); }
.helppage .hpcard { display: block; margin: 0 0 12px; padding: 12px 14px; border: 1px solid rgba(255, 255, 255, .7); }
.helppage .hph { display: block; font-size: 15px; font-weight: 600; }
.helppage .hpsub { display: block; font-size: 12px; font-weight: 400; color: var(--frost-ink-soft, #445064); margin: 2px 0 8px; }
.helppage .hpsteps { margin: 6px 0 0; padding-left: 20px; font-size: 13px; font-weight: 400; line-height: 1.45; }
.helppage .hpsteps li { margin: 2px 0; padding-left: 2px; }
.helppage .hpsteps li::marker { color: #1f73c9; font-weight: 600; }
.helppage .hpsteps b { font-weight: 600; }
.helppage .hpvid { display: block; height: 62vh; width: auto; max-width: 100%; aspect-ratio: 780 / 1688; object-fit: contain; margin: 0 auto; border-radius: 14px; border: 1px solid rgba(23, 48, 31, .14); background: #0d1a12; }
.helppage .hpbtn { display: flex; align-items: center; justify-content: center; min-height: 44px; border-radius: 999px; border: 1px solid #2f6ea8; background: #1f73c9; color: #fff;
  font-size: 15px; font-weight: 600; text-decoration: none; -webkit-tap-highlight-color: transparent; }
.helppage .hpbtn:active { transform: scale(.98); background: #1a63ad; }

/* v129 Stats: strokes lost / gained by distance group (bars add up to the category total) */
.statspage .stbrk .stbl { font-size: 13.5px; font-weight: 400; fill: #23313d; }
.statspage .stbrk .stbv { font-size: 13.5px; font-weight: 400; fill: #23313d; }
.statspage .stbrk .stbbg { fill: rgba(0, 0, 0, .06); }
.statspage .stbrk .stbbar.neg { fill: #d2584c; } .statspage .stbrk .stbbar.pos { fill: #3f9a55; }
.statspage .stbrk .sth { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 15px; margin-bottom: 4px; }
.statspage .stbrk .sth .stv { font-size: 12.5px; font-weight: 300; color: #5c6a76; white-space: nowrap; }
.statspage .stbrk .sth .stv em { font-style: normal; font-weight: 400; color: #23313d; }

/* ---------- v136 Best vs worst: sky page, category tiles, 4-column table, one map with a Best / Worst switch ---------- */
.cmppage .frostcard { margin: 0 0 12px; padding: 10px 10px 10px; }
.cmppage .cmph { margin: 2px 2px 6px; font-size: 15px; font-weight: 600; color: #1f2d38; display: flex; align-items: center; gap: 6px; }
.cmppage .cmph .tipbtn { margin-left: auto; }
.cmppage .cmpn { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 10px 0; padding: 3px; border-radius: 999px; background: rgba(255, 255, 255, .55); border: 1px solid rgba(23, 48, 31, .1); font-size: 14px; color: #4a5866; }
.cmppage .cmpn button { min-width: 40px; min-height: 34px; padding: 0; border: 0; border-radius: 999px; background: rgba(255, 255, 255, .95); box-shadow: 0 1px 4px rgba(20, 40, 60, .12); font-size: 20px !important; font-weight: 300 !important; color: #1f2d38; }
.cmppage .cmpn button:disabled { opacity: .35; box-shadow: none; }
.cmppage .cmpn b { color: #1f2d38; }
.cmppage .cmpcols { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 12px; }
.cmppage .cmpcard { border-radius: 16px; padding: 8px 10px 6px; background: rgba(255, 255, 255, .62); border: 1px solid rgba(23, 48, 31, .1); }
.cmppage .cmpcard h3 { display: flex; align-items: baseline; justify-content: space-between; margin: 0 0 2px; font-size: 14px; font-weight: 600; }
.cmppage .cmpcard h3 small { font-size: 11px; font-weight: 400; color: #6d7a86; }
.cmppage .gbcard h3 { color: #2e7d32; } .cmppage .gwcard h3 { color: #c0263a; }
.cmppage .gbcard { border-top: 3px solid #5cb85c; } .cmppage .gwcard { border-top: 3px solid #e0313f; }
.cmppage .cmpcard .cmplist { font-size: 12.5px; }
.cmppage .cmpcard .cl-d { font-size: 11px; color: #6d7a86; }
.cmppage .cmpcard .cl-s b { font-size: 15px; font-weight: 500; }
.cmppage .cmplead { margin: 0 2px 8px; font-size: 13.5px; color: #4a5866; }
.cmppage .cmplead b { color: #1f2d38; font-weight: 600; }
.cmppage .cmpqv { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.cmppage .cmpqv .qv { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 8px 4px 7px; border-radius: 14px; background: rgba(255, 255, 255, .7); border: 1px solid rgba(23, 48, 31, .1); }
.cmppage .cmpqv .qv.big { border: 1.5px solid #e0313f; background: rgba(255, 240, 241, .85); }
.cmppage .cmpqv .qvl { font-size: 11.5px; color: #45525e; }
.cmppage .cmpqv b { font-size: 24px; font-weight: 400; line-height: 1.15; font-variant-numeric: tabular-nums; color: #1f2d38; }
.cmppage .cmpqv small { font-size: 11px; font-weight: 300; color: #6d7a86; font-variant-numeric: tabular-nums; }
.cmppage .pos { color: #2e7d32; } .cmppage .neg { color: #c0263a; }
.cmppage table.gapt2 { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 13.5px; font-variant-numeric: tabular-nums; color: #1f2d38; }
.cmppage table.gapt2 col.c-from { width: 26%; } .cmppage table.gapt2 col.c-gap { width: 22%; }
.cmppage table.gapt2 th { padding: 4px 4px 6px; font-size: 11.5px; font-weight: 500; color: #6d7a86; text-align: right; }
.cmppage table.gapt2 th.gb { color: #2e7d32; } .cmppage table.gapt2 th.gw { color: #c0263a; }
.cmppage table.gapt2 td { padding: 6px 4px; text-align: right; border-top: 1px solid rgba(23, 48, 31, .07); white-space: nowrap; vertical-align: top; }
.cmppage table.gapt2 .from { text-align: left; font-weight: 500; }
.cmppage table.gapt2 td b { font-weight: 500; }
.cmppage table.gapt2 td small { display: block; font-size: 10.5px; color: #6d7a86; margin-top: 1px; }
.cmppage table.gapt2 td.gap { font-weight: 600; } .cmppage table.gapt2 td.gap b { font-weight: 600; }
.cmppage table.gapt2 tr.gsec td { padding: 10px 4px 3px; text-align: left; font-size: 10.5px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: #6d7a86; border-top: 0; }
.cmppage .cmpkinds { margin: 4px 0 8px; } .cmppage .cmpkinds button { font-size: 12.5px !important; padding: 0 2px; }
.cmppage .cmpgrps { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; margin: 0 0 8px; }
.cmppage .cmpgrps button { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 38px; padding: 2px 0; border-radius: 12px; line-height: 1.1; border: 1px solid rgba(23, 48, 31, .12); background: rgba(255, 255, 255, .6); box-shadow: none; font-size: 12.5px !important; font-weight: 400 !important; color: #4a5866; }
.cmppage .cmpgrps button small { font-size: 10px; color: #8a96a1; }
.cmppage .cmpgrps button.sel { background: #1f2d38; color: #fff; border-color: #1f2d38; } .cmppage .cmpgrps button.sel small { color: rgba(255, 255, 255, .7); }
.cmppage .cmpgrps button:disabled { opacity: .35; }
.cmppage .cmpside button.sel { font-weight: 500 !important; }
.cmppage .cmpmap { border-radius: 14px; overflow: hidden; border: 1px solid rgba(23, 48, 31, .12); }
.cmppage .cmpmap.cmpworst { border-color: rgba(224, 49, 63, .45); }
.cmppage .cmpmap svg { display: block; width: 100%; height: auto; }
.cmppage .cmph .cmppr { font-size: 11.5px; font-weight: 400; color: #6d7a86; }

/* v140 Round takeaway: "How well Strokewise knows your game" strip, headline, Work on next, area tiles, Went well */
.takeaway { margin: 14px 0 6px; display: grid; gap: 10px; color: var(--frost-ink); }
.tkstrip { display: block; width: 100%; text-align: left; padding: 10px 14px 12px; min-height: 44px; font: inherit; color: var(--frost-ink); cursor: pointer; }
.tkst-h { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 13px; color: var(--frost-ink-soft); }
.tkst-h b { color: var(--frost-ink); font-size: 13px; white-space: nowrap; }
.tkst-h b::after { content: ' ›'; color: var(--frost-ink-soft); }
.tkstrip[aria-expanded="true"] .tkst-h b::after { content: ' ⌄'; }
.tkbars { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-top: 8px; } /* v157: + Bunker */
.tkb { display: grid; gap: 4px; }
.tkb em { font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: .06em; color: var(--frost-ink-soft); }
.tkb i { display: block; height: 7px; border-radius: 4px; background: rgba(23, 48, 31, .12); overflow: hidden; }
.tkb u { display: block; height: 100%; border-radius: 4px; background: #c8962e; text-decoration: none; }
.tkb.ready u { background: #1f9d55; }
.tkb.ready em { color: #1f7a44; }
.tkrows { margin: -2px 2px 0; padding: 4px 12px 2px; font-size: 14px; }
.tkrows div { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0; }
.tkrows span { white-space: nowrap; }
.tkrows b { font-weight: 500; color: var(--frost-ink-soft); text-align: right; }
.tkrows b.ok { color: #1f7a44; font-weight: 600; }
.tkrows p { margin: 6px 0 2px; font-size: 13px; color: var(--frost-ink-soft); }
.tkhead { padding: 14px 16px; }
.tkeye { display: block; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--frost-ink-soft); margin-bottom: 4px; }
.takeaway h3 { margin: 0; font-size: 21px !important; line-height: 1.25; font-weight: 700 !important; letter-spacing: -.01em; }
.tkhead p { margin: 6px 0 0; font-size: 15px; color: var(--frost-ink-soft); }
.tkfocus { background: #103b24; color: #fff; border-radius: 22px; padding: 16px; box-shadow: var(--frost-shadow); }
.tkfocus .tktag { display: block; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #f4d28a; margin-bottom: 4px; }
.tkfocus p { margin: 6px 0 0; font-size: 15px; color: rgba(255, 255, 255, .88); }
.tkfocus .tkbasis { font-size: 13px; color: rgba(255, 255, 255, .7); }
.tkfocus .tkbasis.mine { color: #9fe0b5; }
.tkfocus .tkdrill { margin-top: 10px; background: rgba(255, 255, 255, .1); border-radius: 12px; padding: 9px 11px; font-size: 14px; }
.tkfocus .tkdrill b { color: #f4d28a; }
.tktiles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.tktile { padding: 11px 12px 12px; border-radius: 18px; min-width: 0; }
.tkth { display: block; font-size: 14px; font-weight: 600; }
.tksg { font-size: 13px; font-weight: 700; }
.tkusual { margin-left: 6px; font-size: 12px; color: var(--frost-ink-soft); }
.tktile p { margin: 4px 0 0; font-size: 13px; line-height: 1.35; color: var(--frost-ink-soft); }
.tkpic { display: block; width: 100%; height: auto; margin: 6px 0 2px; overflow: visible; }
.tkpic .tkn { font-size: 18px; font-weight: 700; text-anchor: middle; }
.tkpic .tks { font-size: 13px; }
.tkpic .tkm { font-size: 10.5px; text-anchor: middle; fill: #3f5a48; }
.tkpic .tkla { text-anchor: start; }
.tkpic .tkl { font-size: 10px; text-anchor: middle; fill: #5d6f63; }
.tkgood { margin: 0; padding: 10px 14px; font-size: 14px; border-radius: 16px; }
.tkgood b { color: #1f7a44; }
.tknote { margin: 0; padding: 10px 14px; font-size: 14px; border-radius: 16px; color: var(--frost-ink-soft); }

/* v141 My Game: Home card + page (six-spoke game shape by time frame) */
.home .mgcard { display: flex; align-items: center; gap: 12px; width: min(350px, calc(100vw - 32px)); padding: 10px 16px 10px 10px; border-radius: 22px;
  color: #fff; text-align: left; font: inherit; cursor: pointer; }
.home .mgcard .mgmini { flex: none; width: 84px; height: 84px; display: grid; place-items: center; background: rgba(255, 255, 255, .82); border-radius: 18px; }
.home .mgcard .mgmini svg { width: 80px; height: 80px; }
.home .mgcard .mgtxt { flex: 1; min-width: 0; display: grid; gap: 1px; text-shadow: 0 1px 6px rgba(0, 0, 0, .35); }
.home .mgcard .mgtxt b { font-size: 17px; letter-spacing: .02em; }
.home .mgcard .mgtxt span { font-size: 15px; line-height: 1.25; }
.home .mgcard .mgtxt small { font-size: 12px; opacity: .9; }
.home .mgcard > i { font-style: normal; font-size: 26px; opacity: .85; }
.mygamepage .mgseg { margin: 12px 0 0; }
.mgchart { margin-top: 12px; padding: 14px 10px 12px; }
.mgchart h2 { margin: 0 6px 2px !important; font-size: 21px !important; font-weight: 700 !important; }
.mgchart > p { margin: 0 6px 4px; font-size: 14px; color: var(--frost-ink-soft); }
.mgchart .radar { display: block; width: 100%; height: auto; }
.mglegend { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 14px; font-size: 13px; color: var(--frost-ink-soft); }
.mglegend i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 5px; vertical-align: -1px; }
.mglegend .lc { background: #1f9d55; } .mglegend .lp { background: #8a9a8f; } .mglegend .lb { border: 1.5px dashed #17301f; }
.mgbl { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 8px; font-size: 13px; color: var(--frost-ink-soft); white-space: nowrap; }
.mgbl select { min-width: 0; flex: 0 1 auto; }
.mgbl select { min-height: 36px; font-size: 14px; }
.mgtiles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.mgtile { padding: 12px 14px; border-radius: 18px; }
.mgtile span { display: block; font-size: 13px; color: var(--frost-ink-soft); }
.mgtile b { display: block; font-size: 27px; font-weight: 600; line-height: 1.2; }
.mgtile em { font-style: normal; font-size: 13px; font-weight: 600; color: var(--frost-ink-soft); }
.mgtile em.up { color: #1f7a44; } .mgtile em.down { color: #c0442f; }
.mygamepage #mginfo { margin-top: 12px; }

/* v142 practice: log sheet, practice chart, strokes lost vs practice time, recent list */
.mygamepage .prbtn { margin-top: 12px; }
.prsheet { margin-top: 12px; padding: 14px; border-radius: 22px; scroll-margin-top: calc(env(safe-area-inset-top) + 96px); } /* opens below the sticky top bar */
.prhead { display: flex; justify-content: space-between; align-items: baseline; }
.prhead b { font-size: 19px; } .prhead span { font-size: 13px; color: var(--frost-ink-soft); }
.prdate { display: flex; align-items: center; gap: 10px; margin: 8px 0 6px; font-size: 14px; color: var(--frost-ink-soft); }
.prdate input { min-height: 40px; font-size: 16px; }
.prspoke { border-top: 1px solid rgba(23, 48, 31, .12); }
.prsh { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; padding: 0 2px; background: none; border: 0; font: inherit; color: var(--frost-ink); text-align: left; }
.prsh span { flex: 1; font-weight: 600; } .prsh b { color: #2f6fc9; font-weight: 600; } .prsh i { font-style: normal; color: var(--frost-ink-soft); width: 14px; }
.prrow { display: grid; grid-template-columns: 1fr 44px 74px 44px; align-items: center; gap: 6px; padding: 2px 0 8px 10px; }
.prrow span { font-size: 15px; color: var(--frost-ink-soft); } .prrow.on span { color: var(--frost-ink); font-weight: 500; }
.prstep { width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 50%; border: 1px solid rgba(23, 48, 31, .2); background: rgba(255, 255, 255, .75); font-size: 22px; line-height: 1; color: var(--frost-ink); }
.prstep:disabled { opacity: .35; }
.prval { text-align: center; font-size: 19px; font-weight: 600; } .prval small { font-size: 12px; font-weight: 400; color: var(--frost-ink-soft); }
.prfoot { display: flex; align-items: center; gap: 10px; margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(23, 48, 31, .12); }
.prfoot span { flex: 1; font-size: 14px; color: var(--frost-ink-soft); }
.prfoot .primary { min-height: 44px; padding: 0 22px; border-radius: 999px; width: auto; margin: 0; }
.prfoot .txt { min-height: 44px; }
.prchart .tkeye, .prvs .tkeye, .prlist .tkeye { margin: 0 6px 2px; }
.mglegend .lpc { background: #2f6fc9; } .mglegend .lls { background: #e2705c; }
.prbars { display: grid; gap: 10px; margin: 8px 6px 10px; }
.prbar { display: grid; grid-template-columns: 92px 1fr 38px; grid-template-rows: auto auto; column-gap: 8px; row-gap: 3px; align-items: center; font-size: 13px; }
.prbar span { grid-row: 1 / 3; font-weight: 600; } .prbar.gap span { color: #c0442f; }
.prbar i { display: block; height: 8px; border-radius: 4px; background: rgba(23, 48, 31, .1); overflow: hidden; }
.prbar u { display: block; height: 100%; border-radius: 4px; text-decoration: none; }
.prbar .bl u { background: #e2705c; } .prbar .bt u { background: #2f6fc9; }
.prbar em { font-style: normal; text-align: right; color: var(--frost-ink-soft); font-size: 12px; }
.prlist { margin-top: 12px; padding: 12px 14px 6px; border-radius: 22px; }
.pritem { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid rgba(23, 48, 31, .1); }
.pritem span { flex: 1; display: grid; } .pritem span b { font-size: 15px; font-weight: 600; } .pritem span small { font-size: 12px; color: var(--frost-ink-soft); }
.pritem em { font-size: 15px; }
.tkfocus .prdrill { margin-top: 10px; min-height: 44px; width: 100%; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .14); color: #fff; font: inherit; font-weight: 600; }
.pritem em { font-style: normal; font-weight: 600; }
.prx { width: 36px; height: 36px; min-height: 36px; padding: 0; border-radius: 50%; border: 0; background: rgba(23, 48, 31, .08); color: var(--frost-ink-soft); font-size: 18px; }

/* v145 My Game: + Log in the top bar (always in reach); a hint under Mechanics */
.mygamepage .mglogtop { white-space: nowrap; }
.prrow span small { display: block; font-size: 12px; font-weight: 400; color: var(--frost-ink-soft); }

/* v146 My Game: six "how well we know your game" bars under the chart – gold learning, green ready, deep green strong; tick = ready */
.mgknow { margin: 6px 6px 10px; padding: 10px 12px; border-radius: 16px; background: rgba(255, 255, 255, .45); }
.mgkh { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 12.5px; color: var(--frost-ink-soft); white-space: nowrap; }
.mgkh span { overflow: hidden; text-overflow: ellipsis; } .mgkh b { color: var(--frost-ink); }
.mgkbars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 12px; margin-top: 8px; }
.mgkb { display: grid; gap: 3px; min-width: 0; }
.mgkb em { font-style: normal; font-size: 11.5px; font-weight: 700; color: var(--frost-ink-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mgkb i { position: relative; display: block; height: 7px; border-radius: 4px; background: rgba(23, 48, 31, .12); }
.mgkb u { display: block; height: 100%; border-radius: 4px; text-decoration: none; background: #c8962e; }
.mgkb s { position: absolute; top: -2px; width: 2px; height: 11px; margin-left: -1px; background: rgba(23, 48, 31, .45); border-radius: 1px; }
.mgkb.ready u { background: #4cb878; } .mgkb.strong u { background: #1f8a4c; }
.mgkb.ready em, .mgkb.strong em { color: #1f7a44; }
.mgkb small { font-size: 11px; color: var(--frost-ink-soft); } .mgkb.strong small { color: #1f7a44; font-weight: 600; }
.mgknote { display: block; margin-top: 8px; font-size: 11.5px; color: var(--frost-ink-soft); }
.mglegend .ll { background: #fff; border: 2.5px solid #c8962e; width: 8px; height: 8px; } /* v146 learning point */

/* v147: par curves on Round stats */
.rpcurves { padding-bottom: 0; margin-top: 18px; }
.rpcurves h3 { margin: 0 0 6px; }
.rpclegend { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: #4a5865; margin: 0 4px 10px; }
.rpclegend i { display: inline-block; width: 22px; height: 0; margin-right: 6px; vertical-align: middle; }
.rpclegend .rpcsolid { height: 3px; border-radius: 2px; background: linear-gradient(90deg, #1f73c9 0 33%, #2e9d4f 33% 66%, #e8871e 66%); }
.rpclegend .rpcdash { border-top: 2px dashed #1f2d38; }
.dirgrid button:disabled { opacity: .32; background: #f1f3f4; } /* v153: Short / Long off for out of bounds */

/* v154: ‹ Round stats on a reviewed hole, beside Share live */
.holetop { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; margin: -2px 0 8px; }
.holetop .livebar { margin: 0; }
html body .roundpage.holepage .holetop .holeback { min-height: 36px; padding: 4px 16px; border-radius: 999px; font-size: 15px; font-weight: 600; }
html body .roundpage.holepage .holetop .livebtn { min-height: 36px; }

/* v155: practice level card */
.prchart .prlog { margin: 6px 4px 0; font-size: 13px; color: #4a5865; text-align: center; }
.prchart .prhow { margin: 10px 4px 0; font-size: 13px; color: #3f5a48; }
.prchart .prhow summary { font-weight: 600; cursor: pointer; min-height: 32px; display: flex; align-items: center; }
.prchart .prhow p { margin: 6px 0 0; line-height: 1.45; }

/* v156: replay hint sits above the map, never over a shot */
#replayview .rptap { margin: 2px 0 6px; font-size: 13px; color: #4a5866; text-align: center; }

/* v157: five category tiles on Best vs worst – the last one spans the row */
.cmppage .cmpqv .qv:last-child:nth-child(odd) { grid-column: span 2; }

/* ---------- v157 shot card: From · Club · Finished · Next shot ---------- */
.shotcard { margin: 10px 0 8px; padding: 12px 12px 10px; border-radius: 18px; background: rgba(255, 255, 255, .72); border: 1px solid rgba(23, 48, 31, .12); box-shadow: 0 2px 10px rgba(20, 40, 60, .08); }
.shotcard.bad { border-color: #e0313f; }
.shotcard .sc-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.shotcard .sc-n { min-height: 32px; padding: 0 10px; border: 0; border-radius: 999px; background: transparent; box-shadow: none; font-size: 17px !important; font-weight: 600 !important; color: #1f2d38; }
.shotcard .sc-n small { font-size: 13px; color: #8a96a1; font-weight: 400; }
.shotcard .del { min-height: 32px; min-width: 40px; }
.shotcard .sc-sec { padding: 8px 0; border-top: 1px solid rgba(23, 48, 31, .08); }
.shotcard .sc-lbl { display: block; margin: 0 0 6px; font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #6d7a86; }
.shotcard .sc-from { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.shotcard .sc-lie { font-size: 16px; font-weight: 500; color: #1f2d38; }
.shotcard .sc-liesel { flex: 1 1 140px; min-height: 44px; font-size: 16px; }
.shotcard .sc-dist { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; }
.shotcard .sc-dist input { width: 76px; min-height: 44px; font-size: 20px; text-align: center; }
.shotcard .sc-dist.obtxt { font-size: 15px; color: #4a5866; }
.shotcard .sc-came { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 13px; color: #6d7a86; }
.shotcard .sc-came span { flex: 1; }
.shotcard .dirbtn.sm, .shotcard .pen.sm { min-width: 36px; min-height: 32px; font-size: 14px; }
.shotcard .clubrow { margin: 0; }
.shotcard .clubrow .sc-lbl { display: inline-block; margin-right: 10px; }
.finchips { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.finchip { min-height: 42px; padding: 0 4px; border-radius: 12px; border: 1px solid rgba(23, 48, 31, .14); background: rgba(255, 255, 255, .85); box-shadow: none; font-size: 14px !important; font-weight: 500 !important; color: #1f2d38; }
.finchip.sel { background: #1f2d38; border-color: #1f2d38; color: #fff; }
.finchip.in { grid-column: span 4; }
.finchip.in.sel { background: #2e7d32; border-color: #2e7d32; }
.shotcard .sc-miss { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.shotcard .sc-misstxt { flex: 1; font-size: 14px; color: #1f2d38; }
.shotcard .sc-misstxt small { color: #8a96a1; }
.hzpick { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 10px; padding: 10px; border-radius: 14px; background: rgba(31, 115, 201, .08); border: 1px solid rgba(31, 115, 201, .25); }
.hzpick .hzq { grid-column: span 2; font-size: 14px; font-weight: 600; color: #1f2d38; }
.hzopt { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 54px; border-radius: 12px; border: 1px solid rgba(23, 48, 31, .14); background: #fff; box-shadow: none; }
.hzopt b { font-size: 16px; font-weight: 600; color: #1f2d38; } .hzopt small { font-size: 11.5px; color: #6d7a86; }
.hzopt.sel { background: #1f73c9; border-color: #1f73c9; } .hzopt.sel b, .hzopt.sel small { color: #fff; }
.hzplay { grid-column: span 2; min-height: 34px; border: 0; background: transparent; box-shadow: none; font-size: 12.5px !important; font-weight: 400 !important; color: #4a5866; text-decoration: underline; }
.hzplay.sel { color: #1f73c9; font-weight: 600 !important; text-decoration: none; }
.shotcard .sinfo { margin: 6px 0 2px; }
.shotcard .addshot { margin: 8px 0 0; }

/* v157b: miss direction + penalty, easy to find */
.shotcard .sc-came, .shotcard .sc-miss { display: flex; align-items: stretch; gap: 8px; margin-top: 10px; }
html body .roundpage .shotcard .misspill { flex: 1; justify-content: flex-start; display: flex; align-items: center; gap: 10px; width: auto; height: auto; min-height: 46px; padding: 6px 12px; border-radius: 14px;
  border: 1.5px solid #4a7fd0; background: #eef4ff; color: #1d3f73; font-size: 15px; font-weight: 600; text-align: left; box-shadow: none; }
.shotcard .misspill .mparr { font-size: 22px; line-height: 1; min-width: 22px; text-align: center; }
.shotcard .misspill .mptxt { flex: 1; text-align: left; line-height: 1.25; }
.shotcard .misspill .mpgo { white-space: nowrap; }
.shotcard .misspill .mptxt small { color: #6b7f99; font-weight: 400; }
.shotcard .misspill .mpgo { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #4a7fd0; }
html body .roundpage .shotcard .misspill.on { background: #dfeaff; border-color: #2f64b5; color: #10264a; }
html body .roundpage .shotcard .penpill { flex: 0 0 auto; width: auto; min-width: 0; height: auto; min-height: 46px; padding: 6px 12px; border-radius: 14px; border: 1.5px solid #c9a3a8; background: #fff;
  color: #8a3b44; font-size: 13px; font-weight: 700; white-space: nowrap; box-shadow: none; }
html body .roundpage .shotcard .penpill.on { background: #b8505a; border-color: #b8505a; color: #fff; }
.shotcard .sc-came .misspill .mparr, .shotcard .sc-came .misspill .mpgo { flex: 0 0 auto; }

/* v158: what Penalty +1 is */
.shotcard .penwrap { display: flex; align-items: stretch; gap: 4px; flex: 0 0 auto; }
html body .roundpage .shotcard .peninfo { width: 30px; min-width: 30px; height: auto; min-height: 46px; padding: 0; border-radius: 12px; border: 1px solid #c9d2db; background: #fff;
  color: #4a5a68; font-size: 15px; font-weight: 800; box-shadow: none; }
.shotcard .pennote { margin: 8px 0 0; padding: 9px 11px; border-radius: 12px; background: #fbf1f2; border: 1px solid #ecc9cd; color: #4a2a2e; font-size: 13px; line-height: 1.4; }
.shotcard .misspill .mplbl { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #4a7fd0; }
.shotcard .misspill.on .mptxt b { font-size: 16px; }
/* v159 (Scott): a smaller Direction button */
html body .roundpage .shotcard .misspill { flex: 0 0 auto; gap: 6px; min-height: 38px; padding: 4px 14px 4px 10px; border-radius: 19px; font-size: 14px; white-space: nowrap; }
.shotcard .misspill .mparr { font-size: 17px; min-width: 16px; }
.shotcard .misspill .mptxt { flex: 0 0 auto; }
.shotcard .misspill.on .mptxt b { font-size: 14px; }
html body .roundpage .shotcard .penpill, html body .roundpage .shotcard .peninfo { min-height: 38px; border-radius: 19px; }
html body .roundpage .shotcard .peninfo { width: 30px; min-width: 30px; }
.shotcard .sc-came, .shotcard .sc-miss { align-items: center; }
.shotcard .sc-miss .penwrap, .shotcard .sc-came .penwrap { margin-left: auto; }
html body .roundpage .shotcard .misspill:not(.on) { border: 1.5px solid #4a7fd0; background: #eef4ff; }
.shotcard .sc-came, .shotcard .sc-miss { flex-wrap: wrap; }

/* v162: round type (Practice / Tournament) + My Game Playing */
.playpick { margin: 10px 0 4px; }
.playpick .lbl { display: block; margin-bottom: 6px; }
.playseg { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 4px; border-radius: 16px; background: rgba(255,255,255,.45); border: 1px solid rgba(120,140,160,.25); }
html body .playseg button { min-height: 42px; border-radius: 12px; border: 0; background: transparent; color: #2b3a48; font-size: 15px; font-weight: 600; box-shadow: none; }
html body .playseg button.sel { background: #fff; color: #10233a; box-shadow: 0 1px 4px rgba(20,40,70,.18); }
.summarypage #rplay, #rplay { margin: 12px 0; }
.htour { font-style: normal; font-size: .85em; margin-left: 2px; }
.plchart .plbars { display: grid; gap: 14px; margin: 14px 0 6px; }
.plrow .pltop { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 6px; }
.plrow .pltop b { font-size: 15px; }
.plrow .pltop span { font-size: 13px; color: #4b5d6e; white-space: nowrap; }
.pltrack { position: relative; height: 16px; border-radius: 8px; background: rgba(120,140,160,.18); }
.plfill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 8px; background: linear-gradient(90deg, #3d8b5f, #56b07c); min-width: 0; }
.plrow[data-k="tournament"] .plfill { background: linear-gradient(90deg, #b58a1e, #d9ac38); }
.plprev { position: absolute; top: -4px; bottom: -4px; width: 0; border-left: 2px dashed #23384d; margin-left: -1px; }
.plchart .mglegend .plsw { display: inline-block; width: 18px; height: 8px; border-radius: 4px; background: #56b07c; margin-right: 6px; }
.plchart .mglegend .plpv { display: inline-block; width: 0; height: 12px; border-left: 2px dashed #23384d; margin: 0 8px 0 4px; vertical-align: -2px; }
.plnote { font-size: 13px; color: #4b5d6e; margin: 10px 0 0; line-height: 1.4; }
.plcmpt { width: 100%; border-collapse: collapse; margin-top: 10px; font-size: 14px; }
.plcmpt th, .plcmpt td { padding: 7px 4px; text-align: right; border-bottom: 1px solid rgba(120,140,160,.22); }
.plcmpt tbody th { text-align: left; font-weight: 600; }
.plcmpt thead th { font-size: 12px; font-weight: 700; color: #3c4f61; vertical-align: bottom; }
.plcmpt thead th small { display: block; font-weight: 400; color: #6a7b8b; }
.plcmpt tr.plscore td, .plcmpt tr.plsg td { font-weight: 700; }
.plcmpt tr.plworst { background: rgba(214,96,80,.10); }
.plcmpt td.neg { color: #b8402f; } .plcmpt td.pos { color: #1f7a44; }
.htour { font-style: normal; font-weight: 600; color: #8a6a12; }

/* v163: putting tile mini grid, approach proximity bars */
.tktile .tkpic + .tkpic { margin-top: 6px; }
.rspm { margin: 14px 0; }

/* v163: the Stats page putt-miss card, reused on Round stats (same look) */
.rspm .stcard { background: rgba(255, 255, 255, .8); border: 1px solid rgba(23, 48, 31, .08); border-radius: 20px; padding: 12px 10px 10px; margin: 0 0 12px; }
.rspm .sth { font-size: 16px; font-weight: 400; color: #23313d; margin: 0 4px 8px; }
.rspm .stnote { font-size: 11.5px; font-weight: 300; line-height: 1.4; color: #6a7783; margin: 8px 4px 0; }
.rspm .stnone p:first-child { font-size: 16px; font-weight: 300; margin: 6px 4px; color: #2b3944; }
.rspm svg.stchart { display: block; width: 100%; height: auto; overflow: visible; touch-action: manipulation; }
.rspm .sthit { fill: transparent; cursor: pointer; }
.rspm .stgraph .sth { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 15px; margin-bottom: 4px; }
.rspm .stgraph .sth .stv { font-size: 12.5px; font-weight: 300; color: #5c6a76; white-space: nowrap; }
.rspm .stgraph .sth .stv em { font-style: normal; font-weight: 400; color: #23313d; }
.rspm .stdot.sthl { stroke-width: 2; }
.rspm .stval { font-size: 10.5px; font-weight: 400; fill: #3f4e5b; }
.rspm .stn { margin: 2px 4px 0; font-size: 11.5px; font-weight: 400; color: #5c6a76; text-align: center; }
.rspm .stfew { margin: 4px 4px 0; font-size: 12.5px; font-weight: 300; color: #6a7783; }
.rspm .stcatb > .stcard { margin-top: 6px; }
.rspm .stgraph .sth > span:first-child { font-weight: 500; }
.rspm .stsubb > .stcard { margin: 6px 0 0; }
.rspm .stpmchips { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 2px 0; }
.rspm .stpmchip { min-height: 32px; padding: 0 10px; border-radius: 999px; border: 1px solid rgba(23, 48, 31, .14); background: #fff; box-shadow: none; transform: none;
  font-size: 12px !important; font-weight: 400 !important; color: #33424f; }
.rspm .stpmchip.sel { background: #3b82c4; border-color: #2f6ea8; color: #fff; }
.rspm .stpmgreen { fill: #fff; }
.rspm .stpmedgebox { fill: none; stroke: #aab4bd; stroke-width: 1; }
.rspm .stpmline { stroke: #d3d9de; stroke-width: 1; }
.rspm .stpmedge { font-size: 10px; font-weight: 500; letter-spacing: .06em; fill: #5f6c78; }
.rspm .stpmname { font-size: 10px; font-weight: 400; fill: #5f6c78; }
.rspm .stpmn { font-size: 16px; font-weight: 600; fill: #23313d; }
.rspm .stpmn.zero { fill: #a3adb6; font-weight: 400; }
.rspm .stpmhole .stpmn { font-size: 12px; font-weight: 500; }
.rspm .stpmp { font-size: 11px; font-weight: 500; fill: #4a5763; }
.rspm .stpmall { font-size: 9.5px; font-weight: 400; fill: #8f9aa5; }
.rspm .stpmnodir { color: #7b8792; font-weight: 300; }
.rspm .stn .infobtn.infoin span { width: 18px; height: 18px; font: italic 400 11px/17px Georgia, serif; border-color: #b3bdc6; color: #5c6a76; }
.rspm .stn .infobtn.infoin[aria-expanded="true"] span { background: #345; color: #fff; }
.rspm .stn .st2nd b { font-weight: 500; }
.rspm .stn .st2nd { white-space: nowrap; }
.rspm .stbrk .sth { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 15px; margin-bottom: 4px; }
.rspm .stbrk .sth .stv { font-size: 12.5px; font-weight: 300; color: #5c6a76; white-space: nowrap; }
.rspm .stbrk .sth .stv em { font-style: normal; font-weight: 400; color: #23313d; }
.rspm .stcard { background: #fff; }

/* v163: Where putting strokes go on Round stats + the putting tile */
.rspm .stbar { display: flex; gap: 8px; align-items: center; margin: 0 0 6px; }
.rspm select.stbl { flex: 1; min-width: 0; height: 38px; padding: 0 10px; border-radius: 999px; border: 1px solid rgba(23, 48, 31, .12); background: rgba(255, 255, 255, .72);
  font: inherit; font-size: 13.5px; font-weight: 400; color: #33424f; -webkit-appearance: none; appearance: none; text-overflow: ellipsis; }
.rspm .stbar { flex-wrap: wrap; }
.rspm .stsec.stsecsg select.stbl { flex: 0 1 auto; max-width: 62%; height: 36px; font-size: 13px !important; }
.rspm .stbox .stboxlab { font-size: 11px; fill: #3f4e5b; }
.rspm .stbrk .stbv { font-size: 13.5px; font-weight: 400; fill: #23313d; }
.rspm .stbrk .stbbg { fill: rgba(0, 0, 0, .06); }
.rspm .stbrk .stbbar.neg { fill: #d2584c; }
.rspm .stbrk .stbbar.pos { fill: #3f9a55; }
.rspm .stbrk .sth { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 15px; margin-bottom: 4px; }
.rspm .stbrk .sth .stv { font-size: 12.5px; font-weight: 300; color: #5c6a76; white-space: nowrap; }
.rspm .stbrk .sth .stv em { font-style: normal; font-weight: 400; color: #23313d; }
.tkbrk .tkbn, .tkbrk .tkbv { font-size: 9.5px; font-weight: 700; fill: #3c4f61; }
.rspm .stbrk .stbl { font-size: 13.5px; font-weight: 400; fill: #23313d; }
.rspm .stbrk .stbbar.pos { fill: #3f9a55; }
.tkbrk .tkbn { text-anchor: start; } .tkbrk .tkbv { text-anchor: end; }

/* v164: My Playing season histogram */
.plseason { width: 100%; height: auto; display: block; margin: 10px 0 2px; }
.plseason .plgrid { stroke: rgba(80,100,120,.15); stroke-width: 1; }
.plseason .plbase { stroke: rgba(40,60,80,.45); stroke-width: 1; }
.plseason .plax { font-size: 10px; fill: #4b5d6e; font-weight: 600; }
.plseason .plax.now { fill: #10233a; font-weight: 800; }
.plseason .plyr { font-size: 8.5px; fill: #7b8b99; }
.plseason .plbench { fill: rgba(44,84,140,.20); stroke: rgba(44,84,140,.55); stroke-width: 1.2; }
.plseason .pltour { fill: #c99a2b; }
.plseason .plprac { fill: #4fa874; }
.plseason .plunt { fill: #a9b6c2; }
.plseason .plprevm { fill: none; stroke: #23384d; stroke-width: 1.4; stroke-dasharray: 3 2.5; }
.plmonth { font-size: 13px; color: #33475a; margin: 6px 0 0; font-weight: 600; }
.plleg i { display: inline-block; width: 12px; height: 10px; border-radius: 2px; margin-right: 6px; vertical-align: -1px; }
.plleg .lg-t { background: #c99a2b; } .plleg .lg-p { background: #4fa874; } .plleg .lg-u { background: #a9b6c2; }
.plleg .lg-b { background: rgba(44,84,140,.20); border: 1.2px solid rgba(44,84,140,.55); }
.plleg .lg-l { border: 1.4px dashed #23384d; background: none; }
html body .plbtog { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 4px 12px; margin: 8px 0 0; border-radius: 17px; border: 1px solid rgba(70,110,160,.4);
  background: rgba(255,255,255,.6); color: #2a4a6e; font-size: 13px; font-weight: 600; box-shadow: none; }
.plbtog i { width: 14px; height: 14px; border-radius: 4px; border: 1.5px solid #4a7fd0; background: #fff; }
html body .plbtog.on { background: #e6efff; } .plbtog.on i { background: #4a7fd0 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7l3 3 5-6' stroke='white' stroke-width='2' fill='none'/%3E%3C/svg%3E") center/12px no-repeat; }

/* v164b: 3-D columns + lines */
.plseason .plbenchl { fill: none; stroke: #2c5aa0; stroke-width: 2; stroke-dasharray: 5 3; }
.plseason .plbenchld { fill: #fff; stroke: #2c5aa0; stroke-width: 1.5; }
.plseason .plprevl { fill: none; stroke: #6b7b8a; stroke-width: 1.3; }
.plseason .plprevld { fill: #6b7b8a; }
.plleg .lg-b { background: none; border: 0; border-top: 2px dashed #2c5aa0; height: 0; width: 18px; vertical-align: 3px; border-radius: 0; }
.plleg .lg-l { border: 0; border-top: 1.5px solid #6b7b8a; height: 0; width: 18px; vertical-align: 3px; border-radius: 0; }
.plchart .prhow summary { font-size: 14px; font-weight: 600; }

/* ---------- v166 Short game test (shortgame-ui.js) ---------- */
.sgtpage .sgtsp { min-width: 64px; }
.sgtpage .topbar .title b { font-size: 21px; font-weight: 700; }
.sgtpage .topbar .title span { font-size: 14px; color: var(--frost-ink-soft); font-weight: 500; }
.sgtcard { margin-top: 12px; padding: 14px 14px 12px; border-radius: 20px; }
.sgtcard h2 { margin: 0 0 4px !important; font-size: 21px !important; font-weight: 700 !important; line-height: 1.25; }
.sgtcard p { margin: 4px 0; font-size: 15px; font-weight: 500; color: var(--frost-ink-soft); }
.sgtcard p b { color: var(--frost-ink); font-weight: 600; }
.sgteyebrow { font-size: 12.5px !important; font-weight: 700 !important; letter-spacing: .05em; text-transform: uppercase; color: var(--frost-ink-soft); margin: 0 0 6px !important; }
.sgtnote { font-size: 13px !important; line-height: 1.4; }
.sgtnote.bad { color: #c0442f !important; font-weight: 600 !important; }
.sgtneed { font-size: 13.5px !important; }
.sgtfootnote { margin: 14px 6px; color: var(--frost-ink-soft); font-weight: 500; }
.sgtlink { display: block; width: 100%; min-height: 44px; border: 0 !important; background: none !important; box-shadow: none !important; font-size: 15px; font-weight: 600; color: var(--frost-ink-soft); text-decoration: underline; }
.sgtcond { display: flex; align-items: center; gap: 6px; margin: 10px 0 0; }
.sgtcond span { flex: 0 0 104px; font-size: 14px; font-weight: 600; }
.sgtcond .frostchip { flex: 1; min-height: 44px; font-size: 15px; padding: 4px 6px; }
.sgtpage button.big { font-size: 19px; font-weight: 700; min-height: 58px; margin-top: 12px; }
.sgtspider { display: block; width: 100%; height: auto; max-width: 420px; margin: 4px auto 0; }
.sgtkey { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 14px; font-size: 12.5px !important; margin: 2px 0 6px !important; }
.sgtkey span { display: inline-flex; align-items: center; gap: 5px; }
.sgtkey i { display: inline-block; width: 22px; height: 0; border-top: 2px solid #17301f; }
.sgtkey i.kc { height: 10px; border: 2px solid #1f9d55; background: rgba(31,157,85,.3); border-radius: 2px; }
.sgtkey i.ka { border-top-style: dashed; }
/* history list */
.sgthrow { display: flex; gap: 6px; align-items: stretch; border-top: 1px solid rgba(23,48,31,.12); }
.sgthrow:first-of-type { border-top: 0; }
.sgthopen { flex: 1; text-align: left; border: 0 !important; background: none !important; box-shadow: none !important; padding: 8px 0; min-height: 54px; border-radius: 0; }
.sgthopen b { display: block; font-size: 16px; font-weight: 600; } .sgthopen span { font-size: 13px; font-weight: 500; color: var(--frost-ink-soft); }
.sgtx { flex: 0 0 44px; min-height: 44px; border: 0 !important; background: none !important; box-shadow: none !important; font-size: 22px; font-weight: 400; color: var(--frost-ink-soft); }
/* the guided test */
.sgtdots { display: flex; gap: 5px; margin: 10px 0 0; }
.sgtdot { flex: 1; min-width: 0; min-height: 34px; padding: 0; border-radius: 10px; font-size: 13px; font-weight: 600; background: rgba(255,255,255,.55); border: 1px solid rgba(23,48,31,.14); color: var(--frost-ink-soft); }
.sgtdot.some { border-color: #c8962e; } .sgtdot.done { background: rgba(31,157,85,.22); border-color: rgba(31,157,85,.5); color: #17301f; }
.sgtdot.cur { background: #1c1c1e; border-color: #1c1c1e; color: #fff; }
.sgtsetuph { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 32px; padding: 0; border: 0 !important; background: none !important; box-shadow: none !important; border-radius: 0; }
.sgtsetuph b { font-size: 16px; font-weight: 700; } .sgtsetuph span { font-size: 13.5px; font-weight: 600; color: var(--frost-ink-soft); text-decoration: underline; }
.sgtsetup ol { margin: 8px 0 2px; padding-left: 22px; } .sgtsetup li { font-size: 15px; font-weight: 500; line-height: 1.35; margin: 5px 0; }
.sgtcompass { display: block; width: 100%; max-width: 320px; height: auto; margin: 8px auto 0; }
.sgtwhat { font-size: 30px !important; margin: 0 0 8px !important; }
.sgtft { display: flex; align-items: center; gap: 10px; margin: 6px 0 4px; }
.sgtft input { flex: 1; min-width: 0; font-size: 34px !important; font-weight: 700; text-align: center; padding: 10px 8px !important; border-radius: 18px !important; background: rgba(255,255,255,.9); }
.sgtft span { font-size: 17px; font-weight: 600; color: var(--frost-ink-soft); white-space: nowrap; }
.sgthint { font-size: 13.5px !important; margin: 6px 0 0 !important; }
.sgtbtns { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 8px; margin-top: 8px; }
.sgtbtns.g2 { grid-auto-flow: row; grid-template-columns: 1fr 1fr; } .sgtbtns.g3 { grid-auto-flow: row; grid-template-columns: 1fr 1fr 1fr; }
.sgtbtns button { min-height: 58px; font-size: 17px; font-weight: 600; border-radius: 18px !important; padding: 4px 6px; }
.sgtbtns button.primary { font-size: 19px; font-weight: 700; }
.sgtdir button { min-height: 50px; font-size: 15px; }
.sgtstep { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 6px 0; }
.sgtstep button { width: 72px; min-height: 64px; font-size: 32px; font-weight: 500; border-radius: 20px !important; }
.sgtstep b { min-width: 76px; text-align: center; font-size: 54px; font-weight: 700; line-height: 1; }
.sgtchipsrow { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 12px; }
.sgtshot { min-height: 48px; padding: 4px 2px; border-radius: 12px; background: rgba(255,255,255,.5); border: 1px solid rgba(23,48,31,.12); }
.sgtshot span { display: block; font-size: 11.5px; font-weight: 500; color: var(--frost-ink-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sgtshot b { display: block; font-size: 13.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sgtshot.in { background: rgba(255,255,255,.8); } .sgtshot.cur { border: 2px solid #1c1c1e; }
.sgtfoot { margin-top: 10px; }
/* the result */
.sgtplan { background: #103b24; color: #fff; }
.sgtplan .sgteyebrow { color: #f4d28a; }
.sgtplan div, .sgtcoach div { margin-top: 10px; }
.sgtplan b { display: block; font-size: 17px; font-weight: 600; } .sgtplan em { display: block; font-style: normal; font-size: 13.5px; font-weight: 600; color: #f4d28a; }
.sgtplan span { display: block; font-size: 14.5px; font-weight: 500; color: #c8dccf; line-height: 1.35; }
.sgtcoach b { display: block; font-size: 15.5px; font-weight: 600; line-height: 1.3; } .sgtcoach span { display: block; font-size: 14px; font-weight: 500; color: var(--frost-ink-soft); line-height: 1.35; }
.sgtcath { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.sgtcath span { font-size: 13.5px; font-weight: 600; color: var(--frost-ink-soft); white-space: nowrap; }
.sgtcath .due { background: #c8962e; color: #fff; padding: 2px 10px; border-radius: 999px; }
.sgtrows { margin-top: 6px; }
.sgtrow { display: grid; grid-template-columns: minmax(0, 1fr) 116px 92px; gap: 8px; align-items: center; width: 100%; min-height: 54px; padding: 6px 0; text-align: left; border: 0 !important; border-top: 1px solid rgba(23,48,31,.12) !important; border-radius: 0; background: none !important; box-shadow: none !important; }
.sgtrow.none { grid-template-columns: 1fr auto; color: var(--frost-ink-soft); }
.sgtrn { font-size: 15px; font-weight: 600; line-height: 1.2; }
.sgtrn em { display: block; font-style: normal; font-size: 12.5px; font-weight: 700; }
.sgtrow.bad .sgtrn em { color: #c0442f; } .sgtrow.good .sgtrn em { color: #1f7a44; }
.sgtrv { text-align: right; } .sgtrv b { display: block; font-size: 15px; font-weight: 600; white-space: nowrap; } .sgtrv small { display: block; font-size: 12px; font-weight: 500; color: var(--frost-ink-soft); white-space: nowrap; }
.sgtspark { display: block; }
.sgtbig { padding: 4px 0 10px; } .sgtbig svg { width: 100%; height: auto; } .sgtbig p { font-size: 13px; }
.sgtwbars { margin-top: 8px; }
.sgtwb { display: grid; grid-template-columns: 52px 1fr 64px; gap: 8px; align-items: center; margin: 7px 0; }
.sgtwb span { font-size: 14px; font-weight: 600; } .sgtwb b { font-size: 14px; font-weight: 600; text-align: right; }
.sgtwb i { position: relative; display: block; height: 12px; border-radius: 6px; background: rgba(23,48,31,.10); }
.sgtwb u { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 6px; background: #1f9d55; }
.sgtwb s { position: absolute; top: -4px; bottom: -4px; width: 2px; background: #17301f; }
.sgtmiss { margin-top: 12px; }
.sgtmgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; max-width: 250px; margin: 0 auto; }
.sgtmgrid span { min-height: 46px; border-radius: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 12px; font-weight: 500; color: var(--frost-ink-soft); }
.sgtmgrid span b { font-size: 18px; font-weight: 700; color: var(--frost-ink); }
.sgtmgrid span.on { background: rgba(192,68,47,.14); } .sgtmgrid span.pin { background: #17301f; color: #fff; font-weight: 600; border-radius: 50%; width: 46px; justify-self: center; }
.sgtmg { margin-top: 12px; }
/* v165: Stats – choose several rounds (e.g. a 54-hole tournament) */
.stpickbox { margin: 10px 0 4px; }
.stevents { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 10px; }
html body .stevent { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 8px 12px; border-radius: 14px; border: 1px solid rgba(70,110,160,.35); background: rgba(255,255,255,.6); color: #1d3350; text-align: left; box-shadow: none; }
.stevent b { font-size: 14px; } .stevent span { font-size: 12px; color: #4b5d6e; }
html body .stevent.sel { background: #e6efff; border-color: #2f64b5; }
.stpicklist .stck { flex: 0 0 auto; width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid #6d8fb9; background: #fff; margin-right: 8px; }
.stpicklist .stpk.sel .stck { background: #2f64b5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3 7l3 3 5-6' stroke='white' stroke-width='2' fill='none'/%3E%3C/svg%3E") center/14px no-repeat; border-color: #2f64b5; }
.stpicklist .stpk { display: flex; align-items: center; }
html body .stpickclr { margin: 6px 0 0; font-size: 14px; }

/* v165: Create PDF report at the top of Round stats */
.rsactions { margin: 10px 0 6px; }
html body .rspdftop { width: 100%; min-height: 46px; font-size: 16px; border-radius: 16px; }

/* v168: lag putts – three balls scored together */
.sgtlag .sgtlagrow { display: grid; grid-template-columns: 52px 92px 1fr; align-items: center; gap: 8px; padding: 8px 0; border-top: 1px solid rgba(23,48,31,.12); }
.sgtlag .sgtlagrow b { font-size: 14px; }
.sgtlag .sgtft.sm input { width: 52px; font-size: 20px; }
.sgtlag .sgtlagdir { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
html body .sgtlag .sgtlagdir .frostchip { min-height: 38px; padding: 0 2px; font-size: 13px; justify-content: center; }

/* v168: Short game test intro – the Instagram one-pager look: dark green photo, white type, gold brand, glass panels */
.sgtintro { position: fixed; inset: 0; z-index: 60; color: #fff; display: flex; flex-direction: column; font-family: -apple-system, "SF Pro Text", "Helvetica Neue", "Inter", system-ui, sans-serif; background: #0b2414; }
.sgtibg { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,18,11,.62) 0%, rgba(6,22,12,.74) 35%, rgba(5,20,11,.86) 70%, rgba(3,12,7,.95) 100%), url("img/home-bg.webp") center/cover no-repeat; }
.sgtitop { position: relative; display: flex; align-items: center; justify-content: space-between; padding: calc(env(safe-area-inset-top, 0px) + 14px) 20px 6px; }
.sgtibrand { display: inline-flex; align-items: center; gap: 9px; color: #f4d28a; font-weight: 700; font-size: 13px; letter-spacing: .32em; }
.sgtibrand i { width: 20px; height: 20px; border-radius: 5px; background: #0b5d1e radial-gradient(ellipse 36% 14% at 50% 72%, #34a344 98%, transparent 100%); position: relative; }
.sgtibrand i::after { content: ""; position: absolute; left: 9px; top: 3px; width: 2px; height: 11px; background: #fff; box-shadow: 2px 0 0 0 #e52a2a; }
html body .sgtiskip { background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.28); border-radius: 18px; min-height: 36px; padding: 0 14px; font-size: 14px; font-weight: 600; box-shadow: none; }
.sgtislides { position: relative; flex: 1; display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.sgtislides::-webkit-scrollbar { display: none; }
.sgtislide { flex: 0 0 100%; scroll-snap-align: start; overflow-y: auto; padding: 10px 22px 20px; box-sizing: border-box; }
.sgtieye { color: #f4d28a; font-size: 12px; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; margin: 14px 0 6px; }
.sgtislide h2 { font-size: 34px; line-height: 1.08; font-weight: 600; margin: 0 0 14px; color: #fff; letter-spacing: -.01em; }
.sgtibig { font-size: 17px; line-height: 1.45; color: rgba(255,255,255,.86); margin: 0 0 14px; }
.sgtibig.sm { font-size: 15px; margin-top: 12px; }
.sgtipanel { background: rgba(10,30,18,.55); border: 1px solid rgba(255,255,255,.16); border-radius: 18px; padding: 14px 16px; margin: 0 0 12px; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.sgtipanel p { margin: 0; font-size: 15px; line-height: 1.45; color: rgba(255,255,255,.88); }
.sgtipanel .sgtilbl { font-size: 11.5px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.68); margin-bottom: 6px; }
.sgtisteps div { display: grid; grid-template-columns: 82px 1fr; gap: 10px; padding: 8px 0; border-top: 1px solid rgba(255,255,255,.12); }
.sgtisteps div:first-child { border-top: 0; padding-top: 0; }
.sgtisteps b { color: #f4d28a; font-size: 15px; } .sgtisteps span { font-size: 14px; color: rgba(255,255,255,.85); line-height: 1.35; }
.sgtichart svg { width: 100%; height: auto; display: block; }
.sgtichart svg text { fill: rgba(255,255,255,.88) !important; }
.sgtichart .sgtspider line, .sgtichart .sgtspider polygon:not(.sgtcur) { stroke: rgba(255,255,255,.45) !important; }
.sgtichart .sgtspider .sgtcur { fill: rgba(126,226,160,.28) !important; stroke: #7ee2a0 !important; }
.sgtichart .sgtspider circle { fill: #7ee2a0 !important; }
.sgtichart svg line { stroke: rgba(255,255,255,.22); }
.sgtiread .sgtitag { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; padding: 3px 8px; border-radius: 6px; margin-bottom: 6px; }
.sgtitag.bad { background: rgba(255,138,122,.18); color: #ff8a7a; } .sgtitag.good { background: rgba(126,226,160,.18); color: #7ee2a0; }
.sgtiread b { color: #fff; }
.sgtifoot { position: relative; display: flex; align-items: center; justify-content: space-between; padding: 10px 22px calc(env(safe-area-inset-bottom, 0px) + 16px); }
.sgtidots { display: flex; gap: 8px; } .sgtidots i { width: 8px; height: 8px; border-radius: 4px; background: rgba(255,255,255,.3); transition: width .2s; }
.sgtidots i.on { width: 22px; background: #f4d28a; }
html body .sgtinext { min-height: 46px; padding: 0 26px; border-radius: 23px; border: 0; background: #f4d28a; color: #10231a; font-size: 16px; font-weight: 700; box-shadow: none; }
html body .sgtintro .sgtislide h2 { font-size: 36px; line-height: 1.08; font-weight: 600; color: #fff; margin: 0 0 16px; font-family: inherit; }
.sgtislide { display: flex; flex-direction: column; justify-content: center; }
.sgtislide > * { flex: 0 0 auto; }
html body .sgtintro .sgtislide h2 { font-size: 36px !important; font-weight: 600 !important; }

/* v168: the Stats benchmark row, reused on Rounds and a round */
html body .bmwrap select.stbl { flex: 1; min-width: 0; height: 38px; padding: 0 10px; border-radius: 999px; border: 1px solid rgba(23, 48, 31, .12); background: rgba(255, 255, 255, .72);
  font: inherit; font-size: 13.5px; font-weight: 400; color: #33424f; -webkit-appearance: none; appearance: none; text-overflow: ellipsis; }
html body .bmwrap .stsec.stsecsg { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
html body .bmwrap .stsec.stsecsg select.stbl { flex: 0 1 auto; max-width: 62%; height: 36px; font-size: 13px !important; }
html body .bmwrap .stsgnote { margin: 0 6px 8px; }
html body .bmwrap { margin: 6px 0 10px; }
html body .bmwrap .bmnote { margin: 2px 4px 0; }
html body .bmwrap .stsect { font-size: 14.5px; font-weight: 500; color: #33475a; }
html body .bmwrap .stnote.bmnote { font-size: 12.5px; line-height: 1.35; color: #556676; font-weight: 400; }

/* v168: why the short putts go around the hole */
.sgtwhy { margin: 10px 0 2px; border-radius: 12px; background: rgba(255,255,255,.55); border: 1px solid rgba(23,48,31,.14); padding: 0 12px; }
.sgtwhy summary { cursor: pointer; padding: 10px 0; font-weight: 600; font-size: 15px; color: #1f5a37; list-style: none; }
.sgtwhy summary::-webkit-details-marker { display: none; }
.sgtwhy summary::before { content: "?"; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 10px; background: #1f7a44; color: #fff; font-size: 12px; font-weight: 800; margin-right: 8px; }
.sgtwhy[open] summary { padding-bottom: 4px; }
.sgtwhy p { margin: 6px 0 10px; font-size: 14px; line-height: 1.45; color: #23362a; }

/* v168: result rows – value column sized to its text, sub line may wrap, nothing past the tile */
.sgtrow { grid-template-columns: minmax(0, 1fr) 84px 108px; }
.sgtrow svg { width: 84px; height: auto; }
.sgtrv { min-width: 0; }
.sgtrv small { white-space: normal; line-height: 1.25; }
.sgtpsp { margin: 4px 0 8px; } .sgtpsp + .sgtpsp { border-top: 1px solid rgba(23,48,31,.12); padding-top: 10px; }

/* v168 (Scott): way-off warnings with the pattern of the misses */
.sgtwarn { margin: 6px 0 10px; padding: 10px 12px; border-radius: 12px; background: #ffe9e4; border: 1.5px solid #c0442f; }
.sgtwarn .sgteyebrow { color: #c0442f !important; margin: 0 0 4px !important; }
.sgtwarn > div + div { border-top: 1px solid rgba(192,68,47,.25); margin-top: 6px; padding-top: 6px; }
.sgtwarn b { display: block; color: #9b2a17; font-size: 14px; line-height: 1.3; }
.sgtwarn small { display: block; color: #6b3a30; font-size: 12px; }
.sgtwarn span { display: block; color: #3a2420; font-size: 13px; line-height: 1.35; margin-top: 2px; }
/* v170 (Scott): delete a test from its result page */
.sgtpage .sgtdelres { display: block; margin: 18px auto 4px; color: #b0473f !important; font-weight: 600; }
/* v174 (Scott): up and down – one count of 10, its % and what a missed green costs */
.sgtstep .sgtof { align-self: center; font-size: 15px; color: var(--muted, #5c6b63); margin: 0 6px 0 -4px; }
.sgtud { margin: 6px 0 10px; padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,.55); border: 1px solid rgba(20,60,40,.12); }
.sgtud.bad { background: #ffe9e4; border-color: #c0442f; }
.sgtudh { display: flex; align-items: center; gap: 12px; }
.sgtudh > b { font-size: 34px; line-height: 1; color: #1f6b3a; font-weight: 700; }
.sgtud.bad .sgtudh > b { color: #b0473f; }
.sgtudh span { font-size: 15px; font-weight: 600; color: #1d2a24; display: flex; flex-direction: column; }
.sgtudh small { font-size: 12px; font-weight: 500; color: #5c6b63; }
.sgtud p { margin: 8px 0 0; font-size: 14px; line-height: 1.4; color: #2b3a33; }
/* v175 (Scott): My Game report – pick what goes in */
.grbtn { margin-top: 10px; }
.grsheet .grpre { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 12px; }
.grsheet .grparts { display: grid; gap: 8px; margin-bottom: 12px; }
.grpart { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(20,60,40,.18); background: rgba(255,255,255,.6); font-size: 15px; font-weight: 600; color: #1d2a24; }
.grpart i { flex: 0 0 22px; height: 22px; border-radius: 6px; border: 1.5px solid #7d8c84; display: flex; align-items: center; justify-content: center; font-style: normal; font-size: 14px; color: #fff; }
.grpart.on i { background: #1f6b3a; border-color: #1f6b3a; }
.grpart small { margin-left: auto; font-weight: 500; color: #7d8c84; font-size: 12px; }
.grpart[disabled] { opacity: .55; }
/* v176 (Scott): bars under every spider – your average (grey), this test (green / red), benchmark mark */
.sgtbars { margin: 4px 0 8px; }
.sgtbr { display: grid; grid-template-columns: minmax(0, 118px) 1fr; gap: 10px; align-items: center; width: 100%; padding: 7px 0; border: 0; border-top: 1px solid rgba(20,60,40,.08); background: none; text-align: left; font: inherit; color: inherit; }
button.sgtbr { cursor: pointer; }
.sgtbl b { display: block; font-size: 13.5px; font-weight: 600; color: #1d2a24; line-height: 1.25; }
.sgtbl b em { font-style: normal; font-size: 11px; font-weight: 700; margin-left: 6px; color: #5c6b63; } .sgtbl b em.bad { color: #b0473f; } .sgtbl b em.good { color: #1f7a44; }
.sgtbl > span { display: block; font-size: 13px; font-weight: 600; color: #1f6b3a; } .sgtbl > span.bad { color: #b0473f; }
.sgtbl small { display: block; font-size: 11px; color: #6b7a72; }
.sgtbt { position: relative; display: block; height: 22px; }
.sgtbt i { position: absolute; left: 0; border-radius: 4px; } .sgtbt i.avg { top: 2px; height: 7px; background: #b9c4be; }
.sgtbt i.cur { top: 11px; height: 9px; background: #1f9d55; } .sgtbt i.cur.bad { background: #d0604f; }
.sgtbt s { position: absolute; top: -2px; bottom: -2px; width: 0; border-left: 2px solid #1d2a24; }
.sgtbkey { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 11px; color: #5c6b63; margin: 8px 0 0; }
.sgtbkey i { display: inline-block; width: 14px; height: 7px; border-radius: 3px; margin-right: 5px; vertical-align: middle; }
.sgtbkey .k1 { background: #1f9d55; } .sgtbkey .k2 { background: #b9c4be; } .sgtbkey .k3 { width: 0; height: 12px; border-left: 2px solid #1d2a24; border-radius: 0; }
.sgtwb i em { position: absolute; left: 0; top: -1px; height: 5px; border-radius: 3px; background: #b9c4be; }
.sgtwb i { height: 16px; background: transparent !important; } .sgtwb u { top: 6px !important; bottom: auto !important; height: 10px; }
.sgtwb.bad u { background: #d0604f; } .sgtwb.bad b { color: #b0473f; } .sgtwb b { color: #1f6b3a; }
html body .sgtbars button.sgtbr { border-radius: 0; box-shadow: none; background: none; min-height: 0; margin: 0; padding: 7px 0; -webkit-backdrop-filter: none; backdrop-filter: none; border: 0; border-top: 1px solid rgba(20,60,40,.08); }
/* v176 (Scott): last 2 / 3 / 4 rounds, and the course vs the test */
.mgrseg { margin-top: 6px; align-items: center; } .mgrseg > span { font-size: 13px; color: #43524a; padding: 0 8px 0 10px; white-space: nowrap; }
.mgcvt { padding: 16px; border-radius: 22px; margin: 12px 0; }
.mgcvt .mgeye { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #5c6b63; font-weight: 600; margin: 0 0 6px; }
.mgcvth { font-size: 17px; font-weight: 600; line-height: 1.3; margin: 0 0 6px; color: #1d2a24; } .mgcvth span { color: #43524a; font-weight: 500; } .mgcvth span.bad { color: #b0473f; font-weight: 600; }
.cvtr { display: grid; grid-template-columns: 74px 1fr 40px; grid-template-areas: "a b c" "d d d"; column-gap: 8px; align-items: center; padding: 8px 0; border-top: 1px solid rgba(20,60,40,.08); }
.cvtr b { grid-area: a; font-size: 13.5px; } .cvtd { grid-area: b; position: relative; height: 12px; background: rgba(20,60,40,.06); border-radius: 6px; }
.cvtd s { position: absolute; left: 50%; top: -3px; bottom: -3px; border-left: 2px solid #1d2a24; }
.cvtd i { position: absolute; top: 2px; height: 8px; border-radius: 4px; } .cvtd i.neg { background: #d0604f; } .cvtd i.pos { background: #1f9d55; }
.cvtv { grid-area: c; text-align: right; font-weight: 600; font-size: 13px; } .cvtv.bad { color: #b0473f; }
.cvtn { grid-area: d; font-size: 12.5px; margin-top: 4px; color: #2b3a33; } .cvtn em { font-style: normal; font-weight: 700; color: #b0473f; margin-right: 6px; } .cvtn em.warn { color: #a86a12; }
.cvtn small { color: #6b7a72; font-size: 12px; }
html body .mgcvt .cvtr > b { color: #1d2a24; font-weight: 600; }
/* v176 (Scott): "your average" in blue – grey was hard to see, and it is neither good (green) nor bad (red) */
.sgtbt i.avg, .sgtwb i em { background: #4a7fd0 !important; } .sgtbkey .k2 { background: #4a7fd0 !important; }
html body .mgcvt .cvtv { color: #1f6b3a; } html body .mgcvt .cvtv.bad { color: #b0473f; }
/* v177 (Scott): a page not using the player's benchmark says so */
.blwarn { margin: 6px 2px 10px; padding: 8px 12px; border-radius: 12px; background: #fff4dc; border: 1px solid #e3b65a; color: #5a3f0c; font-size: 13px; line-height: 1.35; }
.blwarn button.txt { color: #8a5a00; font-weight: 700; text-decoration: underline; padding: 0 0 0 4px; min-height: 0; }
.mgblhelp { font-size: 12px; margin: 4px 0 0; }
/* v178 (Scott): benchmark not set – a red "!" on My Game, and the picker at the top of My Game */
.bang { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 9px; background: #d0342c; color: #fff !important; font-style: normal; font-weight: 800; font-size: 12px; line-height: 1; margin-left: 7px; vertical-align: 2px; }
.mgblcard { padding: 12px 16px; border-radius: 20px; margin: 10px 0; }
.mgblcard.unset { border: 2px solid #d0342c !important; background: rgba(255,236,232,.9) !important; }
.mgblcard .mgblt { margin: 0 0 8px; font-weight: 700; font-size: 15px; color: #7a1d16; display: flex; align-items: center; gap: 8px; } .mgblcard .mgblt .bang { margin: 0; flex: 0 0 18px; }
.mgblcard .mgbl { display: flex; align-items: center; gap: 10px; font-weight: 600; flex-wrap: wrap; }
.mgblcard button.primary { width: 100%; margin-top: 10px; }
.bangon::after { content: "!"; display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 9px; background: #d0342c; color: #fff; font-style: normal; font-weight: 800; font-size: 12px; line-height: 1; margin-left: 7px; vertical-align: 2px; }
/* v177 (Scott): bar colour = how close to the benchmark mark: green (90%+), amber (75–90%), red (further back) */
.sgtbt i.cur.tg, .sgtwb.tg u { background: #1f9d55 !important; } .sgtbt i.cur.ta, .sgtwb.ta u { background: #e0a82e !important; } .sgtbt i.cur.tr, .sgtwb.tr u { background: #d0604f !important; }
.sgtbkey i.k1 { width: 6px !important; margin-right: 2px !important; } .sgtbkey i.k1.tr { margin-right: 6px !important; }
.sgtbkey i.k1.tg { background: #1f9d55; } .sgtbkey i.k1.ta { background: #e0a82e; } .sgtbkey i.k1.tr { background: #d0604f; }
.sgtbl > span.vg, .sgtwb b.vg { color: #1f6b3a !important; } .sgtbl > span.va, .sgtwb b.va { color: #a06e0a !important; } .sgtbl > span.vr, .sgtwb b.vr { color: #b0473f !important; }
/* v179 (Scott): PDF report + story picture side by side at the top of Round stats, line icons */
.rsbtns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
html body .rsact { display: flex; align-items: center; gap: 10px; min-height: 62px; padding: 10px 12px; border-radius: 18px; text-align: left;
  background: rgba(255,255,255,.62); border: 1px solid rgba(255,255,255,.75); box-shadow: 0 1px 2px rgba(20,40,30,.08), inset 0 1px 0 rgba(255,255,255,.7); color: #1d2a24; }
html body .rsact:active { transform: scale(.98); background: rgba(255,255,255,.78); }
.rsact .rsic { flex: 0 0 30px; width: 30px; height: 30px; padding: 6px; border-radius: 10px; background: #1f5d3a; fill: none; stroke: #fff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; box-sizing: border-box; }
#storybtn .rsic { background: linear-gradient(135deg, #d8a23a, #c4553e); }
.rsact span { display: flex; flex-direction: column; min-width: 0; } .rsact b { font-size: 15px; font-weight: 650; line-height: 1.2; } .rsact small { font-size: 11.5px; color: #5c6b63; font-weight: 500; }
.bmrow .tipbtn { margin-left: 8px; flex: 0 0 auto; } .bmnote { margin: 6px 2px 4px; }
html body .bmrow { display: flex; align-items: center; gap: 8px; } html body .bmrow .stsect { white-space: nowrap; flex: 0 0 auto; }
html body .bmrow select { flex: 1 1 auto; min-width: 0; width: auto; } html body .bmrow .tipbtn { margin-left: 0; }
html body .bmrow .infobtn span { font-weight: 400; } /* the app's light type */
/* v180 (Scott): the shot card as one line – From → (yards hit, club) → Finished; dropdowns like the club's */
html body .sc2 .sc-head { display: flex; align-items: center; gap: 8px; padding-bottom: 10px; border-bottom: 1px solid rgba(20,40,30,.1); margin-bottom: 4px; }
html body .sc2 .sc-head .sc-n { margin-right: auto; }
html body .sc2 .sc-pin { display: inline-flex; align-items: baseline; gap: 6px; margin-left: 0; }
html body .sc2 .sc-pin input { width: 72px; min-height: 40px; height: 40px; font-size: 21px; font-weight: 600; text-align: center; border-radius: 12px; padding: 0 4px; }
html body .sc2 .sc-pin em { font-style: normal; font-size: 13.5px; color: #5c6b63; font-weight: 600; white-space: nowrap; } html body .sc2 .sc-pin em .u { font-style: normal; }
html body .sc2 .sc-pin.obtxt { font-size: 18px; font-weight: 600; color: #1d2a24; }
html body .sc2 .sc-flow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(96px, 116px) minmax(0, 1fr); align-items: center; gap: 4px; margin: 12px 0 2px; }
html body .sc2 .sc-lbl { display: block; font-size: 11px; letter-spacing: .12em; color: #7a8780; font-weight: 700; text-transform: uppercase; margin-bottom: 5px; }
html body .sc2 .sc-from { display: block; min-width: 0; } html body .sc2 .sc-lie { display: block; font-size: 19px; font-weight: 600; line-height: 1.15; color: #1d2a24; }
html body .sc2 .sc-from small { display: block; font-size: 12px; color: #5c6b63; margin-top: 3px; }
html body .sc2 .sc-mid { display: flex; flex-direction: column; align-items: center; min-width: 0; }
html body .sc2 .sc-hit { font-size: 13px; font-weight: 700; color: #1f6b3a; min-height: 16px; }
html body .sc2 .scarr { width: 100%; height: 14px; margin: 2px 0 4px; fill: none; stroke: #1d2a24; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
html body .sc2 .sc-fin { text-align: right; min-width: 0; } html body .sc2 .sc-fin .tpen { margin-left: 6px; }
html body .sc2 select.dd, html body .sc2 .dd.ddtxt { appearance: none; -webkit-appearance: none; min-height: 36px; height: 36px; max-width: 100%; border: 1px solid #d3dbd6; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='14' viewBox='0 0 10 14'%3E%3Cpath d='M2 5l3-3 3 3M2 9l3 3 3-3' fill='none' stroke='%235c6b63' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 9px center;
  border-radius: 12px; padding: 0 26px 0 10px; font: 600 15px/34px -apple-system, "Helvetica Neue", system-ui, sans-serif; color: #1d2a24; box-shadow: none; width: auto; }
html body .sc2 .dd.ddtxt { display: inline-block; background-image: none; padding: 0 10px; color: #43524a; font-weight: 500; }
html body .sc2 .sc-mid select.dd { font-size: 13.5px; max-width: 116px; } html body .sc2 .sc-fin select.dd { font-size: 16px; }
html body .sc2 .sc-dirrow { display: flex; justify-content: flex-end; margin-top: 8px; } html body .sc2 .sc-dirsel { font-weight: 500 !important; font-size: 14px !important; }
html body .sc2 .sc-layup { display: flex; justify-content: center; margin: 10px 0 0; font-size: 13px; color: #5c6b63; }
html body .sc2 .tpen { font-style: normal; display: inline-block; background: #fde3de; color: #b0473f; font-weight: 800; font-size: 12px; border-radius: 8px; padding: 2px 6px; }
html body .sc2 .ddwrap { position: relative; display: inline-block; max-width: 100%; vertical-align: middle; }
html body .sc2 .dd.ddshow { display: inline-block; min-height: 36px; height: 36px; border: 1px solid #d3dbd6; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='14' viewBox='0 0 10 14'%3E%3Cpath d='M2 5l3-3 3 3M2 9l3 3 3-3' fill='none' stroke='%235c6b63' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 9px center;
  border-radius: 12px; padding: 0 26px 0 10px; font: 600 16px/34px -apple-system, "Helvetica Neue", system-ui, sans-serif; color: #1d2a24; white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; box-sizing: border-box; }
html body .sc2 .dd.ddshow.ddempty { color: #7a8780; font-weight: 500; }
html body .sc2 select.ddover { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; min-height: 0; margin: 0; padding: 0; border: 0; font-size: 16px; }
html body .sc2 .sc-flow { grid-template-columns: minmax(0, .85fr) 100px minmax(0, 1.25fr); }
html body .sc2 .sc-mid select.dd { max-width: 100px; padding-right: 22px; background-position: right 7px center; }
html body .sc2 .dd.ddshow.ddlong { font-size: 14px; padding-left: 9px; padding-right: 23px; background-position: right 7px center; }
html body .sc2 .fromwrap { display: block; } html body .sc2 .fromchev { display: inline-block; width: 7px; height: 7px; border-right: 2px solid #8a968f; border-bottom: 2px solid #8a968f; transform: rotate(45deg); margin: 0 0 4px 7px; }
html body .sc2 .fromwrap { display: flex; align-items: center; min-height: 40px; }
/* v182 (Scott): "playing 3" under Shot 2 after a penalty; the From words after a drop */
html body .sc2 .sc-nwrap { display: flex; flex-direction: column; align-items: flex-start; margin-right: auto; }
html body .sc2 .sc-nwrap .sc-n { margin-right: 0; } html body .sc2 .sc-playing { font-size: 12.5px; font-weight: 700; color: #b0473f; margin: 3px 0 0 12px; letter-spacing: .02em; }
html body .sc2 .sc-lieq { color: #7a8780; font-weight: 500; }
/* v183 (Scott): My Game cleanup – + menu, slim time frames, folded knowledge line, small tiles under the shape, + on the cards */
html body .mygamepage .mgplus { position: static; width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 50%; font-size: 26px; font-weight: 300; line-height: 1; color: #17301f; background: rgba(255, 255, 255, .7); border: 1px solid rgba(23, 48, 31, .12); flex: none; }
html body .mygamepage .sheet-back.mgback { position: fixed; z-index: 40; }
html body .mygamepage .mgmenu { position: fixed; z-index: 41; top: calc(env(safe-area-inset-top) + 64px); right: calc(env(safe-area-inset-right) + 14px); width: 230px; display: flex; flex-direction: column; padding: 6px; border-radius: 20px; background: rgba(255, 255, 255, .94); box-shadow: 0 10px 30px rgba(20, 40, 30, .2); }
html body .mygamepage .mgmenu .sheet-item { background: transparent; border: 0; color: #17301f; text-align: left; font-size: 17px; font-weight: 500; padding: 13px 14px; border-radius: 14px; min-height: 0; box-shadow: none; }
html body .mygamepage .mgmenu .sheet-item + .sheet-item { border-top: 1px solid rgba(23, 48, 31, .1); border-radius: 0; }
html body .mygamepage .mgseg { display: flex; gap: 2px; padding: 3px; margin: 10px 0 0; border-radius: 999px; background: rgba(255, 255, 255, .55); border: 1px solid rgba(23, 48, 31, .1); box-sizing: border-box; width: 100%; }
html body .mygamepage .mgseg button { flex: 1; min-height: 30px; height: 30px; padding: 0 6px; border: 0; border-radius: 999px; background: transparent; box-shadow: none; font-size: 13.5px !important; font-weight: 500 !important; color: #4a5866; }
html body .mygamepage .mgseg button.sel { background: #17301f; color: #fff; box-shadow: 0 1px 4px rgba(20, 40, 60, .15); }
html body .mygamepage .mgrseg { margin-top: 6px; align-items: center; } html body .mygamepage .mgrseg > span { flex: none; font-size: 12.5px; padding: 0 6px 0 10px; color: #4a5866; }
html body .mgknow.shut { padding: 8px 12px 10px; }
html body .mgktog { width: 100%; background: transparent; border: 0; box-shadow: none; padding: 2px 0; min-height: 0; font: inherit; font-size: 12.5px; color: var(--frost-ink-soft); text-align: left; cursor: pointer; }
html body .mgktog b { margin-left: auto; } html body .mgkchev { font-style: normal; font-size: 17px; line-height: 1; color: var(--frost-ink-soft); transition: transform .2s; margin-left: 4px; }
html body .mgktog[aria-expanded="true"] .mgkchev { transform: rotate(90deg); }
html body .mgkall { display: block; height: 6px; margin: 6px 0 0; border-radius: 3px; background: rgba(23, 48, 31, .12); overflow: hidden; }
html body .mgkall u { display: block; height: 100%; border-radius: 3px; text-decoration: none; background: #c0442f; }
html body .mgkall.mid u { background: #c8962e; } html body .mgkall.ready u { background: #1f8a4c; }
html body .mgknow:not(.shut) .mgkall { margin-bottom: 10px; }
html body .mgtilewrap { margin-top: 10px; } html body .mgtileh { margin: 0 4px 6px; font-size: 12px; color: #4a5866; }
html body .mgtiles { grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 0; }
html body .mgtile { padding: 8px 6px 7px; border-radius: 14px; text-align: center; min-width: 0; }
html body .mgtile span { font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html body .mgtile b { font-size: 19px; line-height: 1.25; } html body .mgtile em { display: block; font-size: 11.5px; white-space: nowrap; }
html body .mgadd { width: 34px; height: 34px; min-height: 34px; padding: 0; flex: none; border-radius: 50%; border: 1px solid rgba(23, 48, 31, .14); background: rgba(255, 255, 255, .8); box-shadow: none; color: #17301f; font-size: 22px; font-weight: 400; line-height: 1; }
html body .prcardh { display: flex; justify-content: space-between; align-items: center; margin: 0 0 2px; } html body .prcardh .tkeye { margin-bottom: 0; }
html body .sgtmg .sgtcath { align-items: center; } html body .sgtmg .sgtcath h2 { margin: 0 auto 0 0; } html body .sgtmg .sgtcath .due { margin-right: 4px; }
html body .sgtmsub, html body .sgtmnone { margin: 4px 0 8px; font-size: 13.5px; color: var(--frost-ink-soft); }
html body .sgtmlist { display: flex; flex-direction: column; }
html body .sgtmrow { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 2px; min-height: 0; background: transparent; border: 0; box-shadow: none; border-top: 1px solid rgba(23, 48, 31, .1); border-radius: 0; text-align: left; font: inherit; color: var(--frost-ink); cursor: pointer; }
html body .sgtmrow b { flex: none; width: 54px; font-size: 14px; font-weight: 600; } html body .sgtmrow span { flex: 1; min-width: 0; font-size: 14px; line-height: 1.3; }
html body .sgtmrow i { font-style: normal; font-size: 18px; color: var(--frost-ink-soft); }
html body .sgtmrow.open { margin-top: 6px; border-top: 0; border-radius: 12px; padding: 10px; background: rgba(200, 150, 46, .14); } html body .sgtmrow.open b { width: auto; }
html body .mygamepage .topbar .mgplus { width: 44px; min-width: 44px; max-width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
html body .mgktog span { white-space: normal; overflow: visible; text-align: left; }
/* v184 (Scott): playing + practice by week – fixed hours axis, the weeks scroll sideways and open at the newest (rtl trick) */
html body .plwrap { display: flex; align-items: flex-start; margin: 10px 0 2px; }
html body .plyax { flex: none; display: block; }
html body .plscroll { flex: 1; min-width: 0; overflow-x: auto; overflow-y: hidden; direction: rtl; -webkit-overflow-scrolling: touch; scrollbar-width: none; overscroll-behavior-x: contain; }
html body .plscroll::-webkit-scrollbar { display: none; }
html body .plinner { direction: ltr; display: inline-block; }
html body .plweeks { display: block; }
.plweeks .plgrid { stroke: rgba(80,100,120,.15); stroke-width: 1; } .plweeks .plbase { stroke: rgba(40,60,80,.45); stroke-width: 1; }
.plweeks .plax, .plyax .plax { font-size: 10px; fill: #4b5d6e; font-weight: 600; } .plweeks .plax.now { fill: #10233a; font-weight: 800; }
.plweeks .plmon { font-size: 10.5px; fill: #23384d; font-weight: 700; } .plweeks .plmtick { stroke: rgba(40,60,80,.3); stroke-width: 1; }
.plyax .plyr { font-size: 10px; fill: #7b8b99; }
.plweeks .pltour { fill: #c99a2b; } .plweeks .plprac { fill: #4fa874; } .plweeks .plunt { fill: #a9b6c2; } .plweeks .plpr { fill: #4a7fd0; }
.plweeks .plsel { fill: rgba(74,127,208,.12); }
.plweeks .plhit { fill: transparent; cursor: pointer; }
.plweeks .plbenchl { fill: none; stroke: #2c5aa0; stroke-width: 1.6; stroke-dasharray: 4 3; pointer-events: none; }
.plleg .lg-pr { background: #4a7fd0; width: 7px; }
html body .plhrs { font-size: 12px; color: #5b6b78; margin: 8px 0 0; }
/* v188 (Scott): pinned round bar – Back · Scorecard · Stats · Holes – while a round is being entered */
html body .roundbar { position: fixed; z-index: 30; left: calc(env(safe-area-inset-left) + 12px); right: calc(env(safe-area-inset-right) + 12px); bottom: calc(env(safe-area-inset-bottom) + 10px);
  display: flex; padding: 5px 4px; border-radius: 26px; background: rgba(255, 255, 255, .86); -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4);
  box-shadow: 0 8px 28px rgba(20, 40, 60, .22); border: 1px solid rgba(255, 255, 255, .7); max-width: 520px; margin: 0 auto; }
html body .roundbar .rbbtn { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; background: none; border: 0; box-shadow: none; min-height: 0; height: auto;
  padding: 6px 0 4px; font-size: 11.5px; font-weight: 600; line-height: 1.1; color: #5b6b78; border-radius: 18px; }
html body .roundbar .rbbtn svg { width: 25px; height: 25px; } html body .roundbar .rbbtn.on { color: #17301f; background: rgba(31, 138, 76, .13); }
html body .roundbar .rbbtn:disabled { opacity: .32; }
html body.hasrbar #app { padding-bottom: calc(env(safe-area-inset-bottom) + 92px); }
html body .holetop2 { display: flex; align-items: center; justify-content: center; gap: 8px; position: relative; }
html body .holetop2 .livebar { margin: 0; }
html body .holemore { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; min-height: 40px; padding: 0; border-radius: 50%; font-size: 20px; line-height: 1; }
html body .sheet-back.hmback { position: fixed; inset: 0; z-index: 40; background: rgba(10, 25, 40, .18); }
html body .holemenu { position: fixed; z-index: 41; right: calc(env(safe-area-inset-right) + 14px); top: calc(env(safe-area-inset-top) + 130px); width: 220px; display: flex; flex-direction: column; padding: 6px; border-radius: 20px; background: rgba(255, 255, 255, .95); box-shadow: 0 10px 30px rgba(20, 40, 30, .2); }
html body .holemenu .sheet-item { background: transparent; border: 0; box-shadow: none; text-align: left; font-size: 17px; font-weight: 500; color: #17301f; padding: 13px 14px; border-radius: 14px; min-height: 0; }
html body .holemenu .sheet-item + .sheet-item { border-top: 1px solid rgba(23, 48, 31, .1); border-radius: 0; } html body .holemenu .sheet-item.danger { color: #b3261e; }
html body .nextrow { display: flex; gap: 10px; } html body .nextrow > button { margin-top: 0; } html body .nextrow > :first-child { flex: 1.6; } html body .nextrow .rpbtn { flex: 1; white-space: nowrap; }
html body .rbtop { justify-content: center; } html body .rbtop .title { text-align: center; }
html body .holemenu .sheet-item.danger { background: transparent !important; border: 0 !important; border-top: 1px solid rgba(23, 48, 31, .1) !important; box-shadow: none !important; }
html body .nextrow > button { flex: 1 !important; min-width: 0; } html body .rpcard { width: 100%; margin-top: 10px; min-height: 46px; }
/* v189 (Scott): the round bar sits flush on the bottom edge, full width, above every full-screen view of the round */
html body .roundbar { left: 0; right: 0; bottom: 0; max-width: none; margin: 0; border-radius: 22px 22px 0 0; border-width: 1px 0 0; z-index: 90;
  padding: 6px calc(env(safe-area-inset-right) + 8px) calc(env(safe-area-inset-bottom) + 6px) calc(env(safe-area-inset-left) + 8px); box-shadow: 0 -4px 22px rgba(20, 40, 60, .16); }
html body.hasrbar { --rbh: calc(env(safe-area-inset-bottom) + 66px); }
html body.hasrbar #app { padding-bottom: calc(var(--rbh) + 18px); }
html body.hasrbar .mapview, html body.hasrbar .storyfull, html body.hasrbar .sgtintro { bottom: var(--rbh); }
html body.hasrbar .rsheet-bg, html body.hasrbar .sheet-bg { padding-bottom: var(--rbh); box-sizing: border-box; }
/* v189: "Exit round?" when Back would leave the hole being entered */
html body .sheet-back.exback { position: fixed; inset: 0; z-index: 95; background: rgba(10, 25, 40, .32); }
html body .exitask { position: fixed; z-index: 96; left: 50%; top: 42%; transform: translate(-50%, -50%); width: min(320px, calc(100vw - 48px)); padding: 20px 18px 16px; border-radius: 22px;
  background: rgba(255, 255, 255, .97); box-shadow: 0 14px 40px rgba(20, 40, 60, .28); text-align: center; color: #17301f; }
html body .exitask b { display: block; font-size: 20px; margin-bottom: 6px; } html body .exitask p { margin: 0 0 16px; font-size: 15px; color: #4a5866; }
html body .exitbtns { display: flex; gap: 10px; } html body .exitbtns button { flex: 1; min-height: 46px; border-radius: 14px; font-size: 16px; }
/* v189: bottom sheets (live sharing, direction, send…) slide up over the round bar while they're open */
html body.hasrbar .sheet-bg, html body.hasrbar .rsheet-bg { padding-bottom: 0; z-index: 91; }
html body.hasrbar .sheet, html body.hasrbar .rsheet { z-index: 92; }
/* v191 (Scott): ☰ menus; + only starts something */
html body .menuic { width: 24px; height: 24px; display: block; }
html body .home .navbtn { right: auto; left: calc(env(safe-area-inset-left) + 18px); }
html body .home .navbtn.bangon::after { content: '!'; position: absolute; top: -4px; right: -4px; width: 18px; height: 18px; border-radius: 50%; background: #d23b2f; color: #fff; font: 800 12px/18px system-ui, sans-serif; text-align: center; }
html body .home .hsheet.navsheet { right: auto; left: calc(env(safe-area-inset-left) + 18px); }
html body .mygamepage .tbbtns { display: flex; gap: 8px; flex: none; }
html body .mygamepage .topbar .mgplus.mgnav, html body .mygamepage .topbar .mgplus { display: flex; align-items: center; justify-content: center; }
html body .holemore .menuic { margin: 0 auto; width: 22px; height: 22px; }
/* Round stats ☰ */
html body .rsmenubtn { width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex: none; }
html body .rbtop { position: relative; } html body .rbtop .rsmenubtn { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); }
html body .sheet-back.rsback { position: fixed; inset: 0; z-index: 93; background: rgba(10, 25, 40, .18); }
html body .rsmenu { position: fixed; z-index: 94; top: calc(env(safe-area-inset-top) + 74px); right: calc(env(safe-area-inset-right) + 12px); width: min(330px, calc(100vw - 24px));
  max-height: calc(100vh - env(safe-area-inset-top) - 90px); overflow-y: auto; display: flex; flex-direction: column; padding: 6px; border-radius: 20px; background: rgba(255, 255, 255, .96); box-shadow: 0 10px 30px rgba(20, 40, 30, .22); color: #17301f; }
html body .rsmenu .sheet-item { background: transparent; border: 0; box-shadow: none; text-align: left; font-size: 17px; font-weight: 500; color: #17301f; padding: 12px 12px; border-radius: 14px; min-height: 0; }
html body .rsmenu .sheet-item + .sheet-item, html body .rsmenu .rsmset + .sheet-item { border-top: 1px solid rgba(23, 48, 31, .1); border-radius: 0; }
html body .rsmenu .rsmi { display: flex; align-items: center; gap: 12px; } html body .rsmenu .rsmi .rsic { width: 40px; height: 40px; flex: none; }
html body .rsmenu .rsmi span { display: flex; flex-direction: column; } html body .rsmenu .rsmi b { font-size: 17px; } html body .rsmenu .rsmi small { font-size: 13px; color: #5b6b78; font-weight: 400; }
html body .rsmenu .rsmset { border-top: 1px solid rgba(23, 48, 31, .1); padding: 10px 6px 8px; display: flex; flex-direction: column; gap: 10px; }
html body .rsmenu .bmrow { margin: 0; flex-wrap: nowrap; } html body .rsmenu .bmrow .stbl { flex: 1; min-width: 0; }
html body .rsmenu .playpick { margin: 0; }
/* stat rows that open a map in one tap */
html body .stxgo .stxgo-c { font-style: normal; font-size: 20px; line-height: 1; color: #6b7b88; margin-left: 8px; }
/* replay: pinned header, the hole fits the screen */
html body #replayview .rpsticky { position: sticky; top: 0; z-index: 3; margin: calc(-1 * (env(safe-area-inset-top) + 8px)) -12px 8px; padding: calc(env(safe-area-inset-top) + 8px) 12px 8px; background: rgba(225, 238, 232, .94); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
html body #replayview #replaymap { max-height: calc(100vh - env(safe-area-inset-top) - 150px - var(--rbh, 0px)); width: auto; max-width: 100%; margin: 0 auto; }
html body .rsmenu .rsmi .rsic { flex: 0 0 36px; width: 36px; height: 36px; padding: 7px; border-radius: 11px; background: #1f5d3a; fill: none; stroke: #fff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; box-sizing: border-box; }
html body .rsmenu #storybtn .rsic { background: linear-gradient(135deg, #d8a23a, #c4553e); }
/* v192 (Scott): the Round stats ☰ menu – compact, not bulky */
html body .rsmenu { width: min(292px, calc(100vw - 24px)); padding: 6px; border-radius: 18px; top: calc(env(safe-area-inset-top) + 66px); }
html body .rsmenu .sheet-item { font-size: 16px !important; padding: 10px 10px !important; min-height: 0 !important; height: auto !important; line-height: 1.2; }
html body .rsmenu .rsmi { gap: 10px; } html body .rsmenu .rsmi .rsic { flex: 0 0 28px; width: 28px; height: 28px; padding: 5px; border-radius: 8px; }
html body .rsmenu .rsmi small { display: none; } html body .rsmenu .rsmi b { font-size: 16px; font-weight: 600; }
html body .rsmenu .rsmset { padding: 8px 10px 10px; gap: 8px; }
html body .rsmenu .bmwrap { margin: 0; }
html body .rsmenu .bmrow, html body .rsmenu .bmwrap .stsec.stsecsg { display: grid !important; grid-template-columns: 1fr auto; grid-template-rows: auto auto; gap: 4px 8px; align-items: center; margin: 0; padding: 0; min-height: 0; }
html body .rsmenu .bmrow .stsect { grid-column: 1 / -1; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #5b6b78; }
html body .rsmenu .bmwrap .stsec.stsecsg select.stbl { max-width: none; width: 100%; height: 34px; font-size: 14px !important; }
html body .rsmenu .bmrow .tipbtn { width: 28px; height: 28px; min-height: 28px; font-size: 14px; }
html body .rsmenu .bmnote { margin: 4px 0 0; font-size: 12.5px; }
html body .rsmenu .playpick { margin: 0; } html body .rsmenu .playpick .lbl { display: block; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #5b6b78; margin: 0 0 4px; padding: 0; }
html body .rsmenu .playseg { padding: 3px; gap: 3px; border-radius: 12px; background: rgba(23, 48, 31, .06); border: 0; }
html body .rsmenu .playseg button { min-height: 32px !important; height: 32px; font-size: 14px !important; border-radius: 9px; padding: 0 6px; }
html body .rsmenu .playseg button.sel { background: #17301f; color: #fff; }
/* header: a normal-size Edit round pill and a round ☰ */
html body .topbar #editround { font-size: 15px; padding: 8px 12px; min-height: 36px; height: auto; flex: none; }
html body .topbar .rsmenubtn { width: 40px !important; min-width: 40px; max-width: 40px; height: 40px !important; min-height: 40px !important; padding: 0 !important; border-radius: 50% !important; flex: none; }
html body .topbar .rsmenubtn .menuic { width: 20px; height: 20px; }
html body .rsmenu .rsmset > *, html body .rsmenu .playpick, html body .rsmenu .playseg { margin-bottom: 0 !important; padding-bottom: 0; }
html body .rsmenu .playseg { padding: 3px !important; } html body .rsmenu .rsmset { padding-bottom: 10px !important; }
html body .rsmenu .playpick > :not(.lbl):not(.playseg) { display: none; }
/* v193 (Scott): short game test ☰ (Tests, Make PDF, Trend) and the Trend page */
html body .sgtpage .sgtmenubtn { width: 40px; min-width: 40px; max-width: 40px; height: 40px; min-height: 40px; padding: 0; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex: none; }
html body .sgtpage .sgtmenubtn .menuic { width: 20px; height: 20px; }
html body .sheet-back.sgtback { position: fixed; inset: 0; z-index: 93; background: rgba(10, 25, 40, .18); }
html body .sgtmenu { position: fixed; z-index: 94; top: calc(env(safe-area-inset-top) + 66px); right: calc(env(safe-area-inset-right) + 12px); width: 220px; display: flex; flex-direction: column; padding: 6px; border-radius: 18px; background: rgba(255, 255, 255, .96); box-shadow: 0 10px 30px rgba(20, 40, 30, .22); }
html body .sgtmenu .sheet-item { background: transparent; border: 0; box-shadow: none; text-align: left; font-size: 16px; font-weight: 500; color: #17301f; padding: 11px 12px; border-radius: 12px; min-height: 0; }
html body .sgtmenu .sheet-item + .sheet-item { border-top: 1px solid rgba(23, 48, 31, .1); border-radius: 0; }
html body .sgttrendlede { margin: 4px 6px 10px; font-size: 13.5px; color: var(--frost-ink-soft); }
html body .trcard { padding: 12px 12px 6px; margin-bottom: 10px; }
html body .trhead { display: flex; align-items: baseline; gap: 10px; margin: 0 2px 4px; } html body .trhead b { font-size: 17px; flex: 1; }
html body .trhead span { font-size: 20px; font-weight: 800; } html body .trhead em { font-style: normal; font-size: 13px; color: #5b6b78; }
html body .trhead em.up { color: #1f6b3a; } html body .trhead em.down { color: #b0473f; }
html body .trgt { color: #1f6b3a; } html body .trat { color: #a06e0a; } html body .trrt { color: #b0473f; }
html body .trsvg { display: block; width: 100%; height: auto; }
.trsvg .trline { fill: none; stroke: #4a7fd0; stroke-width: 2.4; stroke-linejoin: round; } .trsvg .trbench { stroke: #17301f; stroke-width: 1.2; stroke-dasharray: 4 3; opacity: .55; }
.trsvg .trgrid { stroke: rgba(40, 60, 80, .12); stroke-width: 1; } .trsvg .trax { font-size: 10px; fill: #5b6b78; font-weight: 600; }
.trsvg .trg { fill: #1f9d55; stroke: #fff; stroke-width: 1.5; } .trsvg .tra { fill: #e0a82e; stroke: #fff; stroke-width: 1.5; } .trsvg .trr { fill: #d0604f; stroke: #fff; stroke-width: 1.5; }
html body .sgtpage .sgtmenubtn svg.menuic { width: 22px !important; height: 22px !important; min-width: 22px; flex: none; }
/* v194 (Scott): redesign – bottom bars on My Game / Practice / Test, the Practice and Trends pages */
html body .mygamepage .tbsp, html body .sgtpage .tbsp { min-width: 64px; }
html body .mgknowwrap { margin: 12px 0 0; padding: 4px 6px; border-radius: 20px; }
html body .mgknowwrap .mgknow { margin: 0; }
html body .practicepage .mgchart, html body .practicepage .prlist, html body .practicepage .prvs { margin-top: 12px; }
html body .trlede { margin: 10px 4px 6px; font-size: 13.5px; line-height: 1.4; color: #43525f; }
html body .trzoom { margin: 4px 0 10px; }
html body .trcard2 { padding: 12px 10px 8px; margin: 0 0 12px; border-radius: 20px; }
html body .trcard2 .trh { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 0 4px 4px; }
html body .trcard2 .trh b { font-size: 17px; } html body .trcard2 .trh span { font-size: 14px; font-weight: 700; color: #23384d; } html body .trcard2 .trh span.bad { color: #b0473f; }
html body .trcard2 .trfoot { margin: 4px 4px 2px; font-size: 12.5px; color: #4a5866; line-height: 1.35; }
html body .trcard2 .trfoot .up { color: #1f6b3a; font-weight: 700; } html body .trcard2 .trfoot .down { color: #b0473f; font-weight: 700; }
html body .trcard2.trnone { display: flex; justify-content: space-between; align-items: baseline; padding: 12px 14px; }
html body .trcard2.trnone b { font-size: 15.5px; } html body .trcard2.trnone span { font-size: 13px; color: #6b7b88; }
html body .trnote { margin: 4px 6px 12px; font-size: 12px; }
.trchart { display: block; width: 100%; height: auto; }
.trchart .trax { font-size: 9.5px; fill: #5b6b78; font-weight: 600; } .trchart .trax.now { fill: #17301f; }
.trchart .trpl { font-size: 10.5px; font-weight: 700; fill: #23384d; } .trchart .trpl.pr { fill: #2c5aa0; }
.trchart .trslip { fill: rgba(208, 96, 79, .15); } .trchart .trfuture { fill: rgba(255, 255, 255, .35); } .trchart .trfuture.bad { fill: rgba(208, 96, 79, .10); }
.trchart .trzero, .trchart .trbase { stroke: rgba(40, 60, 80, .28); stroke-width: 1; }
.trchart .trnorm { stroke: #17301f; stroke-dasharray: 4 3; opacity: .4; } .trchart .trnormp { stroke: #2c5aa0; stroke-dasharray: 4 3; opacity: .5; }
.trchart .trsg { fill: none; stroke: #17301f; stroke-width: 2.3; stroke-linejoin: round; } .trchart .trdot { fill: #17301f; opacity: .28; }
.trchart .trpr { fill: none; stroke: #4a7fd0; stroke-width: 2.3; stroke-linejoin: round; } .trchart .trdotp { fill: #4a7fd0; opacity: .38; }
.trchart .trband { fill: rgba(74, 127, 208, .13); } .trchart .trup { fill: none; stroke: #1f9d55; stroke-width: 1.6; } .trchart .trdn { fill: none; stroke: #d0604f; stroke-width: 1.6; }
.trchart .trup.thin, .trchart .trdn.thin { stroke-width: 1.3; }
.trchart .trmid { fill: none; stroke: #17301f; stroke-width: 2.3; stroke-dasharray: 6 4; } .trchart .trprmid { fill: none; stroke: #4a7fd0; stroke-width: 2.1; stroke-dasharray: 6 4; }
.trchart .trtoday { stroke: #17301f; opacity: .3; }
.trchart .trtag { font-size: 9.5px; font-weight: 700; fill: #17301f; } .trchart .trtag.up { fill: #1f6b3a; } .trchart .trtag.down, .trchart .trtag.bad { fill: #b0473f; }
.trchart .trgrid2 { stroke: rgba(40, 60, 80, .09); stroke-width: 1; }
html body .trcard .trcat { font-size: 18px; margin: 0 2px 4px; }
html body .trrow { padding: 6px 0 2px; } html body .trrow + .trrow { border-top: 1px solid rgba(23, 48, 31, .08); }
html body .trrow .trhead b { font-size: 15px; } html body .trrow .trhead span { font-size: 15px; font-weight: 700; }
/* v195: Log practice – Practice / Lesson, how it went, kind of practice, lessons */
.prsheet .prkind { margin: 8px 0 4px; }
.prqs { padding: 0 0 10px 10px; }
.prq { margin: 8px 0 5px; font-size: 13px; font-weight: 600; color: var(--frost-ink-soft); } .prq small { font-weight: 400; opacity: .8; }
.prchips { display: flex; flex-wrap: wrap; gap: 6px; }
.prchip { min-height: 36px; padding: 0 12px; border-radius: 999px; border: 1px solid rgba(23, 48, 31, .16); background: rgba(255, 255, 255, .55); color: var(--frost-ink); font: inherit; font-size: 14px; display: inline-flex; align-items: center; gap: 5px; }
.prchip i { font-style: normal; font-size: 15px; }
.prchip.on { background: #1f6f4a; border-color: #1f6f4a; color: #fff; font-weight: 600; }
.prcoach { display: flex; align-items: center; gap: 10px; margin: 8px 0 2px; font-size: 14px; color: var(--frost-ink-soft); }
.prcoach input { flex: 1; min-height: 40px; padding: 0 12px; border-radius: 12px; border: 1px solid rgba(23, 48, 31, .16); background: rgba(255, 255, 255, .7); font: inherit; font-size: 16px; color: var(--frost-ink); }
.prsheet .prnote { margin: 8px 0 2px; font-size: 13px; line-height: 1.4; color: #a06a12; }
.prlmin { margin-top: 10px; padding-left: 0; }
/* v195: Trends – patience line, countdown cards, lessons, expected dips (amber, not red) */
html body .trpatience { margin: 0 4px 10px; font-size: 13px; line-height: 1.4; color: #2f5a44; font-weight: 500; }
html body .trcard2 .trh span.exp, html body .trcard2 .trh span.trsoon { color: #a06a12; }
html body .trcard2.trearly .trfoot { margin-top: 4px; }
.trprog { height: 6px; margin: 2px 6px 0; border-radius: 999px; background: rgba(23, 48, 31, .1); overflow: hidden; }
.trprog i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #4f9d6d, #1f6f4a); }
.trchart .trslip.exp { fill: rgba(222, 160, 40, .16); } .trchart .trdip { fill: rgba(222, 160, 40, .14); }
.trchart .trtag.exp { fill: #a06a12; }
.trchart .trles { stroke: #6b5aa6; stroke-width: 1; stroke-dasharray: 2 3; } .trchart .trles.big { stroke-width: 1.6; stroke-dasharray: none; }
.trchart .trlestx { font-size: 8.5px; font-weight: 700; fill: #5a4a96; }
/* v196: Trends – the band is confidence (red → amber → green); no colour for better / worse */
.trchart .trband.low { fill: rgba(208, 96, 79, .22); } .trchart .trband.mid { fill: rgba(222, 160, 40, .24); } .trchart .trband.high { fill: rgba(63, 150, 96, .24); }
.trchart .trwhat { fill: none; stroke: #6f7d88; stroke-width: 1.3; stroke-dasharray: 3 3; } .trchart .trwhat.thin { stroke-width: 1.1; }
.trchart .trtag.what { fill: #4d5b66; }
.trchart .trdip { fill: rgba(107, 90, 166, .10); } .trchart .trtag.exp { fill: #5a4a96; }
html body .trconf { margin: -2px 4px 2px; font-size: 12px; font-weight: 700; } html body .trconf.low { color: #b0473f; } html body .trconf.mid { color: #a06a12; } html body .trconf.high { color: #2f7a4c; }
html body .trlede b.cl { color: #b0473f; } html body .trlede b.cm { color: #a06a12; } html body .trlede b.ch { color: #2f7a4c; }
/* v197: tap a week's dot */
.trchart .trhit { fill: transparent; cursor: pointer; } .trchart .trsel { fill: none; stroke: #17301f; stroke-width: 1.6; }
html body .trwk { margin: 2px 4px 6px; padding: 8px 10px; border-radius: 14px; background: rgba(255, 255, 255, .6); }
html body .trwkh { display: flex; align-items: center; justify-content: space-between; } html body .trwkh b { font-size: 13.5px; } html body .trwkh .txt { min-height: 32px; padding: 0 6px; }
html body .trwk ul { list-style: none; margin: 4px 0 0; padding: 0; } html body .trwk li { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; font-size: 13.5px; border-top: 1px solid rgba(23, 48, 31, .08); }
html body .trwk li span { color: #43525f; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } html body .trwk li b { white-space: nowrap; }
/* v198: the pinned tab bar – My Game · Rounds · (+) · Practice · Stats – and the page button rows */
html body .tabbar { position: fixed; z-index: 90; left: 0; right: 0; bottom: 0; display: flex; align-items: flex-end;
  padding: 6px calc(env(safe-area-inset-right) + 8px) calc(env(safe-area-inset-bottom) + 6px) calc(env(safe-area-inset-left) + 8px);
  border-radius: 22px 22px 0 0; background: rgba(255, 255, 255, .88); -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4);
  border-top: 1px solid rgba(255, 255, 255, .7); box-shadow: 0 -4px 22px rgba(20, 40, 60, .16); }
html body .tabbar .tbbtn { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; background: none; border: 0; box-shadow: none; min-height: 0; height: auto;
  padding: 6px 0 4px; font-size: 11.5px; font-weight: 600; line-height: 1.1; color: #5b6b78; border-radius: 18px; }
html body .tabbar .tbbtn svg { width: 25px; height: 25px; } html body .tabbar .tbbtn.on { color: #17301f; background: rgba(31, 138, 76, .13); }
html body .tabbar .tbplus { flex: 0 0 auto; width: 62px; height: 62px; margin: -24px 6px 2px; border-radius: 50%; border: 4px solid rgba(255, 255, 255, .95); padding: 0;
  background: linear-gradient(160deg, #2c8a58, #17603b); color: #fff; box-shadow: 0 6px 18px rgba(23, 96, 59, .45); display: flex; align-items: center; justify-content: center; }
html body .tabbar .tbplus svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; }
html body.hastab .home-bottom { bottom: calc(env(safe-area-inset-bottom) + 92px); } html body.hastab .homever { bottom: calc(env(safe-area-inset-bottom) + 76px); }
html body.hastab .home #plusmenu { top: auto; left: calc(env(safe-area-inset-left) + 18px); right: calc(env(safe-area-inset-right) + 18px); width: auto; max-width: 380px; margin: 0 auto; bottom: calc(env(safe-area-inset-bottom) + 96px); max-height: calc(100vh - env(safe-area-inset-top) - 140px); background: #f7f8f6 !important; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: 0 10px 34px rgba(20, 40, 60, .3); z-index: 20; } /* opens above the + */
html body.hastab .home .sheet-back { background: rgba(10, 20, 15, .28); }
html body .qrow { display: flex; gap: 8px; margin: 0 0 10px; }
html body .qrow .qbtn { flex: 1; display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 46px; padding: 0 8px; border-radius: 16px; font: inherit; font-size: 14.5px; font-weight: 600; color: #17301f; }
html body .qrow .qbtn svg { width: 21px; height: 21px; flex: 0 0 auto; } html body .qrow .qbtn.on { background: rgba(31, 138, 76, .16); }
html body .prbig { display: block; width: 100%; min-height: 54px; margin: 0 0 10px; font-size: 17px; border-radius: 18px; }
html body .qrow .qbtn { min-width: 0; } html body #sgtqrow .qbtn { flex-direction: column; gap: 2px; min-height: 54px; font-size: 12.5px; padding: 4px 2px; } html body #sgtqrow .qbtn svg { width: 22px; height: 22px; }
/* v199: discard an empty round in progress from Home */
html body .home .resumex { min-height: 34px; margin-top: -6px; padding: 0 14px; border-radius: 999px; background: rgba(0, 0, 0, .28); color: #fff; font-size: 13.5px; font-weight: 600; border: 0; text-shadow: 0 1px 2px rgba(0, 0, 0, .4); }
/* v200: Home's rotating "next thing" card */
html body .home .hcard { position: relative; width: min(420px, calc(100vw - 32px)); margin: 0 auto 10px; padding: 12px 16px 10px; border-radius: 24px; text-align: left; color: #fff; overflow: hidden; }
html body .home .hctrack { display: grid; } /* every slide in the same cell – the card is as tall as the tallest */
html body .home .hcslide { grid-area: 1 / 1; display: flex; flex-direction: column; gap: 3px; opacity: 0; transform: translateX(14px); transition: opacity .45s ease, transform .45s ease; pointer-events: none; }
html body .home .hcslide.on { opacity: 1; transform: none; pointer-events: auto; }
html body .home .hckick { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: .85; text-shadow: 0 1px 2px rgba(0, 0, 0, .35); }
html body .home .hctitle { font-size: 20px; line-height: 1.2; font-weight: 700; text-shadow: 0 1px 3px rgba(0, 0, 0, .4); }
html body .home .hcsub { font-size: 14.5px; line-height: 1.3; opacity: .95; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-shadow: 0 1px 2px rgba(0, 0, 0, .35); }
html body .home .hcbtn { align-self: flex-start; margin-top: 8px; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 0; background: rgba(255, 255, 255, .92); color: #17301f; font: inherit; font-size: 15px; font-weight: 700; box-shadow: 0 2px 8px rgba(0, 0, 0, .18); }
html body .home .hcdots { display: flex; justify-content: center; gap: 6px; margin-top: 8px; } html body .home .hcdots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255, 255, 255, .45); transition: background .3s, width .3s; }
html body .home .hcdots i.on { width: 16px; border-radius: 3px; background: #fff; }
@media (prefers-reduced-motion: reduce) { html body .home .hcslide { transition: none; transform: none; } }
html body .tabbar .tbbtn.bangon { position: relative; } html body .tabbar .tbbtn.bangon::after { position: absolute; top: 2px; left: calc(50% + 8px); margin: 0; width: 16px; height: 16px; font-size: 11px; } /* v200: the benchmark "!" on the My Game tab */
/* v200 (Scott): a shorter card – less of the photo covered; dots on the button's row */
html body .home .hcard { width: min(380px, calc(100vw - 40px)); padding: 10px 14px 10px; border-radius: 20px; }
html body .home .hcslide { gap: 1px; } html body .home .hckick { font-size: 11px; } html body .home .hctitle { font-size: 17px; line-height: 1.2; }
html body .home .hcsub { font-size: 13.5px; -webkit-line-clamp: 1; }
html body .home .hcbtn { margin-top: 7px; min-height: 34px; padding: 0 14px; font-size: 14px; }
html body .home .hcdots { position: absolute; right: 16px; bottom: 22px; margin: 0; }
/* v202: the read of a putt – one tap on a 3×3 pad (rows: uphill / flat / downhill; columns: breaks left / straight / breaks right) */
html body .readpad { margin: 2px 0 8px 44px; padding: 8px 10px; border-radius: 14px; background: rgba(255, 255, 255, .55); }
html body .readpad .rphead { display: flex; align-items: baseline; gap: 8px; margin-bottom: 6px; } html body .readpad .rphead small { font-size: 12px; color: #5b6b78; font-weight: 600; } html body .readpad .rphead b { font-size: 13.5px; color: #17301f; }
html body .readpad .rpgrid { display: grid; grid-template-columns: 64px repeat(3, 1fr); gap: 5px; align-items: center; }
html body .readpad .rpgrid > i { font-style: normal; font-size: 11.5px; font-weight: 600; color: #5b6b78; text-align: center; } html body .readpad .rpgrid > i.rps { text-align: left; }
html body .readpad .rpc { min-height: 32px; border-radius: 10px; border: 1px solid rgba(23, 48, 31, .14); background: rgba(255, 255, 255, .75); color: #2f4a3a; display: flex; align-items: center; justify-content: center; padding: 0; }
html body .readpad .rpc.up { background: rgba(255, 255, 255, .75); } html body .readpad .rpc.down { background: rgba(232, 238, 245, .9); }
html body .readpad .rpc svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
html body .readpad .rpc.on { background: #1f6f4a; border-color: #1f6f4a; color: #fff; }
html body .shotcard .readpad { margin: 10px 0 2px; }
/* v203: the practice plan – "Practice next" */
html body .plancard { padding: 14px 14px 10px; } html body .planhead { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
html body .planhead b { font-size: 19px; } html body .planhead small { font-size: 12.5px; color: #5b6b78; text-align: right; }
html body .tourrow { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 40px; margin: 0 0 8px; padding: 0 12px; border-radius: 12px; border: 1px solid rgba(23, 48, 31, .12); background: rgba(255, 255, 255, .55); font: inherit; font-size: 14px; font-weight: 600; color: #17301f; text-align: left; }
html body .tourrow span { font-weight: 600; color: #1f6f4a; font-size: 13px; } html body .tourrow.add { color: #1f6f4a; justify-content: flex-start; border-style: dashed; }
html body .tourform { margin: 0 0 10px; padding: 10px 12px; border-radius: 14px; background: rgba(255, 255, 255, .6); } html body .tourform label { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; margin-bottom: 8px; }
html body .tourform input { flex: 1; min-height: 40px; padding: 0 10px; border-radius: 10px; border: 1px solid rgba(23, 48, 31, .18); font: inherit; font-size: 16px; background: #fff; }
html body .tourhelp { margin: 8px 0 6px; font-size: 12.5px; } html body .tourbtns { display: flex; justify-content: flex-end; gap: 8px; }
html body .planmsg { margin: 0 0 10px; padding: 9px 12px; border-radius: 12px; background: rgba(31, 111, 74, .1); font-size: 13.5px; line-height: 1.35; color: #17301f; } html body .planmsg.sharp { background: rgba(222, 160, 40, .16); }
html body .planlist { list-style: none; margin: 0; padding: 0; } html body .planitem { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; border-top: 1px solid rgba(23, 48, 31, .09); }
html body .planitem:first-child { border-top: 0; } html body .planitem .pin { flex: 0 0 24px; height: 24px; border-radius: 50%; background: #1f6f4a; color: #fff; font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin-top: 2px; }
html body .planitem.maint .pin { background: #8a9aa6; } html body .planitem.coach .pin { background: #6b5aa6; }
html body .pltext { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; } html body .pltext small { font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #5b6b78; }
html body .pltext b { font-size: 15.5px; line-height: 1.25; } html body .plwhy { font-size: 13px; line-height: 1.35; color: #43525f; } html body .pltip { font-size: 12.5px; color: #a06a12; font-weight: 600; }
html body .plright { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; } html body .plmin { font-size: 13px; font-weight: 700; white-space: nowrap; }
html body .plbtn { min-height: 34px; padding: 0 14px; border-radius: 999px; border: 0; background: #1f6f4a; color: #fff; font: inherit; font-size: 14px; font-weight: 700; }
html body .planahead { display: flex; flex-direction: column; gap: 4px; padding: 10px 0; } html body .planahead b { font-size: 16px; } html body .planahead span { font-size: 13.5px; color: #43525f; }
html body .plddone { margin: 6px 0 2px; font-size: 13px; color: #2f7a4c; font-weight: 600; } html body .plnote { margin: 8px 0 0; font-size: 12.5px; }
html body .pldoneit { font-size: 12.5px; color: #2f7a4c; font-weight: 700; }
html body .card.plancard { display: block; } html body .plancard .planlist, html body .plancard .tourrow { width: 100%; }
/* v204: the plan explains itself and is never empty */
html body .plintro { margin: -2px 0 10px; font-size: 13.5px; line-height: 1.4; color: #43525f; } html body .plintro b { color: #1f6f4a; }
html body .planlist .plsep { margin: 6px 0 0; padding: 8px 0 2px; border-top: 1px solid rgba(23, 48, 31, .09); font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #8a9aa6; }
html body .planlist .plsep + .planitem { border-top: 0; } html body .planahead { padding: 2px 0 6px; }
/* v205: start a session, your typical week, this week's bars */
html body .prtop { display: flex; gap: 8px; margin: 0 0 10px; } html body .prtop .prbig { flex: 1.4; width: auto; margin: 0; } html body .prtop .prbig2 { flex: 1; min-height: 54px; border-radius: 18px; font: inherit; font-size: 15px; font-weight: 700; color: #17301f; }
html body .card.typcard, html body .card.weekcard { display: block; padding: 14px 14px 10px; } html body .typcard > b { font-size: 18px; } html body .typrow { padding-left: 0; margin-top: 6px; }
html body .typcard .tourbtns { margin-top: 10px; }
html body .typedit { padding: 0; min-height: 0; font-size: 12.5px; color: #1f6f4a; font-weight: 600; background: none; border: 0; }
html body .sesssheet .sesst { margin: 10px 0 6px; } html body .sesssheet .sesst .prchip { min-height: 44px; padding: 0 16px; font-size: 15px; font-weight: 600; }
html body .sesssheet .sesslist .prchips { margin-top: 6px; } html body .sesssheet .sesslist .prchip { min-height: 32px; padding: 0 10px; font-size: 13px; } html body .sesssheet .prfoot .primary { margin-left: auto; }
html body .wknav { display: flex; align-items: center; gap: 2px; } html body .wknav b { font-size: 18px; min-width: 0; } html body .wknav .txt { min-height: 34px; min-width: 30px; padding: 0 6px; font-size: 20px; color: #1f6f4a; background: none; border: 0; box-shadow: none; }
html body .wknav .txt:disabled { opacity: .3; } html body .weekcard .planhead small { font-size: 14px; font-weight: 700; color: #17301f; }
html body .wkdots { display: flex; gap: 6px; margin: 0 0 12px 4px; } html body .wkdots i { width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid #1f6f4a; }
html body .wkdots i.full { background: #1f6f4a; } html body .wkdots i.half { background: linear-gradient(90deg, #1f6f4a 50%, transparent 50%); } html body .wkdots i.cur { box-shadow: 0 0 0 2px rgba(31, 111, 74, .25); }
html body .wkbars { display: flex; flex-direction: column; gap: 9px; } html body .wkrow { display: grid; grid-template-columns: 88px 1fr 92px; align-items: center; gap: 8px; }
html body .wkname { font-size: 13px; font-weight: 600; color: #2f4a3a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html body .wkbar { position: relative; display: block; height: 14px; border-radius: 7px; background: rgba(23, 48, 31, .08); } html body .wkfill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 7px; background: #6fae86; }
html body .wkrow.got .wkfill { background: #1f6f4a; } html body .wktgt { position: absolute; top: -3px; bottom: -3px; width: 2.5px; margin-left: -1px; border-radius: 1px; background: #17301f; }
html body .wkval { font-size: 12.5px; font-weight: 700; white-space: nowrap; text-align: right; } html body .wkval small { font-weight: 500; color: #5b6b78; } html body .wkrow.got .wkval { color: #1f6f4a; }
html body .wknote { margin: 10px 0 0; font-size: 12.5px; }
html body .typcard .typrow .prstep { width: 40px; height: 40px; min-height: 40px; min-width: 40px; padding: 0; } html body .typcard .typrow { min-height: 48px; } html body .typcard .typrow .prval { min-width: 92px; text-align: center; }
/* v206 (Scott): This week – nothing falls off; swipe for the days of the week and the last 3 months */
html body .weekcard .planhead { flex-wrap: nowrap; } html body .wknav b { white-space: nowrap; font-size: 17px; } html body .weekcard .planhead small { white-space: nowrap; font-size: 13px; }
html body .wkrow { grid-template-columns: 82px minmax(40px, 1fr) auto; gap: 7px; } html body .wkval { font-size: 12.5px; } html body .wkval small { font-size: 11.5px; }
html body .wkpages { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin: 0 -2px; }
html body .wkpages::-webkit-scrollbar { display: none; } html body .wkpage { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; padding: 0 2px; box-sizing: border-box; }
html body .wkpdots { display: flex; justify-content: center; gap: 6px; margin-top: 8px; } html body .wkpdots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(23, 48, 31, .2); transition: width .2s, background .2s; }
html body .wkpdots i.on { width: 16px; border-radius: 3px; background: #1f6f4a; }
html body .wkpt { margin: 0 0 4px; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #5b6b78; }
html body .wkchart { display: block; width: 100%; height: auto; } html body .wkchart .wkgrid { stroke: rgba(23, 48, 31, .09); } html body .wkchart .wkbase { stroke: rgba(23, 48, 31, .35); }
html body .wkchart .wkax { font-size: 9.5px; fill: #5b6b78; } html body .wkchart .wkax.now { fill: #17301f; font-weight: 700; } html body .wkchart .wkdtot { font-size: 9px; font-weight: 700; fill: #17301f; }
html body .wkchart .pg0, html body .pglegend .pg0 { fill: #3f7fbf; background: #3f7fbf; } html body .wkchart .pg1, html body .pglegend .pg1 { fill: #d39b2a; background: #d39b2a; }
html body .wkchart .pg2, html body .pglegend .pg2 { fill: #3f9a63; background: #3f9a63; } html body .wkchart .pg3, html body .pglegend .pg3 { fill: #7a5ab0; background: #7a5ab0; }
html body .wkchart .band { fill-opacity: .78; stroke: #fff; stroke-width: .6; } html body .wkchart .wktotal { fill: none; stroke: #17301f; stroke-width: 1.4; }
html body .wkchart .wktgtline { stroke: #17301f; stroke-width: 1; stroke-dasharray: 4 3; } html body .wkchart .wkles { stroke: #6b5aa6; stroke-width: 1.4; stroke-dasharray: 2 2; } html body .wkchart .wktour { font-size: 11px; }
html body .pglegend { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 12px; margin-top: 6px; font-size: 12px; color: #2f4a3a; font-weight: 600; }
html body .pglegend span { display: inline-flex; align-items: center; gap: 5px; } html body .pglegend i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
html body .leskey { display: inline-block; width: 0; height: 11px; border-left: 2px dashed #6b5aa6; vertical-align: -1px; margin: 0 2px; }
html body .wkchart .wktgtlab { paint-order: stroke; stroke: rgba(255, 255, 255, .9); stroke-width: 3px; stroke-linejoin: round; fill: #17301f; font-weight: 600; }
/* v207 (Scott): the This week card full screen – tap to open, swipe down / ✕ / Back to close */
html body .weekcard:not(.isfull) { cursor: pointer; }
html body .card.weekcard.isfull { position: fixed; z-index: 95; left: 0; right: 0; top: 0; bottom: 0; margin: 0; border-radius: 0; overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: calc(env(safe-area-inset-top) + 34px) 18px calc(env(safe-area-inset-bottom) + 24px); background: linear-gradient(180deg, #eef3f6, #f6f1e4); transition: transform .18s ease; }
html body.wkopen { overflow: hidden; } html body.wkopen .tabbar { display: none; }
html body .weekcard .wkgrab { position: absolute; left: 50%; top: calc(env(safe-area-inset-top) + 10px); width: 40px; height: 5px; margin-left: -20px; border-radius: 3px; background: rgba(23, 48, 31, .25); }
html body .weekcard .wkx { position: absolute; right: 14px; top: calc(env(safe-area-inset-top) + 8px); width: 36px; height: 36px; min-height: 36px; padding: 0; border-radius: 50%; border: 0; background: rgba(23, 48, 31, .08); font-size: 16px; color: #17301f; }
html body .weekcard.isfull .planhead { margin-top: 8px; } html body .weekcard.isfull .wknav b { font-size: 22px; } html body .weekcard.isfull .planhead small { font-size: 15px; }
html body .weekcard.isfull .wkrow { grid-template-columns: 104px minmax(60px, 1fr) auto; } html body .weekcard.isfull .wkname, html body .weekcard.isfull .wkval { font-size: 14.5px; } html body .weekcard.isfull .wkbar { height: 18px; border-radius: 9px; } html body .weekcard.isfull .wkfill { border-radius: 9px; }
html body .weekcard.isfull .wkbars { gap: 14px; margin-top: 6px; } html body .weekcard.isfull .wkpt { font-size: 13px; margin-top: 8px; } html body .weekcard.isfull .pglegend { font-size: 14px; margin-top: 12px; }
html body .weekcard.isfull .wkpdots { margin-top: 16px; } html body .weekcard.isfull .wkpdots i { width: 8px; height: 8px; } html body .weekcard.isfull .wkpdots i.on { width: 22px; }
/* v209: just stats or stats + practice – the first-launch choice and the Practice plan switch */
.modepick { display: grid; gap: 8px; margin: 4px 0 6px; }
.modeopt { display: block; width: 100%; text-align: left; padding: 11px 14px; border-radius: 14px; border: 2px solid rgba(0,0,0,.12); background: rgba(255,255,255,.75); font: inherit; color: inherit; }
.modeopt b { display: block; font-size: 16px; }
.modeopt span { display: block; font-size: 13.5px; color: #5b6660; margin-top: 2px; }
.modeopt.on { border-color: #1f6b45; background: #eef6f0; }
.namehelp.modeq { margin: 12px 0 4px; font-weight: 600; }
.namehelp.modenote { font-size: 13px; margin: 2px 0 8px; }
.moderow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: 16px; margin: 12px 0; }
.moderow b { display: block; font-size: 16px; }
.moderow small { display: block; font-size: 13px; color: #5b6660; margin-top: 2px; }
.moderow .prchips { flex: none; display: flex; gap: 6px; }
/* v211: My Practice in three time frames – this week, last 30 days, last 3 months; tap for full screen */
html body .prchart .prpages { cursor: pointer; }
html body .prchart .prper { display: block; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #1f6f4a; margin-top: 4px; }
html body .prchart .prh { margin: 2px 0 4px; }
html body .prchart .prlede2 { margin: 0 0 4px; color: #3f5a48; font-size: 15px; min-height: 20px; }
html body .prchart .prtyp { color: #6b7d71; font-size: 13px; }
html body .prchart .prpage .mglegend { flex-wrap: wrap; justify-content: center; }
html body .mgchart.prchart.isfull { position: fixed; z-index: 95; left: 0; right: 0; top: 0; bottom: 0; margin: 0; border-radius: 0; overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: calc(env(safe-area-inset-top) + 34px) 18px calc(env(safe-area-inset-bottom) + 24px); background: linear-gradient(180deg, #eef3f6, #f6f1e4); transition: transform .18s ease; }
html body .prchart .wkgrab { position: absolute; left: 50%; top: calc(env(safe-area-inset-top) + 10px); width: 40px; height: 5px; margin-left: -20px; border-radius: 3px; background: rgba(23, 48, 31, .25); }
html body .prchart .wkx { position: absolute; right: 14px; top: calc(env(safe-area-inset-top) + 8px); width: 36px; height: 36px; min-height: 36px; padding: 0; border-radius: 50%; border: 0; background: rgba(23, 48, 31, .08); font-size: 16px; color: #17301f; }
html body .prchart.isfull .prpages { cursor: default; } html body .prchart.isfull .prh { font-size: 28px; } html body .prchart.isfull .prlede2 { font-size: 16px; }
html body .prchart.isfull .wkpdots { margin-top: 16px; } html body .prchart.isfull .wkpdots i { width: 8px; height: 8px; } html body .prchart.isfull .wkpdots i.on { width: 22px; }
html body .prchart.isfull .prpage { padding-top: 6px; } html body .prchart.isfull .radar { margin: 10px 0 6px; } html body .prchart.isfull .prhow { margin-top: 18px; }
/* v212: coach sharing – the Athletes screen, the switcher, and the Coach card in Settings */
html body .cmlist { padding: 0 14px calc(env(safe-area-inset-bottom) + 40px); }
html body .cmcode { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 14px; border-radius: 16px; background: rgba(255, 255, 255, .72); border: 1px solid rgba(23, 48, 31, .12); margin: 10px 0 8px; }
html body .cmcode small { display: block; font-size: 12px; color: #5b6660; letter-spacing: .04em; text-transform: uppercase; } html body .cmcode b { font-size: 21px; letter-spacing: .12em; color: #17301f; }
html body .cmcode button { border: 0; border-radius: 999px; padding: 9px 16px; background: #1f6f4a; color: #fff; font: inherit; font-weight: 700; font-size: 15px; min-height: 0; }
html body .cmsearch { width: 100%; box-sizing: border-box; padding: 10px 14px; border-radius: 12px; border: 1px solid rgba(23, 48, 31, .14); background: rgba(255, 255, 255, .7); font: inherit; font-size: 16px; margin: 0 0 6px; }
html body .cmstat { margin: 2px 4px 4px; font-size: 13px; color: #3f5a48; min-height: 18px; }
html body .cmsec { font-size: 12.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #3f5a48; margin: 10px 4px 6px; }
html body .cmcard { display: grid; grid-template-columns: 46px 1fr auto; gap: 2px 12px; align-items: center; width: 100%; text-align: left; padding: 12px 14px; border-radius: 18px; background: rgba(255, 255, 255, .82); border: 1px solid rgba(23, 48, 31, .1); margin: 0 0 10px; box-shadow: 0 2px 10px rgba(23, 48, 31, .06); font: inherit; color: inherit; min-height: 0; }
html body .cmav { grid-column: 1; grid-row: 1 / 3; width: 46px; height: 46px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 19px; color: #fff; }
html body .cmname { grid-column: 2; grid-row: 1; font-weight: 800; font-size: 17px; color: #17301f; } html body .cmwhen { grid-column: 2; grid-row: 2; font-size: 13.5px; color: #5b6660; }
html body .cmscore { grid-column: 3; grid-row: 1 / 3; text-align: right; } html body .cmscore b { display: block; font-size: 22px; color: #17301f; } html body .cmscore small { font-size: 12.5px; font-weight: 700; }
html body .cmup { color: #1f7a44; } html body .cmdn { color: #c0392b; } html body .cmflat { color: #6b7d71; }
html body .cmflags { grid-column: 1 / 4; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; } html body .cmflag { font-size: 13px; font-weight: 700; padding: 4px 10px; border-radius: 999px; }
html body .cmred { background: #fde8e6; color: #b03024; } html body .cmgreen { background: #e4f3ea; color: #1f6f4a; } html body .cmamber { background: #fdf1dc; color: #8a5a10; } html body .cmnew { background: #1f73c9; color: #fff; } html body .cmflat2 { background: #eef1ee; color: #3f5a48; }
html body .cmempty { margin: 14px 0; padding: 16px; border-radius: 18px; background: rgba(255, 255, 255, .78); } html body .cmempty p { margin: 6px 0 0; color: #3f5a48; font-size: 15px; line-height: 1.45; }
html body .cmfoot { text-align: center; color: #5b6660; font-size: 13px; margin: 12px 0; }
html body .cmsw { display: inline-flex; align-items: center; gap: 4px; } html body .cmsw i { font-style: normal; font-size: 13px; opacity: .7; } html body #coswitch { cursor: pointer; }
html body .cmdim { position: fixed; inset: 0; z-index: 98; background: rgba(0, 0, 0, .25); }
html body .cmdrop { position: fixed; z-index: 99; left: 14px; right: 14px; top: calc(env(safe-area-inset-top) + 86px); max-height: 60vh; overflow-y: auto; border-radius: 18px; background: #fff; box-shadow: 0 12px 40px rgba(0, 0, 0, .25); padding: 6px; }
html body .cmdrop button { display: flex; width: 100%; align-items: center; gap: 10px; padding: 12px; border: 0; border-radius: 12px; background: none; font: inherit; font-size: 16px; color: #17301f; text-align: left; min-height: 0; }
html body .cmdrop button.on { background: #eef6f0; font-weight: 800; } html body .cmdrop small { margin-left: auto; color: #5b6660; font-size: 13px; }
html body .tbspace { flex: 0 0 64px; }
html body .cshare { display: block; padding: 14px; margin: 8px 0 12px; } html body .cshare .csp { margin: 0 0 8px; font-size: 15.5px; line-height: 1.4; } html body .cshare .csmuted { margin: 0 0 8px; font-size: 13.5px; color: #5b6660; }
html body .csrow { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 6px; } html body .cslink { color: #3f5a48; text-decoration: underline; }
html body .cswarn { border: 0; border-radius: 999px; padding: 9px 14px; background: #c0392b; color: #fff; font: inherit; font-weight: 700; min-height: 0; }
html body .csform { display: flex; gap: 8px; margin-top: 8px; } html body .csform input { flex: 1; min-width: 0; }
html body .cssheet input[type=text], html body .cssheet input[type=email], html body .cssheet input[type=password] { width: 100%; box-sizing: border-box; margin: 6px 0; padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(23, 48, 31, .2); font: inherit; font-size: 17px; background: #fff; }
html body .cssheet .cscode { font-size: 24px; letter-spacing: .2em; text-align: center; text-transform: uppercase; }
html body .cssheet .csteam { margin: 8px 0 10px; padding: 12px 14px; border-radius: 14px; background: #eef6f0; } html body .cssheet .csteam b { font-size: 17px; } html body .cssheet .csteam p { margin: 6px 0 0; color: #3f5a48; font-size: 15px; line-height: 1.4; }
html body .cssheet .csage { display: grid; gap: 8px; margin: 6px 0 10px; } html body .cserr { color: #b03024; font-size: 14.5px; margin: 6px 2px; } html body .csok { color: #1f6f4a; font-size: 14.5px; margin: 6px 2px; }
html body .cssheet .cotabs { margin: 4px 0 8px; } html body .cssheet .csp { margin: 0 0 6px; color: #3f5a48; }
html body .csback { position: fixed; inset: 0; z-index: 99; background: rgba(10, 20, 15, .35); }
html body .cssheet { position: fixed; z-index: 100; left: 0; right: 0; bottom: 0; max-height: 90vh; overflow-y: auto; -webkit-overflow-scrolling: touch; background: #fbfaf6; color: #17301f; border-radius: 24px 24px 0 0; padding: 18px 16px calc(env(safe-area-inset-bottom) + 18px); box-shadow: 0 -10px 40px rgba(0, 0, 0, .2); }
html body .cssheet .cshead { font-size: 21px; font-weight: 800; margin: 0 0 8px; }
html body .cspri { display: block; border: 0; border-radius: 999px; padding: 12px 18px; background: #2f6b3f; color: #fff; font: inherit; font-size: 16.5px; font-weight: 700; min-height: 0; box-shadow: none; }
html body .cspri:disabled { opacity: .45; } html body .cssheet .csgo { width: 100%; margin-top: 10px; }
html body .cssec { display: block; border: 1.5px solid rgba(23, 48, 31, .3); border-radius: 999px; padding: 10px 16px; background: rgba(255, 255, 255, .85); color: #17301f; font: inherit; font-size: 15.5px; font-weight: 700; min-height: 0; box-shadow: none; }
html body .cslink, html body .cslink2 { border: 0; background: none; box-shadow: none; padding: 8px 4px; min-height: 0; color: #3f5a48; font: inherit; font-size: 15px; text-decoration: underline; }
html body .cslink2 { display: block; width: 100%; text-align: center; margin-top: 4px; text-decoration: none; font-weight: 600; }
html body .cssheet .csopt { color: #17301f; background: #fff; } html body .cssheet .csopt b { color: #17301f; font-size: 16px; } html body .cssheet .csopt.on { background: #eef6f0; border-color: #1f6f4a; }
html body .cssheet .cotabs .prchip { color: #17301f; } html body .cssheet .cotabs .prchip.on { background: #17301f; color: #fff; }
html body .cshare .csrow .cslink { padding: 8px 2px; }
html body .cmdrop .cmrmbtn { color: #b03024; font-weight: 600; border-top: 1px solid rgba(23, 48, 31, .1); border-radius: 0 0 12px 12px; margin-top: 4px; }
html body .cmdrop .cmrm { padding: 12px; border-top: 1px solid rgba(23, 48, 31, .1); } html body .cmdrop .cmrm p { margin: 0 0 8px; font-size: 15px; color: #17301f; line-height: 1.4; }
html body .cmdrop .cmrm .cswarn, html body .cmdrop .cmrm .cssec { width: auto; display: inline-block; padding: 9px 16px; }
