/**
 * Scorecard Studio
 * Web Foundation
 * Version: 0.2.0-dev
 */

:root {
  color-scheme: dark;
  --bg: #10131a;
  --panel: #171b24;
  --panel-2: #202633;
  --panel-3: #2a3141;
  --text: #f5f7fb;
  --muted: #a9b2c3;
  --muted-2: #7f8ba0;
  --line: rgba(255, 255, 255, .10);
  --accent: #7cc7ff;
  --accent-contrast: #07121d;
  --good: #69d391;
  --warn: #ffd166;
  --danger: #ff7a7a;
  --success-text: #8ce99a;
  --warning-text: #ffd43b;
  --danger-text: #ffa8a8;
  --selection-text: #ffe6a3;
  --surface-subtle: rgba(255, 255, 255, .025);
  --surface-soft: rgba(255, 255, 255, .04);
  --surface-inset: rgba(0, 0, 0, .13);
  --surface-deep: rgba(0, 0, 0, .22);
  --surface-hover: rgba(255, 255, 255, .08);
  --dialog-chrome: #1b2230;
  --shadow: 0 18px 45px rgba(0, 0, 0, .30);
  --radius: 18px;
  --app-header-height: 68px;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0;
  font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif;
  background: radial-gradient(circle at top left, #1d3147 0, var(--bg) 42%);
  color: var(--text);
}

.skip-link {
  position: fixed;
  z-index: 10000;
  top: 10px;
  left: 10px;
  padding: 10px 14px;
  border-radius: 9px;
  background: var(--accent);
  color: var(--accent-contrast);
  font-weight: 800;
  opacity: 0;
  pointer-events: none;
}

.skip-link:focus,
.skip-link:focus-visible {
  opacity: 1;
  pointer-events: auto;
}

button { font: inherit; }

.app-shell {
  min-height: 100vh;
  display: block;
}

.app-header {
  position: sticky;
  z-index: 100;
  top: 0;
  display: grid;
  grid-template-columns: minmax(205px, auto) minmax(360px, 1fr) minmax(150px, auto);
  align-items: center;
  gap: 18px;
  min-height: 68px;
  padding: 10px 24px;
  background: rgba(13, 16, 23, .92);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}

.brand-block {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.brand-mark {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  font-weight: 800;
  letter-spacing: -1px;
  background: linear-gradient(145deg, var(--accent), #b8e6ff);
  color: #0a1724;
  box-shadow: 0 10px 24px rgba(124, 199, 255, .25);
}

.brand-block h1 {
  margin: 0;
  font-size: 17px;
  line-height: 1.1;
  white-space: nowrap;
}

.brand-block p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 11px;
  white-space: nowrap;
}

.nav-list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 0;
}

.nav-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 0;
  border-radius: 10px;
  color: var(--muted);
  background: transparent;
  padding: 9px 12px;
  text-align: center;
  cursor: pointer;
  white-space: nowrap;
}

.nav-item .nav-icon {
  width: 18px;
  text-align: center;
}

.nav-item.active {
  background: rgba(124, 199, 255, .15);
  color: var(--text);
  box-shadow: inset 0 -3px 0 var(--accent);
}

.nav-item:hover:not(.active) { background: var(--surface-hover); color: var(--text); }

.app-header-status {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  color: var(--muted);
  font-size: 11px;
  white-space: nowrap;
}

.status-dot {
  width: 9px;
  height: 9px;
  border-radius: 99px;
  background: var(--good);
  box-shadow: 0 0 0 5px rgba(105, 211, 145, .14);
}

.status-dot.loading {
  background: var(--warn);
  box-shadow: 0 0 0 5px rgba(255, 209, 102, .14);
}

.status-dot.error {
  background: var(--danger);
  box-shadow: 0 0 0 5px rgba(255, 122, 122, .14);
}

.main-panel {
  min-width: 0;
  padding: 26px 30px 30px;
}

.topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  margin-bottom: 24px;
}

.eyebrow,
.section-label {
  margin: 0 0 8px;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 12px;
  font-weight: 700;
}

.topbar h2 {
  margin: 0;
  font-size: 36px;
  letter-spacing: -.04em;
}

.topbar-actions {
  display: flex;
  gap: 10px;
}

.secondary-button {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 11px 15px;
  cursor: pointer;
  font-weight: 700;
  color: var(--text);
  background: var(--panel-2);
}

.secondary-button:hover:not(:disabled) { background: var(--panel-3); }
.secondary-button:disabled { opacity: .55; cursor: not-allowed; }

.card {
  background: linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .035));
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 20px;
  box-shadow: var(--shadow);
}

.card h3 { margin: 0 0 8px; font-size: 20px; }
.card p { color: var(--muted); line-height: 1.5; }

.hero-card {
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: 24px;
  align-items: stretch;
  margin-bottom: 18px;
}

.hero-copy h3 {
  margin: 0 0 10px;
  font-size: 29px;
  letter-spacing: -.03em;
}

.hero-copy p:last-child { max-width: 760px; margin-bottom: 0; }

.foundation-status {
  display: grid;
  gap: 10px;
  align-content: center;
}

.foundation-status div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 14px;
  border-radius: 13px;
  background: rgba(0, 0, 0, .18);
  border: 1px solid var(--line);
}

.foundation-status span { color: var(--muted); text-align: right; }

.games-card { min-height: 320px; }

.card-header-row {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  margin-bottom: 18px;
}

.subtle { margin: 0; color: var(--muted-2) !important; font-size: 14px; }

.pill {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 6px 11px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.pill.neutral {
  color: var(--muted);
  background: rgba(255, 255, 255, .06);
  border: 1px solid var(--line);
}

.message-panel {
  padding: 18px;
  border-radius: 14px;
  color: var(--muted);
  background: rgba(0, 0, 0, .17);
  border: 1px solid var(--line);
}

.message-panel.error {
  color: #ffd0d0;
  background: rgba(255, 122, 122, .08);
  border-color: rgba(255, 122, 122, .25);
}

.games-list {
  display: grid;
  gap: 10px;
}

.game-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 15px 16px;
  border-radius: 14px;
  background: rgba(0, 0, 0, .18);
  border: 1px solid var(--line);
}

.matchup {
  font-size: 16px;
  font-weight: 750;
}

.game-meta {
  margin-top: 5px;
  color: var(--muted);
  font-size: 13px;
}

.game-time {
  color: var(--accent);
  font-weight: 700;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .app-header { grid-template-columns: minmax(190px, auto) minmax(0, 1fr) auto; padding-inline: 18px; }
  .nav-item { padding-inline: 9px; }
  .hero-card { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .app-header { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 14px; padding: 9px 14px 8px; }
  .nav-list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); width: 100%; }
  .nav-item { width: 100%; padding: 8px 5px; font-size: 12px; }
  .app-header-status { justify-self: end; }
}

@media (max-width: 620px) {
  .main-panel { padding: 20px 14px; }
  .topbar { align-items: flex-start; }
  .topbar h2 { font-size: 30px; }
  .game-row { grid-template-columns: 1fr; gap: 8px; }
  .game-time { white-space: normal; }
}

@media (max-width: 430px) {
  .app-header-status span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .nav-item { flex-direction: column; gap: 2px; font-size: 10px; }
  .nav-item .nav-icon { width: 15px; }
}

/* Build 002: browser-storage proof UI */
.storage-card {
  margin-bottom: 18px;
}

.settings-proof-form {
  display: grid;
  gap: 9px;
}

.settings-proof-form label {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.settings-proof-row {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.settings-proof-row select {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-2);
  color: var(--text);
  font: inherit;
}

.settings-proof-row select:focus {
  outline: 2px solid rgba(124, 199, 255, .45);
  outline-offset: 2px;
}

.primary-button {
  min-height: 44px;
  border: 1px solid rgba(124, 199, 255, .45);
  border-radius: 12px;
  padding: 11px 15px;
  cursor: pointer;
  font-weight: 800;
  color: #081522;
  background: var(--accent);
}

.primary-button:hover:not(:disabled) {
  filter: brightness(1.06);
}

.primary-button:disabled,
.settings-proof-row select:disabled {
  opacity: .55;
  cursor: not-allowed;
}

.storage-message {
  min-height: 21px;
  margin: 0;
  color: var(--muted) !important;
  font-size: 13px;
}

.pill.ready {
  color: #c9f7d8;
  background: rgba(105, 211, 145, .10);
  border: 1px solid rgba(105, 211, 145, .28);
}

.pill.error {
  color: #ffd0d0;
  background: rgba(255, 122, 122, .08);
  border: 1px solid rgba(255, 122, 122, .25);
}

@media (max-width: 620px) {
  .settings-proof-row {
    grid-template-columns: 1fr;
  }
}

/* Build 003: favorite-team pregame shell */
.favorite-card {
  margin-bottom: 18px;
}

.compact-header {
  margin-bottom: 12px;
}

.favorite-form {
  display: grid;
  gap: 8px;
}

.favorite-form label {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.favorite-row {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.favorite-row select {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-2);
  color: var(--text);
  font: inherit;
}

.favorite-row select:focus {
  outline: 2px solid rgba(124, 199, 255, .45);
  outline-offset: 2px;
}

.today-card {
  min-height: 320px;
}

.pill.warning {
  color: #ffe5a6;
  background: rgba(255, 194, 77, .10);
  border: 1px solid rgba(255, 194, 77, .30);
}

.game-choice-list {
  display: grid;
  gap: 8px;
  margin-bottom: 16px;
}

.game-choice-button {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--text);
  background: rgba(0, 0, 0, .15);
  cursor: pointer;
  text-align: left;
}

.game-choice-button span {
  color: var(--muted);
}

.game-choice-button:hover,
.game-choice-button.active {
  border-color: rgba(124, 199, 255, .45);
  background: rgba(124, 199, 255, .08);
}

.selected-game-heading {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  margin: 2px 0 16px;
}

.selected-game-heading h3 {
  margin-bottom: 4px;
  font-size: 25px;
}

.selected-game-heading p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.pregame-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.kpi {
  display: grid;
  gap: 5px;
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(0, 0, 0, .17);
}

.kpi .label {
  color: var(--muted-2);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.kpi .value {
  color: var(--text);
  font-size: 14px;
  font-weight: 700;
}

.detail-panel {
  margin-top: 10px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(0, 0, 0, .13);
  overflow: hidden;
}

.detail-panel summary {
  padding: 13px 15px;
  cursor: pointer;
  font-weight: 800;
  user-select: none;
}

.detail-panel[open] summary {
  border-bottom: 1px solid var(--line);
}

.team-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  padding: 15px;
}

.team-detail-grid > div + div {
  border-left: 1px solid var(--line);
  padding-left: 18px;
}

.team-detail-grid h4 {
  margin: 0 0 12px;
  font-size: 15px;
}

.subsection-label {
  margin: 0 0 7px;
  color: var(--muted-2);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.subsection-label.spaced {
  margin-top: 15px;
}

.detail-row {
  min-height: 28px;
  padding: 5px 0;
  border-bottom: 1px solid rgba(255, 255, 255, .055);
  color: var(--text);
  font-size: 13px;
}

.empty-note.compact {
  padding: 5px 0;
  color: var(--muted-2);
  font-size: 13px;
  font-style: italic;
}

@media (max-width: 760px) {
  .pregame-kpis,
  .team-detail-grid {
    grid-template-columns: 1fr;
  }

  .team-detail-grid > div + div {
    border-left: 0;
    border-top: 1px solid var(--line);
    padding-left: 0;
    padding-top: 16px;
  }
}

@media (max-width: 620px) {
  .favorite-row {
    grid-template-columns: 1fr;
  }

  .game-choice-button {
    display: grid;
    gap: 5px;
  }
}


/* Build 004: PDF upload, rendering, and IndexedDB persistence */
.pdf-card {
  margin-bottom: 18px;
}

.pdf-card .subtle {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.pdf-upload-row {
  display: grid;
  grid-template-columns: auto minmax(220px, 1fr) auto;
  gap: 10px;
  align-items: center;
  margin-bottom: 12px;
}

.pdf-upload-row input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.file-button {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border: 1px solid rgba(124, 199, 255, .35);
  border-radius: 12px;
  background: rgba(124, 199, 255, .12);
  color: var(--text);
  font-weight: 800;
  cursor: pointer;
}

.file-button:hover {
  background: rgba(124, 199, 255, .18);
}

.pdf-file-summary {
  min-width: 0;
  color: var(--muted);
  font-size: 13px;
  overflow-wrap: anywhere;
}

.pdf-viewer {
  margin-top: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(0, 0, 0, .18);
  overflow: hidden;
}

.pdf-toolbar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
}

.pdf-toolbar strong {
  min-width: 100px;
  text-align: center;
  font-size: 13px;
}

.pdf-canvas-wrap {
  display: flex;
  justify-content: center;
  padding: 16px;
  overflow: auto;
  background: #656a72;
}

#pdf-canvas {
  display: block;
  max-width: 100%;
  background: white;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .35);
}

@media (max-width: 760px) {
  .pdf-upload-row {
    grid-template-columns: 1fr;
  }

  .file-button,
  .pdf-upload-row .secondary-button {
    width: 100%;
  }
}
\n\n/* Build 005: layout management */
.layouts-view { display: grid; gap: 18px; }
.layouts-view[hidden] { display: none; }
[data-view="home"][hidden] { display: none; }
.layout-library-card .subtle, .layout-create-workflow .subtle { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.layout-library-header-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.starter-layout-empty {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 18px;
  padding: 18px;
  border: 1px solid color-mix(in srgb, var(--accent) 48%, var(--line));
  border-radius: 12px;
  background: color-mix(in srgb, var(--accent) 9%, var(--surface-subtle));
}
.starter-layout-empty[hidden] { display: none; }
.starter-layout-empty h4 { margin: 2px 0 5px; font-size: 18px; }
.starter-layout-empty p { margin: 0; color: var(--muted); line-height: 1.45; }
.starter-layout-empty .primary-button { flex: 0 0 auto; }
.layout-form-grid { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(220px, 1.5fr); gap: 12px; margin: 14px 0; }
.layout-form-grid label { display: grid; gap: 7px; font-size: 12px; font-weight: 800; color: var(--muted); }
.layout-form-grid input { min-height: 42px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.04); color: var(--text); padding: 9px 11px; }
.layout-upload-row { display: grid; grid-template-columns: auto minmax(220px,1fr) auto; align-items: center; gap: 10px; }
.layout-upload-row input[type="file"] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.layout-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 12px; margin-top: 14px; }
.layout-list-item { display: grid; grid-template-rows: 1fr auto; gap: 14px; min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.025); }
.layout-list-item.selected { border-color: rgba(124,199,255,.5); background: rgba(124,199,255,.07); }
.layout-list-copy { min-width: 0; display: grid; gap: 3px; }
.layout-list-identity { display: flex; align-items: center; gap: 8px; min-width: 0; }
.layout-list-copy strong { font-size: 15px; }
.layout-list-identity > strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.layout-list-copy span, .layout-list-copy small { color: var(--muted); overflow-wrap: anywhere; }
.layout-favorite-label { flex: 0 0 auto; color: var(--accent) !important; font-size: 11px; font-weight: 800; }
.layout-list-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.layout-list-actions > .primary-button { flex: 1 1 auto; }
.layout-card-menu { position: relative; }
.layout-card-menu > summary { display: inline-flex; align-items: center; justify-content: center; list-style: none; cursor: pointer; }
.layout-card-menu > summary::-webkit-details-marker { display: none; }
.layout-card-menu > summary::after { content: "▾"; margin-left: 7px; font-size: 10px; }
.layout-card-menu[open] > summary { border-color: rgba(124,199,255,.5); }
.layout-card-menu-items {
  position: absolute; z-index: 20; right: 0; top: calc(100% + 6px); display: grid; min-width: 180px; padding: 6px;
  border: 1px solid var(--line); border-radius: 10px; background: var(--panel-2); box-shadow: 0 14px 32px rgba(0,0,0,.28);
}
.layout-card-menu-items button { padding: 9px 10px; border: 0; border-radius: 7px; color: var(--text); background: transparent; font: inherit; font-size: 13px; font-weight: 700; text-align: left; cursor: pointer; }
.layout-card-menu-items button:hover, .layout-card-menu-items button:focus-visible { background: rgba(124,199,255,.11); }
.layout-card-menu-items button:disabled { color: var(--muted-2); cursor: default; }
.layout-card-menu-items .danger-menu-action { color: #ffb8b8; }
.layout-library-message { margin-top: 14px; }
.layout-create-workflow { width: min(100%, 920px); justify-self: center; }
.layout-detail-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.danger-button { min-height: 42px; padding: 10px 14px; border-radius: 10px; border: 1px solid rgba(255,110,110,.35); background: rgba(255,110,110,.10); color: #ffd2d2; font-weight: 800; cursor: pointer; }
.danger-button:hover { background: rgba(255,110,110,.17); }
.danger-button:disabled { cursor: not-allowed; opacity: .55; }
@media (max-width: 760px) {
  .layout-form-grid, .layout-upload-row { grid-template-columns: 1fr; }
  .layout-library-card > .card-header-row { align-items: stretch; }
  .layout-library-header-actions { justify-content: space-between; }
  .starter-layout-empty { align-items: stretch; flex-direction: column; }
  .starter-layout-empty .primary-button { width: 100%; }
  .layout-list-actions > .primary-button { flex-basis: 100%; }
  .layout-card-menu { flex: 1 1 auto; }
  .layout-card-menu > summary { width: 100%; }
  .layout-card-menu-items { position: static; margin-top: 6px; }
}


/* Build 006: interactive field-mapping proof */
.designer-grid {
  display: grid;
  grid-template-columns: minmax(230px, 300px) minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}

.designer-controls {
  display: grid;
  gap: 14px;
}

.designer-controls label {
  display: grid;
  gap: 7px;
  font-weight: 700;
}

.designer-controls label[hidden] { display: none !important; }

.designer-controls select,
.designer-controls input {
  width: 100%;
}

.designer-help {
  margin: 0;
  line-height: 1.45;
}

.designer-stage-panel {
  min-width: 0;
}

.designer-stage {
  position: relative;
  margin: 0 auto;
  max-width: 100%;
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
}

.designer-stage.placing {
  cursor: crosshair;
  outline: 2px solid var(--accent, #6ea8fe);
  outline-offset: 3px;
}

#designer-pdf-canvas {
  display: block;
  width: 100%;
  height: 100%;
}

.designer-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.mapping-marker {
  position: absolute;
  transform: translateY(calc(-1 * var(--preview-font-px)));
  pointer-events: auto;
  border: 1px dashed rgba(37, 99, 235, .65);
  border-radius: 3px;
  padding: 0 3px;
  background: rgba(219, 234, 254, .72);
  color: #172033;
  font-family: Arial, sans-serif;
  line-height: 1.1;
  white-space: nowrap;
  cursor: pointer;
}

/* Repeated-block X coordinates are alignment anchors, not always left edges.
   Preserve the baseline Y transform while shifting the preview horizontally
   around the stored anchor for center/right-aligned columns. */
.mapping-marker.repeated-marker.align-center {
  transform: translate(-50%, calc(-1 * var(--preview-font-px)));
}

.mapping-marker.repeated-marker.align-right {
  transform: translate(-100%, calc(-1 * var(--preview-font-px)));
}

.designer-mapping-panel {
  border-top: 1px solid var(--border, rgba(255,255,255,.12));
  padding-top: 12px;
}

.designer-mapping-list {
  display: grid;
  gap: 8px;
}

.designer-mapping-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 0;
  border-bottom: 1px solid var(--border, rgba(255,255,255,.08));
}

.designer-mapping-row > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.designer-mapping-row span {
  font-size: .8rem;
  opacity: .72;
}

.compact-button {
  padding: 6px 9px;
  min-height: 0;
}

@media (max-width: 900px) {
  .designer-grid {
    grid-template-columns: 1fr;
  }
}


/* Build 007: PDF generation proof */
.generate-message {
  margin-top: 2px;
}


/* Build 007 refinement: baseline-left mapping semantics */
.mapping-marker::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  border-bottom: 1px solid rgba(220, 38, 38, .85);
  pointer-events: none;
}

.mapping-marker::before {
  content: "";
  position: absolute;
  left: -5px;
  bottom: -4px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgb(220, 38, 38);
  pointer-events: none;
}


