@font-face {
  font-family: "Inter";
  src: url("fonts/inter-latin-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

@font-face {
  font-family: "Newsreader";
  src: url("fonts/newsreader-latin-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
}

:root {
  color-scheme: light;
  /* Fairway Heritage mood primitives. Components consume only semantic roles. */
  --fairway-ink: #323026;
  --fairway-ink-rgb: 50 48 38;
  --fairway-soft-ink: #4e4d3d;
  --fairway-soft-ink-rgb: 78 77 61;
  --fairway-burgundy: #403132;
  --fairway-burgundy-rgb: 64 49 50;
  --fairway-forest: #5e6750;
  --fairway-forest-rgb: 94 103 80;
  --fairway-sage: #6d7653;
  --fairway-sage-rgb: 109 118 83;
  --fairway-olive: #888e54;
  --fairway-olive-rgb: 136 142 84;
  --fairway-moss: #b7b65f;
  --fairway-moss-rgb: 183 182 95;
  --fairway-taupe: #827655;
  --fairway-taupe-rgb: 130 118 85;
  --fairway-muted-text: #6b6147;
  --fairway-antique-gold: #a7945e;
  --fairway-sun-gold: #d7b670;
  --fairway-sun-gold-rgb: 215 182 112;
  --fairway-sunlight: #fbeb8c;
  --fairway-sunlight-rgb: 251 235 140;
  --fairway-blush: #e1d3cc;
  --fairway-blush-rgb: 225 211 204;
  --fairway-canvas: #f5f1e9;
  --fairway-surface: #fffdf8;
  --fairway-surface-rgb: 255 253 248;
  --fairway-surface-muted: #eee8df;
  --fairway-surface-muted-rgb: 238 232 223;
  --fairway-positive-surface: #e2e6da;
  --fairway-positive-surface-rgb: 226 230 218;
  --fairway-danger-surface: #f1e5e1;
  --fairway-attention-surface: #fff9dc;
  --fairway-penalty-surface: #f5df9d;
  --fairway-choice-surface: #dfe7d4;
  --fairway-chart-1: #365c45;
  --fairway-chart-2: #007c78;
  --fairway-chart-3: #2463a0;
  --fairway-chart-4: #754a79;
  --fairway-chart-5: #b85c20;
  --fairway-chart-6: #a4405f;
  --fairway-chart-7: #4e5b68;
  --fairway-white: #fff;
  --fairway-white-rgb: 255 255 255;
  --fairway-shadow-rgb: 48 43 34;

  /* Semantic appearance roles: the stable component-facing contract. */
  --color-canvas: var(--fairway-canvas);
  --color-surface: var(--fairway-surface);
  --color-surface-muted: var(--fairway-surface-muted);
  --color-surface-positive: var(--fairway-positive-surface);
  --color-surface-danger: var(--fairway-danger-surface);
  --color-surface-attention: var(--fairway-attention-surface);
  --color-surface-penalty: var(--fairway-penalty-surface);
  --color-surface-choice: var(--fairway-choice-surface);
  --color-text: var(--fairway-ink);
  --color-text-subtle: var(--fairway-soft-ink);
  --color-text-muted: var(--fairway-muted-text);
  --color-text-on-strong: var(--fairway-surface);
  --color-text-on-danger: var(--fairway-surface);
  --color-action: var(--fairway-forest);
  --color-action-text: var(--fairway-forest);
  --color-action-hover: var(--fairway-soft-ink);
  --color-accent: var(--fairway-sage);
  --color-accent-secondary: var(--fairway-olive);
  --color-decoration-soft: var(--fairway-blush);
  --color-highlight: var(--fairway-sun-gold);
  --color-attention: var(--fairway-sunlight);
  --color-detail: var(--fairway-taupe);
  --color-detail-text: var(--fairway-muted-text);
  --color-danger: var(--fairway-burgundy);
  --color-danger-text: var(--fairway-burgundy);
  --color-selected: var(--fairway-burgundy);
  --color-success: var(--fairway-sage);
  --color-success-strong: var(--fairway-forest);
  --color-focus: var(--fairway-sun-gold);
  --color-focus-contrast: var(--fairway-forest);
  --color-control-border: var(--fairway-forest);
  --color-border: rgb(var(--fairway-taupe-rgb) / 28%);
  --color-border-strong: rgb(var(--fairway-forest-rgb) / 45%);
  --color-border-faint: rgb(var(--fairway-taupe-rgb) / 8%);
  --color-focus-ring: rgb(var(--fairway-sun-gold-rgb) / 52%);
  --color-placeholder: rgb(var(--fairway-soft-ink-rgb) / 55%);
  --color-canvas-glow: rgb(var(--fairway-sunlight-rgb) / 22%);
  --color-canvas-decoration: rgb(var(--fairway-blush-rgb) / 38%);
  --color-surface-panel: rgb(var(--fairway-surface-rgb) / 92%);
  --color-surface-sticky: rgb(var(--fairway-surface-rgb) / 97%);
  --color-surface-navigation: rgb(var(--fairway-surface-rgb) / 96%);
  --color-surface-toolbar: rgb(var(--fairway-surface-rgb) / 94%);
  --color-surface-soft: rgb(var(--fairway-surface-rgb) / 88%);
  --color-surface-selection-fade: rgb(var(--fairway-surface-rgb) / 85%);
  --color-surface-subtle: rgb(var(--fairway-surface-rgb) / 78%);
  --color-surface-faint: rgb(var(--fairway-surface-rgb) / 74%);
  --color-surface-quiet: rgb(var(--fairway-surface-rgb) / 72%);
  --color-control-surface: rgb(var(--fairway-white-rgb) / 86%);
  --color-card-surface: rgb(var(--fairway-white-rgb) / 82%);
  --color-check-surface: rgb(var(--fairway-white-rgb) / 58%);
  --color-control-highlight: rgb(var(--fairway-white-rgb) / 70%);
  --color-surface-muted-soft: rgb(var(--fairway-surface-muted-rgb) / 55%);
  --color-surface-muted-faint: rgb(var(--fairway-surface-muted-rgb) / 35%);
  --color-surface-backdrop: rgb(var(--fairway-surface-muted-rgb) / 62%);
  --color-accent-border: rgb(var(--fairway-sage-rgb) / 34%);
  --color-accent-grid: rgb(var(--fairway-sage-rgb) / 12%);
  --color-accent-faint: rgb(var(--fairway-forest-rgb) / 8%);
  --color-success-faint: rgb(var(--fairway-positive-surface-rgb) / 38%);
  --color-success-path: rgb(var(--fairway-positive-surface-rgb) / 72%);
  --color-danger-border: rgb(var(--fairway-burgundy-rgb) / 35%);
  --color-danger-control-border: rgb(87 47 51 / 35%);
  --color-danger-faint: rgb(var(--fairway-burgundy-rgb) / 8%);
  --color-danger-quiet: rgb(var(--fairway-burgundy-rgb) / 7%);
  --color-selection-ring: rgb(var(--fairway-burgundy-rgb) / 22%);
  --color-surface-selected: var(--fairway-danger-surface);
  --color-hover-row: rgb(var(--fairway-sunlight-rgb) / 14%);
  --color-hover-card: rgb(var(--fairway-blush-rgb) / 34%);
  --color-highlight-glow: rgb(var(--fairway-sun-gold-rgb) / 32%);
  --color-chart-positive: var(--fairway-sage);
  --color-chart-positive-strong: var(--fairway-forest);
  --color-chart-positive-highlight: var(--fairway-moss);
  --color-chart-negative: var(--fairway-burgundy);
  --color-chart-negative-text: var(--fairway-burgundy);
  --color-chart-detail: var(--fairway-antique-gold);
  --color-chart-secondary: var(--fairway-olive);
  --color-chart-neutral: var(--fairway-taupe);
  --color-chart-intensity-2: rgb(var(--fairway-moss-rgb) / 42%);
  --color-chart-intensity-2-strong: rgb(var(--fairway-moss-rgb) / 45%);
  --color-chart-intensity-3-start: rgb(var(--fairway-moss-rgb) / 55%);
  --color-chart-intensity-3: rgb(var(--fairway-olive-rgb) / 56%);
  --color-chart-intensity-4-start: rgb(var(--fairway-moss-rgb) / 72%);
  --color-chart-intensity-4: rgb(var(--fairway-forest-rgb) / 65%);
  --color-chart-intensity-4-fill: rgb(var(--fairway-forest-rgb) / 70%);
  --color-chart-intensity-4-soft: rgb(var(--fairway-forest-rgb) / 58%);
  --color-chart-1: var(--fairway-chart-1);
  --color-chart-2: var(--fairway-chart-2);
  --color-chart-3: var(--fairway-chart-3);
  --color-chart-4: var(--fairway-chart-4);
  --color-chart-5: var(--fairway-chart-5);
  --color-chart-6: var(--fairway-chart-6);
  --color-chart-7: var(--fairway-chart-7);
  --color-print-canvas: var(--fairway-white);
  --color-print-text: #222;
  --color-print-text-muted: #555;
  --color-print-rule: #555;
  --color-print-border: #aaa;
  --color-print-border-strong: #777;
  --color-print-control: #888;
  --shadow-resting: 0 1px 2px rgb(var(--fairway-ink-rgb) / 7%), 0 5px 16px rgb(var(--fairway-ink-rgb) / 4%);
  --shadow-control: 0 1px 2px rgb(var(--fairway-ink-rgb) / 6%);
  --shadow-control-hover: 0 4px 12px rgb(var(--fairway-ink-rgb) / 8%);
  --shadow-action: 0 7px 18px rgb(var(--fairway-soft-ink-rgb) / 16%);
  --shadow-raised: 0 12px 35px rgb(var(--fairway-ink-rgb) / 10%);
  --shadow-filter: 0 12px 30px rgb(var(--fairway-ink-rgb) / 13%);
  --shadow-observation-card: 0 1px 2px rgb(var(--fairway-ink-rgb) / 5%), 0 10px 28px rgb(var(--fairway-forest-rgb) / 8%);
  --shadow-overlay: 0 24px 80px rgb(var(--fairway-shadow-rgb) / 24%);
  --shadow-dialog: 0 30px 80px rgb(var(--fairway-shadow-rgb) / 22%);
  --shadow-inset: inset 0 1px 3px rgb(var(--fairway-ink-rgb) / 10%);
  --radius-sm: .65rem;
  --radius-md: .9rem;
  --radius-lg: 1.25rem;
  --font-body: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-heading: "Newsreader", Georgia, serif;
  --interface-root-size: 16px;
  --interface-body-size: 15px;
  --density-page-block-start: 2.75rem;
  --density-page-inline: 1.25rem;
  --density-page-block-end: 3.5rem;
  --density-section-padding: 1.25rem;
  --density-section-gap: 1rem;
  --density-header-gap: 1.75rem;
  font-family: var(--font-body);
  background: var(--color-canvas);
  color: var(--color-text);
}

* { box-sizing: border-box; }

html[data-text-scale="small"] { --interface-root-size: 15px; --interface-body-size: 14px; }
html[data-text-scale="standard"] { --interface-root-size: 16px; --interface-body-size: 15px; }
html[data-text-scale="large"] { --interface-root-size: 18px; --interface-body-size: 17px; }
html[data-density="comfortable"] {
  --density-page-block-start: 2.75rem;
  --density-page-inline: 1.25rem;
  --density-page-block-end: 3.5rem;
  --density-section-padding: 1.25rem;
  --density-section-gap: 1rem;
  --density-header-gap: 1.75rem;
}
html[data-density="compact"] {
  --density-page-block-start: 2rem;
  --density-page-inline: 1rem;
  --density-page-block-end: 2.5rem;
  --density-section-padding: 1rem;
  --density-section-gap: .75rem;
  --density-header-gap: 1.25rem;
}

html { min-height: 100%; background: var(--color-canvas); font-size: var(--interface-root-size); }

body {
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at 100% 0, var(--color-canvas-glow), transparent 27rem),
    radial-gradient(circle at 0 25%, var(--color-canvas-decoration), transparent 30rem),
    var(--color-canvas);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--interface-body-size);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

body::before {
  content: "";
  position: fixed;
  z-index: 100;
  inset: 0 0 auto;
  height: 6px;
  background: linear-gradient(90deg, var(--color-action) 0 32%, var(--color-accent-secondary) 32% 54%, var(--color-highlight) 54% 78%, var(--color-danger) 78% 100%);
}

main {
  width: 100%;
  max-width: 48rem;
  margin: 0 auto;
  padding: var(--density-page-block-start) var(--density-page-inline) var(--density-page-block-end);
}

.wide-main { max-width: 72rem; }
.round-summary-page { max-width: 100rem; }

main > header { margin-bottom: var(--density-header-gap); }

main > header::before {
  content: "STROKES  /  GAINED";
  display: block;
  margin-bottom: .8rem;
  color: var(--color-action-text);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .2em;
}

h1, h2, h3 {
  color: var(--color-text);
  font-family: var(--font-heading);
  text-wrap: balance;
}

h1 {
  margin: 0;
  font-size: clamp(2rem, 5vw, 2.75rem);
  line-height: 1.02;
  font-weight: 600;
  letter-spacing: -.025em;
}

h2 {
  margin: 0;
  font-size: 1.28rem;
  line-height: 1.2;
  font-weight: 600;
}

h3 { margin: 0; font-size: 1.05rem; font-weight: 600; }
p { line-height: 1.62; }
strong { font-weight: 650; }

section {
  margin-top: var(--density-section-gap);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface-panel);
  padding: var(--density-section-padding);
  box-shadow: var(--shadow-resting);
  backdrop-filter: blur(8px);
}

fieldset { margin: 0; padding: 0; border: 0; }

legend {
  width: 100%;
  margin-bottom: .75rem;
  border-bottom: 1px solid var(--color-border);
  padding-bottom: .5rem;
  color: var(--color-text-muted);
  font-family: var(--font-body);
  font-size: .69rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

label {
  display: block;
  color: var(--color-text-subtle);
  font-size: .86rem;
  font-weight: 600;
}

input, select {
  width: 100%;
  min-height: 3rem;
  margin-top: .35rem;
  border: 1px solid var(--color-control-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  padding: .72rem .9rem;
  color: var(--color-text);
  font: inherit;
  box-shadow: inset 0 1px 0 var(--color-control-highlight);
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

input::placeholder { color: var(--color-placeholder); }
input[type="checkbox"] { width: 1.2rem; height: 1.2rem; min-height: auto; margin: 0; accent-color: var(--color-action); }
.settings-checkbox { display: inline-flex; align-items: center; gap: .55rem; color: var(--color-text); font-size: .86rem; font-weight: 750; }
.settings-checkbox span { display: inline-block; }
.observation-plan-options { display: flex; flex-wrap: wrap; gap: .55rem 1.25rem; }
.observation-plan-options .settings-checkbox { gap: .45rem; padding: .15rem .2rem .15rem 0; }
.filter-auto-update-note { margin: .7rem 0 0; color: var(--color-text-muted); font-size: .69rem; }
.explorer-filter-form[aria-busy="true"] .filter-auto-update-note { color: var(--color-action-text); font-weight: 700; }
input[type="file"] { border-style: dashed; background: var(--color-surface-muted); }
input:hover, select:hover { border-color: var(--color-accent); }

input:focus-visible, select:focus-visible, button:focus-visible, a:focus-visible {
  outline: 2px solid var(--color-focus-contrast);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px var(--color-focus-ring);
}

button, .button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  padding: .68rem .95rem;
  color: var(--color-text-subtle);
  font: inherit;
  font-size: .88rem;
  font-weight: 650;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  box-shadow: var(--shadow-control);
  transition: transform .14s ease, box-shadow .14s ease, background .14s ease, border-color .14s ease;
}

button:hover, .button:hover { border-color: var(--color-accent); background: var(--color-surface-positive); box-shadow: var(--shadow-control-hover); }
button:active, .button:active { transform: translateY(1px); }
.compact-button { min-height: 2.25rem; padding: .46rem .72rem; font-size: .78rem; }

button[type="submit"], .bg-slate-900 {
  border-color: var(--color-action);
  background: var(--color-action);
  color: var(--color-text-on-strong);
  box-shadow: var(--shadow-action);
}

button[type="submit"]:hover, .bg-slate-900:hover { border-color: var(--color-action-hover); background: var(--color-action-hover); }

.text-red-700, button.text-red-700 {
  border-color: transparent;
  background: transparent;
  color: var(--color-danger-text);
  box-shadow: none;
}

.border-red-300 { border-color: var(--color-danger-border); background: var(--color-surface-danger); }
.bg-red-700 { border-color: var(--color-danger) !important; background: var(--color-danger) !important; color: var(--color-text-on-danger) !important; }

a { color: var(--color-action-text); text-decoration-color: var(--color-border-strong); text-underline-offset: .18em; }
a:hover { color: var(--color-text); text-decoration-color: var(--color-highlight); }
footer { color: var(--color-text-muted); }

.capture-workspace { max-width: 78rem; }
.capture-header, .capture-section-heading, .capture-submit-row, .capture-header-actions {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.capture-par { color: var(--color-text-muted); font-family: var(--font-body); font-size: 1rem; font-weight: 600; }
.capture-status, .eyebrow, .input-hint { margin: .35rem 0 0; color: var(--color-text-muted); font-size: .78rem; }
.eyebrow { margin: 0 0 .3rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.capture-columns { display: grid; grid-template-columns: minmax(22rem, .9fr) minmax(28rem, 1.1fr); gap: 1rem; align-items: start; }
.capture-columns > section { margin-top: 0; }
.status-pill { border-radius: 999px; background: var(--color-surface-muted); padding: .4rem .7rem; color: var(--color-text-muted); font-size: .75rem; font-weight: 700; }
.status-pill.is-ready { background: var(--color-surface-positive); color: var(--color-success-strong); }
.capture-form { margin-top: 1.25rem; }
.lie-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.lie-chip { justify-content: space-between; }
.lie-chip.is-selected { border-color: var(--color-action); background: var(--color-surface-positive); color: var(--color-action-text); box-shadow: inset 0 0 0 1px var(--color-action); }
kbd { border: 1px solid var(--color-border); border-radius: .35rem; background: var(--color-surface-muted); padding: .08rem .35rem; color: var(--color-text-subtle); font-family: var(--font-body); font-size: .7rem; }
.distance-row { display: grid; grid-template-columns: 1fr auto; gap: .6rem; align-items: end; }
.distance-row input { min-height: 4.25rem; margin: 0; font-size: 2rem; font-variant-numeric: tabular-nums; }
.unit-toggle { display: flex; overflow: hidden; border: 1px solid var(--color-border-strong); border-radius: var(--radius-md); }
.unit-toggle label { margin: 0; cursor: pointer; }
.unit-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.unit-toggle span { display: grid; min-width: 3.2rem; min-height: 4.15rem; place-items: center; background: var(--color-surface); }
.unit-toggle input:checked + span { background: var(--color-action); color: var(--color-text-on-strong); }
.stroke-control input { max-width: 7rem; }
.capture-submit-row > button { flex: 1; }
.holed-button { border-color: var(--color-chart-detail) !important; background: var(--color-highlight) !important; color: var(--color-text) !important; }
.quick-observation-strip { position: relative; display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .4rem; }
.quick-observation-control { position: relative; }
.quick-observation-control[hidden] { display: none; }
.quick-observation-token { display: inline-flex; align-items: center; gap: .35rem; min-height: 1.8rem; max-width: 13rem; border: 1px solid var(--color-border-strong); border-radius: 6px; background: var(--color-surface); padding: .25rem .45rem; color: var(--color-text); font-size: .72rem; font-weight: 800; }
.quick-observation-token span { color: var(--color-text-muted); text-transform: uppercase; }
.quick-observation-token strong { min-width: 1.6rem; max-width: 6.5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: inherit; }
.quick-observation-popover { position: absolute; z-index: 80; top: calc(100% + .35rem); left: 0; width: min(18rem, 70vw); border: 1px solid var(--color-border-strong); border-radius: 8px; background: var(--color-surface); box-shadow: var(--shadow-raised); padding: .55rem; }
.quick-popover-head { display: grid; grid-template-columns: 1fr auto; gap: .45rem; align-items: end; }
.quick-popover-head label { margin: 0; color: var(--color-text-muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.quick-popover-head input { min-height: 2.1rem; margin: .2rem 0 0; padding: .35rem .45rem; font-size: .9rem; }
.quick-observation-measurement-help { margin: .45rem 0 0; color: var(--color-text-muted); font-size: .72rem; line-height: 1.35; }
.quick-popover-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem; max-height: 13.5rem; margin-top: .45rem; overflow: auto; }
.quick-popover-choice { display: flex; align-items: center; justify-content: space-between; gap: .4rem; min-height: 2rem; border: 1px solid var(--color-border); border-radius: 6px; background: var(--color-surface-muted); padding: .3rem .45rem; color: var(--color-text); font-size: .78rem; font-weight: 750; text-align: left; }
.quick-popover-choice.is-active { border-color: var(--color-action); box-shadow: inset 0 0 0 1px var(--color-action); }
.quick-popover-choice.is-selected { background: var(--color-surface-positive); color: var(--color-action-text); }
.quick-popover-choice[hidden] { display: none; }
.quick-popover-choices.is-direction-grid { grid-template-columns: repeat(3, minmax(3.6rem, 1fr)); max-height: none; overflow: visible; }
.quick-grid-choice { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; gap: .08rem .25rem; min-height: 2.3rem; padding: .22rem .28rem; }
.quick-grid-choice kbd { grid-row: 1 / 3; align-self: center; min-width: 1.35rem; padding: .12rem .22rem; text-align: center; }
.quick-grid-choice span { font-size: .84rem; line-height: 1; }
.quick-grid-choice small { overflow: hidden; color: var(--color-text-muted); font-size: .52rem; text-overflow: ellipsis; white-space: nowrap; }
.observation-correction-page { max-width: 58rem; }
.observation-correction-card { margin-top: 1rem; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-surface); box-shadow: var(--shadow-resting); padding: 1rem; }
.observation-correction-heading { display: flex; flex-wrap: wrap; gap: .35rem; align-items: baseline; }
.observation-correction-heading h2 { margin: 0; font-family: var(--font-heading); font-size: 1.2rem; }
.observation-correction-heading span { color: var(--color-text-muted); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.observation-correction-archived { margin: .6rem 0 0; color: var(--color-text-muted); }
.observation-correction-choices { position: static; width: auto; margin-top: .7rem; box-shadow: none; }
.observation-correction-choices .quick-popover-head > span { color: var(--color-text-muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.observation-correction-submit { margin-top: .7rem; }
.active-hole-condition-tags { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .25rem .35rem; align-items: center; margin-bottom: .25rem; }
.active-hole-condition-field { display: flex; flex-wrap: wrap; gap: .22rem; align-items: center; }
.active-hole-condition-field > span { color: var(--color-text-muted); font-size: .55rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.hole-condition-tag { min-height: 1.45rem; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); padding: .15rem .4rem; color: var(--color-text-subtle); font-size: .58rem; font-weight: 750; }
.hole-condition-tag.is-selected { border-color: var(--color-highlight); background: var(--color-surface-attention); color: var(--color-action-text); box-shadow: inset 0 0 0 1px var(--color-highlight); }
.hole-condition-tag.clear { color: var(--color-text-muted); }
.active-hole-condition-status { margin: 0; color: var(--color-danger-text); font-size: .62rem; font-weight: 700; }
.shot-list { margin: 1rem 0 0; padding: 0; list-style: none; }
.shot-row { display: grid; grid-template-columns: 2rem 1fr auto; gap: .7rem; align-items: center; margin: 0; border-top: 1px solid var(--color-border); padding: .8rem 0; }
.shot-number { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: 50%; background: var(--color-surface-muted); font-weight: 700; }
.shot-facts { display: grid; gap: .08rem; min-width: 0; }
.shot-facts strong, .sg-value { font-variant-numeric: tabular-nums; }
.shot-facts span, .sg-value { color: var(--color-text-muted); font-size: .76rem; }
.sg-calculated { color: var(--color-action-text); font-weight: 700; }
.sg-pending { font-style: italic; }
.shot-actions { display: flex; align-items: center; gap: .45rem; font-size: .75rem; }
.shot-actions form { margin: 0; }
.empty-ledger { margin-top: 1rem; border: 1px dashed var(--color-border-strong); border-radius: var(--radius-md); padding: 2rem; text-align: center; }
.empty-ledger p { margin: 0; font-family: var(--font-heading); font-size: 1.2rem; }
.empty-ledger span { color: var(--color-text-muted); font-size: .8rem; }
.capture-footer-actions { display: flex; justify-content: space-between; color: var(--color-text-muted); font-size: .78rem; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0; }
.hole-context-settings { display: grid; grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr)); gap: .45rem .7rem; margin-top: .65rem; }
.field-error { margin: .4rem 0 0; color: var(--color-danger-text); font-size: .78rem; font-weight: 650; }
.success-banner { border: 1px solid var(--color-border-strong); border-radius: var(--radius-md); background: var(--color-surface-positive); padding: .8rem 1rem; color: var(--color-action-text); }

@media (max-width: 860px) {
  .capture-columns { grid-template-columns: 1fr; }
  .capture-header { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 540px) {
  .lie-grid { grid-template-columns: repeat(2, 1fr); }
  .capture-submit-row, .capture-footer-actions { align-items: stretch; flex-direction: column; }
  .shot-row { grid-template-columns: 2rem 1fr; }
  .shot-actions { grid-column: 2; }
  .settings-grid { grid-template-columns: 1fr; }
  .hole-context-settings { grid-template-columns: 1fr; }
}

.round-grid-page { max-width: none; padding: 2.2rem 1rem 2rem; }
.round-grid-header, .grid-command-bar, .next-hole-strip { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.round-grid-header { margin-bottom: .75rem; }
.round-grid-header h1 { font-size: clamp(1.8rem, 3vw, 2.5rem); }
.round-course-setup { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, 32rem); align-items: end; max-width: 78rem; gap: 1rem; margin: 0 0 .75rem; border: 1px solid var(--color-accent); border-radius: var(--radius-lg); background: linear-gradient(135deg, var(--color-surface), var(--color-surface-positive)); padding: .8rem 1rem; box-shadow: var(--shadow-resting); }
.round-course-setup h2 { font-size: 1.25rem; }
.round-course-setup p:last-child { margin-top: .15rem; color: var(--color-text-muted); font-size: .75rem; }
.round-course-setup label { color: var(--color-text-subtle); font-size: .72rem; font-weight: 700; }
.round-course-setup select { margin-top: .25rem; }
.selected-course-summary { max-width: 78rem; margin: 0 0 .75rem; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface-sticky); padding: .85rem 1rem; box-shadow: var(--shadow-resting); }
.round-setup-panel { max-width: 78rem; }
.course-summary-main, .course-hole-panel-header, .course-summary-actions, .inline-editor-fields { display: flex; align-items: start; justify-content: space-between; gap: .75rem; }
.course-summary-main { flex-wrap: wrap; }
.course-summary-metrics { display: flex; flex-wrap: wrap; gap: .45rem; align-content: flex-start; }
.summary-chip { display: inline-flex; align-items: center; border-radius: 999px; background: var(--color-surface-muted); padding: .35rem .65rem; font-size: .72rem; font-weight: 650; }
.round-condition-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .65rem; }
.round-condition-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; max-width: 76rem; }
.round-details-grid { display: grid; grid-template-columns: repeat(4, minmax(10rem, 14rem)); gap: .55rem; max-width: 58rem; }
.round-details-grid label { display: grid; gap: .25rem; color: var(--color-text-subtle); font-size: .7rem; font-weight: 700; }
.round-details-grid input { min-width: 0; min-height: 2.2rem; margin: 0; padding: .35rem .5rem; }
.round-condition-grid label { display: grid; gap: .25rem; color: var(--color-text-subtle); font-size: .7rem; font-weight: 700; }
.round-condition-grid input { min-width: 0; min-height: 2.35rem; margin: 0; padding: .4rem .55rem; }
.condition-tags { display: flex; flex-wrap: wrap; gap: .28rem; }
.condition-tag { min-height: 1.9rem; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); padding: .2rem .48rem; color: var(--color-text-subtle); font: inherit; font-size: .65rem; font-weight: 700; cursor: pointer; }
.condition-tag.is-selected { border-color: var(--color-action); background: var(--color-surface-positive); color: var(--color-action-text); }
.hole-condition-panel { padding-top: .7rem; padding-bottom: .7rem; }
.hole-condition-grid-row > td { padding: .4rem !important; background: var(--color-surface) !important; }
.hole-condition-grid-row .hole-condition-panel { margin: 0; box-shadow: none; }
.hole-condition-summary { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .4rem; margin-top: .6rem; }
.hole-condition-summary.compact { display: flex; flex-wrap: wrap; gap: .35rem; }
.hole-condition-chip { display: grid; min-width: 0; border: 1px solid var(--color-border); border-radius: .65rem; background: var(--color-surface-muted); padding: .42rem .5rem; }
.hole-condition-summary.compact .hole-condition-chip { min-width: 7.5rem; }
.hole-condition-chip span, .hole-condition-chip small { color: var(--color-text-muted); font-size: .58rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.hole-condition-chip strong { overflow: hidden; margin: .12rem 0; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.hole-condition-chip.overridden { border-color: var(--color-highlight); background: var(--color-surface-attention); }
.hole-condition-chip.not-set { opacity: .72; }
.hole-condition-editor-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
.hole-condition-editor-grid.compact { grid-template-columns: 1fr; gap: .45rem; }
.hole-condition-field { min-width: 0; margin: 0; border: 1px solid var(--color-border); border-radius: .65rem; padding: .55rem; }
.hole-condition-field.compact { padding: .45rem .5rem; }
.hole-condition-field legend { padding: 0 .2rem; font-size: .68rem; font-weight: 750; }
.hole-condition-field p { margin: 0 0 .35rem; color: var(--color-text-muted); font-size: .65rem; }
.hole-condition-field label { display: flex; align-items: center; gap: .3rem; margin-top: .25rem; font-size: .68rem; }
.hole-condition-field input[type="radio"] { width: auto; min-height: auto; margin: 0; }
.hole-condition-field > input[type="text"] { min-height: 2.15rem; margin: .4rem 0 0; padding: .35rem .45rem; }
.hole-condition-choice-strip { display: flex; flex-wrap: wrap; gap: .3rem; }
.hole-condition-pill { display: inline-flex !important; align-items: center; margin: 0 !important; cursor: pointer; }
.hole-condition-pill input { position: absolute; opacity: 0; pointer-events: none; }
.hole-condition-pill span { border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); padding: .32rem .55rem; color: var(--color-text-subtle); font-size: .66rem; font-weight: 750; }
.hole-condition-pill input:checked + span, .hole-condition-pill:has(input:checked) span { border-color: var(--color-action); background: var(--color-surface-positive); color: var(--color-action-text); }
.hole-condition-pill.clear span { color: var(--color-text-muted); }
.condition-custom-input.compact input { min-height: 2rem; margin: .4rem 0 0; padding: .35rem .5rem; }
.hole-condition-reset-all { margin-top: .45rem; }
.hole-condition-link { display: block; margin-top: .12rem; font-size: .56rem; font-weight: 700; }
.hole-history-conditions { display: grid; gap: .18rem; min-width: 12rem; font-size: .65rem; }
.hole-history-conditions small { color: var(--color-text-muted); }
.hole-history-condition-chips { display: flex; flex-wrap: wrap; gap: .25rem; min-width: 18rem; }
.hole-history-condition-chips span { border-radius: 999px; background: var(--color-surface-muted); padding: .18rem .35rem; color: var(--color-text-subtle); font-size: .58rem; line-height: 1.2; white-space: nowrap; }
.course-hole-panel { margin-top: .85rem; border-top: 1px solid var(--color-border); padding-top: .75rem; }
.course-hole-panel-header strong { display: block; font-family: var(--font-heading); font-size: 1.1rem; }
.course-hole-details { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; margin: .7rem 0 0; }
.course-hole-details > div { border-radius: .7rem; background: var(--color-surface-muted); padding: .55rem .65rem; }
.course-hole-details dt { color: var(--color-text-muted); font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.course-hole-details dd { margin: .18rem 0 0; font-size: .96rem; font-weight: 650; }
.override-note, .form-hint { margin: .2rem 0 0; color: var(--color-text-muted); font-size: .72rem; }
.inline-editor { margin-top: .75rem; border-radius: .8rem; background: var(--color-surface-positive); padding: .7rem .8rem; }
.inline-editor[hidden] { display: none !important; }
.inline-editor.is-open { display: block; }
.inline-editor-fields { flex-wrap: wrap; }
.inline-editor-fields label { display: grid; gap: .25rem; min-width: min(13rem, 100%); color: var(--color-text-subtle); font-size: .72rem; font-weight: 700; }
.inline-editor-fields input { min-height: 2.4rem; margin: 0; }
.grid-command-bar, .next-hole-strip { position: sticky; z-index: 20; top: 6px; margin: 0 0 .7rem; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface-sticky); padding: .7rem .85rem; box-shadow: var(--shadow-raised); }
.keyboard-capture-hint { margin: -.2rem 0 .7rem; color: var(--color-text-muted); font-size: .78rem; font-weight: 750; }
.keyboard-capture-hint kbd { margin: 0 .1rem; }
.grid-lie-keys { display: flex; flex-wrap: wrap; gap: .35rem; }
.active-hole-card-facts { display: flex; gap: .45rem; margin-left: auto; color: var(--color-text-muted); font-size: .66rem; white-space: nowrap; }
.active-hole-card-facts span { border-radius: 999px; background: var(--color-surface-muted); padding: .28rem .5rem; }
.active-hole-card-facts strong { color: var(--color-text); }
.grid-lie-keys .lie-chip { min-height: 2.25rem; padding: .4rem .6rem; }
.grid-strokes { display: flex; align-items: center; gap: .35rem; white-space: nowrap; }
.grid-strokes input { width: 3.8rem; min-height: 2.25rem; margin: 0; padding: .35rem; }
.next-hole-strip form { display: flex; align-items: end; gap: .55rem; }
.next-hole-strip input { width: 6rem; min-height: 2.45rem; margin: .1rem 0 0; padding: .4rem .55rem; }
.grid-errors { margin-bottom: .65rem; border-radius: var(--radius-md); background: var(--color-surface-danger); padding: .55rem .8rem; color: var(--color-danger-text); }
.grid-errors p { margin: 0; }
.round-grid-shell { margin: 0; padding: 0; overflow: hidden; }
.round-workspace-layout { display: grid; grid-template-columns: minmax(0, 1fr) 17rem; gap: .75rem; align-items: start; }
.round-grid-scroll { max-height: calc(100vh - 17rem); overflow: auto; overscroll-behavior: contain; }
.round-grid { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; font-size: .76rem; }
.round-grid th, .round-grid td { min-width: 5rem; height: 2.2rem; border-right: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); background: var(--color-surface); padding: .2rem .32rem; vertical-align: middle; }
.round-grid thead th { position: sticky; z-index: 8; top: 0; height: 2rem; background: var(--color-action); color: var(--color-text-on-strong); font-family: var(--font-body); font-size: .67rem; letter-spacing: .06em; text-transform: uppercase; }
.round-grid .sticky-hole { position: sticky; z-index: 7; left: 0; min-width: 2.8rem; width: 2.8rem; text-align: center; }
.round-grid .sticky-par { position: sticky; z-index: 7; left: 2.8rem; min-width: 2.8rem; width: 2.8rem; text-align: center; }
.round-grid thead .sticky-hole, .round-grid thead .sticky-par { z-index: 10; background: var(--color-action); }
.completed-hole-row .sticky-hole, .completed-hole-row .sticky-par { background: var(--color-surface-positive); }
.active-hole-row td, .active-hole-row th { background: var(--color-surface-attention); }
.active-hole-row .sticky-hole, .active-hole-row .sticky-par { background: var(--color-attention); }
.active-hole-context-row th, .active-hole-context-row td { height: auto; background: var(--color-surface-attention); }
.active-hole-context-row .sticky-hole, .active-hole-context-row .sticky-par { background: var(--color-attention); }
.active-hole-context-row > td:last-child { padding: .28rem .4rem; }
.future-hole-row td, .future-hole-row th { background: var(--color-surface-muted-soft); color: var(--color-text-muted); }
.shot-grid-cell { height: auto !important; padding: 0 !important; }
.shot-grid-cell a { display: grid; height: auto; align-content: center; padding: .3rem .42rem; color: var(--color-text); text-decoration: none; }
.shot-cell-link.has-meta { grid-template-columns: minmax(4.2rem, 1fr) minmax(3.4rem, .75fr); align-items: stretch; padding: 0; }
.shot-cell-main { display: grid; align-content: center; min-width: 0; padding: .3rem .42rem; }
.shot-cell-meta { display: grid; align-content: center; gap: .08rem; min-width: 0; border-left: 1px solid var(--color-border-strong); padding: .2rem .32rem; background: var(--color-surface-muted-faint); }
.shot-cell-meta span { display: grid; min-width: 0; }
.shot-cell-meta strong, .shot-cell-meta small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.shot-cell-meta strong { color: var(--color-text-subtle); font-size: .66rem; }
.shot-cell-meta small { text-transform: uppercase; }
.shot-grid-cell strong { font-size: .75rem; }
.shot-grid-cell small { color: var(--color-text-muted); font-size: .64rem; font-variant-numeric: tabular-nums; }
.shot-grid-cell .shot-cell-meta strong { font-size: .66rem; }
.add-penalty-button { display: inline-flex !important; width: auto !important; min-height: 1.35rem !important; margin: .15rem .35rem .28rem; padding: .12rem .38rem !important; font-size: .59rem !important; }
.penalty-grid-cell { min-width: 9rem !important; background: var(--color-surface-penalty) !important; color: var(--color-text-subtle); padding: .45rem !important; }
.penalty-grid-cell strong, .penalty-grid-cell span, .penalty-grid-cell small { display: block; }
.penalty-grid-cell span { font-size: .68rem; font-weight: 700; margin-top: .15rem; }
.penalty-grid-cell small { color: var(--color-text-muted); margin: .18rem 0 .35rem; }
.penalty-dialog { width: min(32rem, calc(100vw - 2rem)); max-height: calc(100dvh - 1rem); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--color-highlight); border-radius: var(--radius-lg); background: var(--color-surface); color: var(--color-text); box-shadow: var(--shadow-overlay); }
.penalty-dialog::backdrop { background: var(--color-surface-backdrop); }
.penalty-dialog form { display: grid; gap: .65rem; }
.penalty-dialog label { display: grid; gap: .25rem; }
.penalty-type-tags { border: 0; margin: 0; padding: 0; }
.penalty-type-tags legend { margin-bottom: .35rem; font-weight: 700; }
.penalty-type-tags > div { display: flex; flex-wrap: wrap; gap: .4rem; }
.penalty-type-tags label { display: inline-flex; }
.penalty-type-tags input { position: absolute; width: 1px; height: 1px; min-height: 0; margin: 0; opacity: 0; clip-path: inset(50%); }
.penalty-type-tags span { border: 1px solid var(--color-border); border-radius: 999px; padding: .35rem .55rem; font-size: .72rem; cursor: pointer; }
.penalty-type-tags input:checked + span { background: var(--color-highlight); border-color: var(--color-highlight); color: var(--color-text-subtle); }
.penalty-dialog .dialog-actions { position: sticky; bottom: -.65rem; z-index: 1; margin-inline: -.25rem; background: var(--color-surface); padding: .45rem .25rem .65rem; }
.active-shot-cell { min-width: 10rem !important; padding: .2rem !important; box-shadow: inset 0 0 0 2px var(--color-highlight); }
.active-shot-cell form { display: grid; grid-template-columns: 1fr auto; gap: .25rem; margin: 0; }
.active-cell-input { display: flex; align-items: center; gap: .3rem; grid-column: 1 / -1; }
.active-cell-input span { min-width: 3.2rem; color: var(--color-action-text); font-size: .68rem; font-weight: 700; }
.active-cell-input input { min-width: 5rem; min-height: 2rem; margin: 0; padding: .25rem .4rem; }
.cell-unit-toggle { display: flex; }
.cell-unit-toggle label { margin: 0; }
.cell-unit-toggle input { position: absolute; opacity: 0; }
.cell-unit-toggle span { display: grid; min-width: 2rem; min-height: 1.75rem; place-items: center; border: 1px solid var(--color-border); background: var(--color-surface); }
.cell-unit-toggle input:checked + span { background: var(--color-action); color: var(--color-text-on-strong); }
.active-shot-cell button { min-height: 1.8rem; padding: .25rem .35rem; font-size: .65rem; }
.empty-shot-cell { background-image: linear-gradient(135deg, transparent 49%, var(--color-border-faint) 50%, transparent 51%); }
.total-cell { min-width: 4rem !important; text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.sticky-hole input, .sticky-par input { width: 2.35rem; min-height: 1.65rem; margin: 0; padding: .15rem; border-radius: .35rem; text-align: center; }
.hole-card-meta { display: block; margin-top: .1rem; color: var(--color-text-muted); font-size: .55rem; font-weight: 700; line-height: 1.15; white-space: nowrap; }
.stableford-cell { min-width: 2.8rem !important; text-align: center; }
.locked-hole-value { display: inline-block; width: 100%; text-align: center; font-weight: 650; }
.next-hole-cell { padding: .15rem !important; box-shadow: inset 0 0 0 2px var(--color-highlight); }
.next-hole-cell button { min-height: 1.7rem; padding: .2rem .35rem; font-size: .65rem; }
.round-pulse { position: sticky; top: 6px; margin: 0; padding: .9rem; }
.round-pulse h2 { font-size: 1.55rem; }
.scorecard-pulse table { width: 100%; border-collapse: collapse; font-size: .68rem; font-variant-numeric: tabular-nums; }
.scorecard-pulse th, .scorecard-pulse td { border-bottom: 1px solid var(--color-border); padding: .25rem .1rem; text-align: right; }
.scorecard-pulse th:first-child { text-align: left; }
.scorecard-pulse thead { color: var(--color-text-muted); font-size: .58rem; text-transform: uppercase; }
@media (min-width: 901px) {
  .round-grid-page.is-active-capture { display: flex; height: 100vh; box-sizing: border-box; flex-direction: column; overflow: hidden; }
  .is-active-capture > :not(.round-workspace-layout) { flex: 0 0 auto; }
  .is-active-capture .selected-course-summary, .is-active-capture .round-course-setup { margin-bottom: .35rem; padding: .45rem .7rem; }
  .is-active-capture .course-context-panel, .is-active-capture .round-details-panel, .is-active-capture .round-conditions-panel { min-height: 0; }
  .is-active-capture .hole-details-panel { display: none; }
  .is-active-capture .selected-course-summary h2 { font-size: 1rem; }
  .is-active-capture .selected-course-summary .capture-status, .is-active-capture .course-hole-panel > .course-hole-panel-header .capture-status { font-size: .64rem; }
  .is-active-capture .round-conditions-panel .course-summary-main { align-items: center; }
  .is-active-capture .round-conditions-panel .capture-status { display: none; }
  .is-active-capture .round-condition-chips { margin-top: .25rem; }
  .is-active-capture .summary-chip { padding: .22rem .45rem; font-size: .62rem; }
  .is-active-capture .course-hole-details { margin-top: .35rem; }
  .is-active-capture .course-hole-details > div { padding: .32rem .45rem; }
  .is-active-capture .course-hole-details dd { font-size: .8rem; }
  .is-active-capture .round-workspace-layout { min-height: 0; flex: 1 1 auto; overflow: hidden; }
  .is-active-capture .round-grid-shell, .is-active-capture .round-grid-scroll { min-height: 0; height: 100%; max-height: none; }
  .is-active-capture .round-pulse { max-height: 100%; overflow: auto; }
}
.pulse-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; margin-top: .7rem; }
.pulse-metrics > div { border-radius: .55rem; background: var(--color-surface-muted); padding: .5rem; }
.pulse-metrics span { display: block; color: var(--color-text-muted); font-size: .61rem; text-transform: uppercase; }
.pulse-metrics strong { display: block; margin-top: .05rem; font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.pulse-block { margin-top: .75rem; border-top: 1px solid var(--color-border); padding-top: .65rem; }
.pulse-block h3 { font-family: var(--font-body); font-size: .69rem; letter-spacing: .08em; text-transform: uppercase; }
.pulse-category { display: flex; justify-content: space-between; margin-top: .28rem; font-size: .72rem; }
.pulse-category strong { font-variant-numeric: tabular-nums; }
.best-shot, .pulse-empty { margin: .35rem 0 0; color: var(--color-text-muted); font-size: .72rem; }
.best-shot strong { display: block; color: var(--color-action-text); font-size: 1rem; }
.momentum-strip { display: grid; grid-template-columns: repeat(9, 1fr); gap: .18rem; margin-top: .4rem; }
.momentum-strip span { display: grid; height: 1.25rem; place-items: center; border: 2px solid var(--color-border-strong); border-radius: .22rem; color: var(--color-text); font-size: .56rem; }
.momentum-strip .positive { border-color: var(--color-chart-positive); background: var(--color-surface-positive); color: var(--color-success-strong); }.momentum-strip .negative { border-color: var(--color-chart-negative); background: var(--color-surface-danger); color: var(--color-chart-negative-text); }.momentum-strip .neutral { border-color: var(--color-chart-neutral); background: var(--color-surface-muted); color: var(--color-text-muted); }.momentum-strip .future { background: var(--color-surface); color: var(--color-text-muted); }
.pulse-finish { width: 100%; margin-top: .8rem; }

.home-page { max-width: 62rem; padding-top: 5rem; }
.home-hero { max-width: 42rem; }
.home-hero p:last-child { color: var(--color-text-muted); font-size: 1.05rem; }
.home-menu { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: 2rem; }
.build-identity { display: flex; flex-wrap: wrap; gap: .35rem 1rem; margin-top: 1.25rem; font-size: .72rem; }
.build-identity span { white-space: nowrap; }
.home-action { display: grid; min-height: 8.5rem; align-content: center; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); padding: 1.15rem; color: var(--color-text); text-decoration: none; box-shadow: var(--shadow-resting); }
.home-action:hover { transform: translateY(-2px); border-color: var(--color-accent); box-shadow: var(--shadow-raised); }
.home-action-primary { grid-row: span 2; background: linear-gradient(145deg, var(--color-action), var(--color-action-hover)); color: var(--color-text-on-strong); }
.home-action-kicker { font-size: .65rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; opacity: .72; }
.home-action strong { margin-top: .25rem; font-family: var(--font-heading); font-size: 1.45rem; }
.home-action > span:last-child { margin-top: .25rem; font-size: .76rem; opacity: .78; }

@media (max-width: 900px) {
  .round-course-setup { grid-template-columns: 1fr; }
  .course-hole-panel-header, .course-summary-actions, .inline-editor-fields { flex-direction: column; align-items: stretch; }
  .course-hole-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-command-bar, .next-hole-strip { position: static; align-items: flex-start; flex-direction: column; }
  .round-grid-scroll { max-height: calc(100vh - 22rem); }
  .round-workspace-layout { grid-template-columns: 1fr; }
  .round-pulse { position: static; }
  .round-condition-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .round-details-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hole-condition-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hole-condition-editor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) { .home-menu { grid-template-columns: 1fr; }.home-action-primary { grid-row: auto; }.round-condition-grid, .round-details-grid, .hole-condition-editor-grid { grid-template-columns: 1fr; }.hole-condition-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.global-menu-nav { position: fixed; z-index: 90; top: 1.05rem; right: 1.15rem; display: flex; gap: .4rem; }
.global-menu-link { display: inline-flex; min-height: 2.35rem; align-items: center; gap: .35rem; border: 1px solid var(--color-border-strong); border-radius: 999px; background: var(--color-surface-navigation); padding: .45rem .8rem; color: var(--color-text-subtle); font-size: .78rem; font-weight: 700; text-decoration: none; box-shadow: var(--shadow-resting); backdrop-filter: blur(8px); }
.global-menu-link:hover { border-color: var(--color-accent); background: var(--color-surface-positive); }
.global-back-link { cursor: pointer; font-family: var(--font-body); }
.global-menu-nav + main { padding-top: 4.25rem; }

/* UX1.2 mood catalogue and current-session Appearance workspace. */
.appearance-page { max-width: 78rem; }
.appearance-alert { border: 2px solid var(--color-danger); border-radius: var(--radius-md); background: var(--color-surface-danger); padding: .8rem 1rem; color: var(--color-text); }
.appearance-global-fallback { position: fixed; z-index: 95; top: 1rem; left: 1rem; max-width: min(28rem, calc(100vw - 12rem)); margin: 0; border: 2px solid var(--color-danger); border-radius: var(--radius-md); background: var(--color-surface-danger); padding: .55rem .75rem; color: var(--color-text); font-size: .76rem; box-shadow: var(--shadow-raised); }
.appearance-status { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; border-color: var(--color-border-strong); background: var(--color-surface-panel); }
.appearance-status h2, .appearance-status p { margin: 0; }
.appearance-status h2 { margin-top: .2rem; }
.appearance-status > div:first-child > p:last-child { margin-top: .2rem; color: var(--color-text-muted); }
.appearance-state-summary { display: grid; flex: 0 0 auto; gap: .35rem; border-left: 3px solid var(--color-action); padding-left: 1rem; color: var(--color-text-subtle); font-size: .78rem; }
.appearance-preview-label { font-weight: 700; }
.appearance-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.appearance-section-heading h2, .appearance-section-heading p { margin: 0; }
.appearance-section-heading > p { max-width: 28rem; color: var(--color-text-muted); font-size: .76rem; text-align: right; }
.mood-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15.5rem, 1fr)); gap: 1rem; margin-top: 1rem; }
.mood-card { position: relative; overflow: hidden; border: 2px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); box-shadow: var(--shadow-resting); }
.mood-card.is-applied { border-color: var(--color-action); box-shadow: 0 0 0 2px var(--color-accent-border), var(--shadow-raised); }
.mood-card.is-preview { border-style: dashed; border-color: var(--color-selected); }
.mood-card.is-applied.is-preview { border-style: double; }
.mood-artwork { position: relative; min-height: 10rem; overflow: hidden; background: linear-gradient(135deg, var(--color-surface-muted), var(--color-decoration-soft)); }
.mood-artwork img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.mood-artwork-fallback { display: grid; min-height: 10rem; place-items: center; padding: 1rem; color: var(--color-text-subtle); font-weight: 750; text-align: center; }
.mood-artwork-fallback[hidden] { display: none; }
.mood-state-markers { position: absolute; inset: .65rem .65rem auto; display: flex; flex-wrap: wrap; gap: .35rem; }
.mood-state-marker { display: inline-flex; align-items: center; border: 2px solid var(--color-action); border-radius: 999px; background: var(--color-surface); padding: .25rem .55rem; color: var(--color-text); font-size: .68rem; font-weight: 800; box-shadow: var(--shadow-control); }
.mood-state-marker.preview { border-style: dashed; border-color: var(--color-selected); }
.mood-card-content { display: grid; grid-template-rows: auto minmax(3.2rem, 1fr) auto; padding: 1rem; }
.mood-card-content h3 { margin: 0; }
.mood-card-content p { margin: .35rem 0 .9rem; color: var(--color-text-muted); font-size: .8rem; }
.mood-preview-action { width: 100%; }
.appearance-actions { position: sticky; z-index: 20; bottom: .75rem; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; border-color: var(--color-border-strong); background: var(--color-surface-sticky); box-shadow: var(--shadow-overlay); backdrop-filter: blur(12px); }
.appearance-actions form { margin: 0; }
.appearance-actions p { flex: 1 1 20rem; margin: 0 0 0 auto; color: var(--color-text-muted); font-size: .72rem; text-align: right; }
.appearance-preference-form { margin: 0; }
.appearance-control-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; margin-top: 1rem; }
.appearance-choice-group { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); padding: .8rem; }
.appearance-choice-group legend { width: auto; margin: 0; border: 0; padding: 0 .3rem; color: var(--color-action-text); font-size: .74rem; }
.appearance-choice { display: grid; grid-template-columns: auto 1fr; gap: .55rem; align-items: start; min-height: 44px; margin-top: .5rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface-muted-faint); padding: .55rem; cursor: pointer; }
.appearance-choice:has(input:checked) { border-style: double; border-color: var(--color-selected); background: var(--color-surface-selected); box-shadow: inset 0 0 0 1px var(--color-selection-ring); }
.appearance-choice input { width: 1.2rem; height: 1.2rem; min-height: 0; margin: .1rem 0 0; accent-color: var(--color-action); }
.appearance-choice span, .appearance-choice strong, .appearance-choice small { display: block; }
.appearance-choice strong { color: var(--color-text); font-size: .82rem; }
.appearance-choice small { margin-top: .15rem; color: var(--color-text-muted); font-size: .68rem; font-weight: 450; line-height: 1.4; }
.appearance-restore { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.appearance-restore form, .appearance-restore p { margin: 0; }
.appearance-restore p { color: var(--color-text-muted); font-size: .72rem; text-align: right; }
.gallery-mood-nav { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 .8rem; }
.gallery-mood-nav a[aria-current="page"] { border-style: double; border-color: var(--color-selected); background: var(--color-surface-selected); font-weight: 800; }
.gallery-mood-status { border-left: 3px solid var(--color-action); padding-left: .75rem; color: var(--color-text-subtle); }

@media (max-width: 720px) {
  .appearance-status, .appearance-section-heading { align-items: stretch; flex-direction: column; }
  .appearance-state-summary { border-top: 3px solid var(--color-action); border-left: 0; padding-top: .7rem; padding-left: 0; }
  .appearance-section-heading > p { text-align: left; }
  .appearance-actions { position: static; align-items: stretch; flex-direction: column; }
  .appearance-actions form, .appearance-actions .button, .appearance-actions button { width: 100%; }
  .appearance-actions p { margin-left: 0; text-align: left; }
  .appearance-control-grid { grid-template-columns: 1fr; }
  .appearance-restore { align-items: stretch; flex-direction: column; }
  .appearance-restore p { text-align: left; }
}

html[data-density="compact"] .mood-grid,
html[data-density="compact"] .appearance-control-grid,
html[data-density="compact"] .settings-grid,
html[data-density="compact"] .analytics-preview-summary { gap: .55rem; }
html[data-density="compact"] .mood-card-content,
html[data-density="compact"] .home-action { padding: .8rem; }
html[data-density="compact"] .data-table th,
html[data-density="compact"] .data-table td { padding-block: .45rem; }

.capture-submit-row button,
.capture-submit-row .button,
.lie-grid .lie-chip,
.round-grid-page .grid-lie-keys .lie-chip,
.round-grid-page .grid-strokes input,
.round-grid-page .active-cell-input input,
.round-grid-page .active-shot-cell button,
.round-grid-page .next-hole-cell button,
.round-grid-page .grid-command-bar button { min-width: 44px; min-height: 44px !important; }

.analytics-preview-page { max-width: 72rem; }
.analytics-intro { max-width: 46rem; color: var(--color-text-muted); }
.preset-tabs { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1rem 0; }
.preset-tabs a { border: 1px solid var(--color-border-strong); border-radius: 999px; background: var(--color-surface); padding: .5rem .8rem; font-size: .78rem; font-weight: 650; text-decoration: none; }
.preset-tabs a.is-selected { border-color: var(--color-action); background: var(--color-action); color: var(--color-text-on-strong); }
.analytics-preview-summary { display: grid; grid-template-columns: repeat(5, 1fr); gap: .55rem; }
.analytics-preview-summary > div { border-radius: var(--radius-md); background: var(--color-surface-muted); padding: .8rem; }
.analytics-preview-summary span { display: block; color: var(--color-text-muted); font-size: .65rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.analytics-preview-summary strong { display: block; margin-top: .18rem; font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.analytics-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.analytics-section-heading > span { color: var(--color-text-muted); font-size: .72rem; }
.analytics-bucket-list { margin-top: .8rem; border-top: 1px solid var(--color-border); }
.analytics-bucket-row { border-bottom: 1px solid var(--color-border); }
.analytics-bucket-row summary { display: grid; grid-template-columns: 9rem 8rem minmax(10rem, 1fr) 5rem 7rem; gap: .65rem; align-items: center; padding: .7rem .25rem; cursor: pointer; font-size: .76rem; list-style: none; }
.analytics-bucket-row summary::-webkit-details-marker { display: none; }
.bucket-label { display: flex; align-items: center; gap: .4rem; font-weight: 700; }
.bucket-token { width: .65rem; height: .65rem; border-radius: 50%; background: var(--color-detail); }
.token-forest { background: var(--color-action); }.token-sage { background: var(--color-accent); }.token-olive { background: var(--color-accent-secondary); }.token-moss { background: var(--color-chart-positive-highlight); }.token-taupe { background: var(--color-detail); }.token-gold { background: var(--color-highlight); }.token-burgundy { background: var(--color-danger); }
.bucket-count { color: var(--color-text-muted); }
.analytics-diverging { position: relative; height: .8rem; }
.analytics-diverging > i { position: absolute; left: 50%; width: 1px; height: 100%; background: var(--color-border-strong); }
.analytics-diverging > b { position: absolute; top: .12rem; height: .55rem; border-radius: 999px; }
.analytics-diverging > b.positive { left: 50%; background: var(--color-chart-positive); }.analytics-diverging > b.negative { right: 50%; background: var(--color-chart-negative); }
.bucket-drilldown { overflow-x: auto; border-top: 1px solid var(--color-border); background: var(--color-surface-muted); padding: .65rem; }
.bucket-drilldown .data-table { width: 100%; background: var(--color-surface); font-size: .7rem; }
.bucket-drilldown th, .bucket-drilldown td { padding: .4rem .5rem; }
.analytics-empty { text-align: center; }
.analytics-provenance dl { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.analytics-provenance dl div { border-radius: var(--radius-sm); background: var(--color-surface-muted); padding: .6rem; }
.analytics-provenance dt { color: var(--color-text-muted); font-size: .65rem; text-transform: uppercase; }.analytics-provenance dd { margin: .15rem 0 0; font-size: .76rem; }
.analytics-provenance code { word-break: break-all; font-size: .65rem; }
@media (max-width: 780px) { .analytics-preview-summary { grid-template-columns: repeat(2, 1fr); }.analytics-bucket-row summary { grid-template-columns: 1fr auto; }.analytics-diverging { grid-column: 1 / -1; }.analytics-provenance dl { grid-template-columns: 1fr; } }
.bucket-library-page, .bucket-editor-page, .bucket-history-page { max-width: 76rem; }
.library-header, .editor-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.library-header > div > p:last-child { max-width: 48rem; color: var(--color-text-muted); }
.notice-banner, .error-banner { border-radius: var(--radius-md); padding: .8rem 1rem; font-weight: 650; }
.notice-banner { border: 1px solid var(--color-success); background: var(--color-surface-positive); color: var(--color-success-strong); }
.error-banner { border: 1px solid var(--color-danger); background: var(--color-danger-faint); color: var(--color-danger-text); }
.bucket-library-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: .75rem; margin-top: 1rem; }
.bucket-set-card { display: flex; min-height: 19rem; flex-direction: column; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); padding: 1rem; box-shadow: var(--shadow-resting); }
.bucket-library-archived .bucket-set-card { min-height: 11rem; opacity: .82; }
.bucket-card-heading { display: flex; align-items: center; justify-content: space-between; color: var(--color-text-muted); font-size: .72rem; }
.bucket-set-card h3 { margin: .8rem 0 .2rem; font-size: 1.2rem; }.bucket-set-card > p { color: var(--color-text-muted); font-size: .78rem; }
.bucket-set-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; margin: .75rem 0; }.bucket-set-card dl div { border-radius: var(--radius-sm); background: var(--color-surface-muted); padding: .45rem; }.bucket-set-card dt { color: var(--color-text-muted); font-size: .61rem; text-transform: uppercase; }.bucket-set-card dd { margin: .12rem 0 0; font-size: .73rem; }
.bucket-card-time { margin-top: auto; }.bucket-card-actions, .history-actions, .editor-submit-bar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }.bucket-card-actions { margin-top: .6rem; }
.editor-definition label { font-size: .76rem; font-weight: 650; }.editor-definition input, .editor-definition textarea { margin-top: .3rem; }
.editor-controls-grid { display: grid; grid-template-columns: minmax(10rem, .8fr) 1fr 1.4fr; gap: .8rem; margin-top: 1rem; }.editor-controls-grid fieldset { border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: .6rem; }.editor-controls-grid legend { color: var(--color-text-muted); font-size: .68rem; font-weight: 700; }.check-label { display: inline-flex; align-items: center; gap: .25rem; margin: .2rem .45rem .2rem 0; font-size: .7rem; }.check-label input { width: auto; margin: 0; }
.boundary-help { border-left: 3px solid var(--color-highlight); background: var(--color-surface-attention); padding: .65rem .8rem; color: var(--color-text-subtle); font-size: .76rem; }
.range-validation { margin: .7rem 0; border-radius: var(--radius-sm); padding: .55rem .7rem; font-size: .72rem; }.range-validation.is-valid { background: var(--color-surface-positive); color: var(--color-success-strong); }.range-validation.has-errors { background: var(--color-danger-faint); color: var(--color-danger-text); }
.range-editor-table { min-width: 62rem; }.range-editor-table td { vertical-align: middle; }.range-editor-table input, .range-editor-table select { min-width: 0; padding: .5rem; font-size: .72rem; }.range-editor-table .range-lower, .range-editor-table .range-upper { width: 6rem; }.range-editor-table tr.has-range-error { background: var(--color-danger-quiet); }.label-control { display: flex; gap: .25rem; }.suggest-label, .range-actions button { min-height: 2rem; border: 1px solid var(--color-border); background: var(--color-surface-muted); padding: .3rem .45rem; color: var(--color-text-subtle); font-size: .65rem; }.range-actions { display: flex; gap: .2rem; }
.unmatched-option { display: flex; align-items: flex-start; gap: .6rem; margin-top: .8rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: .7rem; }.unmatched-option input { width: auto; }.unmatched-option span, .unmatched-option small { display: block; }.unmatched-option small { margin-top: .15rem; color: var(--color-text-muted); }
.editor-submit-bar { position: sticky; z-index: 20; bottom: .5rem; justify-content: flex-end; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface-toolbar); padding: .55rem; box-shadow: var(--shadow-raised); backdrop-filter: blur(8px); }
.preview-reconciliation { display: flex; align-items: center; gap: .5rem; margin: .75rem 0; border-radius: var(--radius-sm); background: var(--color-surface-positive); padding: .65rem; color: var(--color-action-text); }.preview-table td { font-variant-numeric: tabular-nums; }.preview-table .is-unmatched { background: var(--color-danger-faint); }
.version-stack { margin-top: .8rem; border-top: 1px solid var(--color-border); }.version-card { border-bottom: 1px solid var(--color-border); }.version-card summary { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem .25rem; cursor: pointer; }.version-card summary span { color: var(--color-text-muted); font-size: .72rem; }.version-definition { padding: .2rem .6rem 1rem; }.version-definition table { font-size: .74rem; }.fingerprint code { word-break: break-all; font-size: .65rem; }.history-actions { margin-top: 1rem; }.history-actions form { margin: 0; }.button.danger { border-color: var(--color-danger); background: transparent; color: var(--color-danger-text); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.settings-panel { margin-bottom: 1.2rem; padding: 1rem 1.1rem; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); box-shadow: var(--shadow-resting); }
.settings-panel-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.condition-custom-input { display: block; }
.condition-vocabulary-sections { display: grid; gap: 1rem; margin: 1.25rem 0; }
.vocabulary-list { display: grid; gap: .65rem; margin-top: .9rem; }
.vocabulary-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .65rem; align-items: center; padding: .65rem .75rem; border: 1px solid var(--color-border); border-radius: .85rem; background: var(--color-card-surface); }
.vocabulary-row.archived { opacity: .85; }
.vocabulary-row input { min-width: 0; }
.vocabulary-origin { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--color-text-muted); }
.vocabulary-actions { display: flex; flex-wrap: wrap; gap: .45rem; justify-content: flex-end; }
.vocabulary-add-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .65rem; margin-top: .9rem; }
.archived-vocabulary-list { margin-top: .9rem; }
.archived-vocabulary-list summary { cursor: pointer; color: var(--color-text-muted); }
.capture-settings-page, .observation-choices-page { max-width: min(144rem, calc(100vw - 1.5rem)); }
.capture-settings-page > header, .observation-choices-page > header { max-width: 54rem; }
.capture-settings-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr)); gap: .85rem; margin: 1.15rem 0; }
.capture-link-panel { margin: 0; }
.capture-preferences-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem; align-items: start; margin: .85rem 0 0; }
.capture-preferences-form > * + * { margin-top: 0; }
.capture-preferences-form > section { min-width: 0; margin-top: 0; padding: .95rem; }
.capture-actions { grid-column: 1 / -1; }
.capture-observation-workspace { display: grid; grid-template-columns: 1fr; gap: .85rem; align-items: start; margin-top: 1.2rem; }
.observation-choice-sections { grid-template-columns: repeat(auto-fit, minmax(29rem, 1fr)); align-items: start; gap: .85rem; }
.observation-choice-card { min-width: 0; border-color: var(--color-accent-border); background: linear-gradient(180deg, var(--color-surface-subtle), var(--color-surface-positive)); padding: .78rem; box-shadow: var(--shadow-observation-card); }
.observation-choice-card-header { align-items: start; }
.observation-choice-card-header h2 { margin-bottom: .1rem; font-size: 1.05rem; }
.observation-choice-card-header .text-sm { margin: .15rem 0 0; }
.observation-choice-save-group { display: flex; flex-wrap: nowrap; gap: .45rem; justify-content: flex-end; align-items: center; white-space: nowrap; }
.observation-choice-hint { margin: .45rem 0 .55rem; }
.observation-choice-list { display: grid; gap: .34rem; }
.observation-choice-row { display: grid; grid-template-columns: minmax(6.2rem, 9.5rem) 2.9rem max-content max-content; gap: .34rem; align-items: center; padding: .34rem; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-control-surface); }
.observation-choice-row.archived { opacity: .85; }
.observation-choice-row input { min-width: 0; }
.observation-choice-row input, .observation-choice-add-form input { min-height: 2rem; padding: .34rem .48rem; font-size: .72rem; }
.observation-choice-row .compact-button, .observation-choice-add-form .compact-button { min-height: 1.95rem; padding: .32rem .48rem; font-size: .66rem; white-space: nowrap; }
.observation-choice-row .vocabulary-actions { flex-wrap: nowrap; gap: .25rem; justify-content: flex-end; white-space: nowrap; }
.observation-choice-add-form { display: grid; grid-template-columns: minmax(6.2rem, 9.5rem) 2.9rem minmax(7rem, 1fr); gap: .34rem; margin-top: .5rem; }
.observation-choice-row [data-observation-choice-reactivate] { display: none; }
.observation-choice-row.archived [data-observation-choice-archive] { display: none; }
.observation-choice-row.archived [data-observation-choice-reactivate] { display: inline-flex; }
.observation-grid-hint { margin: .45rem 0; }.observation-direction-key-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; }.observation-direction-key-cell { display: grid; grid-template-columns: 1.8rem minmax(0, 1fr); gap: .35rem; align-items: center; border: 1px solid var(--color-border); border-radius: .65rem; background: var(--color-control-surface); padding: .45rem; }.observation-direction-key-cell .direction-key-position { display: grid; grid-row: span 2; place-items: center; min-height: 3.5rem; border-radius: .45rem; background: var(--color-surface-positive); color: var(--color-action-text); font-size: 1.1rem; font-weight: 800; }.observation-direction-key-cell input { min-width: 0; min-height: 1.8rem; padding: .25rem .4rem; font-size: .7rem; }.observation-direction-key-cell [data-observation-choice-archive] { grid-column: 1 / -1; justify-self: end; font-size: .63rem; }
.context-checkboxes { display: flex; flex-wrap: wrap; gap: .28rem .45rem; min-width: 0; margin: .15rem 0 0; padding: .35rem; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-check-surface); }
.context-checkboxes legend { padding: 0 .2rem; color: var(--color-text-muted); font-size: .66rem; font-weight: 800; }
.context-checkboxes label { display: inline-flex; align-items: center; gap: .22rem; margin: 0; font-size: .66rem; font-weight: 650; color: var(--color-text-subtle); white-space: nowrap; }
.context-checkboxes input[type="checkbox"] { width: auto; min-height: auto; margin: 0; }
.custom-observation-form { margin: .85rem 0; }
.custom-observation-grid { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(8rem, .55fr) minmax(8rem, .55fr) minmax(16rem, 1fr) max-content; gap: .45rem; align-items: end; }
.custom-observation-grid input, .custom-observation-grid select { min-height: 2rem; padding: .34rem .48rem; font-size: .72rem; }
.compact-contexts { align-self: stretch; margin: 0; }
.observation-profile-list { display: grid; gap: .5rem; }
.observation-field-row { display: grid; grid-template-columns: minmax(8rem, .5fr) minmax(16rem, 1fr) max-content max-content; gap: .45rem; align-items: center; }
.observation-card-heading input { min-width: 0; min-height: 2rem; padding: .34rem .48rem; font-size: .76rem; font-weight: 750; }
.observation-mode-card [data-observation-field-reactivate] { display: none; }
.observation-mode-card.archived [data-observation-field-archive] { display: none; }
.observation-mode-card.archived [data-observation-field-reactivate] { display: inline-flex; }
@media (max-width: 1320px) {
  .capture-preferences-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .capture-observation-workspace { grid-template-columns: 1fr; }
}
@media (max-width: 980px) {
  .observation-choice-sections { grid-template-columns: 1fr; }
  .observation-choice-row { grid-template-columns: minmax(7rem, 12rem) 3rem max-content max-content; }
  .observation-choice-add-form { grid-template-columns: minmax(7rem, 12rem) 3rem minmax(7rem, 1fr); }
  .custom-observation-grid, .observation-field-row { grid-template-columns: 1fr; }
}
@media (min-width: 2100px) {
  .observation-choice-sections { grid-template-columns: repeat(auto-fit, minmax(27rem, 1fr)); }
}
.observation-setup-panel, .club-bag-panel { min-width: 0; margin-top: 0; }
.observation-setup-panel { width: min(100%, 104rem); margin-right: auto; margin-left: auto; }
.observation-mode-help { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; margin: .9rem 0; }
.observation-mode-help p { margin: 0; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-muted); padding: .65rem; color: var(--color-text-muted); font-size: .72rem; }
.observation-mode-help strong { display: block; color: var(--color-text-subtle); }
.observation-profile-form { margin-top: .9rem; }
.observation-profile-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .65rem; }
.observation-mode-card { min-width: 0; margin: 0; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-card-surface); padding: .65rem; }
.observation-mode-card.archived { opacity: .78; }
.observation-drill-summary { display: block; cursor: pointer; list-style: none; }
.observation-drill-summary::-webkit-details-marker { display: none; }
.observation-drill-body { margin-top: .65rem; border-top: 1px solid var(--color-border); padding-top: .65rem; }
.observation-choice-save-row { display: flex; justify-content: space-between; align-items: center; gap: .75rem; margin-bottom: .55rem; }
.observation-choice-save-row p { margin: 0; }
.observation-card-heading { display: flex; align-items: start; justify-content: space-between; gap: .45rem; margin-bottom: .5rem; border-bottom: 1px solid var(--color-border); padding-bottom: .35rem; }
.observation-card-heading h3 { margin: 0; font-size: .84rem; }
.observation-card-heading span, .observation-mode-card small { color: var(--color-text-muted); font-size: .68rem; }
.observation-mode-card label { display: flex; align-items: center; gap: .35rem; margin-top: .25rem; font-size: .72rem; font-weight: 650; }
.observation-mode-card input[type="radio"] { width: auto; min-height: auto; margin: 0; }
.club-bag-form { margin-top: .9rem; }
.club-bag-status { margin: .55rem 0; padding: .55rem .7rem; }
.club-bag-save-row { display: flex; justify-content: flex-end; margin: .75rem 0; }
.club-bag-list { display: grid; grid-template-columns: 1fr; gap: .38rem; margin-top: .65rem; }
.club-bag-row { display: grid; grid-template-columns: minmax(7rem, 10rem) 3.4rem max-content max-content; gap: .34rem; align-items: center; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-control-surface); padding: .34rem; }
.club-bag-row.archived { opacity: .82; }
.club-bag-row input { min-width: 0; }
.club-bag-row input, .club-bag-add-form input { min-height: 2rem; padding: .34rem .48rem; font-size: .72rem; }
.club-bag-row .compact-button, .club-bag-add-form .compact-button { min-height: 1.95rem; padding: .32rem .48rem; font-size: .66rem; white-space: nowrap; }
.club-bag-row .vocabulary-actions { flex-wrap: nowrap; gap: .25rem; justify-content: flex-end; white-space: nowrap; }
.club-bag-add-form { display: grid; grid-template-columns: minmax(7rem, 10rem) 3.4rem minmax(7rem, 1fr); gap: .34rem; margin-top: .65rem; }
.club-bag-row [data-club-reactivate] { display: none; }
.club-bag-row.archived [data-club-archive] { display: none; }
.club-bag-row.archived [data-club-reactivate] { display: inline-flex; }
@media (max-width: 780px) { .observation-mode-help, .club-bag-row, .club-bag-add-form, .observation-choice-row, .observation-choice-add-form, .custom-observation-grid, .observation-field-row { grid-template-columns: 1fr; } }
.observation-header { align-items: start; }
.observation-header-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.custom-observation-grid { grid-template-columns: minmax(10rem, 1fr) minmax(12rem, 1.2fr) minmax(8rem, .6fr) minmax(8rem, .65fr) minmax(18rem, 1.4fr) max-content; }
.observation-filter-panel { margin: .9rem 0; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-faint); padding: .8rem; }
.observation-filter-row { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-bottom: .55rem; }
.observation-filter-row:last-of-type { margin-bottom: .3rem; }
.filter-label { min-width: 4.8rem; color: var(--color-text-muted); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.filter-chip, .mode-tag, .applies-tag { display: inline-flex; align-items: center; justify-content: center; min-height: 2.05rem; border-radius: 999px; font-size: .72rem; font-weight: 800; white-space: nowrap; }
.filter-chip, .mode-tag { border: 1px solid var(--color-border-strong); background: var(--color-surface); color: var(--color-text-subtle); padding: .35rem .75rem; }
.filter-chip.is-selected, .mode-tag.is-selected { border-color: var(--color-action); background: var(--color-action); color: var(--color-text-on-strong); }
.applies-tag { border: 0; background: var(--color-surface-choice); color: var(--color-action-text); padding: .3rem .6rem; }
.observation-profile-form { margin: 0; }
.observation-profile-list { display: grid; gap: .45rem; }
.observation-mode-card { padding: .65rem; overflow: visible; }
.observation-mode-card[hidden] { display: none; }
.observation-class-summary { display: grid; grid-template-columns: minmax(18rem, 1fr) max-content minmax(7rem, .35fr) max-content; gap: .75rem; align-items: center; }
.observation-class-button { display: grid; align-content: center; justify-content: start; justify-items: start; width: 100%; min-width: 0; min-height: 3rem; border: 0; background: transparent !important; box-shadow: none !important; padding: 0; color: var(--color-text); text-align: left; }
.observation-class-button strong { font-size: .84rem; }
.observation-class-button span, .observation-class-button small { color: var(--color-text-muted); font-size: .68rem; font-weight: 700; }
.mode-tag-group { display: flex; flex-wrap: wrap; gap: .4rem; min-width: 0; }
.applies-tag-group { display: flex; flex-wrap: wrap; gap: .35rem; min-width: 0; }
.observation-actions, .choice-actions { display: flex; flex-wrap: nowrap; gap: .32rem; justify-content: flex-end; white-space: nowrap; }
.icon-button { display: inline-flex; align-items: center; justify-content: center; width: 2.1rem; min-width: 2.1rem; height: 2.1rem; border: 1px solid var(--color-border-strong); border-radius: 999px; background: var(--color-surface); color: var(--color-text-subtle); font-size: .82rem; font-weight: 850; }
.field-context-editor { margin-top: .65rem; }
.observation-choice-dialog { width: min(50rem, calc(100vw - 2rem)); max-height: min(48rem, calc(100dvh - 1rem)); overflow: auto; overscroll-behavior: contain; border: 1px solid var(--color-border); border-radius: 1rem; background: var(--color-surface); color: var(--color-text); padding: 1rem; box-shadow: var(--shadow-dialog); }
.observation-choice-dialog::backdrop { background: var(--color-surface-backdrop); }
.add-observation-dialog { width: min(37rem, calc(100vw - 2rem)); }
.add-observation-dialog .custom-observation-grid { grid-template-columns: 1fr 1fr; }
.add-observation-dialog .compact-contexts, .add-observation-dialog button[type="submit"] { grid-column: 1 / -1; }
.delete-observation-dialog { width: min(30rem, calc(100vw - 2rem)); }
.dialog-header { position: sticky; z-index: 2; top: -1rem; display: flex; justify-content: space-between; align-items: start; gap: 1rem; margin: -1rem -1rem .8rem; border-bottom: 1px solid var(--color-border); background: var(--color-surface); padding: 1rem; }
.dialog-header h2 { margin: 0; }
.observation-class-details { display: grid; grid-template-columns: minmax(10rem, .8fr) minmax(14rem, 1.2fr) max-content; gap: .55rem; align-items: end; margin-bottom: .75rem; }
.observation-class-details input { min-height: 2.15rem; font-size: .75rem; }
.choice-description { border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-muted); padding: .65rem; margin-bottom: .75rem; }
.choice-description strong { display: block; margin-bottom: .2rem; color: var(--color-text-subtle); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.choice-description p { margin: 0; color: var(--color-text-muted); font-size: .75rem; }
.choices-box { min-width: 35rem; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface-quiet); overflow-x: auto; }
.choices-list { display: grid; }
.choice-table-heading, .choice-edit-row { display: grid; grid-template-columns: minmax(13rem, 1fr) 5rem max-content; gap: .45rem; align-items: center; padding: .45rem; }
.choice-table-heading { color: var(--color-text-muted); font-size: .66rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.choice-edit-row + .choice-edit-row { border-top: 1px solid var(--color-border); }
.choice-edit-row.archived { opacity: .78; }
.choice-edit-row input, .choice-add-row input { min-height: 2.05rem; padding: .35rem .5rem; font-size: .73rem; }
.choice-add-row { display: grid; grid-template-columns: minmax(13rem, 1fr) 5rem max-content; gap: .45rem; min-width: 35rem; margin-top: .55rem; }
.choice-edit-row [data-observation-choice-reactivate], .choice-edit-row [data-club-reactivate] { display: none; }
.choice-edit-row.archived [data-observation-choice-archive], .choice-edit-row.archived [data-club-archive] { display: none; }
.choice-edit-row.archived [data-observation-choice-reactivate], .choice-edit-row.archived [data-club-reactivate] { display: inline-flex; }
.direction-grid-editor { display: grid; grid-template-columns: repeat(3, minmax(8.5rem, 1fr)); gap: .5rem; width: min(34rem, 100%); margin: .7rem auto 1rem; }
.direction-grid-cell { display: grid; grid-template-columns: 2rem 2rem minmax(0, 1fr); gap: .45rem; align-items: center; min-height: 4rem; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface); padding: .65rem; font-weight: 750; }
.direction-arrow, .key-badge { display: inline-flex; align-items: center; justify-content: center; border-radius: 7px; background: var(--color-action); color: var(--color-text-on-strong); font-weight: 900; }
.direction-arrow { width: 2rem; height: 2rem; background: var(--color-surface-choice); color: var(--color-action-text); }
.key-badge { width: 2rem; height: 2rem; }
.dialog-actions { display: flex; justify-content: flex-end; margin-top: .75rem; }
.danger-button { border-color: var(--color-danger-control-border); color: var(--color-danger-text); }
@media (max-width: 1120px) {
  .observation-class-summary { grid-template-columns: minmax(14rem, 1fr) minmax(16rem, 1fr) max-content; }
  .applies-tag-group { grid-column: 2 / 3; }
}
@media (max-width: 780px) {
  .custom-observation-grid, .observation-class-summary, .observation-class-details { grid-template-columns: 1fr; }
  .applies-tag-group { grid-column: auto; }
  .observation-actions { justify-content: flex-start; }
  .observation-choice-dialog { width: calc(100vw - 1rem); }
  .direction-grid-editor { grid-template-columns: repeat(3, minmax(7rem, 1fr)); overflow-x: auto; }
}
@media (max-width: 780px) { .library-header, .editor-section-heading { align-items: flex-start; flex-direction: column; }.editor-controls-grid { grid-template-columns: 1fr; }.version-card summary { flex-direction: column; }.editor-submit-bar { border-radius: var(--radius-md); } }
.course-library-page, .course-detail-page, .course-editor-page, .course-history-page { max-width: 82rem; }
.course-library-grid, .course-tee-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); gap: .8rem; margin-top: 1rem; }
.course-card, .course-tee-card { display: flex; min-height: 15rem; flex-direction: column; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); padding: 1rem; box-shadow: var(--shadow-resting); }
.course-card h3, .course-tee-card h3 { margin: .75rem 0 .2rem; }.course-card-heading { display: flex; align-items: center; justify-content: space-between; gap: .5rem; color: var(--color-text-muted); font-size: .7rem; }
.tee-summary-stack { display: grid; gap: .4rem; margin: .7rem 0; }.tee-summary { display: grid; border-radius: var(--radius-sm); background: var(--color-surface-muted); padding: .55rem; }.tee-summary strong { font-size: .78rem; }.tee-summary span { margin-top: .15rem; color: var(--color-text-muted); font-size: .67rem; }
.course-card-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: auto; padding-top: .7rem; }.course-empty-note, .course-card > p, .course-tee-card > p { color: var(--color-text-muted); font-size: .75rem; }.course-empty-state { text-align: center; }.archived-course-list > summary { cursor: pointer; font-weight: 700; }.is-archived { opacity: .78; }.warning-text { color: var(--color-danger-text) !important; font-weight: 650; }
.course-detail-settings { display: grid; grid-template-columns: minmax(12rem, .7fr) 2fr; gap: 1rem; align-items: end; }.inline-course-form { display: grid; grid-template-columns: 1fr auto; gap: .5rem; align-items: end; }.inline-course-form > * { margin: 0; }
.course-metrics, .course-review-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; margin: .7rem 0; }.course-metrics div, .course-review-metrics div { border-radius: var(--radius-sm); background: var(--color-surface-muted); padding: .5rem; }.course-metrics dt, .course-review-metrics dt { color: var(--color-text-muted); font-size: .61rem; text-transform: uppercase; }.course-metrics dd, .course-review-metrics dd { margin: .12rem 0 0; font-size: .78rem; font-variant-numeric: tabular-nums; }.course-tee-card form { margin-top: .7rem; }
.course-management-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }.course-management-grid > div { min-width: 0; }.course-management-grid p { color: var(--color-text-muted); font-size: .76rem; }
.course-editor-fields { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr; gap: .7rem; margin-top: .8rem; }.course-editor-fields label, .course-rating-grid label { color: var(--color-text-subtle); font-size: .72rem; font-weight: 650; }.course-editor-fields label > span { color: var(--color-text-muted); font-size: .62rem; font-weight: 400; }.course-editor-fields input, .course-rating-grid input { margin-top: .25rem; }
.course-rating-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .7rem; margin-top: .8rem; }.course-source-field { grid-column: 1 / -1; }.hole-grid-buttons { display: flex; flex-wrap: wrap; gap: .35rem; }.course-layout-totals { display: flex; flex-wrap: wrap; gap: .5rem; margin: .6rem 0; }.course-layout-totals span { border-radius: 99px; background: var(--color-surface-positive); padding: .4rem .7rem; color: var(--color-action-text); font-size: .72rem; }.course-layout-totals strong { font-variant-numeric: tabular-nums; }
.course-scorecard-section { padding-top: .8rem; padding-bottom: .8rem; }.course-scorecard-section .boundary-help { margin: .45rem 0; }.course-scorecard-section .range-validation { margin: .4rem 0; padding: .4rem .6rem; }.course-scorecard-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }.scorecard-scroll { min-width: 0; overflow-x: auto; }.course-scorecard { min-width: 38rem; table-layout: fixed; border: 1px solid var(--color-border); border-radius: var(--radius-sm); overflow: hidden; }.course-scorecard caption { padding: .3rem .45rem; color: var(--color-action-text); font-size: .67rem; font-weight: 750; letter-spacing: .08em; text-align: left; text-transform: uppercase; }.course-scorecard th, .course-scorecard td { padding: .2rem; text-align: center; }.course-scorecard th:first-child { width: 7.5rem; padding-left: .45rem; text-align: left; white-space: nowrap; }.course-scorecard input { width: 100%; min-width: 0; height: 2rem; border-radius: .35rem; padding: .25rem; font-size: .72rem; text-align: center; font-variant-numeric: tabular-nums; }.course-scorecard .hole-label-input { font-weight: 700; }.played-hole-number { display: block; min-height: 1.7rem; padding-top: .35rem; font-variant-numeric: tabular-nums; }.scorecard-subtotal-heading, .course-scorecard .scorecard-subtotal, .course-scorecard .scorecard-grand-total { width: 3.7rem; background: var(--color-surface-positive); color: var(--color-action-text); font-weight: 750; font-variant-numeric: tabular-nums; }.scorecard-hole-actions { display: flex; justify-content: center; gap: .08rem; margin-top: .08rem; opacity: .25; }.course-scorecard th:hover .scorecard-hole-actions, .scorecard-hole-actions:focus-within { opacity: 1; }.scorecard-hole-actions button { min-width: 0; min-height: 1.15rem; border: 0; background: transparent; padding: 0 .12rem; color: var(--color-text-muted); font-size: .62rem; }.course-scorecard td.has-field-error { background: var(--color-danger-faint); }.field-error { color: var(--color-danger-text); font-size: .68rem; }.scorecard-cell-error { display: block; max-width: 5rem; margin-top: .15rem; line-height: 1.15; }.warning-banner { border: 1px solid var(--color-highlight); border-radius: var(--radius-md); background: var(--color-surface-attention); padding: .7rem; color: var(--color-text-subtle); }
.course-review-table { min-width: 28rem; }.course-review-table td, .course-review-table th { padding: .45rem .65rem; text-align: center; }.course-review-table .course-review-subtotal td { background: var(--color-surface-muted); font-weight: 750; }.course-review-table .course-review-total td { background: var(--color-surface-positive); color: var(--color-action-text); font-weight: 800; }.course-review-panel { border-color: var(--color-accent); background: linear-gradient(135deg, var(--color-surface), var(--color-surface-positive)); }
@media (max-width: 1100px) { .course-scorecard-grid { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .course-editor-fields, .course-rating-grid { grid-template-columns: repeat(2, 1fr); }.course-detail-settings { grid-template-columns: 1fr; }.course-management-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .course-editor-fields, .course-rating-grid, .inline-course-form { grid-template-columns: 1fr; }.course-metrics, .course-review-metrics { grid-template-columns: repeat(2, 1fr); }.course-library-grid, .course-tee-grid { grid-template-columns: 1fr; } }
.explorer-page { max-width: 88rem; }.explorer-header-actions { display: flex; flex-wrap: wrap; gap: .5rem; }.explorer-layout { display: grid; grid-template-columns: 14rem minmax(0, 1fr); gap: 1rem; align-items: start; }.saved-view-panel { position: sticky; top: 4rem; padding: .85rem; }.saved-view-panel > p { color: var(--color-text-muted); font-size: .74rem; }.saved-view-panel nav { display: grid; gap: .35rem; margin-top: .6rem; }.saved-view-panel nav a { display: grid; border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: .55rem; color: var(--color-text-subtle); text-decoration: none; }.saved-view-panel nav a:hover, .saved-view-panel nav a.is-selected { border-color: var(--color-action); background: var(--color-surface-positive); }.saved-view-panel nav strong { font-size: .75rem; }.saved-view-panel nav span { overflow: hidden; margin-top: .15rem; color: var(--color-text-muted); font-size: .59rem; text-overflow: ellipsis; white-space: nowrap; }.explorer-main { min-width: 0; }.saved-view-lock { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .7rem; border: 1px solid var(--color-accent); border-radius: var(--radius-md); background: var(--color-surface-positive); padding: .7rem; }.saved-view-lock div { display: grid; }.saved-view-lock span { color: var(--color-text-muted); font-size: .68rem; }.explorer-primary-filters { display: grid; grid-template-columns: 2fr 1fr repeat(5, minmax(8rem, 1fr)); gap: .55rem; margin-top: .8rem; }.explorer-filter-form label, .save-view-section label { color: var(--color-text-subtle); font-size: .69rem; font-weight: 700; }.explorer-filter-form input, .explorer-filter-form select { margin-top: .25rem; font-size: .72rem; }.advanced-filters { margin-top: .7rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: .65rem; }.advanced-filters summary { cursor: pointer; font-size: .76rem; font-weight: 700; }.advanced-filter-grid { display: grid; grid-template-columns: 1.2fr 1.5fr 1fr 1fr 2fr; gap: .6rem; margin-top: .65rem; }.advanced-filter-grid fieldset { border: 0; padding: 0; }.advanced-filter-grid legend { margin-bottom: .2rem; color: var(--color-text-muted); font-size: .66rem; font-weight: 700; }.advanced-filter-grid small { display: block; margin-top: .3rem; color: var(--color-text-muted); font-size: .64rem; font-weight: 400; }.context-filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }.round-filter select { width: 100%; }.round-filter small { display: block; margin-top: .2rem; color: var(--color-text-muted); font-weight: 400; }.filter-submit { display: flex; justify-content: flex-end; margin-top: .7rem; }.explorer-result-header { background: linear-gradient(135deg, var(--color-surface), var(--color-surface-attention)); }.context-missing-summary { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .65rem; }.context-missing-summary span { display: inline-flex; border-radius: 999px; background: var(--color-surface-muted); padding: .3rem .55rem; color: var(--color-text-muted); font-size: .67rem; font-weight: 600; }.chart-explanation { color: var(--color-text-muted); font-size: .74rem; }.explorer-bucket-list .analytics-bucket-row summary { grid-template-columns: 10rem 12rem minmax(10rem, 1fr) 5rem 7rem; }.drilldown-summary { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .5rem; font-size: .72rem; }.drilldown-summary span { color: var(--color-text-muted); }.drilldown-context-cell { display: grid; gap: .15rem; min-width: 15rem; font-size: .68rem; }.save-view-section { display: grid; grid-template-columns: 1.5fr 1fr; gap: 1.2rem; align-items: end; }.save-view-section p { color: var(--color-text-muted); font-size: .76rem; }.save-view-section form { display: grid; grid-template-columns: 1fr auto; gap: .45rem; align-items: end; }.save-view-section form > * { margin: 0; }
@media (max-width: 1100px) { .explorer-primary-filters { grid-template-columns: repeat(3, 1fr); }.advanced-filter-grid, .context-filter-grid { grid-template-columns: repeat(2, 1fr); }.round-filter { grid-column: 1 / -1; } }
@media (max-width: 780px) { .explorer-layout { grid-template-columns: 1fr; }.saved-view-panel { position: static; }.explorer-primary-filters, .advanced-filter-grid, .context-filter-grid, .save-view-section { grid-template-columns: 1fr; }.explorer-bucket-list .analytics-bucket-row summary { grid-template-columns: 1fr auto; }.save-view-section form { grid-template-columns: 1fr; } }
.explorer-result-table { margin-top: 1rem; }.explorer-result-table caption { padding: .45rem; color: var(--color-text-muted); font-size: .7rem; text-align: left; }
.putting-analytics-page { max-width: 88rem; }.putting-filter-form { position: sticky; z-index: 18; top: .7rem; margin-bottom: 1rem; }.putting-filter-form > section { box-shadow: var(--shadow-filter); }.putting-section { margin-top: 1.2rem; }.putting-section h2 { margin-top: .2rem; }.putting-bucket-table { min-width: 74rem; }.putting-dispersion-table { min-width: 68rem; }.putting-dispersion-table th { white-space: nowrap; }.putting-dispersion-table td { min-width: 6.4rem; text-align: center; }.putting-dispersion-table details summary { cursor: pointer; color: var(--color-action-text); font-weight: 700; }.putting-dispersion-table details ul { min-width: 17rem; margin: .55rem 0 0; padding-left: 1rem; text-align: left; }.putting-drilldowns { display: grid; gap: .35rem; margin-top: .8rem; }.putting-drilldowns > details { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); }.putting-drilldowns > details > summary { cursor: pointer; padding: .6rem; font-size: .75rem; font-weight: 700; }
.putting-spider-layout { display: grid; grid-template-columns: minmax(18rem, 34rem) minmax(13rem, 18rem); gap: 1.2rem; align-items: center; margin: 1rem auto; max-width: 55rem; }.putting-spider-figure { margin: 0; }.putting-spider { display: block; width: min(100%, 34rem); margin: 0 auto; overflow: visible; }.spider-wedge { fill: var(--color-surface-positive); stroke: var(--color-surface); stroke-width: 1.5; transition: fill .15s ease, stroke .15s ease; }.spider-wedge.is-populated { fill: var(--color-accent); }.putting-spider a:hover .spider-wedge.is-populated, .putting-spider a:focus .spider-wedge.is-populated { fill: var(--color-action); stroke: var(--color-text); stroke-width: 2.5; }.spider-center { fill: var(--color-surface-attention); stroke: var(--color-action); stroke-width: 1.5; }.spider-center-label, .spider-center-count { fill: var(--color-text-subtle); font-family: var(--font-body); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-anchor: middle; }.spider-center-count { font-size: 12px; }.spider-direction-label { fill: var(--color-text-subtle); font-family: var(--font-body); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-anchor: middle; }.putting-spider-figure figcaption { margin-top: .45rem; color: var(--color-text-muted); font-size: .72rem; text-align: center; }.spider-legend { border-left: 1px solid var(--color-border); padding-left: 1rem; }.spider-legend h3 { margin: 0; font-size: .82rem; }.spider-legend ol { display: grid; gap: .35rem; margin: .65rem 0; padding: 0; list-style: none; }.spider-legend li { display: flex; align-items: center; gap: .45rem; color: var(--color-text-subtle); font-size: .74rem; }.spider-legend i { display: inline-block; width: 1rem; height: 1rem; border: 2px solid var(--color-accent); border-radius: 50%; }.spider-legend .ring-2 { width: .85rem; height: .85rem; }.spider-legend .ring-3 { width: .72rem; height: .72rem; }.spider-legend .ring-4 { width: .59rem; height: .59rem; }.spider-legend .ring-5 { width: .47rem; height: .47rem; }.spider-legend .ring-6 { width: .36rem; height: .36rem; }.spider-legend .ring-7 { width: .25rem; height: .25rem; }.spider-legend p { color: var(--color-text-muted); font-size: .7rem; }.putting-accessible-table { margin-top: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: .65rem; }.putting-accessible-table > summary { cursor: pointer; color: var(--color-action-text); font-size: .78rem; font-weight: 700; }
.putting-distance-filter { grid-template-columns: 2fr 1fr; }.putting-distance-filter fieldset { display: grid; grid-template-columns: repeat(4, minmax(6rem, 1fr)); gap: .35rem .6rem; }.putting-distance-filter legend, .putting-distance-filter small { grid-column: 1 / -1; }.spider-segment-label { fill: var(--color-surface); font-family: var(--font-body); font-size: 9px; font-weight: 800; text-anchor: middle; dominant-baseline: middle; pointer-events: none; }.spider-center-percent { fill: var(--color-text-subtle); font-family: var(--font-body); font-size: 9px; font-weight: 800; text-anchor: middle; }.spider-ring-label { fill: var(--color-text-muted); font-family: var(--font-body); font-size: 8px; font-weight: 700; text-anchor: start; dominant-baseline: middle; }
.putting-bucket-click-table { min-width: 74rem; }.bucket-result-row { cursor: pointer; }.bucket-result-row:hover, .bucket-result-row:focus, .bucket-result-row.is-selected { background: var(--color-surface-positive); outline: none; }.selected-bucket-detail { margin-top: .8rem; border: 1px solid var(--color-accent); border-radius: var(--radius-md); background: var(--color-surface-positive); padding: .8rem; }.selected-bucket-detail h3 { margin: 0; }.selected-bucket-detail > p { margin: .25rem 0 .65rem; color: var(--color-text-muted); font-size: .75rem; }.outcome-setting-note { margin: .65rem 0; border-left: 3px solid var(--color-accent); background: var(--color-surface-positive); padding: .55rem .7rem; color: var(--color-text-subtle); font-size: .75rem; }.outcome-setting-note a { font-weight: 700; }
.putting-filter-form .filter-submit { display: none; }.putting-preview-summary { grid-template-columns: repeat(6, 1fr); }.spider-toggle-target fieldset { display: flex; align-items: center; gap: .65rem; margin: 0; border: 1px solid var(--color-border); border-radius: 999px; padding: .3rem .6rem; }.spider-toggle-target legend { padding: 0 .2rem; color: var(--color-text-muted); font-size: .65rem; font-weight: 700; }.spider-toggle-target .check-label { font-size: .7rem; white-space: nowrap; }.selected-bucket-detail { position: fixed; z-index: 110; top: 1rem; right: 1rem; bottom: 1rem; width: min(46rem, calc(100vw - 2rem)); margin: 0; overflow: auto; overscroll-behavior: contain; border-color: var(--color-accent); box-shadow: var(--shadow-overlay); }.drawer-heading { position: sticky; z-index: 2; top: -.8rem; display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin: -.8rem -.8rem .65rem; border-bottom: 1px solid var(--color-border); background: var(--color-surface); padding: .8rem; }.drawer-heading p { margin: .25rem 0 0; color: var(--color-text-muted); font-size: .75rem; }.putting-rolling-section { max-width: none; }.rolling-window-control { display: grid; gap: .2rem; color: var(--color-text-subtle); font-size: .7rem; font-weight: 700; }.rolling-window-control input { width: 5.5rem; }.rolling-chart-wrap { margin-top: .8rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); padding: .6rem .8rem; }.putting-rolling-chart { display: block; width: 100%; min-width: 48rem; height: auto; }.rolling-axis { stroke: var(--color-border-strong); stroke-width: 1.5; }.rolling-line { fill: none; stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }.rolling-line.token-forest { stroke: var(--color-action); }.rolling-line.token-sage { stroke: var(--color-accent); }.rolling-line.token-gold { stroke: var(--color-chart-detail); }.rolling-line.token-burgundy { stroke: var(--color-danger); }.rolling-line.token-olive { stroke: var(--color-accent-secondary); }.rolling-line.token-moss { stroke: var(--color-chart-positive-highlight); }.rolling-line.token-taupe { stroke: var(--color-detail); }.rolling-axis-label { fill: var(--color-text-muted); font-family: var(--font-body); font-size: 13px; }.rolling-axis-right { text-anchor: end; }.rolling-legend { display: flex; flex-wrap: wrap; gap: .55rem 1rem; margin: .4rem .2rem 0; }.rolling-legend span { display: inline-flex; align-items: center; gap: .3rem; font-size: .7rem; }.rolling-legend i { width: .7rem; height: .2rem; border-radius: 1rem; }.rolling-legend .token-forest { background: var(--color-action); }.rolling-legend .token-sage { background: var(--color-accent); }.rolling-legend .token-gold { background: var(--color-chart-detail); }.rolling-legend .token-burgundy { background: var(--color-danger); }.rolling-legend .token-olive { background: var(--color-accent-secondary); }.rolling-legend .token-moss { background: var(--color-chart-positive-highlight); }.rolling-legend .token-taupe { background: var(--color-detail); }
.putting-dashboard-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1.25rem; margin-top: 1rem; }.putting-dashboard-grid .dashboard-card { grid-column: span 12; margin: 0; }.putting-dashboard-grid .card-size-small { grid-column: span 4; }.putting-dashboard-grid .card-size-medium { grid-column: span 6; }.spider-value-toggle { display: inline-flex; border: 1px solid var(--color-border); border-radius: 999px; overflow: hidden; }.spider-value-toggle button { border: 0; border-radius: 0; background: var(--color-surface); color: var(--color-text-subtle); font: inherit; font-size: .72rem; font-weight: 800; padding: .42rem .7rem; }.spider-value-toggle button.is-active { background: var(--color-action); color: var(--color-text-on-strong); }.rolling-line.is-faded, [data-rolling-series].is-faded { opacity: .18; }.rolling-line.is-faded { stroke-width: 2; }.rolling-round-point { fill: var(--color-action); stroke: var(--color-surface); stroke-width: 2; }.rolling-round-point.is-context { opacity: .28; }.rolling-legend-chip { display: inline-flex; align-items: center; gap: .3rem; padding: 0; border: 0; background: transparent; color: var(--color-text); font: inherit; font-size: .72rem; cursor: pointer; }.rolling-legend-chip.is-faded { opacity: .45; }.rolling-legend-chip.is-active { font-weight: 800; text-decoration: underline; text-underline-offset: .2rem; }.dashboard-customize-drawer { position: fixed; z-index: 110; top: 1rem; right: 1rem; bottom: 1rem; width: min(34rem, calc(100vw - 2rem)); overflow: auto; overscroll-behavior: contain; padding: 1.25rem; border: 1px solid var(--color-accent); border-radius: var(--radius-md); background: var(--color-surface); box-shadow: var(--shadow-overlay); }.dashboard-card-editor { display: grid; gap: .55rem; padding: 0; margin: 1rem 0; list-style: none; }.dashboard-card-editor li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto auto auto; align-items: center; gap: .45rem; padding: .6rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-canvas); }.dashboard-card-editor li[draggable="true"] { cursor: grab; }.drag-handle { color: var(--color-text-muted); font-size: 1.1rem; }.dashboard-card-editor label { display: inline-flex; align-items: center; gap: .25rem; color: var(--color-text-subtle); font-size: .72rem; }.dashboard-card-editor select { width: auto; min-width: 5rem; padding: .3rem; }.drawer-actions { margin-top: .75rem; }
.rolling-line.token-chart-forest { stroke: var(--color-chart-1); }.rolling-line.token-chart-teal { stroke: var(--color-chart-2); }.rolling-line.token-chart-blue { stroke: var(--color-chart-3); }.rolling-line.token-chart-purple { stroke: var(--color-chart-4); }.rolling-line.token-chart-orange { stroke: var(--color-chart-5); }.rolling-line.token-chart-rose { stroke: var(--color-chart-6); }.rolling-line.token-chart-slate { stroke: var(--color-chart-7); }.rolling-legend .token-chart-forest { background: var(--color-chart-1); }.rolling-legend .token-chart-teal { background: var(--color-chart-2); }.rolling-legend .token-chart-blue { background: var(--color-chart-3); }.rolling-legend .token-chart-purple { background: var(--color-chart-4); }.rolling-legend .token-chart-orange { background: var(--color-chart-5); }.rolling-legend .token-chart-rose { background: var(--color-chart-6); }.rolling-legend .token-chart-slate { background: var(--color-chart-7); }[data-rolling-series].is-faded .rolling-round-point { display: none; }
.putting-spider a.is-faded .spider-wedge { opacity: .16; }.putting-spider a.is-selected .spider-wedge { fill: var(--color-action); stroke: var(--color-text); stroke-width: 2.5; }
@media (max-width: 900px) { .putting-preview-summary { grid-template-columns: repeat(3, 1fr); }.spider-toggle-target { margin-top: .5rem; }.putting-rolling-chart { min-width: 36rem; }.putting-dashboard-grid .card-size-small, .putting-dashboard-grid .card-size-medium { grid-column: span 12; }.dashboard-card-editor li { grid-template-columns: auto minmax(0, 1fr) auto auto; }.dashboard-card-editor li label { grid-column: span 2; } }
@media (max-width: 720px) { .putting-spider-layout { grid-template-columns: 1fr; }.spider-legend { border-top: 1px solid var(--color-border); border-left: 0; padding: .8rem 0 0; } }
.impact-loss { color: var(--color-chart-negative-text); font-variant-numeric: tabular-nums; }.impact-gain { color: var(--color-success-strong); font-variant-numeric: tabular-nums; }
ul, ol { padding-left: 1.4rem; }
li { margin-top: .45rem; }

