.approved-capture { --capture-ink:#10231b; --capture-muted:#687d87; --capture-line:#dce5e1; --capture-soft:#f2f5f2; --capture-green:var(--club-green,#226f54); min-width:0; color:var(--capture-ink); font-family:inherit; }
.approved-capture :is(button,input) { font:inherit; }
.approved-capture :is(button,input):focus-visible { outline:2px solid var(--capture-green); outline-offset:2px; }
.approved-capture .member-section-heading { margin:.25rem 0 1.05rem; }
.approved-capture .member-section-heading h2 { margin:0; font-size:1.35rem; line-height:1.2; letter-spacing:-.04em; }
.approved-capture .member-section-heading p { margin:.3rem 0 0; color:var(--capture-muted); font-size:.84rem; line-height:1.4; }
.approved-capture .member-form-rows { border-top:1px solid var(--capture-line); }
.approved-capture .member-form-rows > :is(button,label) { display:grid; grid-template-columns:5.8rem minmax(0,1fr) 1rem; align-items:center; gap:.6rem; width:100%; min-height:3.55rem; padding:.45rem 0; border:0; border-bottom:1px solid var(--capture-line); background:transparent; color:inherit; text-align:left; }
.approved-capture .member-form-rows > :is(button,label) > span { color:var(--capture-muted); font-size:.75rem; }
.approved-capture .member-form-rows strong { overflow:hidden; font-size:.82rem; text-align:right; text-overflow:ellipsis; white-space:nowrap; }
.approved-capture .member-form-rows svg { width:.9rem; height:.9rem; }
.approved-capture .member-form-rows input { min-width:0; min-height:2.75rem; padding:.55rem .7rem; border:0; border-radius:.65rem; background:#f4f7f3; color:inherit; font-size:.9rem; text-align:right; }
.approved-capture .hole-entry-title { margin:1.3rem 0 .7rem; font-size:1rem; }
.approved-capture .hole-entry-grid,.approved-capture .link-round-hole-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; }
.approved-capture .capture-hole { display:grid; min-width:0; gap:.28rem; padding:.6rem; border:1px solid var(--capture-line); border-radius:.75rem; background:#fafbf9; }
.approved-capture .capture-hole > span { color:#60746a; font-size:.69rem; font-weight:650; }
.approved-capture .capture-hole input { width:100%; min-width:0; min-height:2.75rem; box-sizing:border-box; padding:.35rem; border:0; border-radius:.5rem; background:#fff; color:inherit; font-size:1.05rem; font-weight:700; text-align:center; }
.approved-capture .capture-hole small { color:#788982; font-size:.57rem; text-align:center; }
.approved-capture .member-primary,.approved-capture .member-secondary { width:100%; min-height:3rem; margin-top:1.1rem; padding:.65rem 1rem; border-radius:.75rem; font-weight:700; }
.approved-capture .member-primary { border:0; background:var(--capture-green); color:#fff; }
.approved-capture .member-primary:disabled { opacity:.45; }
.approved-capture .member-secondary { border:1px solid #b8c9c0; background:#fff; color:var(--capture-green); }
.approved-capture .member-disclosure,.approved-capture .link-round-save-note { margin:.7rem 0 0; color:var(--capture-muted); font-size:.7rem; line-height:1.45; }
.approved-capture .capture-empty { padding:.8rem; border-radius:.75rem; background:var(--capture-soft); color:var(--capture-muted); font-size:.8rem; line-height:1.4; }
.approved-capture .capture-field-error,.approved-capture .link-round-field-error { margin:.7rem 0 0; color:#b42318; font-size:.8rem; line-height:1.4; }
.approved-capture.link-round { display:flex; width:100%; min-height:0; flex:1; flex-direction:column; }
.approved-capture .link-round-actionbar { display:grid; grid-template-columns:4.5rem minmax(0,1fr) 4.5rem; flex:0 0 auto; align-items:center; min-height:2.75rem; border-bottom:1px solid var(--capture-line); }
.approved-capture .link-round-actionbar > strong { font-size:.875rem; text-align:center; }
.approved-capture .link-round-actionbar button { min-height:2.75rem; padding:0; border:0; background:transparent; color:inherit; text-align:left; }
.approved-capture .link-round-actionbar .link-round-review-action { color:var(--capture-green); font-weight:750; text-align:right; }
.approved-capture .link-round-scroll-region { position:relative; min-height:0; flex:1; overflow:auto; }
.approved-capture .link-round-scroll-content { padding:1rem 0 calc(var(--mobile-safe-area-height,0px) + 1.25rem); }
.approved-capture .link-round-url { display:grid; gap:.4rem; }
.approved-capture .link-round-url span,.approved-capture .link-round-fields span { color:var(--capture-muted); font-size:.875rem; }
.approved-capture .link-round-url input,.approved-capture .link-round-fields input { width:100%; min-height:3rem; box-sizing:border-box; padding:.7rem .8rem; border:1px solid var(--capture-line); border-radius:.7rem; background:#fff; color:inherit; font-size:.9rem; }
.approved-capture .link-round-read-error { margin-top:.9rem; padding:.8rem; border-radius:.75rem; background:#fff3f0; color:#7a291f; }
.approved-capture .link-round-read-error :is(strong,p,small) { display:block; margin:.25rem 0 0; line-height:1.4; }
.approved-capture .link-round-read-error strong { margin:0; font-size:.9rem; }
.approved-capture .link-round-read-error :is(p,small) { font-size:.78rem; }
.approved-capture .link-round-ready { margin-bottom:1rem; padding:.8rem; border-radius:.75rem; background:#eaf4e7; }
.approved-capture .link-round-ready strong { display:block; color:var(--capture-green); font-size:.92rem; }
.approved-capture .link-round-ready :is(p,small) { display:block; margin:.2rem 0 0; color:#526960; font-size:.78rem; line-height:1.4; }
.approved-capture .link-round-fields { display:grid; gap:.7rem; }
.approved-capture .link-round-fields label { display:grid; grid-template-columns:4.2rem minmax(0,1fr); align-items:center; gap:.6rem; }
.approved-capture.link-round h3 { margin:1rem 0 .65rem; font-size:.95rem; }
.approved-capture .link-round-primary { width:100%; min-height:3rem; margin-top:1rem; padding:.7rem 1rem; border:0; border-radius:.75rem; background:var(--capture-green); color:#fff; font-weight:750; }
.approved-capture .link-round-save-note { text-align:center; }
.approved-capture .review-card { display:grid; grid-template-columns:1.5rem minmax(0,1fr); gap:.7rem; align-items:start; padding:.9rem 0; border-bottom:1px solid var(--capture-line); }
.approved-capture .review-card > svg { width:1.2rem; height:1.2rem; color:var(--capture-green); }
.approved-capture .capture-confirmed { display:flex; gap:.8rem; margin-top:1rem; padding:1rem; border-radius:.8rem; background:#eef7e9; }
.approved-capture .capture-confirmed > svg { flex:0 0 1.3rem; width:1.3rem; height:1.3rem; color:var(--capture-green); }
.approved-capture .capture-confirmed p { margin:.3rem 0 0; color:#5d7167; font-size:.72rem; line-height:1.45; }
@container golf-content (max-width:350px) { .approved-capture .link-round-actionbar { grid-template-columns:4rem minmax(0,1fr) 4rem; } .approved-capture .hole-entry-grid,.approved-capture .link-round-hole-grid { gap:.4rem; } }
@media (prefers-reduced-motion:reduce) { .approved-capture * { transition:none!important; } }

/* Numeric/date entry must remain readable without mobile input zoom. */
.approved-capture .member-form-rows input { font-size:1rem; }
.approved-capture .member-form-rows strong { white-space:normal; overflow:visible; line-height:1.4; }
.approved-capture .capture-hole input { scroll-margin-block:1.5rem; }

.member-entry-page .approved-capture input { border:1px solid #b9c8bf; border-radius:.65rem; font-size:1rem; }
.member-entry-page .approved-capture input:focus-visible { outline:2px solid var(--capture-green); outline-offset:-2px; }

.member-entry-page :is(.manual-round,.review-rounds) > .member-section-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.3rem .65rem; }
.member-entry-page :is(.manual-round,.review-rounds) > .member-section-heading p { grid-column:1 / -1; }
.member-entry-page :is(.manual-round,.review-rounds) .capture-cancel { min-height:2.75rem; padding:.4rem .5rem; border:0; border-radius:.5rem; background:transparent; color:var(--capture-green); font:inherit; font-weight:650; }

/* Review-only numeric layout. Saved M3/FullCard and capture input grids are unchanged. */
.approved-capture.review-rounds .review-card { display:block; min-width:0; padding:1.1rem 0 1.4rem; }
.approved-capture.review-rounds .review-card h3 { margin:.3rem 0; font-size:1.125rem; line-height:1.3; letter-spacing:-.025em; overflow-wrap:anywhere; }
.approved-capture.review-rounds .review-draft-state { margin:0; color:#536159; font-size:.875rem; font-weight:600; }
.approved-capture.review-rounds .review-round-meta { display:grid; gap:.45rem; margin:1rem 0 1.25rem; font-size:.9375rem; line-height:1.4; }
.approved-capture.review-rounds .review-round-meta > div { display:grid; grid-template-columns:3.5rem minmax(0,1fr); gap:.65rem; }
.approved-capture.review-rounds .review-round-meta dt { color:#536159; }
.approved-capture.review-rounds .review-round-meta dd { margin:0; overflow-wrap:anywhere; }
.approved-capture.review-rounds .review-score-block { max-width:100%; margin-top:1.2rem; overflow-x:auto; overscroll-behavior-inline:contain; border-radius:.35rem; }
.approved-capture.review-rounds .review-score-block:focus-visible { outline:2px solid var(--capture-green); outline-offset:2px; }
.approved-capture.review-rounds .review-score-table { width:100%; min-width:18rem; border-collapse:collapse; table-layout:fixed; font-size:.875rem; font-variant-numeric:tabular-nums; line-height:1.5; }
.approved-capture.review-rounds .review-score-table caption { padding:0 0 .6rem; text-align:left; font-size:1rem; line-height:1.35; font-weight:700; color:var(--capture-ink); }
.approved-capture.review-rounds .review-score-table th,.approved-capture.review-rounds .review-score-table td { padding:.5rem .08rem; border:0; border-bottom:1px solid var(--capture-line); text-align:center; }
.approved-capture.review-rounds .review-score-table th:first-child { width:3rem; text-align:left; padding-left:.3rem; }
.approved-capture.review-rounds .review-score-table thead { background:var(--capture-green); color:#fff; }
.approved-capture.review-rounds .review-score-table thead th { font-weight:650; }
.approved-capture.review-rounds .review-score-table tbody th { font-weight:650; color:#455d50; }
.approved-capture.review-rounds .review-score-table tbody tr:first-child td { font-size:1rem; font-weight:700; }
.approved-capture.review-rounds .review-score-key { margin:.75rem 0; color:#536159; font-size:.875rem; line-height:1.4; }
.approved-capture.review-rounds .review-round-total { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; padding:.85rem .1rem; border-block:1px solid var(--capture-line); font-size:1rem; }
.approved-capture.review-rounds .review-round-total strong { font-size:1.35rem; font-variant-numeric:tabular-nums; }
.approved-capture.review-rounds .review-score-table th { font-size:inherit; letter-spacing:normal; text-transform:none; }

/* Capture actions only: aria-busy reflects the existing controller's real work.
   The moving accent stays below the label, preserving its colour and contrast. */
.approved-capture button[aria-busy="true"] {
  position:relative;
  overflow:hidden;
  isolation:isolate;
  opacity:1;
}
.approved-capture button[aria-busy="true"]::after {
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:.1875rem;
  border-radius:inherit;
  background:linear-gradient(90deg,transparent,currentColor,transparent);
  opacity:.35;
  pointer-events:none;
  transform:translateX(-100%);
  animation:capture-cta-shimmer 1.8s ease-in-out infinite;
}
@keyframes capture-cta-shimmer {
  from { transform:translateX(-100%); }
  to { transform:translateX(100%); }
}
@media (prefers-reduced-motion:reduce) {
  .approved-capture button[aria-busy="true"]::after {
    animation:none;
    transform:none;
    opacity:0;
  }
}

.capture-completion { padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
.capture-completion h2 { margin: 0 0 12px; }
.capture-completion .completion-round { display: grid; gap: 4px; }
.capture-completion .completion-round span { color: var(--muted, #666); }
.capture-completion .completion-metric, .capture-completion .completion-current { margin-block: 24px; }
.capture-completion .completion-handicap { font-size: 24px; font-weight: 700; line-height: 1.3; }
.capture-completion .completion-actions { display: grid; gap: 12px; margin-top: 24px; }
.capture-completion button { min-height: 44px; white-space: normal; }

/* Image review: brief instructions, visible issues, optional putts state. */
.approved-capture .image-review-guidance { margin:1rem 0; font-size:.875rem; line-height:1.5; }
.approved-capture .image-review-instruction { margin:0; color:var(--capture-ink,#172c22); font-weight:600; }
.approved-capture .image-review-issues { margin:.65rem 0 0; padding:.75rem .85rem .75rem 1.85rem; border-left:3px solid #a26a15; border-radius:0 .5rem .5rem 0; background:#fff9ec; color:#62450f; overflow-wrap:anywhere; }
.approved-capture .image-review-issues li + li { margin-top:.45rem; }
.approved-capture .image-review-source { margin-top:.6rem; color:var(--capture-muted,#52665c); }
.approved-capture .image-review-source summary { width:fit-content; min-height:2.75rem; display:list-item; align-content:center; cursor:pointer; text-decoration:underline; text-underline-offset:.2em; }
.approved-capture .image-review-source p { margin:.2rem 0 .5rem; overflow-wrap:anywhere; }
.approved-capture .image-review-putts { display:flex; align-items:center; justify-content:space-between; gap:1rem; width:100%; min-height:4.25rem; margin:1.1rem 0 1.35rem; padding:.85rem 0; border:0; border-top:1px solid var(--capture-line,#dbe4de); border-bottom:1px solid var(--capture-line,#dbe4de); border-radius:0; background:transparent; color:var(--capture-ink,#172c22); text-align:left; font:inherit; cursor:pointer; }
.approved-capture .image-review-putts strong { display:block; font-size:1rem; font-weight:650; }
.approved-capture .image-review-putts small { display:block; margin-top:.25rem; color:var(--capture-muted,#52665c); font-size:.8rem; line-height:1.4; }
.approved-capture .image-review-switch-state { flex:0 0 auto; min-width:3.4rem; padding:.45rem .75rem; border:1px solid #aebfb4; border-radius:2rem; background:#edf1ed; color:#3e5247; text-align:center; font-size:.875rem; font-weight:650; }
.approved-capture .image-review-putts[aria-checked="true"] .image-review-switch-state { background:var(--capture-green,#245a3b); border-color:var(--capture-green,#245a3b); color:white; }
.approved-capture .image-review-putts:focus-visible,.approved-capture .image-review-source summary:focus-visible { outline:2px solid var(--capture-green,#245a3b); outline-offset:3px; }
.approved-capture .image-review-putts:disabled { cursor:wait; opacity:.65; }


.review-correction { display:grid; gap:1rem; min-width:0; }
.review-correction label { display:grid; gap:.35rem; min-width:0; }
.review-correction input,.review-correction select { width:100%; min-width:0; min-height:2.75rem; padding:.5rem; font:inherit; box-sizing:border-box; }
.review-correction-holes { display:grid; grid-template-columns:repeat(auto-fit,minmax(8rem,1fr)); gap:.75rem; }
.review-correction fieldset { min-width:0; margin:0; padding:.6rem; }
.approved-member-native-dialog.approved-member-dialog-review.approved-golf {position:fixed;inset:0;box-sizing:border-box;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:24px;border:1px solid #dce5e1;border-radius:22px;background:#fff;box-shadow:0 20px 70px #10231b30;overflow:auto;overscroll-behavior:contain;}
.approved-member-dialog-review::backdrop {background:#10231b55;backdrop-filter:blur(3px);}
.review-dialog-heading {display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:20px;}
.review-dialog-heading h2 {margin:0;font-size:1.25rem;line-height:1.3;letter-spacing:-.025em;}
.review-dialog-heading p {margin:4px 0 0;color:#687d87;font-size:.8rem;}
.review-dialog-close {width:36px;min-height:36px;border:0;border-radius:50%;background:#f2f5f2;color:#486056;font-size:1.35rem;cursor:pointer;}
.approved-capture.review-rounds .review-card {margin:0;padding:0;border:0;background:none;}
.approved-capture.review-rounds .review-card h3 {margin:0 0 4px;font-size:1rem;}
.approved-capture.review-rounds .review-route {margin:0 0 12px;color:#687d87;font-size:.78rem;line-height:1.5;}
.approved-capture.review-rounds .review-draft-state {margin:0 0 4px;font-size:.68rem;color:#687d87;}
.approved-capture.review-rounds .review-handicap-impact {margin:12px 0;font-size:.8rem;line-height:1.4;background:none;padding:0;border:0;}
.review-putts {margin-top:10px;color:#486056;font-size:.78rem;}
.review-putts summary,.review-dialog-secondary summary {cursor:pointer;padding-block:6px;}
.review-putts p {letter-spacing:.06em;}
.review-dialog-actions {display:flex;gap:10px;margin-top:20px;}
.approved-capture .review-dialog-actions>button {flex:1;min-height:44px;border-radius:12px;padding:10px 14px;font-weight:650;}
.approved-capture .review-dialog-actions>.member-primary {color:white;background:#226f54;border:1px solid #226f54;}
.approved-capture .review-dialog-actions>.member-secondary {color:#226f54;background:white;border:1px solid #dce5e1;}
.review-dialog-secondary {display:flex;align-items:start;justify-content:space-between;gap:16px;margin-top:14px;font-size:.75rem;color:#687d87;}
.review-text-action {padding:6px 0;border:0;background:none;color:#226f54;cursor:pointer;white-space:nowrap;}
.review-dialog-secondary details {text-align:right;max-width:230px;}
.review-dialog-secondary details p {text-align:left;line-height:1.5;margin:6px 0 0;}
@media(max-width:480px){.approved-member-native-dialog.approved-member-dialog-review.approved-golf{padding:20px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px);}}