/* Build 008 — Game Day */
.gameday-view { display: grid; gap: 18px; }
.gameday-view[hidden] { display: none; }
.source-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.gameday-team-grid, .gameday-two-column, .gameday-lineup-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.gameday-team-grid { margin-bottom: 18px; }
.gameday-two-column { margin-top: 18px; }
.gameday-section-card { min-width: 0; }
.gameday-section-card h4 { margin: 0 0 10px; }
.gameday-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin-top: 14px; }
.gameday-stat { min-width: 0; padding: 10px 11px; border: 1px solid var(--line); border-radius: 11px; background: rgba(0,0,0,.16); }
.gameday-stat span { display: block; color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.gameday-stat strong { display: block; margin-top: 4px; overflow-wrap: anywhere; }
.gameday-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; }
.gameday-table { width: 100%; border-collapse: collapse; min-width: 620px; font-size: 13px; }
.gameday-table th, .gameday-table td { padding: 9px 8px; border-bottom: 1px solid var(--line); text-align: right; white-space: nowrap; }
.gameday-table th:nth-child(2), .gameday-table td:nth-child(2) { text-align: left; }
.gameday-table th { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
.gameday-table tbody tr:last-child td { border-bottom: 0; }
.gameday-number { color: var(--muted); font-size: 11px; margin-left: 6px; }
.gameday-empty { color: var(--muted); text-align: left !important; }
.gameday-person-row { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.gameday-person-row:last-child { border-bottom: 0; }
.gameday-person-row > div:first-child span, .gameday-person-row.simple span { display: block; color: var(--muted); font-size: 12px; margin-top: 3px; }
.gameday-person-row.simple { display: grid; grid-template-columns: 120px 1fr; }
.gameday-person-stats { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px 10px; color: var(--muted); font-size: 12px; text-align: right; }
@media (max-width: 1050px) { .gameday-stat-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } .gameday-lineup-grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .gameday-team-grid, .gameday-two-column { grid-template-columns: 1fr; } .gameday-person-row { flex-direction: column; } .gameday-person-stats { justify-content: flex-start; text-align: left; } }


/* Build 008 acceptance refinement: historical-date selector */
.today-card-actions {
  display: flex;
  align-items: flex-end;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.game-date-control {
  display: grid;
  gap: 6px;
}

.game-date-control label {
  color: var(--muted-2);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.game-date-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.game-date-row input[type="date"] {
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel-2);
  color: var(--text);
  font: inherit;
  color-scheme: dark;
}

.game-date-row input[type="date"]:focus {
  outline: 2px solid rgba(124, 199, 255, .45);
  outline-offset: 2px;
}

@media (max-width: 720px) {
  .today-card-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .game-date-row {
    flex-wrap: wrap;
  }
}

/* v0.4 Build 001.4 — Schedule-first Home */
.home-schedule-card { margin-bottom: 18px; }
.home-browser-controls {
  display: grid; grid-template-columns: minmax(230px, 1fr) minmax(170px, .7fr) auto auto;
  gap: 10px; align-items: end; margin: 18px 0;
}
.home-browser-controls > label { display: grid; gap: 7px; color: var(--muted); font-size: 12px; font-weight: 800; }
.home-browser-controls select,
.home-browser-controls input[type="date"] {
  width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px;
  background: var(--panel-2); color: var(--text); font: inherit;
}
.home-browser-controls select:focus,
.home-browser-controls input[type="date"]:focus { outline: 2px solid rgba(124,199,255,.45); outline-offset: 2px; }
.home-schedule-tools {
  display: flex; align-items: end; justify-content: space-between; gap: 14px; margin-top: 16px;
}
.home-schedule-tools label { display: grid; gap: 7px; width: min(100%, 430px); color: var(--muted); font-size: 12px; font-weight: 800; }
.home-schedule-tools input[type="search"] {
  width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px;
  background: var(--panel-2); color: var(--text); font: inherit;
}
.home-schedule-tools input[type="search"]:focus { outline: 2px solid rgba(124,199,255,.45); outline-offset: 2px; }
#home-game-count { padding-bottom: 11px; color: var(--muted-2); font-size: 12px; font-weight: 800; white-space: nowrap; }
.home-game-browser-layout {
  display: grid; grid-template-columns: minmax(310px, .9fr) minmax(410px, 1.1fr); gap: 16px; align-items: start; margin-top: 14px;
}
.home-game-results { min-width: 0; }
.home-game-groups { display: grid; gap: 14px; max-height: min(62vh, 720px); overflow: auto; padding-right: 4px; }
.home-game-group { display: grid; gap: 8px; }
.home-game-group h4 { margin: 0; color: var(--muted); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.home-game-group .game-choice-list { margin-bottom: 0; }
.game-choice-button > span:first-child { display: grid; gap: 3px; }
.game-choice-button strong { color: var(--text); }
.game-choice-button small { color: var(--muted-2); }
.game-choice-meta { display: flex; align-items: center; justify-content: flex-end; gap: 10px; text-align: right; }
.mini-readiness { padding: 4px 7px; border: 1px solid var(--line); border-radius: 999px; font-size: 11px; font-weight: 800; white-space: nowrap; }
.mini-readiness.ready { color: #c9f7d8; border-color: rgba(105,211,145,.28); background: rgba(105,211,145,.10); }
.mini-readiness.warning { color: #ffe5a6; border-color: rgba(255,194,77,.30); background: rgba(255,194,77,.10); }
.home-game-filter-empty { margin: 0; padding: 18px 4px; color: var(--muted); }
.selected-game-card { position: sticky; top: 90px; min-width: 0; padding: 18px; border: 1px solid rgba(124,199,255,.28); border-radius: 15px; background: rgba(124,199,255,.045); }
.selected-game-empty { display: grid; gap: 7px; min-height: 180px; align-content: center; text-align: center; }
.selected-game-empty h3, .selected-game-empty p { margin: 0; }
.selected-game-empty p:last-child { color: var(--muted); }
.home-matchup-facts { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin: 14px 0; }
.home-matchup-facts > div { display: grid; gap: 5px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(0,0,0,.13); }
.home-matchup-facts span { color: var(--muted-2); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.home-selected-actions { display: flex; align-items: end; justify-content: space-between; gap: 12px; flex-wrap: wrap; }

@media (max-width: 940px) {
  .home-browser-controls { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .home-game-browser-layout { grid-template-columns: 1fr; }
  .home-game-groups { max-height: none; overflow: visible; padding-right: 0; }
  .selected-game-card { position: static; }
}
@media (max-width: 620px) {
  .home-browser-controls,
  .home-matchup-facts { grid-template-columns: 1fr; }
  .game-choice-meta { justify-content: space-between; text-align: left; }
  .home-selected-actions { align-items: stretch; }
  .home-schedule-tools { align-items: stretch; flex-direction: column; }
  .home-schedule-tools label { width: 100%; }
  #home-game-count { padding-bottom: 0; }
}

/* Build 009: unsupported legacy registry mappings remain visible and round-trip safely. */
.mapping-marker.unsupported {
  border-style: dotted;
  opacity: .72;
}


/* Build 009 acceptance refinement: make Show navigation visually obvious. */
.mapping-marker.show-target {
  z-index: 3;
  outline: 3px solid rgba(255, 193, 7, .95);
  outline-offset: 3px;
  animation: mapping-show-pulse 900ms ease-in-out 2;
}

@keyframes mapping-show-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 193, 7, 0); }
  50% { box-shadow: 0 0 0 8px rgba(255, 193, 7, .34); }
}

@media (prefers-reduced-motion: reduce) {
  .mapping-marker.show-target { animation: none; }
}

/* Build 011.1: Designer PDF-only zoom */
.designer-zoom-controls { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; }
.designer-zoom-controls select { min-width: 78px; }
.designer-stage-scroll { width: 100%; max-height: 78vh; overflow: auto; border-radius: 8px; }
.designer-stage { max-width: none; overflow: hidden; }
#designer-pdf-canvas { width: auto; height: auto; }

/* Build 011.1 anchor-dot refinement:
   repeated-column preview text may shift around the stored X anchor for
   center/right alignment, but the red dot itself must remain on that anchor. */
.mapping-marker.repeated-marker.align-center::before {
  left: 50%;
  transform: translateX(-50%);
}

.mapping-marker.repeated-marker.align-right::before {
  left: 100%;
  transform: translateX(-50%);
}

/* Build 012: generalized repeated-block slot geometry */
#designer-grid-dimensions[hidden], #designer-capacity-wrap[hidden] { display: none !important; }
.repeated-slot-guide {
  position: absolute;
  width: 12px;
  height: 12px;
  transform: translate(-50%, -50%);
  border: 1px dashed rgba(37, 99, 235, .65);
  border-radius: 50%;
  background: rgba(219, 234, 254, .22);
  pointer-events: none;
}
.repeated-slot-guide::before,
.repeated-slot-guide::after {
  content: "";
  position: absolute;
  background: rgba(37, 99, 235, .55);
}
.repeated-slot-guide::before { left: 50%; top: -4px; bottom: -4px; width: 1px; transform: translateX(-50%); }
.repeated-slot-guide::after { top: 50%; left: -4px; right: -4px; height: 1px; transform: translateY(-50%); }

/* Build 013: composite / free-text mappings */
.designer-composite-panel {
  display: grid;
  gap: 12px;
  padding-top: 14px;
  border-top: 1px solid var(--border, rgba(255,255,255,.12));
}

.designer-controls textarea {
  width: 100%;
  min-height: 74px;
  resize: vertical;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-2);
  color: var(--text);
  font: inherit;
}

.composite-insert-button {
  align-self: end;
  min-height: 39px;
}

.composite-preview {
  display: grid;
  gap: 4px;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(0,0,0,.13);
  overflow-wrap: anywhere;
}

.composite-preview span {
  color: var(--muted-2);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.composite-preview strong {
  font-size: 13px;
  font-weight: 600;
  white-space: pre-wrap;
}

.mapping-marker.template-marker {
  white-space: pre;
  text-align: left;
}

.mapping-marker.template-marker.align-center {
  text-align: center;
  transform: translate(-50%, calc(-1 * var(--preview-font-px)));
}

.mapping-marker.template-marker.align-right {
  text-align: right;
  transform: translate(-100%, calc(-1 * var(--preview-font-px)));
}

.mapping-marker.template-marker.align-center::before {
  left: 50%;
  transform: translateX(-50%);
}

.mapping-marker.template-marker.align-right::before {
  left: 100%;
  transform: translateX(-50%);
}

/* Build 015: full-screen Designer workspace and live object editing */
body.designer-mode {
  overflow: hidden;
}
body.designer-mode .app-header,
body.designer-mode .topbar {
  display: none;
}
body.designer-mode .app-shell {
  display: block;
  min-height: 100vh;
}
body.designer-mode .main-panel {
  padding: 0;
  min-height: 100vh;
}
body.designer-mode .designer-view {
  height: 100vh;
  overflow: hidden;
}
body.designer-mode .designer-view > .card {
  height: 100vh;
  margin: 0;
  border: 0;
  border-radius: 0;
  padding: 12px 14px 14px;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 10px;
  box-shadow: none;
}
body.designer-mode .designer-view > .card > .card-header-row {
  margin: 0;
  min-height: 52px;
}
body.designer-mode .designer-view > .card > .card-header-row h3 {
  margin: 2px 0;
}
body.designer-mode .designer-view > .card > .card-header-row .section-label {
  margin-bottom: 2px;
}

.designer-grid {
  grid-template-columns: minmax(210px, 250px) minmax(440px, 1fr) minmax(280px, 330px);
  gap: 12px;
  min-height: 0;
  height: 100%;
  align-items: stretch;
}

.designer-palette,
.designer-controls,
.designer-stage-panel {
  min-height: 0;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(0,0,0,.11);
}

.designer-palette,
.designer-controls {
  overflow-y: auto;
  padding: 12px;
  scrollbar-gutter: stable;
}

.designer-stage-panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  background: var(--surface-deep);
}

.designer-stage-panel .pdf-toolbar {
  margin: 0;
  padding: 9px 10px;
  border-bottom: 1px solid var(--line);
  background: var(--surface-subtle);
}

.designer-stage-scroll {
  width: 100%;
  max-height: none;
  height: 100%;
  overflow: auto;
  border-radius: 0;
  padding: 8px;
}

.designer-panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.designer-panel-heading.compact { align-items: center; }
.designer-panel-heading h4 { margin: 0; }
.designer-panel-heading .section-label { margin-bottom: 3px; }

.designer-palette-chooser {
  display: grid;
  gap: 5px;
  margin: 10px 0 14px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--surface-subtle);
}
.designer-palette-chooser[hidden] { display: none !important; }
.designer-palette-check {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  font-size: 12px;
  font-weight: 700;
}
.designer-palette-check input { width: auto; margin: 0; }
.designer-palette-section {
  margin-top: 15px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.designer-palette-list {
  display: grid;
  gap: 5px;
  margin-top: 8px;
}
.designer-palette-item {
  width: 100%;
  padding: 7px 8px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: var(--surface-soft);
  color: var(--text);
  text-align: left;
  font-size: 12px;
  cursor: pointer;
}
.designer-palette-item:hover { border-color: rgba(124,199,255,.42); background: rgba(124,199,255,.08); }
.designer-palette-item.placed::before { content: "✓ "; color: var(--good); font-weight: 900; }

.designer-live-inspector {
  display: grid;
  gap: 10px;
  padding: 10px;
  margin-bottom: 10px;
  border: 1px solid rgba(124,199,255,.26);
  border-radius: 10px;
  background: rgba(124,199,255,.055);
}
.designer-live-inspector label { font-size: 12px; }
.designer-selection-actions { display: flex; justify-content: flex-end; }

.designer-tool-section {
  border-top: 1px solid var(--line);
  padding: 0;
}
.designer-tool-section > summary {
  padding: 11px 2px;
  cursor: pointer;
  font-weight: 800;
  color: var(--text);
  user-select: none;
}
.designer-tool-body {
  display: grid;
  gap: 11px;
  padding: 0 0 13px;
}
.designer-tool-body.designer-composite-panel,
.designer-tool-body.designer-repeat-panel {
  border-top: 0;
  padding-top: 0;
}

.mapping-marker.selected-object {
  z-index: 5;
  outline: 2px solid #ffd166;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px rgba(255,209,102,.2);
}
.mapping-marker { touch-action: pan-x pan-y; }
.designer-touch-drag-handle {
  position: absolute;
  top: -6px;
  left: 50%;
  right: auto;
  width: 24px;
  height: 24px;
  transform: translate(-50%, -100%);
  border: 2px solid #ffd166;
  border-radius: 50%;
  background: var(--panel, #172033);
  box-shadow: 0 2px 8px rgba(0,0,0,.35);
  cursor: grab;
  touch-action: none;
}
.designer-touch-drag-handle::before {
  content: "⋮⋮";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #ffd166;
  font: 900 12px/1 sans-serif;
  letter-spacing: -3px;
  transform: rotate(90deg);
}
.designer-touch-drag-handle:active { cursor: grabbing; }
.repeated-slot-guide,
.repeated-row-guide {
  pointer-events: auto;
  cursor: pointer;
}
.repeated-slot-guide.selected-object,
.repeated-row-guide.selected-object {
  z-index: 4;
  outline: 2px solid #ffd166;
  outline-offset: 2px;
}

@media (max-width: 1180px) {
  .designer-grid { grid-template-columns: 210px minmax(380px, 1fr) 290px; }
}
@media (max-width: 900px) {
  body.designer-mode { overflow: auto; }
  body.designer-mode .designer-view,
  body.designer-mode .designer-view > .card { height: auto; min-height: 100vh; overflow: visible; }
  .designer-grid { grid-template-columns: 1fr; height: auto; }
  .designer-palette, .designer-controls { max-height: none; }
  .designer-stage-panel { min-height: 65vh; }
}

/* Build 016: unified selection and universal alignment */
.mapping-marker.align-center:not(.template-marker):not(.repeated-marker) {
  transform: translate(-50%, calc(-1 * var(--preview-font-px)));
}
.mapping-marker.align-right:not(.template-marker):not(.repeated-marker) {
  transform: translate(-100%, calc(-1 * var(--preview-font-px)));
}
.mapping-marker.align-center:not(.template-marker):not(.repeated-marker)::before { left: 50%; transform: translateX(-50%); }
.mapping-marker.align-right:not(.template-marker):not(.repeated-marker)::before { left: 100%; transform: translateX(-50%); }
.designer-palette-item.selected {
  border-color: #ffd166;
  box-shadow: 0 0 0 2px rgba(255,209,102,.18);
  background: rgba(255,209,102,.08);
}
.designer-stage-scroll { overscroll-behavior: contain; }
body.designer-mode .app-shell, body.designer-mode .main-content, body.designer-mode .designer-view,
body.designer-mode .designer-view > .card, body.designer-mode .designer-grid { max-width: 100vw; }

/* Build 016.1: contextual Data item -> Instance -> Inspector workflow */
.designer-stage-panel {
  grid-template-rows: auto auto minmax(0, 1fr);
}
.designer-placement-banner {
  padding: 9px 12px;
  border-bottom: 1px solid rgba(255, 209, 102, .35);
  background: rgba(255, 209, 102, .10);
  color: var(--selection-text);
  font-size: 13px;
  font-weight: 800;
}
.designer-placement-banner[hidden],
.designer-new-item-panel[hidden],
#designer-context-tools[hidden],
.designer-tool-section[hidden] { display: none !important; }
.designer-new-item-panel {
  display: grid;
  gap: 10px;
  margin: 0 0 10px;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface-subtle);
}
.designer-choice-grid { display: grid; gap: 8px; }
.designer-choice-button {
  display: grid;
  gap: 3px;
  width: 100%;
  padding: 10px;
  border: 1px solid rgba(124,199,255,.28);
  border-radius: 9px;
  background: rgba(124,199,255,.06);
  color: var(--text);
  text-align: left;
  cursor: pointer;
}
.designer-choice-button:hover { background: rgba(124,199,255,.12); border-color: rgba(124,199,255,.48); }
.designer-choice-button span { color: var(--muted); font-size: 11px; line-height: 1.35; }
.designer-selection-actions { gap: 8px; flex-wrap: wrap; }
.designer-palette-group { display: grid; gap: 3px; }
.designer-instance-list { display: grid; gap: 3px; margin: 0 0 3px 13px; padding-left: 8px; border-left: 1px solid var(--line); }
.designer-instance-item {
  width: 100%;
  padding: 5px 7px;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: var(--muted);
  text-align: left;
  font-size: 10.5px;
  cursor: pointer;
}
.designer-instance-item:hover { color: var(--text); background: rgba(124,199,255,.06); }
.designer-instance-item.selected { color: var(--selection-text); border-color: rgba(255,209,102,.4); background: rgba(255,209,102,.08); }
.designer-header-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.designer-status-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
body.designer-mode .designer-view > .card { grid-template-rows: auto minmax(0, 1fr) auto; }
@media (max-width: 900px) { .designer-status-row { grid-template-columns: 1fr; } }
/* Existing repeated blocks are chosen from the palette/scorecard, not a generic dropdown. */
#designer-context-tools.editing-existing-block label:has(#designer-lineup-side),
#designer-context-tools.editing-existing-block label:has(#designer-block-arrangement),
#designer-context-tools.editing-existing-block #designer-capacity-wrap,
#designer-context-tools.editing-existing-block #designer-grid-dimensions,
#designer-context-tools.editing-existing-block #designer-create-block-btn,
#designer-context-tools.editing-existing-block label:has(#designer-block-select),
#designer-context-tools.editing-existing-block #designer-delete-block-btn,
#designer-context-tools.editing-existing-block #designer-block-list,
#designer-context-tools.editing-existing-block .designer-repeat-heading { display: none !important; }


/* Build 016.2: progressive disclosure, calm inspector editing, and palette navigation */
.designer-palette-tools {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
  margin-top: 9px;
}
.designer-palette-tools input,
.designer-palette-tools select { min-width: 0; width: 100%; }
.designer-legacy-placed-section { display: none !important; }
.designer-palette-category {
  border: 1px solid var(--line);
  border-radius: 9px;
  overflow: hidden;
  background: rgba(255,255,255,.02);
}
.designer-palette-category + .designer-palette-category { margin-top: 6px; }
.designer-palette-category > summary {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
  padding: 8px 9px;
  cursor: pointer;
  user-select: none;
}
.designer-palette-category > summary::-webkit-details-marker { display: none; }
.designer-palette-category > summary::before {
  content: "\25B6";
  flex: 0 0 auto;
  font-size: 9px;
  color: var(--muted);
  transition: transform .12s ease;
}
.designer-palette-category[open] > summary::before { transform: rotate(90deg); }
.designer-palette-category > summary strong { flex: 1 1 auto; }
.designer-palette-category > summary span { color: var(--muted); font-size: 10px; white-space: nowrap; }
.designer-palette-category-body { display: grid; gap: 4px; padding: 0 6px 7px; }
.designer-palette-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.designer-palette-item small { color: var(--muted); font-size: 9.5px; font-weight: 600; white-space: nowrap; }
.designer-choice-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.designer-choice-summary > div { display: grid; gap: 2px; }
.designer-choice-summary span { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .05em; }
.designer-slot-fields-panel {
  display: grid;
  gap: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}
.designer-slot-fields-panel[hidden] { display: none !important; }
/* The selected palette item already establishes the collection. */
#designer-repeated-tool label:has(#designer-lineup-side),
#designer-repeated-tool label:has(#designer-block-select) { display: none !important; }
#designer-context-tools.creating-repeated .designer-repeat-heading,
#designer-context-tools.creating-repeated #designer-block-list,
#designer-context-tools.creating-repeated #designer-delete-block-btn { display: none !important; }
#designer-context-tools.editing-existing-block label:has(#designer-lineup-side),
#designer-context-tools.editing-existing-block label:has(#designer-block-arrangement),
#designer-context-tools.editing-existing-block #designer-capacity-wrap,
#designer-context-tools.editing-existing-block #designer-grid-dimensions,
#designer-context-tools.editing-existing-block #designer-create-block-btn,
#designer-context-tools.editing-existing-block label:has(#designer-block-select),
#designer-context-tools.editing-existing-block #designer-block-list,
#designer-context-tools.editing-existing-block .designer-tool-body > .designer-repeat-heading:first-child { display: none !important; }
/* Prevent long generation messages / filenames from forcing the Designer grid wider. */
body.designer-mode .designer-view > .card,
.designer-grid,
.designer-status-row,
.designer-status-row > *,
.designer-palette,
.designer-controls,
.designer-stage-panel { min-width: 0; max-width: 100%; }
.designer-status-row .message-panel,
.generate-message { overflow-wrap: anywhere; word-break: break-word; }
/* Context already identifies the data item; don't ask for it again. */
#designer-context-tools .designer-tool-section > summary { display: none; }
#designer-single-item-tool label:has(#designer-field-select),
#designer-individual-tool label:has(#designer-individual-collection) { display: none !important; }
#designer-place-rows-btn[hidden] { display: none !important; }
.designer-instance-reference { padding: 4px 7px; color: var(--muted); font-size: 9.5px; font-style: italic; }

/* Build 016.2 final UX refinement */
.designer-controls { align-content: start; }
#designer-context-tools { align-self: start; }
.designer-tool-section, .designer-tool-body, .designer-new-item-panel { align-self: start; }
.designer-zoom-status { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; color: var(--muted); font-size: 12px; font-weight: 800; }
.designer-selection-template-editor { display: grid; gap: 9px; }
.designer-selection-template-editor[hidden] { display: none !important; }
.designer-palette-category > summary::before { content: "▶"; transform: none; font-size: 10px; width: 12px; }
.designer-palette-category[open] > summary::before { content: "▼"; transform: none; }

/* Build 016.2 final Designer UX cleanup */
.designer-palette-category > summary {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr) auto;
  column-gap: 7px;
}
.designer-palette-category > summary::before { grid-column: 1; width: 14px; text-align: center; }
.designer-palette-category > summary strong { grid-column: 2; }
.designer-palette-category > summary span { grid-column: 3; }
.designer-palette-category-body {
  margin-left: 20px;
  padding-left: 8px;
  border-left: 1px solid rgba(124,199,255,.16);
}
.designer-palette-item {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  column-gap: 7px;
  text-align: left;
}
.designer-palette-item.placed::before { content: none; }
.designer-palette-status-icon { width: 18px; text-align: center; color: var(--good); font-weight: 900; }
.designer-palette-item-label { min-width: 0; }
.designer-instance-list { margin-left: 18px; }
.designer-instance-children { display: grid; gap: 2px; margin: 1px 0 2px 10px; padding-left: 7px; border-left: 1px solid rgba(124,199,255,.18); }
.designer-instance-child { font-size: 9.75px; padding-top: 4px; padding-bottom: 4px; }
/* Precision anchor: a small plus/crosshair centered on the stored baseline anchor. */
.mapping-marker::before {
  left: -5px;
  bottom: -5px;
  width: 10px;
  height: 10px;
  border-radius: 0;
  background:
    linear-gradient(rgb(220,38,38), rgb(220,38,38)) center / 1px 10px no-repeat,
    linear-gradient(rgb(220,38,38), rgb(220,38,38)) center / 10px 1px no-repeat;
}


/* Build 017.1 acceptance refinements */
.designer-object-actions { display:flex; gap:.4rem; flex-wrap:wrap; justify-content:flex-end; }
.designer-record-fields.designer-record-direct > summary.designer-palette-item { list-style-position:inside; cursor:pointer; }
.designer-record-fields.designer-record-direct > summary.designer-palette-item::marker { font-size:.85em; }

/* Build 017.2 acceptance hotfix: stable parent inspector + one subordinate workspace. */
.designer-parent-secondary-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: .5rem;
}
.designer-subordinate-workspace {
  display: grid;
  gap: .7rem;
  padding: .8rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.025);
}
.designer-subordinate-workspace[hidden] { display: none !important; }
.designer-workspace-heading {
  display: grid;
  gap: 2px;
  padding-bottom: .55rem;
  border-bottom: 1px solid var(--line);
}
.designer-workspace-heading h4 { margin: 0; }
.designer-record-fields.designer-record-direct > summary.designer-palette-item {
  list-style: none;
  display: grid;
  grid-template-columns: 14px 18px minmax(0, 1fr) auto;
  column-gap: 7px;
  align-items: center;
  cursor: pointer;
}
.designer-record-fields.designer-record-direct > summary.designer-palette-item::-webkit-details-marker { display: none; }
.designer-record-fields.designer-record-direct > summary.designer-palette-item::before {
  content: "\25B6";
  grid-column: 1;
  width: 14px;
  text-align: center;
  color: var(--muted);
  font-size: 10px;
}
.designer-record-fields.designer-record-direct[open] > summary.designer-palette-item::before { content: "\25BC"; }
.designer-record-fields.designer-record-direct > summary.designer-palette-item .designer-palette-status-icon { grid-column: 2; }
.designer-record-fields.designer-record-direct > summary.designer-palette-item .designer-palette-item-label { grid-column: 3; }
.designer-record-fields.designer-record-direct > summary.designer-palette-item small { grid-column: 4; }
.designer-record-use-item { font-weight: 700; }