form > * + *, .space-y-6 > * + * { margin-top: 1.25rem; }
.space-y-5 > * + * { margin-top: 1rem; }
.space-y-4 > * + * { margin-top: .85rem; }
.space-y-3 > * + * { margin-top: .65rem; }
.space-y-2 > * + * { margin-top: .45rem; }
.space-y-1 > * + * { margin-top: .25rem; }
.flex { display: flex; }
.flex-1 { flex: 1 1 0%; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-between { justify-content: space-between; }
.gap-1 { gap: .25rem; }
.gap-2 { gap: .5rem; }
.gap-3 { gap: .75rem; }
.gap-4 { gap: 1rem; }
.block { display: block; }
.w-full { width: 100%; }
.inline-block { display: inline-flex; }
.grid { display: grid; }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.min-w-0 { min-width: 0; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-xs { font-size: .75rem; }
.text-sm { font-size: .875rem; }
.text-base { font-size: 1rem; }
.text-xl { font-size: 1.25rem; }
.text-2xl { font-size: 1.5rem; }
.text-4xl { font-size: 2.5rem; }
.font-normal { font-weight: 400; }
.font-medium { font-weight: 550; }
.font-semibold { font-weight: 650; }
.uppercase { text-transform: uppercase; }
.tracking-wide { letter-spacing: .08em; }
.text-slate-300 { color: var(--color-decoration-soft); }
.text-slate-400 { color: var(--color-chart-detail); }
.text-slate-500 { color: var(--color-text-muted); }
.text-slate-600, .text-slate-700, .text-slate-800 { color: var(--color-text-subtle); }
.text-slate-900 { color: var(--color-text); }
.text-white { color: var(--color-text-on-strong); }
.underline { text-decoration: underline; }
.mt-1 { margin-top: .25rem; }
.mt-2 { margin-top: .5rem; }
.mt-3 { margin-top: .75rem; }
.mt-4 { margin-top: 1rem; }
.mt-6 { margin-top: 1.5rem; }
.mb-2 { margin-bottom: .5rem; }
.mb-3 { margin-bottom: .75rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-6 { margin-bottom: 1.5rem; }
.ml-2 { margin-left: .5rem; }
.ml-5 { margin-left: 1.25rem; }
.mx-2 { margin-left: .5rem; margin-right: .5rem; }
.pt-2 { padding-top: .5rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.py-3 { padding-top: .75rem; padding-bottom: .75rem; }
.p-4 { padding: 1rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }
.rounded-xl { border-radius: var(--radius-md); }
.rounded-2xl { border-radius: var(--radius-lg); }
.disabled\:opacity-50:disabled { opacity: .45; }

a.block.rounded-2xl {
  display: block;
  border: 1px solid var(--color-border);
  background: var(--color-surface-soft);
  color: inherit;
  text-decoration: none;
  box-shadow: var(--shadow-resting);
}

a.block.rounded-2xl:hover { border-color: var(--color-accent); background: var(--color-surface); box-shadow: var(--shadow-raised); transform: translateY(-1px); }

.bg-slate-900 {
  background:
    radial-gradient(circle at 95% 0, var(--color-highlight-glow), transparent 13rem),
    linear-gradient(140deg, var(--color-text), var(--color-text-subtle));
  color: var(--color-text-on-strong);
}

.bg-slate-900 p, .bg-slate-900 h1, .bg-slate-900 h2 { color: inherit; }
.bg-slate-900 .text-slate-400 { color: var(--color-highlight); }
.bg-slate-50 { background-color: transparent; }
.bg-white { background-color: var(--color-surface); }
.ring-1 { border: 1px solid var(--color-border); }
.ring-slate-200 { border-color: var(--color-border); }
.shadow-sm { box-shadow: var(--shadow-resting); }
.metric { margin-bottom: 0; color: var(--color-text); font-family: var(--font-heading); font-size: 2.4rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.tabular-nums { font-variant-numeric: tabular-nums; }
.table-scroll { overflow-x: auto; }
.data-table, table { width: 100%; border-collapse: collapse; }
.data-table { min-width: 52rem; }
.review-shot-controls { display: flex; align-items: end; gap: .8rem; }
.review-shot-controls label { color: var(--color-text-muted); font-size: .65rem; font-weight: 700; }
.review-shot-controls select { min-height: 2rem; margin: .2rem 0 0; padding: .2rem .4rem; font-size: .72rem; }
.review-shot-table { min-width: 84rem; }
.review-shot-table th, .review-shot-table td { text-align: left; vertical-align: middle; }
.review-shot-table th:nth-child(1), .review-shot-table th:nth-child(2), .review-shot-table th:nth-child(5), .review-shot-table th:nth-child(6), .review-shot-table th:nth-child(9) { width: 4.5rem; }
.review-shot-table th:nth-child(3), .review-shot-table th:nth-child(4) { width: 13rem; }
.review-shot-table th:nth-child(7) { width: 7rem; }.review-shot-table th:nth-child(8) { width: 18rem; }
.review-observation-chips { display: flex; flex-wrap: wrap; gap: .2rem; }
.review-observation-chips span { border-radius: 999px; background: var(--color-surface-muted); padding: .16rem .32rem; font-size: .58rem; line-height: 1.25; white-space: nowrap; }
.summary-hole-table { min-width: 76rem; table-layout: fixed; }
.summary-hole-table th, .summary-hole-table td { vertical-align: middle; }
.summary-hole-table th:nth-child(1) { width: 4rem; }.summary-hole-table th:nth-child(2) { width: 4rem; }.summary-hole-table th:nth-child(3) { width: 6rem; }.summary-hole-table th:nth-child(4) { width: 6rem; }.summary-hole-table th:nth-child(5) { width: 5rem; }.summary-hole-table th:nth-child(6) { width: 8rem; }.summary-hole-table th:nth-child(7) { width: 25rem; }.summary-hole-table th:nth-child(8) { width: 7rem; }
.data-table th, .data-table td, table th, table td { padding: .72rem .8rem; }
table thead { background: var(--color-surface-muted); color: var(--color-detail-text); }
table th { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
table tbody tr { border-top: 1px solid var(--color-border); }
table tbody tr:hover { background: var(--color-hover-row); }

.chart-row { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(10rem, 3fr) 5rem; align-items: center; gap: .75rem; }
.chart-row > strong { text-align: right; }
.chart-row small { display: block; overflow: hidden; color: var(--color-text-muted); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.chart-link { border-radius: var(--radius-sm); padding: .45rem; color: inherit; text-decoration: none; }
.chart-link:hover { background: var(--color-hover-card); }
.diverging-chart { position: relative; height: 1rem; border: 1px solid var(--color-border); border-radius: 99px; background: var(--color-surface-muted); overflow: hidden; }
.chart-axis { position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: var(--color-detail); }
.chart-bar { position: absolute; top: .16rem; bottom: .16rem; max-width: 50%; border-radius: 99px; }
.chart-bar.positive { left: 50%; background: linear-gradient(90deg, var(--color-chart-positive), var(--color-chart-positive-highlight)); }
.chart-bar.negative { right: 50%; background: linear-gradient(90deg, var(--color-chart-negative), var(--color-chart-detail)); }
.putting-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin: 1.25rem 0; }
.metric-chart { margin: 0; }.metric-chart-row { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr) 4.5rem; align-items: center; gap: .6rem; padding: .35rem 0; color: inherit; text-decoration: none; }.metric-chart-row:hover { color: var(--color-action-text); }.metric-chart-row > strong { text-align: right; font-size: .78rem; }.metric-track { position: relative; display: block; height: .65rem; border-radius: 99px; background: var(--color-surface-muted); overflow: hidden; }.metric-track i { position: absolute; top: 0; bottom: 0; display: block; border-radius: inherit; background: linear-gradient(90deg, var(--color-chart-positive), var(--color-chart-positive-highlight)); }.metric-track.is-diverging::before { content: ''; position: absolute; z-index: 1; left: 50%; top: 0; bottom: 0; width: 1px; background: var(--color-chart-neutral); }.metric-track.is-diverging i.negative { background: linear-gradient(90deg, var(--color-chart-negative), var(--color-chart-detail)); }
.unavailable-focus { border-style: dashed; background: var(--color-surface-muted); }
@media (max-width: 780px) { .putting-chart-grid { grid-template-columns: 1fr; }.metric-chart-row { grid-template-columns: 4rem minmax(0, 1fr) 4rem; } }

.swatch-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); gap: .75rem; }
.semantic-swatch { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); box-shadow: var(--shadow-resting); }
.semantic-swatch-colour { display: block; min-height: 5rem; border-bottom: 1px solid var(--color-border); }
.semantic-swatch > span:last-child { display: grid; gap: .1rem; padding: .6rem .7rem; color: var(--color-text); font-size: .72rem; }
.semantic-swatch code { color: var(--color-text-muted); font-size: .67rem; overflow-wrap: anywhere; }
.component-row { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.eyebrow { color: var(--color-action-text); font-size: .68rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.status-chip { display: inline-flex; align-items: center; border-radius: 99px; background: var(--color-surface-positive); padding: .3rem .65rem; color: var(--color-success-strong); font-size: .72rem; font-weight: 650; }
.status-chip::before { content: ""; width: .42rem; height: .42rem; margin-right: .4rem; border-radius: 50%; background: var(--color-success); }

.printable-observation-sheet { max-width: 78rem; }
.sheet-preview-header { margin-bottom: 1rem; }
.sheet-empty-state, .capture-sheet-page, .sheet-id-legend { border: 1px solid var(--color-border); background: var(--color-surface); box-shadow: var(--shadow-resting); }.sheet-empty-state { padding: 1.5rem; }
.capture-sheet-page { margin: 1rem 0; padding: .8rem; break-after: page; }.capture-sheet-title { display: flex; align-items: start; justify-content: space-between; border-bottom: 1px solid var(--color-border); padding-bottom: .4rem; }.capture-sheet-title h1 { margin: .05rem 0; font-size: 1.35rem; }.capture-sheet-title > p { margin: .15rem 0; color: var(--color-text-muted); font-size: .68rem; text-align: right; }.capture-sheet-rule { margin: .55rem 0; font-size: .72rem; }
.hole-capture-block { margin: .55rem 0 0; border: 1px solid var(--color-border); border-radius: 0; background: transparent; padding: 0; box-shadow: none; break-inside: avoid; }.hole-capture-block h2 { margin: 0; border-bottom: 1px solid var(--color-border); padding: .3rem .5rem; font-family: var(--font-body); font-size: .82rem; }.shot-type-grid { font-size: .6rem; }.shot-type-row { display: grid; grid-template-columns: 5.2rem repeat(3, minmax(0, 1fr)); margin: 0; border: 0; border-bottom: 1px solid var(--color-border); border-radius: 0; background: transparent; padding: 0; box-shadow: none; }.shot-type-row:last-child { border-bottom: 0; }.shot-type-row.shot-count-2 { grid-template-columns: 5.2rem repeat(2, minmax(0, 1fr)); }.shot-type-row h3 { display: flex; align-items: center; margin: 0; border-right: 1px solid var(--color-border); background: var(--color-hover-row); padding: .25rem; font-family: var(--font-body); font-size: .62rem; text-transform: uppercase; }.shot-mark-cell { position: relative; min-height: 2.7rem; border-right: 1px solid var(--color-border); padding: .25rem .25rem .18rem; }.shot-mark-cell:last-child { border-right: 0; }.shot-cell-number { position: absolute; top: .08rem; right: .15rem; color: var(--color-text-muted); font-size: .46rem; font-weight: 700; }
.shot-type-row:not(.shot-context-putt) .shot-mark-cell { min-height: 1.75rem; padding-top: .12rem; padding-bottom: .1rem; }.shot-type-row:not(.shot-context-putt) .mark-symbol { min-height: .72rem; }.shot-type-row:not(.shot-context-putt) .mark-symbol + .mark-symbol { margin-top: .06rem; padding-top: .06rem; }.shot-type-row:not(.shot-context-putt) .mini-mark-grid { width: 1.35rem; height: 1.35rem; }
.core-shot-facts { display: flex; align-items: center; gap: .18rem; min-height: .8rem; border-bottom: 1px dotted var(--color-border); font-size: .5rem; white-space: nowrap; }.core-shot-facts strong { font-size: .52rem; text-transform: uppercase; }.core-shot-facts span { display: inline-block; flex: 1; min-width: 1.8rem; height: .65rem; border-bottom: 1px solid var(--color-print-rule); }
.mark-symbol { display: flex; align-items: center; gap: .18rem; min-height: 1rem; line-height: 1.1; white-space: nowrap; }.mark-symbol + .mark-symbol { margin-top: .14rem; padding-top: .14rem; border-top: 1px dotted var(--color-border); }.mark-symbol.mark-pair-start, .mark-symbol.mark-pair-end { display: inline-flex; width: calc(50% - .18rem); vertical-align: middle; }.mark-symbol.mark-pair-start { padding-right: .25rem; }.mark-symbol.mark-pair-start + .mark-symbol.mark-pair-end { margin-top: 0; margin-left: .18rem; padding-top: 0; padding-left: .25rem; border-top: 0; border-left: 1px dotted var(--color-border); }.mark-label { min-width: 2.9rem; font-size: .54rem; font-weight: 700; text-transform: uppercase; }.mark-pair-start .mark-label, .mark-pair-end .mark-label { min-width: auto; }.write-line { display: inline-block; flex: 1; min-width: 2.4rem; height: .8rem; border-bottom: 1px solid var(--color-print-rule); }.short-line { flex: 0 0 2rem; }
.mini-mark-grid { display: grid; width: 1.65rem; height: 1.65rem; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); border: 1px solid var(--color-print-border-strong); }.mini-mark-grid i { border-right: 1px solid var(--color-print-border); border-bottom: 1px solid var(--color-print-border); }.mini-mark-grid i:nth-child(3n) { border-right: 0; }.mini-mark-grid i:nth-child(n+7) { border-bottom: 0; }
.choice-mark-row, .aim-mark-row { display: flex; flex-wrap: wrap; align-items: center; gap: .12rem; }.mark-box { display: inline-flex; min-height: .9rem; align-items: center; justify-content: center; border: 1px solid var(--color-print-control); padding: .06rem .16rem; font-size: .5rem; }.na-mark { margin-left: .08rem; color: var(--color-text-muted); font-size: .48rem; }.outside-mark { display: inline-flex; align-items: end; gap: .08rem; font-size: .48rem; }.outside-mark b { display: inline-block; width: 1rem; border-bottom: 1px solid var(--color-print-rule); }.sheet-id-legend code { color: var(--color-text-muted); font-size: .56rem; overflow-wrap: anywhere; }.capture-sheet-footer { margin-top: .4rem; color: var(--color-text-muted); font-size: .58rem; }
.sheet-id-legend { margin: 1rem 0; padding: 1rem; break-before: page; }.sheet-id-legend > section { display: inline-block; width: 48%; margin: .35rem .7% .35rem 0; vertical-align: top; }.sheet-id-legend h2, .sheet-id-legend h3 { margin: .15rem 0; }.sheet-id-legend p { font-size: .68rem; }.sheet-id-legend span { color: var(--color-text-muted); font-size: .62rem; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

@media print {
  @page { size: A4 landscape; margin: 6mm; }
  html:root {
    color-scheme: light;
    --color-canvas: var(--color-print-canvas);
    --color-surface: var(--color-print-canvas);
    --color-surface-muted: var(--color-print-canvas);
    --color-surface-positive: var(--color-print-canvas);
    --color-surface-danger: var(--color-print-canvas);
    --color-surface-attention: var(--color-print-canvas);
    --color-surface-penalty: var(--color-print-canvas);
    --color-surface-choice: var(--color-print-canvas);
    --color-text: var(--color-print-text);
    --color-text-subtle: var(--color-print-text);
    --color-text-muted: var(--color-print-text-muted);
    --color-text-on-strong: var(--color-print-canvas);
    --color-text-on-danger: var(--color-print-canvas);
    --color-action: var(--color-print-text);
    --color-action-hover: var(--color-print-text);
    --color-action-text: var(--color-print-text);
    --color-detail-text: var(--color-print-text);
    --color-danger: var(--color-print-text);
    --color-danger-text: var(--color-print-text);
    --color-selected: var(--color-print-text);
    --color-success-strong: var(--color-print-text);
    --color-chart-negative-text: var(--color-print-text);
    --color-border: var(--color-print-border);
    --color-border-strong: var(--color-print-border-strong);
  }
  :root, body { background: var(--color-print-canvas); }
  body::before, main > header::before { display: none; }
  main { max-width: none; padding: 0; }
  section { break-inside: avoid; border-color: var(--color-print-border); box-shadow: none; backdrop-filter: none; }
  .no-print { display: none !important; }
  .table-scroll { overflow: visible; }
  .data-table { min-width: 0; font-size: 9pt; }
  .global-menu-nav, .appearance-global-fallback, .sheet-preview-header, .mood-artwork, .appearance-actions { display: none !important; }
  .printable-observation-sheet { max-width: none; padding: 0; }
  .sheet-empty-state, .capture-sheet-page, .sheet-id-legend { border-color: var(--color-print-border-strong); box-shadow: none; }
  .capture-sheet-page { display: grid; height: 172mm; box-sizing: border-box; grid-template-rows: auto auto minmax(0, 1fr) minmax(0, 1fr) auto; gap: 1mm; margin: 0; border-radius: 0; padding: 0; break-inside: avoid-page; page-break-inside: avoid; }.capture-sheet-title { padding-bottom: .3rem; }.capture-sheet-title h1 { font-size: 16pt; }.capture-sheet-title > p { margin: 0; font-size: 7pt; }.capture-sheet-rule { margin: .12rem 0; font-size: 7.5pt; }.hole-capture-block { display: flex; min-height: 0; flex-direction: column; margin: 0; }.hole-capture-block h2 { padding: .2rem .4rem; font-size: 10pt; }.shot-type-grid { display: flex; min-height: 0; flex: 1; flex-direction: column; font-size: 7.5pt; }.shot-type-row { min-height: 0; flex: 0 0 9mm; }.shot-type-row.shot-context-putt { flex: 1 1 auto; }.shot-type-row h3 { padding: .18rem .28rem; font-size: 7.5pt; }.shot-mark-cell { display: flex; flex-wrap: wrap; align-content: center; }.shot-cell-number { font-size: 6.5pt; }.core-shot-facts { flex: 0 0 24%; border-bottom: 0; border-right: 1px dotted var(--color-border); padding-right: .2rem; }.shot-context-putt .core-shot-facts { flex-basis: 100%; margin-bottom: .08rem; border-right: 0; border-bottom: 1px dotted var(--color-border); padding-right: 0; }.core-shot-facts strong { font-size: 6.5pt; }.shot-context-putt .core-shot-facts strong { font-size: 8pt; }.shot-mark-cell > .mark-symbol:not(.mark-pair-start):not(.mark-pair-end) { flex: 0 0 100%; }.shot-mark-cell > .mark-pair-start, .shot-mark-cell > .mark-pair-end { flex: 0 0 calc(50% - .18rem); }.shot-type-row:not(.shot-context-putt) .shot-mark-cell > .mark-pair-start, .shot-type-row:not(.shot-context-putt) .shot-mark-cell > .mark-pair-end { flex-basis: calc(38% - .18rem); }.shot-type-row:not(.shot-context-putt) .shot-mark-cell { min-height: 0; }.shot-type-row.shot-context-putt .shot-mark-cell { min-height: 0; padding: .38rem .32rem; }.mark-symbol { min-height: 1rem; }.mark-symbol + .mark-symbol { margin-top: .08rem; padding-top: .08rem; }.mark-label { font-size: 6.5pt; }.shot-context-putt .mark-label { font-size: 8pt; }.mark-box { min-height: 1rem; padding: .05rem .18rem; font-size: 6pt; }.shot-context-putt .mark-box { min-height: 1.15rem; padding: .08rem .22rem; font-size: 7.2pt; }.shot-context-putt .outside-mark, .shot-context-putt .na-mark { font-size: 6.8pt; }.mini-mark-grid { width: 1.55rem; height: 1.55rem; }.shot-context-putt .mini-mark-grid { width: 2rem; height: 2rem; }.capture-sheet-footer { margin: 0; font-size: 5.5pt; }.sheet-id-legend { margin: 0; padding: 0; }
}

@media (max-width: 640px) {
  body::before { height: 4px; }
  main { padding: 1.75rem .8rem 2.5rem; }
  main > header { margin-bottom: 1.25rem; }
  section { border-radius: 1rem; padding: 1rem; }
  .flex { flex-wrap: wrap; }
  .chart-row { grid-template-columns: 6.5rem minmax(6rem, 1fr) 4.2rem; gap: .4rem; font-size: .78rem; }
  button, .button { min-height: 2.8rem; }
}

@media (min-width: 640px) {
  .sm\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* M11.4b1 Core Putting trend presentation. Trend state remains URL-only. */
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; clip-path: inset(50%) !important; }
.putting-mode-nav { display: inline-flex; align-items: center; gap: .55rem; margin: 0 0 1rem; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); padding: .35rem .7rem; }
.putting-mode-nav a { color: var(--color-text-subtle); font-size: .78rem; font-weight: 750; text-decoration: none; }
.putting-mode-nav a[aria-current="page"] { color: var(--color-action-text); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .25rem; }
.metric-chart-action-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .45rem; }
.metric-chart-action-row .compact-button { white-space: nowrap; }
.trend-control-grid { display: grid; grid-template-columns: repeat(5, minmax(10rem, 1fr)); gap: .7rem; margin-top: .75rem; }
.trend-control-grid small { display: block; margin-top: .25rem; color: var(--color-text-muted); font-size: .64rem; font-weight: 400; }
.trend-reporting-period { display: grid; grid-template-columns: repeat(3, minmax(9rem, 1fr)) minmax(16rem, 2fr); gap: .7rem; margin-top: .85rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: .75rem; }
.trend-reporting-period legend { padding: 0 .3rem; color: var(--color-action-text); font-size: .76rem; font-weight: 800; }
.trend-specific-rounds { grid-row: span 2; }
.trend-specific-rounds select { width: 100%; }
.trend-specific-rounds small { display: block; margin-top: .25rem; color: var(--color-text-muted); font-size: .64rem; font-weight: 400; }
.trend-preview-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.trend-preview-summary strong { overflow-wrap: anywhere; font-size: .95rem; }
.putting-trend-chart-scroll { overflow-x: auto; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); padding: .5rem; }
.putting-trend-chart-scroll:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.putting-trend-chart { display: block; max-width: none; }
.trend-grid-line { stroke: var(--color-border); stroke-width: 1.25; }
.trend-axis { stroke: var(--color-border-strong); stroke-width: 1.5; }
.trend-grid-label, .trend-point-label, .trend-gap-label, .trend-data-label { fill: var(--color-text-subtle); font-family: var(--font-body); font-size: 14px; font-weight: 750; }
.trend-grid-label { text-anchor: end; font-variant-numeric: tabular-nums; }
.trend-zero-label { font-weight: 850; }
.trend-point-label { text-anchor: start; font-size: 11px; font-weight: 650; }
.trend-gap-label { text-anchor: middle; font-size: 12px; }
.trend-data-label { text-anchor: middle; font-size: 12px; font-variant-numeric: tabular-nums; paint-order: stroke; stroke: var(--color-surface); stroke-width: 4px; stroke-linejoin: round; }
.trend-individual-label { font-weight: 800; }
.trend-rolling-label { fill: var(--color-action); font-weight: 900; }
.trend-rolling-line { fill: none; stroke: var(--color-action); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.trend-rolling-line.is-context { stroke-dasharray: 6 5; opacity: .35; }
.trend-individual-point { fill: var(--color-surface); stroke: var(--color-action); stroke-width: 3; }
.trend-rolling-point { fill: var(--color-action); stroke: var(--color-surface); stroke-width: 1.5; }
.trend-gap-mark { fill: none; stroke: var(--color-danger); stroke-width: 3; }
.trend-point-link.is-context { opacity: .38; }
.trend-point-link:hover, .trend-point-link:focus { opacity: 1; }
.trend-point-link:focus { outline: none; }
.trend-point-link:focus .trend-individual-point, .trend-point-link:focus .trend-rolling-point, .trend-point-link:focus .trend-gap-mark { stroke: var(--color-chart-detail); stroke-width: 5; }
.trend-chart-heading-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem; }
.trend-chart-heading-actions > span { color: var(--color-text-muted); font-size: .72rem; }
.trend-legend { display: flex; flex-wrap: wrap; gap: .6rem 1rem; margin-top: .55rem; color: var(--color-text-subtle); font-size: .7rem; }
.trend-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.trend-legend i { display: inline-block; }
.legend-circle { width: .7rem; height: .7rem; border: 2px solid var(--color-action); border-radius: 50%; background: var(--color-surface); }
.legend-line { width: 1.4rem; border-top: 3px solid var(--color-action); }
.legend-context { width: 1.4rem; border-top: 3px dashed var(--color-action); opacity: .4; }
.legend-gap { color: var(--color-danger-text); font-size: 1rem; font-style: normal; font-weight: 900; }
.trend-context-row { opacity: .62; }
.trend-point-detail { z-index: 35; }
.trend-point-detail .analytics-empty { border: 1px dashed var(--color-border-strong); border-radius: var(--radius-sm); padding: .8rem; }

@media (max-width: 900px) {
  .trend-control-grid, .trend-preview-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trend-reporting-period { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trend-specific-rounds { grid-row: auto; }
}

@media (max-width: 640px) {
  .metric-chart-action-row { grid-template-columns: 1fr; padding: .3rem 0 .55rem; border-bottom: 1px solid var(--color-border); }
  .metric-chart-action-row .compact-button { justify-self: start; }
  .trend-control-grid, .trend-reporting-period, .trend-preview-summary { grid-template-columns: 1fr; }
  .trend-accessible-table .data-table, .trend-point-detail .data-table { min-width: 58rem; }
  .trend-point-detail { inset: .5rem; width: auto; }
}

/* M11.4b1a Performance Drill Tree. Reporting and disclosure state is URL-only. */
.performance-page { max-width: 92rem; }
.performance-mode-nav, .performance-period-nav { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin: 0 0 .8rem; }
.performance-mode-nav a, .performance-period-nav a { border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); padding: .48rem .75rem; color: var(--color-text-subtle); font-size: .76rem; font-weight: 800; text-decoration: none; }
.performance-mode-nav a[aria-current="page"], .performance-period-nav a[aria-current="page"] { border-color: var(--color-action); background: var(--color-surface-positive); color: var(--color-action-text); text-decoration: underline; text-underline-offset: .2rem; }
.performance-period-nav > span { color: var(--color-text-muted); font-size: .72rem; font-weight: 750; }
.performance-population { margin-bottom: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); padding: .75rem; }
.performance-population > summary { cursor: pointer; color: var(--color-text-subtle); font-size: .78rem; font-weight: 800; }
.performance-population > p { margin-bottom: 0; color: var(--color-text-muted); font-size: .75rem; }
.performance-filter-grid { display: grid; grid-template-columns: 1.4fr repeat(4, minmax(9rem, 1fr)); gap: .65rem; align-items: end; margin-top: .75rem; }
.performance-filter-grid label { color: var(--color-text-subtle); font-size: .69rem; font-weight: 750; }
.performance-filter-grid input, .performance-filter-grid select { margin-top: .25rem; font-size: .72rem; }
.performance-filter-grid .filter-auto-update-note { grid-column: 1 / -1; }
.performance-period-summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1rem 0; border: 1px solid var(--color-accent); border-radius: var(--radius-md); background: linear-gradient(135deg, var(--color-surface), var(--color-surface-positive)); padding: 1rem; }
.performance-period-summary h2 { margin: .15rem 0 0; }
.performance-period-summary dl { display: grid; grid-template-columns: repeat(4, minmax(8rem, 1fr)); gap: .55rem; margin: 0; }
.performance-period-summary dl div, .performance-selected-detail dl div { display: grid; gap: .1rem; }
.performance-period-summary dt, .performance-selected-detail dt { color: var(--color-text-muted); font-size: .62rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.performance-period-summary dd, .performance-selected-detail dd { margin: 0; color: var(--color-text-subtle); font-size: .75rem; font-weight: 750; }
.performance-tree-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 21rem); gap: 1rem; align-items: start; }
.performance-tree-section, .performance-selected-detail, .performance-panel { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); padding: .85rem; }
.performance-tree-section { overflow: hidden; }
.performance-focus-path { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .65rem; margin: .65rem 0 .7rem; border-bottom: 1px solid var(--color-border); background: transparent; padding: 0 0 .55rem; }
.performance-focus-path-label { color: var(--color-action-text); font-size: .62rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.performance-focus-path ol { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.performance-focus-path li { display: inline-flex; align-items: center; color: var(--color-text-muted); font-size: .75rem; font-weight: 750; }
.performance-focus-path li + li::before { content: "›"; margin-right: .25rem; color: var(--color-accent); font-size: 1rem; font-weight: 900; }
.performance-focus-path li[aria-current="page"] { color: var(--color-action-text); font-weight: 900; }
.performance-focus-path p { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.performance-tree-table { min-width: 58rem; border-collapse: separate; border-spacing: 0; }
.performance-tree-table th, .performance-tree-table td { padding: .46rem .6rem; border-color: var(--color-border); line-height: 1.18; }
.performance-tree-table thead th { background: var(--color-surface-muted); color: var(--color-detail-text); font-size: .62rem; letter-spacing: .06em; }
.performance-tree-table .performance-primary-column { color: var(--color-action-text); background: var(--color-surface-positive); }
.performance-tree-table .performance-primary-cell { background: var(--color-success-faint); color: var(--color-action-text); font-weight: 850; }
.performance-tree-table .performance-primary-cell .performance-sg-value { font-size: .8rem; }
.performance-node-row { transition: opacity .18s ease, background-color .18s ease; }
.performance-node-row.is-background-branch { opacity: .68; }
.performance-node-row.is-background-branch:hover, .performance-node-row.is-background-branch:focus-within { opacity: 1; }
.performance-node-row.is-focus-path:not(.is-selected) { background: linear-gradient(90deg, var(--color-success-path), transparent 72%); }
.performance-node-row.is-selected { background: linear-gradient(90deg, var(--color-surface-positive), var(--color-surface-selection-fade)); }
.performance-node-row.is-selected > :first-child { box-shadow: inset 3px 0 0 var(--color-action); }
.performance-node-row.level-0 { --performance-indent: 0; --node-accent: var(--color-action); }
.performance-node-row.level-1 { --performance-indent: .4rem; --node-accent: var(--color-accent); }
.performance-node-row.level-2 { --performance-indent: 1.7rem; --node-accent: var(--color-detail); }
.performance-node-row.level-3 { --performance-indent: 3rem; --node-accent: var(--color-border-strong); }
.performance-node-label { display: flex; align-items: center; gap: .4rem; min-height: 1.42rem; padding-left: var(--performance-indent); }
.performance-node-label::before { flex: 0 0 3px; width: 3px; height: 1.25rem; border-radius: 999px; background: var(--node-accent); content: ""; }
.performance-node-row.level-0 .performance-node-label::before { height: 1.42rem; }
.performance-node-row.level-3 .performance-node-label::before { width: 4px; height: 4px; margin-inline: 0; border-radius: 50%; }
.performance-node-copy { display: grid; min-width: 0; }
.performance-node-name { color: var(--color-text-subtle); font-size: .73rem; font-weight: 850; letter-spacing: .025em; line-height: 1.1; text-decoration: none; }
.performance-node-name:hover, .performance-node-name:focus-visible { color: var(--color-action-text); text-decoration: underline; text-underline-offset: .2rem; }
.performance-node-row.level-0 .performance-node-name { color: var(--color-text); font-size: .78rem; }
.performance-node-row.level-3 .performance-node-name { font-size: .69rem; font-weight: 750; }
.performance-node-label small { color: var(--color-text-muted); font-size: .56rem; font-weight: 500; }
.performance-disclosure-form { flex: 0 0 auto; }
.performance-disclosure-form input { display: none; }
.performance-disclosure-form button { display: inline-grid; width: 1.38rem; height: 1.38rem; place-items: center; border: 1px solid var(--color-border-strong); border-radius: 50%; background: var(--color-surface); color: var(--color-action-text); font: inherit; font-size: .76rem; font-weight: 900; cursor: pointer; }
.performance-node-row.is-focus-path .performance-disclosure-form button { border-color: var(--color-accent); background: var(--color-surface-positive); }
.performance-node-row.is-selected .performance-disclosure-form button { border-color: var(--color-action); background: var(--color-action); color: var(--color-text-on-strong); }
.performance-disclosure-form button:hover, .performance-disclosure-form button:focus-visible { border-color: var(--color-action); outline: 3px solid var(--color-surface-attention); }
.performance-leaf-marker { width: .18rem; height: 1.38rem; color: transparent; overflow: hidden; }
.performance-sg-value { font-weight: 750; }
.performance-sg-value.status-gained { color: var(--color-action-text); }
.performance-sg-value.status-lost { color: var(--color-danger-text); }
.performance-status { display: inline-flex; border-radius: 999px; padding: .2rem .4rem; background: var(--color-surface-muted); color: var(--color-text-subtle); font-size: .62rem; font-weight: 850; }
.performance-status.status-gained { border: 1px solid var(--color-accent); background: var(--color-surface-positive); color: var(--color-action-text); }
.performance-status.status-lost { border: 1px solid var(--color-danger); background: var(--color-surface-danger); color: var(--color-danger-text); }
.performance-status.status-unavailable, .performance-status.status-no-shots { border: 1px dashed var(--color-border-strong); }
.performance-row-actions { display: flex; flex-wrap: wrap; gap: .2rem .5rem; }
.performance-row-actions a { color: var(--color-action-text); white-space: nowrap; font-size: .67rem; font-weight: 800; text-decoration-color: var(--color-border-strong); text-underline-offset: .17rem; }
.performance-selected-detail { position: sticky; top: 1rem; border-top: 3px solid var(--color-action); box-shadow: 0 .5rem 1.25rem color-mix(in srgb, var(--color-text) 8%, transparent); }
.performance-selected-detail h2 { margin: .2rem 0; font-size: 1.1rem; }
.performance-selected-detail dl { display: grid; gap: .55rem; margin: .8rem 0; }
.performance-selected-detail .performance-selected-primary { border-left: 3px solid var(--color-action); background: var(--color-surface-positive); padding: .45rem .55rem; }
.performance-selected-detail .performance-selected-primary dd { color: var(--color-action-text); font-size: 1rem; }
.performance-status-line { color: var(--color-text-subtle); font-size: .78rem; }
.performance-panel { margin: 1rem 0; }
.performance-trend-summary { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.performance-point-detail { border-color: var(--color-accent); background: var(--color-surface-positive); }

/* M11.4b1g full-width Performance decomposition and evidence workspace. */
.performance-decomposition, .performance-breakdown, .performance-diagnostic-workspace { margin: 1rem 0; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); padding: 1rem; }
.performance-root-summary, .performance-population-banner { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.performance-root-summary h2, .performance-population-banner h2 { margin: .15rem 0; }
.performance-root-summary dl, .performance-population-provenance { display: grid; grid-template-columns: repeat(3, minmax(8rem, 1fr)); gap: .5rem; margin: 0; }
.performance-root-summary dl div, .performance-population-provenance div { border-left: 3px solid var(--color-accent); background: var(--color-surface-muted); padding: .45rem .55rem; }
.performance-root-summary dt, .performance-population-provenance dt { color: var(--color-text-muted); font-size: .59rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.performance-root-summary dd, .performance-population-provenance dd { margin: .12rem 0 0; color: var(--color-text-subtle); font-size: .7rem; font-weight: 750; overflow-wrap: anywhere; }
.performance-macro-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; margin: 1rem 0; }
.performance-macro-card, .performance-breakdown-card { display: grid; gap: .45rem; min-width: 0; border: 1px solid var(--color-border-strong); border-top: 4px solid var(--color-accent); border-radius: var(--radius-sm); background: linear-gradient(145deg, var(--color-surface), var(--color-surface-muted)); padding: .8rem; color: var(--color-text-subtle); text-decoration: none; box-shadow: var(--shadow-resting); }
.performance-macro-card:hover, .performance-breakdown-card:hover { border-color: var(--color-action); box-shadow: var(--shadow-raised); }
.performance-macro-card:focus-visible, .performance-breakdown-card:focus-visible, .performance-rose-grid a:focus-visible, .performance-rose-macros a:focus-visible, .performance-evidence-tabs a:focus-visible, .performance-dimension-switch a:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
.performance-macro-card.is-selected, .performance-breakdown-card.is-selected { border-color: var(--color-action); border-top-color: var(--color-action); background: var(--color-surface-positive); box-shadow: inset 0 0 0 1px var(--color-action); }
.performance-macro-card.status-lost { border-top-color: var(--color-danger); }
.performance-macro-card.is-disabled, .performance-breakdown-card.is-disabled { border-style: dashed; box-shadow: none; opacity: .72; }
.performance-card-heading { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; }
.performance-card-heading strong { color: var(--color-text); font-family: var(--font-heading); font-size: 1rem; }
.performance-card-heading > span { color: var(--color-text-muted); font-size: .62rem; font-weight: 850; text-transform: uppercase; }
.performance-card-primary { color: var(--color-action-text); font-family: var(--font-heading); font-size: 1.35rem; font-weight: 850; }
.performance-card-primary small { color: var(--color-text-muted); font-family: var(--font-body); font-size: .58rem; text-transform: uppercase; }
.performance-zero-bar { position: relative; display: block; height: .55rem; overflow: hidden; border-radius: 999px; background: var(--color-surface); }
.performance-zero-axis { position: absolute; inset-block: 0; left: 50%; width: 1px; background: var(--color-text-subtle); }
.performance-zero-value { position: absolute; top: .1rem; height: .35rem; border-radius: 999px; }
.performance-zero-value.is-positive { left: 50%; background: var(--color-action); }
.performance-zero-value.is-negative { right: 50%; background: var(--color-danger); }
.performance-accessible-table { margin-top: .8rem; }
.performance-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0 0 .8rem; padding: 0; list-style: none; }
.performance-breadcrumbs li { color: var(--color-text-muted); font-size: .7rem; font-weight: 750; }
.performance-breadcrumbs li + li::before { content: "›"; margin-right: .35rem; color: var(--color-accent); }
.performance-definition-form { display: flex; flex-wrap: wrap; align-items: end; gap: .55rem .8rem; margin: .8rem 0; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface-muted); padding: .7rem; }
.performance-definition-form label { min-width: min(24rem, 100%); color: var(--color-text-subtle); font-size: .68rem; font-weight: 800; }
.performance-definition-form select { margin-top: .2rem; }
.performance-definition-form > span, .performance-definition-form > a { color: var(--color-text-muted); font-size: .65rem; }
.performance-dimension-switch, .performance-evidence-tabs, .performance-rose-macros { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: .8rem 0; }
.performance-dimension-switch span { color: var(--color-text-muted); font-size: .68rem; font-weight: 800; }
.performance-dimension-switch a, .performance-evidence-tabs a, .performance-rose-macros a { border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); padding: .4rem .65rem; color: var(--color-text-subtle); font-size: .67rem; font-weight: 800; text-decoration: none; }
.performance-dimension-switch a[aria-current="page"], .performance-evidence-tabs a[aria-current="page"] { border-color: var(--color-action); background: var(--color-surface-positive); color: var(--color-action-text); box-shadow: inset 0 0 0 1px var(--color-action); }
.performance-breakdown-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: .65rem; margin: .8rem 0; }
.performance-population-banner { border-left: 4px solid var(--color-action); background: var(--color-surface-positive); padding: .75rem; }
.performance-population-provenance { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: .75rem 0; }
.performance-evidence-tabs { border-bottom: 1px solid var(--color-border); padding-bottom: .65rem; }
.performance-rose-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; max-width: 44rem; margin: .8rem auto; }
.performance-rose-grid a { display: grid; min-height: 4.25rem; place-items: center; border: 1px solid var(--color-border-strong); border-radius: var(--radius-sm); background: linear-gradient(145deg, var(--color-surface), var(--color-surface-positive)); padding: .5rem; color: var(--color-text-subtle); text-align: center; text-decoration: none; }
.performance-rose-grid a:hover { border-color: var(--color-action); }
.performance-rose-grid span { color: var(--color-text-muted); font-size: .62rem; }
.performance-observation-field { margin-top: 1rem; border-top: 1px solid var(--color-border); padding-top: .8rem; }
.performance-observation-field h3 { margin: 0; }
.tee-population-summary { margin-top: .8rem; }
.tee-club-grid .performance-breakdown-card { min-height: 7.5rem; }
.tee-miss-grid { display: grid; grid-template-columns: repeat(3, minmax(7rem, 1fr)); gap: .45rem; max-width: 42rem; margin: 1rem auto; }
.tee-miss-cell { display: grid; min-height: 6.5rem; place-content: center; gap: .2rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: linear-gradient(145deg, var(--color-surface), var(--color-surface-muted)); padding: .55rem; color: var(--color-text-subtle); text-align: center; text-decoration: none; }
.tee-miss-cell strong { color: var(--color-action-text); font-family: var(--font-heading); font-size: 1.4rem; }
.tee-miss-cell small { color: var(--color-text-muted); font-size: .62rem; }
.tee-miss-cell.is-on-target { border-color: var(--color-accent); background: var(--color-surface-positive); }
.tee-miss-cell[href]:hover, .tee-miss-cell[href]:focus-visible { border-color: var(--color-action); box-shadow: var(--shadow-resting); transform: translateY(-1px); }
.tee-miss-cell[href]:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.performance-exact-population { margin: .8rem 0; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface-muted); padding: .65rem; }
.performance-exact-population > summary { cursor: pointer; color: var(--color-action-text); font-size: .7rem; font-weight: 850; }
.performance-exact-population[open] > summary { margin-bottom: .65rem; }
.performance-exact-drawer { margin-top: 1rem; border: 1px solid var(--color-accent); border-top: 4px solid var(--color-action); border-radius: var(--radius-md); background: linear-gradient(145deg, var(--color-surface), var(--color-surface-positive)); padding: .9rem; }
.tee-snapshot-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; margin: 1rem 0 0; }
.tee-snapshot-grid > div { min-width: 0; border-left: 3px solid var(--color-accent); border-radius: var(--radius-sm); background: var(--color-surface-muted); padding: .7rem; }
.tee-snapshot-grid > .tee-snapshot-primary { border-left-color: var(--color-action); background: var(--color-surface-positive); }
.tee-snapshot-grid dt { color: var(--color-text-muted); font-size: .62rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.tee-snapshot-grid dd { margin: .15rem 0; color: var(--color-text); font-family: var(--font-heading); font-size: 1.3rem; font-weight: 850; font-variant-numeric: tabular-nums; }
.tee-snapshot-grid small { color: var(--color-text-muted); font-size: .62rem; line-height: 1.35; }
.tee-component-coverage { display: flex; justify-content: space-between; gap: .8rem; margin-top: .8rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface-muted); padding: .65rem; color: var(--color-text-muted); font-size: .68rem; }
.tee-component-coverage strong { color: var(--color-text); }
.tee-component-headlines { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; margin: .8rem 0; }
.tee-component-headlines article { min-width: 0; border: 1px solid var(--color-border-strong); border-top: 4px solid var(--color-accent); border-radius: var(--radius-md); background: linear-gradient(145deg, var(--color-surface), var(--color-surface-muted)); padding: .8rem; }
.tee-component-headlines article:first-child { border-top-color: var(--color-action); background: linear-gradient(145deg, var(--color-surface), var(--color-surface-positive)); }
.tee-component-headlines h3 { margin: .25rem 0 .65rem; color: var(--color-action-text); font-family: var(--font-heading); font-size: 1.65rem; font-variant-numeric: tabular-nums; }
.tee-component-headlines dl { display: grid; gap: .35rem; margin: 0 0 .65rem; }
.tee-component-headlines dl div { display: flex; justify-content: space-between; gap: .5rem; border-top: 1px solid var(--color-border); padding-top: .35rem; }
.tee-component-headlines dt, .tee-component-headlines article > small { color: var(--color-text-muted); font-size: .62rem; line-height: 1.4; }
.tee-component-headlines dd { margin: 0; color: var(--color-text); font-size: .72rem; font-weight: 850; font-variant-numeric: tabular-nums; text-align: right; }
.tee-reconciliation-bridge { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); gap: .65rem; align-items: center; margin: 1rem 0; }
.tee-reconciliation-bridge > div { display: grid; min-height: 7rem; align-content: center; border: 1px solid var(--color-border-strong); border-top: 4px solid var(--color-accent); border-radius: var(--radius-sm); background: linear-gradient(145deg, var(--color-surface), var(--color-surface-muted)); padding: .8rem; text-align: center; }
.tee-reconciliation-bridge strong { color: var(--color-action-text); font-family: var(--font-heading); font-size: 1.45rem; font-variant-numeric: tabular-nums; }
.tee-reconciliation-bridge span { color: var(--color-text); font-size: .75rem; font-weight: 850; }
.tee-reconciliation-bridge small { margin-top: .3rem; color: var(--color-text-muted); font-size: .6rem; }
.tee-reconciliation-bridge > b { color: var(--color-text-muted); font-size: 1.35rem; }
.tee-exact-table { max-height: min(65vh, 46rem); overflow: scroll; overscroll-behavior: contain; border: 1px solid var(--color-border-strong); border-radius: var(--radius-sm); scrollbar-color: var(--color-action) var(--color-surface-muted); scrollbar-gutter: stable; scrollbar-width: auto; }
.tee-exact-table::-webkit-scrollbar { width: 14px; height: 14px; background: var(--color-surface-muted); }
.tee-exact-table::-webkit-scrollbar-thumb { border: 3px solid var(--color-surface-muted); border-radius: 999px; background: var(--color-action); }
.tee-exact-table::-webkit-scrollbar-corner { background: var(--color-surface-muted); }
.tee-exact-table .data-table { min-width: 190rem; }
.tee-exact-table .data-table thead th { position: sticky; z-index: 4; top: 0; background: var(--color-surface-muted); box-shadow: 0 1px 0 var(--color-border-strong); }
.tee-exact-table:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.tee-evidence-excluded-par-3-tee td:first-child { color: var(--color-text-muted); font-weight: 800; }
.tee-evidence-unavailable-benchmark td:first-child { color: var(--color-danger-text); font-weight: 800; }

