/* GENERATED by dev/port/scope-css.js from the StrokeWise app styles.css (v216), scoped under .appui. Do not edit by hand. */
/* High-contrast, big-target styles for use in sunlight, one-handed. */
.appui, .appui * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
.appui {
  --green: #0b5d1e; --green2: #12862d; --ink: #000; --bg: #fff; --muted: #333;
  --line: #c3ccc5; --red: #b00020; --blue: #0039a6; --sel: #000; --soft: #eef3ee;
}
.appui, .appui { 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; }
.appui { max-width: 560px; margin: 0 auto;
  padding: calc(env(safe-area-inset-top) + 6px) 10px calc(env(safe-area-inset-bottom) + 14px); }
.appui h1 { font-size: 30px; margin: 10px 0 6px; }
.appui h2 { font-size: 22px; margin: 18px 0 8px; }
.appui h3 { font-size: 19px; margin: 12px 0 6px; }
.appui p { margin: 6px 0; }
.appui .muted { color: var(--muted); font-weight: 500; }
.appui 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; }
.appui button:active { transform: scale(.97); }
.appui button.primary { background: var(--green); color: #fff; border-color: var(--green); font-size: 22px; font-weight: 800; }
.appui button.danger { background: #fff; color: var(--red); border-color: var(--red); }
.appui button.sel { background: var(--sel); color: #fff; }
.appui button.big { width: 100%; min-height: 66px; font-size: 22px; font-weight: 800; margin: 6px 0; }
.appui button:disabled { opacity: .35; }
.appui input[type=text] { font: inherit; font-size: 20px; width: 100%; padding: 12px; border: 1px solid var(--line); border-radius: 16px; }
.appui .row { display: flex; gap: 8px; }
.appui .row > * { flex: 1; }
.appui .grid { display: grid; gap: 8px; }
.appui .g2 { grid-template-columns: repeat(2, 1fr); }
.appui .g3 { grid-template-columns: repeat(3, 1fr); }
.appui .g4 { grid-template-columns: repeat(4, 1fr); }
.appui .label { font-size: 15px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; margin: 10px 0 5px; }
.appui .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); }
.appui .topbar .title { flex: 1; text-align: center; }
.appui .topbar .title b { font-size: 24px; display: block; }
.appui .topbar .title span { font-size: 16px; }
.appui .topbar .title span button { min-height: 40px; padding: 0 10px; font-size: 15px; border-width: 1px; }
.appui .topbar button { min-width: 64px; font-size: 26px; font-weight: 900; }
.appui .topbar button.txt { font-size: 17px; }
.appui .status { background: var(--soft); border: 1px solid var(--line); border-radius: 16px; padding: 8px 12px; margin: 8px 0; font-size: 20px; }
.appui .status b { font-size: 24px; }
.appui .shots { margin: 8px 0; }
.appui .shot { display: flex; width: 100%; text-align: left; align-items: center; gap: 8px; margin: 6px 0; min-height: 58px; border-width: 1px; }
.appui .shot .n { font-weight: 900; font-size: 20px; width: 34px; }
.appui .shot .d { flex: 1; font-weight: 600; font-size: 17px; }
.appui .shot .sg { font-weight: 900; font-size: 18px; min-width: 56px; text-align: right; }
.appui .shot.editing { outline: 4px solid var(--blue); }
.appui .pos { color: var(--green); } .appui .neg { color: var(--red); }
.appui .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; }
.appui .display small { font-size: 22px; }
.appui .keypad { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; }
.appui .keypad button { min-height: 56px; font-size: 30px; font-weight: 800; }
.appui .keypad .clr { font-size: 19px; }
.appui .lies button { font-size: 16px; padding: 4px; min-height: 54px; line-height: 1.1; }
.appui .grid.g4 button { padding: 4px; }
.appui .row.sub { margin-top: 18px; } .appui .row.sub button { min-height: 46px; font-size: 17px; }
.appui .row.save .holed { flex: 0 0 38%; background: #ffd400; border-color: #000; color: #000; }
.appui .display .dl { font-size: 16px; font-weight: 800; text-transform: uppercase; vertical-align: middle; margin-right: 6px; }
.appui .note { border-left: 1px solid var(--blue); padding: 8px 10px; background: #eef2fb; margin: 8px 0; font-weight: 600; }
.appui .done { border: 1px solid var(--green); border-radius: 18px; padding: 12px; text-align: center; margin: 12px 0; }
.appui .done b { font-size: 30px; }
.appui table { width: 100%; border-collapse: collapse; font-size: 17px; }
.appui th, .appui td { border-bottom: 1px solid var(--line); padding: 8px 4px; text-align: left; }
.appui td.num, .appui th.num { text-align: right; }
.appui .card { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.appui .card button { min-height: 64px; padding: 2px; font-size: 14px; line-height: 1.15; }
.appui .card button b { font-size: 22px; display: block; }
.appui .card .under { background: #d6f5dc; } .appui .card .over { background: #ffe0e0; } .appui .card .empty { color: #666; border-style: dashed; }
.appui .big-score { text-align: center; margin: 8px 0; }
.appui .big-score .s { font-size: 54px; font-weight: 900; line-height: 1; }
.appui .stat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.appui .stat { border: 1px solid var(--line); border-radius: 16px; padding: 8px 10px; }
.appui .stat b { font-size: 26px; display: block; }
.appui .stat span { font-size: 14px; font-weight: 700; text-transform: uppercase; }
.appui .hist { display: flex; justify-content: space-between; width: 100%; text-align: left; margin: 6px 0; }
.appui #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; }
.appui #toast.show { display: block; }
.appui .help { font-size: 15px; font-weight: 500; }

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

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

/* Backup card (Google Drive – the class names are from the old OneDrive card) */
.appui .odcard { border: 1px solid #0a5bb5; border-radius: 18px; padding: 12px 14px 8px; margin: 12px 0; background: #f2f7ff; }
.appui .odcard h3 { margin: 0 0 6px; }
.appui .odacct, .appui .odstat { margin: 4px 0 8px; font-size: 16px; overflow-wrap: anywhere; }
.appui .odbtns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.appui .odbtns .big { margin: 0; font-size: 16px; }
.appui .oddisc { display: block; margin: 10px auto 4px; color: #a00; font-weight: 700; min-height: 44px; }
/* Player name */
.appui .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; }
.appui .playerbox.edit { display: block; padding: 10px 12px; }
.appui .playerbox .txt { min-height: 44px; font-weight: 700; }
.appui .pnrow2 { display: flex; gap: 8px; }
.appui .pnrow2 input { flex: 1; min-width: 0; margin: 0; }
.appui .pnrow2 button { min-height: 48px; padding: 0 14px; font-weight: 800; border-radius: 14px; }
.appui .hplayer { font-size: 14px; font-weight: 700; color: #0a5bb5; }
.appui .odgroup h3 { margin: 14px 0 6px; }
.appui .pdfsheet { border: 1px solid #0b5d1e; border-radius: 18px; padding: 12px; margin: 10px 0; background: #f3fbf4; }
.appui .pdfsheet .txt { display: block; margin: 6px auto 0; min-height: 44px; font-weight: 700; }
.appui .storybtn small { display: block; font-weight: 400; font-size: 13px; opacity: 0.85; }
.appui .storywrap { position: relative; width: 62%; max-width: 280px; margin: 10px auto; }
.appui .storysheet .storyprev { display: block; width: 100%; border-radius: 14px; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3); cursor: zoom-in; }
.appui .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; }
.appui .storyfull { position: fixed; inset: 0; z-index: 1000; background: #000; }
.appui .storyfull .sfscroll { position: absolute; inset: 0; overflow: hidden; display: flex; align-items: center; justify-content: center; -webkit-overflow-scrolling: touch; }
.appui .storyfull .sfscroll.zoomed { overflow: auto; display: block; }
.appui .storyfull .sfimg { max-width: 100%; max-height: 100%; object-fit: contain; cursor: zoom-in; }
.appui .storyfull .sfimg.zoomed { max-width: none; max-height: none; width: 200%; cursor: zoom-out; }
.appui .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; }
.appui .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. */
.appui { --shadow: 0 1px 2px rgba(0,0,0,.06), 0 2px 8px rgba(0,0,0,.06); }
.appui { padding-left: 14px; padding-right: 14px; }
.appui .grid, .appui .row { gap: 10px; }
.appui button, .appui .stat, .appui .holecard, .appui .blbox, .appui .status, .appui .odcard, .appui .playerbox, .appui .notice, .appui .pdfsheet, .appui .display, .appui .filebtn { box-shadow: var(--shadow); }
.appui button.sel, .appui button.primary { box-shadow: 0 2px 6px rgba(0,0,0,.18); }
.appui button { border-color: #b9c3bb; }
.appui .topbar, .appui .hc-head { border-bottom-color: #e3e8e4; }
.appui th, .appui td { border-bottom-color: #e6ebe7; }
.appui .sinfo { border-bottom-color: #eef1ee; }
.appui .holecard { padding: 12px 10px 14px; margin: 14px 0; }
.appui .stat { padding: 10px 12px; }
.appui .c-d input, .appui .srow select, .appui .srow .dirbtn { border-color: #9faba1; }
.appui .mapview svg { border: none; box-shadow: var(--shadow); }
.appui .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; }
.appui .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; }
.appui .infobtn[aria-expanded="true"] span { background: #345; color: #fff; }
.appui .infowrap { display: flex; align-items: center; gap: 4px; color: #57615a; font-size: 14px; font-weight: 600; }
.appui .infotext[hidden] { display: none; }
.appui .infotext { background: #f6f8f6; border-radius: 12px; padding: 10px 12px; }
.appui .rpall { display: flex; align-items: center; gap: 10px; min-height: 48px; font-weight: 800; }
.appui .rpall input, .appui .rpchk input { width: 26px; height: 26px; accent-color: var(--green); }
.appui .rprow { display: flex; align-items: stretch; gap: 8px; margin: 8px 0; }
.appui .rpchk { display: flex; align-items: center; justify-content: center; min-width: 48px; }
.appui .rpopen { flex: 1; text-align: left; display: flex; flex-direction: column; gap: 2px; min-height: 64px; }
.appui .rpopen span { font-size: 15px; font-weight: 600; }
.appui .rpst { font-size: 13px; font-weight: 700; }
.appui .rp-new { color: var(--green); } .appui .rp-same { color: #666; } .appui .rp-diff { color: #a15c00; }
.appui .hc.ro { opacity: 1; }
.appui 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; }
.appui .pmgroups { flex-wrap: wrap; gap: 6px; }
.appui .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 */
.appui .pmgroups button small { display: block; font-size: 11.5px; opacity: .75; }
.appui .mapsum.pmshow { margin-top: -2px; font-size: 14.5px; color: #4d5f52; }
.appui .pmgroups button small { font-weight: 600; }
.appui .rpbtn { font-size: 18px; min-height: 52px; }
.appui .rpnav { align-items: center; gap: 6px; }
.appui .rpnav button { flex: 0 0 auto; min-width: 96px; }
.appui .rpinfo { flex: 1; text-align: center; font-size: 15px; font-weight: 800; }
.appui .sgsec { margin: 18px 0 10px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow); overflow: hidden; }
.appui .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; }
.appui .sghead small { font-size: 13px; color: #666; font-weight: 600; }
.appui .sghead .chev { font-size: 18px; color: #145214; }
.appui #sgbody { padding: 4px 12px 12px; }
.appui .clubrow { display: flex; align-items: center; gap: 14px; padding: 2px 0 6px 52px; }
.appui .clubrow .clublbl { display: flex; align-items: center; gap: 6px; font-size: 14px; color: #555; }
.appui .clubrow select { min-height: 44px; min-width: 92px; font-size: 17px; border: 1px solid #9faba1; border-radius: 10px; padding: 0 8px; background: #fff; }
.appui .clubrow .layup { display: flex; align-items: center; gap: 6px; min-height: 44px; font-size: 16px; font-weight: 700; }
.appui .clubrow .layup input { width: 26px; height: 26px; }
.appui .clubrow .layup small { font-weight: 500; color: #666; }
.appui .clubrow.putter { color: #777; padding-top: 0; }
.appui .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); }
.appui .clubrow .holeout.on { background: #e3f6e8; border-color: #4caf6e; color: #1f6b3a; }
.appui .clubrow .holeout input { accent-color: #2e9d57; }
.appui .heattog { margin: 6px 0; }
.appui svg.heat .fwdot, .appui svg.heat .xdot, .appui svg.heat .gdot, .appui svg.heat .mdot, .appui svg.heat .pdot, .appui svg.heat .pdot2, .appui svg.heat .pmend, .appui svg.heat .xlbl, .appui svg.heat .plbl, .appui svg.heat .pmlbl, .appui svg.heat .mlbl, .appui svg.heat .farlbl, .appui svg.heat .xstart, .appui svg.heat .mcount { display: none; }
.appui svg.heat path[fill="none"] { opacity: .12; }
.appui .heatsum { margin: 8px 2px; font-size: 16px; }
.appui .clubbtns { flex-wrap: wrap; gap: 6px; }
.appui .clubbtns button { flex: 1 0 17%; min-height: 46px; font-size: 16px; padding: 4px; }
.appui .clubbtns button small { color: #1565e0; }
.appui #clubrank tr[data-act] { cursor: pointer; }
.appui #clubrank tr.cur td { background: #fff6c2; }
.appui .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)); }
.appui .cmpbtn { margin: 6px 0 12px; }
.appui .cmpn { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 8px 0; font-size: 17px; }
.appui .cmpn button { min-width: 56px; min-height: 48px; font-size: 24px; font-weight: 900; }
.appui .cmpcols { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.appui .cmplist { margin: 0; padding-left: 16px; font-size: 13px; }
.appui .cmpkinds, .appui .cmpgrps { flex-wrap: wrap; gap: 6px; }
.appui .cmpgrps button { flex: 1 0 28%; }
.appui .cmpmaps { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.appui .cmpmaps figure { margin: 0; border-radius: 12px; overflow: hidden; border: 2px solid #145214; }
.appui .cmpmaps figure.cmpworst { border: 3px dashed #b00020; }
.appui .cmpmaps figcaption { font-weight: 900; font-size: 14px; padding: 4px 8px; background: #f4f8f4; }
.appui .cmpmaps svg { display: block; width: 100%; height: auto; }
.appui .cmpov svg { display: block; width: 100%; height: auto; border-radius: 14px; }
.appui .cmphide { position: absolute; left: -9999px; top: 0; width: 360px; visibility: hidden; }
.appui .cmphide svg { width: 360px; }
.appui .gaptable td.gap { font-size: 16px; }
.appui #cmplegend .ramp, .appui .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)); }
.appui .heatnote .ramp.rainbow { border-color: #333; background: linear-gradient(90deg, rgba(0,0,255,.5), #00dcff, #00e63c, #fff000, #ff8c00, #e60000); }
.appui .heatclus { display: flex; align-items: center; gap: 8px; margin: 8px 2px; font-size: 14px; }
.appui .heatclus label { display: flex; gap: 6px; align-items: center; }
.appui .heatclus input[type=range] { flex: 1; min-height: 44px; accent-color: #8b0000; }

/* ---------- Home: full-bleed watercolor, frosted glass controls ---------- */
.appui .home { position: fixed; inset: 0; z-index: 1; color: #fff; overflow: hidden; }
.appui .home-bg { position: absolute; inset: 0; background: #cfe0c4 none 50% 50% / cover no-repeat; }
.appui .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; }
.appui .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; }
.appui .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); }
.appui .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; }
.appui .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; }
.appui .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); }
.appui .home .pill small { font-size: 12px; font-weight: 400; opacity: .9; letter-spacing: 0; margin-top: 2px; }
.appui .sheet-back { position: absolute; inset: 0; z-index: 4; background: rgba(0, 0, 0, .12); }
.appui .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; } }
.appui .home .sheet-item { background: transparent; border: 0; color: #17301f; text-align: left; font-size: 17px; font-weight: 500; padding: 13px 14px; border-radius: 14px; }
.appui .home .sheet-item + .sheet-item { border-top: 1px solid rgba(23, 48, 31, .1); border-radius: 0 0 14px 14px; }
.appui .home .sheet-item.muted { text-align: center; font-size: 15px; color: #47604f; }
.appui .home .sheet-h { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #47604f; padding: 8px 8px 2px; }
.appui .home .hsheet input, .appui .home .hsheet select { margin: 4px 0; border-radius: 12px; }
.appui .home .hsheet .lbl { color: #47604f; padding: 0 4px; }
.appui .home .sheet-go { margin-top: 6px; border: 0; border-radius: 999px; padding: 13px; font-size: 17px; font-weight: 600; background: #2f6b3f; color: #fff; }
.appui .home .pill, .appui .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 ---------- */
.appui { --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%); }
.appui .frostpage { color: var(--frost-ink); min-height: 100%; }
.appui .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)), none 50% 50% / cover no-repeat; filter: blur(22px) saturate(115%); }
.appui :has(.frostpage) { background: #d9e8df; } .appui :has(.frostpage) { background: transparent; } /* body bg would paint over the z-index:-1 backdrop */
.appui .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); }
.appui .topbar.frost { top: calc(env(safe-area-inset-top) + 4px); margin: 4px 0 10px; padding: 8px 10px; }
.appui .frostpage .muted, .appui .frostpage small.muted { color: var(--frost-ink-soft); }
.appui .frostpage .frostbtn, .appui .frostpage .frostchip, .appui .frostpage .frostcard, .appui .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; }
.appui .frostpage .frostbtn { background: var(--frost-bg-strong); border-radius: 999px; font-weight: 600; }
.appui .frostpage .topbar .frostbtn { padding: 8px 14px; box-shadow: none; }
.appui .frostpage .frostbtn.big { border-radius: 20px; }
.appui .frostpage .frostbtn:active, .appui .frostpage .frostchip:active, .appui .frostpage .frostcard:active, .appui .frostpage .frostdanger:active { transform: scale(.98); background: rgba(255, 255, 255, .85); }
.appui .frostpage .frostchip { background: var(--frost-bg); border-radius: 999px; font-weight: 500; }
.appui .frostpage .frostchip.sel { background: var(--frost-accent); color: #fff; border-color: rgba(255, 255, 255, .5); }
.appui .frostpage .frostchip small { color: inherit; }
.appui .frostpage .frostcard { background: var(--frost-bg); border-radius: 20px; padding: 12px 14px; }
.appui .frostpage .frostcard b { color: var(--frost-ink); }
.appui .frostpage .frostdanger { background: rgba(255, 236, 236, .5); border-color: rgba(200, 70, 70, .35); color: #a33a3a; border-radius: 20px; }
.appui .frostpage .frostnote { background: var(--frost-bg); border-radius: 16px; padding: 12px 14px; }

/* ---------- In-round pages (hole entry, scorecard, pickers): frosted, sunlight-readable ---------- */
.appui { --frost-sel: #2f6b3f; --frost-pink: rgba(255, 228, 230, .78); --frost-pink-line: rgba(196, 72, 82, .45); --frost-pink-ink: #9e2a35; }
.appui .roundpage .topbar.frost { position: sticky; z-index: 5; }
.appui .roundpage .holecard.frostcard { background: rgba(255, 255, 255, .62); border: 1px solid var(--frost-line); border-radius: 24px; padding: 12px 10px 14px; }
.appui .roundpage .holecard.fin { border-color: var(--rp-fin); box-shadow: 0 0 0 2px var(--rp-fin), var(--frost-shadow); }
.appui .roundpage .hc-head h2, .appui .roundpage .topbar .title b, .appui .roundpage .holecard { color: var(--frost-ink); }
/* every control: soft white glass, rounded, large */
.appui .roundpage .holecard button, .appui .roundpage .topbar button, .appui .roundpage .sheet button, .appui .roundpage > button, .appui .roundpage > .row button, .appui .roundpage .holecard select, .appui .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); }
.appui .roundpage .c-d input { background-color: rgba(255, 255, 255, .92); font-weight: 800; }
.appui .roundpage .c-d input:focus { outline: 3px solid var(--rp-sel); outline-offset: 1px; }
.appui .roundpage select { border-radius: 14px; }
/* selected = solid soft green, white text (clear in sunlight) */
.appui .roundpage button.sel, .appui .roundpage .par button.sel, .appui .roundpage .srow .dirbtn.on, .appui .roundpage .pinbtn.set, .appui .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); }
.appui .roundpage .pinbtn.set small { color: #fff; }
.appui .roundpage .srow .dirbtn { color: #6b7d72; }
/* penalty on: clear red pill; delete keys: soft pink */
.appui .roundpage .c-p .pen.on { background: #b83a45; border-color: #b83a45; color: #fff; }
.appui .roundpage .srow .del, .appui .roundpage .frostdanger, .appui .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 */
.appui .roundpage .frostbtn { background: rgba(255, 255, 255, .78); border: 1px solid var(--frost-line); color: var(--frost-ink); box-shadow: var(--frost-shadow); }
.appui .roundpage .frostbtn.big, .appui .roundpage button.big { border-radius: 22px; }
.appui .roundpage button.primary, .appui .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); }
.appui .roundpage .finish:not(:disabled) { background: var(--rp-main); border-color: var(--rp-main-line); color: var(--rp-main-ink); }
.appui .roundpage button:disabled { opacity: .45; }
.appui .roundpage .pinbtn { border-style: solid; }
.appui .roundpage .count, .appui .roundpage .hint, .appui .roundpage .hole-done { color: var(--frost-ink); }
.appui .roundpage .hole-done { background: var(--rp-done); border-radius: 16px; }
.appui .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); }
.appui .roundpage .sinfo, .appui .roundpage .clubrow small { color: var(--frost-ink-soft); }
.appui .roundpage > .help { background: rgba(255, 255, 255, .55); border-radius: 16px; padding: 10px 12px; color: var(--frost-ink-soft); }
.appui .roundpage .holecard.fin .srow select:disabled, .appui .roundpage .holecard.fin .srow input:disabled { background-color: rgba(240, 246, 242, .9); }
/* sheets and modals during a round */
.appui .roundpage .sheet-bg { background: rgba(20, 40, 30, .25); }
.appui .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); }
.appui .roundpage #pinview, .appui .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); }
.appui .roundpage #pinview .maphead, .appui .roundpage #replayview .maphead { background: transparent; }
.appui .roundpage .maphead .close { background: var(--frost-ink); color: #fff; border-color: var(--frost-ink); }
/* scorecard + stats */
.appui .roundpage table { background: rgba(255, 255, 255, .7); border-radius: 14px; overflow: hidden; }
.appui .roundpage .stat, .appui .roundpage button.stat.tile { background: rgba(255, 255, 255, .7); border: 1px solid var(--frost-line); border-radius: 16px; color: var(--frost-ink); }
.appui .roundpage .holecard.fin button.sel:disabled, .appui .roundpage .holecard.fin .dirbtn.on:disabled, .appui .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 */
.appui .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); }
.appui .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); }
.appui .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; }
.appui .roundpage.theme-sky .holecard.frostcard, .appui .roundpage.theme-sky table, .appui .roundpage.theme-sky .stat { background: rgba(244, 248, 252, .58); }
.appui .roundpage.theme-sky .topbar.frost { background: rgba(236, 243, 250, .45); border-radius: 999px; }
.appui .roundpage.theme-sky .holecard button, .appui .roundpage.theme-sky .topbar button, .appui .roundpage.theme-sky .sheet button, .appui .roundpage.theme-sky > button, .appui .roundpage.theme-sky > .row button, .appui .roundpage.theme-sky .holecard select, .appui .roundpage.theme-sky .frostbtn { background-color: rgba(240, 246, 252, .72); border-color: rgba(255, 255, 255, .7); }
.appui .roundpage.theme-sky .topbar .frostbtn { border-radius: 50%; width: 48px; height: 48px; padding: 0; }
.appui .roundpage.theme-sky .topbar .frostbtn.txt { border-radius: 999px; width: auto; padding: 0 14px; }
.appui .roundpage.theme-sky .sheet.frostsheet { background: rgba(230, 238, 246, .8); }
.appui .roundpage.theme-sky, .appui .roundpage.theme-sky .hc-head h2 { font-family: -apple-system, "SF Pro Text", "Helvetica Neue", "Inter", system-ui, sans-serif; letter-spacing: .005em; }
.appui .roundpage.theme-sky .hc-head h2, .appui .roundpage.theme-sky .topbar .title b { font-weight: 600; }
.appui .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 */
.appui .frostpage.theme-sky { font-family: -apple-system, "SF Pro Text", "Helvetica Neue", "Inter", system-ui, sans-serif; color: var(--frost-ink); }
.appui .frostpage.theme-sky .topbar.frost { background: rgba(236, 243, 250, .45); border-radius: 999px; }
.appui .frostpage.theme-sky .topbar .title b { font-weight: 600; }
.appui .frostpage.theme-sky .frostbtn, .appui .frostpage.theme-sky .frostchip, .appui .frostpage.theme-sky .frostcard, .appui .frostpage.theme-sky .frostnote { background-color: rgba(240, 246, 252, .62); border-color: rgba(255, 255, 255, .7); color: var(--frost-ink); }
.appui .frostpage.theme-sky .frostchip.sel { background: #1c1c1e; border-color: #1c1c1e; color: #fff; }
.appui .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); }
.appui .frostpage .frostmain small { color: #1f3d5c; }
.appui .frostpage .frostdanger, .appui .frostpage.theme-sky .frostdanger { background: rgba(255, 228, 230, .78); border: 1px solid rgba(196, 72, 82, .45); color: #9e2a35; }
.appui .archivepage .playerbox, .appui .archivepage .odcard, .appui .archivepage .notice, .appui .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); }
.appui .archivepage > .help { padding: 10px 12px; }
.appui .archivepage .notice.good { background: rgba(225, 245, 230, .85); color: #1d4d2b; }
.appui .archivepage .notice.bad { background: rgba(255, 228, 230, .85); color: #8e1f2b; }
.appui .archivepage .notice.remind { background: rgba(255, 246, 214, .85); color: #5c4700; }
.appui .archivepage .playerbox button, .appui .archivepage .odcard button { border-radius: 999px; }
.appui .archivepage button.primary, .appui .archivepage .odcard button.primary { background: linear-gradient(180deg, #a9cdf0, #7fb2e5); border-color: #79a9da; color: #0e2a44; }
.appui .archivepage h2 { font-weight: 600; color: var(--frost-ink); }
.appui .frostpage .frostbtn.big, .appui .frostpage label.frostbtn { border-radius: 22px; }

/* Tap-to-reveal tips (Archive): small (i) / 💡 button + soft glass panel */
.appui .tiphead { display: flex; align-items: center; gap: 2px; }
.appui .tiprow { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; margin: 6px 0; }
.appui .tiprow .tiplbl { font-size: 15px; font-weight: 600; color: var(--frost-ink-soft, #445064); }
.appui .tipbtn span { font-style: normal; }
.appui .tiprow .tippop, .appui .tiphead + .tippop { flex-basis: 100%; }
.appui .frostpage .tipbtn span { background: rgba(240, 246, 252, .8); border-color: rgba(120, 140, 165, .5); color: #1a2230; }
.appui .frostpage .tipbtn[aria-expanded="true"] span { background: #1c1c1e; color: #fff; border-color: #1c1c1e; }
.appui .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; }
.appui .archivepage .odcard { padding-bottom: 10px; }
.appui 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; }
.appui .tiphead button.tiplbl { font-size: inherit; font-weight: inherit; color: inherit; padding: 0; }
.appui button.tiplbl:active { transform: none; opacity: .7; }

/* Voice entry (v79): hold-to-talk mic + listening bubble + confirm card, in the sky look */
.appui .countrow { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 64px; margin-top: 6px; }
.appui .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) */
.appui .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; }
.appui .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; }
.appui .micbtn .micico { flex: 0 0 auto; }
.appui .micbtn.off { opacity: .92; }
.appui .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); } }
.appui .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; }
.appui .micbubble[hidden] { display: none; }
.appui .micbubble b { display: block; font-size: 14px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #445064; }
.appui .micbubble .mictext { display: block; margin-top: 4px; font-size: 22px; font-weight: 600; line-height: 1.25; }
.appui .voicecard h3 { display: flex; align-items: center; gap: 8px; }
.appui .voicecard .vraw { font-size: 20px; font-weight: 600; margin: 4px 0 10px; color: #1a2230; }
.appui .voicecard .vfields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 6px 0 8px; }
.appui .voicecard .vf { background: rgba(255, 255, 255, .7); border: 1px solid rgba(255, 255, 255, .8); border-radius: 16px; padding: 8px 12px; }
.appui .voicecard .vf span { display: block; font-size: 13px; font-weight: 600; color: #445064; text-transform: uppercase; letter-spacing: .03em; }
.appui .voicecard .vf b { font-size: 20px; font-weight: 700; color: #1a2230; }
.appui .voicecard .vnote, .appui .voicecard .vwhy { font-size: 15px; color: #445064; margin: 4px 0 8px; }
.appui .voicecard .vwarn { font-size: 15px; font-weight: 600; color: #9e2a35; margin: 4px 0 8px; }
.appui .voicecard .vbtns { display: flex; gap: 8px; margin-top: 8px; }
.appui .voicecard .vbtns button { flex: 1 1 0; } .appui .voicecard .vbtns button:first-child { flex-grow: 1.4; }
.appui .voicecard .vbtns button { min-height: 56px; margin: 0; font-size: 18px; font-weight: 700; }
.appui .roundpage .voicecard .vbtns .frostmain { background: linear-gradient(180deg, #a9cdf0, #7fb2e5); border: 1px solid #79a9da; color: #0e2a44; }
.appui .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; }
.appui .voicecard .vedit { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.appui .voicecard .vedit label { display: flex; flex-direction: column; gap: 2px; font-size: 13px; font-weight: 600; color: #445064; text-transform: uppercase; }
.appui .voicecard .vedit select, .appui .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; }
.appui .voicecard .vedit .vchk { flex-direction: row; align-items: center; gap: 8px; min-height: 48px; font-size: 16px; text-transform: none; color: #1a2230; }
.appui .voicecard .vedit .vchk input { width: 24px; height: 24px; accent-color: #1c1c1e; }
.appui .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 */
.appui .home .ncrs { display: flex; flex-wrap: wrap; gap: 6px; padding: 2px 2px 4px; }
.appui .home .ncchip, .appui .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; }
.appui .home .ncchip.sel, .appui .home .ntee.sel { background: #1c1c1e; border-color: #1c1c1e; color: #fff; }
.appui .home .ntees { display: flex; flex-wrap: wrap; gap: 6px; padding: 2px; }
.appui .home .ntee { display: flex; flex-direction: column; align-items: center; line-height: 1.1; padding: 7px 12px; }
.appui .home .ntee small { font-size: 11px; font-weight: 500; opacity: .75; }
.appui .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; }
.appui .cardnote { font-size: 15px; color: var(--frost-ink-soft, #445064); margin: 8px 4px; }
.appui .cardpage .cardrev { margin-top: 12px; padding: 12px 10px; }
.appui .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; }
.appui .cardpage .revtees { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 6px; }
.appui .cardpage .revtees .frostchip { min-height: 40px; padding: 6px 14px; font-size: 15px; font-weight: 600; border: 1px solid rgba(255, 255, 255, .7); }
.appui .cardpage .teename { display: flex; gap: 6px; margin-bottom: 8px; }
.appui .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); }
.appui .cardpage .teename button { flex: 0 0 48px; min-height: 44px; padding: 0; border-radius: 12px; }
.appui .cardpage .revgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.appui .cardpage .rg-h, .appui .cardpage .rg-r, .appui .cardpage .rg-t { display: grid; grid-template-columns: 24px 1fr 1.5fr; gap: 4px; align-items: center; }
.appui .cardpage .rg-h span { font-size: 12px; font-weight: 600; text-transform: uppercase; color: var(--frost-ink-soft); text-align: center; }
.appui .cardpage .rg-r { margin: 3px 0; } .appui .cardpage .rg-r > span { font-size: 15px; font-weight: 700; text-align: center; color: var(--frost-ink-soft); }
.appui .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; }
.appui .cardpage .rg-r input:placeholder-shown { background: rgba(255, 240, 200, .95); border-color: rgba(200, 150, 40, .6); }
.appui .cardpage .rg-t { border-top: 1px solid rgba(26, 34, 48, .15); margin-top: 4px; padding-top: 4px; font-size: 14px; }
.appui .cardpage .rg-t span { font-weight: 600; color: var(--frost-ink-soft); font-size: 12px; text-transform: uppercase; } .appui .cardpage .rg-t b { text-align: center; }
.appui .cardpage .revtot { text-align: center; font-weight: 700; margin: 10px 0 0; } .appui .cardpage .revmiss { text-align: center; color: #8a5a00; font-weight: 600; margin: 4px 0 0; font-size: 14px; }
.appui .archivepage .crsbtn { display: flex; flex-direction: column; align-items: center; }
.appui .archivepage .crsbtn small { font-size: 13px; font-weight: 500; color: var(--frost-ink-soft); }
.appui .coursespage .crsrow { display: flex; align-items: center; gap: 8px; margin: 10px 0; padding: 6px 6px 6px 4px; }
.appui .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); }
.appui .coursespage .crsopen b { font-size: 19px; font-weight: 700; } .appui .coursespage .crsopen small { font-size: 14px; color: var(--frost-ink-soft); margin-top: 2px; }
.appui .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 */
.appui .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); }
.appui .voicedict .vdrow { display: flex; gap: 8px; align-items: stretch; margin-top: 10px; }
.appui .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 */
.appui .roundpage .voicedict .vdrow button { margin: 0; padding: 0; min-height: 64px; height: 64px; border-radius: 18px; font-weight: 800; }
.appui .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); }
.appui .roundpage .voicedict .vdrow button.vx { flex: 0 0 64px; width: 64px; font-size: 20px; }
.appui .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. */
.appui .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); }
.appui .roundpage.theme-sky .holecard, .appui .roundpage.theme-sky .hc-head h2 { color: var(--soft-ink); }
.appui .roundpage.theme-sky .srow.shead { font-weight: 500; font-size: 13px; letter-spacing: .06em; color: var(--soft-ink2); }
.appui .roundpage.theme-sky .holecard button, .appui .roundpage.theme-sky .holecard select, .appui .roundpage.theme-sky .c-d input, .appui .roundpage.theme-sky .topbar button, .appui .roundpage.theme-sky > button, .appui .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 */
.appui .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); }
.appui .roundpage.theme-sky .c-d .u { font-weight: 400; color: var(--soft-ink2); }
.appui .roundpage.theme-sky .srow .c-n { font-weight: 500; color: var(--soft-ink2); }
.appui .roundpage.theme-sky .holecard select { font-weight: 500; color: var(--soft-ink); }
.appui .roundpage.theme-sky .clubrow select { font-weight: 400; }
.appui .roundpage.theme-sky .clublbl span, .appui .roundpage.theme-sky .layup, .appui .roundpage.theme-sky .clubrow.putter { font-weight: 400; color: var(--soft-ink2); }
.appui .roundpage.theme-sky .sinfo { font-weight: 400; color: var(--soft-ink2); }
.appui .roundpage.theme-sky .sinfo b { font-weight: 600; }
/* selected / direction pills: dark slate instead of near-black, thinner arrows */
.appui .roundpage.theme-sky button.sel, .appui .roundpage.theme-sky .par button.sel, .appui .roundpage.theme-sky .srow .dirbtn.on, .appui .roundpage.theme-sky .pinbtn.set, .appui .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); }
.appui .roundpage.theme-sky .srow .dirbtn { font-weight: 300; font-size: 22px; color: #8593a3; }
.appui .roundpage.theme-sky .srow .dirbtn.on { font-weight: 300; }
.appui .roundpage.theme-sky .par button { font-weight: 500; }
.appui .roundpage.theme-sky .c-p .pen { font-weight: 600; }
.appui .roundpage.theme-sky .c-p .pen.on { background: #b8505a; border-color: #b8505a; }
/* delete: smaller, lighter icon, still a 44px target */
.appui .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 */
.appui .roundpage.theme-sky .addshot, .appui .roundpage.theme-sky .finish, .appui .roundpage.theme-sky > button.big, .appui .roundpage.theme-sky .holecard button.big { font-weight: 600; border-radius: 22px; }
.appui .roundpage.theme-sky .addshot { box-shadow: 0 4px 12px rgba(60, 110, 170, .2); }
.appui .roundpage.theme-sky .count { font-weight: 500; color: var(--soft-ink); }
.appui .roundpage.theme-sky .hint { font-weight: 500; color: var(--soft-ink2); }
.appui .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); }
.appui .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 */
.appui .bzpage .bzseg, .appui .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); }
.appui .bzpage .bzseg button, .appui .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; }
.appui .bzpage .bzseg button.sel, .appui .cmppage .bzseg button.sel { background: rgba(255, 255, 255, .95); color: #1f2d38; box-shadow: 0 1px 4px rgba(20, 40, 60, .12); }
.appui .bzpage .bzcard { margin: 0 0 12px; padding: 10px 10px 10px; }
.appui .bzpage .bzqv { gap: 6px; margin: 0 0 8px; }
.appui .bzpage .bzqv .qv { padding: 8px 4px 7px; border-radius: 14px; }
.appui .bzpage .bzqv .qvl { font-size: 11px; font-weight: 400; color: #45525e; letter-spacing: 0; white-space: nowrap; }
.appui .bzpage .bzqv b { font-size: 24px !important; font-weight: 400 !important; color: #1f2d38; font-variant-numeric: tabular-nums; }
.appui .bzpage .bzqv .qvu { font-style: normal; font-size: 15px; font-weight: 300; }
.appui .bzpage .bzqv small { font-size: 11px; font-weight: 300; color: #6d7a86; }
.appui .bzpage .bzqv .qv[data-q="ifin"] { border-color: rgba(31, 115, 201, .35); }
.appui .bzpage .bzqv .qv[data-q="ifin"] b { color: #1f73c9; }
.appui .bzpage .bzqv .qvsg.bzplus { font-size: 12px; font-weight: 600; margin-top: 1px; color: #1f73c9; }
.appui .bzpage .bzsr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
.appui .bzpage .bzwrap { display: flex; align-items: stretch; gap: 4px; }
.appui .bzpage .bzslcol { flex: 0 0 34px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 2px 0; }
.appui .bzpage .bzsltop, .appui .bzpage .bzslbot { font-size: 12px; font-weight: 600; color: #6d7a86; font-variant-numeric: tabular-nums; }
.appui .bzpage .bzslbot { color: #1f73c9; }
.appui .bzpage .bzslider { writing-mode: vertical-lr; direction: rtl; flex: 1; width: 34px; margin: 6px 0; accent-color: #1f73c9; touch-action: none; }
.appui .bzpage .bzslider:focus { outline: none; }
.appui .bzpage #bzmap { flex: 1; min-width: 0; width: 100%; height: auto; display: block; border-radius: 50%; }
.appui .bzpage .bzlegend { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 12px; margin: 8px 0 2px; font-size: 12.5px; color: #4a5866; }
.appui .bzpage .bzlegend > span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.appui .bzpage .bzlegend .tipbtn { margin-left: auto; }
.appui .bzpage .bzk { display: inline-block; width: 10px; height: 10px; border-radius: 50%; box-sizing: border-box; }
.appui .bzpage .bzk.ring { border: 2px solid #e0313f; }
.appui .bzpage .bzk.r { background: #e0313f; }
.appui .bzpage .bzk.bl { background: #1f73c9; }
.appui .bzpage .bzk.w { background: #fff; border: 1px solid #1c1c1e; }
.appui .bzpage .bznote { margin: 6px 0 2px; font-size: 12.5px; color: #8a3b1f; }
.appui .bzpage .bzmeta { margin: 4px 0 0; font-size: 12.5px; color: #6d7a86; }
.appui .bzpage .bzh { margin: 2px 0 6px; font-size: 15px; font-weight: 600; color: #1f2d38; display: flex; align-items: center; gap: 6px; }
.appui .bzpage .bztab { width: 100%; border-collapse: collapse; font-size: 13.5px; color: #1f2d38; font-variant-numeric: tabular-nums; }
.appui .bzpage .bztab td { padding: 4px 4px; border: 0; border-top: 1px solid rgba(23, 48, 31, .07); }
.appui .bzpage .bztab tr:first-child td { border-top: 0; }
.appui .bzpage .bztab td:first-child { width: 58px; font-weight: 500; white-space: nowrap; }
.appui .bzpage .bztab .bzbar span { display: block; height: 8px; border-radius: 4px; background: #1f73c9; min-width: 2px; }
.appui .bzpage .bztab .num { text-align: right; width: 42px; }
.appui .bzpage .bztab .num.muted { width: 48px; color: #6d7a86; }
/* ---------- Scorecard: front 9 + back 9 photos (v86) – soft, thin lines ---------- */
.appui .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 ---------- */
.appui .livebar { display: flex; flex-direction: column; align-items: center; margin: -2px 0 8px; }
.appui .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); }
.appui .livebtn .liveico { opacity: .8; }
.appui .roundpage .livebtn.on { background: rgba(255, 255, 255, .82); }
.appui .livebtn small { font-size: 13px; font-weight: 500; color: var(--frost-ink-soft); text-decoration: underline; text-underline-offset: 2px; }
.appui .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; }
.appui .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); } }
.appui .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; }
.appui .livenote.ok { color: #2f5f43; background: rgba(230, 245, 236, .7); border-color: rgba(80, 150, 110, .25); }
.appui .livesheet h3 { font-weight: 600; }
.appui .livesheet .livehelp { font-weight: 400; font-size: 16px; color: var(--frost-ink-soft); margin: 4px 0 10px; }
.appui .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); }
.appui .livesheet .livenote { display: inline-block; margin: 8px 0 4px; }
.appui .roundpage .livesheet button.big { min-height: 54px; font-size: 18px; font-weight: 600; }

/* ---------- Live viewer (?watch=…): read-only scorecard for family ---------- */
.appui .lvpage { font-weight: 400; padding-bottom: 20px; }
.appui .lvpage .frostcard { margin: 10px 0; border-radius: 22px; padding: 14px 16px; }
.appui .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; }
.appui .lvbanner.fin { background: rgba(236, 244, 252, .8); border-color: rgba(120, 150, 190, .35); color: #2c4766; }
.appui .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; }
.appui .lvkick .lvdot { width: 8px; height: 8px; border-radius: 50%; background: #9aa6b4; }
.appui .lvkick .lvdot.on { background: #e0565e; animation: livepulse 2s infinite; }
.appui .lvhead h1 { margin: 6px 0 2px; font-size: 30px; font-weight: 600; }
.appui .lvsub { margin: 0; color: var(--frost-ink-soft); font-size: 15px; }
.appui .lvbig { display: flex; align-items: center; gap: 16px; margin: 12px 0 4px; }
.appui .lvbig b { font-size: 64px; line-height: 1; font-weight: 300; letter-spacing: -.02em; min-width: 84px; }
.appui .lvbig b.under { color: #b23a48; } .appui .lvbig b.even { color: #1a2230; } .appui .lvbig b.over { color: #2c4766; }
.appui .lvbig > span { display: flex; flex-direction: column; font-size: 20px; font-weight: 500; }
.appui .lvbig small { font-size: 14px; font-weight: 400; color: var(--frost-ink-soft); }
.appui .lvupd { margin: 6px 0 0; font-size: 13px; color: var(--frost-ink-soft); }
.appui .lvmsg { color: var(--frost-ink-soft); }
.appui .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) */
.appui .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); }
.appui .lvtotal b { font-size: 20px; font-weight: 500; color: var(--frost-ink); }
.appui .lvtotal em { font-style: normal; font-size: 14px; }
.appui .lvrow { display: grid; grid-template-rows: 26px 26px 38px; align-items: center; font-size: 12px; color: var(--frost-ink-soft); }
.appui .lvrow span { display: flex; align-items: center; }
.appui .lvtot span { justify-content: center; font-weight: 500; color: var(--frost-ink); font-size: 14px; }
.appui .lvtot span:first-child { font-size: 12px; color: var(--frost-ink-soft); font-weight: 400; }
.appui .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; }
.appui .lvpage button.lvcol:active { transform: none; background: rgba(255, 255, 255, .5); }
.appui .lvcol.now { background: rgba(255, 255, 255, .45); }
.appui .lvcol.open { background: rgba(255, 255, 255, .75); box-shadow: inset 0 0 0 1px rgba(28, 28, 30, .25); }
.appui .lvh { font-size: 13px; color: var(--frost-ink-soft); } .appui .lvp { font-size: 14px; color: var(--frost-ink-soft); }
.appui .lvs i, .appui .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); }
.appui i.birdie { border-radius: 50%; border: 1.5px solid #c9505c; color: #b23a48; background: rgba(255, 232, 234, .7); }
.appui 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; }
.appui i.par { color: var(--frost-ink); }
.appui i.bogey { border-radius: 6px; border: 1.5px solid #7f9bbd; background: rgba(232, 240, 250, .7); color: #2c4766; }
.appui i.dbl { border-radius: 6px; border: 1.5px solid #4f6d93; background: #6b88ad; color: #fff; }
.appui i.prog { color: #e0565e; font-size: 22px; }
.appui .lvkey { margin: 2px 0 0; font-size: 12px; color: var(--frost-ink-soft); display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.appui .lvtap { margin: 4px 0 0; font-size: 12px; color: var(--frost-ink-soft); }
.appui .lvkey i { width: 20px; height: 20px; font-size: 11px; }
.appui .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 */
.appui .lvshots h2 { margin: 0 0 6px; font-size: 20px; font-weight: 600; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.appui .lvshots h2 small { font-weight: 400; font-size: 15px; color: var(--frost-ink-soft); }
.appui .lvres { margin-left: auto; font-size: 14px; font-weight: 500; padding: 3px 10px; border-radius: 999px; background: rgba(255, 255, 255, .7); }
.appui .lvres.birdie, .appui .lvres.eagle { color: #b23a48; background: rgba(255, 232, 234, .8); } .appui .lvres.bogey, .appui .lvres.dbl { color: #2c4766; background: rgba(232, 240, 250, .8); } .appui .lvres.prog { color: #b23a48; }
.appui .lvfacts { margin: 0 0 8px; font-size: 14px; color: var(--frost-ink-soft); }
.appui .lvlist { list-style: none; margin: 0; padding: 0; }
.appui .lvlist li { display: flex; gap: 10px; padding: 8px 0; border-top: 1px solid rgba(255, 255, 255, .6); font-size: 16px; }
.appui .lvlist li:first-child { border-top: 0; }
.appui .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); }
.appui .lvt small { color: var(--frost-ink-soft); font-size: 14px; }
.appui .lvt em { display: block; font-style: normal; font-size: 13px; color: var(--frost-ink-soft); }
.appui .lvfoot { text-align: center; font-size: 13px; color: rgba(26, 34, 48, .6); margin: 14px 0 0; }
.appui .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; }
.appui .lvcele.out { opacity: 0; transform: translateY(16px); }
.appui .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); }
.appui .lvcele img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; background: #fff; }
.appui .lvcele p { margin: 0; display: flex; flex-direction: column; }
.appui .lvcele b { font-size: 20px; font-weight: 600; color: #b5562a; }
.appui .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 */
.appui .home .hsheet { max-height: calc(100vh - env(safe-area-inset-top) - 100px); overflow-y: auto; -webkit-overflow-scrolling: touch; }
.appui .home .hsheet .lbl { font-size: 13px; font-weight: 500; letter-spacing: .04em; margin: 8px 0 2px; }
.appui .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; }
.appui .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; }
.appui .home .crspick.chosen { color: #17301f; font-weight: 500; }
.appui .home .crspick.open { border-color: rgba(59, 110, 159, .45); box-shadow: 0 0 0 3px rgba(127, 178, 229, .25); }
.appui .home .crspick span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.appui .home .crspick i { font-style: normal; font-size: 13px; color: #6a8574; }
.appui .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; }
.appui .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; }
.appui .home .crsopt:last-child { border-bottom: 0; }
.appui .home .crsopt b { font-weight: 500; }
.appui .home .crsopt small { font-size: 12px; color: #5b7464; }
.appui .home .crsopt.sel { background: rgba(169, 205, 240, .35); }
.appui .home .crsopt.crsadd { color: #2f6b3f; font-weight: 500; }
.appui .home .ncchip, .appui .home .ntee { font-weight: 500; box-shadow: none; }
.appui .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; }
.appui .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; }
.appui .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; }
.appui .home .nplayer b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.appui .home .nplayer.npadd { justify-content: flex-start; color: #2f6b3f; font-weight: 500; padding: 10px 14px; box-shadow: none; }
.appui .home .npedit { display: flex; align-items: center; gap: 6px; }
.appui .home .npedit input[type=text] { flex: 1; min-width: 0; }
.appui .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; }
.appui .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; }
.appui .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; }
.appui .home .namehelp { margin: 0 4px 4px; font-size: 14px; line-height: 1.35; color: #47604f; }
.appui .cardpage .teelbl { margin: 10px 2px 2px; font-size: 13px; font-weight: 500; letter-spacing: .04em; color: var(--frost-ink-soft); display: block; }
.appui .cardpage .revtees .frostchip { font-weight: 500; }
.appui .cardpage .revtees .addtee { border-style: dashed; border-color: rgba(59, 110, 159, .45); }
.appui .cardpage .teequick { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.appui .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); }
.appui .cardpage .teequick .tq i { width: 11px; height: 11px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .18); }
.appui .tq-black i { background: #222; } .appui .tq-blue i { background: #3d6fc4; } .appui .tq-white i { background: #fff; } .appui .tq-gold i { background: #d9b23c; } .appui .tq-red i { background: #d0443a; } .appui .tq-green i { background: #3f8f4f; }
.appui .home .crsopt { min-height: 52px; justify-content: center; }
.appui .home .namehelp { font-weight: 400; }
/* v90 "Hole out" box: soft pill, green when ticked */
.appui .roundpage.theme-sky .clubrow .holeout { color: var(--soft-ink); font-weight: 500; }
.appui .roundpage.theme-sky .clubrow .holeout.on { color: #1f6b3a; background: #e3f6e8; border-color: #8fd0a6; }

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

/* ---------- v101 Google Drive restore: list of every round in a player's backup ---------- */
.appui .gdlpage { padding-bottom: 104px; }
.appui .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; }
.appui .gdlpage .gdlsum b { font-size: 18px; }
.appui .gdlchips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.appui .gdlchip { font-size: 13px; font-weight: 600; padding: 4px 10px; border-radius: 999px; }
.appui .gdlchip.gdlnew { background: rgba(47, 125, 74, .14); color: #245a35; }
.appui .gdlchip.gdlonc { background: rgba(90, 105, 120, .13); color: #4a5563; }
.appui .gdltools { display: flex; gap: 8px; margin: 8px 2px; }
.appui .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; }
.appui .gdltools .gdltool:disabled { color: #8a96a0; background: rgba(255, 255, 255, .45); }
.appui .gdllist { display: flex; flex-direction: column; gap: 8px; margin: 4px 2px 10px; }
.appui .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; }
.appui .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); }
.appui .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; }
.appui .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; }
.appui .gdlsel .gdlbox { background: #2f6b3f; border-color: #2f6b3f; }
.appui .gdlmain { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.appui .gdldate { font-size: 13px; color: #55636f; }
.appui .gdlcourse { font-size: 17px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.appui .gdlst { font-size: 12.5px; font-weight: 600; }
.appui .gdlst-new { color: #2f7d4a; } .appui .gdlst-newer { color: #9a6a12; } .appui .gdlst-same { color: #7b8691; }
.appui .gdlscore { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; min-width: 40px; }
.appui .gdlscore b { font-size: 22px; font-weight: 700; line-height: 1.1; } .appui .gdlscore small { font-size: 13px; color: #55636f; }
.appui .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; }
.appui .gdlrow.gdlon { background: rgba(240, 243, 246, .7); }
.appui .gdlrow.gdlon .gdltick { color: #6f7b86; } .appui .gdlrow.gdlon .gdlbox { background: rgba(230, 234, 238, .9); border-color: rgba(100, 115, 130, .25); border-style: dashed; }
.appui .gdlrow.gdlon .gdlscore b { color: #6f7b86; }
.appui .gdlpage .gdlnote { margin: 6px 6px 10px; font-size: 14px; line-height: 1.4; color: #3d4955; }
.appui .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); }
.appui .gdlbar .gdlcount { flex: 0 0 auto; font-size: 15px; font-weight: 600; color: #3d4955; }
.appui .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; }
.appui .gdlbar .gdlgo:disabled { background: rgba(47, 107, 63, .25); }
.appui .gdlrow .gdltick:disabled { opacity: 1; cursor: default; }
.appui .gdlrow.gdlon .gdlcourse { color: #56626e; } .appui .gdlrow.gdlon .gdldate { color: #6f7b86; }
/* ---------- v102 Rounds: tight list (replaces the big History tiles) ---------- */
.appui .histpage .hchips { display: flex; gap: 6px; overflow-x: auto; margin: 0 0 8px; padding: 2px 0; scrollbar-width: none; }
.appui .histpage .hchips::-webkit-scrollbar { display: none; }
.appui .histpage .hchips .frostchip { flex: 0 0 auto; min-height: 32px; padding: 0 12px; font-size: 14px; }
.appui .histpage .htools { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 6px; margin: 0 0 10px; }
.appui .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; }
.appui .histpage .htool span { font-size: 16px; line-height: 1.1; }
.appui .histpage #histbz { font-size: 10.5px; white-space: nowrap; letter-spacing: -.1px; } /* v134: "Scoring chances" stays on one line */
.appui .histpage .hhead, .appui .histpage .hist { display: grid; grid-template-columns: 40px 30px 40px 46px minmax(0, 1fr); column-gap: 8px; align-items: center; }
.appui .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); }
.appui .histpage .hhead .hc1, .appui .histpage .hhead .hc2, .appui .histpage .hhead .hc3, .appui .histpage .hhead .hc4 { text-align: center; }
.appui .histpage .hlist { background: rgba(255, 255, 255, .66); border: 1px solid rgba(23, 48, 31, .08); border-radius: 20px; overflow: hidden; }
.appui .histpage .hrow { display: flex; align-items: stretch; margin: 0; border-top: 1px solid rgba(23, 48, 31, .08); }
.appui .histpage .hrow:first-child { border-top: 0; }
.appui .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); }
.appui .histpage .hrow .hist:active { background: rgba(47, 107, 63, .06); }
.appui .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); }
.appui .histpage .hcirc.tp-under { border-color: #7cc596; background: #e9f7ee; color: #24603a; }
.appui .histpage .hcirc.tp-even { border-color: #b9cbd8; background: #f2f6f9; color: #2c4152; }
.appui .histpage .hcirc.tp-over { border-color: #e6a9a4; background: #fcefed; color: #8a3a33; }
.appui .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); }
.appui .histpage .hholes.unf { background: #fff6e3; border: 1px dashed #d9a441; color: #8a5a00; }
.appui .histpage .hdate, .appui .histpage .hpar, .appui .histpage .hmain { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.appui .histpage .hdate, .appui .histpage .hpar { align-items: center; }
.appui .histpage .hdate b { font-size: 14px; font-weight: 600; }
.appui .histpage .hpar b { font-size: 14px; font-weight: 600; }
.appui .histpage .hdate small, .appui .histpage .hmain small { font-size: 11.5px; color: var(--frost-ink-soft); }
.appui .histpage .hpar small { font-size: 11px; font-weight: 500; }
.appui .histpage .hmain b { font-size: 14.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.appui .histpage .hmain small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.appui .histpage .hmain .hunf { font-style: normal; color: #8a5a00; }
.appui .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); }
.appui .histpage .hdel svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.appui .histpage .hdel:active { color: #b3473d; }
.appui .histpage .hrow.mvon .hist, .appui .histpage .hhead:has(.hcchk) { grid-template-columns: 24px 40px 30px 40px 46px minmax(0, 1fr); }
.appui .histpage .hrow.mvon .hist { padding-right: 10px; column-gap: 8px; row-gap: 0; }
.appui .histpage .hrow.mvon .mvchk { width: 24px; height: 24px; font-size: 14px; }
.appui .histpage .hrow.mvsel { background: rgba(47, 107, 63, .08); }
.appui .histpage .hrow.mvsel .hist { box-shadow: none; }
.appui .histpage .mvhelp { margin: 0 4px 4px; font-size: 14px; }
.appui .histpage .mvall { margin: 0 auto 8px; min-height: 34px; font-size: 14px; }
.appui .histpage .topbar .title span, .appui .histpage .topbar .frostbtn { white-space: nowrap; }
.appui .histpage .topbar .title { min-width: 0; }
/* ---------- v102 My Bag: Bag | Wedge ladder toggle ---------- */
.appui .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); }
.appui .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; }
.appui .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 ---------- */
.appui .sclabel span { font-weight: 400; color: var(--frost-ink-soft, #3f5a48); text-transform: none; letter-spacing: 0; }
.appui .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; }
.appui .sc1card .scscroll { overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; scrollbar-width: none; }
.appui .sc1card .scscroll::-webkit-scrollbar { display: none; }
.appui .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; }
.appui .scard.sc1 th, .appui .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; }
.appui .scard.sc1 tr:last-child > * { border-bottom: 0; }
.appui .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); }
.appui .scard.sc1 td { min-width: 34px; }
.appui .scard.sc1 td.g9 { box-shadow: inset -1px 0 0 rgba(23, 48, 31, .07); }
.appui .scard.sc1 td.sum { min-width: 40px; padding: 0 4px; background: rgba(23, 48, 31, .035); font-weight: 400; font-size: 12px; }
.appui .scard.sc1 td.sum.tot { padding-right: 10px; font-weight: 500; }
.appui .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; }
.appui .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 */
.appui .scard.sc1 tr.scgap > * { height: 6px; padding: 0; background: rgba(23, 48, 31, .025); border-bottom: 1px solid rgba(23, 48, 31, .09); }
.appui .scard.sc1 tr.scgap > th { position: sticky; left: 0; z-index: 2; background: #f6f8f6; }
.appui .scard.sc1 tr.shole > * { background: #f1f5f2; }
.appui .scard.sc1 tr.shole th[scope="row"] { background: #f1f5f2; }
.appui .scard.sc1 tr.shole .hc, .appui .scard.sc1 tr.shole td.sum { font-weight: 500; color: var(--frost-ink, #17301f); }
.appui .scard.sc1 tr.spar, .appui .scard.sc1 tr.syds { color: #4d6357; }
.appui .scard.sc1 tr.syds { font-size: 11px; }
.appui .scard.sc1 tr.sputts .hc, .appui .scard.sc1 .sputts td { color: inherit; }
.appui .scard.sc1 tr.ssg td { font-size: 11px; }
.appui .scard.sc1 tr.ssg td .hc { padding: 0 2px; }
.appui .scard.sc1 tr.sclub td { font-size: 11px; color: #4d6357; }
.appui .scard.sc1 tr.sp1 td, .appui .scard.sc1 tr.spl td, .appui .scard.sc1 tr.sdrive td { font-size: 11.5px; }
.appui .scard.sc1 .scdash { color: #a5b2aa; }
.appui .scard.sc1 .scic { width: 15px; height: 15px; fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.appui .scard.sc1 .scic.yes { stroke: #2f8a4f; } .appui .scard.sc1 .scic.yes circle { fill: rgba(47, 138, 79, .1); }
.appui .scard.sc1 .scic.no { stroke: #c4655c; } .appui .scard.sc1 .scic.no circle { fill: rgba(196, 101, 92, .08); }
/* soft, thin score shapes */
.appui .scard.sc1 .mk, .appui .sclegend .mk { width: 23px; height: 23px; font-size: 12.5px; font-weight: 400; border-width: 1px; border-color: currentColor; }
.appui .scard.sc1 .mk-birdie { border-color: #3a8a57; background: rgba(58, 138, 87, .1); color: #22603a; }
.appui .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; }
.appui .scard.sc1 .mk-bogey { border-color: #c79a3a; background: rgba(214, 170, 70, .12); color: #7a5512; border-radius: 4px; }
.appui .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; }
.appui .sclegend .mk-birdie, .appui .sclegend .mk-eagle { border-color: #3a8a57; } .appui .sclegend .mk-bogey { border-color: #c79a3a; border-radius: 4px; }
.appui .sclegend .mk-eagle { box-shadow: inset 0 0 0 1.5px #fff, inset 0 0 0 2.5px #3a8a57; }
.appui .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 ---------- */
.appui .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); }
.appui .lagbox .lagh { font-size: 14px; font-weight: 600; margin: 0 0 6px; }
.appui .lagbox .lagcells { margin: 0; }
.appui .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 */
.appui .bagpage .bagcond { padding: 4px 16px; }
.appui .bagpage .bagcond.open { padding-bottom: 14px; }
.appui .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; }
.appui .bagpage .bcfold .bcft { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.appui .bagpage .bcfold .bcft b { font-size: 16px; font-weight: 500; }
.appui .bagpage .bcfold .bcft small { font-size: 13px; font-weight: 400; color: var(--frost-ink-soft); }
.appui .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; }
.appui .bagpage .bagcond.open .bcchev { transform: rotate(-135deg) translate(-2px, -2px); }
.appui .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. */
.appui button.big, .appui label.big, .appui a.big, .appui .big.frostbtn, .appui .big.frostmain, .appui .big.primary, .appui .big.danger, .appui .big.sendbtn, .appui .big.rpbtn { font-size: 18px !important; font-weight: 400 !important; }
.appui .big small, .appui .big .sub { font-weight: 400 !important; }
.appui h1 { font-weight: 300 !important; }
.appui .home .home-title { font-size: 32px !important; font-weight: 300 !important; }
.appui h2, .appui .roundpage h2, .appui .archivepage h2, .appui .bagpage h2.bagh { font-size: 19px !important; font-weight: 500 !important; }
.appui h3, .appui .mapview h3, .appui .tiphead .tiplbl { font-size: 17px !important; font-weight: 500 !important; }
.appui .holecard .hc-head h2 { font-size: 22px !important; font-weight: 400 !important; }
.appui .hc-head .par span { font-size: 15px !important; font-weight: 500 !important; }
.appui .topbar .title b { font-size: 19px !important; font-weight: 500 !important; }
.appui .topbar .frostbtn, .appui .topbar button.txt { font-weight: 400 !important; }
.appui .stat b, .appui .stat.tile b, .appui .stat-grid .stat b { font-size: 22px !important; font-weight: 400 !important; }
.appui .quickview .qv b { font-size: 22px !important; font-weight: 300 !important; }
.appui td#rs-score.big, .appui td#rs-topar.big, .appui .rsbox td.big { font-size: 24px !important; font-weight: 400 !important; }
.appui .mapview .maphead b { font-size: 18px !important; font-weight: 500 !important; }
.appui .mapview .maphead .close { font-size: 16px !important; font-weight: 400 !important; }
.appui .sghead, .appui .sghead span, .appui #sghtotal { font-size: 17px !important; font-weight: 500 !important; }
.appui .sghead .chev { font-weight: 400 !important; }
.appui .cmpn button { font-size: 22px !important; font-weight: 300 !important; }
.appui .pnrow .pnbtn, .appui .mapview button.yall { font-size: 16px !important; font-weight: 500 !important; }
.appui .bzcard .bzcount, .appui #bzcount { font-size: 18px !important; font-weight: 400 !important; }
.appui .pdfsheet > b { font-size: 17px !important; font-weight: 500 !important; }
.appui .pdfsheet button.txt { font-size: 16px !important; font-weight: 400 !important; }
.appui .holecard .pinbtn { font-size: 16px !important; font-weight: 400 !important; }
.appui .legend b.star, .appui .legend b.x { font-weight: 400 !important; }
.appui .wrow .whead b { font-size: 18px !important; font-weight: 500 !important; }
.appui .bagpage .bclbl b { font-size: 17px !important; font-weight: 500 !important; }
.appui .bagpage .bcarry.none { font-weight: 400 !important; }
/* v106 light type – medium text: no more 700–900 weights on buttons, chips, labels and summary numbers */
.appui .seg button, .appui .seg button.sel, .appui .mapsum b, .appui .label, .appui .qvhead, .appui .sclabel, .appui .liebtn, .appui .ybtn b, .appui .pinstats button, .appui .pinstats .badge, .appui .pinlbl, .appui th, .appui .fwcounts span, .appui .fwcounts b, .appui .cl-s b, .appui .playerbox button.txt, .appui .playerbox b, .appui .cmpn b, .appui .pmgroups button { font-weight: 500 !important; }
.appui .stat.tile .mini, .appui small.mini, .appui .notice, .appui .discard, .appui .legend > span { font-weight: 400 !important; }
.appui .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) */
.appui .hist b, .appui .hist .hcirc, .appui .topbar .title span, .appui .stat > span, .appui .stat.tile > span, .appui td.gap b, .appui .cmpmaps figcaption, .appui .tiplbl, .appui #wflight button, .appui td.gb, .appui td.gw, .appui td.from, .appui .bcbase b, .appui .bagseg button, .appui .cmpn span, .appui .sheet-item, .appui .sheet-go, .appui .sheet-h, .appui .bname b, .appui .miclbl, .appui .row.sub button.txt, .appui .playerbox span, .appui .lagh, .appui .cl-c, .appui .cl-s, .appui .liebtn small, .appui .pmgroups button small, .appui .sghead small, .appui .legend .dot.num, .appui .bzslcol span { font-weight: 500 !important; }
.appui tbody td, .appui .mapsum, .appui .mapsum small, .appui .infocap, .appui .bzlegend, .appui .odstat, .appui .bcbase > span, .appui .hist .hholes, .appui .cl-d, .appui .bcarry i { font-weight: 400 !important; }
/* v107: app version – small, light, quiet */
.appui .appver { font-size: 12px !important; font-weight: 300 !important; letter-spacing: .03em; text-align: center; pointer-events: none; user-select: none; }
.appui .archivepage .setver { margin: 22px 0 6px; color: #7d8a96; }
.appui .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) */
.appui .bagpage .bcdarow { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.appui .bagpage .bcdarow .bcda { flex: 1; margin: 4px 0; }
.appui .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; }
.appui .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); }
.appui .bagpage .dahbtn[aria-expanded="true"]::before { background: var(--frost-accent); color: #fff; border-color: transparent; }
.appui .bagpage .datype { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 400; color: var(--frost-ink-soft); }
.appui .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; }
.appui .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; }
.appui .bagpage #bagdaslide .bclbl { align-items: center; }
.appui .bagpage #bagdaslide input[type=range] { width: 100%; margin: 10px 0 2px; }
.appui .bagpage .bcdabase { font-size: 12px; font-weight: 400; color: var(--frost-ink-soft); margin: 6px 0 0; line-height: 1.4; }
.appui .dahelp-back { position: fixed; inset: 0; z-index: 40; background: rgba(20, 35, 50, .18); }
.appui .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); }
.appui .bagpage .dahelp p { margin: 0 0 10px; font-weight: 400; }
.appui .bagpage .dahelp .dahh { font-size: 17px; font-weight: 500; margin-bottom: 8px; }
.appui .bagpage .dahelp .daex { color: var(--frost-ink-soft); }
.appui .bagpage .dahelp a { color: #2a5f8f; font-weight: 400; text-decoration: underline; text-underline-offset: 2px; }
.appui .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 */
.appui .statspage { padding-bottom: calc(env(safe-area-inset-bottom) + 24px); }
.appui .statspage .topbar .title b { font-size: 20px !important; font-weight: 400 !important; }
.appui .statspage .topbar .title span { font-size: 13px !important; font-weight: 300 !important; }
.appui .statspage .hchips { display: flex; gap: 6px; overflow-x: auto; margin: 0 0 8px; padding: 2px 0; scrollbar-width: none; }
.appui .statspage .hchips::-webkit-scrollbar { display: none; }
.appui .statspage .hchips .frostchip { flex: 0 0 auto; min-height: 32px; padding: 0 12px; font-size: 14px !important; font-weight: 400 !important; }
.appui .statspage .stbar { display: flex; gap: 8px; align-items: center; margin: 0 0 6px; }
.appui .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); }
.appui .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; }
.appui .statspage .stseg button.sel { background: rgba(255, 255, 255, .95); color: #1f2d38; box-shadow: 0 1px 4px rgba(20, 40, 60, .12); }
.appui .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; }
.appui .statspage .stsub { margin: 2px 4px 8px; font-size: 12.5px; font-weight: 300; color: #3f4e5b; }
.appui .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; }
.appui .statspage .sth { font-size: 16px; font-weight: 400; color: #23313d; margin: 0 4px 8px; }
.appui .statspage .stnote { font-size: 11.5px; font-weight: 300; line-height: 1.4; color: #6a7783; margin: 8px 4px 0; }
.appui .statspage .stnone p:first-child { font-size: 16px; font-weight: 300; margin: 6px 4px; color: #2b3944; }
.appui .statspage .stlegend { display: flex; flex-wrap: wrap; gap: 5px; margin: 0 0 6px; }
.appui .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; }
.appui .statspage .stleg i { width: 10px; height: 10px; border-radius: 50%; background: var(--c); border: 1.5px solid var(--c); box-sizing: border-box; }
.appui .statspage .stleg.off { color: #a3adb6; background: rgba(255, 255, 255, .5); }
.appui .statspage .stleg.off i { background: transparent; border-color: #c3cad1; }
.appui .statspage svg.stchart { display: block; width: 100%; height: auto; overflow: visible; touch-action: manipulation; }
.appui .statspage .stgrid { stroke: #e6eaee; stroke-width: 1; }
.appui .statspage .stzero { stroke: #8f9aa5; stroke-width: 1; stroke-dasharray: 4 3; }
.appui .statspage .sty, .appui .statspage .stx { font-size: 10.5px; font-weight: 300; fill: #6d7a86; }
.appui .statspage .stline { fill: none; stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; }
.appui .statspage .stdot { stroke: #fff; stroke-width: 1.2; }
.appui .statspage .stdot.on { stroke-width: 1.6; }
.appui .statspage .stsel { stroke: #9aa6b2; stroke-width: 1; stroke-dasharray: 2 3; }
.appui .statspage .sthit { fill: transparent; cursor: pointer; }
.appui .statspage .stempty { font-size: 12px; font-weight: 300; color: #7b8792; text-align: center; margin: -110px 0 96px; }
.appui .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; }
.appui .statspage .sttiph { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-weight: 400; }
.appui .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; }
.appui .statspage .sttipv { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 4px; }
.appui .statspage .sttipv span { display: inline-flex; align-items: center; gap: 5px; font-weight: 300; }
.appui .statspage .sttipv i { width: 8px; height: 8px; border-radius: 50%; background: var(--c); }
.appui .statspage .sttipv em { font-style: normal; font-weight: 400; }
.appui .statspage .sttipm { margin-top: 3px; font-weight: 300; color: #6a7783; }
.appui .statspage table.sttable { width: 100%; font-size: 14px; border-collapse: collapse; }
.appui .statspage table.sttable th { font-size: 12px; font-weight: 400 !important; color: #6a7783; padding: 4px 6px 6px; border-bottom: 1px solid #e6eaee; }
.appui .statspage table.sttable td { font-weight: 300 !important; color: #23313d; padding: 6px 6px; border-bottom: 1px solid #eef1f3; }
.appui .statspage table.sttable td.num, .appui .statspage table.sttable th.num { text-align: right; font-variant-numeric: tabular-nums; width: 82px; }
.appui .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 */
.appui .statspage .stseg#strange { display: flex; width: 100%; box-sizing: border-box; margin: 0 0 8px; }
.appui .statspage .stseg#strange button { flex: 1; min-height: 36px; padding: 0 6px; font-size: 13.5px !important; }
.appui .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); }
.appui .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; }
.appui .statspage .stri + .stri { margin-top: 1px; }
.appui .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; }
.appui .statspage .stri .strd { flex: none; width: 92px; color: #5c6a76; }
.appui .statspage .stri .strc { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.appui .statspage .stri .strs { flex: none; font-variant-numeric: tabular-nums; }
.appui .statspage .stri .strs small { font-size: 12px; color: #6a7783; }
.appui .statspage .stbar { flex-wrap: wrap; }
.appui .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; }
.appui .statspage .stcmp i { position: relative; width: 30px; height: 18px; border-radius: 999px; background: #d3dae0; transition: background .15s; flex: none; }
.appui .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; }
.appui .statspage .stcmp.on i { background: #3b82c4; }
.appui .statspage .stcmp.on i::after { left: 14px; }
.appui .statspage .stsec { margin: 14px 6px 6px; font-size: 13px; font-weight: 400; color: #3f4e5b; letter-spacing: .02em; }
.appui .statspage .stsec.stsecsg { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.appui .statspage .stsec.stsecsg select.stbl { flex: 0 1 auto; max-width: 62%; height: 36px; font-size: 13px !important; }
.appui .statspage .stsgnote { margin: 0 6px 8px; }
.appui .statspage .stgraph .sth { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 15px; margin-bottom: 4px; }
.appui .statspage .stgraph .sth .stv { font-size: 12.5px; font-weight: 300; color: #5c6a76; white-space: nowrap; }
.appui .statspage .stgraph .sth .stv em { font-style: normal; font-weight: 400; color: #23313d; }
.appui .statspage .stavg { stroke-width: 1.3; stroke-dasharray: 5 4; opacity: .75; }
.appui .statspage .stavgall { stroke: #8f9aa5; stroke-width: 1.3; stroke-dasharray: 3 3; }
.appui .statspage .stline.stlight, .appui .statspage .stline.stcmpline { stroke: #b9c3cc; }
.appui .statspage .stline.stcmpline { stroke: #97a3ae; stroke-dasharray: 5 4; stroke-width: 1.4; }
.appui .statspage .stdot.stlight { fill: #c4cdd5; }
.appui .statspage .stdot.stcmpdot { fill: #fff; stroke: #97a3ae; stroke-width: 1.2; }
.appui .statspage .stdot.sthl { stroke-width: 2; }
.appui .statspage .stval { font-size: 10.5px; font-weight: 400; fill: #3f4e5b; }
.appui .statspage .starea { opacity: .1; stroke: none; }
.appui .statspage .stdist .stxs { font-size: 10px; fill: #8f9aa5; }
.appui .statspage .stdist .stxn { font-size: 10.5px; fill: #5c6a76; }
.appui .statspage .stn { margin: 2px 4px 0; font-size: 11.5px; font-weight: 400; color: #5c6a76; text-align: center; }
.appui .statspage .stfew { margin: 4px 4px 0; font-size: 12.5px; font-weight: 300; color: #6a7783; }
.appui .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 */
.appui .stxlist .stxh b { white-space: nowrap; }
.appui .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 */
.appui .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; }
.appui .home .nearbox { display: flex; flex-direction: column; gap: 4px; margin: 4px 0; }
.appui .home .nearwhy, .appui .home .nearmsg { margin: 4px 4px 2px; font-size: 14px; font-weight: 400; line-height: 1.4; color: #2d4636; }
.appui .home .nearerr { color: #6b3a2a; }
.appui .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; }
.appui .home .nearlink { background: none; border: 0; box-shadow: none; color: #3b6e9f; font-size: 14px; font-weight: 400; padding: 6px; min-height: 34px; }
.appui .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; }
.appui .gccredit { margin: 4px 6px 0; font-size: 12px; font-weight: 300; color: #5b7464; }
.appui .gccredit a, .appui .credits a { color: inherit; text-decoration: underline; text-decoration-thickness: 1px; }
.appui .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 */
.appui .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); }
.appui .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; }
.appui .home .nearlist .nearopt:first-child { border-top: 0; }
.appui .home .nearlist .nearopt:active { background: rgba(47, 107, 63, .06); }
.appui .home .nearopt b { flex: 0 0 auto; max-width: calc(100% - 62px); overflow: hidden; text-overflow: ellipsis; font-size: 14.5px; font-weight: 400; }
.appui .home .nearopt small { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: 12px; font-weight: 300; color: #5b7464; }
.appui .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; }
.appui .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; }
.appui .home .nearopt .nsaved + .nmi { margin-left: 4px; }
.appui .home .nearopt .nsaved { margin-left: auto; }
.appui .home .ntees { gap: 5px; }
.appui .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); }
.appui .home .ntee.sel { background: #1c1c1e; border-color: #1c1c1e; color: #fff; }
.appui .home .ntee small { font-size: 11px; font-weight: 300; opacity: .8; white-space: nowrap; }
.appui .home .ntee.naddtee { min-height: 32px; padding: 4px 10px; font-size: 13px; font-weight: 400; }
.appui .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; }
.appui .tdot-none { background: #fff; border-color: #9aa0a6; }
.appui .home .ntee.sel .tdot { border-color: rgba(255, 255, 255, .75); }
.appui .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" ---------- */
.appui .home .hsheet > * { flex-shrink: 0; } /* a long sheet scrolls instead of squashing its rows (the squashed select on iPhone) */
.appui .home .ntees { flex-direction: column; flex-wrap: nowrap; gap: 4px; padding: 2px 0; }
.appui .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; }
.appui .home .ntee .tdot { flex: 0 0 auto; }
.appui .home .ntee .tname { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.appui .home .ntee small { flex: 0 0 auto; margin-left: auto; padding-left: 6px; }
.appui .home .ntee.naddtee { justify-content: flex-start; }
.appui .home .nteefold .ncaret { flex: 0 0 auto; font-style: normal; font-size: 12px; font-weight: 300; opacity: .85; margin-left: 4px; }
.appui .home .nteefold small { margin-left: auto; }
.appui .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; }
.appui .home .ntees.folded + .nlink + .nmiss, .appui .home .ntees.folded + .nlink + .gccredit { margin-top: 0; }
.appui .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 ---------- */
.appui .roundpage.holepage { font-size: 14px; }
.appui .roundpage.holepage .topbar.frost { margin: 2px 0 6px; padding: 4px 6px; }
.appui .roundpage.holepage .topbar .title b { font-size: 15px !important; font-weight: 500 !important; }
.appui .roundpage.holepage .topbar .title span { font-size: 12px !important; font-weight: 400 !important; line-height: 1.3; }
.appui .roundpage.holepage .topbar .frostbtn { width: 38px; height: 38px; min-width: 38px; min-height: 38px; font-size: 20px; }
.appui .roundpage.holepage .livebar { margin: 0 0 4px; }
.appui .roundpage.holepage .livebtn { min-height: 32px; padding: 4px 12px; font-size: 13px; }
.appui .roundpage.holepage .holecard.frostcard { padding: 8px 8px 10px; margin: 6px 0; border-radius: 18px; }
.appui .roundpage.holepage .hc-head { padding: 0 2px 6px; align-items: center; gap: 8px; }
.appui .roundpage.holepage .holecard .hc-head h2 { font-size: 17px !important; font-weight: 500 !important; white-space: nowrap; }
.appui .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; }
.appui .roundpage.holepage .hmeta > * + *::before { content: '·'; margin: 0 7px; opacity: .6; }
.appui .roundpage.holepage .hpar { font-size: 13px; font-weight: 500; color: var(--soft-ink, #1d2a36); }
.appui .roundpage.holepage .holecard button.hparbtn { min-height: 32px; padding: 0 10px; border-radius: 10px; font-size: 13px; font-weight: 500; box-shadow: none; }
.appui .roundpage.holepage .hparbtn small { font-size: 11px; opacity: .6; margin-left: 2px; }
.appui .roundpage.holepage .parpick { display: inline-flex; align-items: center; gap: 4px; }
.appui .roundpage.holepage .parpick .plbl { margin-right: 2px; }
.appui .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; }
.appui .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; }
.appui .roundpage.holepage .pinbtn small { font-size: 12px; font-weight: 400; }
/* tight lines */
.appui .roundpage.holepage .thead, .appui .roundpage.holepage .tline { display: grid; grid-template-columns: 18px 50px minmax(0, .7fr) minmax(0, 1.7fr) 48px; align-items: center; column-gap: 5px; }
.appui .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); }
.appui .roundpage.holepage .thead span:last-child, .appui .roundpage.holepage .t-s { text-align: right; }
.appui .roundpage.holepage .holecard button.tline, .appui .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; }
.appui .roundpage.holepage .holecard button.tline:active { background: rgba(255, 255, 255, .5); }
.appui .roundpage.holepage .holecard button.tline.bad { background: rgba(255, 236, 200, .55); border-radius: 8px; }
.appui .roundpage.holepage .tline > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.appui .roundpage.holepage .t-n { color: var(--soft-ink2, #5b6b7a); }
.appui .roundpage.holepage .tdash { font-style: normal; opacity: .45; }
.appui .roundpage.holepage .tline > span.t-l { display: flex; align-items: center; gap: 4px; }
.appui .roundpage.holepage .tlw { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.appui .roundpage.holepage .tto { font-style: normal; font-size: 12px; color: var(--soft-ink2, #5b6b7a); }
.appui .roundpage.holepage .tpen { flex-shrink: 0; }
.appui .roundpage.holepage .tpen { font-style: normal; font-size: 11px; color: #a4424c; }
.appui .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; }
.appui .roundpage.holepage .sgchip.pos { background: rgba(76, 175, 110, .2); color: #1f6b3a; }
.appui .roundpage.holepage .sgchip.neg { background: rgba(214, 90, 100, .18); color: #9c2f3b; }
.appui .roundpage.holepage .sgchip.zero, .appui .roundpage.holepage .sgchip.lay { background: rgba(120, 135, 150, .14); color: #4f5f6e; }
/* the shot being entered */
.appui .roundpage.holepage .srow { grid-template-columns: 26px 70px minmax(0, 1fr) 42px 38px 38px; gap: 4px; padding: 4px 0 0; }
.appui .roundpage.holepage .srow.shead { padding-top: 8px; font-size: 11px !important; font-weight: 400 !important; letter-spacing: .04em; }
.appui .roundpage.holepage .srow.shead .c-d { white-space: nowrap; font-size: 10.5px; letter-spacing: .02em; }
.appui .roundpage.holepage .srow .c-n { min-height: 38px; height: 38px; font-size: 13px; font-weight: 400; border-radius: 10px; box-shadow: none; }
.appui .roundpage.holepage .c-d input { width: 46px; height: 38px; font-size: 16px; font-weight: 400; border-radius: 10px; box-shadow: none; }
.appui .roundpage.holepage .c-d .u { font-size: 11px; }
.appui .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; }
.appui .roundpage.holepage .srow .dirbtn { height: 38px; min-height: 38px; font-size: 18px; border-radius: 10px; box-shadow: none; }
.appui .roundpage.holepage .c-p .pen { width: 38px; height: 38px; min-height: 38px; font-size: 12px; font-weight: 500; box-shadow: none; }
.appui .roundpage.holepage .srow .del { width: 38px; height: 38px; min-width: 38px; min-height: 38px; font-size: 15px; border-radius: 10px; }
.appui .roundpage.holepage .clubrow { gap: 10px; padding: 4px 0 4px 30px; }
.appui .roundpage.holepage .clubrow .clublbl { font-size: 12px; }
.appui .roundpage.holepage .clubrow select { min-height: 36px; height: 36px; font-size: 14px; border-radius: 10px; box-shadow: none; }
.appui .roundpage.holepage .clubrow .layup { min-height: 36px; font-size: 13px; font-weight: 400; gap: 5px; }
.appui .roundpage.holepage .clubrow .layup input { width: 20px; height: 20px; }
.appui .roundpage.holepage .clubrow .layup small { font-size: 11px; }
.appui .roundpage.holepage .clubrow .holeout { padding: 0 10px 0 6px; border-radius: 18px; }
.appui .roundpage.holepage .sinfo { font-size: 12px; font-weight: 400; padding: 0 4px 4px 30px; border-bottom: 0; }
.appui .roundpage.holepage .sinfo:empty { display: none; }
.appui .roundpage.holepage .sinfo b { font-weight: 500; }
.appui .roundpage.holepage .rowmenu button { min-height: 34px; font-size: 13px; font-weight: 400; }
/* count, Say it, Add Shot, Finish, buttons under the card */
.appui .roundpage.holepage .countrow { min-height: 44px; margin-top: 6px; }
.appui .roundpage.holepage .count { font-size: 13px; font-weight: 400; padding: 0 4px; }
.appui .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); }
.appui .roundpage.holepage .micbtn .micico { width: 18px; height: 18px; }
.appui .roundpage.holepage button.big, .appui .roundpage.holepage .holecard button.big, .appui .roundpage.holepage > button.big { min-height: 42px; margin: 5px 0; padding: 6px 12px; font-size: 15px !important; font-weight: 400 !important; border-radius: 14px; }
.appui .roundpage.holepage .addshot { box-shadow: 0 2px 8px rgba(60, 110, 170, .16) !important; }
.appui .roundpage.holepage .hint { font-size: 12px; font-weight: 400; padding: 4px 4px 0; }
.appui .roundpage.holepage .hole-done { font-size: 14px; font-weight: 400; padding: 6px 4px; }
.appui .roundpage.holepage .row.sub { margin-top: 8px; } .appui .roundpage.holepage .row.sub button { min-height: 38px; font-size: 14px; font-weight: 400; }
.appui .roundpage.holepage button.discard { min-height: 38px; font-size: 14px; }
.appui .roundpage.holepage .help { font-size: 12px; }
.appui .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) */
.appui .mapview .clubbtns button { min-height: 40px; font-size: 14px !important; font-weight: 400 !important; padding: 2px 4px; }
.appui .mapview .clubbtns button small { color: #6d7a86; font-size: 11px; font-weight: 400 !important; }
.appui .mapview .clubqv { margin: 8px 0 12px; }
.appui .mapview .clubqv .qvu { font-style: normal; font-size: 13px; font-weight: 300; }
.appui .mapview .clubqv .qvsg { font-size: 12px; font-weight: 400; }
.appui .mapview .clubqv b .pos { color: #2f7d4a; } .appui .mapview .clubqv b .neg { color: #b8504a; }
.appui .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; }
.appui .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; }
.appui .mapview .clubcard .ccv { font-size: 12.5px; font-weight: 300; color: #5c6a76; white-space: nowrap; }
.appui .mapview .clubcard .ccv em { font-style: normal; font-weight: 400; color: #23313d; }
.appui .mapview .clubcard svg { display: block; width: 100%; height: auto; }
.appui .mapview .clubcard .ccnote { font-size: 11.5px; font-weight: 300; line-height: 1.4; color: #6a7783; margin: 6px 4px 0; }
.appui .mapview .clubcard .stat-grid { margin-top: 8px; }
.appui .mapview .clubcard .legend { font-size: 12px; font-weight: 300; }
.appui .clubfw .cfwh { font-size: 11px; font-weight: 400; fill: #5c6a76; letter-spacing: .02em; }
.appui .clubfw .cfwp { font-size: 24px; font-weight: 300; fill: #23313d; }
.appui .clubfw #cfwpF { fill: #2f7d4a; }
.appui .clubfw .cfwn { font-size: 10.5px; font-weight: 300; fill: #6d7a86; }
.appui .clubfw .cfwedge { stroke: #a9c4a0; stroke-width: 1; }
.appui .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; }
.appui .mapview .clubwarn b { font-weight: 500; }
.appui .mapview .clubtab { font-size: 13px; font-weight: 300; }
.appui .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; }
.appui .mapview .clubsum { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin: 8px 2px 0; font-size: 15px; font-weight: 300; }
.appui .mapview .clubsum b, .appui .mapview .clubcard .cch b { font-weight: 400 !important; }
.appui .mapview .clubsum .infobtn, .appui .mapview .clubcard .cch .infobtn, .appui .mapview .clubh3 .infobtn, .appui .mapview .clubwarn .infobtn, .appui .mapview .clubempty .infobtn { min-height: 32px; min-width: 32px; margin: -6px 0 -6px 2px; vertical-align: middle; }
.appui .mapview .clubsum .infobtn span, .appui .mapview .clubcard .cch .infobtn span, .appui .mapview .clubh3 .infobtn span, .appui .mapview .clubwarn .infobtn span, .appui .mapview .clubempty .infobtn span { width: 18px; height: 18px; font: italic 400 11px/17px Georgia, serif; border-color: #b3bdc6; color: #5c6a76; }
.appui .mapview .clubsum .infobtn[aria-expanded="true"] span, .appui .mapview .clubcard .infobtn[aria-expanded="true"] span, .appui .mapview .clubh3 .infobtn[aria-expanded="true"] span, .appui .mapview .clubwarn .infobtn[aria-expanded="true"] span, .appui .mapview .clubempty .infobtn[aria-expanded="true"] span { background: #5c6a76; color: #fff; }
.appui .mapview .clubcard .cch > span:first-child { display: inline-flex; align-items: center; }
.appui .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; }
.appui .mapview .tippop[id^="tip-club"] b { font-weight: 500; }
.appui .mapview .clubh3 { display: flex; align-items: center; gap: 2px; font-size: 15px !important; font-weight: 400 !important; }
.appui .mapview .clubqv .qv { padding: 9px 4px 8px; }
.appui .mapview .clubtab b, .appui .mapview .clubtab th { font-weight: 400 !important; }
.appui .mapview .clubtab th { color: #6d7a86; font-size: 11.5px; }
.appui .mapview #clubrank tr.cur td { background: rgba(59, 130, 196, .08); }
.appui .mapview .clubwarn b { font-weight: 500 !important; }
/* v118: Club performance dialog chrome – small, light, segmented (round-page maps keep their own look for now) */
.appui .mapview.clubview { padding-top: calc(env(safe-area-inset-top) + 8px); }
.appui .mapview.clubview .maphead b { font-size: 16px !important; font-weight: 400 !important; color: #23313d; letter-spacing: -.1px; }
.appui .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; }
.appui .mapview.clubview .seg { gap: 2px; padding: 2px; margin: 8px 0 4px; background: #eef1f3; border-radius: 10px; }
.appui .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; }
.appui .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); }
.appui .mapview.clubview .seg button:disabled { color: #b7c0c8 !important; }
.appui .mapview.clubview .clubbtns { display: grid; grid-template-columns: repeat(6, 1fr); background: transparent; padding: 0; gap: 4px; margin-top: 10px; }
.appui .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; }
.appui .mapview.clubview .clubbtns button.sel { border-color: #3b82c4 !important; background: rgba(59, 130, 196, .08) !important; color: #23313d !important; box-shadow: none; }
.appui .mapview.clubview .clubbtns button:disabled { background: #f6f8f9 !important; border-color: rgba(23, 48, 31, .05) !important; }
.appui .mapview.clubview .clubbtns button small { font-size: 10px; color: #8a96a1; }
.appui .mapview.clubview h3 { font-size: 14px !important; font-weight: 400 !important; color: #23313d; margin: 14px 2px 6px; }
.appui .mapview.clubview .clubqv { gap: 6px; }
.appui .mapview.clubview .clubqv .qv { border-radius: 14px; }
.appui .mapview.clubview .clubqv .qvl { font-size: 11.5px; font-weight: 300; color: #5c6a76; }
.appui .mapview.clubview .clubqv small { font-size: 11px; font-weight: 300; color: #6d7a86; }
.appui .mapview.clubview .clubqv .qvsg { font-size: 11px !important; font-weight: 300; color: #6d7a86; font-style: normal; }
.appui .mapview.clubview .stat-grid .stat b, .appui .mapview.clubview .stat-grid b { font-size: 15px !important; font-weight: 300 !important; }
.appui .mapview.clubview .stat-grid .stat, .appui .mapview.clubview .stat-grid span { font-size: 11.5px; font-weight: 300; }
.appui .mapview.clubview .clubwarn { font-size: 12.5px !important; font-weight: 300 !important; padding: 6px 10px; border-radius: 10px; border-width: 1px; }
.appui .mapview.clubview .clubtab { font-size: 12.5px; }
.appui .mapview.clubview .clubtab td, .appui .mapview.clubview .clubtab th { padding: 5px 4px; border-bottom: 1px solid #edf0f2; }
.appui .mapview.clubview .legend { font-size: 11.5px; font-weight: 300; gap: 4px 10px; }
.appui .mapview.clubview .legend .dot { width: 9px; height: 9px; border-width: 1px; }
.appui .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; }
.appui .mapview.clubview #clubcells { gap: 6px; margin-top: 8px; }
.appui .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; }
.appui .mapview.clubview #clubcells .stat b { font-size: 15px !important; font-weight: 300 !important; color: #23313d; }
.appui .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; }
.appui .mapview .clubdist { display: block; margin: 2px 0 0; overflow: visible; }
.appui .mapview .clubdist .cdl { font-size: 11px; font-weight: 300; fill: #6d7a86; }
.appui .mapview .clubdist .cdmean { font-size: 11.5px; font-weight: 400; fill: #23313d; }
.appui .mapview .clubdist .cdt { font-size: 10.5px; font-weight: 300; fill: #6d7a86; }
.appui .mapview .clubdist .cdax { font-size: 10.5px; font-weight: 300; fill: #8a96a1; }
.appui .mapview .clubdistsum { margin: 2px 2px 0; text-align: center; font-variant-numeric: tabular-nums; }
/* v119: Club performance lines readable on a phone */
.appui .clubfw .cfwedge { stroke: #7fa572; stroke-width: 1.5; }
.appui .mapview .clubdist .cdg { stroke: #dde3e8; }
.appui .mapview .clubdist .cdt { font-size: 11px; fill: #55636f; }
.appui .mapview .clubdist .cdax { font-size: 11px; fill: #6d7a86; }
.appui .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) */
.appui .mapview.proxview .proxsum { margin-top: 8px; }
.appui .mapview.proxview .proxsum .infobtn, .appui .mapview.proxview .proxleg .infobtn { min-height: 32px; min-width: 32px; margin: -6px 0 -6px 2px; vertical-align: middle; }
.appui .mapview.proxview .proxsum .infobtn span, .appui .mapview.proxview .proxleg .infobtn span { width: 18px; height: 18px; font: italic 400 11px/17px Georgia, serif; border-color: #b3bdc6; color: #5c6a76; }
.appui .mapview.proxview .proxsum .infobtn[aria-expanded="true"] span, .appui .mapview.proxview .proxleg .infobtn[aria-expanded="true"] span { background: #5c6a76; color: #fff; }
.appui .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; }
.appui .mapview .tippop[id^="tip-prox"] b { font-weight: 500 !important; }
.appui .mapview .tippop[id^="tip-prox"] p { margin: 8px 0 0; }
.appui .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; }
.appui .mapview .tippop[id^="tip-prox"] .legend span { display: flex; align-items: flex-start; gap: 6px; }
.appui .mapview .tippop[id^="tip-prox"] .legend .sw { flex: none; width: 14px; height: 10px; margin-top: 3px; border-radius: 3px; }
.appui .mapview.proxview .proxnote { margin: 2px 2px 0; font-size: 11.5px; font-weight: 300; color: #6d7a86; }
/* four small tiles in one row */
.appui .mapview.proxview .proxqv { grid-template-columns: repeat(4, 1fr); gap: 5px; margin: 8px 0 6px; }
.appui .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); }
.appui .mapview.proxview .proxqv .qvl { font-size: 11px; letter-spacing: 0; }
.appui .mapview.proxview .proxqv b { font-size: 17px !important; font-weight: 300 !important; line-height: 1.2; color: #23313d; white-space: nowrap; }
.appui .mapview.proxview .proxqv small { font-size: 10.5px; }
.appui .mapview.proxview .clubh3 { margin: 10px 2px 2px; }
.appui .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 */
.appui .mapview.proxview .proxrail { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; flex: none; margin: 4px 0 0; }
.appui .mapview.proxview .proxrail button, .appui .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; }
.appui .mapview.proxview .proxrail button b { font-size: 12.5px !important; font-weight: 400 !important; }
.appui .mapview.proxview .proxrail button small, .appui .mapview.proxview .liechips .liebtn small { font-size: 10px !important; font-weight: 300 !important; color: #8a96a1 !important; }
.appui .mapview.proxview .proxrail button.sel, .appui .mapview.proxview .liechips .liebtn.sel { border-color: #3b82c4 !important; background: rgba(59, 130, 196, .08) !important; color: #23313d !important; box-shadow: none !important; }
.appui .mapview.proxview .proxrail button.sel small, .appui .mapview.proxview .liechips .liebtn.sel small { color: #3b6f9e !important; }
.appui .mapview.proxview .proxrail button:disabled, .appui .mapview.proxview .liechips .liebtn:disabled { background: #f6f8f9 !important; border-color: rgba(23, 48, 31, .05) !important; color: #b7c0c8 !important; }
.appui .mapview.proxview .proxrail button:disabled small, .appui .mapview.proxview .liechips .liebtn:disabled small { color: #c5ccd2 !important; }
.appui .mapview.proxview .liechips { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; margin: 3px 0 8px; }
.appui .mapview.proxview .liechips .liebtn { flex: none; }
.appui .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; }
.appui .mapview.proxview .proxwrap { display: block; margin-top: 2px; }
.appui .mapview.proxview .proxwrap svg { display: block; width: 100%; height: auto; border-radius: 14px; border: 1px solid rgba(23, 48, 31, .08); }
.appui .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; }
.appui .mapview.proxview .proxleg span { display: inline-flex; align-items: center; gap: 4px; }
.appui .mapview.proxview .proxleg .infobtn { margin-left: auto; }
.appui .mapview.proxview .legend .ln.dash { width: 16px; height: 0; border-top: 1.5px dashed #d64552; background: none; }
.appui .mapview.proxview .dirtab { font-size: 12.5px; font-weight: 300; }
.appui .mapview.proxview .dirtab td, .appui .mapview.proxview .dirtab th { font-size: 12.5px; padding: 5px 4px; border-bottom: 1px solid #edf0f2; font-weight: 300 !important; }
.appui .mapview.proxview .dirtab th { font-weight: 400 !important; color: #6d7a86; font-size: 11.5px; }
.appui .mapview.proxview .lietab tr.sel td { background: rgba(59, 130, 196, .08); }
.appui .mapview.proxview .lietab tr.warn td { color: #8a3a33; }
/* the map: same shapes, thin crisp outlines, flat soft colours, small light labels */
.appui .mapview.proxview #proxmap .pbg { fill: #eef5ea; }
.appui .mapview.proxview #proxmap .pgreen { fill: #8fc283; stroke: #3f7a45; stroke-width: 1.5; }
.appui .mapview.proxview #proxmap .pring { stroke: #fff; stroke-width: 1; stroke-opacity: .8; }
.appui .mapview.proxview #proxmap .pring2 { stroke-width: 1.5; stroke-opacity: .95; }
.appui .mapview.proxview #proxmap text.ring { font-size: 9.5px; font-weight: 500; fill: #fff; }
.appui .mapview.proxview #proxmap .phole { fill: #23313d; r: 3.5px; }
.appui .mapview.proxview #proxmap .ppole { stroke: #23313d; stroke-width: 1.5; }
.appui .mapview.proxview #proxmap .pflag { fill: #d9505c; }
.appui .mapview.proxview #proxmap .pdir { font-size: 10.5px; font-weight: 400; fill: #5c6a76; letter-spacing: .04em; }
.appui .mapview.proxview #proxmap .pnodir { font-size: 10px; }
.appui .mapview.proxview #proxmap .lie-rough { fill: #a7cf96; stroke: #6f9f5f; stroke-width: 1.5; }
.appui .mapview.proxview #proxmap .lie-fw { fill: #cfe9bd; stroke: #7fb06c; stroke-width: 1.5; }
.appui .mapview.proxview #proxmap .lie-mow { fill: #ffffff; opacity: .28; }
.appui .mapview.proxview #proxmap #lie-sand { fill: #f3e6b8; stroke: #c9ab5a; stroke-width: 1.5; }
.appui .mapview.proxview #proxmap #lie-other { fill: #7fa477; stroke: #5d8456; stroke-width: 1.5; }
.appui .mapview.proxview #proxmap .lie-tree { fill: #5d8456; }
.appui .mapview.proxview #proxmap #lie-tee { fill: #e6f6dc; stroke: #7fb06c; stroke-width: 1.5; }
.appui .mapview.proxview #proxmap .liet { font-size: 9px; font-weight: 500; letter-spacing: .06em; fill: #2f5a33; }
.appui .mapview.proxview #proxmap .tracer { stroke-width: 1.75; stroke-opacity: .7; }
.appui .mapview.proxview #proxmap .xstart { stroke-width: 1.5; r: 3.5px; }
.appui .mapview.proxview #proxmap circle.xdot { stroke: #fff; stroke-width: 1.5; r: 5.5px; }
.appui .mapview.proxview #proxmap g.xdot path, .appui .mapview.proxview #proxmap path.xdot { stroke-width: 1.5; }
.appui .mapview.proxview #proxmap g.xdot path { stroke: #fff; }
.appui .mapview.proxview #proxmap g.xdot text { font-size: 10px; font-weight: 500; }
.appui .mapview.proxview #proxmap .xlbl { font-size: 10px; font-weight: 500; stroke-width: 2.5; }
.appui .mapview.proxview #proxmap .d1halo { stroke-width: 3; stroke-opacity: .6; }
.appui .mapview.proxview #proxmap .d1line { stroke: #d64552; stroke-width: 1.5; stroke-dasharray: 6 4; }
.appui .mapview.proxview #proxmap .d1lab { font-size: 10px; font-weight: 500; fill: #b8323f; stroke-width: 2.5; }
.appui .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; }
.appui .mapview .tippop[id^="tip-prox"] .legend .dot { flex: none; width: 9px; height: 9px; margin-top: 4px; border-width: 1px; }
.appui .mapview .tippop[id^="tip-prox"] .legend .star { font-size: 12px; line-height: 1.2; }
.appui .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 */
.appui .mapview.proxview .maphead b { font-weight: 500 !important; color: #1b2733; }
.appui .mapview.proxview .maphead .close { font-weight: 400 !important; color: #1f66b3; border-color: rgba(31, 102, 179, .35) !important; }
.appui .mapview.proxview .seg { background: #e6ebef; }
.appui .mapview.proxview .seg button { font-weight: 400 !important; color: #3a4754 !important; }
.appui .mapview.proxview .seg button.sel { font-weight: 500 !important; color: #1b2733 !important; box-shadow: 0 1px 2px rgba(23, 48, 31, .18); }
.appui .mapview.proxview .clubh3, .appui .mapview.proxview h3 { font-weight: 500 !important; color: #1b2733; }
.appui .mapview.proxview .mapsum, .appui .mapview.proxview .mapsum b { font-weight: 400 !important; color: #1b2733; }
.appui .mapview.proxview .proxnote, .appui .mapview.proxview .proxlbl { font-weight: 400; color: #55636f; }
.appui .mapview.proxview .proxqv .qv { background: #fff; border-color: rgba(23, 48, 31, .14); }
.appui .mapview.proxview .proxqv .qvl { font-weight: 400 !important; color: #45525e; }
.appui .mapview.proxview .proxqv b { font-weight: 400 !important; color: #1b2733; }
.appui .mapview.proxview .proxqv small { font-weight: 400 !important; color: #55636f; }
.appui .mapview.proxview .proxrail button, .appui .mapview.proxview .liechips .liebtn { font-weight: 400 !important; color: #1b2733 !important; border-color: rgba(23, 48, 31, .16) !important; }
.appui .mapview.proxview .proxrail button b { font-weight: 500 !important; }
.appui .mapview.proxview .proxrail button small, .appui .mapview.proxview .liechips .liebtn small { font-weight: 400 !important; color: #6b7884 !important; }
.appui .mapview.proxview .proxrail button.sel, .appui .mapview.proxview .liechips .liebtn.sel { border-color: #1f73c9 !important; background: rgba(31, 115, 201, .12) !important; }
.appui .mapview.proxview .proxrail button.sel small, .appui .mapview.proxview .liechips .liebtn.sel small { color: #1f66b3 !important; }
.appui .mapview.proxview .proxleg { font-weight: 400; color: #3f4c58; }
.appui .mapview.proxview .legend .ln.dash { border-top-color: #e0313f; }
.appui .mapview.proxview .dirtab, .appui .mapview.proxview .dirtab td { font-weight: 400 !important; color: #1b2733; }
.appui .mapview.proxview .dirtab th { font-weight: 500 !important; color: #55636f; }
.appui .mapview.proxview .lietab tr.sel td { background: rgba(31, 115, 201, .12); }
.appui .mapview.proxview .lietab tr.warn td { color: #b3261e; }
.appui .mapview.proxview > button.big[data-act="mapclose"] { font-weight: 400 !important; color: #1f66b3 !important; }
.appui .mapview .tippop[id^="tip-prox"] { font-weight: 400; color: #2f3c48; }
.appui .mapview .tippop[id^="tip-prox"] .legend { font-weight: 400; }
.appui .mapview .tippop[id^="tip-prox"] .legend .ln.dash { border-top-color: #e0313f; }
.appui .mapview.proxview .proxsum .infobtn span, .appui .mapview.proxview .proxleg .infobtn span { border-color: #8d99a5; color: #3f4c58; }
/* the map: richer greens and sand, crisp outlines, labels a touch bolder */
.appui .mapview.proxview #proxmap .pbg { fill: #e2f0da; }
.appui .mapview.proxview #proxmap .pgreen { fill: #5cb85c; stroke: #2e7d32; }
.appui .mapview.proxview #proxmap .pring { stroke-opacity: .85; }
.appui .mapview.proxview #proxmap text.ring { font-weight: 600; }
.appui .mapview.proxview #proxmap .phole { fill: #1b2733; }
.appui .mapview.proxview #proxmap .ppole { stroke: #1b2733; }
.appui .mapview.proxview #proxmap .pflag { fill: #e0313f; }
.appui .mapview.proxview #proxmap .pdir { font-weight: 500; fill: #3f4c58; }
.appui .mapview.proxview #proxmap .lie-rough { fill: #7dbb64; stroke: #3f8a3a; }
.appui .mapview.proxview #proxmap .lie-fw { fill: #b2e08f; stroke: #4f9e3e; }
.appui .mapview.proxview #proxmap .lie-mow { opacity: .3; }
.appui .mapview.proxview #proxmap #lie-sand { fill: #f2d785; stroke: #c29a2e; }
.appui .mapview.proxview #proxmap #lie-other { fill: #4e8f43; stroke: #2f6b2a; }
.appui .mapview.proxview #proxmap .lie-tree { fill: #2f6b2a; }
.appui .mapview.proxview #proxmap #lie-tee { fill: #d2f0c0; stroke: #4f9e3e; }
.appui .mapview.proxview #proxmap .liet { font-weight: 600; fill: #1f4a24; }
.appui .mapview.proxview #proxmap .tracer { stroke-width: 2; stroke-opacity: .85; }
.appui .mapview.proxview #proxmap g.xdot text, .appui .mapview.proxview #proxmap .xlbl { font-weight: 600; }
.appui .mapview.proxview #proxmap .d1line { stroke: #e0313f; }
.appui .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. */
.appui .mapview.lightmap .maphead b { font-weight: 500 !important; color: #1b2733; }
.appui .mapview.lightmap .maphead .close { font-weight: 400 !important; color: #1f66b3; border-color: rgba(31, 102, 179, .35) !important; }
.appui .mapview.lightmap > button.big[data-act="mapclose"] { font-weight: 400 !important; color: #1f66b3 !important; }
.appui .mapview.lightmap .seg { background: #e6ebef; }
.appui .mapview.lightmap .seg button { font-weight: 400 !important; color: #3a4754 !important; }
.appui .mapview.lightmap .seg button.sel { font-weight: 500 !important; color: #1b2733 !important; box-shadow: 0 1px 2px rgba(23, 48, 31, .18); }
.appui .mapview.lightmap .seg button small { font-size: 10px; font-weight: 400 !important; color: #6b7884; margin-left: 2px; }
.appui .mapview.lightmap h3 { font-size: 14px !important; font-weight: 500 !important; color: #1b2733; }
.appui .mapview.lightmap .mapsum { margin: 6px 2px; font-size: 13px; font-weight: 400 !important; color: #1b2733; line-height: 1.35; }
.appui .mapview.lightmap .mapsum b { font-weight: 500 !important; }
.appui .mapview.lightmap .mapsum small { font-size: 11.5px; color: #55636f; }
.appui .mapview.lightmap .mapsum.pmshow { font-size: 12px; color: #55636f; margin-top: -2px; }
.appui .mapview.lightmap .fwcounts { font-size: 12.5px; margin: 2px 2px 6px; color: #1b2733; }
.appui .mapview.lightmap .fwcounts b { font-weight: 500 !important; }
.appui .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 */
.appui .mapview.lightmap .pnrow { gap: 4px; margin: 8px 0 4px; }
.appui .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; }
.appui .mapview.lightmap .pnrow .pnbtn small { font-size: 10px; font-weight: 400; color: #6b7884; }
.appui .mapview.lightmap .pnrow .pnbtn.sel { background: rgba(31, 115, 201, .12); color: #1b2733; border-color: #1f73c9; box-shadow: none; }
.appui .mapview.lightmap .pnrow .pnbtn.sel small { color: #1f66b3; }
.appui .mapview.lightmap .pnrow .pnbtn:disabled { background: #f6f8f9; border-color: rgba(23, 48, 31, .06); color: #b7c0c8; }
/* number tiles: thin-bordered, small */
.appui .mapview.lightmap .stat-grid { gap: 6px; margin: 8px 0; }
.appui .mapview.lightmap .stat-grid .stat { padding: 7px 10px; border-radius: 12px; border: 1px solid rgba(23, 48, 31, .14); background: #fff; box-shadow: none; }
.appui .mapview.lightmap .stat-grid .stat b { font-size: 15px !important; font-weight: 400 !important; color: #1b2733; }
.appui .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; }
.appui .mapview.lightmap .lagbox { padding: 8px 10px 4px; border-radius: 12px; background: #fff; border: 1px solid rgba(23, 48, 31, .14); }
.appui .mapview.lightmap .lagbox .lagh { font-size: 13px; font-weight: 500 !important; color: #1b2733; }
/* legends: small */
.appui .mapview.lightmap .legend { gap: 3px 12px; margin: 6px 2px; font-size: 11.5px; font-weight: 400; color: #3f4c58; }
.appui .mapview.lightmap .legend span { gap: 4px; }
.appui .mapview.lightmap .legend .dot { width: 9px; height: 9px; border-width: 1px; }
.appui .mapview.lightmap .legend .dot.num { width: 14px; height: 14px; font-size: 9px; line-height: 12px; }
.appui .mapview.lightmap .legend .dia { width: 9px; height: 9px; border-width: 1px; font-size: 7px; }
.appui .mapview.lightmap .legend .star { font-size: 13px; -webkit-text-stroke: 1px #1b2733; width: 12px; }
.appui .mapview.lightmap .legend .x { font-size: 12px; width: 12px; }
.appui .mapview.lightmap .legend .ln { width: 16px; height: 2px; }
.appui .mapview.lightmap .legend .ln.dash { height: 0; border-top: 2px dashed #e0313f; background: none; }
.appui .mapview.lightmap .legend .sw { width: 14px; height: 10px; }
.appui .mapview.lightmap .legend svg { width: 14px; height: 14px; }
/* tables */
.appui .mapview.lightmap .dirtab { font-size: 12.5px; }
.appui .mapview.lightmap .dirtab td, .appui .mapview.lightmap .dirtab th { font-size: 12.5px; padding: 5px 4px; border-bottom: 1px solid #edf0f2; font-weight: 400 !important; color: #1b2733; }
.appui .mapview.lightmap .dirtab th { font-size: 11.5px; font-weight: 500 !important; color: #55636f; }
/* long notes are behind ⓘ (infoize); make that line small */
.appui .mapview.lightmap .infowrap { font-size: 12px; font-weight: 400; color: #55636f; }
.appui .mapview.lightmap .infobtn { min-height: 32px; min-width: 32px; }
.appui .mapview.lightmap .infobtn span { width: 18px; height: 18px; font: italic 400 11px/17px Georgia, serif; border-color: #8d99a5; color: #3f4c58; background: #fff; }
.appui .mapview.lightmap .infobtn[aria-expanded="true"] span { background: #3f4c58; color: #fff; }
.appui .mapview.lightmap p.help.infotext, .appui .mapview.lightmap p.help { font-size: 12px; font-weight: 400; color: #3f4c58; line-height: 1.45; }
/* pin overview: the 3×3 green */
.appui .mapview.lightmap .pinlbl { font-size: 10.5px; font-weight: 500 !important; letter-spacing: .04em; color: #3f4c58; }
.appui .mapview.lightmap .pingreen { background: #5cb85c; border: 1.5px solid #2e7d32; }
.appui .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); }
.appui .mapview.lightmap .pinstats button small { font-size: 10.5px; font-weight: 500 !important; }
.appui .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; }
.appui .mapview.lightmap .pinstats button.has .badge { background: #1b2733; color: #fff; border-color: #fff; }
.appui .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) */
.appui .mapview .heatsum { margin: 6px 2px; font-size: 12.5px; font-weight: 400; color: #1b2733; }
.appui .mapview .heatsum b { font-weight: 500 !important; }
.appui .mapview .heatclus { margin: 4px 2px; gap: 6px; font-size: 11.5px; font-weight: 400; color: #55636f; }
.appui .mapview .heatclus b { font-weight: 500 !important; color: #1b2733; }
.appui .mapview .heatclus input[type=range] { min-height: 32px; accent-color: #c62832; }
.appui .mapview .heatnote .ramp { width: 50px; height: 8px; border-width: 1px; }
.appui .mapview svg :is(.hotspot, .island) rect { stroke: #c62832; stroke-width: 1; fill: #fff; fill-opacity: .96; }
.appui .mapview svg :is(.hotspot, .island) text { font-size: 10px; font-weight: 600; fill: #9b1c26; }
.appui .mapview svg :is(.hotspot, .island) circle { stroke: #9b1c26; stroke-width: 1; }
.appui .mapview svg :is(.hotspot, .island) line.leader { stroke: #9b1c26; stroke-width: 1; }
.appui .mapview #heatavg circle[stroke="#000"] { stroke: #1b2733; stroke-width: 2; }
.appui .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) */
.appui .mapview.lightmap :is(#girmap, #missmap, #puttmap, #pinmap, #pmissmap) > rect:is([fill="#cfe8c4"], [fill="#d7ecd0"]) { fill: #e2f0da; }
.appui .mapview.lightmap :is(#girmap, #missmap, #puttmap, #pinmap, #pmissmap) :is([fill="#3da33d"], [fill="#67b866"]) { fill: #5cb85c; stroke: #2e7d32; stroke-width: 1.5; }
.appui .mapview.lightmap :is(#girmap, #puttmap, #pmissmap) circle[fill="none"][stroke="#fff"] { stroke-width: 1; stroke-opacity: .85; }
.appui .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; }
.appui .mapview.lightmap #girmap > line[stroke="#fff"] { stroke-width: 1; stroke-opacity: .7; }
.appui .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; }
.appui .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; }
.appui .mapview.lightmap :is(#girmap, #missmap, #puttmap, #pinmap) > text[font-weight="800"]:not(.ring), .appui .mapview.lightmap #pmissmap > text[fill="#28402c"] { font-size: 10.5px; font-weight: 500; fill: #3f4c58; letter-spacing: .04em; }
.appui .mapview.lightmap :is(#girmap, #missmap, #puttmap, #pinmap, #fwmap) text[font-weight="900"] { font-weight: 600; }
.appui .mapview.lightmap :is(#girmap, #missmap, #pinmap) line[stroke="#000"][stroke-width="3"] { stroke: #1b2733; stroke-width: 1.5; }
.appui .mapview.lightmap :is(#girmap, #missmap, #pinmap) path[fill="#d0213a"] { fill: #e0313f; }
.appui .mapview.lightmap :is(#girmap, #missmap, #puttmap, #pinmap) circle[fill="#000"]:not([stroke]) { fill: #1b2733; }
.appui .mapview.lightmap :is(#girmap, #missmap, #puttmap, #pinmap) :is(circle, path, rect)[stroke="#000"] { stroke: #1b2733; stroke-width: 1.5; }
/* GIR */
.appui .mapview.lightmap #girmap circle.gdot[fill="#ffd23f"] { fill: #f5b82e; }
.appui .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 */
.appui .mapview.lightmap #missmap line[stroke="#8fb486"] { stroke: #8dbb84; stroke-width: 1; }
.appui .mapview.lightmap #missmap .mcount circle { r: 12px; stroke-width: 1; }
.appui .mapview.lightmap #missmap .mcount circle[fill="#000"] { fill: #1b2733; stroke: #1b2733; }
.appui .mapview.lightmap #missmap .mcount circle[fill="#fff"] { stroke: #9aa7b2; }
.appui .mapview.lightmap #missmap .mcount text { font-size: 12.5px; font-weight: 600; transform: translateY(-1.5px); transform-box: fill-box; }
.appui .mapview.lightmap #missmap > text[font-weight="800"] { letter-spacing: .02em; }
/* putts */
.appui .mapview.lightmap #puttmap circle.pdot2 { stroke-width: 1.5; }
.appui .mapview.lightmap #puttmap circle.pdot2[stroke="#d0312d"] { stroke: #e0313f; stroke-width: 2; }
.appui .mapview.lightmap #puttmap text.plbl { font-size: 10px; font-weight: 600; stroke-width: 2.5px; stroke-linejoin: round; }
.appui .mapview.lightmap #pmissmap path.pmtr { stroke: #e0313f; }
.appui .mapview.lightmap #pmissmap circle.pmstart[stroke="#d0312d"] { stroke: #e0313f; }
/* pin */
.appui .mapview.lightmap #pinmap line[stroke-dasharray="5 5"] { stroke-width: 1; stroke-opacity: .85; }
.appui .mapview.lightmap #pinmap rect[fill="#ffd23f"] { fill: #f5c542; fill-opacity: .35; }
.appui .mapview.lightmap #pinmap circle.pdot[fill="#e0102a"] { fill: #e0313f; }
.appui .mapview.lightmap #pinmap text:is(.plbl, .mlbl) { font-size: 10px; font-weight: 600; stroke-width: 2.5px; stroke-linejoin: round; }
/* tee shots */
.appui .mapview.lightmap #fwmap rect[fill="#4f9a3c"] { fill: #7dbb64; stroke: #3f8a3a; stroke-width: 1.5; }
.appui .mapview.lightmap #fwmap path[fill="#7fd16a"] { fill: #b2e08f; stroke: #4f9e3e; stroke-width: 1.5; }
.appui .mapview.lightmap #fwmap line[stroke-dasharray="4 16"] { stroke-width: 1.5; }
.appui .mapview.lightmap #fwmap text[font-size="11"] { font-size: 10px; font-weight: 600; }
.appui .mapview.lightmap #fwmap ellipse[fill="#e8c766"] { fill: #f2d785; stroke: #c29a2e; stroke-width: 1.5; }
.appui .mapview.lightmap #fwmap rect[fill="#9be08a"] { fill: #d2f0c0; stroke: #4f9e3e; stroke-width: 1.5; }
.appui .mapview.lightmap #fwmap line[stroke-dasharray="3 6"] { stroke-width: 1; stroke-opacity: .85; }
.appui .mapview.lightmap #fwmap text.yd { font-size: 10px; font-weight: 600; stroke: #2e6b2a; stroke-width: 2px; paint-order: stroke; stroke-linejoin: round; }
.appui .mapview.lightmap #fwmap text[fill="#fff"][font-size="12"]:not(.yd) { font-size: 10px; font-weight: 600; fill: #1f4a24; }
.appui .mapview.lightmap #fwmap path.tracer { stroke: #fff; stroke-width: 4.5; stroke-opacity: .55; }
.appui .mapview.lightmap #fwmap path[stroke="#b6ff9e"] { stroke: #1e8c3a; stroke-width: 2.25; }
.appui .mapview.lightmap #fwmap path[stroke="#ff4d5e"] { stroke: #e0313f; stroke-width: 2.25; }
.appui .mapview.lightmap #fwmap circle.fwdot { stroke-width: 1.5; }
.appui .mapview.lightmap #fwmap circle.fwdot[stroke="#000"] { stroke: #1b2733; }
.appui .mapview.lightmap #fwmap circle.fwdot[stroke="#00a000"] { stroke: #1e8c3a; }
.appui .mapview.lightmap #fwmap text.fwdot { font-size: 16px; font-weight: 600; }
.appui .mapview.lightmap #fwmap #fwpct rect, .appui .mapview.lightmap #fwmap g > rect[fill="#fff"] { stroke: rgba(23, 48, 31, .18); stroke-width: 1; }
.appui .mapview.lightmap #fwmap text[font-weight="700"] { font-weight: 500; fill: #3f4c58; }
.appui .mapview.lightmap #fwmap text.fwpct { font-size: 16px; font-weight: 600; }
.appui .mapview.lightmap #fwmap text.fwpct[fill="#00791b"] { fill: #1e8c3a; }
.appui .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 */
.appui .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 ===== */
.appui .mapview.proxview .proxsum { margin: 4px 2px 0; font-size: 12.5px; line-height: 1.3; min-height: 26px; }
.appui .mapview.proxview .proxsum .infobtn { margin: -4px -4px -4px 2px; }
.appui .mapview.proxview .proxnote { margin: 0 2px; font-size: 11px; line-height: 1.3; }
.appui .mapview.proxview .proxqv { margin: 4px 0 2px; gap: 4px; }
.appui .mapview.proxview .proxqv .qv { padding: 3px 2px 3px; border-radius: 10px; }
.appui .mapview.proxview .proxqv .qvl { font-size: 10.5px; line-height: 1.2; }
.appui .mapview.proxview .proxqv b { font-size: 15px !important; line-height: 1.15; }
.appui .mapview.proxview .proxqv small { font-size: 10px; line-height: 1.15; }
.appui .mapview.proxview .proxhrow { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin: 4px 2px 0; min-height: 30px; }
.appui .mapview.proxview .proxhrow .clubh3 { margin: 0; font-size: 13px; }
.appui .mapview.proxview .benchsel { display: inline-flex; align-items: center; gap: 5px; flex: none; }
.appui .mapview.proxview .benchsel .ln.dash { display: inline-block; width: 14px; height: 0; border-top: 1.5px dashed #e0313f; }
.appui .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; }
.appui .mapview.proxview .benchsel select option.nodata { color: #8a96a1; }
.appui .mapview.proxview .proxrail { grid-template-columns: repeat(9, 1fr); gap: 3px; margin: 2px 0 0; }
.appui .mapview.proxview .proxrail button { padding: 1px 0; }
.appui .mapview.proxview .proxrail button b { font-size: 12px !important; }
.appui .mapview.proxview .proxrail button small { font-size: 9.5px !important; line-height: 1.05; }
.appui .mapview.proxview .proxctl { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 4px 2px 0; min-height: 28px; }
.appui .mapview.proxview .proxctl .proxlbl { margin: 0; }
.appui .mapview.proxview .heatslot .heattog { margin: 0; width: 150px; }
.appui .mapview.proxview .heatslot .heattog button { min-height: 26px !important; font-size: 12px !important; padding: 0 6px; }
.appui .mapview.proxview .liechips { margin: 3px 0 4px; gap: 3px; }
.appui .mapview.proxview .liechips .liebtn { min-height: 34px !important; font-size: 12px !important; }
.appui .mapview.proxview #proxmap .nobenchlab { font-size: 10px; font-weight: 500; fill: #3f4c58; stroke: #fff; stroke-width: 2.5px; }
.appui .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 */
.appui .statspage .stcats { margin: 6px 0 0; }
.appui .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; }
.appui .statspage .stcat.open { background: rgba(255, 255, 255, .75); }
.appui .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; }
.appui .statspage .stcath b { flex: none; font-weight: 500; }
.appui .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; }
.appui .statspage .stcatsum em { font-style: normal; font-weight: 400; color: #23313d; }
.appui .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; }
.appui .statspage .stcat.open > .stcath .stcatc, .appui .statspage .stsubcat.open > .stsubh .stcatc { transform: rotate(-135deg); margin-bottom: -3px; }
.appui .statspage .stcatb { padding: 0 6px 6px; border-top: 1px solid rgba(23, 48, 31, .07); }
.appui .statspage .stcatb[hidden] { display: none; }
.appui .statspage .stcatb > .stcard { margin-top: 6px; }
.appui .statspage .stgrp { margin: 10px 6px 0; font-size: 12px; font-weight: 400; color: #5c6a76; letter-spacing: .03em; text-transform: uppercase; }
.appui .statspage .stparbar { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 2px 2px; }
.appui .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; }
.appui .statspage .stparleg { display: flex; gap: 14px; justify-content: center; margin: 6px 0 0; font-size: 12px; font-weight: 400; color: #3f4e5b; }
.appui .statspage .stparleg span { display: inline-flex; align-items: center; gap: 6px; }
.appui .statspage .stparleg i { width: 20px; height: 0; border-top: 2.2px solid #34495e; }
.appui .statspage .stparleg i.dash { border-top: 1.6px dashed #97a3ae; }
.appui .statspage .stparhint { margin: 4px 6px 0; }
.appui .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; }
.appui .statspage .stri.stopen .strd { width: auto; min-width: 92px; }
.appui .statspage .stbox .stboxlab { font-size: 11px; fill: #3f4e5b; }
.appui .statspage .sty, .appui .statspage .stx { font-weight: 400; fill: #5f6c78; }
.appui .statspage .stline { stroke-width: 2.2; }
.appui .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 */
.appui .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; }
.appui .statspage .stsubcat.open { background: rgba(255, 255, 255, .85); }
.appui .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; }
.appui .statspage .stsubh b { flex: none; font-weight: 500; color: #1f2d38; }
.appui .statspage .stsubb { padding: 0 4px 4px; border-top: 1px solid rgba(23, 48, 31, .08); }
.appui .statspage .stsubb[hidden] { display: none; }
.appui .statspage .stsubb > .stcard { margin: 6px 0 0; }
.appui .statspage .stpmchips { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 2px 0; }
.appui .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; }
.appui .statspage .stpmchip.sel { background: #3b82c4; border-color: #2f6ea8; color: #fff; }
.appui .statspage .stpmgreen { fill: #fff; }
.appui .statspage .stpmedgebox { fill: none; stroke: #aab4bd; stroke-width: 1; }
.appui .statspage .stpmline { stroke: #d3d9de; stroke-width: 1; }
.appui .statspage .stpmedge { font-size: 10px; font-weight: 500; letter-spacing: .06em; fill: #5f6c78; }
.appui .statspage .stpmname { font-size: 10px; font-weight: 400; fill: #5f6c78; }
.appui .statspage .stpmn { font-size: 16px; font-weight: 600; fill: #23313d; }
.appui .statspage .stpmn.zero { fill: #a3adb6; font-weight: 400; }
.appui .statspage .stpmhole .stpmn { font-size: 12px; font-weight: 500; }
.appui .statspage .stpmp { font-size: 11px; font-weight: 500; fill: #4a5763; }
.appui .statspage .stpmall { font-size: 9.5px; font-weight: 400; fill: #8f9aa5; }
.appui .statspage .stpmnodir { color: #7b8792; font-weight: 300; }
.appui .statspage .stpmcard .infowrap, .appui .statspage .stpdfrow .infowrap { font-size: 12px; font-weight: 400; color: #55636f; }

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

/* v128 Help page (+ menu › Help): Get started lines, the video, the guide PDF */
.appui .helppage { padding-bottom: calc(env(safe-area-inset-bottom) + 24px); }
.appui .helppage .hpcard { display: block; margin: 0 0 12px; padding: 12px 14px; border: 1px solid rgba(255, 255, 255, .7); }
.appui .helppage .hph { display: block; font-size: 15px; font-weight: 600; }
.appui .helppage .hpsub { display: block; font-size: 12px; font-weight: 400; color: var(--frost-ink-soft, #445064); margin: 2px 0 8px; }
.appui .helppage .hpsteps { margin: 6px 0 0; padding-left: 20px; font-size: 13px; font-weight: 400; line-height: 1.45; }
.appui .helppage .hpsteps li { margin: 2px 0; padding-left: 2px; }
.appui .helppage .hpsteps li::marker { color: #1f73c9; font-weight: 600; }
.appui .helppage .hpsteps b { font-weight: 600; }
.appui .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; }
.appui .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; }
.appui .helppage .hpbtn:active { transform: scale(.98); background: #1a63ad; }

/* v129 Stats: strokes lost / gained by distance group (bars add up to the category total) */
.appui .statspage .stbrk .stbl { font-size: 13.5px; font-weight: 400; fill: #23313d; }
.appui .statspage .stbrk .stbv { font-size: 13.5px; font-weight: 400; fill: #23313d; }
.appui .statspage .stbrk .stbbg { fill: rgba(0, 0, 0, .06); }
.appui .statspage .stbrk .stbbar.neg { fill: #d2584c; } .appui .statspage .stbrk .stbbar.pos { fill: #3f9a55; }
.appui .statspage .stbrk .sth { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 15px; margin-bottom: 4px; }
.appui .statspage .stbrk .sth .stv { font-size: 12.5px; font-weight: 300; color: #5c6a76; white-space: nowrap; }
.appui .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 ---------- */
.appui .cmppage .frostcard { margin: 0 0 12px; padding: 10px 10px 10px; }
.appui .cmppage .cmph { margin: 2px 2px 6px; font-size: 15px; font-weight: 600; color: #1f2d38; display: flex; align-items: center; gap: 6px; }
.appui .cmppage .cmph .tipbtn { margin-left: auto; }
.appui .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; }
.appui .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; }
.appui .cmppage .cmpn button:disabled { opacity: .35; box-shadow: none; }
.appui .cmppage .cmpn b { color: #1f2d38; }
.appui .cmppage .cmpcols { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 12px; }
.appui .cmppage .cmpcard { border-radius: 16px; padding: 8px 10px 6px; background: rgba(255, 255, 255, .62); border: 1px solid rgba(23, 48, 31, .1); }
.appui .cmppage .cmpcard h3 { display: flex; align-items: baseline; justify-content: space-between; margin: 0 0 2px; font-size: 14px; font-weight: 600; }
.appui .cmppage .cmpcard h3 small { font-size: 11px; font-weight: 400; color: #6d7a86; }
.appui .cmppage .gbcard h3 { color: #2e7d32; } .appui .cmppage .gwcard h3 { color: #c0263a; }
.appui .cmppage .gbcard { border-top: 3px solid #5cb85c; } .appui .cmppage .gwcard { border-top: 3px solid #e0313f; }
.appui .cmppage .cmpcard .cmplist { font-size: 12.5px; }
.appui .cmppage .cmpcard .cl-d { font-size: 11px; color: #6d7a86; }
.appui .cmppage .cmpcard .cl-s b { font-size: 15px; font-weight: 500; }
.appui .cmppage .cmplead { margin: 0 2px 8px; font-size: 13.5px; color: #4a5866; }
.appui .cmppage .cmplead b { color: #1f2d38; font-weight: 600; }
.appui .cmppage .cmpqv { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.appui .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); }
.appui .cmppage .cmpqv .qv.big { border: 1.5px solid #e0313f; background: rgba(255, 240, 241, .85); }
.appui .cmppage .cmpqv .qvl { font-size: 11.5px; color: #45525e; }
.appui .cmppage .cmpqv b { font-size: 24px; font-weight: 400; line-height: 1.15; font-variant-numeric: tabular-nums; color: #1f2d38; }
.appui .cmppage .cmpqv small { font-size: 11px; font-weight: 300; color: #6d7a86; font-variant-numeric: tabular-nums; }
.appui .cmppage .pos { color: #2e7d32; } .appui .cmppage .neg { color: #c0263a; }
.appui .cmppage table.gapt2 { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 13.5px; font-variant-numeric: tabular-nums; color: #1f2d38; }
.appui .cmppage table.gapt2 col.c-from { width: 26%; } .appui .cmppage table.gapt2 col.c-gap { width: 22%; }
.appui .cmppage table.gapt2 th { padding: 4px 4px 6px; font-size: 11.5px; font-weight: 500; color: #6d7a86; text-align: right; }
.appui .cmppage table.gapt2 th.gb { color: #2e7d32; } .appui .cmppage table.gapt2 th.gw { color: #c0263a; }
.appui .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; }
.appui .cmppage table.gapt2 .from { text-align: left; font-weight: 500; }
.appui .cmppage table.gapt2 td b { font-weight: 500; }
.appui .cmppage table.gapt2 td small { display: block; font-size: 10.5px; color: #6d7a86; margin-top: 1px; }
.appui .cmppage table.gapt2 td.gap { font-weight: 600; } .appui .cmppage table.gapt2 td.gap b { font-weight: 600; }
.appui .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; }
.appui .cmppage .cmpkinds { margin: 4px 0 8px; } .appui .cmppage .cmpkinds button { font-size: 12.5px !important; padding: 0 2px; }
.appui .cmppage .cmpgrps { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; margin: 0 0 8px; }
.appui .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; }
.appui .cmppage .cmpgrps button small { font-size: 10px; color: #8a96a1; }
.appui .cmppage .cmpgrps button.sel { background: #1f2d38; color: #fff; border-color: #1f2d38; } .appui .cmppage .cmpgrps button.sel small { color: rgba(255, 255, 255, .7); }
.appui .cmppage .cmpgrps button:disabled { opacity: .35; }
.appui .cmppage .cmpside button.sel { font-weight: 500 !important; }
.appui .cmppage .cmpmap { border-radius: 14px; overflow: hidden; border: 1px solid rgba(23, 48, 31, .12); }
.appui .cmppage .cmpmap.cmpworst { border-color: rgba(224, 49, 63, .45); }
.appui .cmppage .cmpmap svg { display: block; width: 100%; height: auto; }
.appui .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 */
.appui .takeaway { margin: 14px 0 6px; display: grid; gap: 10px; color: var(--frost-ink); }
.appui .tkstrip { display: block; width: 100%; text-align: left; padding: 10px 14px 12px; min-height: 44px; font: inherit; color: var(--frost-ink); cursor: pointer; }
.appui .tkst-h { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 13px; color: var(--frost-ink-soft); }
.appui .tkst-h b { color: var(--frost-ink); font-size: 13px; white-space: nowrap; }
.appui .tkst-h b::after { content: ' ›'; color: var(--frost-ink-soft); }
.appui .tkstrip[aria-expanded="true"] .tkst-h b::after { content: ' ⌄'; }
.appui .tkbars { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-top: 8px; } /* v157: + Bunker */
.appui .tkb { display: grid; gap: 4px; }
.appui .tkb em { font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: .06em; color: var(--frost-ink-soft); }
.appui .tkb i { display: block; height: 7px; border-radius: 4px; background: rgba(23, 48, 31, .12); overflow: hidden; }
.appui .tkb u { display: block; height: 100%; border-radius: 4px; background: #c8962e; text-decoration: none; }
.appui .tkb.ready u { background: #1f9d55; }
.appui .tkb.ready em { color: #1f7a44; }
.appui .tkrows { margin: -2px 2px 0; padding: 4px 12px 2px; font-size: 14px; }
.appui .tkrows div { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0; }
.appui .tkrows span { white-space: nowrap; }
.appui .tkrows b { font-weight: 500; color: var(--frost-ink-soft); text-align: right; }
.appui .tkrows b.ok { color: #1f7a44; font-weight: 600; }
.appui .tkrows p { margin: 6px 0 2px; font-size: 13px; color: var(--frost-ink-soft); }
.appui .tkhead { padding: 14px 16px; }
.appui .tkeye { display: block; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--frost-ink-soft); margin-bottom: 4px; }
.appui .takeaway h3 { margin: 0; font-size: 21px !important; line-height: 1.25; font-weight: 700 !important; letter-spacing: -.01em; }
.appui .tkhead p { margin: 6px 0 0; font-size: 15px; color: var(--frost-ink-soft); }
.appui .tkfocus { background: #103b24; color: #fff; border-radius: 22px; padding: 16px; box-shadow: var(--frost-shadow); }
.appui .tkfocus .tktag { display: block; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #f4d28a; margin-bottom: 4px; }
.appui .tkfocus p { margin: 6px 0 0; font-size: 15px; color: rgba(255, 255, 255, .88); }
.appui .tkfocus .tkbasis { font-size: 13px; color: rgba(255, 255, 255, .7); }
.appui .tkfocus .tkbasis.mine { color: #9fe0b5; }
.appui .tkfocus .tkdrill { margin-top: 10px; background: rgba(255, 255, 255, .1); border-radius: 12px; padding: 9px 11px; font-size: 14px; }
.appui .tkfocus .tkdrill b { color: #f4d28a; }
.appui .tktiles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.appui .tktile { padding: 11px 12px 12px; border-radius: 18px; min-width: 0; }
.appui .tkth { display: block; font-size: 14px; font-weight: 600; }
.appui .tksg { font-size: 13px; font-weight: 700; }
.appui .tkusual { margin-left: 6px; font-size: 12px; color: var(--frost-ink-soft); }
.appui .tktile p { margin: 4px 0 0; font-size: 13px; line-height: 1.35; color: var(--frost-ink-soft); }
.appui .tkpic { display: block; width: 100%; height: auto; margin: 6px 0 2px; overflow: visible; }
.appui .tkpic .tkn { font-size: 18px; font-weight: 700; text-anchor: middle; }
.appui .tkpic .tks { font-size: 13px; }
.appui .tkpic .tkm { font-size: 10.5px; text-anchor: middle; fill: #3f5a48; }
.appui .tkpic .tkla { text-anchor: start; }
.appui .tkpic .tkl { font-size: 10px; text-anchor: middle; fill: #5d6f63; }
.appui .tkgood { margin: 0; padding: 10px 14px; font-size: 14px; border-radius: 16px; }
.appui .tkgood b { color: #1f7a44; }
.appui .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) */
.appui .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; }
.appui .home .mgcard .mgmini { flex: none; width: 84px; height: 84px; display: grid; place-items: center; background: rgba(255, 255, 255, .82); border-radius: 18px; }
.appui .home .mgcard .mgmini svg { width: 80px; height: 80px; }
.appui .home .mgcard .mgtxt { flex: 1; min-width: 0; display: grid; gap: 1px; text-shadow: 0 1px 6px rgba(0, 0, 0, .35); }
.appui .home .mgcard .mgtxt b { font-size: 17px; letter-spacing: .02em; }
.appui .home .mgcard .mgtxt span { font-size: 15px; line-height: 1.25; }
.appui .home .mgcard .mgtxt small { font-size: 12px; opacity: .9; }
.appui .home .mgcard > i { font-style: normal; font-size: 26px; opacity: .85; }
.appui .mygamepage .mgseg { margin: 12px 0 0; }
.appui .mgchart { margin-top: 12px; padding: 14px 10px 12px; }
.appui .mgchart h2 { margin: 0 6px 2px !important; font-size: 21px !important; font-weight: 700 !important; }
.appui .mgchart > p { margin: 0 6px 4px; font-size: 14px; color: var(--frost-ink-soft); }
.appui .mgchart .radar { display: block; width: 100%; height: auto; }
.appui .mglegend { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 14px; font-size: 13px; color: var(--frost-ink-soft); }
.appui .mglegend i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 5px; vertical-align: -1px; }
.appui .mglegend .lc { background: #1f9d55; } .appui .mglegend .lp { background: #8a9a8f; } .appui .mglegend .lb { border: 1.5px dashed #17301f; }
.appui .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; }
.appui .mgbl select { min-width: 0; flex: 0 1 auto; }
.appui .mgbl select { min-height: 36px; font-size: 14px; }
.appui .mgtiles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.appui .mgtile { padding: 12px 14px; border-radius: 18px; }
.appui .mgtile span { display: block; font-size: 13px; color: var(--frost-ink-soft); }
.appui .mgtile b { display: block; font-size: 27px; font-weight: 600; line-height: 1.2; }
.appui .mgtile em { font-style: normal; font-size: 13px; font-weight: 600; color: var(--frost-ink-soft); }
.appui .mgtile em.up { color: #1f7a44; } .appui .mgtile em.down { color: #c0442f; }
.appui .mygamepage #mginfo { margin-top: 12px; }

/* v142 practice: log sheet, practice chart, strokes lost vs practice time, recent list */
.appui .mygamepage .prbtn { margin-top: 12px; }
.appui .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 */
.appui .prhead { display: flex; justify-content: space-between; align-items: baseline; }
.appui .prhead b { font-size: 19px; } .appui .prhead span { font-size: 13px; color: var(--frost-ink-soft); }
.appui .prdate { display: flex; align-items: center; gap: 10px; margin: 8px 0 6px; font-size: 14px; color: var(--frost-ink-soft); }
.appui .prdate input { min-height: 40px; font-size: 16px; }
.appui .prspoke { border-top: 1px solid rgba(23, 48, 31, .12); }
.appui .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; }
.appui .prsh span { flex: 1; font-weight: 600; } .appui .prsh b { color: #2f6fc9; font-weight: 600; } .appui .prsh i { font-style: normal; color: var(--frost-ink-soft); width: 14px; }
.appui .prrow { display: grid; grid-template-columns: 1fr 44px 74px 44px; align-items: center; gap: 6px; padding: 2px 0 8px 10px; }
.appui .prrow span { font-size: 15px; color: var(--frost-ink-soft); } .appui .prrow.on span { color: var(--frost-ink); font-weight: 500; }
.appui .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); }
.appui .prstep:disabled { opacity: .35; }
.appui .prval { text-align: center; font-size: 19px; font-weight: 600; } .appui .prval small { font-size: 12px; font-weight: 400; color: var(--frost-ink-soft); }
.appui .prfoot { display: flex; align-items: center; gap: 10px; margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(23, 48, 31, .12); }
.appui .prfoot span { flex: 1; font-size: 14px; color: var(--frost-ink-soft); }
.appui .prfoot .primary { min-height: 44px; padding: 0 22px; border-radius: 999px; width: auto; margin: 0; }
.appui .prfoot .txt { min-height: 44px; }
.appui .prchart .tkeye, .appui .prvs .tkeye, .appui .prlist .tkeye { margin: 0 6px 2px; }
.appui .mglegend .lpc { background: #2f6fc9; } .appui .mglegend .lls { background: #e2705c; }
.appui .prbars { display: grid; gap: 10px; margin: 8px 6px 10px; }
.appui .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; }
.appui .prbar span { grid-row: 1 / 3; font-weight: 600; } .appui .prbar.gap span { color: #c0442f; }
.appui .prbar i { display: block; height: 8px; border-radius: 4px; background: rgba(23, 48, 31, .1); overflow: hidden; }
.appui .prbar u { display: block; height: 100%; border-radius: 4px; text-decoration: none; }
.appui .prbar .bl u { background: #e2705c; } .appui .prbar .bt u { background: #2f6fc9; }
.appui .prbar em { font-style: normal; text-align: right; color: var(--frost-ink-soft); font-size: 12px; }
.appui .prlist { margin-top: 12px; padding: 12px 14px 6px; border-radius: 22px; }
.appui .pritem { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid rgba(23, 48, 31, .1); }
.appui .pritem span { flex: 1; display: grid; } .appui .pritem span b { font-size: 15px; font-weight: 600; } .appui .pritem span small { font-size: 12px; color: var(--frost-ink-soft); }
.appui .pritem em { font-size: 15px; }
.appui .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; }
.appui .pritem em { font-style: normal; font-weight: 600; }
.appui .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 */
.appui .mygamepage .mglogtop { white-space: nowrap; }
.appui .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 */
.appui .mgknow { margin: 6px 6px 10px; padding: 10px 12px; border-radius: 16px; background: rgba(255, 255, 255, .45); }
.appui .mgkh { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 12.5px; color: var(--frost-ink-soft); white-space: nowrap; }
.appui .mgkh span { overflow: hidden; text-overflow: ellipsis; } .appui .mgkh b { color: var(--frost-ink); }
.appui .mgkbars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 12px; margin-top: 8px; }
.appui .mgkb { display: grid; gap: 3px; min-width: 0; }
.appui .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; }
.appui .mgkb i { position: relative; display: block; height: 7px; border-radius: 4px; background: rgba(23, 48, 31, .12); }
.appui .mgkb u { display: block; height: 100%; border-radius: 4px; text-decoration: none; background: #c8962e; }
.appui .mgkb s { position: absolute; top: -2px; width: 2px; height: 11px; margin-left: -1px; background: rgba(23, 48, 31, .45); border-radius: 1px; }
.appui .mgkb.ready u { background: #4cb878; } .appui .mgkb.strong u { background: #1f8a4c; }
.appui .mgkb.ready em, .appui .mgkb.strong em { color: #1f7a44; }
.appui .mgkb small { font-size: 11px; color: var(--frost-ink-soft); } .appui .mgkb.strong small { color: #1f7a44; font-weight: 600; }
.appui .mgknote { display: block; margin-top: 8px; font-size: 11.5px; color: var(--frost-ink-soft); }
.appui .mglegend .ll { background: #fff; border: 2.5px solid #c8962e; width: 8px; height: 8px; } /* v146 learning point */

/* v147: par curves on Round stats */
.appui .rpcurves { padding-bottom: 0; margin-top: 18px; }
.appui .rpcurves h3 { margin: 0 0 6px; }
.appui .rpclegend { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; color: #4a5865; margin: 0 4px 10px; }
.appui .rpclegend i { display: inline-block; width: 22px; height: 0; margin-right: 6px; vertical-align: middle; }
.appui .rpclegend .rpcsolid { height: 3px; border-radius: 2px; background: linear-gradient(90deg, #1f73c9 0 33%, #2e9d4f 33% 66%, #e8871e 66%); }
.appui .rpclegend .rpcdash { border-top: 2px dashed #1f2d38; }
.appui .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 */
.appui .holetop { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; margin: -2px 0 8px; }
.appui .holetop .livebar { margin: 0; }
.appui .roundpage.holepage .holetop .holeback { min-height: 36px; padding: 4px 16px; border-radius: 999px; font-size: 15px; font-weight: 600; }
.appui .roundpage.holepage .holetop .livebtn { min-height: 36px; }

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

/* v156: replay hint sits above the map, never over a shot */
.appui #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 */
.appui .cmppage .cmpqv .qv:last-child:nth-child(odd) { grid-column: span 2; }

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

/* v157b: miss direction + penalty, easy to find */
.appui .shotcard .sc-came, .appui .shotcard .sc-miss { display: flex; align-items: stretch; gap: 8px; margin-top: 10px; }
.appui .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; }
.appui .shotcard .misspill .mparr { font-size: 22px; line-height: 1; min-width: 22px; text-align: center; }
.appui .shotcard .misspill .mptxt { flex: 1; text-align: left; line-height: 1.25; }
.appui .shotcard .misspill .mpgo { white-space: nowrap; }
.appui .shotcard .misspill .mptxt small { color: #6b7f99; font-weight: 400; }
.appui .shotcard .misspill .mpgo { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #4a7fd0; }
.appui .roundpage .shotcard .misspill.on { background: #dfeaff; border-color: #2f64b5; color: #10264a; }
.appui .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; }
.appui .roundpage .shotcard .penpill.on { background: #b8505a; border-color: #b8505a; color: #fff; }
.appui .shotcard .sc-came .misspill .mparr, .appui .shotcard .sc-came .misspill .mpgo { flex: 0 0 auto; }

/* v158: what Penalty +1 is */
.appui .shotcard .penwrap { display: flex; align-items: stretch; gap: 4px; flex: 0 0 auto; }
.appui .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; }
.appui .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; }
.appui .shotcard .misspill .mplbl { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #4a7fd0; }
.appui .shotcard .misspill.on .mptxt b { font-size: 16px; }
/* v159 (Scott): a smaller Direction button */
.appui .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; }
.appui .shotcard .misspill .mparr { font-size: 17px; min-width: 16px; }
.appui .shotcard .misspill .mptxt { flex: 0 0 auto; }
.appui .shotcard .misspill.on .mptxt b { font-size: 14px; }
.appui .roundpage .shotcard .penpill, .appui .roundpage .shotcard .peninfo { min-height: 38px; border-radius: 19px; }
.appui .roundpage .shotcard .peninfo { width: 30px; min-width: 30px; }
.appui .shotcard .sc-came, .appui .shotcard .sc-miss { align-items: center; }
.appui .shotcard .sc-miss .penwrap, .appui .shotcard .sc-came .penwrap { margin-left: auto; }
.appui .roundpage .shotcard .misspill:not(.on) { border: 1.5px solid #4a7fd0; background: #eef4ff; }
.appui .shotcard .sc-came, .appui .shotcard .sc-miss { flex-wrap: wrap; }

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

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

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

/* v163: Where putting strokes go on Round stats + the putting tile */
.appui .rspm .stbar { display: flex; gap: 8px; align-items: center; margin: 0 0 6px; }
.appui .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; }
.appui .rspm .stbar { flex-wrap: wrap; }
.appui .rspm .stsec.stsecsg select.stbl { flex: 0 1 auto; max-width: 62%; height: 36px; font-size: 13px !important; }
.appui .rspm .stbox .stboxlab { font-size: 11px; fill: #3f4e5b; }
.appui .rspm .stbrk .stbv { font-size: 13.5px; font-weight: 400; fill: #23313d; }
.appui .rspm .stbrk .stbbg { fill: rgba(0, 0, 0, .06); }
.appui .rspm .stbrk .stbbar.neg { fill: #d2584c; }
.appui .rspm .stbrk .stbbar.pos { fill: #3f9a55; }
.appui .rspm .stbrk .sth { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 15px; margin-bottom: 4px; }
.appui .rspm .stbrk .sth .stv { font-size: 12.5px; font-weight: 300; color: #5c6a76; white-space: nowrap; }
.appui .rspm .stbrk .sth .stv em { font-style: normal; font-weight: 400; color: #23313d; }
.appui .tkbrk .tkbn, .appui .tkbrk .tkbv { font-size: 9.5px; font-weight: 700; fill: #3c4f61; }
.appui .rspm .stbrk .stbl { font-size: 13.5px; font-weight: 400; fill: #23313d; }
.appui .rspm .stbrk .stbbar.pos { fill: #3f9a55; }
.appui .tkbrk .tkbn { text-anchor: start; } .appui .tkbrk .tkbv { text-anchor: end; }

/* v164: My Playing season histogram */
.appui .plseason { width: 100%; height: auto; display: block; margin: 10px 0 2px; }
.appui .plseason .plgrid { stroke: rgba(80,100,120,.15); stroke-width: 1; }
.appui .plseason .plbase { stroke: rgba(40,60,80,.45); stroke-width: 1; }
.appui .plseason .plax { font-size: 10px; fill: #4b5d6e; font-weight: 600; }
.appui .plseason .plax.now { fill: #10233a; font-weight: 800; }
.appui .plseason .plyr { font-size: 8.5px; fill: #7b8b99; }
.appui .plseason .plbench { fill: rgba(44,84,140,.20); stroke: rgba(44,84,140,.55); stroke-width: 1.2; }
.appui .plseason .pltour { fill: #c99a2b; }
.appui .plseason .plprac { fill: #4fa874; }
.appui .plseason .plunt { fill: #a9b6c2; }
.appui .plseason .plprevm { fill: none; stroke: #23384d; stroke-width: 1.4; stroke-dasharray: 3 2.5; }
.appui .plmonth { font-size: 13px; color: #33475a; margin: 6px 0 0; font-weight: 600; }
.appui .plleg i { display: inline-block; width: 12px; height: 10px; border-radius: 2px; margin-right: 6px; vertical-align: -1px; }
.appui .plleg .lg-t { background: #c99a2b; } .appui .plleg .lg-p { background: #4fa874; } .appui .plleg .lg-u { background: #a9b6c2; }
.appui .plleg .lg-b { background: rgba(44,84,140,.20); border: 1.2px solid rgba(44,84,140,.55); }
.appui .plleg .lg-l { border: 1.4px dashed #23384d; background: none; }
.appui .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; }
.appui .plbtog i { width: 14px; height: 14px; border-radius: 4px; border: 1.5px solid #4a7fd0; background: #fff; }
.appui .plbtog.on { background: #e6efff; } .appui .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 */
.appui .plseason .plbenchl { fill: none; stroke: #2c5aa0; stroke-width: 2; stroke-dasharray: 5 3; }
.appui .plseason .plbenchld { fill: #fff; stroke: #2c5aa0; stroke-width: 1.5; }
.appui .plseason .plprevl { fill: none; stroke: #6b7b8a; stroke-width: 1.3; }
.appui .plseason .plprevld { fill: #6b7b8a; }
.appui .plleg .lg-b { background: none; border: 0; border-top: 2px dashed #2c5aa0; height: 0; width: 18px; vertical-align: 3px; border-radius: 0; }
.appui .plleg .lg-l { border: 0; border-top: 1.5px solid #6b7b8a; height: 0; width: 18px; vertical-align: 3px; border-radius: 0; }
.appui .plchart .prhow summary { font-size: 14px; font-weight: 600; }

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

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

/* v168: lag putts – three balls scored together */
.appui .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); }
.appui .sgtlag .sgtlagrow b { font-size: 14px; }
.appui .sgtlag .sgtft.sm input { width: 52px; font-size: 20px; }
.appui .sgtlag .sgtlagdir { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.appui .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 */
.appui .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; }
.appui .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%), none center/cover no-repeat; }
.appui .sgtitop { position: relative; display: flex; align-items: center; justify-content: space-between; padding: calc(env(safe-area-inset-top, 0px) + 14px) 20px 6px; }
.appui .sgtibrand { display: inline-flex; align-items: center; gap: 9px; color: #f4d28a; font-weight: 700; font-size: 13px; letter-spacing: .32em; }
.appui .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; }
.appui .sgtibrand i::after { content: ""; position: absolute; left: 9px; top: 3px; width: 2px; height: 11px; background: #fff; box-shadow: 2px 0 0 0 #e52a2a; }
.appui .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; }
.appui .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; }
.appui .sgtislides::-webkit-scrollbar { display: none; }
.appui .sgtislide { flex: 0 0 100%; scroll-snap-align: start; overflow-y: auto; padding: 10px 22px 20px; box-sizing: border-box; }
.appui .sgtieye { color: #f4d28a; font-size: 12px; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; margin: 14px 0 6px; }
.appui .sgtislide h2 { font-size: 34px; line-height: 1.08; font-weight: 600; margin: 0 0 14px; color: #fff; letter-spacing: -.01em; }
.appui .sgtibig { font-size: 17px; line-height: 1.45; color: rgba(255,255,255,.86); margin: 0 0 14px; }
.appui .sgtibig.sm { font-size: 15px; margin-top: 12px; }
.appui .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); }
.appui .sgtipanel p { margin: 0; font-size: 15px; line-height: 1.45; color: rgba(255,255,255,.88); }
.appui .sgtipanel .sgtilbl { font-size: 11.5px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: rgba(255,255,255,.68); margin-bottom: 6px; }
.appui .sgtisteps div { display: grid; grid-template-columns: 82px 1fr; gap: 10px; padding: 8px 0; border-top: 1px solid rgba(255,255,255,.12); }
.appui .sgtisteps div:first-child { border-top: 0; padding-top: 0; }
.appui .sgtisteps b { color: #f4d28a; font-size: 15px; } .appui .sgtisteps span { font-size: 14px; color: rgba(255,255,255,.85); line-height: 1.35; }
.appui .sgtichart svg { width: 100%; height: auto; display: block; }
.appui .sgtichart svg text { fill: rgba(255,255,255,.88) !important; }
.appui .sgtichart .sgtspider line, .appui .sgtichart .sgtspider polygon:not(.sgtcur) { stroke: rgba(255,255,255,.45) !important; }
.appui .sgtichart .sgtspider .sgtcur { fill: rgba(126,226,160,.28) !important; stroke: #7ee2a0 !important; }
.appui .sgtichart .sgtspider circle { fill: #7ee2a0 !important; }
.appui .sgtichart svg line { stroke: rgba(255,255,255,.22); }
.appui .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; }
.appui .sgtitag.bad { background: rgba(255,138,122,.18); color: #ff8a7a; } .appui .sgtitag.good { background: rgba(126,226,160,.18); color: #7ee2a0; }
.appui .sgtiread b { color: #fff; }
.appui .sgtifoot { position: relative; display: flex; align-items: center; justify-content: space-between; padding: 10px 22px calc(env(safe-area-inset-bottom, 0px) + 16px); }
.appui .sgtidots { display: flex; gap: 8px; } .appui .sgtidots i { width: 8px; height: 8px; border-radius: 4px; background: rgba(255,255,255,.3); transition: width .2s; }
.appui .sgtidots i.on { width: 22px; background: #f4d28a; }
.appui .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; }
.appui .sgtintro .sgtislide h2 { font-size: 36px; line-height: 1.08; font-weight: 600; color: #fff; margin: 0 0 16px; font-family: inherit; }
.appui .sgtislide { display: flex; flex-direction: column; justify-content: center; }
.appui .sgtislide > * { flex: 0 0 auto; }
.appui .sgtintro .sgtislide h2 { font-size: 36px !important; font-weight: 600 !important; }

/* v168: the Stats benchmark row, reused on Rounds and a round */
.appui .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; }
.appui .bmwrap .stsec.stsecsg { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.appui .bmwrap .stsec.stsecsg select.stbl { flex: 0 1 auto; max-width: 62%; height: 36px; font-size: 13px !important; }
.appui .bmwrap .stsgnote { margin: 0 6px 8px; }
.appui .bmwrap { margin: 6px 0 10px; }
.appui .bmwrap .bmnote { margin: 2px 4px 0; }
.appui .bmwrap .stsect { font-size: 14.5px; font-weight: 500; color: #33475a; }
.appui .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 */
.appui .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; }
.appui .sgtwhy summary { cursor: pointer; padding: 10px 0; font-weight: 600; font-size: 15px; color: #1f5a37; list-style: none; }
.appui .sgtwhy summary::-webkit-details-marker { display: none; }
.appui .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; }
.appui .sgtwhy[open] summary { padding-bottom: 4px; }
.appui .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 */
.appui .sgtrow { grid-template-columns: minmax(0, 1fr) 84px 108px; }
.appui .sgtrow svg { width: 84px; height: auto; }
.appui .sgtrv { min-width: 0; }
.appui .sgtrv small { white-space: normal; line-height: 1.25; }
.appui .sgtpsp { margin: 4px 0 8px; } .appui .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 */
.appui .sgtwarn { margin: 6px 0 10px; padding: 10px 12px; border-radius: 12px; background: #ffe9e4; border: 1.5px solid #c0442f; }
.appui .sgtwarn .sgteyebrow { color: #c0442f !important; margin: 0 0 4px !important; }
.appui .sgtwarn > div + div { border-top: 1px solid rgba(192,68,47,.25); margin-top: 6px; padding-top: 6px; }
.appui .sgtwarn b { display: block; color: #9b2a17; font-size: 14px; line-height: 1.3; }
.appui .sgtwarn small { display: block; color: #6b3a30; font-size: 12px; }
.appui .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 */
.appui .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 */
.appui .sgtstep .sgtof { align-self: center; font-size: 15px; color: var(--muted, #5c6b63); margin: 0 6px 0 -4px; }
.appui .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); }
.appui .sgtud.bad { background: #ffe9e4; border-color: #c0442f; }
.appui .sgtudh { display: flex; align-items: center; gap: 12px; }
.appui .sgtudh > b { font-size: 34px; line-height: 1; color: #1f6b3a; font-weight: 700; }
.appui .sgtud.bad .sgtudh > b { color: #b0473f; }
.appui .sgtudh span { font-size: 15px; font-weight: 600; color: #1d2a24; display: flex; flex-direction: column; }
.appui .sgtudh small { font-size: 12px; font-weight: 500; color: #5c6b63; }
.appui .sgtud p { margin: 8px 0 0; font-size: 14px; line-height: 1.4; color: #2b3a33; }
/* v175 (Scott): My Game report – pick what goes in */
.appui .grbtn { margin-top: 10px; }
.appui .grsheet .grpre { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 12px; }
.appui .grsheet .grparts { display: grid; gap: 8px; margin-bottom: 12px; }
.appui .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; }
.appui .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; }
.appui .grpart.on i { background: #1f6b3a; border-color: #1f6b3a; }
.appui .grpart small { margin-left: auto; font-weight: 500; color: #7d8c84; font-size: 12px; }
.appui .grpart[disabled] { opacity: .55; }
/* v176 (Scott): bars under every spider – your average (grey), this test (green / red), benchmark mark */
.appui .sgtbars { margin: 4px 0 8px; }
.appui .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; }
.appui button.sgtbr { cursor: pointer; }
.appui .sgtbl b { display: block; font-size: 13.5px; font-weight: 600; color: #1d2a24; line-height: 1.25; }
.appui .sgtbl b em { font-style: normal; font-size: 11px; font-weight: 700; margin-left: 6px; color: #5c6b63; } .appui .sgtbl b em.bad { color: #b0473f; } .appui .sgtbl b em.good { color: #1f7a44; }
.appui .sgtbl > span { display: block; font-size: 13px; font-weight: 600; color: #1f6b3a; } .appui .sgtbl > span.bad { color: #b0473f; }
.appui .sgtbl small { display: block; font-size: 11px; color: #6b7a72; }
.appui .sgtbt { position: relative; display: block; height: 22px; }
.appui .sgtbt i { position: absolute; left: 0; border-radius: 4px; } .appui .sgtbt i.avg { top: 2px; height: 7px; background: #b9c4be; }
.appui .sgtbt i.cur { top: 11px; height: 9px; background: #1f9d55; } .appui .sgtbt i.cur.bad { background: #d0604f; }
.appui .sgtbt s { position: absolute; top: -2px; bottom: -2px; width: 0; border-left: 2px solid #1d2a24; }
.appui .sgtbkey { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 11px; color: #5c6b63; margin: 8px 0 0; }
.appui .sgtbkey i { display: inline-block; width: 14px; height: 7px; border-radius: 3px; margin-right: 5px; vertical-align: middle; }
.appui .sgtbkey .k1 { background: #1f9d55; } .appui .sgtbkey .k2 { background: #b9c4be; } .appui .sgtbkey .k3 { width: 0; height: 12px; border-left: 2px solid #1d2a24; border-radius: 0; }
.appui .sgtwb i em { position: absolute; left: 0; top: -1px; height: 5px; border-radius: 3px; background: #b9c4be; }
.appui .sgtwb i { height: 16px; background: transparent !important; } .appui .sgtwb u { top: 6px !important; bottom: auto !important; height: 10px; }
.appui .sgtwb.bad u { background: #d0604f; } .appui .sgtwb.bad b { color: #b0473f; } .appui .sgtwb b { color: #1f6b3a; }
.appui .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 */
.appui .mgrseg { margin-top: 6px; align-items: center; } .appui .mgrseg > span { font-size: 13px; color: #43524a; padding: 0 8px 0 10px; white-space: nowrap; }
.appui .mgcvt { padding: 16px; border-radius: 22px; margin: 12px 0; }
.appui .mgcvt .mgeye { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #5c6b63; font-weight: 600; margin: 0 0 6px; }
.appui .mgcvth { font-size: 17px; font-weight: 600; line-height: 1.3; margin: 0 0 6px; color: #1d2a24; } .appui .mgcvth span { color: #43524a; font-weight: 500; } .appui .mgcvth span.bad { color: #b0473f; font-weight: 600; }
.appui .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); }
.appui .cvtr b { grid-area: a; font-size: 13.5px; } .appui .cvtd { grid-area: b; position: relative; height: 12px; background: rgba(20,60,40,.06); border-radius: 6px; }
.appui .cvtd s { position: absolute; left: 50%; top: -3px; bottom: -3px; border-left: 2px solid #1d2a24; }
.appui .cvtd i { position: absolute; top: 2px; height: 8px; border-radius: 4px; } .appui .cvtd i.neg { background: #d0604f; } .appui .cvtd i.pos { background: #1f9d55; }
.appui .cvtv { grid-area: c; text-align: right; font-weight: 600; font-size: 13px; } .appui .cvtv.bad { color: #b0473f; }
.appui .cvtn { grid-area: d; font-size: 12.5px; margin-top: 4px; color: #2b3a33; } .appui .cvtn em { font-style: normal; font-weight: 700; color: #b0473f; margin-right: 6px; } .appui .cvtn em.warn { color: #a86a12; }
.appui .cvtn small { color: #6b7a72; font-size: 12px; }
.appui .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) */
.appui .sgtbt i.avg, .appui .sgtwb i em { background: #4a7fd0 !important; } .appui .sgtbkey .k2 { background: #4a7fd0 !important; }
.appui .mgcvt .cvtv { color: #1f6b3a; } .appui .mgcvt .cvtv.bad { color: #b0473f; }
/* v177 (Scott): a page not using the player's benchmark says so */
.appui .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; }
.appui .blwarn button.txt { color: #8a5a00; font-weight: 700; text-decoration: underline; padding: 0 0 0 4px; min-height: 0; }
.appui .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 */
.appui .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; }
.appui .mgblcard { padding: 12px 16px; border-radius: 20px; margin: 10px 0; }
.appui .mgblcard.unset { border: 2px solid #d0342c !important; background: rgba(255,236,232,.9) !important; }
.appui .mgblcard .mgblt { margin: 0 0 8px; font-weight: 700; font-size: 15px; color: #7a1d16; display: flex; align-items: center; gap: 8px; } .appui .mgblcard .mgblt .bang { margin: 0; flex: 0 0 18px; }
.appui .mgblcard .mgbl { display: flex; align-items: center; gap: 10px; font-weight: 600; flex-wrap: wrap; }
.appui .mgblcard button.primary { width: 100%; margin-top: 10px; }
.appui .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) */
.appui .sgtbt i.cur.tg, .appui .sgtwb.tg u { background: #1f9d55 !important; } .appui .sgtbt i.cur.ta, .appui .sgtwb.ta u { background: #e0a82e !important; } .appui .sgtbt i.cur.tr, .appui .sgtwb.tr u { background: #d0604f !important; }
.appui .sgtbkey i.k1 { width: 6px !important; margin-right: 2px !important; } .appui .sgtbkey i.k1.tr { margin-right: 6px !important; }
.appui .sgtbkey i.k1.tg { background: #1f9d55; } .appui .sgtbkey i.k1.ta { background: #e0a82e; } .appui .sgtbkey i.k1.tr { background: #d0604f; }
.appui .sgtbl > span.vg, .appui .sgtwb b.vg { color: #1f6b3a !important; } .appui .sgtbl > span.va, .appui .sgtwb b.va { color: #a06e0a !important; } .appui .sgtbl > span.vr, .appui .sgtwb b.vr { color: #b0473f !important; }
/* v179 (Scott): PDF report + story picture side by side at the top of Round stats, line icons */
.appui .rsbtns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.appui .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; }
.appui .rsact:active { transform: scale(.98); background: rgba(255,255,255,.78); }
.appui .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; }
.appui #storybtn .rsic { background: linear-gradient(135deg, #d8a23a, #c4553e); }
.appui .rsact span { display: flex; flex-direction: column; min-width: 0; } .appui .rsact b { font-size: 15px; font-weight: 650; line-height: 1.2; } .appui .rsact small { font-size: 11.5px; color: #5c6b63; font-weight: 500; }
.appui .bmrow .tipbtn { margin-left: 8px; flex: 0 0 auto; } .appui .bmnote { margin: 6px 2px 4px; }
.appui .bmrow { display: flex; align-items: center; gap: 8px; } .appui .bmrow .stsect { white-space: nowrap; flex: 0 0 auto; }
.appui .bmrow select { flex: 1 1 auto; min-width: 0; width: auto; } .appui .bmrow .tipbtn { margin-left: 0; }
.appui .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 */
.appui .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; }
.appui .sc2 .sc-head .sc-n { margin-right: auto; }
.appui .sc2 .sc-pin { display: inline-flex; align-items: baseline; gap: 6px; margin-left: 0; }
.appui .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; }
.appui .sc2 .sc-pin em { font-style: normal; font-size: 13.5px; color: #5c6b63; font-weight: 600; white-space: nowrap; } .appui .sc2 .sc-pin em .u { font-style: normal; }
.appui .sc2 .sc-pin.obtxt { font-size: 18px; font-weight: 600; color: #1d2a24; }
.appui .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; }
.appui .sc2 .sc-lbl { display: block; font-size: 11px; letter-spacing: .12em; color: #7a8780; font-weight: 700; text-transform: uppercase; margin-bottom: 5px; }
.appui .sc2 .sc-from { display: block; min-width: 0; } .appui .sc2 .sc-lie { display: block; font-size: 19px; font-weight: 600; line-height: 1.15; color: #1d2a24; }
.appui .sc2 .sc-from small { display: block; font-size: 12px; color: #5c6b63; margin-top: 3px; }
.appui .sc2 .sc-mid { display: flex; flex-direction: column; align-items: center; min-width: 0; }
.appui .sc2 .sc-hit { font-size: 13px; font-weight: 700; color: #1f6b3a; min-height: 16px; }
.appui .sc2 .scarr { width: 100%; height: 14px; margin: 2px 0 4px; fill: none; stroke: #1d2a24; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.appui .sc2 .sc-fin { text-align: right; min-width: 0; } .appui .sc2 .sc-fin .tpen { margin-left: 6px; }
.appui .sc2 select.dd, .appui .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; }
.appui .sc2 .dd.ddtxt { display: inline-block; background-image: none; padding: 0 10px; color: #43524a; font-weight: 500; }
.appui .sc2 .sc-mid select.dd { font-size: 13.5px; max-width: 116px; } .appui .sc2 .sc-fin select.dd { font-size: 16px; }
.appui .sc2 .sc-dirrow { display: flex; justify-content: flex-end; margin-top: 8px; } .appui .sc2 .sc-dirsel { font-weight: 500 !important; font-size: 14px !important; }
.appui .sc2 .sc-layup { display: flex; justify-content: center; margin: 10px 0 0; font-size: 13px; color: #5c6b63; }
.appui .sc2 .tpen { font-style: normal; display: inline-block; background: #fde3de; color: #b0473f; font-weight: 800; font-size: 12px; border-radius: 8px; padding: 2px 6px; }
.appui .sc2 .ddwrap { position: relative; display: inline-block; max-width: 100%; vertical-align: middle; }
.appui .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; }
.appui .sc2 .dd.ddshow.ddempty { color: #7a8780; font-weight: 500; }
.appui .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; }
.appui .sc2 .sc-flow { grid-template-columns: minmax(0, .85fr) 100px minmax(0, 1.25fr); }
.appui .sc2 .sc-mid select.dd { max-width: 100px; padding-right: 22px; background-position: right 7px center; }
.appui .sc2 .dd.ddshow.ddlong { font-size: 14px; padding-left: 9px; padding-right: 23px; background-position: right 7px center; }
.appui .sc2 .fromwrap { display: block; } .appui .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; }
.appui .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 */
.appui .sc2 .sc-nwrap { display: flex; flex-direction: column; align-items: flex-start; margin-right: auto; }
.appui .sc2 .sc-nwrap .sc-n { margin-right: 0; } .appui .sc2 .sc-playing { font-size: 12.5px; font-weight: 700; color: #b0473f; margin: 3px 0 0 12px; letter-spacing: .02em; }
.appui .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 */
.appui .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; }
.appui .mygamepage .sheet-back.mgback { position: fixed; z-index: 40; }
.appui .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); }
.appui .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; }
.appui .mygamepage .mgmenu .sheet-item + .sheet-item { border-top: 1px solid rgba(23, 48, 31, .1); border-radius: 0; }
.appui .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%; }
.appui .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; }
.appui .mygamepage .mgseg button.sel { background: #17301f; color: #fff; box-shadow: 0 1px 4px rgba(20, 40, 60, .15); }
.appui .mygamepage .mgrseg { margin-top: 6px; align-items: center; } .appui .mygamepage .mgrseg > span { flex: none; font-size: 12.5px; padding: 0 6px 0 10px; color: #4a5866; }
.appui .mgknow.shut { padding: 8px 12px 10px; }
.appui .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; }
.appui .mgktog b { margin-left: auto; } .appui .mgkchev { font-style: normal; font-size: 17px; line-height: 1; color: var(--frost-ink-soft); transition: transform .2s; margin-left: 4px; }
.appui .mgktog[aria-expanded="true"] .mgkchev { transform: rotate(90deg); }
.appui .mgkall { display: block; height: 6px; margin: 6px 0 0; border-radius: 3px; background: rgba(23, 48, 31, .12); overflow: hidden; }
.appui .mgkall u { display: block; height: 100%; border-radius: 3px; text-decoration: none; background: #c0442f; }
.appui .mgkall.mid u { background: #c8962e; } .appui .mgkall.ready u { background: #1f8a4c; }
.appui .mgknow:not(.shut) .mgkall { margin-bottom: 10px; }
.appui .mgtilewrap { margin-top: 10px; } .appui .mgtileh { margin: 0 4px 6px; font-size: 12px; color: #4a5866; }
.appui .mgtiles { grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 0; }
.appui .mgtile { padding: 8px 6px 7px; border-radius: 14px; text-align: center; min-width: 0; }
.appui .mgtile span { font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.appui .mgtile b { font-size: 19px; line-height: 1.25; } .appui .mgtile em { display: block; font-size: 11.5px; white-space: nowrap; }
.appui .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; }
.appui .prcardh { display: flex; justify-content: space-between; align-items: center; margin: 0 0 2px; } .appui .prcardh .tkeye { margin-bottom: 0; }
.appui .sgtmg .sgtcath { align-items: center; } .appui .sgtmg .sgtcath h2 { margin: 0 auto 0 0; } .appui .sgtmg .sgtcath .due { margin-right: 4px; }
.appui .sgtmsub, .appui .sgtmnone { margin: 4px 0 8px; font-size: 13.5px; color: var(--frost-ink-soft); }
.appui .sgtmlist { display: flex; flex-direction: column; }
.appui .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; }
.appui .sgtmrow b { flex: none; width: 54px; font-size: 14px; font-weight: 600; } .appui .sgtmrow span { flex: 1; min-width: 0; font-size: 14px; line-height: 1.3; }
.appui .sgtmrow i { font-style: normal; font-size: 18px; color: var(--frost-ink-soft); }
.appui .sgtmrow.open { margin-top: 6px; border-top: 0; border-radius: 12px; padding: 10px; background: rgba(200, 150, 46, .14); } .appui .sgtmrow.open b { width: auto; }
.appui .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; }
.appui .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) */
.appui .plwrap { display: flex; align-items: flex-start; margin: 10px 0 2px; }
.appui .plyax { flex: none; display: block; }
.appui .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; }
.appui .plscroll::-webkit-scrollbar { display: none; }
.appui .plinner { direction: ltr; display: inline-block; }
.appui .plweeks { display: block; }
.appui .plweeks .plgrid { stroke: rgba(80,100,120,.15); stroke-width: 1; } .appui .plweeks .plbase { stroke: rgba(40,60,80,.45); stroke-width: 1; }
.appui .plweeks .plax, .appui .plyax .plax { font-size: 10px; fill: #4b5d6e; font-weight: 600; } .appui .plweeks .plax.now { fill: #10233a; font-weight: 800; }
.appui .plweeks .plmon { font-size: 10.5px; fill: #23384d; font-weight: 700; } .appui .plweeks .plmtick { stroke: rgba(40,60,80,.3); stroke-width: 1; }
.appui .plyax .plyr { font-size: 10px; fill: #7b8b99; }
.appui .plweeks .pltour { fill: #c99a2b; } .appui .plweeks .plprac { fill: #4fa874; } .appui .plweeks .plunt { fill: #a9b6c2; } .appui .plweeks .plpr { fill: #4a7fd0; }
.appui .plweeks .plsel { fill: rgba(74,127,208,.12); }
.appui .plweeks .plhit { fill: transparent; cursor: pointer; }
.appui .plweeks .plbenchl { fill: none; stroke: #2c5aa0; stroke-width: 1.6; stroke-dasharray: 4 3; pointer-events: none; }
.appui .plleg .lg-pr { background: #4a7fd0; width: 7px; }
.appui .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 */
.appui .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; }
.appui .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; }
.appui .roundbar .rbbtn svg { width: 25px; height: 25px; } .appui .roundbar .rbbtn.on { color: #17301f; background: rgba(31, 138, 76, .13); }
.appui .roundbar .rbbtn:disabled { opacity: .32; }
.appui .hasrbar #app { padding-bottom: calc(env(safe-area-inset-bottom) + 92px); }
.appui .holetop2 { display: flex; align-items: center; justify-content: center; gap: 8px; position: relative; }
.appui .holetop2 .livebar { margin: 0; }
.appui .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; }
.appui .sheet-back.hmback { position: fixed; inset: 0; z-index: 40; background: rgba(10, 25, 40, .18); }
.appui .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); }
.appui .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; }
.appui .holemenu .sheet-item + .sheet-item { border-top: 1px solid rgba(23, 48, 31, .1); border-radius: 0; } .appui .holemenu .sheet-item.danger { color: #b3261e; }
.appui .nextrow { display: flex; gap: 10px; } .appui .nextrow > button { margin-top: 0; } .appui .nextrow > :first-child { flex: 1.6; } .appui .nextrow .rpbtn { flex: 1; white-space: nowrap; }
.appui .rbtop { justify-content: center; } .appui .rbtop .title { text-align: center; }
.appui .holemenu .sheet-item.danger { background: transparent !important; border: 0 !important; border-top: 1px solid rgba(23, 48, 31, .1) !important; box-shadow: none !important; }
.appui .nextrow > button { flex: 1 !important; min-width: 0; } .appui .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 */
.appui .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); }
.appui .hasrbar { --rbh: calc(env(safe-area-inset-bottom) + 66px); }
.appui .hasrbar #app { padding-bottom: calc(var(--rbh) + 18px); }
.appui .hasrbar .mapview, .appui .hasrbar .storyfull, .appui .hasrbar .sgtintro { bottom: var(--rbh); }
.appui .hasrbar .rsheet-bg, .appui .hasrbar .sheet-bg { padding-bottom: var(--rbh); box-sizing: border-box; }
/* v189: "Exit round?" when Back would leave the hole being entered */
.appui .sheet-back.exback { position: fixed; inset: 0; z-index: 95; background: rgba(10, 25, 40, .32); }
.appui .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; }
.appui .exitask b { display: block; font-size: 20px; margin-bottom: 6px; } .appui .exitask p { margin: 0 0 16px; font-size: 15px; color: #4a5866; }
.appui .exitbtns { display: flex; gap: 10px; } .appui .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 */
.appui .hasrbar .sheet-bg, .appui .hasrbar .rsheet-bg { padding-bottom: 0; z-index: 91; }
.appui .hasrbar .sheet, .appui .hasrbar .rsheet { z-index: 92; }
/* v191 (Scott): ☰ menus; + only starts something */
.appui .menuic { width: 24px; height: 24px; display: block; }
.appui .home .navbtn { right: auto; left: calc(env(safe-area-inset-left) + 18px); }
.appui .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; }
.appui .home .hsheet.navsheet { right: auto; left: calc(env(safe-area-inset-left) + 18px); }
.appui .mygamepage .tbbtns { display: flex; gap: 8px; flex: none; }
.appui .mygamepage .topbar .mgplus.mgnav, .appui .mygamepage .topbar .mgplus { display: flex; align-items: center; justify-content: center; }
.appui .holemore .menuic { margin: 0 auto; width: 22px; height: 22px; }
/* Round stats ☰ */
.appui .rsmenubtn { width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex: none; }
.appui .rbtop { position: relative; } .appui .rbtop .rsmenubtn { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); }
.appui .sheet-back.rsback { position: fixed; inset: 0; z-index: 93; background: rgba(10, 25, 40, .18); }
.appui .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; }
.appui .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; }
.appui .rsmenu .sheet-item + .sheet-item, .appui .rsmenu .rsmset + .sheet-item { border-top: 1px solid rgba(23, 48, 31, .1); border-radius: 0; }
.appui .rsmenu .rsmi { display: flex; align-items: center; gap: 12px; } .appui .rsmenu .rsmi .rsic { width: 40px; height: 40px; flex: none; }
.appui .rsmenu .rsmi span { display: flex; flex-direction: column; } .appui .rsmenu .rsmi b { font-size: 17px; } .appui .rsmenu .rsmi small { font-size: 13px; color: #5b6b78; font-weight: 400; }
.appui .rsmenu .rsmset { border-top: 1px solid rgba(23, 48, 31, .1); padding: 10px 6px 8px; display: flex; flex-direction: column; gap: 10px; }
.appui .rsmenu .bmrow { margin: 0; flex-wrap: nowrap; } .appui .rsmenu .bmrow .stbl { flex: 1; min-width: 0; }
.appui .rsmenu .playpick { margin: 0; }
/* stat rows that open a map in one tap */
.appui .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 */
.appui #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); }
.appui #replayview #replaymap { max-height: calc(100vh - env(safe-area-inset-top) - 150px - var(--rbh, 0px)); width: auto; max-width: 100%; margin: 0 auto; }
.appui .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; }
.appui .rsmenu #storybtn .rsic { background: linear-gradient(135deg, #d8a23a, #c4553e); }
/* v192 (Scott): the Round stats ☰ menu – compact, not bulky */
.appui .rsmenu { width: min(292px, calc(100vw - 24px)); padding: 6px; border-radius: 18px; top: calc(env(safe-area-inset-top) + 66px); }
.appui .rsmenu .sheet-item { font-size: 16px !important; padding: 10px 10px !important; min-height: 0 !important; height: auto !important; line-height: 1.2; }
.appui .rsmenu .rsmi { gap: 10px; } .appui .rsmenu .rsmi .rsic { flex: 0 0 28px; width: 28px; height: 28px; padding: 5px; border-radius: 8px; }
.appui .rsmenu .rsmi small { display: none; } .appui .rsmenu .rsmi b { font-size: 16px; font-weight: 600; }
.appui .rsmenu .rsmset { padding: 8px 10px 10px; gap: 8px; }
.appui .rsmenu .bmwrap { margin: 0; }
.appui .rsmenu .bmrow, .appui .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; }
.appui .rsmenu .bmrow .stsect { grid-column: 1 / -1; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #5b6b78; }
.appui .rsmenu .bmwrap .stsec.stsecsg select.stbl { max-width: none; width: 100%; height: 34px; font-size: 14px !important; }
.appui .rsmenu .bmrow .tipbtn { width: 28px; height: 28px; min-height: 28px; font-size: 14px; }
.appui .rsmenu .bmnote { margin: 4px 0 0; font-size: 12.5px; }
.appui .rsmenu .playpick { margin: 0; } .appui .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; }
.appui .rsmenu .playseg { padding: 3px; gap: 3px; border-radius: 12px; background: rgba(23, 48, 31, .06); border: 0; }
.appui .rsmenu .playseg button { min-height: 32px !important; height: 32px; font-size: 14px !important; border-radius: 9px; padding: 0 6px; }
.appui .rsmenu .playseg button.sel { background: #17301f; color: #fff; }
/* header: a normal-size Edit round pill and a round ☰ */
.appui .topbar #editround { font-size: 15px; padding: 8px 12px; min-height: 36px; height: auto; flex: none; }
.appui .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; }
.appui .topbar .rsmenubtn .menuic { width: 20px; height: 20px; }
.appui .rsmenu .rsmset > *, .appui .rsmenu .playpick, .appui .rsmenu .playseg { margin-bottom: 0 !important; padding-bottom: 0; }
.appui .rsmenu .playseg { padding: 3px !important; } .appui .rsmenu .rsmset { padding-bottom: 10px !important; }
.appui .rsmenu .playpick > :not(.lbl):not(.playseg) { display: none; }
/* v193 (Scott): short game test ☰ (Tests, Make PDF, Trend) and the Trend page */
.appui .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; }
.appui .sgtpage .sgtmenubtn .menuic { width: 20px; height: 20px; }
.appui .sheet-back.sgtback { position: fixed; inset: 0; z-index: 93; background: rgba(10, 25, 40, .18); }
.appui .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); }
.appui .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; }
.appui .sgtmenu .sheet-item + .sheet-item { border-top: 1px solid rgba(23, 48, 31, .1); border-radius: 0; }
.appui .sgttrendlede { margin: 4px 6px 10px; font-size: 13.5px; color: var(--frost-ink-soft); }
.appui .trcard { padding: 12px 12px 6px; margin-bottom: 10px; }
.appui .trhead { display: flex; align-items: baseline; gap: 10px; margin: 0 2px 4px; } .appui .trhead b { font-size: 17px; flex: 1; }
.appui .trhead span { font-size: 20px; font-weight: 800; } .appui .trhead em { font-style: normal; font-size: 13px; color: #5b6b78; }
.appui .trhead em.up { color: #1f6b3a; } .appui .trhead em.down { color: #b0473f; }
.appui .trgt { color: #1f6b3a; } .appui .trat { color: #a06e0a; } .appui .trrt { color: #b0473f; }
.appui .trsvg { display: block; width: 100%; height: auto; }
.appui .trsvg .trline { fill: none; stroke: #4a7fd0; stroke-width: 2.4; stroke-linejoin: round; } .appui .trsvg .trbench { stroke: #17301f; stroke-width: 1.2; stroke-dasharray: 4 3; opacity: .55; }
.appui .trsvg .trgrid { stroke: rgba(40, 60, 80, .12); stroke-width: 1; } .appui .trsvg .trax { font-size: 10px; fill: #5b6b78; font-weight: 600; }
.appui .trsvg .trg { fill: #1f9d55; stroke: #fff; stroke-width: 1.5; } .appui .trsvg .tra { fill: #e0a82e; stroke: #fff; stroke-width: 1.5; } .appui .trsvg .trr { fill: #d0604f; stroke: #fff; stroke-width: 1.5; }
.appui .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 */
.appui .mygamepage .tbsp, .appui .sgtpage .tbsp { min-width: 64px; }
.appui .mgknowwrap { margin: 12px 0 0; padding: 4px 6px; border-radius: 20px; }
.appui .mgknowwrap .mgknow { margin: 0; }
.appui .practicepage .mgchart, .appui .practicepage .prlist, .appui .practicepage .prvs { margin-top: 12px; }
.appui .trlede { margin: 10px 4px 6px; font-size: 13.5px; line-height: 1.4; color: #43525f; }
.appui .trzoom { margin: 4px 0 10px; }
.appui .trcard2 { padding: 12px 10px 8px; margin: 0 0 12px; border-radius: 20px; }
.appui .trcard2 .trh { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 0 4px 4px; }
.appui .trcard2 .trh b { font-size: 17px; } .appui .trcard2 .trh span { font-size: 14px; font-weight: 700; color: #23384d; } .appui .trcard2 .trh span.bad { color: #b0473f; }
.appui .trcard2 .trfoot { margin: 4px 4px 2px; font-size: 12.5px; color: #4a5866; line-height: 1.35; }
.appui .trcard2 .trfoot .up { color: #1f6b3a; font-weight: 700; } .appui .trcard2 .trfoot .down { color: #b0473f; font-weight: 700; }
.appui .trcard2.trnone { display: flex; justify-content: space-between; align-items: baseline; padding: 12px 14px; }
.appui .trcard2.trnone b { font-size: 15.5px; } .appui .trcard2.trnone span { font-size: 13px; color: #6b7b88; }
.appui .trnote { margin: 4px 6px 12px; font-size: 12px; }
.appui .trchart { display: block; width: 100%; height: auto; }
.appui .trchart .trax { font-size: 9.5px; fill: #5b6b78; font-weight: 600; } .appui .trchart .trax.now { fill: #17301f; }
.appui .trchart .trpl { font-size: 10.5px; font-weight: 700; fill: #23384d; } .appui .trchart .trpl.pr { fill: #2c5aa0; }
.appui .trchart .trslip { fill: rgba(208, 96, 79, .15); } .appui .trchart .trfuture { fill: rgba(255, 255, 255, .35); } .appui .trchart .trfuture.bad { fill: rgba(208, 96, 79, .10); }
.appui .trchart .trzero, .appui .trchart .trbase { stroke: rgba(40, 60, 80, .28); stroke-width: 1; }
.appui .trchart .trnorm { stroke: #17301f; stroke-dasharray: 4 3; opacity: .4; } .appui .trchart .trnormp { stroke: #2c5aa0; stroke-dasharray: 4 3; opacity: .5; }
.appui .trchart .trsg { fill: none; stroke: #17301f; stroke-width: 2.3; stroke-linejoin: round; } .appui .trchart .trdot { fill: #17301f; opacity: .28; }
.appui .trchart .trpr { fill: none; stroke: #4a7fd0; stroke-width: 2.3; stroke-linejoin: round; } .appui .trchart .trdotp { fill: #4a7fd0; opacity: .38; }
.appui .trchart .trband { fill: rgba(74, 127, 208, .13); } .appui .trchart .trup { fill: none; stroke: #1f9d55; stroke-width: 1.6; } .appui .trchart .trdn { fill: none; stroke: #d0604f; stroke-width: 1.6; }
.appui .trchart .trup.thin, .appui .trchart .trdn.thin { stroke-width: 1.3; }
.appui .trchart .trmid { fill: none; stroke: #17301f; stroke-width: 2.3; stroke-dasharray: 6 4; } .appui .trchart .trprmid { fill: none; stroke: #4a7fd0; stroke-width: 2.1; stroke-dasharray: 6 4; }
.appui .trchart .trtoday { stroke: #17301f; opacity: .3; }
.appui .trchart .trtag { font-size: 9.5px; font-weight: 700; fill: #17301f; } .appui .trchart .trtag.up { fill: #1f6b3a; } .appui .trchart .trtag.down, .appui .trchart .trtag.bad { fill: #b0473f; }
.appui .trchart .trgrid2 { stroke: rgba(40, 60, 80, .09); stroke-width: 1; }
.appui .trcard .trcat { font-size: 18px; margin: 0 2px 4px; }
.appui .trrow { padding: 6px 0 2px; } .appui .trrow + .trrow { border-top: 1px solid rgba(23, 48, 31, .08); }
.appui .trrow .trhead b { font-size: 15px; } .appui .trrow .trhead span { font-size: 15px; font-weight: 700; }
/* v195: Log practice – Practice / Lesson, how it went, kind of practice, lessons */
.appui .prsheet .prkind { margin: 8px 0 4px; }
.appui .prqs { padding: 0 0 10px 10px; }
.appui .prq { margin: 8px 0 5px; font-size: 13px; font-weight: 600; color: var(--frost-ink-soft); } .appui .prq small { font-weight: 400; opacity: .8; }
.appui .prchips { display: flex; flex-wrap: wrap; gap: 6px; }
.appui .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; }
.appui .prchip i { font-style: normal; font-size: 15px; }
.appui .prchip.on { background: #1f6f4a; border-color: #1f6f4a; color: #fff; font-weight: 600; }
.appui .prcoach { display: flex; align-items: center; gap: 10px; margin: 8px 0 2px; font-size: 14px; color: var(--frost-ink-soft); }
.appui .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); }
.appui .prsheet .prnote { margin: 8px 0 2px; font-size: 13px; line-height: 1.4; color: #a06a12; }
.appui .prlmin { margin-top: 10px; padding-left: 0; }
/* v195: Trends – patience line, countdown cards, lessons, expected dips (amber, not red) */
.appui .trpatience { margin: 0 4px 10px; font-size: 13px; line-height: 1.4; color: #2f5a44; font-weight: 500; }
.appui .trcard2 .trh span.exp, .appui .trcard2 .trh span.trsoon { color: #a06a12; }
.appui .trcard2.trearly .trfoot { margin-top: 4px; }
.appui .trprog { height: 6px; margin: 2px 6px 0; border-radius: 999px; background: rgba(23, 48, 31, .1); overflow: hidden; }
.appui .trprog i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #4f9d6d, #1f6f4a); }
.appui .trchart .trslip.exp { fill: rgba(222, 160, 40, .16); } .appui .trchart .trdip { fill: rgba(222, 160, 40, .14); }
.appui .trchart .trtag.exp { fill: #a06a12; }
.appui .trchart .trles { stroke: #6b5aa6; stroke-width: 1; stroke-dasharray: 2 3; } .appui .trchart .trles.big { stroke-width: 1.6; stroke-dasharray: none; }
.appui .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 */
.appui .trchart .trband.low { fill: rgba(208, 96, 79, .22); } .appui .trchart .trband.mid { fill: rgba(222, 160, 40, .24); } .appui .trchart .trband.high { fill: rgba(63, 150, 96, .24); }
.appui .trchart .trwhat { fill: none; stroke: #6f7d88; stroke-width: 1.3; stroke-dasharray: 3 3; } .appui .trchart .trwhat.thin { stroke-width: 1.1; }
.appui .trchart .trtag.what { fill: #4d5b66; }
.appui .trchart .trdip { fill: rgba(107, 90, 166, .10); } .appui .trchart .trtag.exp { fill: #5a4a96; }
.appui .trconf { margin: -2px 4px 2px; font-size: 12px; font-weight: 700; } .appui .trconf.low { color: #b0473f; } .appui .trconf.mid { color: #a06a12; } .appui .trconf.high { color: #2f7a4c; }
.appui .trlede b.cl { color: #b0473f; } .appui .trlede b.cm { color: #a06a12; } .appui .trlede b.ch { color: #2f7a4c; }
/* v197: tap a week's dot */
.appui .trchart .trhit { fill: transparent; cursor: pointer; } .appui .trchart .trsel { fill: none; stroke: #17301f; stroke-width: 1.6; }
.appui .trwk { margin: 2px 4px 6px; padding: 8px 10px; border-radius: 14px; background: rgba(255, 255, 255, .6); }
.appui .trwkh { display: flex; align-items: center; justify-content: space-between; } .appui .trwkh b { font-size: 13.5px; } .appui .trwkh .txt { min-height: 32px; padding: 0 6px; }
.appui .trwk ul { list-style: none; margin: 4px 0 0; padding: 0; } .appui .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); }
.appui .trwk li span { color: #43525f; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .appui .trwk li b { white-space: nowrap; }
/* v198: the pinned tab bar – My Game · Rounds · (+) · Practice · Stats – and the page button rows */
.appui .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); }
.appui .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; }
.appui .tabbar .tbbtn svg { width: 25px; height: 25px; } .appui .tabbar .tbbtn.on { color: #17301f; background: rgba(31, 138, 76, .13); }
.appui .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; }
.appui .tabbar .tbplus svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; }
.appui .hastab .home-bottom { bottom: calc(env(safe-area-inset-bottom) + 92px); } .appui .hastab .homever { bottom: calc(env(safe-area-inset-bottom) + 76px); }
.appui .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 + */
.appui .hastab .home .sheet-back { background: rgba(10, 20, 15, .28); }
.appui .qrow { display: flex; gap: 8px; margin: 0 0 10px; }
.appui .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; }
.appui .qrow .qbtn svg { width: 21px; height: 21px; flex: 0 0 auto; } .appui .qrow .qbtn.on { background: rgba(31, 138, 76, .16); }
.appui .prbig { display: block; width: 100%; min-height: 54px; margin: 0 0 10px; font-size: 17px; border-radius: 18px; }
.appui .qrow .qbtn { min-width: 0; } .appui #sgtqrow .qbtn { flex-direction: column; gap: 2px; min-height: 54px; font-size: 12.5px; padding: 4px 2px; } .appui #sgtqrow .qbtn svg { width: 22px; height: 22px; }
/* v199: discard an empty round in progress from Home */
.appui .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 */
.appui .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; }
.appui .home .hctrack { display: grid; } /* every slide in the same cell – the card is as tall as the tallest */
.appui .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; }
.appui .home .hcslide.on { opacity: 1; transform: none; pointer-events: auto; }
.appui .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); }
.appui .home .hctitle { font-size: 20px; line-height: 1.2; font-weight: 700; text-shadow: 0 1px 3px rgba(0, 0, 0, .4); }
.appui .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); }
.appui .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); }
.appui .home .hcdots { display: flex; justify-content: center; gap: 6px; margin-top: 8px; } .appui .home .hcdots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255, 255, 255, .45); transition: background .3s, width .3s; }
.appui .home .hcdots i.on { width: 16px; border-radius: 3px; background: #fff; }
@media (prefers-reduced-motion: reduce) { .appui .home .hcslide { transition: none; transform: none; } }
.appui .tabbar .tbbtn.bangon { position: relative; } .appui .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 */
.appui .home .hcard { width: min(380px, calc(100vw - 40px)); padding: 10px 14px 10px; border-radius: 20px; }
.appui .home .hcslide { gap: 1px; } .appui .home .hckick { font-size: 11px; } .appui .home .hctitle { font-size: 17px; line-height: 1.2; }
.appui .home .hcsub { font-size: 13.5px; -webkit-line-clamp: 1; }
.appui .home .hcbtn { margin-top: 7px; min-height: 34px; padding: 0 14px; font-size: 14px; }
.appui .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) */
.appui .readpad { margin: 2px 0 8px 44px; padding: 8px 10px; border-radius: 14px; background: rgba(255, 255, 255, .55); }
.appui .readpad .rphead { display: flex; align-items: baseline; gap: 8px; margin-bottom: 6px; } .appui .readpad .rphead small { font-size: 12px; color: #5b6b78; font-weight: 600; } .appui .readpad .rphead b { font-size: 13.5px; color: #17301f; }
.appui .readpad .rpgrid { display: grid; grid-template-columns: 64px repeat(3, 1fr); gap: 5px; align-items: center; }
.appui .readpad .rpgrid > i { font-style: normal; font-size: 11.5px; font-weight: 600; color: #5b6b78; text-align: center; } .appui .readpad .rpgrid > i.rps { text-align: left; }
.appui .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; }
.appui .readpad .rpc.up { background: rgba(255, 255, 255, .75); } .appui .readpad .rpc.down { background: rgba(232, 238, 245, .9); }
.appui .readpad .rpc svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.appui .readpad .rpc.on { background: #1f6f4a; border-color: #1f6f4a; color: #fff; }
.appui .shotcard .readpad { margin: 10px 0 2px; }
/* v203: the practice plan – "Practice next" */
.appui .plancard { padding: 14px 14px 10px; } .appui .planhead { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.appui .planhead b { font-size: 19px; } .appui .planhead small { font-size: 12.5px; color: #5b6b78; text-align: right; }
.appui .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; }
.appui .tourrow span { font-weight: 600; color: #1f6f4a; font-size: 13px; } .appui .tourrow.add { color: #1f6f4a; justify-content: flex-start; border-style: dashed; }
.appui .tourform { margin: 0 0 10px; padding: 10px 12px; border-radius: 14px; background: rgba(255, 255, 255, .6); } .appui .tourform label { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; margin-bottom: 8px; }
.appui .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; }
.appui .tourhelp { margin: 8px 0 6px; font-size: 12.5px; } .appui .tourbtns { display: flex; justify-content: flex-end; gap: 8px; }
.appui .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; } .appui .planmsg.sharp { background: rgba(222, 160, 40, .16); }
.appui .planlist { list-style: none; margin: 0; padding: 0; } .appui .planitem { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; border-top: 1px solid rgba(23, 48, 31, .09); }
.appui .planitem:first-child { border-top: 0; } .appui .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; }
.appui .planitem.maint .pin { background: #8a9aa6; } .appui .planitem.coach .pin { background: #6b5aa6; }
.appui .pltext { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; } .appui .pltext small { font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #5b6b78; }
.appui .pltext b { font-size: 15.5px; line-height: 1.25; } .appui .plwhy { font-size: 13px; line-height: 1.35; color: #43525f; } .appui .pltip { font-size: 12.5px; color: #a06a12; font-weight: 600; }
.appui .plright { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; } .appui .plmin { font-size: 13px; font-weight: 700; white-space: nowrap; }
.appui .plbtn { min-height: 34px; padding: 0 14px; border-radius: 999px; border: 0; background: #1f6f4a; color: #fff; font: inherit; font-size: 14px; font-weight: 700; }
.appui .planahead { display: flex; flex-direction: column; gap: 4px; padding: 10px 0; } .appui .planahead b { font-size: 16px; } .appui .planahead span { font-size: 13.5px; color: #43525f; }
.appui .plddone { margin: 6px 0 2px; font-size: 13px; color: #2f7a4c; font-weight: 600; } .appui .plnote { margin: 8px 0 0; font-size: 12.5px; }
.appui .pldoneit { font-size: 12.5px; color: #2f7a4c; font-weight: 700; }
.appui .card.plancard { display: block; } .appui .plancard .planlist, .appui .plancard .tourrow { width: 100%; }
/* v204: the plan explains itself and is never empty */
.appui .plintro { margin: -2px 0 10px; font-size: 13.5px; line-height: 1.4; color: #43525f; } .appui .plintro b { color: #1f6f4a; }
.appui .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; }
.appui .planlist .plsep + .planitem { border-top: 0; } .appui .planahead { padding: 2px 0 6px; }
/* v205: start a session, your typical week, this week's bars */
.appui .prtop { display: flex; gap: 8px; margin: 0 0 10px; } .appui .prtop .prbig { flex: 1.4; width: auto; margin: 0; } .appui .prtop .prbig2 { flex: 1; min-height: 54px; border-radius: 18px; font: inherit; font-size: 15px; font-weight: 700; color: #17301f; }
.appui .card.typcard, .appui .card.weekcard { display: block; padding: 14px 14px 10px; } .appui .typcard > b { font-size: 18px; } .appui .typrow { padding-left: 0; margin-top: 6px; }
.appui .typcard .tourbtns { margin-top: 10px; }
.appui .typedit { padding: 0; min-height: 0; font-size: 12.5px; color: #1f6f4a; font-weight: 600; background: none; border: 0; }
.appui .sesssheet .sesst { margin: 10px 0 6px; } .appui .sesssheet .sesst .prchip { min-height: 44px; padding: 0 16px; font-size: 15px; font-weight: 600; }
.appui .sesssheet .sesslist .prchips { margin-top: 6px; } .appui .sesssheet .sesslist .prchip { min-height: 32px; padding: 0 10px; font-size: 13px; } .appui .sesssheet .prfoot .primary { margin-left: auto; }
.appui .wknav { display: flex; align-items: center; gap: 2px; } .appui .wknav b { font-size: 18px; min-width: 0; } .appui .wknav .txt { min-height: 34px; min-width: 30px; padding: 0 6px; font-size: 20px; color: #1f6f4a; background: none; border: 0; box-shadow: none; }
.appui .wknav .txt:disabled { opacity: .3; } .appui .weekcard .planhead small { font-size: 14px; font-weight: 700; color: #17301f; }
.appui .wkdots { display: flex; gap: 6px; margin: 0 0 12px 4px; } .appui .wkdots i { width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid #1f6f4a; }
.appui .wkdots i.full { background: #1f6f4a; } .appui .wkdots i.half { background: linear-gradient(90deg, #1f6f4a 50%, transparent 50%); } .appui .wkdots i.cur { box-shadow: 0 0 0 2px rgba(31, 111, 74, .25); }
.appui .wkbars { display: flex; flex-direction: column; gap: 9px; } .appui .wkrow { display: grid; grid-template-columns: 88px 1fr 92px; align-items: center; gap: 8px; }
.appui .wkname { font-size: 13px; font-weight: 600; color: #2f4a3a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.appui .wkbar { position: relative; display: block; height: 14px; border-radius: 7px; background: rgba(23, 48, 31, .08); } .appui .wkfill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 7px; background: #6fae86; }
.appui .wkrow.got .wkfill { background: #1f6f4a; } .appui .wktgt { position: absolute; top: -3px; bottom: -3px; width: 2.5px; margin-left: -1px; border-radius: 1px; background: #17301f; }
.appui .wkval { font-size: 12.5px; font-weight: 700; white-space: nowrap; text-align: right; } .appui .wkval small { font-weight: 500; color: #5b6b78; } .appui .wkrow.got .wkval { color: #1f6f4a; }
.appui .wknote { margin: 10px 0 0; font-size: 12.5px; }
.appui .typcard .typrow .prstep { width: 40px; height: 40px; min-height: 40px; min-width: 40px; padding: 0; } .appui .typcard .typrow { min-height: 48px; } .appui .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 */
.appui .weekcard .planhead { flex-wrap: nowrap; } .appui .wknav b { white-space: nowrap; font-size: 17px; } .appui .weekcard .planhead small { white-space: nowrap; font-size: 13px; }
.appui .wkrow { grid-template-columns: 82px minmax(40px, 1fr) auto; gap: 7px; } .appui .wkval { font-size: 12.5px; } .appui .wkval small { font-size: 11.5px; }
.appui .wkpages { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin: 0 -2px; }
.appui .wkpages::-webkit-scrollbar { display: none; } .appui .wkpage { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; padding: 0 2px; box-sizing: border-box; }
.appui .wkpdots { display: flex; justify-content: center; gap: 6px; margin-top: 8px; } .appui .wkpdots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(23, 48, 31, .2); transition: width .2s, background .2s; }
.appui .wkpdots i.on { width: 16px; border-radius: 3px; background: #1f6f4a; }
.appui .wkpt { margin: 0 0 4px; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #5b6b78; }
.appui .wkchart { display: block; width: 100%; height: auto; } .appui .wkchart .wkgrid { stroke: rgba(23, 48, 31, .09); } .appui .wkchart .wkbase { stroke: rgba(23, 48, 31, .35); }
.appui .wkchart .wkax { font-size: 9.5px; fill: #5b6b78; } .appui .wkchart .wkax.now { fill: #17301f; font-weight: 700; } .appui .wkchart .wkdtot { font-size: 9px; font-weight: 700; fill: #17301f; }
.appui .wkchart .pg0, .appui .pglegend .pg0 { fill: #3f7fbf; background: #3f7fbf; } .appui .wkchart .pg1, .appui .pglegend .pg1 { fill: #d39b2a; background: #d39b2a; }
.appui .wkchart .pg2, .appui .pglegend .pg2 { fill: #3f9a63; background: #3f9a63; } .appui .wkchart .pg3, .appui .pglegend .pg3 { fill: #7a5ab0; background: #7a5ab0; }
.appui .wkchart .band { fill-opacity: .78; stroke: #fff; stroke-width: .6; } .appui .wkchart .wktotal { fill: none; stroke: #17301f; stroke-width: 1.4; }
.appui .wkchart .wktgtline { stroke: #17301f; stroke-width: 1; stroke-dasharray: 4 3; } .appui .wkchart .wkles { stroke: #6b5aa6; stroke-width: 1.4; stroke-dasharray: 2 2; } .appui .wkchart .wktour { font-size: 11px; }
.appui .pglegend { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 12px; margin-top: 6px; font-size: 12px; color: #2f4a3a; font-weight: 600; }
.appui .pglegend span { display: inline-flex; align-items: center; gap: 5px; } .appui .pglegend i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.appui .leskey { display: inline-block; width: 0; height: 11px; border-left: 2px dashed #6b5aa6; vertical-align: -1px; margin: 0 2px; }
.appui .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 */
.appui .weekcard:not(.isfull) { cursor: pointer; }
.appui .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; }
.appui .wkopen { overflow: hidden; } .appui .wkopen .tabbar { display: none; }
.appui .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); }
.appui .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; }
.appui .weekcard.isfull .planhead { margin-top: 8px; } .appui .weekcard.isfull .wknav b { font-size: 22px; } .appui .weekcard.isfull .planhead small { font-size: 15px; }
.appui .weekcard.isfull .wkrow { grid-template-columns: 104px minmax(60px, 1fr) auto; } .appui .weekcard.isfull .wkname, .appui .weekcard.isfull .wkval { font-size: 14.5px; } .appui .weekcard.isfull .wkbar { height: 18px; border-radius: 9px; } .appui .weekcard.isfull .wkfill { border-radius: 9px; }
.appui .weekcard.isfull .wkbars { gap: 14px; margin-top: 6px; } .appui .weekcard.isfull .wkpt { font-size: 13px; margin-top: 8px; } .appui .weekcard.isfull .pglegend { font-size: 14px; margin-top: 12px; }
.appui .weekcard.isfull .wkpdots { margin-top: 16px; } .appui .weekcard.isfull .wkpdots i { width: 8px; height: 8px; } .appui .weekcard.isfull .wkpdots i.on { width: 22px; }
/* v209: just stats or stats + practice – the first-launch choice and the Practice plan switch */
.appui .modepick { display: grid; gap: 8px; margin: 4px 0 6px; }
.appui .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; }
.appui .modeopt b { display: block; font-size: 16px; }
.appui .modeopt span { display: block; font-size: 13.5px; color: #5b6660; margin-top: 2px; }
.appui .modeopt.on { border-color: #1f6b45; background: #eef6f0; }
.appui .namehelp.modeq { margin: 12px 0 4px; font-weight: 600; }
.appui .namehelp.modenote { font-size: 13px; margin: 2px 0 8px; }
.appui .moderow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: 16px; margin: 12px 0; }
.appui .moderow b { display: block; font-size: 16px; }
.appui .moderow small { display: block; font-size: 13px; color: #5b6660; margin-top: 2px; }
.appui .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 */
.appui .prchart .prpages { cursor: pointer; }
.appui .prchart .prper { display: block; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #1f6f4a; margin-top: 4px; }
.appui .prchart .prh { margin: 2px 0 4px; }
.appui .prchart .prlede2 { margin: 0 0 4px; color: #3f5a48; font-size: 15px; min-height: 20px; }
.appui .prchart .prtyp { color: #6b7d71; font-size: 13px; }
.appui .prchart .prpage .mglegend { flex-wrap: wrap; justify-content: center; }
.appui .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; }
.appui .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); }
.appui .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; }
.appui .prchart.isfull .prpages { cursor: default; } .appui .prchart.isfull .prh { font-size: 28px; } .appui .prchart.isfull .prlede2 { font-size: 16px; }
.appui .prchart.isfull .wkpdots { margin-top: 16px; } .appui .prchart.isfull .wkpdots i { width: 8px; height: 8px; } .appui .prchart.isfull .wkpdots i.on { width: 22px; }
.appui .prchart.isfull .prpage { padding-top: 6px; } .appui .prchart.isfull .radar { margin: 10px 0 6px; } .appui .prchart.isfull .prhow { margin-top: 18px; }
/* v212: coach sharing – the Athletes screen, the switcher, and the Coach card in Settings */
.appui .cmlist { padding: 0 14px calc(env(safe-area-inset-bottom) + 40px); }
.appui .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; }
.appui .cmcode small { display: block; font-size: 12px; color: #5b6660; letter-spacing: .04em; text-transform: uppercase; } .appui .cmcode b { font-size: 21px; letter-spacing: .12em; color: #17301f; }
.appui .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; }
.appui .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; }
.appui .cmstat { margin: 2px 4px 4px; font-size: 13px; color: #3f5a48; min-height: 18px; }
.appui .cmsec { font-size: 12.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #3f5a48; margin: 10px 4px 6px; }
.appui .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; }
.appui .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; }
.appui .cmname { grid-column: 2; grid-row: 1; font-weight: 800; font-size: 17px; color: #17301f; } .appui .cmwhen { grid-column: 2; grid-row: 2; font-size: 13.5px; color: #5b6660; }
.appui .cmscore { grid-column: 3; grid-row: 1 / 3; text-align: right; } .appui .cmscore b { display: block; font-size: 22px; color: #17301f; } .appui .cmscore small { font-size: 12.5px; font-weight: 700; }
.appui .cmup { color: #1f7a44; } .appui .cmdn { color: #c0392b; } .appui .cmflat { color: #6b7d71; }
.appui .cmflags { grid-column: 1 / 4; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; } .appui .cmflag { font-size: 13px; font-weight: 700; padding: 4px 10px; border-radius: 999px; }
.appui .cmred { background: #fde8e6; color: #b03024; } .appui .cmgreen { background: #e4f3ea; color: #1f6f4a; } .appui .cmamber { background: #fdf1dc; color: #8a5a10; } .appui .cmnew { background: #1f73c9; color: #fff; } .appui .cmflat2 { background: #eef1ee; color: #3f5a48; }
.appui .cmempty { margin: 14px 0; padding: 16px; border-radius: 18px; background: rgba(255, 255, 255, .78); } .appui .cmempty p { margin: 6px 0 0; color: #3f5a48; font-size: 15px; line-height: 1.45; }
.appui .cmfoot { text-align: center; color: #5b6660; font-size: 13px; margin: 12px 0; }
.appui .cmsw { display: inline-flex; align-items: center; gap: 4px; } .appui .cmsw i { font-style: normal; font-size: 13px; opacity: .7; } .appui #coswitch { cursor: pointer; }
.appui .cmdim { position: fixed; inset: 0; z-index: 98; background: rgba(0, 0, 0, .25); }
.appui .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; }
.appui .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; }
.appui .cmdrop button.on { background: #eef6f0; font-weight: 800; } .appui .cmdrop small { margin-left: auto; color: #5b6660; font-size: 13px; }
.appui .tbspace { flex: 0 0 64px; }
.appui .cshare { display: block; padding: 14px; margin: 8px 0 12px; } .appui .cshare .csp { margin: 0 0 8px; font-size: 15.5px; line-height: 1.4; } .appui .cshare .csmuted { margin: 0 0 8px; font-size: 13.5px; color: #5b6660; }
.appui .csrow { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 6px; } .appui .cslink { color: #3f5a48; text-decoration: underline; }
.appui .cswarn { border: 0; border-radius: 999px; padding: 9px 14px; background: #c0392b; color: #fff; font: inherit; font-weight: 700; min-height: 0; }
.appui .csform { display: flex; gap: 8px; margin-top: 8px; } .appui .csform input { flex: 1; min-width: 0; }
.appui .cssheet input[type=text], .appui .cssheet input[type=email], .appui .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; }
.appui .cssheet .cscode { font-size: 24px; letter-spacing: .2em; text-align: center; text-transform: uppercase; }
.appui .cssheet .csteam { margin: 8px 0 10px; padding: 12px 14px; border-radius: 14px; background: #eef6f0; } .appui .cssheet .csteam b { font-size: 17px; } .appui .cssheet .csteam p { margin: 6px 0 0; color: #3f5a48; font-size: 15px; line-height: 1.4; }
.appui .cssheet .csage { display: grid; gap: 8px; margin: 6px 0 10px; } .appui .cserr { color: #b03024; font-size: 14.5px; margin: 6px 2px; } .appui .csok { color: #1f6f4a; font-size: 14.5px; margin: 6px 2px; }
.appui .cssheet .cotabs { margin: 4px 0 8px; } .appui .cssheet .csp { margin: 0 0 6px; color: #3f5a48; }
.appui .csback { position: fixed; inset: 0; z-index: 99; background: rgba(10, 20, 15, .35); }
.appui .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); }
.appui .cssheet .cshead { font-size: 21px; font-weight: 800; margin: 0 0 8px; }
.appui .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; }
.appui .cspri:disabled { opacity: .45; } .appui .cssheet .csgo { width: 100%; margin-top: 10px; }
.appui .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; }
.appui .cslink, .appui .cslink2 { border: 0; background: none; box-shadow: none; padding: 8px 4px; min-height: 0; color: #3f5a48; font: inherit; font-size: 15px; text-decoration: underline; }
.appui .cslink2 { display: block; width: 100%; text-align: center; margin-top: 4px; text-decoration: none; font-weight: 600; }
.appui .cssheet .csopt { color: #17301f; background: #fff; } .appui .cssheet .csopt b { color: #17301f; font-size: 16px; } .appui .cssheet .csopt.on { background: #eef6f0; border-color: #1f6f4a; }
.appui .cssheet .cotabs .prchip { color: #17301f; } .appui .cssheet .cotabs .prchip.on { background: #17301f; color: #fff; }
.appui .cshare .csrow .cslink { padding: 8px 2px; }
.appui .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; }
.appui .cmdrop .cmrm { padding: 12px; border-top: 1px solid rgba(23, 48, 31, .1); } .appui .cmdrop .cmrm p { margin: 0 0 8px; font-size: 15px; color: #17301f; line-height: 1.4; }
.appui .cmdrop .cmrm .cswarn, .appui .cmdrop .cmrm .cssec { width: auto; display: inline-block; padding: 9px 16px; }
/* v215: Log practice / Practice recommendations switches (first launch, Settings, bottom of Practice) */
.appui .moderow2 { display: block; padding: 4px 14px; border-radius: 16px; margin: 12px 0; }
.appui .swrow { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 0; }
.appui .swrow + .swrow { border-top: 1px solid rgba(23, 48, 31, .1); }
.appui .swrow b { display: block; font-size: 16px; } .appui .swrow small { display: block; font-size: 13px; color: #5b6660; margin-top: 2px; }
.appui .swrow.dis b { opacity: .5; }
.appui .sw { flex: none; position: relative; width: 52px; height: 32px; min-height: 0; padding: 0; border: 0; border-radius: 999px; background: #c9d1c7; box-shadow: none; transition: background .15s; }
.appui .sw i { position: absolute; top: 3px; left: 3px; width: 26px; height: 26px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: left .15s; }
.appui .sw.on { background: #2f9a52; } .appui .sw.on i { left: 23px; } .appui .sw:disabled { opacity: .45; }
.appui .modepick .swrow { padding: 10px 2px; } .appui .modepick { margin: 4px 0 4px; }
/* v216: tap a day on This week → its recap; Recent practice one line per day, open for edit / delete */
.appui .wkchart .wkhit { fill: transparent; cursor: pointer; } .appui .wkchart .wkhit:focus { outline: none; fill: rgba(23, 48, 31, .06); }
.appui #prsheets .csback { z-index: 119; } .appui #prsheets .cssheet { z-index: 120; }
.appui .dysheet { padding-top: 22px; } .appui .dysheet .wkx { position: absolute; right: 14px; top: 14px; width: 36px; height: 36px; min-height: 36px; padding: 0; border-radius: 50%; border: 0; background: rgba(23, 48, 31, .08); color: #17301f; font-size: 16px; box-shadow: none; }
.appui .dysheet .cshead { padding-right: 44px; } .appui .dytot { margin: 0 0 8px; font-size: 15px; color: #3f5a48; } .appui .dytot b { font-size: 26px; color: #17301f; margin-right: 4px; }
.appui .dybar { display: flex; height: 10px; border-radius: 6px; overflow: hidden; background: rgba(23, 48, 31, .08); margin: 0 0 10px; } .appui .dybar i { display: block; height: 100%; }
.appui .dylist { list-style: none; margin: 0; padding: 0; } .appui .dylist li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid rgba(23, 48, 31, .1); }
.appui .dylist li span { flex: 1; display: grid; gap: 2px; } .appui .dylist b { font-size: 17px; } .appui .dylist small { font-size: 13.5px; color: #5b6660; } .appui .dylist em { font-style: normal; font-weight: 700; font-size: 17px; }
.appui .pgdot { width: 12px; height: 12px; border-radius: 50%; flex: none; }
.appui .pgdot.pg0, .appui .dybar .pg0 { background: #3f7fbf; } .appui .pgdot.pg1, .appui .dybar .pg1 { background: #d39b2a; } .appui .pgdot.pg2, .appui .dybar .pg2 { background: #3f9a63; } .appui .pgdot.pg3, .appui .dybar .pg3 { background: #7a5ab0; }
.appui .prday { border-top: 1px solid rgba(23, 48, 31, .1); }
.appui .prdayh { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 0; border: 0; background: none; box-shadow: none; min-height: 0; color: inherit; font: inherit; text-align: left; border-radius: 0; }
.appui .prdayh span { flex: 1; display: grid; min-width: 0; } .appui .prdayh b { font-size: 15px; font-weight: 600; } .appui .prdayh small { font-size: 12px; color: var(--frost-ink-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.appui .prdayh em { font-style: normal; font-weight: 600; font-size: 15px; } .appui .prchev { font-style: normal; font-size: 20px; color: var(--frost-ink-soft); transition: transform .15s; width: 14px; text-align: center; } .appui .prday.open .prchev { transform: rotate(90deg); }
.appui .prdayb { padding: 0 0 8px 6px; } .appui .pritem2 { display: flex; align-items: center; gap: 10px; padding: 7px 0; }
.appui .pritem2 > span:not(.pract) { flex: 1; display: grid; min-width: 0; } .appui .pritem2 b { font-size: 14.5px; font-weight: 600; } .appui .pritem2 small { font-size: 12px; color: var(--frost-ink-soft); } .appui .pritem2 em { font-style: normal; font-size: 14.5px; font-weight: 600; }
.appui .pract { display: flex; gap: 6px; align-items: center; } .appui .pred { border: 0; border-radius: 999px; padding: 7px 12px; min-height: 0; background: rgba(23, 48, 31, .08); color: inherit; font: inherit; font-size: 13.5px; font-weight: 600; box-shadow: none; }
.appui .pract .cswarn { padding: 7px 12px; font-size: 13.5px; } .appui .pract .cslink { font-size: 13.5px; padding: 6px 2px; }
.appui .prmore { display: block; width: 100%; border: 0; background: none; box-shadow: none; min-height: 0; padding: 10px 0 6px; color: inherit; font: inherit; font-size: 14px; font-weight: 600; text-decoration: underline; border-top: 1px solid rgba(23, 48, 31, .1); }
.appui .edrow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid rgba(23, 48, 31, .1); font-size: 16px; font-weight: 600; }
.appui .edrow input { font: inherit; font-size: 16px; padding: 6px 8px; border-radius: 10px; border: 1px solid rgba(23, 48, 31, .25); background: #fff; color: #17301f; }
.appui .edstep { display: flex; align-items: center; gap: 12px; } .appui .edstep .cssec { width: 40px; height: 40px; padding: 0; font-size: 20px; } .appui .edstep b { min-width: 36px; text-align: center; font-size: 18px; }
.appui #presheet .prq { margin: 12px 0 6px; font-size: 14px; font-weight: 600; color: #3f5a48; } .appui #presheet .prchip { color: #17301f; } .appui #presheet .prchip.on { background: #17301f; color: #fff; }
.appui .pract { flex: none; flex-wrap: nowrap; } .appui .pract button { width: auto; flex: none; margin: 0; } .appui .pract .prx { width: 34px; height: 34px; min-height: 34px; }