/* Build 017.3 acceptance hotfix: capability visibility, child scoping, and true progressive reveal. */
#designer-field-name-format-wrap[hidden],
#designer-column-name-format-wrap[hidden],
#designer-selection-name-format-wrap[hidden],
#designer-individual-name-format-wrap[hidden],
#designer-column-field-wrap[hidden],
#designer-column-template-wrap[hidden],
#designer-slot-fields-panel [hidden],
.designer-child-workspace-actions[hidden],
#designer-block-list[hidden] {
  display: none !important;
}
.designer-child-workspace-actions {
  display: flex;
  justify-content: flex-end;
  padding-top: .15rem;
}
#designer-context-tools.scoped-child-workspace #designer-block-list,
#designer-context-tools.scoped-child-workspace .designer-tool-body > .designer-repeat-heading:first-child,
#designer-context-tools.scoped-child-workspace #designer-delete-block-btn {
  display: none !important;
}
#designer-place-column-btn:disabled {
  opacity: .45;
  cursor: not-allowed;
}


/* Build 017.4 hotfix: Record Layout is one anchored record, never a repeated arrangement. */
#designer-context-tools.creating-record label:has(#designer-block-arrangement),
#designer-context-tools.creating-record #designer-capacity-wrap,
#designer-context-tools.creating-record #designer-grid-dimensions {
  display: none !important;
}