@media (max-width: 1050px) {
  .performance-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .performance-period-summary { align-items: flex-start; flex-direction: column; }
  .performance-period-summary dl { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .performance-tree-layout { grid-template-columns: 1fr; }
  .performance-selected-detail { position: static; }
  .performance-trend-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .performance-macro-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tee-snapshot-grid, .tee-component-headlines { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tee-reconciliation-bridge { grid-template-columns: 1fr; }
  .tee-reconciliation-bridge > b { text-align: center; }
  .performance-root-summary, .performance-population-banner { flex-direction: column; }
  .performance-population-provenance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .performance-filter-grid, .performance-period-summary dl, .performance-trend-summary { grid-template-columns: 1fr; }
  .performance-tree-scroll { overflow: visible; }
  .performance-tree-table { min-width: 0; }
  .performance-tree-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .performance-tree-table, .performance-tree-table tbody, .performance-tree-table tr, .performance-tree-table th, .performance-tree-table td { display: block; width: 100%; }
  .performance-tree-table tr { margin-bottom: .65rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: .55rem; }
  .performance-tree-table th, .performance-tree-table td { border: 0; padding: .28rem 0; text-align: left; }
  .performance-tree-table td::before { content: attr(data-label) ": "; color: var(--color-text-muted); font-size: .64rem; font-weight: 800; text-transform: uppercase; }
  .performance-focus-path { grid-template-columns: 1fr; }
  .performance-focus-path p { grid-column: auto; }
  .performance-node-row.level-1 .performance-node-label { --performance-indent: 1.15rem; }
  .performance-node-row.level-2 .performance-node-label { --performance-indent: 2.3rem; }
  .performance-node-row.level-3 .performance-node-label { --performance-indent: 3.45rem; }
  .performance-row-actions { margin-top: .2rem; }
  .performance-macro-grid, .performance-breakdown-grid, .performance-root-summary dl, .performance-population-provenance, .performance-rose-grid { grid-template-columns: 1fr; }
  .tee-snapshot-grid, .tee-component-headlines { grid-template-columns: 1fr; }
  .tee-component-coverage { align-items: flex-start; flex-direction: column; }
  .tee-miss-grid { grid-template-columns: repeat(3, minmax(4.5rem, 1fr)); }
  .tee-miss-cell { min-height: 5.4rem; padding: .35rem; font-size: .68rem; }
  .performance-definition-form { display: grid; grid-template-columns: 1fr; }
  .performance-decomposition, .performance-breakdown, .performance-diagnostic-workspace { padding: .7rem; }
}

@media (prefers-reduced-motion: reduce) {
  .performance-macro-card, .performance-breakdown-card, .performance-zero-value { transition: none; }
}

/* M11.4b1b Putting Observation Evidence Review. */
.observation-evidence-page { max-width: 94rem; }
.observation-trust-note { display: grid; grid-template-columns: minmax(15rem, .7fr) minmax(28rem, 1.7fr); gap: 1rem; align-items: center; margin-bottom: 1rem; border: 1px solid var(--color-chart-detail); background: linear-gradient(120deg, var(--color-surface-attention), var(--color-surface)); }
.observation-trust-note h2, .observation-trust-note p { margin: .2rem 0; }
.observation-trust-note > p { color: var(--color-text-subtle); font-size: .78rem; line-height: 1.55; }
.observation-period-grid { display: grid; grid-template-columns: repeat(3, minmax(9rem, 1fr)) minmax(17rem, 2fr); gap: .7rem; align-items: start; }
.observation-period-grid label { color: var(--color-text-subtle); font-size: .7rem; font-weight: 750; }
.observation-period-grid input, .observation-period-grid select { margin-top: .25rem; }
.observation-specific-rounds select { width: 100%; }
.observation-specific-rounds small { display: block; margin-top: .25rem; color: var(--color-text-muted); font-size: .62rem; font-weight: 400; }
.observation-distance-filters { display: grid; grid-template-columns: minmax(12rem, 1fr) minmax(24rem, 2fr) minmax(11rem, .8fr); gap: .75rem; align-items: start; margin-top: .85rem; border-top: 1px solid var(--color-border); padding-top: .8rem; }
.observation-bucket-definition { border-left: 3px solid var(--color-accent); background: var(--color-surface-muted); padding: .55rem .7rem; }
.observation-bucket-definition span, .observation-bucket-definition strong, .observation-bucket-definition small { display: block; }
.observation-bucket-definition span { color: var(--color-text-subtle); font-size: .69rem; font-weight: 750; }
.observation-bucket-definition strong { margin-top: .15rem; color: var(--color-text); font-size: .78rem; }
.observation-distance-filters fieldset { min-width: 0; }
.observation-distance-filters legend { margin: 0 0 .2rem; border: 0; padding: 0; color: var(--color-text-subtle); font-size: .69rem; font-weight: 750; letter-spacing: 0; text-transform: none; }
.observation-bucket-options { display: flex; flex-wrap: wrap; gap: .25rem .5rem; }
.observation-bucket-options .check-label { min-height: 2.4rem; margin: 0; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); padding: .35rem .6rem; }
.observation-bucket-options .check-label:has(input:checked) { border-color: var(--color-action); background: var(--color-surface-positive); box-shadow: inset 0 0 0 1px var(--color-action); }
.observation-bucket-options input { width: 1rem; height: 1rem; min-height: auto; margin: 0; accent-color: var(--color-action); }
.observation-distance-filters small, .observation-filter-help { display: block; margin: .3rem 0 0; color: var(--color-text-muted); font-size: .62rem; font-weight: 400; }
.distance-input-with-unit { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; margin-top: .25rem; border: 1px solid var(--color-border-strong); border-radius: var(--radius-md); background: var(--color-surface); }
.distance-input-with-unit input { min-width: 0; margin: 0; border: 0; background: transparent; box-shadow: none; }
.distance-input-with-unit > span { padding: 0 .75rem; color: var(--color-text-muted); font-size: .72rem; font-weight: 800; }
.observation-summary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.observation-coverage-table { min-width: 66rem; }
.observation-catalogue-nav, .observation-round-nav { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0; }
.observation-catalogue-nav button, .observation-round-nav a { border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); padding: .48rem .7rem; color: var(--color-text-subtle); font-family: inherit; font-size: .69rem; font-weight: 800; line-height: normal; text-decoration: none; }
.observation-catalogue-nav button { width: auto; min-height: 0; margin: 0; cursor: pointer; appearance: none; }
.observation-catalogue-nav button:hover, .observation-catalogue-nav button:focus-visible { border-color: var(--color-action); outline: 3px solid var(--color-focus); outline-offset: 2px; }
.observation-catalogue-nav button[aria-pressed="true"], .observation-round-nav a[aria-current="page"] { border-color: var(--color-action); background: var(--color-surface-positive); color: var(--color-action-text); box-shadow: inset 0 0 0 1px var(--color-action); }
.observation-round-nav a span { margin-left: .25rem; color: var(--color-text-muted); font-variant-numeric: tabular-nums; }
.evidence-state { display: inline-flex; border: 1px solid var(--color-accent); border-radius: 999px; background: var(--color-surface-positive); padding: .35rem .65rem; color: var(--color-action-text); font-size: .68rem; font-weight: 850; text-transform: capitalize; }
.evidence-state-sparse, .evidence-state-empty { border-color: var(--color-chart-detail); background: var(--color-surface-attention); color: var(--color-detail-text); }
.observation-definition-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: .8rem 0; }
.observation-definition-grid div { border-left: 3px solid var(--color-accent); background: var(--color-surface-muted); padding: .55rem .7rem; }
.observation-definition-grid dt { color: var(--color-action-text); font-size: .61rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.observation-definition-grid dd { margin: .2rem 0 0; color: var(--color-text-subtle); font-size: .72rem; line-height: 1.4; }
.evidence-coverage { margin: 1rem 0; }
.evidence-coverage-heading, .visual-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.evidence-coverage-heading h3, .visual-heading h3 { margin: 0; }
.evidence-coverage-heading > span, .visual-heading > span { color: var(--color-text-muted); font-size: .66rem; font-weight: 750; }
.evidence-coverage-bar { display: flex; height: 1.15rem; margin-top: .5rem; overflow: hidden; border: 1px solid var(--color-border-strong); border-radius: 999px; background: var(--color-surface-muted); box-shadow: var(--shadow-inset); }
.coverage-segment { flex: var(--coverage-share) 1 0; min-width: 3px; border-right: 2px solid var(--color-surface); }
.coverage-segment:last-child { border-right: 0; }
.coverage-segment-recorded, .coverage-legend-recorded i { background: var(--color-action); }
.coverage-segment-not_recorded, .coverage-legend-not_recorded i { background: var(--color-border-strong); }
.coverage-segment-not_assessed, .coverage-legend-not_assessed i { background: var(--color-chart-detail); }
.coverage-segment-inapplicable, .coverage-legend-inapplicable i { background: repeating-linear-gradient(135deg, var(--color-surface-muted) 0 4px, var(--color-detail) 4px 6px); }
.coverage-segment-incomplete_pair, .coverage-legend-incomplete_pair i { background: var(--color-danger); }
.evidence-coverage-legend { display: flex; flex-wrap: wrap; gap: .45rem 1rem; margin-top: .55rem; }
.evidence-coverage-legend span { display: inline-flex; align-items: baseline; gap: .25rem; color: var(--color-text-subtle); font-size: .64rem; }
.evidence-coverage-legend i { width: .65rem; height: .65rem; border: 1px solid var(--color-border-strong); border-radius: 2px; align-self: center; }
.evidence-coverage-legend strong { color: var(--color-text); font-variant-numeric: tabular-nums; }
.evidence-coverage-legend small { color: var(--color-text-muted); }
.evidence-sparse-message { border-left: 3px solid var(--color-chart-detail); background: var(--color-surface-attention); padding: .55rem .7rem; color: var(--color-text-subtle); font-size: .74rem; }
.observation-visual { margin-top: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: linear-gradient(145deg, var(--color-surface), var(--color-surface-muted)); padding: 1rem; }
.observation-visual > p { margin: .35rem 0 .9rem; color: var(--color-text-muted); font-size: .72rem; }
.outcome-ring-controls { display: flex; flex-wrap: wrap; gap: .55rem; align-items: end; margin: .8rem 0; padding: .7rem .8rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface-muted); }
.outcome-ring-controls label { min-width: min(24rem, 100%); flex: 1; }
.outcome-ring-controls input { width: 100%; }
.outcome-ring-controls small { flex-basis: 100%; color: var(--color-text-muted); }
.ring-unit-toggle { display: inline-flex; gap: .35rem; align-items: center; }
.ring-unit-toggle > span { color: var(--color-text-subtle); font-size: .69rem; font-weight: 700; }
.ring-unit-toggle a[aria-current="page"] { border-color: var(--color-action); background: var(--color-surface-positive); }
.outcome-rose-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.outcome-rose-scroll .outcome-spiderweb-layout { min-width: 58rem; }
.overflow-cell { border-style: dashed; }
.visual-heading .eyebrow { margin: 0 0 .1rem; }
.visual-category { min-width: 0; border: 1px solid var(--color-border-strong); border-radius: var(--radius-sm); background: var(--color-surface); padding: .5rem; color: var(--color-text); text-align: center; text-decoration: none; box-shadow: var(--shadow-resting); }
.visual-category span, .visual-category strong, .visual-category small { display: block; }
.visual-category span { font-size: .63rem; font-weight: 750; line-height: 1.2; }
.visual-category strong { margin-top: .15rem; font-size: 1rem; font-variant-numeric: tabular-nums; }
.visual-category small { color: var(--color-text-subtle); font-size: .59rem; font-variant-numeric: tabular-nums; }
.visual-category:hover { border-color: var(--color-action); box-shadow: var(--shadow-raised); }
.visual-category:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
.visual-category.is-selected { border-color: var(--color-selected); box-shadow: 0 0 0 3px var(--color-selection-ring); }
.intensity-0 { background: var(--color-surface); }
.intensity-1 { background: linear-gradient(145deg, var(--color-surface), var(--color-surface-positive)); }
.intensity-2 { background: linear-gradient(145deg, var(--color-surface-positive), var(--color-chart-intensity-2-strong)); }
.intensity-3 { background: linear-gradient(145deg, var(--color-chart-intensity-3-start), var(--color-chart-intensity-3)); }
.intensity-4 { background: linear-gradient(145deg, var(--color-chart-intensity-4-start), var(--color-chart-intensity-4)); }
.outcome-spiderweb-layout { display: grid; grid-template-columns: minmax(38rem, 1fr) minmax(14rem, .4fr); gap: 1rem; align-items: center; max-width: 80rem; margin: .5rem auto 0; }
.outcome-spiderweb { display: block; width: 100%; max-width: 50rem; margin: 0 auto; overflow: visible; }
.spider-structure circle { fill: none; stroke: var(--color-border-strong); stroke-width: 1; }
.spider-structure line { stroke: var(--color-border); stroke-width: 1; }
.spider-cell path { fill: var(--color-surface); stroke: var(--color-border-strong); stroke-width: 1; transition: fill .15s ease, stroke-width .15s ease; }
.spider-cell.intensity-1 path { fill: var(--color-surface-positive); }
.spider-cell.intensity-2 path { fill: var(--color-chart-intensity-2); }
.spider-cell.intensity-3 path { fill: var(--color-chart-intensity-3); }
.spider-cell.intensity-4 path { fill: var(--color-chart-intensity-4-fill); }
.spider-cell:hover path, .spider-cell:focus-visible path { stroke: var(--color-action); stroke-width: 3; }
.spider-cell:focus-visible { outline: none; }
.spider-cell.is-macro-member path { stroke: var(--color-action); stroke-width: 2.2; }
.spider-cell.is-selected path { fill: var(--color-surface-selected); stroke: var(--color-selected); stroke-width: 4; }
.spider-count-mark { fill: var(--color-text-subtle); stroke: var(--color-surface); stroke-width: 1.5; pointer-events: none; }
.spider-count { fill: var(--color-surface); font-size: 9px; font-weight: 850; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.spider-zero-mark { fill: var(--color-border-strong); pointer-events: none; }
.spider-ring-labels text { fill: var(--color-text-muted); stroke: var(--color-surface); stroke-width: 3px; paint-order: stroke; font-size: 8px; font-weight: 800; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
.macro-rail-path { fill: none; stroke: var(--color-accent); stroke-width: var(--macro-stroke); stroke-linecap: round; pointer-events: stroke; transition: stroke .15s ease, stroke-width .15s ease; }
.macro-rail-outer .macro-rail-path { stroke: var(--color-action); }
.macro-summary-link.is-zero .macro-rail-path { stroke-dasharray: 2 6; stroke-linecap: butt; }
.macro-badge-background { fill: var(--color-surface); stroke: var(--color-border-strong); stroke-width: 1.5; transition: fill .15s ease, stroke-width .15s ease; }
.macro-badge-text { fill: var(--color-action); font-size: 10px; font-weight: 900; letter-spacing: .07em; pointer-events: none; }
.macro-badge-value { fill: var(--color-text); font-family: var(--font-heading); font-size: 15px; letter-spacing: 0; }
.macro-badge-note { fill: var(--color-text-muted); font-size: 7px; font-weight: 750; letter-spacing: 0; }
.macro-summary-link.is-largest .macro-badge-background { fill: var(--color-surface-positive); stroke: var(--color-action); stroke-width: 3; }
.macro-summary-link.is-largest .macro-badge-note { fill: var(--color-action); font-weight: 900; }
.macro-summary-link:hover .macro-rail-path, .macro-summary-link:focus-visible .macro-rail-path { stroke: var(--color-chart-detail); }
.macro-summary-link:hover .macro-badge-background, .macro-summary-link:focus-visible .macro-badge-background { stroke: var(--color-action); stroke-width: 3; }
.macro-summary-link:focus-visible, .macro-exact-sector-row:focus-visible { outline: none; }
.macro-summary-link.is-selected .macro-rail-path { stroke: var(--color-selected); }
.macro-summary-link.is-selected .macro-badge-background { fill: var(--color-surface-selected); stroke: var(--color-selected); stroke-width: 4; }
.macro-exact-sector-row rect { fill: var(--color-surface); stroke: var(--color-border-strong); stroke-width: 1.5; }
.macro-exact-sector-row.intensity-1 rect { fill: var(--color-surface-positive); }
.macro-exact-sector-row.intensity-2 rect { fill: var(--color-chart-intensity-2); }
.macro-exact-sector-row.intensity-3 rect { fill: var(--color-chart-intensity-3); }
.macro-exact-sector-row.intensity-4 rect { fill: var(--color-chart-intensity-4-soft); }
.macro-exact-sector-row text { fill: var(--color-text); font-size: 9px; font-weight: 850; pointer-events: none; }
.macro-exact-sector-row tspan + tspan { fill: var(--color-text-muted); font-size: 8px; }
.macro-exact-sector-row:hover rect, .macro-exact-sector-row:focus-visible rect { stroke: var(--color-action); stroke-width: 3; }
.macro-exact-sector-row.is-macro-member rect { stroke: var(--color-action); stroke-width: 3; }
.macro-exact-sector-row.is-selected rect { fill: var(--color-surface-selected); stroke: var(--color-selected); stroke-width: 4; }
.spider-direction-labels text { fill: var(--color-text); font-size: 12px; font-weight: 850; }
.spider-direction-labels tspan + tspan { fill: var(--color-text-muted); font-size: 10px; font-weight: 750; }
.spider-direction-labels a:hover text, .spider-direction-labels a:focus-visible text { fill: var(--color-action); text-decoration: underline; }
.spider-direction-labels a:focus-visible, .spider-center-segment:focus-visible { outline: none; }
.spider-direction-labels a.is-selected text { fill: var(--color-selected); text-decoration: underline; }
.spider-direction-labels a.is-macro-member text { fill: var(--color-action); text-decoration: underline; text-decoration-thickness: 2px; }
.spider-center-segment circle { fill: var(--color-surface); stroke: var(--color-border-strong); stroke-width: 2; transition: fill .15s ease, stroke-width .15s ease; }
.spider-center-segment.intensity-1 circle { fill: var(--color-surface-positive); }
.spider-center-segment.intensity-2 circle { fill: var(--color-chart-intensity-2); }
.spider-center-segment.intensity-3 circle { fill: var(--color-chart-intensity-3); }
.spider-center-segment.intensity-4 circle { fill: var(--color-chart-intensity-4-soft); }
.spider-center-segment:hover circle, .spider-center-segment:focus-visible circle { stroke: var(--color-action); stroke-width: 4; }
.spider-center-segment.is-selected circle { fill: var(--color-surface-selected); stroke: var(--color-selected); stroke-width: 4; }
.spider-center-segment text { fill: var(--color-text); font-size: 10px; font-weight: 800; pointer-events: none; }
.spider-center-segment .spider-center-count { font-size: 16px; }
.spider-center-segment .spider-holed-count { fill: var(--color-text-muted); font-size: 8px; }
.on-target-leave-inset { min-width: 0; border-left: 3px solid var(--color-accent); background: var(--color-surface); padding: .8rem; }
.on-target-leave-inset h4, .on-target-leave-inset p { margin: .15rem 0; }
.on-target-leave-inset > div > span, .on-target-leave-inset > p { color: var(--color-text-muted); font-size: .62rem; }
.holing-speed-companion { display: grid; gap: .12rem; margin-bottom: .8rem; border: 1px solid var(--color-chart-detail); border-top: 3px solid var(--color-chart-detail); border-radius: var(--radius-sm); background: var(--color-surface-attention); padding: .6rem; }
.holing-speed-companion span { color: var(--color-detail-text) !important; font-size: .59rem !important; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.holing-speed-companion strong { color: var(--color-text); font-family: var(--font-heading); font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.holing-speed-companion small { color: var(--color-text-muted); font-size: .56rem; }
.outcome-macro-note { margin: .5rem 0 !important; border-left: 3px solid var(--color-accent); background: var(--color-surface-muted); padding: .5rem .65rem; line-height: 1.45; }
.outcome-macro-accessible-table { margin-top: .65rem; }
.outcome-macro-accessible-table .data-table { min-width: 44rem; }
.outcome-macro-accessible-table tr.is-selected { outline: 2px solid var(--color-selected); outline-offset: -2px; }
.outcome-macro-accessible-table th small { display: block; color: var(--color-action-text); font-size: .5rem; }
.miss-leave-ribbon { display: grid; gap: .28rem; margin-top: .6rem; }
.on-target-leave-cell { display: grid; grid-template-columns: 1fr auto; gap: .4rem; align-items: center; min-width: 0; min-height: 2rem; border: 1px solid var(--color-border-strong); border-radius: .3rem; background: var(--color-surface-muted); padding: .3rem .45rem; color: var(--color-text-subtle); text-decoration: none; }
.on-target-leave-cell span { font-size: .6rem; font-weight: 800; }
.on-target-leave-cell strong { color: var(--color-text); font-size: .68rem; font-variant-numeric: tabular-nums; }
.on-target-leave-cell:hover, .on-target-leave-cell:focus-visible, .selected-leave-band:hover, .selected-leave-band:focus-visible, .lateral-matrix-cell:hover, .lateral-matrix-cell:focus-visible, .evidence-pattern:hover, .evidence-pattern:focus-visible { border-color: var(--color-action); outline: 3px solid var(--color-focus); outline-offset: 2px; }
.on-target-leave-cell.is-selected, .selected-leave-band.is-selected, .lateral-matrix-cell.is-selected, .evidence-pattern.is-selected { border-color: var(--color-selected); background: var(--color-surface-selected); box-shadow: inset 0 0 0 2px var(--color-selected); }
.leave-ribbon-key { display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem .7rem; color: var(--color-text-muted); font-size: .62rem; }
.leave-ribbon-key span { white-space: nowrap; }
.spider-segment-coverage { display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem .7rem; margin-top: .5rem; }
.spider-segment-coverage span { border-radius: 999px; background: var(--color-surface-muted); padding: .25rem .45rem; color: var(--color-text-muted); font-size: .58rem; }
.spider-segment-coverage strong { color: var(--color-text-subtle); }
.miss-diagnosis-panel { margin-top: 1rem; border: 1px solid var(--color-border-strong); border-top: 4px solid var(--color-action); border-radius: var(--radius-md); background: linear-gradient(145deg, var(--color-surface), var(--color-surface-muted)); padding: 1rem; }
.diagnosis-heading, .diagnosis-block-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.diagnosis-heading h3, .diagnosis-block-heading h4, .non-lateral-state h4 { margin: 0; font-family: var(--font-heading); }
.diagnosis-heading p, .diagnosis-block-heading p { margin: .12rem 0; }
.diagnosis-heading > div > p:last-child, .diagnosis-block > p { color: var(--color-text-muted); font-size: .72rem; }
.diagnosis-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; }
.diagnosis-actions a, .diagnosis-context a { color: var(--color-action-text); font-size: .66rem; font-weight: 800; }
.diagnosis-context { display: flex; flex-wrap: wrap; gap: .35rem .8rem; align-items: baseline; margin: .8rem 0; border-left: 3px solid var(--color-chart-detail); background: var(--color-surface-attention); padding: .55rem .7rem; font-size: .68rem; }
.diagnosis-context span { color: var(--color-text-muted); }
.diagnosis-summary-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .45rem; margin: .8rem 0; }
.diagnosis-summary-grid div, .lateral-coverage-grid div { border: 1px solid var(--color-border); border-radius: .45rem; background: var(--color-surface); padding: .5rem; }
.diagnosis-summary-grid dt, .lateral-coverage-grid dt { color: var(--color-text-muted); font-size: .55rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.diagnosis-summary-grid dd, .lateral-coverage-grid dd { margin: .15rem 0 0; color: var(--color-text); font-size: .82rem; font-weight: 800; }
.diagnosis-summary-grid a { color: inherit; }
.diagnosis-block { margin-top: 1rem; border-top: 1px solid var(--color-border); padding-top: 1rem; }
.diagnosis-block-heading > span { color: var(--color-text-muted); font-size: .62rem; font-weight: 750; }
.selected-leave-bands { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .35rem; margin: .75rem 0; }
.selected-leave-band { display: grid; gap: .12rem; min-width: 0; border: 1px solid var(--color-border-strong); border-radius: .45rem; background: var(--color-surface); padding: .55rem .35rem; color: var(--color-text); text-align: center; text-decoration: none; }
.selected-leave-band span { font-size: .62rem; font-weight: 800; }
.selected-leave-band strong { font-size: 1rem; font-variant-numeric: tabular-nums; }
.selected-leave-band small { color: var(--color-text-muted); font-size: .52rem; }
.leave-evidence-table, .lateral-evidence-table { min-width: 46rem; }
.leave-evidence-table tr.is-selected { outline: 2px solid var(--color-selected); outline-offset: -2px; }
.lateral-coverage-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .35rem; margin: .65rem 0; }
.lateral-matrix { display: grid; grid-template-columns: minmax(8rem, 1.1fr) repeat(3, minmax(7rem, 1fr)); gap: .3rem; margin: .75rem 0; }
.lateral-matrix-cell { display: grid; place-items: center; min-height: 5rem; border: 1px solid var(--color-border-strong); border-radius: .45rem; background: var(--color-surface); color: var(--color-text); text-align: center; text-decoration: none; }
.lateral-matrix-cell strong { font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.lateral-matrix-cell small, .lateral-matrix-cell span { color: var(--color-text-muted); font-size: .55rem; }
.lateral-matrix-cell.has-selected-contribution { border-style: double; border-width: 3px; border-color: var(--color-action); }
.evidence-pattern-list { display: grid; gap: .4rem; margin-top: .65rem; }
.evidence-pattern { display: grid; grid-template-columns: minmax(16rem, 1fr) auto; gap: .2rem .8rem; border: 1px solid var(--color-border); border-left: 4px solid var(--color-accent); border-radius: .45rem; background: var(--color-surface); padding: .6rem; color: var(--color-text); text-decoration: none; }
.evidence-pattern span { font-size: .72rem; }
.evidence-pattern strong { font-size: .68rem; font-variant-numeric: tabular-nums; }
.evidence-pattern small { grid-column: 1 / -1; color: var(--color-text-muted); font-size: .52rem; }
.non-lateral-state { border: 1px dashed var(--color-border-strong); border-radius: .5rem; background: var(--color-surface); padding: .8rem; }
.exact-leave-explanation { border-left: 3px solid var(--color-accent); background: var(--color-surface-positive); padding: .65rem .75rem; color: var(--color-text-subtle); font-size: .72rem; line-height: 1.5; }
.putter-face-wrap { max-width: 46rem; margin: 1rem auto 0; text-align: center; }
.putter-face { position: relative; display: grid; grid-template: repeat(3, minmax(4.8rem, 1fr)) / repeat(3, 1fr); gap: .35rem; border: .45rem solid var(--color-text-subtle); border-bottom-width: .8rem; border-radius: 2.2rem 2.2rem .65rem .65rem; background: var(--color-border-strong); padding: .4rem; box-shadow: inset 0 0 0 2px var(--color-surface), var(--shadow-raised); }
.putter-cell { position: relative; grid-row: var(--visual-row); grid-column: var(--visual-column); display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 4.8rem; overflow: hidden; }
.strike-mark { position: absolute; width: .8rem; height: .8rem; border: 2px solid var(--color-danger); border-radius: 50%; opacity: .7; }
.putter-cell > span:not(.strike-mark), .putter-cell > strong, .putter-cell > small { position: relative; z-index: 1; text-shadow: 0 1px var(--color-surface); }
.putter-row-label { display: block; margin: .25rem; color: var(--color-text-muted); font-size: .61rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.putter-column-labels { display: grid; grid-template-columns: repeat(3, 1fr); gap: .35rem; margin: .35rem .8rem 0; color: var(--color-text-muted); font-size: .61rem; font-weight: 800; }
.aim-direction-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-bottom: 1.1rem; }
.aim-largest-pattern { margin: -.35rem 0 .65rem !important; border-left: 3px solid var(--color-border-strong); background: var(--color-surface-muted); padding: .45rem .6rem; color: var(--color-text-subtle) !important; }
.aim-pattern-key { display: flex; flex-wrap: wrap; gap: .4rem .8rem; margin-bottom: .5rem; color: var(--color-text-subtle); font-size: .61rem; font-weight: 750; }
.aim-pattern-key span { display: inline-flex; align-items: center; gap: .3rem; }
.aim-pattern-key span::before { content: ''; display: inline-block; width: .8rem; height: .8rem; border: 1px solid var(--color-border-strong); border-radius: 2px; background: var(--color-surface); }
.aim-pattern-key .pattern-agreement::before { border: 2px solid var(--color-action); }
.aim-pattern-key .pattern-planned-left::before { border-left: 4px solid var(--color-chart-detail); }
.aim-pattern-key .pattern-planned-right::before { border-right: 4px solid var(--color-danger); }
.aim-heatmap-scroll { max-width: 100%; overflow-x: auto; padding: .2rem .2rem .45rem; }
.aim-heatmap-scroll:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 2px; }
.aim-heatmap { display: grid; grid-template-columns: minmax(7.5rem, 1.3fr) repeat(7, minmax(5.2rem, 1fr)); gap: .28rem; min-width: 48rem; }
.aim-matrix-corner, .aim-column-label, .aim-row-label { display: flex; align-items: center; justify-content: center; min-height: 2.8rem; color: var(--color-text-subtle); font-size: .59rem; font-weight: 800; line-height: 1.15; text-align: center; }
.aim-matrix-corner { flex-wrap: wrap; gap: .15rem; justify-content: flex-start; }
.aim-matrix-corner small { flex-basis: 100%; color: var(--color-text-muted); font-size: .52rem; }
.aim-row-label { justify-content: flex-start; padding-right: .35rem; text-align: left; }
.aim-transition-cell { position: relative; display: grid; place-items: center; align-content: center; min-height: 3.65rem; border: 1px solid var(--color-border-strong); border-radius: .35rem; color: var(--color-text); text-align: center; text-decoration: none; }
.aim-transition-cell strong, .aim-transition-cell small { display: block; font-variant-numeric: tabular-nums; }
.aim-transition-cell strong { font-size: .86rem; }
.aim-transition-cell small { color: var(--color-text-subtle); font-size: .55rem; }
.aim-transition-cell.pattern-agreement { border: 2px solid var(--color-action); }
.aim-transition-cell.pattern-planned-left { border-left: 4px solid var(--color-chart-detail); }
.aim-transition-cell.pattern-planned-right { border-right: 4px solid var(--color-danger); }
.aim-transition-cell.is-zero { background: var(--color-surface); color: var(--color-text-muted); opacity: .58; }
.aim-transition-cell:hover, .aim-transition-cell:focus-visible { z-index: 1; border-color: var(--color-action); outline: 3px solid var(--color-focus); outline-offset: 1px; opacity: 1; }
.aim-transition-cell.is-pattern-selected { z-index: 1; outline: 3px solid var(--color-action); outline-offset: 1px; opacity: 1; }
.aim-transition-cell.is-selected { z-index: 2; border-color: var(--color-selected); background: var(--color-surface-selected); outline: 3px solid var(--color-selected); outline-offset: 1px; opacity: 1; }
.aim-marginals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: .8rem; }
.aim-marginals section { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); padding: .6rem; }
.aim-marginals h4 { margin: 0 0 .4rem; font-size: .76rem; }
.aim-marginal-row { display: grid; grid-template-columns: minmax(5.5rem, .8fr) minmax(4rem, 1fr) auto; gap: .4rem; align-items: center; min-height: 1.45rem; color: var(--color-text-subtle); font-size: .56rem; }
.aim-marginal-row i { height: .38rem; overflow: hidden; border-radius: 999px; background: var(--color-surface-muted); }
.aim-marginal-row i::before { content: ''; display: block; width: calc(var(--marginal-share) * 100%); height: 100%; border-radius: inherit; background: var(--color-accent); }
.aim-marginal-row strong { font-variant-numeric: tabular-nums; white-space: nowrap; }
.aim-heatmap-accessible-table { margin-top: .7rem; }
.aim-heatmap-accessible-table .data-table { min-width: 66rem; }
.aim-heatmap-accessible-table td { text-align: center; font-variant-numeric: tabular-nums; }
.aim-heatmap-accessible-table td.is-selected { outline: 2px solid var(--color-selected); outline-offset: -2px; background: var(--color-surface-selected); }
.visual-empty, .visual-suppressed { border: 1px dashed var(--color-border-strong); border-radius: var(--radius-sm); background: var(--color-surface); padding: .8rem; color: var(--color-text-muted); font-size: .7rem; }
.start-line-corridor { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: .35rem; max-width: 48rem; min-height: 18rem; margin: 1rem auto 0; padding: 2.6rem 1rem 2.8rem; overflow: hidden; border-radius: 50% 50% var(--radius-md) var(--radius-md); background: repeating-linear-gradient(90deg, var(--color-accent-grid) 0 1px, transparent 1px 33.333%), linear-gradient(var(--color-surface-positive), var(--color-surface)); }
.start-line-corridor::before { content: ""; position: absolute; top: 2.1rem; bottom: 2.2rem; left: 50%; border-left: 2px dashed var(--color-action); }
.corridor-lane { z-index: 1; display: flex; flex-direction: column; justify-content: flex-end; margin-top: calc(var(--visual-column, 1) * .35rem); padding-bottom: 1rem; clip-path: polygon(42% 0, 58% 0, 100% 100%, 0 100%); }
.corridor-hole { position: absolute; z-index: 2; top: 1.15rem; left: calc(50% - .45rem); width: .9rem; height: .9rem; border: 3px solid var(--color-text-subtle); border-radius: 50%; background: var(--color-surface); }
.corridor-ball { position: absolute; z-index: 2; bottom: .8rem; left: calc(50% - .55rem); width: 1.1rem; height: 1.1rem; border: 2px solid var(--color-text-subtle); border-radius: 50%; background: var(--color-surface); box-shadow: inset -.18rem -.18rem .2rem var(--color-border); }
.cross-matrix-scroll { overflow-x: auto; padding: .2rem; }
.cross-matrix { display: grid; grid-template-columns: minmax(9rem, 1.4fr) repeat(var(--matrix-columns), minmax(4.4rem, 1fr)); gap: .25rem; min-width: 48rem; }
.matrix-column-label, .matrix-row-label { display: flex; align-items: center; justify-content: center; min-height: 2.6rem; color: var(--color-text-subtle); font-size: .58rem; font-weight: 750; line-height: 1.2; text-align: center; }
.matrix-row-label { justify-content: flex-start; }
.matrix-cell { display: flex; flex-direction: column; justify-content: center; min-height: 3.25rem; }
.visual-fallback { display: flex; flex-wrap: wrap; gap: .35rem .6rem; align-items: center; margin-top: .8rem; border-left: 3px solid var(--color-chart-detail); background: var(--color-surface-attention); padding: .65rem; color: var(--color-text-subtle); font-size: .64rem; }
.visual-fallback strong { color: var(--color-text); }
.visual-fallback p { width: 100%; margin: 0; }
.visual-fallback a { color: var(--color-action-text); font-weight: 750; }
.visual-selection { margin: .8rem 0 0; border: 1px solid var(--color-danger); border-radius: var(--radius-sm); background: var(--color-surface-danger); padding: .55rem .7rem; color: var(--color-text-subtle); font-size: .67rem; }
.observation-breakdown, .observation-round-trend { margin-top: 1.15rem; padding-top: .9rem; border-top: 1px solid var(--color-border); }
.observation-breakdown h3, .observation-round-trend h3 { margin: 0; font-size: 1rem; }
.observation-breakdown > p, .observation-round-trend > p { color: var(--color-text-muted); font-size: .72rem; }
.observation-group-detail { z-index: 34; }
.observation-shot-table { min-width: 88rem; }
.observation-shot-table td { vertical-align: top; font-size: .66rem; }
.coverage-not_recorded, .coverage-inapplicable { color: var(--color-text-muted); font-style: italic; }
.coverage-not_assessed { color: var(--color-detail-text); font-weight: 750; }
.observation-exact-putt { border-top: 4px solid var(--color-action); }
.observation-exact-layout { display: grid; grid-template-columns: minmax(14rem, .7fr) minmax(25rem, 1.5fr); gap: 1rem; align-items: start; }
.observation-canonical-facts { display: grid; gap: .45rem; margin: 0; }
.observation-canonical-facts div { border-bottom: 1px solid var(--color-border); padding: .35rem 0; }
.observation-canonical-facts dt { color: var(--color-text-muted); font-size: .6rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.observation-canonical-facts dd { margin: .12rem 0 0; color: var(--color-text); font-size: .82rem; font-weight: 800; }
.observation-snapshot-list { display: grid; gap: .45rem; }
.observation-snapshot { border: 1px solid var(--color-border); border-left: 4px solid var(--color-accent); border-radius: var(--radius-sm); background: var(--color-surface); padding: .55rem .7rem; }
.observation-snapshot.coverage-not_recorded, .observation-snapshot.coverage-inapplicable { border-left-color: var(--color-border-strong); }
.observation-snapshot.coverage-not_assessed { border-left-color: var(--color-chart-detail); }
.observation-snapshot > div { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; }
.observation-snapshot h3 { margin: 0; font-size: .78rem; }
.observation-snapshot span { color: var(--color-text-muted); font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.observation-snapshot strong { display: block; margin-top: .2rem; color: var(--color-text); font-size: .82rem; }
.observation-snapshot small { display: block; margin-top: .18rem; color: var(--color-text-muted); font-size: .58rem; overflow-wrap: anywhere; }
.observation-provenance { margin-top: .8rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface-muted); padding: .65rem; color: var(--color-text-subtle); font-size: .7rem; }
.round-small-multiples { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin: .8rem 0; }
.round-mini { border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); padding: .65rem; }
.round-mini header { display: flex; justify-content: space-between; gap: .6rem; align-items: start; }
.round-mini header strong, .round-mini header span { display: block; }
.round-mini header strong { color: var(--color-text); font-size: .72rem; }
.round-mini header span, .round-mini header a { color: var(--color-text-muted); font-size: .59rem; }
.round-mini-bars { display: flex; align-items: end; gap: .25rem; height: 5.4rem; margin-top: .45rem; border-bottom: 1px solid var(--color-border-strong); }
.round-mini-bars > span { display: grid; grid-template-rows: 1fr auto auto; flex: 1; height: 100%; min-width: 0; text-align: center; }
.round-mini-bars i { align-self: end; width: 100%; min-height: .3rem; height: calc(var(--round-share) * 3.8rem); border: 1px solid var(--color-border-strong); border-radius: .25rem .25rem 0 0; }
.round-mini-bars small { overflow: hidden; color: var(--color-text-muted); font-size: .5rem; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.round-mini-bars strong { font-size: .63rem; }
.round-mini-empty { display: grid; place-items: center; height: 5.4rem; margin: .45rem 0 0; border: 1px dashed var(--color-border); color: var(--color-text-muted); font-size: .61rem; }
.round-mini-rolling { display: grid; grid-template-columns: auto 1fr auto; gap: .4rem; align-items: center; margin-top: .5rem; color: var(--color-text-muted); font-size: .55rem; }
.round-mini-rolling > div { display: flex; height: .45rem; overflow: hidden; border-radius: 99px; background: var(--color-surface-muted); }
.round-mini-rolling > div i { flex: var(--round-share) 1 0; background: var(--color-accent); border-right: 1px solid var(--color-surface); }

@media (max-width: 1000px) {
  .observation-period-grid, .observation-distance-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .observation-distance-filters fieldset { grid-column: 1 / -1; grid-row: 2; }
  .observation-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .outcome-spiderweb-layout { grid-template-columns: 1fr; max-width: 50rem; }
  .on-target-leave-inset { border-top: 3px solid var(--color-accent); border-left: 0; }
  .on-target-leave-bands { grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .on-target-leave-cell { grid-template-columns: 1fr; text-align: center; }
  .diagnosis-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lateral-coverage-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .observation-trust-note, .observation-definition-grid, .observation-exact-layout, .observation-period-grid, .observation-distance-filters, .observation-summary-grid, .round-small-multiples { grid-template-columns: 1fr; }
  .observation-distance-filters fieldset { grid-column: auto; grid-row: auto; }
  .observation-catalogue-nav, .observation-round-nav { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .35rem; }
  .observation-catalogue-nav button, .observation-round-nav a { flex: 0 0 auto; }
  .evidence-coverage-heading, .visual-heading { align-items: start; flex-direction: column; gap: .25rem; }
  .outcome-spiderweb-layout { gap: .35rem; }
  .outcome-ring-controls { align-items: stretch; }
  .outcome-ring-controls .compact-button, .outcome-ring-controls > a { text-align: center; }
  .outcome-spiderweb { width: 100%; }
  .macro-badge-text { font-size: 9px; }
  .macro-badge-value { font-size: 13px; }
  .macro-badge-note { font-size: 6.5px; }
  .macro-exact-sector-row text { font-size: 8px; }
  .spider-ring-labels text { font-size: 7px; }
  .spider-direction-labels text { font-size: 10px; }
  .spider-direction-labels tspan + tspan { font-size: 8px; }
  .on-target-leave-bands { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .on-target-leave-cell { min-height: 2.4rem; }
  .diagnosis-heading, .diagnosis-block-heading { display: block; }
  .diagnosis-actions { justify-content: flex-start; margin-top: .4rem; }
  .diagnosis-summary-grid, .lateral-coverage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .selected-leave-bands { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lateral-matrix { grid-template-columns: minmax(5.5rem, .8fr) repeat(3, minmax(4.8rem, 1fr)); overflow-x: auto; }
  .evidence-pattern { grid-template-columns: 1fr; }
  .evidence-pattern small { grid-column: auto; }
  .putter-face { grid-template-rows: repeat(3, minmax(4.2rem, 1fr)); border-width: .3rem; padding: .25rem; }
  .putter-cell { min-height: 4.2rem; padding: .25rem; }
  .aim-direction-summary { grid-template-columns: 1fr; }
  .aim-marginals { grid-template-columns: 1fr; }
  .start-line-corridor { min-height: 15rem; padding-inline: .35rem; }
  .corridor-lane { padding-inline: .2rem; }
  .evidence-coverage-legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  .visual-category, .aim-transition-cell, .leave-ribbon-cell, .selected-leave-band, .lateral-matrix-cell, .evidence-pattern, .spider-cell path, .spider-center-segment circle, .macro-rail-path, .macro-badge-background { scroll-behavior: auto; transition: none; }
}

@media (forced-colors: active) {
  input:focus-visible, select:focus-visible, button:focus-visible, a:focus-visible,
  summary:focus-visible, [tabindex]:focus-visible { outline: 3px solid Highlight; outline-offset: 3px; box-shadow: none; }
  .mood-card.is-applied, .mood-card.is-preview,
  .appearance-choice:has(input:checked), .mood-state-marker { border-color: Highlight; }
  .mood-card.is-applied.is-preview, .appearance-choice:has(input:checked) { border-style: double; }
  .visual-category, .aim-transition-cell, .coverage-segment, .evidence-coverage-legend i, .leave-ribbon-cell, .selected-leave-band, .lateral-matrix-cell, .evidence-pattern { forced-color-adjust: auto; border: 1px solid CanvasText; }
  .spider-cell path, .spider-structure circle, .spider-structure line, .spider-center-segment circle, .macro-badge-background, .macro-exact-sector-row rect { fill: Canvas; stroke: CanvasText; }
  .macro-rail-path { stroke: CanvasText; }
  .visual-category.is-selected, .spider-cell.is-selected path, .spider-center-segment.is-selected circle, .macro-summary-link.is-selected .macro-badge-background, .macro-exact-sector-row.is-selected rect { outline: 3px double Highlight; }
  .has-selected-contribution { outline: 3px double Highlight; }
}

/* UX1.4: preserve working space on short desktop viewports before shrinking controls or type. */
@media screen and (max-height: 700px) and (min-width: 641px) {
  html[data-density] {
    --density-page-block-start: 1.35rem;
    --density-page-block-end: 1.75rem;
    --density-section-gap: .65rem;
    --density-header-gap: .8rem;
  }

  .global-menu-nav + main { padding-top: 3.25rem; }
  main > header::before { margin-bottom: .4rem; }
  .home-page { padding-top: 2.25rem; }
  .home-menu { margin-top: 1.1rem; }
  .home-action { min-height: 7rem; }
  .putting-filter-form { position: static; }

  .is-active-capture.round-grid-page { padding-right: .75rem; padding-bottom: .5rem; padding-left: .75rem; }
  .is-active-capture .round-grid-header { min-height: 0; margin-bottom: .3rem; }
  .is-active-capture .round-grid-header h1 { font-size: 1.65rem; }
  .is-active-capture .round-grid-header .capture-status { max-width: 38rem; margin-top: .15rem; font-size: .64rem; line-height: 1.25; }
  .is-active-capture .capture-header-actions { gap: .4rem; }
  .is-active-capture .selected-course-summary { margin-bottom: .3rem; padding: .35rem .55rem; }
  .is-active-capture .course-context-panel { display: none; }
  .is-active-capture .selected-course-summary .course-summary-main { min-height: 2.25rem; flex-wrap: nowrap; align-items: center; }
  .is-active-capture .selected-course-summary .eyebrow { display: none; }
  .is-active-capture .selected-course-summary h2 { font-family: var(--font-body); font-size: .8rem; }
  .is-active-capture .course-context-panel .capture-status,
  .is-active-capture .round-details-panel .capture-status,
  .is-active-capture .round-conditions-panel .capture-status,
  .is-active-capture .round-conditions-panel .override-note { display: none; }
  .is-active-capture .course-summary-metrics { flex-wrap: nowrap; gap: .25rem; }
  .is-active-capture .summary-chip { padding: .2rem .38rem; font-size: .56rem; white-space: nowrap; }
  .is-active-capture .grid-command-bar {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr) max-content max-content;
    gap: .4rem;
    margin-bottom: .3rem;
    padding: .4rem .55rem;
  }
  .is-active-capture .grid-command-bar > div:first-child { align-self: center; }
  .is-active-capture .grid-command-bar > div:first-child .eyebrow { display: none; }
  .is-active-capture .active-hole-card-facts { display: none; }
  .is-active-capture .grid-lie-keys { min-width: 0; flex-wrap: nowrap; }
  .is-active-capture .grid-lie-keys .lie-chip { min-width: 44px; flex: 1 1 0; justify-content: center; padding-inline: .4rem; }
  .is-active-capture .keyboard-capture-hint { margin: 0 0 .3rem; font-size: .64rem; line-height: 1.25; }
  .is-active-capture .round-grid-scroll { min-height: 9rem; }
}

/* M11.4b2: finite, local Putting dashboard presentation. */
.dashboard-heading { margin-bottom: 0; }
.dashboard-plan-state, .dashboard-bucket-context { color: var(--color-text-subtle); }
.bucket-result-row.is-context-faded { opacity: .45; }
.bucket-result-row.is-active-context { outline: 2px solid var(--color-accent); outline-offset: -2px; }
.dashboard-card-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.dashboard-card-heading h2 { margin-bottom: .2rem; }
.dashboard-card-states { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .35rem; }
.configuration-state, .readiness-state { display: inline-flex; align-items: center; min-height: 1.8rem; padding: .15rem .55rem; border: 1px solid var(--color-border-strong); border-radius: 999px; color: var(--color-text-subtle); font-size: .68rem; font-weight: 800; white-space: nowrap; }
.readiness-ready { border-color: var(--color-success); color: var(--color-success); }
.readiness-filtered-insufficient, .readiness-collecting { border-color: var(--color-highlight); }
.dashboard-card.is-unavailable { border-style: dashed; }
.dashboard-prerequisite { padding: .7rem; border-left: 3px solid var(--color-highlight); background: var(--color-surface-muted); }
.dashboard-card-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin: 1rem 0; }
.dashboard-card-summary div { padding: .65rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-canvas); }
.dashboard-card-summary dt { color: var(--color-text-muted); font-size: .68rem; }
.dashboard-card-summary dd { margin: .2rem 0 0; font-weight: 800; }
.dashboard-readiness-detail { color: var(--color-text-muted); font-size: .74rem; }
.dashboard-direct-controls { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin: .75rem 0; }
.dashboard-direct-controls a, .spider-value-toggle a { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: .35rem .65rem; color: var(--color-text-subtle); font-size: .72rem; font-weight: 800; text-decoration: none; }
.dashboard-direct-controls a[aria-current="true"], .spider-value-toggle a.is-active { background: var(--color-action); color: var(--color-text-on-strong); }
.compact-dashboard-table { min-width: 38rem; }
.compact-dashboard-table .is-context-faded { opacity: .45; }
.dashboard-spider-scroll { max-width: 38rem; margin-inline: auto; overflow: auto; }
.dashboard-spider { width: 100%; min-width: 30rem; }
.dashboard-spider-cell { fill: color-mix(in srgb, var(--color-accent) 18%, var(--color-surface)); stroke: var(--color-border-strong); stroke-width: 1; }
.dashboard-spider a:hover .dashboard-spider-cell, .dashboard-spider a:focus .dashboard-spider-cell { fill: color-mix(in srgb, var(--color-accent) 42%, var(--color-surface)); stroke-width: 3; }
.dashboard-spider text { fill: var(--color-text); font-size: 8px; pointer-events: none; }
.dashboard-spider-center { fill: var(--color-surface); stroke: var(--color-accent); stroke-width: 2; }
.dashboard-card-editor li { grid-template-columns: auto minmax(10rem, 1fr) auto minmax(7rem, auto) auto auto; }
.dashboard-card-editor li small { display: block; margin-top: .2rem; color: var(--color-text-muted); }
.dashboard-card-editor button { min-width: 44px; min-height: 44px; }
.dashboard-card-editor input[type="checkbox"] { width: 1.25rem; height: 1.25rem; }
.dashboard-order { display: inline-grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--color-surface-muted); font-weight: 800; }
.drawer-actions { display: flex; flex-wrap: wrap; gap: .5rem; }