/* Build 018.2 - live field coverage diagnostic */
.field-diagnostic-view { display: grid; gap: 18px; }
.field-diagnostic-view[hidden] { display: none; }
.diagnostic-summary { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.diagnostic-toolbar { display: grid; grid-template-columns: minmax(260px, 1fr) 170px 190px; gap: 10px; margin: 14px 0 8px; }
.diagnostic-toolbar input, .diagnostic-toolbar select { width: 100%; }
.diagnostic-legend { margin-bottom: 12px; }
.diagnostic-table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 12px; max-height: calc(100vh - 330px); }
.diagnostic-table { width: 100%; border-collapse: collapse; min-width: 1120px; font-size: 12px; }
.diagnostic-table th, .diagnostic-table td { padding: 8px 9px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.diagnostic-table th { position: sticky; top: 0; z-index: 1; background: var(--panel); color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .05em; }
.diagnostic-table tbody tr:last-child td { border-bottom: 0; }
.diagnostic-field-label { font-weight: 700; }
.diagnostic-field-id { display: block; margin-top: 3px; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 10px; }
.diagnostic-value { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; white-space: nowrap; }
.diagnostic-status { display: inline-flex; align-items: center; border-radius: 999px; padding: 3px 8px; font-size: 10px; font-weight: 700; white-space: nowrap; }
.diagnostic-status.available { background: rgba(47, 158, 68, .18); color: var(--success-text); }
.diagnostic-status.partial { background: rgba(240, 140, 0, .18); color: var(--warning-text); }
.diagnostic-status.missing { background: rgba(134, 142, 150, .18); color: var(--muted); }
.diagnostic-status.sourceUnavailable, .diagnostic-status.error { background: rgba(224, 49, 49, .18); color: var(--danger-text); }
.diagnostic-row-partial, .diagnostic-row-sourceUnavailable, .diagnostic-row-error { background: rgba(255,255,255,.018); }
@media (max-width: 800px) { .diagnostic-toolbar { grid-template-columns: 1fr; } .diagnostic-table-wrap { max-height: none; } }

/* v0.4 Build 001.5 — Game Day research companion */
.gameday-section-nav {
  position: sticky;
  top: 8px;
  z-index: 4;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--panel) 94%, transparent);
  box-shadow: 0 8px 24px rgba(0,0,0,.16);
}
.gameday-section-nav a { padding: 6px 10px; border-radius: 999px; color: var(--muted); font-size: 12px; text-decoration: none; }
.gameday-section-nav a:hover, .gameday-section-nav a:focus-visible { background: var(--surface-hover); color: var(--text); }
#gameday-content { display: grid; gap: 0; scroll-behavior: smooth; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--panel); }
#gameday-content[hidden] { display: none; }
#gameday-content > section { scroll-margin-top: 82px; padding: 22px; border-bottom: 1px solid var(--line); }
#gameday-content > section:last-child { border-bottom: 0; }
.gameday-section-card { background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.gameday-team-card { min-width: 0; padding: 0 18px 0 0; }
.gameday-team-card + .gameday-team-card { padding: 0 0 0 18px; border-left: 1px solid var(--line); }
.gameday-header-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 10px; }
.gameday-detail-switch { display: inline-flex; gap: 4px; margin: 16px 0 0; padding: 4px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.gameday-detail-switch legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.gameday-detail-switch label { cursor: pointer; }
.gameday-detail-switch input { position: absolute; opacity: 0; pointer-events: none; }
.gameday-detail-switch span { display: block; padding: 7px 13px; border-radius: 8px; color: var(--muted); font-weight: 700; }
.gameday-detail-switch input:checked + span { color: var(--text); background: var(--surface-hover); box-shadow: inset 0 0 0 1px var(--accent); }
.gameday-detail-switch input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.gameday-detail-description { margin: 8px 0 0; }
[data-gameday-min-level][hidden], .gameday-section-nav a[hidden] { display: none !important; }
[data-detail-level="compact"] [data-gameday-min-level="standard"],
[data-detail-level="compact"] [data-gameday-min-level="advanced"],
[data-detail-level="standard"] [data-gameday-min-level="advanced"] { display: none !important; }
.gameday-overview-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gameday-player-table { min-width: 840px; }
.gameday-group-heading { margin: 18px 0 4px; padding-bottom: 6px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 11px; letter-spacing: .07em; text-transform: uppercase; }
.gameday-group-heading:first-child { margin-top: 4px; }
.gameday-classification-note { margin: 10px 0 0; padding: 9px 11px; border-radius: 10px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.gameday-classification-note.classified { background: rgba(47,158,68,.09); }
.gameday-classification-note.fallback { background: rgba(240,140,0,.11); color: #ffe8a1; }
.gameday-standings-group + .gameday-standings-group { margin-top: 20px; }
.gameday-standings-group h4 { margin-bottom: 3px; }
.gameday-standings-group > .subtle { margin: 0 0 10px; }
.gameday-standings-table { min-width: 680px; }
.gameday-standings-table th:nth-child(2), .gameday-standings-table td:nth-child(2) { text-align: left; }
.gameday-research-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: 20px; }
.gameday-research-grid h4 { margin: 10px 0; }
.gameday-source-list { display: grid; gap: 7px; }
.gameday-source-list > div { display: grid; grid-template-columns: minmax(90px, .7fr) auto minmax(140px, 1.3fr); align-items: baseline; gap: 10px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; }
.gameday-source-list span { font-weight: 700; text-transform: capitalize; }
.gameday-source-list strong { font-size: 11px; text-transform: uppercase; }
.gameday-source-list small { color: var(--muted); text-align: right; }
.source-outcome-success { color: var(--success-text); }
.source-outcome-partial { color: var(--warning-text); }
.source-outcome-failed { color: var(--danger-text); }
.gameday-advanced-note { margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--line); }
@media (max-width: 1050px) { .gameday-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gameday-research-grid { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .gameday-section-nav { position: static; } .gameday-source-list > div { grid-template-columns: 1fr auto; } .gameday-source-list small { grid-column: 1 / -1; text-align: left; } .gameday-team-card, .gameday-team-card + .gameday-team-card { padding: 0; border-left: 0; } .gameday-team-card + .gameday-team-card { padding-top: 18px; border-top: 1px solid var(--line); } .gameday-header-actions { justify-content: flex-start; } }

/* v0.4 Build 004.6a — compact Game Day research sheet */
.gameday-view { display: grid; gap: 10px; }
.gameday-empty-state { max-width: 620px; margin: 0 auto; padding: 28px; text-align: center; }
.gameday-empty-state h3 { margin-top: 0; }
.gameday-empty-state p { color: var(--muted); }
.gameday-toolbar { display: flex; align-items: center; gap: 8px; min-height: 42px; }
.gameday-toolbar .gameday-detail-switch { margin: 0; }
.gameday-toolbar .pill { margin-left: auto; }
.gameday-cutoff-disclosure { position: relative; }
.gameday-cutoff-disclosure[hidden] { display: none; }
.gameday-cutoff-button { white-space: nowrap; }
.gameday-cutoff-tooltip {
  position: absolute;
  z-index: 30;
  top: calc(100% + 7px);
  right: 0;
  width: min(380px, calc(100vw - 24px));
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel);
  color: var(--text);
  box-shadow: var(--shadow);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-3px);
  transition: opacity .12s ease, transform .12s ease, visibility .12s ease;
}
.gameday-cutoff-tooltip strong,
.gameday-cutoff-tooltip span { display: block; }
.gameday-cutoff-tooltip span { margin-top: 4px; color: var(--muted); line-height: 1.4; }
.gameday-cutoff-disclosure:hover .gameday-cutoff-tooltip,
.gameday-cutoff-disclosure:focus-within .gameday-cutoff-tooltip,
.gameday-cutoff-disclosure.is-open .gameday-cutoff-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.gameday-section-nav { top: calc(var(--app-header-height) + 8px); gap: 3px; padding: 5px 7px; border-radius: 10px; box-shadow: 0 4px 14px rgba(0,0,0,.12); }
.gameday-section-nav a { padding: 5px 8px; }
.gameday-player-stat-scope-switch {
  display: inline-flex;
  flex: 0 0 auto;
  gap: 3px;
  margin: 0 0 0 auto;
  padding: 2px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--surface-soft);
}
.gameday-player-stat-scope-switch[hidden] { display: none !important; }
.gameday-player-stat-scope-switch legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.gameday-player-stat-scope-switch label { cursor: pointer; }
.gameday-player-stat-scope-switch input { position: absolute; opacity: 0; pointer-events: none; }
.gameday-player-stat-scope-switch span { display: block; padding: 4px 8px; border-radius: 6px; color: var(--muted); font-size: 11px; font-weight: 800; white-space: nowrap; }
.gameday-player-stat-scope-switch input:checked + span { color: var(--text); background: var(--surface-hover); box-shadow: inset 0 0 0 1px var(--accent); }
.gameday-player-stat-scope-switch input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 1px; }
#gameday-content { border-radius: 10px; }
#gameday-content > section { padding: 12px 14px; scroll-margin-top: calc(var(--app-header-height) + 58px); }
#gameday-content h3 { margin: 0 0 8px; font-size: 17px; }
#gameday-content h4 { margin: 0 0 5px; font-size: 14px; }
.gameday-top-grid { display: grid; grid-template-columns: 1.1fr 1fr .75fr; gap: 22px; }
.gameday-top-grid > div + div { padding-left: 20px; border-left: 1px solid var(--line); }
.gameday-fact-list { display: grid; gap: 0; }
.gameday-fact { display: grid; grid-template-columns: minmax(95px, .8fr) minmax(0, 1.2fr); gap: 10px; padding: 3px 0; line-height: 1.3; }
.gameday-fact span { color: var(--muted); font-size: 12px; }
.gameday-fact strong { min-width: 0; font-size: 13px; overflow-wrap: anywhere; }
.gameday-team-grid, .gameday-lineup-grid { gap: 0; }
.gameday-team-card { padding-right: 20px; }
.gameday-team-card + .gameday-team-card { padding-left: 20px; }
.gameday-team-heading { display: flex; align-items: baseline; gap: 9px; padding-bottom: 4px; border-bottom: 2px solid var(--accent); }
.gameday-team-heading span { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.gameday-team-heading h3 { margin: 0 !important; }
.gameday-team-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 18px; padding-top: 4px; }
.gameday-table th, .gameday-table td { padding: 5px 7px; font-size: 12px; line-height: 1.25; white-space: nowrap; }
.gameday-table th { font-size: 10px; }
.gameday-player-table { min-width: 760px; }
.gameday-player-table th:first-child, .gameday-player-table td:first-child,
.gameday-standings-table th:first-child, .gameday-standings-table td:first-child { position: sticky; left: 0; z-index: 2; width: 34px; background: var(--panel); }
.gameday-player-table th:nth-child(2), .gameday-player-table td:nth-child(2),
.gameday-standings-table th:nth-child(2), .gameday-standings-table td:nth-child(2) { position: sticky; left: 34px; z-index: 2; background: var(--panel); box-shadow: 1px 0 0 var(--line); }
.gameday-player-table thead th:first-child, .gameday-player-table thead th:nth-child(2),
.gameday-standings-table thead th:first-child, .gameday-standings-table thead th:nth-child(2) { z-index: 3; }
.gameday-number { margin-left: 5px; font-size: 10px; }
.gameday-player-identity-trigger {
  appearance: none;
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 2px;
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: inherit;
  text-align: inherit;
  text-decoration: underline dotted color-mix(in srgb, currentColor 55%, transparent);
  text-underline-offset: 3px;
  cursor: help;
}
.gameday-player-identity-trigger:hover { color: var(--accent); }
.gameday-player-identity-trigger:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.gameday-player-identity-popover {
  position: fixed;
  z-index: 1200;
  width: max-content;
  max-width: min(320px, calc(100vw - 16px));
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  color: var(--text);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .22);
  pointer-events: none;
}
.gameday-player-identity-popover[hidden] { display: none; }
.gameday-player-identity-popover > div { display: grid; gap: 1px; }
.gameday-player-identity-popover > div + div { margin-top: 7px; padding-top: 7px; border-top: 1px solid var(--line); }
.gameday-player-identity-popover span { color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.gameday-player-identity-popover strong { font-size: 13px; overflow-wrap: anywhere; }
.gameday-person-row { min-height: 0; padding: 5px 0; font-size: 12px; }
.gameday-person-row strong { font-size: 13px; }
.gameday-person-row > div:first-child span { margin-top: 1px; font-size: 10px; }
.gameday-person-stats { gap: 7px; font-size: 11px; }
.gameday-group-heading { margin: 10px 0 0; padding: 5px 7px; border: 1px solid var(--line); border-width: 1px 0; background: var(--surface-soft); }
.gameday-group-heading:first-child { margin-top: 0; }
.gameday-classification-note { margin-top: 7px; padding: 7px 9px; }
.gameday-standings-group + .gameday-standings-group { margin-top: 12px; }
.gameday-standings-group h4 { padding-bottom: 4px; border-bottom: 1px solid var(--line); }
.gameday-standings-table { min-width: 600px; }
.gameday-selected-team-row td { font-weight: 800; background-color: color-mix(in srgb, var(--accent) 10%, var(--panel)); }
.gameday-selected-team-row td:first-child, .gameday-selected-team-row td:nth-child(2) { background-color: color-mix(in srgb, var(--accent) 10%, var(--panel)); }
.gameday-selected-team-fact { margin-inline: -6px; padding-inline: 6px; border-radius: 5px; font-weight: 800; background-color: color-mix(in srgb, var(--accent) 10%, var(--panel)); }
.designer-live-status.error:not(:empty), .live-pdf-message.error:not(:empty) { display: block; margin-top: 8px; padding: 9px 11px; border: 1px solid color-mix(in srgb, var(--danger-text) 45%, transparent); border-radius: 8px; background: color-mix(in srgb, var(--danger-text) 9%, transparent); color: var(--danger-text); font-weight: 700; }
.designer-generate-hint { align-self: center; max-width: 240px; color: var(--warning-text); font-size: 11px; font-weight: 700; line-height: 1.3; }
@media (max-width: 1050px) { .gameday-top-grid { grid-template-columns: 1fr 1fr; } .gameday-top-grid > div:nth-child(3) { grid-column: 1 / -1; padding: 10px 0 0; border: 0; border-top: 1px solid var(--line); } }
@media (max-width: 700px) { .gameday-toolbar { flex-wrap: wrap; } .gameday-toolbar .pill { margin-left: 0; } .gameday-section-nav { position: sticky; overflow-x: auto; flex-wrap: nowrap; } .gameday-section-nav a { flex: 0 0 auto; } .gameday-top-grid { grid-template-columns: 1fr; } .gameday-top-grid > div + div, .gameday-top-grid > div:nth-child(3) { grid-column: auto; padding: 9px 0 0; border: 0; border-top: 1px solid var(--line); } .gameday-team-facts { grid-template-columns: 1fr; } }

/* v0.4 Build 004.6b — wide-screen density and one-line player rows */
.gameday-view { width: min(100%, 1400px); margin-inline: auto; }
.gameday-team-grid, .gameday-lineup-grid { column-gap: 28px; }
.gameday-team-grid > *, .gameday-lineup-grid > * { min-width: 0; }
.gameday-team-card { padding-right: 0; }
.gameday-team-card + .gameday-team-card { padding-left: 28px; }
.gameday-team-facts { max-width: 520px; }
.gameday-person-row { justify-content: flex-start; align-items: baseline; flex-wrap: wrap; gap: 3px 16px; overflow: hidden; }
.gameday-person-row > div:first-child { display: inline-flex; align-items: baseline; flex-wrap: wrap; gap: 0 6px; min-width: 185px; }
.gameday-person-row > div:first-child span { display: inline; margin: 0; }
.gameday-person-stats { justify-content: flex-start; text-align: left; flex: 0 1 auto; }
[data-detail-level="compact"] .gameday-player-table { width: auto; min-width: 360px; }
[data-detail-level="compact"] .gameday-table-wrap:has(.gameday-player-table) { width: min(100%, 440px); }
@media (max-width: 1050px) {
  .gameday-lineup-grid { row-gap: 16px; }
  .gameday-team-card + .gameday-team-card { padding-left: 20px; }
}
@media (max-width: 760px) {
  .gameday-team-card + .gameday-team-card { padding: 12px 0 0; }
  .gameday-person-row { flex-direction: row; }
}

/* v0.4 Build 004.6c — consistent player tables and stable core context */
.gameday-team-heading { align-items: center; min-height: 54px; }
.gameday-team-logo { width: 48px; height: 48px; margin-left: auto; object-fit: contain; flex: 0 0 48px; }
.gameday-player-table { width: auto; min-width: 0; }
.gameday-player-table th:nth-child(2), .gameday-player-table td:nth-child(2) { max-width: 230px; }
[data-detail-level="compact"] .gameday-table-wrap:has(.gameday-player-table),
[data-detail-level="standard"] .gameday-table-wrap:has(.gameday-player-table) { width: 100%; }
[data-detail-level="compact"] .gameday-player-table,
[data-detail-level="standard"] .gameday-player-table { width: auto; min-width: 0; }
[data-detail-level="advanced"] .gameday-player-table { min-width: 760px; }
.gameday-pitcher-table th:first-child, .gameday-pitcher-table td:first-child { width: 28px; }
.gameday-pitcher-table th:nth-child(2), .gameday-pitcher-table td:nth-child(2) { min-width: 150px; }
.gameday-bench-table th:nth-child(2), .gameday-bench-table td:nth-child(2) { min-width: 150px; }
.gameday-person-row.simple { display: grid; grid-template-columns: minmax(max-content, 190px) minmax(0, 1fr); gap: 12px; align-items: baseline; }
.gameday-person-row.simple strong { white-space: nowrap; }
@media (max-width: 760px) {
  .gameday-team-logo { width: 42px; height: 42px; flex-basis: 42px; }
  .gameday-person-row.simple { grid-template-columns: minmax(max-content, 160px) minmax(0, 1fr); }
}

/* v0.4 Build 004.6d — packed Advanced tables and team-aligned standings */
[data-detail-level="advanced"] .gameday-player-table { width: auto; min-width: 0; }
[data-detail-level="advanced"] .gameday-player-table th,
[data-detail-level="advanced"] .gameday-player-table td { padding-inline: 5px; }
#gameday-standings { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.gameday-standings-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.gameday-standings-column { display: flex; min-width: 0; flex-direction: column; gap: 16px; }
.gameday-standings-group { min-width: 0; }
.gameday-standings-table { width: 100%; min-width: 0; }
#gameday-standings .gameday-standings-group + .gameday-standings-group { margin-top: 0; }
@media (max-width: 1280px) {
  [data-detail-level="advanced"] #gameday-lineups .gameday-lineup-grid,
  [data-detail-level="advanced"] #gameday-benches .gameday-lineup-grid,
  [data-detail-level="advanced"] #gameday-pitchers .gameday-lineup-grid {
    grid-template-columns: 1fr;
    row-gap: 16px;
  }
}
@media (max-width: 900px) {
  .gameday-standings-columns { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}

/* v0.4 Build 004.6e — stable research-table columns and authoritative MiLB labels */
.gameday-batter-table,
.gameday-pitcher-table { table-layout: fixed; }
[data-detail-level="compact"] .gameday-batter-table { width: 265px; }
[data-detail-level="standard"] .gameday-batter-table { width: 471px; }
[data-detail-level="advanced"] .gameday-batter-table { width: 685px; }
[data-detail-level="compact"] .gameday-pitcher-table { width: 371px; }
[data-detail-level="standard"] .gameday-pitcher-table { width: 499px; }
[data-detail-level="advanced"] .gameday-pitcher-table { width: 703px; }
.gameday-batter-table th:nth-child(1), .gameday-batter-table td:nth-child(1) { width: 38px; min-width: 38px; max-width: 38px; }
.gameday-batter-table th:nth-child(2), .gameday-batter-table td:nth-child(2) { width: 185px; min-width: 185px; max-width: 185px; }
.gameday-batter-table th:nth-child(3), .gameday-batter-table td:nth-child(3) { width: 42px; min-width: 42px; max-width: 42px; }
.gameday-batter-table th:nth-child(4), .gameday-batter-table td:nth-child(4) { width: 30px; min-width: 30px; max-width: 30px; }
.gameday-batter-table th:nth-child(5), .gameday-batter-table td:nth-child(5) { width: 38px; }
.gameday-batter-table th:nth-child(6), .gameday-batter-table td:nth-child(6) { width: 44px; }
.gameday-batter-table th:nth-child(7), .gameday-batter-table td:nth-child(7),
.gameday-batter-table th:nth-child(8), .gameday-batter-table td:nth-child(8),
.gameday-batter-table th:nth-child(9), .gameday-batter-table td:nth-child(9) { width: 48px; }
.gameday-batter-table th:nth-child(10), .gameday-batter-table td:nth-child(10) { width: 52px; }
.gameday-batter-table th:nth-child(11), .gameday-batter-table td:nth-child(11),
.gameday-batter-table th:nth-child(13), .gameday-batter-table td:nth-child(13) { width: 36px; }
.gameday-batter-table th:nth-child(12), .gameday-batter-table td:nth-child(12) { width: 40px; }
.gameday-pitcher-table th:nth-child(1), .gameday-pitcher-table td:nth-child(1) { width: 44px; min-width: 44px; max-width: 44px; }
.gameday-pitcher-table th:nth-child(2), .gameday-pitcher-table td:nth-child(2) { width: 185px; min-width: 185px; max-width: 185px; }
.gameday-pitcher-table th:nth-child(3), .gameday-pitcher-table td:nth-child(3) { width: 42px; min-width: 42px; max-width: 42px; }
.gameday-pitcher-table th:nth-child(4), .gameday-pitcher-table td:nth-child(4),
.gameday-pitcher-table th:nth-child(6), .gameday-pitcher-table td:nth-child(6),
.gameday-pitcher-table th:nth-child(12), .gameday-pitcher-table td:nth-child(12),
.gameday-pitcher-table th:nth-child(13), .gameday-pitcher-table td:nth-child(13) { width: 38px; }
.gameday-pitcher-table th:nth-child(5), .gameday-pitcher-table td:nth-child(5),
.gameday-pitcher-table th:nth-child(7), .gameday-pitcher-table td:nth-child(7),
.gameday-pitcher-table th:nth-child(8), .gameday-pitcher-table td:nth-child(8),
.gameday-pitcher-table th:nth-child(9), .gameday-pitcher-table td:nth-child(9) { width: 50px; }
.gameday-pitcher-table th:nth-child(10), .gameday-pitcher-table td:nth-child(10),
.gameday-pitcher-table th:nth-child(11), .gameday-pitcher-table td:nth-child(11) { width: 40px; }
.gameday-person-row.simple { grid-template-columns: minmax(0, 230px) minmax(0, 1fr); align-items: start; }
.gameday-person-row.simple strong { white-space: normal; overflow-wrap: normal; }
@media (max-width: 760px) {
  .gameday-person-row.simple { grid-template-columns: minmax(0, 180px) minmax(0, 1fr); }
}

/* Build 019 - formatting defaults and overrides */
.designer-format-summary { display:flex; align-items:center; gap:.6rem; justify-content:space-between; }
.formatting-dialog { border:0; padding:0; background:transparent; width:min(980px,92vw); max-height:90vh; }
.formatting-dialog::backdrop { background:rgba(0,0,0,.45); }
.formatting-dialog-card { background:var(--card-bg,#fff); color:inherit; border-radius:14px; padding:1rem; box-shadow:0 24px 80px rgba(0,0,0,.28); max-height:86vh; overflow:auto; }
.layout-formatting-grid { display:grid; gap:.55rem; margin:1rem 0; }
.layout-formatting-row { display:grid; grid-template-columns:minmax(180px,1.6fr) minmax(130px,1fr) 90px 90px 70px 70px; gap:.5rem; align-items:end; padding:.65rem; border:1px solid var(--border-color,#d7dbe0); border-radius:10px; }
.layout-formatting-row strong { align-self:center; }
.layout-formatting-row label { margin:0; }
.field-formatting-grid { display:grid; grid-template-columns:repeat(2,minmax(180px,1fr)); gap:.75rem; margin:1rem 0; }
.check-row { display:flex; gap:.5rem; align-items:center; }
.formatting-dialog-actions { display:flex; align-items:center; gap:.6rem; margin-top:1rem; }
.dialog-spacer { flex:1; }
@media (max-width:800px){ .layout-formatting-row{grid-template-columns:1fr 1fr;} .layout-formatting-row strong{grid-column:1/-1;} .field-formatting-grid{grid-template-columns:1fr;} }

/* Build 019.1 formatting controls */
.designer-inline-formatting { margin-top: .55rem; }
.designer-format-default { margin-bottom: .45rem; color: var(--muted); font-size: 11px; line-height: 1.35; }
.designer-format-default strong { color: var(--text); }
.designer-format-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; }
.designer-format-toolbar select,
.designer-format-toolbar input { min-height: 34px; }
#designer-selection-font-face { width: 108px; }
#designer-selection-font-size { width: 48px; border-radius: 7px 0 0 7px; }
.designer-font-size-picker { position: relative; display: inline-flex; align-items: stretch; }
.designer-font-size-menu { position: relative; }
.designer-font-size-menu > summary { list-style: none; width: 28px; min-height: 34px; display: grid; place-items: center; border: 1px solid var(--line); border-left: 0; border-radius: 0 7px 7px 0; background: rgba(255,255,255,.035); color: var(--text); cursor: pointer; }
.designer-font-size-menu > summary::-webkit-details-marker { display: none; }
.designer-font-size-options { position: absolute; z-index: 55; top: calc(100% + 5px); right: 0; width: 72px; max-height: 260px; overflow-y: auto; padding: 6px; border: 1px solid var(--line); border-radius: 9px; background: var(--panel); box-shadow: 0 14px 35px rgba(0,0,0,.35); }
.designer-font-size-options button { width: 100%; padding: 6px 8px; border: 0; border-radius: 5px; background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.designer-font-size-options button:hover, .designer-font-size-options button:focus-visible { background: rgba(124,199,255,.14); }
.designer-format-toggle { width: 34px; height: 34px; padding: 0; border: 1px solid var(--line); border-radius: 7px; background: rgba(255,255,255,.035); color: var(--text); font-size: 17px; cursor: pointer; }
.designer-format-toggle:hover, .designer-format-toggle.active { background: rgba(124,199,255,.14); border-color: rgba(124,199,255,.55); }
.designer-format-italic { font-family: Georgia, serif; font-style: italic; }
.designer-format-restore { min-height: 34px; }
.scorecard-color-picker { position: relative; display: inline-block; }
.scorecard-color-summary { list-style: none; width: 46px; height: 34px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; border: 1px solid var(--line); border-radius: 7px; background: rgba(255,255,255,.035); cursor: pointer; }
.scorecard-color-summary::-webkit-details-marker { display: none; }
.scorecard-color-chip { width: 20px; height: 5px; border-radius: 1px; box-shadow: 0 0 0 1px rgba(255,255,255,.28); }
.scorecard-color-caret { color: var(--muted); font-size: 10px; }
.scorecard-color-panel { position: absolute; z-index: 40; top: calc(100% + 5px); right: 0; width: 176px; padding: 9px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); box-shadow: 0 14px 35px rgba(0,0,0,.35); }
.scorecard-color-swatches { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.scorecard-color-swatch { width: 42px; height: 30px; border: 2px solid transparent; border-radius: 6px; cursor: pointer; box-shadow: inset 0 0 0 1px rgba(255,255,255,.2); }
.scorecard-color-swatch.selected { border-color: var(--accent); outline: 1px solid rgba(255,255,255,.8); }
.scorecard-color-custom { width: 100%; margin-top: 9px; padding: 7px 8px; border: 1px solid var(--line); border-radius: 7px; background: rgba(255,255,255,.05); color: var(--text); cursor: pointer; font-weight: 700; }
.scorecard-color-native { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.layout-conditional-section { border: 1px solid var(--line); border-radius: 12px; padding: .7rem; }
.layout-conditional-heading { display: grid; gap: .2rem; }
.layout-conditional-heading strong { font-size: 14px; white-space: nowrap; }
.layout-conditional-toggle { display: flex; gap: .5rem; align-items: center; font-size: 12px; color: var(--text); }
.layout-conditional-helper { margin: 0 0 0 1.45rem; color: var(--muted); font-size: 11px; line-height: 1.35; }
.layout-conditional-rows { display: grid; gap: .55rem; margin-top: .65rem; }
.layout-conditional-rows[hidden] { display: none; }
.designer-format-toolbar .scorecard-color-panel { left: 0; right: auto; }
.layout-formatting-row .scorecard-color-panel { left: 0; right: auto; }
.formatting-dialog .scorecard-color-panel { background: #fff; color: #111; border-color: #cfd5dc; }
.formatting-dialog .scorecard-color-custom { background: #f5f6f8; color: #111; border-color: #cfd5dc; }


/* Build 020.1: compact Designer actions in the PDF toolbar */
.designer-toolbar-actions {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin-left: auto;
}
.designer-stage-panel .pdf-toolbar { flex-wrap: wrap; gap: 8px; }
.designer-multi-select-toggle { min-height: 36px; white-space: nowrap; }
.designer-multi-select-toggle[aria-pressed="true"] {
  border-color: rgba(192,132,252,.8);
  background: rgba(192,132,252,.2);
  color: var(--text);
  box-shadow: 0 0 0 2px rgba(192,132,252,.14);
}
.designer-stage.multi-select-mode { cursor: default; }
.designer-stage.multi-select-mode,
.designer-stage-scroll.multi-select-mode { touch-action: none; }
.designer-stage.multi-select-mode .mapping-marker { cursor: pointer; }
.designer-toolbar-icon {
  width: 40px;
  min-width: 40px;
  min-height: 36px;
  padding: 6px;
  font-size: 18px;
  line-height: 1;
}
.designer-toolbar-actions + .designer-zoom-status {
  margin-left: 10px;
}


/* Build 021: multi-selection */
.designer-stage { position: relative; }
.designer-lasso {
  position: absolute; z-index: 20; pointer-events: none;
  border: 1px solid #7cc7ff; background: rgba(124,199,255,.13);
  box-shadow: 0 0 0 1px rgba(124,199,255,.2);
}
.mapping-marker.multi-selected {
  z-index: 6; outline: 2px solid #c084fc; outline-offset: 2px;
  box-shadow: 0 0 0 4px rgba(192,132,252,.22);
}
.designer-multi-selection-controls { display: grid; gap: 14px; }
.designer-multi-selection-controls[hidden] { display: none !important; }
.designer-multi-font-size { width: 54px; }
.designer-format-toggle.mixed { border-style: dashed; color: var(--muted); }
.designer-multi-align { display: grid; gap: 7px; }
.designer-multi-align-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.designer-multi-align-grid button {
  min-height: 32px; border: 1px solid var(--line); border-radius: 7px;
  background: rgba(255,255,255,.035); color: var(--text); cursor: pointer; font-weight: 700;
}
.designer-multi-align-grid button:hover { border-color: rgba(124,199,255,.55); background: rgba(124,199,255,.08); }
.designer-multi-align-grid button:disabled { opacity: .4; cursor: not-allowed; }
.scorecard-color-chip.mixed { background: linear-gradient(135deg,#000 0 25%,#777 25% 50%,#1565c0 50% 75%,#d32f2f 75%); }

/* Build 022 — clipboard placement */
.designer-paste-ghost { position:absolute; z-index:12; pointer-events:none; border:2px dashed #b36cff; background:rgba(179,108,255,.10); border-radius:6px; box-shadow:0 0 0 2px rgba(179,108,255,.08); }
.designer-paste-ghost[hidden] { display:none !important; }

/* Build 022.1: paste ghost uses the same logical anchor as final placement. */
.designer-paste-ghost {
  border: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.designer-paste-ghost-item {
  position: absolute;
  pointer-events: none;
  border: 2px dashed #b36cff;
  background: rgba(179,108,255,.10);
  border-radius: 5px;
  box-sizing: border-box;
}
.designer-paste-ghost-item.block {
  background: rgba(179,108,255,.07);
}

/* Build 024: compact global clipboard controls and non-persistent status output. */
.designer-live-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.designer-paste-menu { position:relative; }
.designer-paste-menu > summary { list-style:none; display:inline-flex; align-items:center; justify-content:center; }
.designer-paste-menu > summary::-webkit-details-marker { display:none; }
.designer-paste-menu.disabled { opacity:.45; }
.designer-paste-options { position:absolute; z-index:30; top:calc(100% + 4px); right:0; min-width:180px; padding:6px; border:1px solid var(--border); border-radius:8px; background:var(--panel); box-shadow:0 8px 24px rgba(0,0,0,.28); }
.designer-paste-options button { display:block; width:100%; text-align:left; padding:7px 9px; border:0; border-radius:6px; background:transparent; color:inherit; cursor:pointer; }
.designer-paste-options button:hover { background:rgba(255,255,255,.08); }
.designer-live-inspector .designer-panel-heading { align-items:flex-start; }
.designer-live-inspector .section-label { margin-bottom:2px; }
.designer-live-inspector h4 { margin:0; }
.designer-object-actions .compact-button { padding:.3rem .55rem; }

/* Build 024.1 acceptance fixes: compact zoom popover and clipboard states. */
.designer-paste-menu.disabled { opacity:.45; }
.designer-paste-menu.disabled > summary { cursor:not-allowed; }
.designer-paste-options button[hidden] { display:none !important; }

.designer-zoom-menu { position:relative; }
.designer-zoom-menu > summary { list-style:none; display:inline-flex; align-items:center; justify-content:center; }
.designer-zoom-menu > summary::-webkit-details-marker { display:none; }
.designer-zoom-options {
  position:absolute; z-index:30; top:calc(100% + 4px); right:0;
  display:grid; grid-template-columns:auto auto auto; align-items:center; gap:8px;
  min-width:190px; padding:8px; border:1px solid var(--border); border-radius:10px;
  background:var(--panel); box-shadow:0 8px 24px rgba(0,0,0,.28);
}
.designer-zoom-options > button:not(.compact-button) {
  width:32px; min-width:32px; height:32px; border:0; border-radius:7px;
  background:transparent; color:var(--text); font-size:20px; cursor:pointer;
}
.designer-zoom-options > button:not(.compact-button):hover { background:rgba(255,255,255,.08); }
.designer-zoom-options > button:disabled { opacity:.4; cursor:not-allowed; }
.designer-zoom-options #designer-zoom-reset-btn { grid-column:1 / -1; justify-self:stretch; }
.designer-zoom-options strong { min-width:46px; text-align:center; }
.designer-zoom-icon { position:relative; display:inline-block; width:18px; height:18px; }
.designer-zoom-icon::before {
  content:""; position:absolute; left:1px; top:1px; width:10px; height:10px;
  border:2px solid currentColor; border-radius:50%; box-sizing:border-box;
}
.designer-zoom-icon::after {
  content:""; position:absolute; width:7px; height:2px; left:10px; top:12px;
  background:currentColor; transform:rotate(45deg); transform-origin:left center; border-radius:1px;
}
.designer-zoom-icon > span::before {
  content:""; position:absolute; left:4px; top:5px; width:4px; height:2px; background:currentColor; border-radius:1px;
}
.designer-zoom-icon[data-state="neutral"] > span::before { display:none; }
.designer-zoom-icon[data-state="in"] > span::after {
  content:""; position:absolute; left:5px; top:4px; width:2px; height:4px; background:currentColor; border-radius:1px;
}
.designer-template-insert-controls { align-items:end; }


/* Build 024.2 acceptance fixes: finished Inspector cleanup and disabled Paste parity. */
.designer-live-inspector .designer-panel-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: .35rem;
}
.designer-live-inspector .designer-object-actions {
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: .3rem;
}
.designer-live-inspector .designer-object-actions .compact-button {
  padding: .22rem .45rem;
  font-size: 12px;
  line-height: 1.2;
  white-space: nowrap;
}
.designer-paste-menu.disabled > summary { cursor: not-allowed; pointer-events: auto; }

/* Build 025: narrow live-game PDF generation controls. */
.live-pdf-actions {
  display: flex;
  align-items: end;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.live-pdf-stat-scope-switch {
  display: grid;
  gap: 6px;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.live-pdf-stat-scope-switch[hidden] { display: none !important; }
.live-pdf-stat-scope-switch legend {
  padding: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}
.live-pdf-stat-scope-switch > div {
  display: flex;
  min-width: 0;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--panel-2);
}
.live-pdf-stat-scope-switch label { min-width: 0; cursor: pointer; }
.live-pdf-stat-scope-switch label[hidden] { display: none !important; }
.live-pdf-stat-scope-switch input { position: absolute; opacity: 0; pointer-events: none; }
.live-pdf-stat-scope-switch span {
  display: block;
  padding: 7px 9px;
  border-radius: 7px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-align: center;
  white-space: nowrap;
}
.live-pdf-stat-scope-switch input:checked + span {
  color: var(--text);
  background: var(--surface-hover);
  box-shadow: inset 0 0 0 1px var(--accent);
}
.live-pdf-stat-scope-switch input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 1px; }

.live-pdf-actions label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.live-pdf-actions select {
  min-width: 220px;
  max-width: 340px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px 12px;
  color: var(--text);
  background: var(--panel-2);
}

.live-pdf-message {
  margin: -4px 0 14px;
}

.disabled-control-explanation { position: relative; display: inline-flex; }
.disabled-control-tooltip {
  position: absolute; z-index: 20; right: 0; bottom: calc(100% + 7px); width: max-content; max-width: min(260px, 75vw);
  padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); color: var(--text);
  box-shadow: 0 8px 24px rgba(0,0,0,.2); font-size: 12px; font-weight: 700; line-height: 1.35;
  opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(3px);
}
.disabled-control-explanation[data-disabled="true"]:hover .disabled-control-tooltip,
.disabled-control-explanation[data-disabled="true"]:focus-visible .disabled-control-tooltip {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.disabled-control-explanation[data-disabled="true"] > button { pointer-events: none; }
.disabled-control-explanation:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 10px; }

@media (max-width: 760px) {
  .selected-game-heading { align-items: stretch; }
  .live-pdf-actions { justify-content: flex-start; width: 100%; }
  .live-pdf-stat-scope-switch { flex: 1 1 100%; }
  .live-pdf-stat-scope-switch > div { width: 100%; }
  .live-pdf-stat-scope-switch label { flex: 1 1 0; }
  .live-pdf-stat-scope-switch span { padding-inline: 6px; white-space: normal; }
  .live-pdf-actions label { flex: 1 1 220px; }
  .live-pdf-actions select { width: 100%; max-width: none; }
}

/* Build 026 — Field Palette & Layout Settings */
.layout-settings-dialog { width: min(1120px, 95vw); }
.layout-settings-card { background: var(--panel); color: var(--text); border: 1px solid var(--line); box-shadow: 0 28px 90px rgba(0,0,0,.55); }
.layout-settings-section { margin-top: .9rem; padding: .85rem; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.018); }
.layout-settings-section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: .75rem; }
.layout-settings-section-heading h4 { margin: 0 0 .2rem; }
.layout-field-mode-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem; }
.layout-custom-fields { margin-top: .8rem; }
.layout-custom-search { display: grid; gap: .35rem; color: var(--muted); font-size: 12px; font-weight: 700; }
.layout-custom-search input { width: 100%; }
.layout-custom-field-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; margin-top: .7rem; max-height: 42vh; overflow: auto; padding-right: .2rem; }
.layout-field-picker-group { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: rgba(0,0,0,.08); }
.layout-field-picker-group h5 { margin: 0; padding: .55rem .7rem; background: rgba(255,255,255,.045); border-bottom: 1px solid var(--line); font-size: 12px; color: var(--accent); }
.layout-field-picker-item { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: .55rem; padding: .55rem .7rem; border-bottom: 1px solid rgba(255,255,255,.055); cursor: pointer; }
.layout-field-picker-item:last-child { border-bottom: 0; }
.layout-field-picker-item:hover { background: rgba(124,199,255,.06); }
.layout-field-picker-item span { display: grid; gap: .15rem; }
.layout-field-picker-item strong { font-size: 12px; }
.layout-field-picker-item small { color: var(--muted); font-size: 11px; line-height: 1.35; }
.layout-settings-card .layout-formatting-row { border-color: var(--line); background: rgba(0,0,0,.08); }
.layout-settings-card .layout-conditional-section { background: rgba(0,0,0,.08); }
.layout-settings-card .layout-conditional-toggle { cursor: pointer; }
.layout-settings-card .scorecard-color-panel { background: var(--panel-2); color: var(--text); border-color: var(--line); }
.layout-settings-card .scorecard-color-custom { background: rgba(255,255,255,.05); color: var(--text); border-color: var(--line); }
@media (max-width: 800px) {
  .layout-field-mode-grid, .layout-custom-field-list { grid-template-columns: 1fr; }
}

/* Build 026.1 — Layout Settings workflow and palette cleanup */
.layout-details-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: .7rem; }
.layout-details-grid label { display: grid; gap: .3rem; color: var(--muted); font-size: 12px; font-weight: 700; }
.layout-details-grid input, .layout-details-grid textarea { width: 100%; }
.layout-pdf-replace-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .8rem; padding-top: .75rem; border-top: 1px solid var(--line); }
.layout-pdf-replace-row > div { display: grid; gap: .2rem; }
.layout-pdf-replace-row small { color: var(--muted); }
#layout-custom-fields .layout-custom-field-list { max-height: none; overflow: visible; grid-template-columns: repeat(2,minmax(0,1fr)); }
#layout-formatting-panel { margin-top: .8rem; }
.designer-palette-actions { display: flex; justify-content: flex-end; margin: 0 0 .45rem; }
.designer-palette-actions-bottom { margin: .55rem 0 0; padding-top: .45rem; border-top: 1px solid var(--line); }
.designer-palette-item-details { border: 0; }
.designer-palette-item-details > summary { list-style: none; cursor: pointer; }
.designer-palette-item-details > summary::-webkit-details-marker { display: none; }
.designer-palette-item-details > summary::after { content: "▶"; margin-left: 4px; font-size: 9px; color: var(--muted); }
.designer-palette-item-details[open] > summary::after { content: "▼"; }
@media (max-width: 800px) { #layout-custom-fields .layout-custom-field-list { grid-template-columns: 1fr; } .layout-pdf-replace-row { align-items: flex-start; flex-direction: column; } }


/* Build 026.2 — Custom field picker balance, card controls, and PDF validation */
.layout-custom-field-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
}
.layout-field-picker-group { height: 100%; }
.layout-field-picker-group.full-width { grid-column: 1 / -1; }
.layout-field-picker-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
}
.layout-field-picker-heading h5 { margin: 0; }
.layout-field-picker-heading small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }
.layout-field-picker-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.layout-field-picker-actions .link-button { padding: 0; font-size: 11px; white-space: nowrap; }
.layout-field-picker-actions .link-button:disabled { opacity: .38; cursor: default; }
.compact-message-dialog { max-width: 520px; }
.compact-message-card { width: min(480px, calc(100vw - 32px)); }
@media (max-width: 820px) {
  .layout-custom-field-list { grid-template-columns: 1fr; }
  .layout-field-picker-group.full-width { grid-column: auto; }
}
.layout-field-picker-heading h5 { margin: 0; padding: 0; background: transparent; border: 0; }
.layout-field-picker-actions .link-button { appearance: none; border: 0; background: transparent; color: var(--accent); font-weight: 800; cursor: pointer; }
.layout-field-picker-actions .link-button:not(:disabled):hover { text-decoration: underline; }


/* Build 026.3 — final palette/settings polish */
.pitcher-display-option { display:flex; align-items:flex-start; gap:.55rem; margin:.2rem 0 1rem; padding:.7rem .8rem; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,.025); cursor:pointer; }
.pitcher-display-option input { margin-top:.2rem; }
.pitcher-display-option span { display:grid; gap:.15rem; }
.pitcher-display-option small { color:var(--muted); }
#layout-custom-fields { position: relative; }
.layout-custom-fields-sticky {
  position: sticky;
  top: -1rem;
  z-index: 12;
  margin: -1rem -1rem .8rem;
  padding: 1rem 1rem .75rem;
  background: var(--panel);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 10px 18px rgba(0,0,0,.18);
}
.layout-custom-fields-heading { align-items: flex-start; }
.layout-custom-fields-header-actions { display: flex; align-items: center; gap: .5rem; }
.layout-custom-fields-close {
  width: 32px; height: 32px; padding: 0; border: 1px solid var(--line); border-radius: 9px;
  background: rgba(255,255,255,.04); color: var(--text); font-size: 24px; line-height: 1; cursor: pointer;
}
.layout-custom-fields-close:hover { border-color: rgba(124,199,255,.55); background: rgba(124,199,255,.10); }
.dark-message-dialog .formatting-dialog-card { background: var(--panel); color: var(--text); border: 1px solid var(--line); }
.dark-message-dialog .subtle { color: var(--muted); }
.dark-message-dialog::backdrop { background: rgba(0,0,0,.62); }
.designer-palette-actions-bottom[hidden] { display: none !important; }


/* Build 027.2: compact shrink-to-fit formatting controls */
.designer-text-fit-inspector {
  display: grid;
  gap: 6px;
  margin-top: 8px;
  padding-bottom: 10px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--border, rgba(255,255,255,.12));
}
.designer-controls label.designer-fit-toggle {
  display: inline-flex;
  grid-template-columns: none;
  align-items: center;
  justify-content: flex-start;
  gap: 7px;
  width: max-content;
  font-weight: 600;
}
.designer-controls label.designer-fit-toggle input { width: auto; margin: 0; flex: 0 0 auto; }
.designer-fit-controls { display: block; }
.designer-fit-controls[hidden] { display: none; }
.designer-fit-width-row {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}
.designer-fit-width-row label { font-weight: 600; white-space: nowrap; }
.designer-fit-width-row input {
  width: 5.5rem;
  min-width: 0;
  flex: 0 0 5.5rem;
}
.designer-fit-width-unit { color: var(--muted); white-space: nowrap; }
.designer-text-fit-guide {
  position: absolute;
  height: 12px;
  transform: translateY(-6px);
  border-bottom: 2px solid rgba(37, 99, 235, .9);
  pointer-events: none;
  z-index: 8;
}
.designer-text-fit-guide.align-left { transform: translateY(-6px); }
.designer-text-fit-guide.align-center { transform: translate(-50%, -6px); }
.designer-text-fit-guide.align-right { transform: translate(-100%, -6px); }
.designer-text-fit-guide::before,
.designer-text-fit-guide::after {
  content: "";
  position: absolute;
  bottom: -5px;
  width: 1px;
  height: 10px;
  background: rgba(37, 99, 235, .9);
}
.designer-text-fit-guide::before { left: 0; }
.designer-text-fit-guide::after { right: 0; }
.designer-text-fit-handle {
  position: absolute;
  right: -12px;
  bottom: -12px;
  width: 24px;
  height: 24px;
  min-width: 24px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  cursor: ew-resize;
  pointer-events: auto;
  touch-action: none;
}
.designer-text-fit-handle::before,
.designer-text-fit-handle::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: rgb(37, 99, 235);
  box-shadow: 0 0 0 1px rgba(255,255,255,.95);
}
.designer-text-fit-handle::before { width: 13px; height: 1px; }
.designer-text-fit-handle::after { width: 1px; height: 13px; }
.designer-text-fit-guide.align-right .designer-text-fit-handle { left: -12px; right: auto; }
\n\n/* Build 028 — Designer completion cleanup */\n/* Modals should visibly separate from the Designer without changing the dark theme. */\n.formatting-dialog::backdrop { background: rgba(0,0,0,.74); }\n.layout-settings-card { border-color: rgba(124,199,255,.24); box-shadow: 0 30px 100px rgba(0,0,0,.78), 0 0 0 1px rgba(255,255,255,.025); }\n\n/* Inspector hierarchy: Selected Object -> Selected Item -> Formatting. */\n.designer-subordinate-workspace {\n  display: grid; gap: .8rem; padding: 0; border: 0; border-radius: 0; background: transparent;\n}\n.designer-selected-item-card,\n.designer-formatting-card {\n  border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.025);\n}\n.designer-selected-item-card { padding: .8rem; }\n.designer-selected-item-card .designer-workspace-heading { padding-bottom: 0; border-bottom: 0; }\n.designer-child-workspace-actions { display:flex; justify-content:flex-start; gap:.4rem; padding-top:.55rem; flex-wrap:wrap; }\n.designer-child-workspace-actions[hidden] { display:none !important; }\n.designer-formatting-card[hidden] { display:none !important; }\n.designer-formatting-card > summary {\n  list-style:none; display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:.7rem .8rem;\n  color:var(--muted); font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; cursor:pointer; user-select:none;\n}\n.designer-formatting-card > summary::-webkit-details-marker { display:none; }\n.designer-formatting-card > summary::after { content:"□"; font-size:13px; line-height:1; color:var(--muted); }\n.designer-formatting-card[open] > summary::after { content:"−"; font-size:17px; }\n.designer-formatting-card-body { padding:0 .8rem .8rem; }\n.designer-formatting-card:not([open]) .designer-formatting-card-body { display:none; }\n#designer-selection-position-controls { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap:.65rem; }\n#designer-selection-position-controls label { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:.4rem; }\n#designer-selection-position-controls label input { min-width:0; width:100%; }\n#designer-selection-format-controls { margin-top:.45rem; padding-top:.55rem; border-top:1px solid var(--line); }\n#designer-selection-name-format-wrap, #designer-selection-date-format-wrap { margin-top:.55rem; padding-top:.55rem; border-top:1px solid var(--line); }\n#designer-selection-date-format { width:100%; }\n.designer-text-fit-inspector { margin-top:.55rem; }\n\n/* Every expandable palette row keeps chevron, check, label, and status on one line. */\n.designer-palette-item-details > summary.designer-palette-item {\n  list-style:none; display:grid; grid-template-columns:14px 18px minmax(0,1fr) auto; column-gap:7px; align-items:center;\n}\n.designer-palette-item-details > summary.designer-palette-item::after { content:none; }\n.designer-palette-item-details > summary.designer-palette-item::before {\n  content:"▶"; grid-column:1; width:14px; text-align:center; color:var(--muted); font-size:10px;\n}\n.designer-palette-item-details[open] > summary.designer-palette-item::before { content:"▼"; }\n.designer-palette-item-details > summary.designer-palette-item .designer-palette-status-icon { grid-column:2; }\n.designer-palette-item-details > summary.designer-palette-item .designer-palette-item-label { grid-column:3; }\n.designer-palette-item-details > summary.designer-palette-item small { grid-column:4; }\n\n#designer-field-date-format-wrap[hidden], #designer-selection-date-format-wrap[hidden] { display:none !important; }\n
/* Build 028.1 - focused palette header correction.
   Expandable rows use an explicit chevron cell so chevron, status icon,
   label, and instance/status text are always one structural header row. */
.designer-palette-item-details > summary.designer-palette-item,
.designer-record-fields.designer-record-direct > summary.designer-palette-item {
  list-style: none;
  display: grid;
  grid-template-columns: 14px 18px minmax(0, 1fr) auto;
  column-gap: 7px;
  align-items: center;
}
.designer-palette-item-details > summary.designer-palette-item::-webkit-details-marker,
.designer-record-fields.designer-record-direct > summary.designer-palette-item::-webkit-details-marker {
  display: none;
}
.designer-palette-item-details > summary.designer-palette-item::before,
.designer-palette-item-details > summary.designer-palette-item::after,
.designer-record-fields.designer-record-direct > summary.designer-palette-item::before,
.designer-record-fields.designer-record-direct > summary.designer-palette-item::after {
  content: none;
}
.designer-palette-chevron {
  grid-column: 1;
  width: 14px;
  text-align: center;
  color: var(--muted);
  font-size: 10px;
  line-height: 1;
}
.designer-palette-chevron::before { content: "\25B6"; }
.designer-palette-item-details[open] > summary .designer-palette-chevron::before,
.designer-record-fields.designer-record-direct[open] > summary .designer-palette-chevron::before { content: "\25BC"; }
.designer-palette-item-details > summary .designer-palette-status-icon,
.designer-record-fields.designer-record-direct > summary .designer-palette-status-icon { grid-column: 2; }
.designer-palette-item-details > summary .designer-palette-item-label,
.designer-record-fields.designer-record-direct > summary .designer-palette-item-label { grid-column: 3; }
.designer-palette-item-details > summary small,
.designer-record-fields.designer-record-direct > summary small { grid-column: 4; }

/* Build 028.2 - focused palette-state simplification.
   Plain border = available; green border = used; gold = selected.
   Expandable placed instances use a chevron; right-side status text and
   green checkmarks are intentionally removed. */
.designer-palette-item {
  grid-template-columns: minmax(0, 1fr);
}
.designer-palette-item.placed {
  border-color: rgba(74, 222, 128, .46);
  box-shadow: inset 0 0 0 1px rgba(74, 222, 128, .08);
}
.designer-palette-item.selected {
  border-color: var(--warn);
}
.designer-palette-status-icon,
.designer-palette-item > small,
.designer-palette-item-details > summary small,
.designer-record-fields.designer-record-direct > summary small {
  display: none !important;
}
.designer-palette-item-details > summary.designer-palette-item,
.designer-record-fields.designer-record-direct > summary.designer-palette-item {
  grid-template-columns: 14px minmax(0, 1fr);
  column-gap: 7px;
}
.designer-palette-item-details > summary .designer-palette-chevron,
.designer-record-fields.designer-record-direct > summary .designer-palette-chevron { grid-column: 1; }
.designer-palette-item-details > summary .designer-palette-item-label,
.designer-record-fields.designer-record-direct > summary .designer-palette-item-label { grid-column: 2; }

/* Build 028.3 - focused Formatting card UI pass.
   Formatting is a true sibling card with a compact, grouped layout. */
.designer-subordinate-workspace {
  gap: 1rem;
}
.designer-formatting-card {
  overflow: visible;
}
.designer-formatting-card > summary {
  min-height: 42px;
  padding: .65rem .8rem;
  border-radius: 12px;
}
.designer-formatting-card[open] > summary {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.designer-formatting-card > summary::after {
  content: "□";
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  font-size: 15px;
  line-height: 1;
  color: var(--muted);
  flex: 0 0 auto;
}
.designer-formatting-card[open] > summary::after {
  content: "−";
  font-size: 19px;
}
.designer-formatting-card-body {
  padding: 0 .8rem .8rem;
}

/* Position: X and Y each stay on one compact line, side by side. */
#designer-selection-position-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: .55rem .75rem !important;
  margin: 0;
  padding: .55rem 0 .65rem;
}
#designer-selection-position-controls label {
  display: grid !important;
  grid-template-columns: auto minmax(54px, 1fr) !important;
  align-items: center !important;
  gap: .35rem !important;
  margin: 0 !important;
  white-space: nowrap;
}
#designer-selection-position-controls label input {
  width: 100% !important;
  min-width: 0 !important;
  height: 30px;
  min-height: 30px;
}

/* Formatting groups use separators instead of nested cards. */
#designer-selection-format-controls {
  margin: 0 !important;
  padding: 0 !important;
  border-top: 1px solid var(--line);
}
.designer-format-group {
  padding: .65rem 0;
  margin: 0 !important;
}
.designer-format-group + .designer-format-group {
  border-top: 1px solid var(--line);
}
.designer-alignment-group {
  display: grid;
  gap: .55rem;
}
.designer-compact-label-row {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: center !important;
  gap: .5rem !important;
  margin: 0 !important;
}
.designer-compact-label-row select {
  min-width: 0;
  min-height: 30px;
  height: 30px;
}
.designer-format-toolbar-compact {
  display: grid;
  grid-template-columns: minmax(90px, 1fr) auto 34px 34px auto;
  gap: .35rem;
  align-items: center;
}
.designer-format-toolbar-compact select,
.designer-format-toolbar-compact input,
.designer-format-toolbar-compact .designer-format-toggle,
.designer-format-toolbar-compact .scorecard-color-summary,
.designer-format-toolbar-compact .designer-font-size-menu > summary {
  min-height: 34px;
  height: 34px;
}
#designer-selection-font-face {
  width: 100%;
  min-width: 0;
}
.designer-format-toolbar-compact .designer-font-size-picker {
  min-width: 76px;
}
.designer-defaults-group {
  display: grid;
  gap: .55rem;
}
.designer-defaults-group .designer-format-default {
  margin: 0;
}
.designer-defaults-group .designer-format-restore {
  justify-self: start;
}
.designer-text-fit-inspector {
  display: grid;
  gap: .45rem;
}
.designer-fit-width-row {
  display: grid;
  grid-template-columns: auto minmax(56px, 92px) auto;
  align-items: center;
  justify-content: start;
  gap: .4rem;
}
.designer-fit-width-row label {
  display: block !important;
  margin: 0 !important;
  white-space: nowrap;
}
.designer-fit-width-row input {
  width: 100% !important;
  min-height: 30px;
  height: 30px;
}

/* Field-specific presentation controls are their own Formatting groups. */
#designer-selection-name-format-wrap,
#designer-selection-date-format-wrap {
  margin: 0 !important;
  padding: .65rem 0 0 !important;
  border-top: 1px solid var(--line) !important;
}
#designer-selection-name-format-wrap select,
#designer-selection-date-format-wrap input {
  margin-top: .35rem;
}

@media (max-width: 520px) {
  .designer-format-toolbar-compact {
    grid-template-columns: minmax(90px, 1fr) auto 34px 34px;
  }
  .designer-format-toolbar-compact #designer-selection-color-picker {
    grid-column: 1 / -1;
  }
}

/* v0.4.0 Build 004.5 — one stable Layout Settings workspace */
.layout-settings-shell {
  display: flex;
  flex-direction: column;
  width: min(1080px, calc(100vw - 32px));
  height: min(84vh, 900px);
  max-height: 84vh;
  overflow: hidden;
  padding: 0;
}

.layout-settings-shell-header {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: .85rem;
  padding: 1rem;
  border-bottom: 1px solid var(--line);
  background: var(--dialog-chrome);
}

.layout-settings-shell-heading { min-width: 0; }
.layout-settings-shell-heading { grid-column: 1; }
.layout-settings-shell-heading h3 { margin-bottom: .2rem; }
.layout-settings-shell-heading p:last-child { margin-bottom: 0; }
.layout-settings-shell-close {
  grid-column: 2;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: rgba(255,255,255,.04);
  color: var(--text);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}
.layout-settings-shell-close:hover { border-color: rgba(124,199,255,.55); background: rgba(124,199,255,.10); }

.layout-settings-shell-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 1rem;
}
.layout-settings-summary-view { display: grid; gap: .75rem; }
.layout-settings-internal-view { min-height: 100%; }
.layout-settings-internal-view[hidden],
.layout-settings-summary-view[hidden],
.layout-settings-shell-footer > div[hidden] { display: none !important; }

.layout-settings-shell-footer {
  flex: 0 0 auto;
  margin-top: 0;
  padding: .75rem 1rem;
  border-top: 1px solid var(--line);
  background: var(--dialog-chrome);
}
.layout-settings-shell-footer > div:not([hidden]) {
  display: flex;
  align-items: center;
  gap: .65rem;
  width: 100%;
  min-width: 0;
}

.layout-field-picker-toolbar {
  position: sticky;
  top: -1rem;
  z-index: 4;
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto auto;
  align-items: end;
  gap: .8rem;
  margin: -1rem -1rem .8rem;
  padding: 1rem;
  border-bottom: 1px solid var(--line);
  background: var(--dialog-chrome);
  box-shadow: 0 8px 16px rgba(0,0,0,.12);
}
.layout-field-mirror-toggle {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 40px;
  color: var(--text);
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
  cursor: pointer;
}
.layout-field-disclosure-actions { display: flex; align-items: center; gap: .45rem; }