@media (max-width: 900px) {
  .dashboard-card-heading { display: block; }
  .dashboard-card-states { justify-content: flex-start; margin-top: .5rem; }
  .dashboard-card-summary { grid-template-columns: 1fr; }
  .dashboard-card-editor li { grid-template-columns: auto minmax(0, 1fr) auto auto; }
  .dashboard-card-editor li label { grid-column: span 2; }
}

@media (prefers-reduced-motion: reduce) {
  .bucket-result-row, .dashboard-spider-cell { transition: none; }
}

@media (forced-colors: active) {
  .bucket-result-row.is-active-context { outline-color: Highlight; }
  .configuration-state, .readiness-state, .dashboard-spider-cell, .dashboard-spider-center { border-color: CanvasText; color: CanvasText; forced-color-adjust: auto; }
  .dashboard-direct-controls a[aria-current="true"], .spider-value-toggle a.is-active { outline: 3px double Highlight; }
}

/* Keep designation labels inside the scorecard stub and offer a generous hit target. */
.course-scorecard .scorecard-designation-row th:first-child {
  white-space: normal;
  overflow-wrap: break-word;
  line-height: 1.4;
  padding: .55rem .45rem;
}
#course-editor .driving-checkbox-target {
  display: grid;
  place-items: center;
  min-height: 44px;
  margin: 0;
  cursor: pointer;
}
#course-editor .scorecard-designation-row input[type="checkbox"] {
  appearance: auto;
  width: 1.2rem;
  height: 1.2rem;
  min-height: 0;
  margin: 0;
  padding: 0;
  accent-color: var(--color-action);
  cursor: pointer;
}
#course-editor .scorecard-designation-row input[type="checkbox"]:disabled {
  cursor: not-allowed;
  opacity: .4;
}
.driving-designation-help { font-size: .85rem; line-height: 1.5; }