.layout-custom-fields-view .layout-custom-field-list {
  max-height: none;
  overflow: visible;
  align-items: start;
}
.layout-custom-fields-view .layout-field-picker-group { height: auto; }
.layout-field-picker-group > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.layout-field-picker-group > summary::-webkit-details-marker { display: none; }
.layout-field-picker-heading {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr) auto;
  justify-content: initial;
  border-bottom: 0;
}
.layout-field-picker-heading::before {
  content: "▶";
  align-self: center;
  color: var(--muted);
  font-size: 9px;
}
.layout-field-picker-group[open] > .layout-field-picker-heading::before { content: "▼"; }
.layout-field-picker-group[open] > .layout-field-picker-heading { border-bottom: 1px solid var(--line); }
.layout-field-picker-heading > .layout-field-picker-actions {
  align-self: center;
  flex-wrap: nowrap;
  padding-left: .65rem;
}
.layout-field-picker-items { display: grid; }
.layout-field-picker-side-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.layout-field-picker-side-column { min-width: 0; }
.layout-field-picker-side-column + .layout-field-picker-side-column { border-left: 1px solid var(--line); }
.layout-field-picker-side-column h6 {
  margin: 0;
  padding: .45rem .7rem;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  background: rgba(255,255,255,.025);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}

@media (max-width: 800px) {
  .layout-settings-shell {
    width: calc(100vw - 16px);
    height: min(92vh, 900px);
    max-height: 92vh;
  }
  .layout-settings-shell-header { grid-template-columns: minmax(0, 1fr) auto; }
  .layout-settings-shell-heading { grid-column: 1; }
  .layout-settings-shell-close { grid-column: 2; }
  .layout-field-picker-toolbar { grid-template-columns: 1fr; align-items: stretch; }
  .layout-field-mirror-toggle { min-height: 0; white-space: normal; }
  .layout-field-disclosure-actions { flex-wrap: wrap; }
  .layout-settings-shell-footer > div:not([hidden]) { flex-wrap: wrap; }
  .layout-custom-fields-footer-left { width: 100%; }
  .layout-field-picker-heading { grid-template-columns: 12px minmax(0, 1fr) auto; gap: .2rem; padding-inline: .55rem; }
  .layout-field-picker-heading > .layout-field-picker-actions { gap: .35rem; padding-left: .25rem; }
  .layout-field-picker-heading > .layout-field-picker-actions .link-button { font-size: 10px; }
  .layout-field-picker-side-column h6,
  .layout-field-picker-side-column .layout-field-picker-item { padding-inline: .5rem; }
}

/* v0.4.0 Build 004.5b — stronger palette grouping and category defaults */
.layout-custom-fields-view .layout-custom-field-list { gap: 1rem; }
.layout-custom-fields-view .layout-field-picker-group {
  border-color: color-mix(in srgb, var(--accent) 30%, var(--line));
  background: var(--panel);
  box-shadow: 0 4px 14px rgba(0,0,0,.12);
}
.layout-custom-fields-view .layout-field-picker-heading {
  padding-block: .7rem;
  border-left: 4px solid color-mix(in srgb, var(--accent) 78%, transparent);
  background: color-mix(in srgb, var(--accent) 12%, var(--dialog-chrome));
}
.layout-custom-fields-view .layout-field-picker-heading h5 { color: var(--accent); }
.layout-custom-fields-view .layout-field-picker-group[open] > .layout-field-picker-heading {
  border-bottom: 2px solid color-mix(in srgb, var(--accent) 30%, var(--line));
}
.layout-custom-fields-view .layout-field-picker-items,
.layout-custom-fields-view .layout-field-picker-side-grid {
  background: color-mix(in srgb, var(--panel) 88%, var(--panel-2));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent);
}
.layout-custom-fields-view .layout-field-picker-side-column h6 {
  background: color-mix(in srgb, var(--accent) 7%, var(--panel-2));
  color: color-mix(in srgb, var(--text) 78%, var(--accent));
}
.layout-field-picker-actions .standard-fields-button {
  margin-right: .2rem;
  padding-right: .65rem;
  border-right: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line));
}
.layout-field-picker-actions .standard-fields-button:disabled {
  color: var(--muted);
  border-right-color: var(--line);
}

:root[data-theme="light"] .layout-custom-fields-view .layout-field-picker-group {
  border-color: color-mix(in srgb, var(--accent) 34%, var(--line));
  box-shadow: 0 4px 12px rgba(31,47,67,.10);
}
:root[data-theme="light"] .layout-custom-fields-view .layout-field-picker-heading {
  background: color-mix(in srgb, var(--accent) 10%, var(--dialog-chrome));
}

/* Build 028.4 - focused Selected Item action and Formatting-header cleanup. */
/* Keep child-item actions compact in both collapsed and expanded Formatting states. */
.designer-child-workspace-actions {
  justify-content: flex-start;
  align-items: center;
  gap: .35rem;
}
.designer-child-workspace-actions .compact-button {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: .22rem .45rem !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  white-space: nowrap;
}

/* Retain the existing chevron as the sole Formatting expand/collapse cue. */
.designer-formatting-card > summary::after,
.designer-formatting-card[open] > summary::after {
  content: none !important;
  display: none !important;
}

/* Build 028.5 - Inspector Formatting width containment.
   Opening Formatting must never widen the Inspector or create horizontal scrolling. */
.designer-controls {
  overflow-x: hidden;
}
.designer-controls > *,
.designer-subordinate-workspace,
.designer-selected-item-card,
.designer-formatting-card,
.designer-formatting-card-body,
#designer-selection-controls,
#designer-selection-position-controls,
#designer-selection-format-controls,
.designer-format-group,
.designer-alignment-group,
.designer-defaults-group,
.designer-text-fit-inspector {
  min-width: 0;
  max-width: 100%;
}
.designer-formatting-card,
.designer-formatting-card-body,
#designer-selection-controls {
  width: 100%;
}
#designer-selection-position-controls,
.designer-compact-label-row,
.designer-fit-width-row {
  min-width: 0;
}
#designer-selection-alignment,
#designer-selection-name-format,
#designer-selection-date-format,
#designer-selection-font-face,
#designer-selection-x,
#designer-selection-y,
#designer-selection-fit-width {
  max-width: 100%;
  min-width: 0;
}

/* Let the typography toolbar wrap naturally at narrow Inspector widths instead of
   forcing the Inspector wider. This intentionally favors containment over a rigid
   one-line mock-up. */
.designer-format-toolbar-compact {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  min-width: 0;
  gap: .35rem;
  align-items: center;
}
.designer-format-toolbar-compact #designer-selection-font-face {
  flex: 1 1 100px;
  width: auto;
  min-width: 90px;
}
.designer-format-toolbar-compact .designer-font-size-picker {
  flex: 0 0 76px;
  min-width: 0;
}
.designer-format-toolbar-compact .designer-format-toggle {
  flex: 0 0 34px;
}
.designer-format-toolbar-compact #designer-selection-color-picker {
  flex: 0 0 46px;
}

/* Build 028.7 — Individual Placement first-item progressive reveal.
   These controls already use the hidden attribute in the workflow logic; enforce
   it here because the generic Designer label/button layout rules can otherwise
   override the browser's default [hidden] display behavior. */
#designer-individual-field-wrap[hidden],
#designer-individual-name-format-wrap[hidden],
#designer-individual-alignment-wrap[hidden],
#designer-individual-place-btn[hidden] {
  display: none !important;
}


/* Build 028.8 - Starting Pitcher palette/workflow cleanup.
   The Starting Pitcher record summary uses one explicit chevron only and
   keeps the label left-aligned in the same two-column header structure. */
.designer-record-fields.designer-record-direct {
  width: 100%;
  min-width: 0;
}
.designer-record-fields.designer-record-direct > summary.designer-palette-item {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  list-style: none !important;
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr);
  column-gap: 7px;
  align-items: center;
  justify-content: initial;
  text-align: left;
}
.designer-record-fields.designer-record-direct > summary.designer-palette-item::marker {
  content: "";
  font-size: 0;
}
.designer-record-fields.designer-record-direct > summary.designer-palette-item::-webkit-details-marker {
  display: none !important;
}
.designer-record-fields.designer-record-direct > summary.designer-palette-item::before,
.designer-record-fields.designer-record-direct > summary.designer-palette-item::after {
  content: none !important;
  display: none !important;
}
.designer-record-fields.designer-record-direct > summary .designer-palette-chevron {
  display: block;
  grid-column: 1;
  grid-row: 1;
  justify-self: center;
}
.designer-record-fields.designer-record-direct > summary .designer-palette-item-label {
  display: block;
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  justify-self: stretch;
  text-align: left;
}


/* Build 028.9 - Starting Pitcher final palette/workflow polish.
   Use a simple left-aligned flex header for the record card and enter the
   sole Record Layout workflow directly. */
.designer-record-fields.designer-record-direct > summary.designer-palette-item {
  display: flex !important;
  align-items: center;
  justify-content: flex-start !important;
  gap: 7px;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  text-align: left !important;
}
.designer-record-fields.designer-record-direct > summary .designer-palette-chevron {
  flex: 0 0 14px;
  width: 14px;
  margin: 0;
  justify-self: auto;
}
.designer-record-fields.designer-record-direct > summary .designer-palette-item-label {
  flex: 0 1 auto;
  width: auto;
  min-width: 0;
  margin: 0;
  justify-self: auto;
  text-align: left !important;
}

/* Build 028.11 - modal separation.
   Keep the existing dark theme, but make Layout Settings read unmistakably
   as a modal layer over the Designer. No backdrop blur. */
#layout-formatting-dialog::backdrop {
  background: rgba(2, 6, 12, .86);
}
#layout-formatting-dialog .layout-settings-card {
  background: var(--dialog-chrome);
  border: 1px solid rgba(124, 199, 255, .42);
  box-shadow:
    0 42px 120px rgba(0, 0, 0, .90),
    0 0 0 1px rgba(255, 255, 255, .035);
}


/* Build 028.14: compact per-block Bench/Bullpen collection sorting. */
.designer-block-sort-controls {
  display: flex;
  align-items: center;
  gap: .45rem;
  min-width: 0;
}
.designer-block-sort-controls[hidden] { display: none !important; }
.designer-block-sort-controls select {
  width: auto;
  max-width: min(100%, 12rem);
  min-width: 0;
}
.designer-block-sort-direction {
  display: inline-flex;
  align-items: center;
  gap: .15rem;
  flex: 0 0 auto;
}
.designer-block-sort-direction[hidden] { display: none !important; }
.designer-sort-direction-button {
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid var(--border, #374151);
  border-radius: .45rem;
  background: transparent;
  color: var(--muted, #94a3b8);
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
  opacity: .5;
}
.designer-sort-direction-button:hover { opacity: .8; }
.designer-sort-direction-button.active {
  opacity: 1;
  color: var(--accent, #60a5fa);
  border-color: currentColor;
  box-shadow: 0 0 0 1px currentColor, 0 0 .6rem color-mix(in srgb, currentColor 35%, transparent);
}


/* Build 028.17 - final Inspector action polish. */
/* Secondary/destructive Inspector actions use the compact Selected Object language.
   Primary workflow buttons intentionally keep their larger treatment. */
.designer-controls .secondary-button:not(.designer-toolbar-icon),
.designer-controls .danger-button {
  width: auto;
  min-width: 0;
  min-height: 0;
  padding: .22rem .45rem;
  border-radius: 9px;
  font-size: 12px;
  line-height: 1.2;
  white-space: nowrap;
}
.designer-controls .composite-insert-button,
.designer-controls .designer-format-restore {
  min-height: 0;
}

/* Repeated-layout geometry is an Edit Layout action, above the content divider. */
.designer-layout-workspace-actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: .35rem;
  margin-top: .45rem;
}
.designer-layout-workspace-actions[hidden] { display: none !important; }
.designer-layout-workspace-actions:not([hidden]) + .designer-child-workspace-actions:not([hidden]) {
  margin-top: .55rem;
  padding-top: .55rem;
  border-top: 1px solid var(--line);
}

/* Build 030 — Layout Settings parent/child workflow */
.layout-settings-parent-card {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(860px, calc(100vw - 32px));
  max-height: 82vh;
  overflow: hidden;
  padding: 0;
}
.layout-settings-parent-header,
.layout-settings-child-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border-bottom: 1px solid var(--line);
  background: var(--dialog-chrome);
}
.layout-settings-parent-header h3,
.layout-settings-child-header h3 { margin-bottom: .2rem; }
.layout-settings-parent-body {
  display: grid;
  gap: .75rem;
  overflow: auto;
  padding: 1rem;
}
.layout-settings-summary-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
  padding: .9rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-subtle);
}
.layout-settings-summary-copy { min-width: 0; }
.layout-settings-summary-card h4 { margin: 0 0 .2rem; }
.layout-settings-summary-list { display: grid; gap: .35rem; margin: .7rem 0 0; }
.layout-settings-summary-list > div { display: grid; grid-template-columns: 110px minmax(0,1fr); gap: .55rem; }
.layout-settings-summary-list dt { color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.layout-settings-summary-list dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.layout-settings-summary-line { display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; margin-top: .7rem; color: var(--muted); font-size: 12px; }
.layout-settings-open-button { min-width: 72px; }
.layout-settings-parent-footer,
.layout-settings-child-footer {
  margin-top: 0;
  padding: .75rem 1rem;
  border-top: 1px solid var(--line);
  background: var(--dialog-chrome);
}
.layout-settings-child-dialog { width: min(1120px, 95vw); outline: none; }
.layout-settings-child-dialog:focus,
.layout-settings-child-dialog:focus-visible { outline: none; }
.layout-settings-child-dialog::backdrop { background: rgba(2, 6, 12, .62); }
.layout-settings-child-card {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  width: min(1080px, calc(100vw - 32px));
  height: min(84vh, 900px);
  max-height: 84vh;
  overflow: hidden;
  padding: 0;
}
.layout-settings-child-body {
  min-height: 0;
  overflow: auto;
  padding: 1rem;
}
.layout-settings-child-close {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: rgba(255,255,255,.04);
  color: var(--text);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}
.layout-settings-child-close:hover { border-color: rgba(124,199,255,.55); background: rgba(124,199,255,.10); }
.layout-custom-fields-child-card .layout-custom-field-list {
  max-height: none;
  overflow: visible;
  grid-template-columns: repeat(2, minmax(0,1fr));
}
#layout-default-formatting-dialog .layout-formatting-grid { margin: 0; }
@media (max-width: 800px) {
  .layout-settings-summary-card { grid-template-columns: 1fr; }
  .layout-settings-open-button { justify-self: start; }
  .layout-settings-summary-list > div { grid-template-columns: 1fr; gap: .12rem; }
  .layout-custom-fields-child-card .layout-custom-field-list { grid-template-columns: 1fr; }
  .layout-settings-child-header { align-items: flex-start; }
  .layout-custom-fields-header-actions { flex-wrap: wrap; justify-content: flex-end; }
}

/* Build 030.2 — Custom Fields count consistency */
.layout-custom-fields-footer-left { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.layout-custom-field-count { color: var(--muted); font-size: 12px; white-space: nowrap; }

/* Build 031 — flatten generic Text Template palette workflow.
   The category title creates a new generic template; only the chevron toggles
   visibility of existing generic-template instances. */
.designer-palette-category.designer-generic-template-category > summary::before {
  content: none;
}
.designer-palette-category.designer-generic-template-category > summary {
  grid-template-columns: 14px minmax(0, 1fr);
}
.designer-generic-template-category > summary .designer-category-chevron {
  grid-column: 1;
  width: 14px;
  text-align: center;
  color: var(--muted);
  font-size: 10px;
  line-height: 1;
  cursor: pointer;
}
.designer-generic-template-category > summary .designer-category-chevron::before { content: "\25B6"; }
.designer-generic-template-category[open] > summary .designer-category-chevron::before { content: "\25BC"; }
.designer-generic-template-category > summary strong { grid-column: 2; }


/* Build 032.2 — Designer visual consistency pass */
/* Palette utility actions use the same compact language as Inspector secondary actions. */
.designer-palette .secondary-button.compact-button {
  width: auto;
  min-width: 0;
  min-height: 0;
  padding: .22rem .45rem;
  border-radius: 9px;
  font-size: 12px;
  line-height: 1.2;
  white-space: nowrap;
}

/* Page navigation arrows now share the normal Designer toolbar icon dimensions. */
#designer-prev-btn,
#designer-next-btn {
  width: 40px;
  min-width: 40px;
  min-height: 36px;
  padding: 6px;
}

/* Inspector cards: keep outer vertical padding balanced and compact. */
.designer-new-item-panel,
.designer-selected-item-card {
  padding: 10px;
}
.designer-new-item-panel {
  margin-bottom: 10px;
}

/* Text Template editors should read clearly as editable text areas. */
#designer-template-text,
#designer-selection-template,
#designer-column-template {
  border-color: rgba(124,199,255,.42);
  background: rgba(124,199,255,.075);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.025);
}
#designer-template-text:hover,
#designer-selection-template:hover,
#designer-column-template:hover {
  border-color: rgba(124,199,255,.62);
}
#designer-template-text:focus,
#designer-selection-template:focus,
#designer-column-template:focus {
  outline: 2px solid rgba(124,199,255,.24);
  outline-offset: 1px;
  border-color: rgba(124,199,255,.9);
  background: rgba(124,199,255,.10);
}

/* Formatting controls use the compact density of the nearby field selector. */
#designer-selection-position-controls label input,
.designer-compact-label-row select,
.designer-format-toolbar-compact select,
.designer-format-toolbar-compact input,
.designer-format-toolbar-compact .designer-format-toggle,
.designer-format-toolbar-compact .scorecard-color-summary,
.designer-format-toolbar-compact .designer-font-size-menu > summary,
.designer-fit-width-row input {
  min-height: 28px;
  height: 28px;
}
.designer-format-toolbar-compact .designer-format-toggle {
  flex-basis: 28px;
  width: 28px;
  padding: 0;
  font-size: 15px;
}
.designer-format-toolbar-compact .designer-font-size-picker {
  flex-basis: 70px;
}
#designer-selection-position-controls {
  padding-top: .45rem;
  padding-bottom: .55rem;
}
.designer-format-group {
  padding-top: .55rem;
  padding-bottom: .55rem;
}

/* Build 032.2a — Inspector card spacing correction.
   Selected Object is the reference chrome for subordinate Inspector cards. */
.designer-selected-item-card,
.designer-new-item-panel {
  padding: 10px;
}
.designer-selected-item-card .designer-workspace-heading {
  gap: 0;
  padding-bottom: 0;
  border-bottom: 0;
}
.designer-selected-item-card .designer-workspace-heading .section-label,
.designer-new-item-panel .section-label {
  margin-bottom: 2px;
}
.designer-selected-item-card .designer-workspace-heading h4,
.designer-new-item-panel h4 {
  margin-top: 0;
}


/* Build 032.2b — Inspector card and Formatting correction.
   Keep the subordinate Inspector as one visible card, but remove the doubled
   inner padding so its content aligns with Selected Object. */
.designer-subordinate-workspace {
  padding: 10px !important;
}
.designer-selected-item-card {
  padding: 0 !important;
}
.designer-selected-item-card .designer-workspace-heading {
  gap: 0;
  padding-bottom: .55rem;
  border-bottom: 1px solid var(--line);
}
.designer-selected-item-card .designer-workspace-heading .section-label,
.designer-new-item-panel .section-label {
  margin-bottom: 2px;
}
.designer-selected-item-card .designer-workspace-heading h4,
.designer-new-item-panel h4 {
  margin-top: 0;
}

/* Make the Formatting inputs visibly as compact as the nearby token selector. */
#designer-selection-position-controls {
  gap: .35rem .5rem !important;
  padding: .35rem 0 .4rem;
}
#designer-selection-position-controls label input,
.designer-compact-label-row select,
.designer-format-toolbar-compact select,
.designer-format-toolbar-compact input,
.designer-format-toolbar-compact .designer-font-size-menu > summary,
.designer-format-toolbar-compact .designer-format-toggle,
.designer-format-toolbar-compact .scorecard-color-summary,
.designer-fit-width-row input {
  min-height: 24px !important;
  height: 24px !important;
  padding-top: 1px !important;
  padding-bottom: 1px !important;
  font-size: 12px;
}
#designer-selection-position-controls label input,
.designer-compact-label-row select,
.designer-format-toolbar-compact select,
.designer-format-toolbar-compact input,
.designer-fit-width-row input {
  padding-left: 4px !important;
  padding-right: 4px !important;
}
.designer-format-toolbar-compact .designer-format-toggle {
  flex-basis: 24px;
  width: 24px;
  padding: 0 !important;
  font-size: 13px;
}
.designer-format-toolbar-compact .designer-font-size-picker {
  flex-basis: 62px;
}
.designer-format-toolbar-compact .designer-font-size-menu > summary {
  width: 22px;
  padding: 0 !important;
}
.designer-format-toolbar-compact #designer-selection-color-picker {
  flex-basis: 34px;
}
.designer-format-toolbar-compact .scorecard-color-summary {
  width: 34px;
  padding-left: 4px !important;
  padding-right: 4px !important;
}
.designer-format-group {
  padding-top: .4rem;
  padding-bottom: .4rem;
}
.designer-alignment-group,
.designer-defaults-group {
  gap: .35rem;
}
.designer-text-fit-inspector {
  gap: .3rem;
}
.designer-fit-width-row {
  gap: .3rem;
}

/* v0.4 Build 001.3 — application Settings foundation */
.settings-view { display: grid; gap: 18px; }
.settings-view[hidden] { display: none !important; }
.settings-header-card,
.settings-card { margin-bottom: 0; }
.settings-card h3 { margin-bottom: .35rem; }
.settings-favorite-form { margin-top: 1rem; grid-template-columns: minmax(180px, .65fr) minmax(260px, 1.35fr); align-items: end; }
.settings-favorite-form label { display: grid; gap: 8px; }
.settings-favorite-form select {
  width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px;
  background: var(--panel-2); color: var(--text); font: inherit;
}
.settings-favorite-form select:focus { outline: 2px solid rgba(124, 199, 255, .45); outline-offset: 2px; }
.settings-favorite-form select:disabled { opacity: .55; cursor: not-allowed; }
.settings-actions { grid-column: 1 / -1; display: flex; justify-content: flex-start; }
.settings-favorite-form .storage-message { grid-column: 1 / -1; }
.settings-summary-list { display: grid; gap: .55rem; margin: 1rem 0; }
.settings-summary-list > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: .75rem; }
.settings-summary-list dt { color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.settings-summary-list dd { margin: 0; }
.home-settings-link { margin-top: 12px; }

@media (max-width: 720px) {
  .settings-favorite-form { grid-template-columns: 1fr; }
  .settings-actions,
  .settings-favorite-form .storage-message { grid-column: 1; }
  .settings-summary-list > div { grid-template-columns: 1fr; gap: .15rem; }
}

/* v0.4 Build 002.5 — backup and restore workflows */
.backup-settings-card { display: grid; gap: 1rem; }
.backup-intro { max-width: 78ch; }
.backup-workflow-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.backup-workflow-panel { display: flex; flex-direction: column; min-width: 0; padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.018); }
.backup-workflow-panel h4,
.backup-preflight h4 { margin: 0 0 .35rem; }
.backup-panel-heading { display: flex; align-items: flex-start; gap: .7rem; margin-bottom: .7rem; }
.backup-panel-heading .section-label { margin-bottom: .15rem; }
.backup-step { display: inline-grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; border: 1px solid var(--accent); border-radius: 50%; color: var(--accent); font-size: 12px; font-weight: 900; }
.backup-choice { display: grid; gap: .7rem; margin-top: .7rem; padding: .85rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-subtle); }
.backup-choice-primary { border-color: color-mix(in srgb, var(--accent) 32%, var(--line)); }
.backup-choice strong,
.backup-choice small { display: block; }
.backup-choice small { margin-top: .2rem; color: var(--muted); line-height: 1.4; }
.backup-choice .primary-button { justify-self: start; }
.backup-open-restore-button { align-self: flex-start; margin-top: 1rem; }
.backup-single-layout-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .6rem; }
.backup-single-layout-row label { display: grid; gap: .4rem; color: var(--muted); font-size: 12px; font-weight: 800; }
.backup-single-layout-row select {
  width: 100%; min-height: 42px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 10px;
  background: var(--panel-2); color: var(--text); font: inherit;
}
.backup-file-choice { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; margin-top: .8rem; padding: .8rem; border: 1px dashed var(--line); border-radius: 12px; }
.backup-file-button { display: inline-flex; cursor: pointer; }
.backup-file-name { min-width: 0; color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.backup-restore-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin: auto 0 0; padding: 1rem 0 0; list-style: none; }
.backup-restore-steps li { display: grid; gap: .15rem; padding-top: .55rem; border-top: 2px solid var(--line); }
.backup-restore-steps strong { font-size: 12px; }
.backup-restore-steps span { color: var(--muted); font-size: 11px; line-height: 1.35; }
.backup-status { display: none; align-items: flex-start; gap: .55rem; min-height: 21px; padding: .7rem .8rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-subtle); color: var(--muted); font-size: 13px; }
.backup-status:not(:empty) { display: flex; }
.backup-status:not(:empty)::before { content: "•"; flex: 0 0 auto; color: currentColor; font-weight: 900; }
.backup-status.working::before { content: ""; width: 12px; height: 12px; margin-top: 1px; border: 2px solid color-mix(in srgb, var(--accent) 30%, transparent); border-top-color: var(--accent); border-radius: 50%; animation: backup-status-spin .8s linear infinite; }
.backup-status.success { color: var(--success); }
.backup-status.error { color: var(--danger); }
.backup-status.success::before { content: "✓"; }
.backup-status.error::before { content: "!"; }
@keyframes backup-status-spin { to { transform: rotate(360deg); } }
.backup-preflight { padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: rgba(0,0,0,.09); }
.backup-preflight-heading-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.backup-summary-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; margin: .9rem 0; }
.backup-summary-list > div { padding: .65rem; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.025); }
.backup-summary-list dt { color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.backup-summary-list dd { margin: .25rem 0 0; font-weight: 800; overflow-wrap: anywhere; }
.backup-diagnostics { display: grid; gap: .4rem; }
.backup-diagnostic { margin: 0; padding: .55rem .65rem; border-radius: 9px; background: rgba(255,255,255,.035); color: var(--muted); font-size: 12px; }
.backup-diagnostic.error { color: var(--danger); background: rgba(255,92,92,.08); }
.backup-diagnostic.warning { color: #f3c86a; background: rgba(243,200,106,.08); }
.backup-diagnostic.success { color: var(--success); background: color-mix(in srgb, var(--success) 9%, transparent); font-weight: 700; }
.backup-conflicts { display: grid; gap: .6rem; margin-top: .8rem; }
.backup-conflict-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, .55fr); gap: .75rem; align-items: center; padding: .7rem; border: 1px solid var(--line); border-radius: 10px; }
.backup-conflict-row strong,
.backup-conflict-row small { display: block; }
.backup-conflict-row small { margin-top: .2rem; color: var(--muted); }
.backup-conflict-row select { width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel-2); color: var(--text); }
.backup-preflight-actions { display: flex; justify-content: flex-end; gap: .6rem; margin-top: 1rem; }
.backup-confirm-card { width: min(620px, calc(100vw - 32px)); }
.backup-confirm-warning { padding: .7rem .8rem; border-radius: 10px; background: var(--surface-subtle); color: var(--warning-text); font-size: 12px; line-height: 1.45; }
.backup-confirm-card .backup-summary-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* v0.4 Build 003.4a — one-window progressive restore workflow */
.backup-restore-dialog {
  width: min(760px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 32px);
  margin: auto;
  overflow: visible;
}
.backup-restore-dialog-card {
  width: 100%;
  max-width: 100%;
  max-height: calc(100vh - 32px);
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: auto;
}
.backup-dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: .85rem; border-bottom: 1px solid var(--line); }
.backup-dialog-header h3 { margin: 0; }
.backup-restore-stage { padding-top: 1rem; }
.backup-restore-stage h4 { margin: 0 0 .35rem; font-size: 18px; }
.backup-restore-stage[hidden] { display: none !important; }
.backup-restore-dialog .backup-file-choice { margin-top: 1rem; }
.backup-restore-dialog .backup-status { margin-top: 1rem; }
.backup-restore-dialog .backup-preflight { padding: 1rem 0 0; border: 0; border-radius: 0; background: transparent; }
.backup-final-summary { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.backup-final-summary > div:last-child { grid-column: 1 / -1; }
.backup-complete-stage { padding: 1.4rem .4rem .2rem; text-align: center; }
.backup-complete-icon { display: inline-grid; place-items: center; width: 48px; height: 48px; margin-bottom: .8rem; border-radius: 50%; background: color-mix(in srgb, var(--success) 15%, transparent); color: var(--success); font-size: 24px; font-weight: 900; }
.backup-complete-stage .formatting-dialog-actions { text-align: left; }

/* v0.7 Build 002 — in-app local-data reset */
.local-data-reset-card {
  display: grid;
  gap: .8rem;
  border-color: color-mix(in srgb, var(--danger) 32%, var(--line));
}
.local-data-reset-card h3,
.local-data-reset-card .subtle { margin: 0; }
.local-data-reset-actions { display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; }
.local-data-reset-dialog {
  width: min(610px, calc(100vw - 16px));
  max-width: calc(100vw - 16px);
  overflow: hidden;
}
.local-data-reset-dialog-card {
  width: 100%;
  max-width: 100%;
  max-height: calc(100dvh - 16px);
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: auto;
}
.local-data-reset-dialog-card * { box-sizing: border-box; min-width: 0; }
.local-data-reset-dialog-card h3 { margin-bottom: .45rem; }
.local-data-reset-dialog-card p,
.local-data-reset-dialog-card li,
.local-data-reset-confirmation span { overflow-wrap: anywhere; }
.local-data-reset-scope { display: grid; gap: .4rem; margin: .8rem 0; padding-left: 1.3rem; color: var(--muted); }
.local-data-reset-confirmation {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: .65rem;
  margin-top: 1rem;
  padding: .8rem;
  border: 1px solid color-mix(in srgb, var(--danger) 35%, var(--line));
  border-radius: 10px;
  background: color-mix(in srgb, var(--danger) 7%, var(--surface-subtle));
  font-weight: 750;
  line-height: 1.4;
}
.local-data-reset-confirmation input { margin-top: .18rem; }
.local-data-reset-dialog-status { margin-top: .8rem; }
.local-data-reset-dialog-card .formatting-dialog-actions { flex-wrap: wrap; }
.local-data-reset-dialog-card .formatting-dialog-actions button { max-width: 100%; white-space: normal; }

/* v0.7 Build 003 — first-visit welcome and highlights tour */
.onboarding-dialog {
  width: min(640px, calc(100vw - 16px));
  max-width: calc(100vw - 16px);
  max-height: calc(100dvh - 16px);
  margin: auto;
  overflow: hidden;
}
.onboarding-dialog-card {
  width: 100%;
  max-width: 100%;
  max-height: calc(100dvh - 16px);
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: auto;
}
.onboarding-dialog-card * { box-sizing: border-box; min-width: 0; }
.onboarding-stage h3 { margin: 0 0 .55rem; font-size: clamp(1.35rem, 5vw, 1.8rem); }
.onboarding-stage > p { overflow-wrap: anywhere; }
.onboarding-privacy-points { display: grid; gap: .65rem; margin: 1rem 0; }
.onboarding-privacy-points > div {
  display: grid;
  gap: .2rem;
  padding: .75rem .8rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface-subtle);
}
.onboarding-privacy-points span,
.onboarding-step-highlights { color: var(--muted); line-height: 1.45; }
.onboarding-hosting-note { font-size: 12px; }
.onboarding-step-status { float: right; margin: 0; color: var(--muted); font-size: 12px; font-weight: 800; }
.onboarding-step-highlights { display: grid; gap: .5rem; margin: 1rem 0; padding-left: 1.25rem; }
.onboarding-progress { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .35rem; margin-top: 1rem; }
.onboarding-progress > span { height: 4px; border-radius: 999px; background: var(--line); }
.onboarding-progress > span.active { background: var(--accent); }
.onboarding-dialog-actions { flex-wrap: wrap; }
.onboarding-dialog-actions button { max-width: 100%; white-space: normal; }

@media (max-width: 820px) {
  .backup-workflow-grid { grid-template-columns: 1fr; }
  .backup-restore-steps { margin-top: .5rem; }
  .backup-summary-list,
  .backup-confirm-card .backup-summary-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .backup-single-layout-row,
  .backup-conflict-row,
  .backup-summary-list,
  .backup-confirm-card .backup-summary-list { grid-template-columns: 1fr; }
  .backup-choice .primary-button,
  .backup-single-layout-row .secondary-button,
  .backup-open-restore-button { width: 100%; white-space: normal; }
  .backup-restore-steps { grid-template-columns: 1fr; }
  .backup-restore-dialog { width: calc(100vw - 16px); max-width: calc(100vw - 16px); max-height: calc(100vh - 16px); }
  .backup-restore-dialog-card { max-height: calc(100vh - 16px); }
  .backup-final-summary { grid-template-columns: 1fr; }
  .backup-final-summary > div:last-child { grid-column: auto; }
  .local-data-reset-actions > button { width: 100%; white-space: normal; }
  .local-data-reset-dialog { width: calc(100vw - 16px); }
  .local-data-reset-dialog-card .formatting-dialog-actions .dialog-spacer { display: none; }
  .local-data-reset-dialog-card .formatting-dialog-actions button { flex: 1 1 100%; width: 100%; }
  .onboarding-dialog { width: calc(100vw - 16px); }
  .onboarding-dialog-actions .dialog-spacer { display: none; }
  .onboarding-dialog-actions button { flex: 1 1 100%; width: 100%; }
  .onboarding-step-status { float: none; margin-bottom: .35rem; }
}

/* v0.7 Build 005 — in-app guide and contextual Help */
body.help-dialog-open { overflow: hidden; }

.context-help-button {
  display: inline-grid;
  place-items: center;
  width: 32px;
  min-width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--accent);
  background: var(--surface-subtle);
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
}
.context-help-button:hover { color: var(--text); background: var(--surface-hover); }
.context-help-button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.help-heading-row,
.help-heading-inline { display: flex; align-items: center; gap: .55rem; }
.help-heading-row { justify-content: space-between; align-items: flex-start; }
.help-heading-row h3,
.help-heading-row .section-label,
.help-heading-inline h3 { margin-bottom: 0; }
.help-heading-inline .context-help-button { flex: 0 0 32px; }

.help-dialog {
  width: min(1040px, calc(100vw - 24px));
  max-width: calc(100vw - 24px);
  max-height: calc(100dvh - 24px);
  margin: auto;
  overflow: hidden;
}
.help-dialog-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  height: min(780px, calc(100dvh - 24px));
  max-height: calc(100dvh - 24px);
  padding: 0;
  overflow: hidden;
}
.help-dialog-card * { box-sizing: border-box; min-width: 0; }
.help-dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem .85rem;
  border-bottom: 1px solid var(--line);
}
.help-dialog-header h3,
.help-dialog-header p { margin: 0; }
.help-dialog-header .subtle { margin-top: .25rem; }
.help-dialog-header-actions { display: flex; align-items: center; gap: .55rem; flex: 0 0 auto; }
.help-topic-picker { display: none; }
.help-dialog-layout {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  flex: 1 1 auto;
  min-height: 0;
}
.help-toc {
  display: flex;
  flex-direction: column;
  gap: .25rem;
  padding: .85rem;
  overflow-y: auto;
  border-right: 1px solid var(--line);
  background: var(--surface-subtle);
}
.help-toc button {
  width: 100%;
  padding: .65rem .7rem;
  border: 0;
  border-radius: 8px;
  color: var(--muted);
  background: transparent;
  text-align: left;
  font-weight: 750;
  line-height: 1.25;
  cursor: pointer;
}
.help-toc button:hover { color: var(--text); background: var(--surface-hover); }
.help-toc button[aria-current="true"] { color: var(--text); background: color-mix(in srgb, var(--accent) 16%, transparent); }
.help-toc button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.help-article {
  min-height: 0;
  padding: 0 1.25rem 2rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  scroll-behavior: smooth;
}
.help-topic {
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--line);
  scroll-margin-top: .75rem;
}
.help-topic:last-child { border-bottom: 0; }
.help-topic h4 { margin: .1rem 0 .65rem; font-size: 1.3rem; }
.help-topic p { line-height: 1.55; }
.help-topic ul { display: grid; gap: .5rem; padding-left: 1.3rem; color: var(--muted); line-height: 1.5; }
.help-callout { margin: 1rem 0; padding: .85rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-subtle); }
.help-callout p { margin: .3rem 0 0; color: var(--muted); }

@media (prefers-reduced-motion: reduce) {
  .help-article { scroll-behavior: auto; }
}

@media (max-width: 760px) {
  .help-dialog { width: calc(100vw - 16px); max-width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  .help-dialog-card { height: calc(100dvh - 16px); max-height: calc(100dvh - 16px); }
  .help-topic-picker {
    display: grid;
    gap: .3rem;
    padding: .7rem 1rem;
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    background: var(--panel);
    font-size: 12px;
    font-weight: 800;
  }
  .help-topic-picker select { width: 100%; }
  .help-dialog-layout { display: block; overflow: hidden; }
  .help-toc { display: none; }
  .help-article { height: 100%; padding-inline: 1rem; }
  .help-dialog-header-actions { align-items: stretch; }
  .help-dialog-header-actions .secondary-button { padding-inline: .7rem; }
}

.whats-new-dialog {
  width: min(640px, calc(100vw - 24px));
  max-width: calc(100vw - 24px);
  max-height: calc(100dvh - 24px);
  margin: auto;
  overflow: hidden;
}
.whats-new-dialog-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  max-height: calc(100dvh - 24px);
  overflow: hidden;
}
.whats-new-dialog-card * { box-sizing: border-box; min-width: 0; }
.whats-new-dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.whats-new-dialog-header h3,
.whats-new-dialog-header p { margin: 0; }
.whats-new-dialog-card > .subtle { margin-bottom: .4rem; }
.whats-new-entries { min-height: 0; overflow-y: auto; padding: .35rem 0 .75rem; }
.whats-new-entry { padding: .8rem 0 1rem; border-bottom: 1px solid var(--line); }
.whats-new-entry:first-child { padding-top: .35rem; }
.whats-new-entry:last-child { border-bottom: 0; }
.whats-new-entry h4,
.whats-new-entry p { margin: 0; }
.whats-new-entry h4 { font-size: 1.1rem; }
.whats-new-entry p:not(.section-label) { margin-top: .4rem; color: var(--muted); line-height: 1.45; }
.whats-new-entry ul { margin-bottom: 0; color: var(--muted); line-height: 1.45; }

@media (max-width: 560px) {
  .whats-new-dialog { width: calc(100vw - 16px); max-width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
  .whats-new-dialog-card { max-height: calc(100dvh - 16px); }
}

/* v0.4 Build 003.1 — persisted application appearance */
.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;
}

.appearance-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .7rem;
  margin: 1rem 0 .7rem;
  padding: 0;
  border: 0;
}

.appearance-option {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  min-width: 0;
  padding: .85rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.025);
  cursor: pointer;
}

.appearance-option:has(input:checked) {
  border-color: color-mix(in srgb, var(--accent) 62%, transparent);
  background: color-mix(in srgb, var(--accent) 11%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent);
}

.appearance-option input { margin: .2rem 0 0; accent-color: var(--accent); }
.appearance-option span { display: grid; gap: .2rem; min-width: 0; }
.appearance-option strong { color: var(--text); }
.appearance-option small { color: var(--muted); line-height: 1.35; }
.appearance-status { min-height: 21px; margin: 0; color: var(--muted); font-size: 13px; }
.appearance-status.error { color: var(--danger); }

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--accent) 72%, white);
  outline-offset: 2px;
}

:root[data-theme="light"] {
  color-scheme: light;
  --bg: #eef3f8;
  --panel: #ffffff;
  --panel-2: #eef2f7;
  --panel-3: #e0e7ef;
  --text: #172235;
  --muted: #536276;
  --muted-2: #6c798a;
  --line: rgba(24, 39, 58, .16);
  --accent: #086aa8;
  --accent-contrast: #ffffff;
  --good: #187a44;
  --warn: #8a5b00;
  --danger: #b4232c;
  --success-text: #146c3a;
  --warning-text: #765000;
  --danger-text: #a9232d;
  --selection-text: #704900;
  --surface-subtle: rgba(20, 47, 76, .035);
  --surface-soft: rgba(20, 47, 76, .06);
  --surface-inset: rgba(20, 47, 76, .055);
  --surface-deep: rgba(20, 47, 76, .09);
  --surface-hover: rgba(8, 106, 168, .10);
  --dialog-chrome: #f3f6f9;
  --shadow: 0 16px 38px rgba(31, 47, 67, .13);
  --border: rgba(24, 39, 58, .16);
  --card-bg: #ffffff;
}

:root[data-theme="light"] body {
  background: radial-gradient(circle at top left, #d7eafb 0, var(--bg) 42%);
}

:root[data-theme="light"] .app-header {
  background: rgba(248, 250, 252, .96);
}

:root[data-theme="light"] .card {
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.82));
}

:root[data-theme="light"] .primary-button {
  color: #ffffff;
  border-color: #075b91;
  text-shadow: 0 1px 1px rgba(0,0,0,.18);
}

:root[data-theme="light"] .brand-mark {
  color: #ffffff;
  background: linear-gradient(145deg, #086aa8, #4faee6);
  box-shadow: 0 10px 24px rgba(8,106,168,.20);
}

:root[data-theme="light"] .app-header-status,
:root[data-theme="light"] .backup-workflow-panel,
:root[data-theme="light"] .backup-summary-list > div,
:root[data-theme="light"] .layout-list-item,
:root[data-theme="light"] .layout-settings-section,
:root[data-theme="light"] .designer-selected-item-card,
:root[data-theme="light"] .designer-formatting-card,
:root[data-theme="light"] .pitcher-display-option,
:root[data-theme="light"] .appearance-option {
  background: rgba(20, 47, 76, .035);
}

:root[data-theme="light"] .foundation-status div,
:root[data-theme="light"] .message-panel,
:root[data-theme="light"] .game-row,
:root[data-theme="light"] .home-matchup-facts > div,
:root[data-theme="light"] .gameday-stat,
:root[data-theme="light"] .backup-preflight,
:root[data-theme="light"] .layout-field-picker-group,
:root[data-theme="light"] .layout-settings-card .layout-formatting-row,
:root[data-theme="light"] .layout-settings-card .layout-conditional-section {
  background: var(--surface-inset);
}

:root[data-theme="light"] .designer-palette,
:root[data-theme="light"] .designer-controls,
:root[data-theme="light"] .composite-preview,
:root[data-theme="light"] .designer-selection-template-editor,
:root[data-theme="light"] .designer-palette-tools,
:root[data-theme="light"] .designer-multi-selection-controls {
  background: var(--surface-inset);
}

:root[data-theme="light"] .designer-stage-panel {
  border-color: rgba(24,39,58,.24);
}

:root[data-theme="light"] .designer-stage-panel .pdf-toolbar,
:root[data-theme="light"] .designer-palette-item,
:root[data-theme="light"] .designer-font-size-menu > summary,
:root[data-theme="light"] .designer-format-toggle,
:root[data-theme="light"] .scorecard-color-summary,
:root[data-theme="light"] .designer-multi-align-grid button,
:root[data-theme="light"] .layout-custom-fields-close,
:root[data-theme="light"] .layout-settings-child-close,
:root[data-theme="light"] .layout-form-grid input {
  background: var(--panel-2);
}

:root[data-theme="light"] .layout-field-picker-item {
  border-bottom-color: var(--line);
}

:root[data-theme="light"] .layout-settings-card {
  border-color: rgba(8,106,168,.35);
}

:root[data-theme="light"] .formatting-dialog::backdrop,
:root[data-theme="light"] .dark-message-dialog::backdrop,
:root[data-theme="light"] #layout-formatting-dialog::backdrop,
:root[data-theme="light"] .layout-settings-child-dialog::backdrop {
  background: rgba(28,39,54,.52);
}

:root[data-theme="light"] .designer-paste-options button:hover,
:root[data-theme="light"] .designer-zoom-options > button:not(.compact-button):hover,
:root[data-theme="light"] .gameday-section-nav a:hover,
:root[data-theme="light"] .gameday-section-nav a:focus-visible {
  background: var(--surface-hover);
}

:root[data-theme="light"] .nav-item.active {
  background: rgba(8, 106, 168, .12);
}

:root[data-theme="light"] .pill.neutral {
  background: rgba(20, 47, 76, .06);
}

:root[data-theme="light"] .pill.ready,
:root[data-theme="light"] .mini-readiness.ready { color: #126336; }
:root[data-theme="light"] .diagnostic-status.available,
:root[data-theme="light"] .source-outcome-success { color: var(--success-text); }
:root[data-theme="light"] .mini-readiness.warning,
:root[data-theme="light"] .diagnostic-status.partial,
:root[data-theme="light"] .source-outcome-partial,
:root[data-theme="light"] .backup-diagnostic.warning,
:root[data-theme="light"] .backup-confirm-warning,
:root[data-theme="light"] .gameday-classification-note.fallback { color: var(--warning-text); }
:root[data-theme="light"] .pill.error,
:root[data-theme="light"] .message-panel.error,
:root[data-theme="light"] .diagnostic-status.sourceUnavailable,
:root[data-theme="light"] .diagnostic-status.error,
:root[data-theme="light"] .source-outcome-failed { color: var(--danger-text); }
:root[data-theme="light"] .danger-button { color: var(--danger-text); }
:root[data-theme="light"] .game-date-row input[type="date"] { color-scheme: light; }
:root[data-theme="light"] .layout-settings-card { box-shadow: 0 26px 80px rgba(31,47,67,.28); }

@media (max-width: 620px) {
  .appearance-options { grid-template-columns: 1fr; }
}

/* v0.4 Build 004.7 — responsive, touch, and dialog hardening */
dialog {
  max-inline-size: calc(100vw - 16px);
  max-block-size: calc(100dvh - 16px);
}

.formatting-dialog-card,
.backup-restore-dialog,
.backup-restore-dialog-card {
  max-block-size: calc(100dvh - 16px);
}

.layout-settings-shell {
  height: min(84dvh, 900px);
  max-height: min(84dvh, 900px);
}

.layout-settings-dialog {
  width: min(1120px, calc(100vw - 16px));
  max-width: calc(100vw - 16px);
  height: min(900px, calc(100vh - 16px));
  height: min(900px, calc(100dvh - 16px));
  max-height: calc(100vh - 16px);
  max-height: calc(100dvh - 16px);
  box-sizing: border-box;
  overflow: hidden;
  overscroll-behavior: contain;
}
.layout-settings-dialog > .layout-settings-shell {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
}

.layout-settings-shell-body,
.layout-settings-internal-view,
.layout-custom-field-list,
.layout-field-picker-group,
.layout-field-picker-side-column,
.designer-grid,
.designer-palette,
.designer-stage-panel,
.designer-controls {
  min-width: 0;
}

.layout-settings-shell,
.layout-settings-shell * { box-sizing: border-box; }
.layout-settings-shell-body {
  max-width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.layout-settings-summary-view,
.layout-settings-summary-card,
.layout-settings-internal-view { max-width: 100%; }

html:has(.layout-settings-dialog[open]),
body:has(.layout-settings-dialog[open]) {
  overflow: hidden;
  overscroll-behavior: none;
}

@media (max-width: 800px) {
  .layout-settings-dialog {
    height: calc(100vh - 16px);
    height: calc(100dvh - 16px);
  }

  .layout-settings-shell {
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
  }

  .layout-settings-shell-header,
  .layout-settings-shell-body,
  .layout-settings-shell-footer { padding: .75rem; }

  .layout-field-picker-toolbar {
    top: -.75rem;
    margin: -.75rem -.75rem .75rem;
    padding: .75rem;
  }
}

@media (max-width: 620px) {
  .layout-field-picker-side-grid { grid-template-columns: minmax(0, 1fr); }
  .layout-field-picker-side-column + .layout-field-picker-side-column {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .layout-settings-shell-footer > div:not([hidden]) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .layout-settings-shell-footer .dialog-spacer { display: none; }
  .layout-settings-shell-footer button {
    min-width: 0;
    min-height: 42px;
    white-space: normal;
  }
  .layout-custom-fields-footer-left { grid-column: 1 / -1; }

  .layout-field-picker-heading {
    grid-template-columns: 12px minmax(0, 1fr);
  }
  .layout-field-picker-heading > .layout-field-picker-actions {
    grid-column: 2;
    justify-content: flex-start;
    flex-wrap: wrap;
    padding: .35rem 0 0;
  }
}

@media (max-width: 900px) {
  body.designer-mode .designer-view > .card { padding: 8px; }
  .designer-grid { gap: 10px; }
  .designer-stage-panel { min-height: min(68dvh, 720px); }
  .designer-stage-scroll { -webkit-overflow-scrolling: touch; }
}

@media (pointer: coarse) {
  .app-nav .nav-item,
  .layout-settings-shell button,
  .backup-restore-dialog button,
  .designer-palette button,
  .designer-controls button,
  .designer-tool-section > summary,
  .designer-multi-select-toggle,
  .layout-field-picker-group > summary,
  .layout-field-picker-item {
    min-height: 44px;
  }

}

@media (prefers-reduced-motion: reduce) {
  html:focus-within { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* v0.4 Build 004.8 — bounded Home controls and non-duplicative team standings */
.home-browser-controls {
  grid-template-columns: minmax(220px, 300px) minmax(150px, 220px) auto auto;
  justify-content: start;
}
.home-browser-controls > label:first-child { width: min(100%, 300px); }
.home-browser-controls > label:nth-child(2) { width: min(100%, 220px); }
.home-browser-controls > button { justify-self: start; }

[data-detail-level="advanced"] [data-gameday-team-summary],
[data-detail-level="compact"] [data-gameday-team-advanced],
[data-detail-level="standard"] [data-gameday-team-advanced] { display: none !important; }

.gameday-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gameday-team-card,
.gameday-team-card + .gameday-team-card { padding: 0; border-left: 0; }
.gameday-team-home { padding-left: 28px !important; border-left: 1px solid var(--line) !important; }
.gameday-team-facts { width: 100%; max-width: 460px; }
.gameday-team-embedded-standings { margin-top: 14px; }
.gameday-team-shared-standings { min-width: 0; padding-inline: 18px; border-inline: 1px solid var(--line); }

[data-detail-level="advanced"] .gameday-team-grid-shared-division {
  grid-template-columns: minmax(210px, .65fr) minmax(560px, 1.7fr) minmax(210px, .65fr);
  column-gap: 18px;
}

[data-detail-level="compact"] .gameday-team-grid-series,
[data-detail-level="standard"] .gameday-team-grid-series,
[data-detail-level="advanced"] .gameday-team-grid-series {
  grid-template-columns: minmax(210px, .75fr) minmax(260px, .9fr) minmax(210px, .75fr);
  column-gap: 18px;
}
.gameday-series-context { min-width: 0; padding: 10px 18px; border-inline: 1px solid var(--line); text-align: center; align-self: stretch; }
.gameday-series-context > span { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.gameday-series-context h3 { margin: 5px 0 8px; }
.gameday-series-meta { margin: 0 0 8px; color: var(--text); font-size: 13px; font-weight: 700; }
.gameday-series-context > strong { display: block; color: var(--text); }
.gameday-wild-card-note { grid-column: 1 / -1; margin: 0; }
[data-detail-level="advanced"] .gameday-team-grid-shared-division .gameday-team-home {
  padding-left: 0 !important;
  border-left: 0 !important;
}
[data-detail-level="advanced"] .gameday-team-grid-shared-division .gameday-team-facts { grid-template-columns: 1fr; }

@media (max-width: 1280px) {
  [data-detail-level="advanced"] .gameday-team-grid,
  [data-detail-level="advanced"] .gameday-team-grid-shared-division { grid-template-columns: minmax(0, 1fr); row-gap: 16px; }
  [data-detail-level="advanced"] .gameday-team-home,
  [data-detail-level="advanced"] .gameday-team-grid-shared-division .gameday-team-home {
    padding: 16px 0 0 !important;
    border-top: 1px solid var(--line);
    border-left: 0 !important;
  }
  .gameday-team-shared-standings { padding: 16px 0; border-inline: 0; border-block: 1px solid var(--line); }
  [data-detail-level="compact"] .gameday-team-grid-series,
  [data-detail-level="standard"] .gameday-team-grid-series,
  [data-detail-level="advanced"] .gameday-team-grid-series { grid-template-columns: minmax(0, 1fr); row-gap: 16px; }
  .gameday-series-context { padding: 16px 0; border-inline: 0; border-block: 1px solid var(--line); }
  .gameday-team-grid-series .gameday-team-home { padding: 16px 0 0 !important; border-top: 1px solid var(--line); border-left: 0 !important; }
}

@media (max-width: 940px) {
  .home-browser-controls {
    grid-template-columns: minmax(220px, 300px) minmax(150px, 220px);
    justify-content: start;
  }
}

@media (max-width: 620px) {
  .settings-preference-grid .settings-favorite-form { grid-template-columns: minmax(0, 1fr); }
  .settings-preference-grid .settings-actions,
  .settings-preference-grid .settings-favorite-form .storage-message { grid-column: 1; }
  .home-browser-controls { grid-template-columns: minmax(0, 1fr); }
  .gameday-team-home { padding: 12px 0 0 !important; border-top: 1px solid var(--line); border-left: 0 !important; }
}

/* v0.5 Build 002.2 — season-aware Advanced team context */
.gameday-team-context-empty { grid-column: 1 / -1; margin: 7px 0 2px; line-height: 1.45; }
[data-detail-level="advanced"] .gameday-team-facts { align-content: start; }
[data-detail-level="advanced"] .gameday-team-embedded-standings .empty-row { margin-top: 4px; }

/* v0.4 Build 004.8a — fit Advanced player tables in a full-screen two-team grid */
[data-detail-level="advanced"] .gameday-batter-table,
[data-detail-level="advanced"] .gameday-pitcher-table { width: 640px; }
[data-detail-level="advanced"] .gameday-batter-table th:nth-child(1),
[data-detail-level="advanced"] .gameday-batter-table td:nth-child(1) { width: 36px; min-width: 36px; max-width: 36px; }
[data-detail-level="advanced"] .gameday-batter-table th:nth-child(2),
[data-detail-level="advanced"] .gameday-batter-table td:nth-child(2),
[data-detail-level="advanced"] .gameday-pitcher-table th:nth-child(2),
[data-detail-level="advanced"] .gameday-pitcher-table td:nth-child(2) { width: 150px; min-width: 150px; max-width: 150px; }
[data-detail-level="advanced"] .gameday-batter-table th:nth-child(3),
[data-detail-level="advanced"] .gameday-batter-table td:nth-child(3) { width: 38px; min-width: 38px; max-width: 38px; }
[data-detail-level="advanced"] .gameday-batter-table th:nth-child(4),
[data-detail-level="advanced"] .gameday-batter-table td:nth-child(4) { width: 26px; min-width: 26px; max-width: 26px; }
[data-detail-level="advanced"] .gameday-pitcher-table th:nth-child(1),
[data-detail-level="advanced"] .gameday-pitcher-table td:nth-child(1) { width: 40px; min-width: 40px; max-width: 40px; }
[data-detail-level="advanced"] .gameday-pitcher-table th:nth-child(3),
[data-detail-level="advanced"] .gameday-pitcher-table td:nth-child(3) { width: 38px; min-width: 38px; max-width: 38px; }
[data-detail-level="advanced"] .gameday-pitcher-table th:nth-child(4),
[data-detail-level="advanced"] .gameday-pitcher-table td:nth-child(4),
[data-detail-level="advanced"] .gameday-pitcher-table th:nth-child(6),
[data-detail-level="advanced"] .gameday-pitcher-table td:nth-child(6) { width: 34px; }
[data-detail-level="advanced"] .gameday-pitcher-table th:nth-child(10),
[data-detail-level="advanced"] .gameday-pitcher-table td:nth-child(10),
[data-detail-level="advanced"] .gameday-pitcher-table th:nth-child(11),
[data-detail-level="advanced"] .gameday-pitcher-table td:nth-child(11),
[data-detail-level="advanced"] .gameday-pitcher-table th:nth-child(12),
[data-detail-level="advanced"] .gameday-pitcher-table td:nth-child(12),
[data-detail-level="advanced"] .gameday-pitcher-table th:nth-child(13),
[data-detail-level="advanced"] .gameday-pitcher-table td:nth-child(13) { width: 36px; }

/* v0.4 Build 004.8b — automatic Home schedule and compact Settings cards */
.settings-preference-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  align-items: start;
}
.settings-preference-grid .settings-favorite-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.settings-preference-grid .settings-actions { grid-column: 1; }
.settings-preference-grid .settings-favorite-form .storage-message { grid-column: 1 / -1; }

#live-pdf-layout-select { min-width: 0; max-width: 100%; }

.home-browser-controls {
  grid-template-columns: minmax(220px, 300px) 160px minmax(280px, 480px);
}
.home-browser-controls > label:nth-child(2) { width: min(100%, 160px); }
.home-browser-controls > label:nth-child(3) { width: min(100%, 480px); }
.home-browser-controls input[type="search"] {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-2);
  color: var(--text);
  font: inherit;
}
.home-browser-controls input[type="search"]:focus { outline: 2px solid rgba(124,199,255,.45); outline-offset: 2px; }
.home-results-summary { display: flex; justify-content: flex-end; min-height: 20px; margin-bottom: 8px; }
#home-game-count { padding-bottom: 0; }
.selected-game-empty[hidden] { display: none !important; }

@media (max-width: 1100px) {
  .settings-preference-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 940px) {
  .home-browser-controls {
    grid-template-columns: minmax(220px, 300px) 160px;
  }
  .home-browser-controls > label:nth-child(3) { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .home-browser-controls { grid-template-columns: minmax(0, 1fr); }
  .home-browser-controls > label:nth-child(2),
  .home-browser-controls > label:nth-child(3) { width: 100%; grid-column: auto; }
}

/* v0.4 Build 004.8c — sibling Home cards with a fixed schedule header */
.home-workspace {
  display: grid;
  grid-template-columns: minmax(680px, 1.05fr) minmax(520px, .95fr);
  gap: 18px;
  align-items: start;
}
.home-workspace[hidden] { display: none !important; }
.home-workspace .home-schedule-card { min-width: 0; margin-bottom: 0; overflow: hidden; }
.home-workspace .selected-game-card {
  position: sticky;
  top: calc(var(--app-header-height) + 18px);
  min-width: 0;
  margin-bottom: 0;
  align-self: start;
}

@media (min-width: 1281px) {
  .home-workspace .home-schedule-card {
    display: flex;
    flex-direction: column;
    max-height: calc(100dvh - var(--app-header-height) - 160px);
    min-height: 0;
  }
  .home-workspace .home-schedule-card > #pregame-content {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }
  .home-workspace .home-game-results {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
  }
  .home-workspace .home-game-groups {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    overscroll-behavior: contain;
    align-content: start;
  }
}

@media (max-width: 1280px) {
  .home-workspace { grid-template-columns: minmax(0, 1fr); }
  .home-workspace .selected-game-card { position: static; }
}

/* v0.4 Build 004.8d — content-sized schedule card and compact game rows */
.home-workspace .game-choice-list { gap: 6px; }
.home-workspace .game-choice-button { align-items: center; padding: 10px 12px; }
.home-workspace .game-choice-button > span:first-child { display: block; }

/* v0.5 Build 002.2a — contain long Home schedules inside their card */
/* v0.7 Build 007 — whole-object division standings tables */
.designer-standings-table-marker {
  position: absolute;
  z-index: 4;
  display: grid;
  grid-template-columns: repeat(var(--standings-panels, 2), minmax(0, 1fr));
  gap: 6px;
  padding: 3px;
  border: 1px dashed #2878be;
  border-radius: 3px;
  background: rgb(255 255 255 / 88%);
  color: #07192d;
  text-align: left;
  cursor: move;
  transform: none;
  pointer-events: auto;
  touch-action: none;
  box-sizing: border-box;
}
.designer-standings-table-marker.selected-object { outline: 3px solid rgb(43 132 224 / 42%); outline-offset: 2px; }
.designer-standings-panel { display: flex; min-width: 0; flex-direction: column; gap: 0; font-family: Arial, sans-serif; font-size: var(--standings-font-size, 8px); line-height: var(--standings-line-height, 10.56px); }
.designer-standings-panel > strong { overflow: hidden; margin-inline: var(--standings-cell-inset, .75px); color: #082d51; font-size: var(--standings-title-size, 9px); line-height: var(--standings-line-height, 10.56px); white-space: nowrap; text-overflow: ellipsis; }
.designer-standings-panel > em { padding: 4px; color: #5f7185; font-style: normal; }
.designer-standings-row { display: grid; min-width: 0; margin-inline: var(--standings-cell-inset, .75px); }
.designer-standings-row > span { overflow: hidden; box-sizing: border-box; padding-right: var(--standings-cell-inset, .75px); white-space: nowrap; text-overflow: ellipsis; }
.designer-standings-row.header { color: #183b5c; font-weight: 700; }
.designer-standings-row.selected-team { font-weight: 700; }
.standings-table-editor { display: grid; gap: 12px; }
.standings-table-editor-heading { display: grid; gap: 2px; }
.standings-table-editor-heading span { color: var(--muted); font-size: .84rem; }
.standings-table-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.standings-table-editor-grid label { display: grid; gap: 4px; font-size: .78rem; font-weight: 700; }
.standings-table-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; padding: 9px; border: 1px solid var(--line); border-radius: 10px; }
.standings-table-columns legend { padding: 0 4px; font-size: .78rem; font-weight: 800; }
.standings-table-columns label, .standings-table-toggles label { font-size: .78rem; }
.standings-table-column-choice { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 2px; padding: 5px 6px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
.standings-table-column-choice label,
.standings-table-toggles label { display: flex !important; flex-direction: row !important; align-items: center; gap: 6px; min-width: 0; margin: 0; }
.standings-table-column-choice input[type="checkbox"],
.standings-table-toggles input[type="checkbox"] { flex: 0 0 auto; width: auto !important; min-height: 0; margin: 0; }
.standings-column-order-button { width: 22px; min-height: 22px; padding: 0; border: 0; background: transparent; color: var(--accent); cursor: pointer; }
.standings-table-toggles { display: grid; gap: 6px; }
.standings-compact-preset { grid-column: 1 / -1; justify-self: start; }
.designer-standings-resize-handle { position: absolute; right: -7px; bottom: -7px; width: 14px; height: 14px; border: 2px solid #fff; border-radius: 50%; background: #1675b8; box-shadow: 0 1px 3px rgb(0 0 0 / 35%); cursor: ew-resize; touch-action: none; }
@media (max-width: 720px) { .standings-table-editor-grid { grid-template-columns: 1fr; } }

/* v1.1 Designer help and community entry points */
.home-community-link { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .35rem 1rem; align-items: baseline; padding: .35rem .25rem; font-size: .9rem; }
.home-community-link span { color: var(--muted); }
.home-community-link a { color: var(--accent); }
.home-community-link a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.help-nav-group { margin: .75rem .7rem .25rem; }
.help-topic ol { padding-left: 1.4rem; color: var(--muted); line-height: 1.55; }
.help-topic ol li + li { margin-top: .6rem; }
#designer-live-inspector .help-heading-inline { align-items: center; }
#designer-live-inspector .help-heading-inline h4 { margin-bottom: 0; }
.context-help-button[hidden] { display: none !important; }

/* v1.1 Build 003 — Help search */
.help-search-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .75rem 1.1rem .35rem; border-bottom: 1px solid var(--line); flex: 0 0 auto; }
.help-search-bar input { flex: 1 1 220px; min-width: 0; width: 100%; }
.help-search-status { flex: 0 0 100%; margin: 0; color: var(--muted); font-size: .85rem; min-height: 1.2em; }
.help-reading-pane { min-width: 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.help-reading-pane > .help-article { flex: 1 1 auto; }
.help-search-results { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 1rem 1.25rem; }
.help-search-results h4 { margin: 0 0 .75rem; }
.help-search-result-list { display: grid; gap: .65rem; list-style: none; padding: 0; margin: 0; }
.help-search-result-list button { display: grid; gap: .35rem; width: 100%; padding: .8rem; border: 1px solid var(--line); border-radius: 8px; text-align: left; white-space: normal; overflow-wrap: anywhere; color: var(--text); background: var(--surface-subtle); cursor: pointer; }
.help-search-result-list button:hover { background: var(--surface-hover); }
.help-search-result-list button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.help-search-result-list span { color: var(--muted); line-height: 1.45; }
.help-dialog mark[data-help-search-mark] { color: #17202a; background: #ffe38a; border-radius: 2px; }
.help-search-results[hidden], .help-reading-pane > .help-article[hidden], .help-search-bar button[hidden] { display: none !important; }
@media (max-width: 760px) {
  .help-reading-pane { height: 100%; }
  .help-search-bar { padding-inline: .85rem; }
  .help-search-results { padding-inline: 1rem; }
}
