:root {
  color-scheme: light;
  --bg: #f4f6f8;
  --bg-wash: #e8f1f8;
  --card: #faf8f1;
  --card-soft: #f8fafc;
  --text: #17324d;
  --muted: #60758a;
  --primary: #1b6b3a;
  --primary-hover: #155a30;
  --header-green: #1f5b40;
  --border: #d9e2ec;
  --error: #c2413b;
  --error-soft: #fff0ee;
  --info-soft: #e8f1f8;
  --info-text: #23415f;
  --warn-soft: #fff7e6;
  --warn: #a16207;
  --ok-soft: #edf9f1;
  --ok: #217a45;
  --secondary-soft: #e8f5ec;
  --secondary-border: #b7d4c2;
  --secondary-text: #1f5b40;
  --disabled: #94a3b8;
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

body {
  margin: 0;
  min-height: 100vh;
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  background: linear-gradient(160deg, var(--bg-wash) 0%, var(--bg) 48%, #eef3f0 100%);
  color: var(--text);
  line-height: 1.5;
}

.page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 1.25rem;
}

.card {
  width: min(640px, 100%);
  padding: 2rem;
  border-radius: 18px;
  background: var(--card);
  box-shadow: 0 10px 30px rgba(23, 50, 77, 0.12);
}

.card h1 {
  margin: 0 0 0.75rem;
  font-size: 1.75rem;
}

/* Login — full-bleed course photo + frosted card (BVG feel only) */
body.page-login {
  min-height: 100dvh;
  background-color: #1a2e1a;
  background-image: url("/images/nlcc-login.jpg");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: scroll;
}

.page-login__shell {
  align-content: start;
  justify-items: center;
  min-height: 100dvh;
  padding:
    max(1.25rem, env(safe-area-inset-top, 0px))
    max(1.25rem, env(safe-area-inset-right, 0px))
    max(1.25rem, env(safe-area-inset-bottom, 0px))
    max(1.25rem, env(safe-area-inset-left, 0px));
  padding-top: max(8vh, calc(env(safe-area-inset-top, 0px) + 1.1rem));
  gap: 1.75rem;
}

.page-login__brand {
  width: min(400px, 100%);
  padding: 1rem 1.15rem 1.1rem;
  border-radius: 16px;
  text-align: center;
  color: #fff;
  background: rgba(18, 28, 18, 0.48);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.65), 0 2px 10px rgba(0, 0, 0, 0.4);
}

.page-login__brand h1 {
  margin: 0 0 0.25rem;
  font-size: clamp(1.65rem, 6vw, 2rem);
  line-height: 1.15;
  color: #fff;
}

.page-login__subtitle {
  margin: 0 0 0.65rem;
  font-size: 1.125rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
}

.page-login__lead {
  margin: 0;
  font-size: 1rem;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.92);
}

.page-login__card {
  width: min(400px, 100%);
  padding: 1.35rem 1.25rem 1.2rem;
  border-radius: 18px;
  background: rgba(250, 248, 241, 0.72);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.5);
  box-shadow: 0 12px 36px rgba(10, 20, 10, 0.35);
}

.page-login__hint {
  margin: 1rem 0 0;
  text-align: center;
}

.page-login__back {
  margin-top: 0.75rem;
}

.lead {
  margin: 0 0 1.5rem;
  color: var(--muted);
  font-size: 1.125rem;
}

label {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 1.125rem;
  font-weight: 600;
}

input[type="text"],
input[type="email"],
input[type="tel"] {
  width: 100%;
  padding: 0.875rem 1rem;
  margin-bottom: 1.25rem;
  border: 2px solid var(--border);
  border-radius: 10px;
  font-size: 1.25rem;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus {
  outline: 3px solid rgba(27, 107, 58, 0.25);
  border-color: var(--primary);
}

.btn {
  display: inline-block;
  width: 100%;
  padding: 1rem 1.25rem;
  border: none;
  border-radius: 12px;
  font-size: 1.25rem;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.btn-primary {
  background: var(--primary);
  color: #fff;
}

.btn-primary:hover {
  background: var(--primary-hover);
}

.btn-secondary {
  background: var(--secondary-soft);
  color: var(--secondary-text);
  border: 1px solid var(--secondary-border);
}

.btn-secondary:hover {
  background: var(--ok-soft);
  border-color: #9fc4ad;
}

.btn-secondary:active {
  background: #dcefe3;
}

.btn-danger {
  background: #b42318;
  color: #fff;
}

.btn-danger:hover:not(:disabled) {
  background: #912018;
}

.admin-danger-zone {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid #fecdca;
}

.admin-danger-zone h2 {
  color: var(--error);
}

.admin-delete-blocked {
  margin: 0 0 1rem;
  padding: 0.875rem 1rem;
  border-radius: 10px;
  background: #fef3f2;
  color: var(--error);
}

.admin-delete-warning {
  margin: 0 0 1rem;
  padding: 0.875rem 1rem;
  border-radius: 10px;
  background: #fffaeb;
  color: #b54708;
  white-space: pre-wrap;
}

.admin-delete-modal label[hidden],
.admin-delete-modal input[hidden] {
  display: none;
}

.admin-delete-modal label:not([hidden]) {
  display: block;
  margin-top: 0.75rem;
}

.admin-delete-modal input[type="password"]:not([hidden]) {
  display: block;
  width: 100%;
  margin-bottom: 0.5rem;
}

.btn:disabled,
.btn-disabled,
.btn-primary:disabled:hover {
  background: #e2e8f0;
  color: var(--disabled);
  cursor: not-allowed;
}

.error {
  margin: 0 0 1rem;
  padding: 0.875rem 1rem;
  border-radius: 10px;
  background: #fef3f2;
  color: var(--error);
  font-size: 1.0625rem;
}

/* INFO — read-only (quiet). No chevron, no “press me” shadow. */
.info-box {
  margin: 1.25rem 0;
  padding: 1rem 1.125rem;
  border-radius: 12px;
  background: var(--card-soft);
  border: 1px solid var(--border);
  box-shadow: none;
}

.info-box strong {
  display: block;
  margin-bottom: 0.25rem;
  font-size: 1.125rem;
}

/* ACTION — tappable cards/rows. Clear without hover (phones). */
.action-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  margin: 0;
  padding: 1.1rem 1.15rem;
  border: 2px solid #b7c9d8;
  border-radius: 12px;
  background: var(--info-soft);
  color: var(--text);
  text-align: left;
  text-decoration: none;
  font: inherit;
  cursor: pointer;
  box-shadow: none;
}

.action-card:active {
  background: #dceaf4;
  border-color: #9eb6c9;
}

.action-card__body {
  flex: 1;
  min-width: 0;
  display: grid;
  gap: 0.2rem;
}

.action-card__title {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--text);
}

.action-card__meta {
  margin: 0;
  font-size: 1.05rem;
  color: var(--muted);
  line-height: 1.4;
}

.action-card__hint {
  margin: 0.15rem 0 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--info-text);
}

.action-card__cue {
  flex-shrink: 0;
  font-size: 1.85rem;
  font-weight: 700;
  line-height: 1;
  color: var(--info-text);
}

/* ACTION — list rows inside picker sheets */
.action-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  margin: 0;
  padding: 1rem 1.125rem;
  border: none;
  border-bottom: 1px solid #c5d4e0;
  background: var(--info-soft);
  color: var(--text);
  font: inherit;
  font-size: 1.2rem;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.action-row:last-child {
  border-bottom: none;
}

.action-row:active {
  background: #dceaf4;
}

.action-row__label {
  flex: 1;
  min-width: 0;
}

.action-row__cue {
  flex-shrink: 0;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  color: var(--info-text);
}

.hint {
  margin-top: 1rem;
  color: var(--muted);
  font-size: 1rem;
}

.stack {
  display: grid;
  gap: 0.875rem;
}

.muted-link {
  display: inline-block;
  margin-top: 1rem;
  color: var(--muted);
  font-size: 1rem;
}

.page-scorekeeper {
  place-items: start;
  padding-top: 1rem;
  padding-bottom: 2rem;
}

.page-scorekeeper:has(#scorekeeper-app.sk-shell-scoring) {
  padding-top: 0.35rem;
}

.card-wide.sk-shell-scorecard,
.card-wide.sk-shell-review {
  width: min(960px, 100%);
  min-height: calc(100dvh - 2.5rem);
}

.sk-shell-scorecard #view-scoring,
.sk-shell-scorecard #view-group,
.sk-shell-scorecard #view-review,
.sk-shell-scorecard #view-complete,
.sk-shell-review #view-scoring,
.sk-shell-review #view-group,
.sk-shell-review #view-scorecard,
.sk-shell-review #view-complete,
.sk-shell-scoring #view-scorecard,
.sk-shell-scoring #view-review {
  display: none !important;
}

.sk-shell-scorecard #view-scorecard:not([hidden]),
.sk-shell-review #view-review:not([hidden]) {
  display: block !important;
  margin-top: 0;
}

.sk-shell-scorecard .sk-scorecard-wrap,
.sk-shell-review .sk-review-list {
  max-height: none;
}

.card-wide {
  width: min(720px, 100%);
}

.sk-header h1 {
  margin-bottom: 0.5rem;
}

.sk-tournament-box {
  margin-top: 0;
}

/* Scoring: no page title; compact tournament strip (name left / date right) */
.sk-shell-scoring .sk-header h1 {
  display: none;
}

.sk-shell-scoring .sk-header {
  margin-top: 0;
  margin-bottom: 0.1rem;
}

.sk-shell-scoring .sk-tournament-box.info-box,
.sk-shell-scoring .sk-tournament-box,
#scorekeeper-app.sk-setup-layout .sk-tournament-box.info-box,
#scorekeeper-app.sk-setup-layout .sk-tournament-box {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0 0 0.25rem;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.sk-shell-scoring .sk-tournament-box strong,
#scorekeeper-app.sk-setup-layout .sk-tournament-box strong {
  display: block;
  margin: 0;
  min-width: 0;
  flex: 1 1 auto;
  color: var(--muted);
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sk-shell-scoring .sk-tournament-box span,
#scorekeeper-app.sk-setup-layout .sk-tournament-box span {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.3;
  white-space: nowrap;
}

.sk-view {
  margin-top: 0.5rem;
}

.sk-subtitle {
  margin: 0 0 1.25rem;
  color: var(--muted);
  font-size: 1.0625rem;
}

.sk-role-short {
  display: none;
}

.sk-player-list {
  display: grid;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.sk-add-player-btn {
  width: 100%;
}

.sk-add-player-btn[hidden] {
  display: none !important;
}

.sk-view-group {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.sk-group-main {
  flex: 1 1 auto;
  min-height: 0;
}

.sk-group-actions {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding-top: 0.5rem;
}

.sk-back-home {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.5rem 0;
  text-align: center;
}

/* Setup: keep Add / Start pinned; player list scrolls above */
#scorekeeper-app.sk-setup-layout {
  display: flex;
  flex-direction: column;
  min-height: calc(100dvh - 2rem);
}

#scorekeeper-app.sk-setup-layout .sk-header {
  flex-shrink: 0;
}

#scorekeeper-app.sk-setup-layout .sk-header h1 {
  margin-bottom: 0.2rem;
}

#scorekeeper-app.sk-setup-layout #view-group {
  flex: 1 1 auto;
  min-height: 0;
  margin-top: 0.15rem;
}

#scorekeeper-app.sk-setup-layout .sk-subtitle {
  margin-bottom: 0.5rem;
}

#scorekeeper-app.sk-setup-layout .sk-group-main {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 0.25rem;
}

#scorekeeper-app.sk-setup-layout .sk-group-actions {
  position: sticky;
  bottom: 0;
  z-index: 5;
  margin: 0 -0.15rem;
  padding: 0.55rem 0.15rem calc(0.45rem + env(safe-area-inset-bottom, 0px));
  background: var(--card);
  box-shadow: 0 -6px 16px rgba(20, 33, 61, 0.08);
}

@media (max-width: 420px) {
  #scorekeeper-app.sk-setup-layout .sk-header h1 {
    margin-bottom: 0.15rem;
    font-size: 1.45rem;
  }

  #scorekeeper-app.sk-setup-layout .sk-subtitle {
    display: none;
  }

  #scorekeeper-app.sk-setup-layout .sk-role-full {
    display: none;
  }

  #scorekeeper-app.sk-setup-layout .sk-role-short {
    display: inline;
  }

  #scorekeeper-app.sk-setup-layout .sk-player-card {
    padding: 0.75rem 0.9rem;
  }

  #scorekeeper-app.sk-setup-layout .sk-player-name {
    font-size: 1.25rem;
  }
}

.sk-player-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.125rem;
  border: 2px solid var(--border);
  border-radius: 12px;
  background: #fafbfc;
}

.sk-player-card-scorekeeper {
  border-color: rgba(27, 107, 58, 0.35);
  background: #f3faf5;
}

.sk-player-card-body {
  flex: 1;
  min-width: 0;
}

.sk-player-role {
  display: block;
  margin-bottom: 0.25rem;
  color: var(--primary);
  font-size: 0.9375rem;
  font-weight: 600;
}

.sk-player-name {
  display: block;
  font-size: 1.375rem;
  font-weight: 600;
  line-height: 1.3;
}

.sk-remove-btn {
  flex-shrink: 0;
  width: 3rem;
  height: 3rem;
  border: none;
  border-radius: 10px;
  background: #fee4e2;
  color: var(--error);
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.sk-remove-btn:hover {
  background: #fecdca;
}

.sk-overlay {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
  background: rgba(20, 33, 61, 0.45);
}

.sk-overlay[hidden] {
  display: none;
}

.sk-sheet {
  width: 100%;
  max-width: 720px;
  max-height: 85vh;
  padding: 1.5rem 1.25rem 1.75rem;
  overflow: auto;
  border-radius: 18px 18px 0 0;
  background: var(--card);
  box-shadow: 0 -8px 30px rgba(20, 33, 61, 0.2);
}

.sk-sheet-narrow {
  margin: auto 1rem 2rem;
  border-radius: 18px;
  max-height: none;
}

.sk-dnf-hint {
  margin: -0.25rem 0 0;
  font-size: 0.9375rem;
  color: var(--muted);
  text-align: center;
}

.sk-sheet h2 {
  margin: 0 0 0.75rem;
  font-size: 1.5rem;
}

/* Add player sheet — phone-first: search + list + Cancel; list takes leftover space */
#modal-picker.sk-overlay-keyboard {
  inset: auto;
  left: 0;
  right: 0;
  align-items: stretch;
}

.sk-sheet-picker {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 720px;
  height: 100%;
  max-height: 100%;
  margin: 0 auto;
  padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom, 0px));
  overflow: hidden;
  border-radius: 18px 18px 0 0;
  background: var(--card);
  box-shadow: 0 -8px 30px rgba(20, 33, 61, 0.2);
}

@media (min-width: 720px) {
  #modal-picker:not(.sk-overlay-keyboard) .sk-sheet-picker,
  #modal-picker.sk-overlay-keyboard .sk-sheet-picker {
    height: min(85vh, 100%);
    max-height: min(85vh, 100%);
    margin-top: auto;
  }

  #modal-picker.sk-overlay-keyboard {
    align-items: flex-end;
  }
}

.sk-picker-header {
  flex-shrink: 0;
}

.sk-picker-header input {
  width: 100%;
  margin: 0;
}

.sk-picker-status {
  flex-shrink: 0;
  margin: 0.5rem 0 0;
  font-size: 0.95rem;
  color: var(--muted);
}

.sk-picker-status[hidden] {
  display: none !important;
}

.sk-picker-inactive-link {
  display: block;
  width: 100%;
  flex-shrink: 0;
  margin: 0.35rem 0 0;
  padding: 0.35rem 0;
  text-align: center;
  font-size: 0.98rem;
}

.sk-picker-inactive-link[hidden] {
  display: none !important;
}

.sk-picker-list {
  list-style: none;
  flex: 1 1 auto;
  min-height: 0;
  margin: 0.5rem 0;
  padding: 0;
  max-height: none;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--border);
  border-radius: 12px;
}

.sk-picker-footer {
  flex-shrink: 0;
}

.sk-picker-footer .btn {
  width: 100%;
}

.sk-picker-item {
  font-size: 1.3125rem;
}

.sk-picker-item-main {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  min-width: 0;
}

.sk-picker-with {
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--muted);
}

.sk-text-btn {
  display: inline-block;
  margin: 0 0 0.75rem;
  padding: 0.25rem 0;
  border: none;
  background: none;
  color: var(--primary);
  font-size: 1.0625rem;
  font-weight: 600;
  text-decoration: underline;
  cursor: pointer;
}

.sk-text-btn[hidden] {
  display: none !important;
}

.sk-return-banner {
  margin: 0 0 0.75rem;
  padding: 0.75rem 1rem;
  border-radius: 10px;
  background: #fff8e6;
  border: 1px solid #f0d080;
  font-size: 1rem;
  font-weight: 600;
}

.sk-scoring-view {
  display: flex;
  flex-direction: column;
  margin-top: 0.25rem;
}

.sk-hole-bar {
  display: grid;
  grid-template-columns: 3.25rem 1fr 3.25rem;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.55rem;
}

.sk-hole-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 3.25rem;
  border: 2px solid var(--primary);
  border-radius: 12px;
  background: var(--primary);
  color: #fff;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  transition: transform 0.08s ease, background 0.12s ease, border-color 0.12s ease;
}

.sk-hole-nav:hover:not(:disabled) {
  background: var(--primary-hover);
  border-color: var(--primary-hover);
}

.sk-hole-nav:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.sk-hole-nav-arrow {
  display: block;
  transform: scaleX(1.15) scaleY(1.25);
  -webkit-text-stroke: 0.6px #fff;
  paint-order: stroke fill;
}

.sk-hole-center {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: 0.35rem 2.25rem 0.35rem 2.25rem;
  border: 2px solid var(--border);
  border-radius: 12px;
  background: #fff;
  color: var(--text);
  cursor: pointer;
}

.sk-hole-center-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1.05;
  min-width: 0;
}

.sk-hole-number {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--text);
}

.sk-hole-par {
  margin-top: 0.05rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--muted);
}

.sk-hole-chevron {
  position: absolute;
  right: 0.85rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--primary);
  line-height: 1;
  pointer-events: none;
}

.sk-scoring-zone {
  border-radius: 14px;
  transition: background 0.2s ease;
}

.sk-scoring-zone.is-saved {
  background: #d5dbe3;
  padding: 0.75rem;
  margin: 0 -0.75rem;
}

.sk-scoring-zone.is-saved .sk-row-card {
  background: #d5dbe3;
  border-color: #aeb8c4;
}

.sk-scoring-zone.is-pending {
  background: #e3f2fd;
  padding: 0.75rem;
  margin: 0 -0.75rem;
}

.sk-scoring-cards {
  display: grid;
  gap: 0.45rem;
  margin-bottom: 0.65rem;
}

.sk-row-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.5rem 0.65rem;
  align-items: center;
  padding: 0.45rem 0.7rem;
  border: 2px solid var(--border);
  border-radius: 12px;
  background: #fff;
  min-height: 0;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.sk-row-card-info {
  min-width: 0;
}

.sk-row-card-name {
  display: block;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.05;
}

.sk-row-card-firstname,
.sk-row-card-lastname {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sk-row-card-hcp {
  display: block;
  margin-top: 0.05rem;
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1.1;
}

.sk-row-card-totals {
  display: block;
  margin-top: 0.15rem;
  color: var(--primary);
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.1;
}

.sk-dial-cluster {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  flex-shrink: 0;
  touch-action: none;
}

.sk-dial-btn {
  width: 3.5rem;
  height: 3.5rem;
  min-width: 3.5rem;
  border: 2px solid var(--primary);
  border-radius: 12px;
  background: var(--primary);
  color: #fff;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: transform 0.08s ease, background 0.12s ease;
  touch-action: manipulation;
}

.sk-dial-btn:hover {
  background: var(--primary-hover);
  border-color: var(--primary-hover);
}

.sk-dial-btn:active,
.sk-dial-btn.sk-pressed {
  transform: scale(0.92);
}

.sk-save-btn,
.sk-hole-nav {
  transition: transform 0.08s ease;
}

.sk-save-btn:active,
.sk-save-btn.sk-pressed,
.sk-hole-nav:active,
.sk-hole-nav.sk-pressed {
  transform: scale(0.96);
}

.sk-dial-score-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  width: 3.75rem;
  min-width: 3.75rem;
  height: 3.5rem;
  min-height: 3.5rem;
}

.sk-dial-score {
  width: 100%;
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  text-align: center;
  font-size: 2.5rem;
  font-weight: 800;
  line-height: 1;
  color: var(--text);
}

.sk-dial-score.is-par {
  color: var(--text);
}

.sk-dial-score.is-under-par {
  color: #c2413b;
}

.sk-dial-score.is-over-par {
  color: #2563eb;
}

.sk-dial-score.is-dnf {
  flex: 1 1 auto;
  align-items: center;
  font-size: 1rem;
  letter-spacing: 0.02em;
  color: var(--muted);
}

.sk-stroke-marks {
  display: block;
  flex: 0 0 auto;
  min-height: 1rem;
  margin-top: auto;
  margin-bottom: 0;
  transform: translateY(2px);
  color: var(--primary);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.12rem;
  line-height: 1;
  text-align: center;
}

.sk-stroke-skins-warn {
  color: #c0392b;
  letter-spacing: 0.12rem;
  font-weight: 700;
}

.sk-review-banner {
  margin-bottom: 0.75rem;
}

.sk-review-banner-btn {
  width: 100%;
  padding: 0.875rem 1rem;
  border: 2px solid var(--primary);
  border-radius: 12px;
  background: #f3faf5;
  color: var(--primary);
  font-size: 1.125rem;
  font-weight: 700;
  cursor: pointer;
}

.sk-status-bar {
  margin-bottom: 0.75rem;
  padding: 0.625rem 0.75rem;
  border-radius: 10px;
  border: 2px solid transparent;
  background: rgba(255, 255, 255, 0.7);
  font-size: 1.0625rem;
  font-weight: 600;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.sk-scoring-zone.is-saved .sk-status-bar {
  background: #d5dbe3;
  border-color: #aeb8c4;
}

.sk-save-btn {
  margin-bottom: 0.75rem;
}

.sk-save-btn.is-saved {
  background: #94a3b8;
  color: #fff;
}

.sk-save-btn.is-saved:hover {
  background: #94a3b8;
}

.sk-save-btn.is-pending {
  background: #2563eb;
  color: #fff;
}

.sk-save-btn.is-pending:hover {
  background: #1d4ed8;
}

.sk-scoring-home {
  margin-top: 0.25rem;
}

.sk-hole-actions {
  list-style: none;
  margin: 0 0 0.75rem;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}

.sk-hole-action-item {
  font-size: 1.125rem;
}

.sk-hole-action-item.is-muted {
  color: var(--muted);
  cursor: default;
  background: var(--card-soft);
}

.sk-hole-list-label {
  margin: 0 0 0.5rem;
  color: var(--muted);
  font-size: 0.9375rem;
  font-weight: 600;
}

.sk-hole-list {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  max-height: 40vh;
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: 12px;
}

.sk-hole-list-item {
  font-size: 1.0625rem;
  font-weight: 600;
}

.sk-hole-list-item.is-current {
  background: #dceaf4;
  font-weight: 700;
}

.sk-hole-status {
  width: 1.5rem;
  flex-shrink: 0;
  text-align: center;
}

.sk-toast {
  position: fixed;
  left: 50%;
  bottom: 5rem;
  z-index: 200;
  transform: translateX(-50%);
  padding: 0.875rem 1.25rem;
  border-radius: 12px;
  background: #14213d;
  color: #fff;
  font-size: 1.0625rem;
  font-weight: 600;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.sk-toast[hidden] {
  display: none;
}

.sk-view-title {
  margin: 0 0 0.5rem;
  font-size: 1.5rem;
}

.sk-back-link {
  display: inline-block;
  margin: 0 0 1rem;
  padding: 0;
  border: none;
  background: none;
  color: var(--primary);
  font-size: 1.0625rem;
  font-weight: 600;
  cursor: pointer;
}

.sk-shell-scorecard #view-scorecard .sk-back-link {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}

.sk-shell-scorecard #view-scorecard .sk-view-title {
  margin: 0 0 0.15rem;
  font-size: 1.25rem;
}

.sk-shell-scorecard #view-scorecard .sk-subtitle {
  margin: 0 0 0.45rem;
  font-size: 0.9rem;
}

.sk-scorecard-wrap {
  overflow: auto;
  margin-bottom: 1rem;
  border: 1px solid var(--border);
  border-radius: 12px;
}

.sk-scorecard-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}

.sk-scorecard-table th,
.sk-scorecard-table td {
  padding: 0.2rem 0.3rem;
  border-bottom: 1px solid #b8c3ce;
  text-align: center;
  vertical-align: middle;
}

.sk-scorecard-hole-row td {
  background: #fff;
}

.sk-scorecard-hole-row.sk-scorecard-row-alt td {
  background: #eef2f6;
}

.sk-scorecard-table th:first-child,
.sk-scorecard-table td:first-child {
  text-align: center;
  padding-left: 0.3rem;
  padding-right: 0.3rem;
  font-weight: 700;
  color: var(--text);
  white-space: nowrap;
  background: #e8edf2;
  border-right: 1px dashed #8a9aab;
}

.sk-scorecard-hole-row td:first-child,
.sk-scorecard-hole-row.sk-scorecard-row-alt td:first-child {
  background: #e8edf2;
}

.sk-scorecard-table thead th {
  background: #dcefe3;
  color: var(--secondary-text);
  font-size: 0.875rem;
  font-weight: 700;
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
  border-bottom: 2px solid #9fc4ad;
}

.sk-scorecard-table thead th:first-child {
  background: #d0e6d8;
  border-right: 1px dashed #7fad90;
}

.sk-scorecard-cell {
  min-width: 2.25rem;
  min-height: 2.15rem;
  padding: 0.3rem 0.25rem;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #1d4ed8;
  font-size: clamp(1.05rem, 3.2vw, 1.25rem);
  font-weight: 700;
  cursor: pointer;
}

.sk-scorecard-cell:hover {
  background: rgba(29, 78, 216, 0.08);
}

.sk-scorecard-cell.is-empty {
  color: var(--muted);
  cursor: default;
}

.sk-scorecard-summary td {
  background: #cfe6d8;
  font-weight: 800;
  font-size: 1.15rem;
  color: var(--primary);
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
  border-top: 2px solid #7fad90;
  border-bottom: 2px solid #7fad90;
}

.sk-scorecard-summary td:first-child {
  font-size: 1.15rem;
  color: var(--primary);
  background: #c0dccb;
  border-right: 1px dashed #7fad90;
}

.sk-review-list {
  display: grid;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.sk-review-card {
  padding: 1rem;
  border: 2px solid var(--border);
  border-radius: 12px;
  background: #fafbfc;
}

.sk-review-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  margin-bottom: 0.875rem;
}

.sk-review-player-name {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1 1 auto;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.1;
}

.sk-review-firstname,
.sk-review-lastname {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sk-review-verify {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
  font-size: 0.95rem;
  font-weight: 600;
  white-space: nowrap;
}

.sk-review-verify input {
  width: 1.375rem;
  height: 1.375rem;
}

.sk-review-grid-label {
  margin: 0.5rem 0 0.35rem;
  color: var(--muted);
  font-size: 0.875rem;
  font-weight: 600;
}

.sk-review-grid {
  display: grid;
  grid-template-columns: repeat(9, 1fr);
  gap: 0.25rem;
  margin-bottom: 0.5rem;
}

.sk-review-hole-label {
  font-size: 0.75rem;
  color: var(--muted);
  text-align: center;
}

.sk-review-cell {
  min-height: 3rem;
  padding: 0.25rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: #1d4ed8;
  font-size: clamp(1.125rem, 3.2vw, 1.5rem);
  font-weight: 700;
  cursor: pointer;
}

.sk-review-cell.is-empty {
  color: var(--muted);
}

.sk-review-totals {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  margin-top: 0.85rem;
  padding: 0.65rem 0.35rem 0.35rem;
  border-top: 2px solid #9fc4ad;
  text-align: center;
}

.sk-review-total-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  min-width: 0;
}

.sk-review-total-label {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1;
}

.sk-review-total-value {
  color: var(--primary);
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.1;
}

.sk-review-total-item.is-grand .sk-review-total-label {
  color: var(--secondary-text);
  font-size: 0.85rem;
}

.sk-review-total-item.is-grand .sk-review-total-value {
  color: var(--header-green);
  font-size: 1.65rem;
}

.sk-review-footer {
  margin-top: 0.5rem;
}

.sk-review-edit-sheet {
  text-align: center;
}

.sk-review-edit-sheet h2 {
  margin: 0 0 0.25rem;
  font-size: 1.45rem;
  line-height: 1.2;
}

.sk-review-edit-hole {
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: 1.05rem;
  font-weight: 600;
}

.sk-review-edit-dial {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  margin-bottom: 0.75rem;
  touch-action: none;
}

.sk-review-edit-score {
  min-width: 4.5rem;
  text-align: center;
  font-size: 3rem;
  font-weight: 800;
  line-height: 1;
  color: var(--text);
}

.sk-review-edit-score.is-under-par {
  color: #c2413b;
}

.sk-review-edit-score.is-over-par {
  color: #2563eb;
}

.sk-review-edit-score.is-dnf {
  font-size: 1.75rem;
  color: var(--muted);
}

.sk-review-edit-sheet .sk-text-btn {
  display: block;
  width: 100%;
  margin: 0 0 0.85rem;
  padding: 0.35rem 0;
  text-align: center;
}

.page-admin {
  place-items: start;
  padding-top: 1rem;
  padding-bottom: 2rem;
}

.admin-card {
  width: min(920px, 100%);
}

.admin-card.admin-setup-card {
  width: min(92rem, 100%);
}

.admin-header h1 {
  margin: 0.5rem 0 0.25rem;
}

.admin-header-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.admin-back,
.admin-home {
  color: var(--muted);
  font-size: 1rem;
  text-decoration: none;
}

.admin-home {
  margin-left: auto;
}

.admin-back:hover,
.admin-home:hover {
  text-decoration: underline;
}

.admin-section {
  margin-top: 1.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--border);
}

.admin-section h2 {
  margin: 0 0 1rem;
  font-size: 1.35rem;
}

.admin-setup-grid {
  display: grid;
  gap: 1rem;
  margin-top: 1.25rem;
}

.admin-setup-primary,
.admin-setup-side,
.admin-setup-formats,
.admin-setup-rest {
  display: grid;
  gap: 1rem;
  align-content: start;
}

@media (min-width: 860px) {
  .admin-setup-grid {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    align-items: start;
  }

  .admin-setup-formats,
  .admin-setup-rest {
    grid-column: 1 / -1;
  }
}

.admin-setup-section {
  margin: 0;
  padding: 0.75rem 1rem 1rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
}

.admin-setup-section > summary {
  cursor: pointer;
  font-size: 1.35rem;
  font-weight: 700;
  padding: 0.15rem 0 0.75rem;
}

.admin-setup-section:not([open]) > summary {
  padding-bottom: 0.15rem;
}

.admin-championship-launch {
  margin-top: 1rem;
}

.admin-champ-always-on {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin: 0 0 1rem;
  font-size: 1.0625rem;
}

.admin-champ-payout-wait {
  margin: 0 0 1rem;
  padding: 0.9rem 1rem;
  border-radius: 10px;
  background: #fde68a;
  border: 2px solid #d97706;
  color: #78350f;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.35;
}

.admin-champ-payout-fields.is-waiting {
  opacity: 0.5;
}

.admin-champ-payout-fields.is-waiting input {
  background: #e8edf2;
}

.admin-champ-payout-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
  gap: 0.75rem 1rem;
  margin: 0 0 1rem;
}

.admin-champ-payout-row {
  display: grid;
  gap: 0.25rem;
  margin: 0;
  font-size: 1rem;
}

.admin-hint {
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: 1rem;
}

.admin-communications-card details.admin-comm-panel {
  margin-top: 1rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}

.admin-comm-panel summary {
  cursor: pointer;
  font-size: 1.2rem;
  font-weight: 700;
  padding: 1rem 1.1rem;
  list-style-position: outside;
}

.admin-comm-body {
  padding: 0 1.1rem 1.1rem;
}

.admin-comm-body label {
  display: block;
  margin-top: 0.75rem;
  font-weight: 600;
}

.admin-comm-body textarea,
.admin-comm-body input,
.admin-comm-body select {
  width: 100%;
  margin-top: 0.35rem;
}

.admin-comm-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1rem;
}

.admin-finish-email-shortcut {
  margin-top: 0;
}

.admin-subheading {
  margin: 1rem 0 0.75rem;
  font-weight: 700;
}

.admin-row {
  display: grid;
  gap: 0.75rem;
}

.admin-choice {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.0625rem;
}

.admin-check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
  font-size: 1.0625rem;
}

.admin-check input[type="checkbox"] {
  width: 1.125rem;
  height: 1.125rem;
}

.admin-card input[type="date"],
.admin-card input[type="number"],
.admin-card input[type="datetime-local"],
.admin-card select,
.admin-card textarea {
  width: 100%;
  padding: 0.875rem 1rem;
  margin-bottom: 1rem;
  border: 2px solid var(--border);
  border-radius: 10px;
  font-size: 1.125rem;
  font-family: inherit;
}

.admin-card input[type="text"] {
  margin-bottom: 1rem;
}

.admin-format-list {
  display: grid;
  gap: 0.75rem;
}

.admin-format-row {
  display: grid;
  gap: 0.75rem;
  padding: 0.875rem 1rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #f8fafc;
}

.admin-format-main {
  display: grid;
  gap: 0.75rem;
}

@media (min-width: 640px) {
  .admin-format-main {
    grid-template-columns: 1fr minmax(140px, 180px);
    align-items: center;
  }
}

.admin-setup-card .admin-format-list {
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
}

.admin-setup-card .admin-format-main {
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
}

.admin-setup-card .admin-format-toggle {
  flex-wrap: wrap;
}

@media (min-width: 640px) {
  .admin-setup-card .admin-format-list {
    align-items: stretch;
    grid-auto-rows: 1fr;
  }

  .admin-setup-card .admin-format-row {
    height: 100%;
    display: flex;
    flex-direction: column;
  }

  .admin-setup-card .admin-format-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .admin-setup-card .admin-format-main > .admin-inline-label {
    margin-top: auto;
  }
}

.admin-format-money-status {
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  font-size: 1.05rem;
  font-weight: 700;
}

.admin-format-money-status--ok {
  background: var(--ok-soft);
  color: var(--ok);
}

.admin-format-money-status--warn {
  background: var(--warn-soft);
  color: var(--warn);
}

.admin-format-label {
  font-weight: 600;
}

.admin-added-toggle {
  margin-left: 0.35rem;
  padding: 0.125rem 0.375rem;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: var(--primary);
  font: inherit;
  font-size: 0.9375rem;
  font-weight: 600;
  cursor: pointer;
}

.admin-added-toggle:hover {
  background: rgba(27, 107, 58, 0.08);
}

.admin-added-badge {
  margin-left: 0.35rem;
  padding: 0.125rem 0.5rem;
  border-radius: 999px;
  background: #dcfce7;
  color: #166534;
  font-size: 0.875rem;
  font-weight: 700;
}

.admin-added-panel {
  padding: 0.75rem 0 0.25rem 1.75rem;
  border-top: 1px dashed var(--border);
}

.admin-format-toggle {
  margin-bottom: 0;
}

.admin-inline-label {
  display: grid;
  gap: 0.35rem;
  margin-bottom: 0;
  font-size: 1rem;
  font-weight: 600;
}

.admin-tag {
  margin-left: 0.5rem;
  padding: 0.125rem 0.5rem;
  border-radius: 999px;
  background: #e2e8f0;
  color: var(--muted);
  font-size: 0.875rem;
  font-weight: 600;
}

.admin-details {
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
}

.admin-details summary {
  cursor: pointer;
  font-size: 1.125rem;
  font-weight: 700;
}

.admin-rule-grid {
  display: grid;
  gap: 0.75rem;
  margin-top: 1rem;
}

@media (min-width: 640px) {
  .admin-rule-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.admin-rules-card-grid {
  display: grid;
  gap: 1rem;
  align-items: start;
}

@media (min-width: 860px) {
  .admin-rules-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.admin-rule-card {
  padding: 0.75rem 1rem 1rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #f8fafc;
}

.admin-rule-card-title {
  margin: 0 0 0.75rem;
  font-size: 1.125rem;
}

.admin-rule-grid-primary {
  display: grid;
  gap: 0.75rem;
}

@media (min-width: 640px) {
  .admin-rule-grid-primary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }
}

.admin-rule-advanced {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border);
}

.admin-rule-advanced > summary {
  cursor: pointer;
  font-size: 1.05rem;
  font-weight: 700;
}

.admin-rule-grid-advanced {
  margin-top: 0.75rem;
}

.admin-rule-advanced .admin-subheading {
  margin-top: 1rem;
}

.admin-rule-advanced .admin-hint {
  margin-top: 0.75rem;
}

.admin-subpanel {
  margin-top: 1rem;
  padding: 1rem;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid var(--border);
}

.admin-actions {
  margin-top: 2rem;
}

.admin-lock-banner {
  margin: 1rem 0 0;
  padding: 0.875rem 1rem;
  border-radius: 10px;
  background: #fff7ed;
  border: 1px solid #fdba74;
  color: #9a3412;
  font-size: 1.0625rem;
}

.admin-success {
  margin: 0 0 1rem;
  padding: 0.875rem 1rem;
  border-radius: 10px;
  background: #ecfdf3;
  color: #067647;
  font-size: 1.0625rem;
}

.admin-cleanup-actions {
  display: grid;
  gap: 0.75rem;
  margin-top: 1rem;
}

@media (min-width: 640px) {
  .admin-cleanup-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.admin-payout-default-line {
  margin: 0 0 0.5rem;
  color: var(--muted);
  font-size: 1rem;
}

.admin-payout-current {
  margin: 0 0 1rem;
  font-size: 1.0625rem;
}

.admin-payout-actions {
  display: grid;
  gap: 0.75rem;
}

@media (min-width: 640px) {
  .admin-payout-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.admin-payout-upload-btn,
.admin-payout-clear-btn {
  width: 100%;
  padding: 0.875rem 1rem;
  font-size: 1.0625rem;
}

.admin-payout-status {
  margin: 0.75rem 0 0;
  font-size: 1rem;
}

.admin-payout-status-ok {
  color: #067647;
}

.admin-payout-status-error {
  color: var(--error);
}

.page-leaderboards {
  place-items: start;
  padding: 1rem 1rem 2.5rem;
}

.lb-shell {
  width: min(960px, 100%);
}

.lb-header {
  margin-bottom: 1rem;
}

.lb-header-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.lb-title {
  margin: 0;
  min-width: 0;
  font-size: 1.75rem;
  line-height: 1.2;
}

.lb-home {
  flex-shrink: 0;
  color: var(--muted);
  font-size: 1rem;
  text-decoration: none;
}

.lb-home:hover {
  text-decoration: underline;
}

.lb-return-scoring {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
  padding: 0.75rem 1rem;
  font-size: 1.1rem;
  line-height: 1.2;
  white-space: nowrap;
}

@media (max-width: 420px) {
  .lb-title {
    font-size: 1.35rem;
  }

  .lb-return-scoring {
    padding: 0.7rem 0.85rem;
    font-size: 1rem;
  }
}

.lb-tournament-name {
  margin: 0.25rem 0 0;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text);
}

.lb-loading {
  margin: 0;
}

.lb-error {
  margin-top: 1rem;
}

.lb-disclaimer {
  margin: 0 0 0.75rem;
  padding: 0.875rem 1rem;
  border-radius: 12px;
  background: #fff4d6;
  border: 1px solid #f0c14b;
  color: #7a4e00;
  font-size: 1.0625rem;
}

.lb-final-summary {
  margin: 0 0 0.75rem;
  padding: 0.75rem 0.875rem;
  border-radius: 12px;
  background: #ecfdf3;
  border: 1px solid #86efac;
}

.lb-final-summary-title {
  margin: 0 0 0.5rem;
  font-size: 1.125rem;
  color: #14532d;
  text-align: center;
}

.lb-final-summary-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 1rem;
  row-gap: 0.75rem;
  align-items: start;
}

.lb-final-summary-cols--single {
  grid-template-columns: 1fr;
}

.lb-final-summary-col {
  min-width: 0;
}

.lb-final-summary-cols > .lb-final-summary-total,
.lb-final-summary-cols > .lb-final-summary-change {
  grid-column: 1 / -1;
}

@media (max-width: 640px) {
  .lb-final-summary-cols {
    grid-template-columns: 1fr;
    gap: 0.625rem;
  }

  .lb-final-summary-cols > .lb-final-summary-total,
  .lb-final-summary-cols > .lb-final-summary-change {
    grid-column: auto;
    margin-top: 0;
  }
}

.lb-final-summary-block {
  margin-top: 0.625rem;
}

.lb-final-summary-col .lb-final-summary-block:first-child {
  margin-top: 0;
}

.lb-final-summary-block--table {
  margin-top: 0.625rem;
  padding: 0.45rem 0.5rem 0.35rem;
  border: 1px solid var(--secondary-border);
  border-radius: 10px;
  background: #f1f5f9;
  overflow: hidden;
}

.lb-final-summary-heading {
  margin: 0 0 0.35rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #166534;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.lb-final-summary-subheading {
  margin: 0.35rem 0 0.2rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #15803d;
}

.lb-final-summary-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.lb-final-summary-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.28rem 0.35rem;
  font-size: 0.8125rem;
  line-height: 1.3;
}

.lb-final-summary-block--table .lb-final-summary-row {
  border-bottom: 1px solid #b6c2d0;
}

.lb-final-summary-block--table .lb-final-summary-row:last-child {
  border-bottom: none;
}

/* Cool zebra — stronger contrast vs table chrome; green stays on outer card only */
.lb-final-summary-block--table .lb-final-summary-heading {
  background: #f1f5f9;
}

.lb-final-summary-block--table .lb-final-summary-row:nth-child(odd) {
  background: #ffffff;
}

.lb-final-summary-block--table .lb-final-summary-row:nth-child(even) {
  background: #dbeafe;
}

.lb-final-summary-main {
  flex: 1;
  min-width: 0;
}

.lb-final-summary-block--table.lb-final-summary-total,
.lb-final-summary-block--table.lb-final-summary-change {
  margin-top: 0;
}

.lb-final-summary-block--table .lb-final-summary-row.lb-final-summary-row--total {
  font-weight: 800;
  border-top: 1px solid #86efac;
  background: #ecfdf3;
}

.lb-final-totals-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin: 0;
  padding: 0.2rem 0.1rem;
  border: 0;
  background: #f1f5f9;
  font-family: inherit;
  cursor: pointer;
  text-align: left;
}

.lb-final-totals-toggle.is-open {
  margin-bottom: 0.35rem;
}

.lb-final-totals-toggle .lb-acc-chevron {
  color: #166534;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 700;
}

.lb-final-totals-toggle.is-open .lb-acc-chevron::after {
  content: "▴";
}

.lb-final-place {
  display: inline-block;
  min-width: 1.5rem;
  font-weight: 700;
}

.lb-final-flight {
  display: block;
  font-size: 0.6875rem;
  font-weight: 600;
  color: #15803d;
}

.lb-final-skins-count {
  display: block;
  font-size: 0.6875rem;
  font-weight: 600;
  color: #166534;
}

.lb-final-amt {
  flex-shrink: 0;
  font-weight: 700;
  font-size: 0.8125rem;
  color: #14532d;
  text-align: right;
}

.lb-final-summary-empty {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--muted);
}

.lb-final-summary-pool {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--muted);
  line-height: 1.35;
}

.lb-live-cue,
.lb-summary {
  margin: 0 0 0.75rem;
  font-size: 1.0625rem;
  color: var(--muted);
}

.lb-summary {
  font-weight: 600;
  color: var(--text);
}

.lb-jump {
  margin: 1.25rem 0;
}

.lb-jump-title {
  margin: 0 0 0.75rem;
  font-size: 1.25rem;
}

.lb-jump-list {
  display: grid;
  gap: 0.625rem;
}

.lb-jump-btn {
  width: 100%;
  text-align: left;
  padding: 0.875rem 1rem;
  font-size: 1.125rem;
}

.lb-jump-btn--stacked {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  line-height: 1.2;
}

.lb-jump-sub {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  opacity: 0.9;
}

.lb-jump-btn.lb-jump-btn--window {
  background: var(--text);
  color: #fff;
  border-color: var(--text);
}

.lb-jump-btn.lb-jump-btn--window:hover {
  background: var(--info-text);
  border-color: var(--info-text);
}

.lb-cards {
  display: grid;
  gap: 1.25rem;
  padding-bottom: 2rem;
}

.lb-cards:has(.lb-acc) {
  gap: 0.5rem;
}

.lb-acc {
  border-radius: 10px;
  overflow: hidden;
}

.lb-acc-bar {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 0.85rem;
  border: 0;
  font-size: 1rem;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.lb-acc-title {
  flex: 1 1 auto;
}

.lb-acc-chevron::after {
  content: "▾";
  font-size: 0.85rem;
}

.lb-acc.is-open .lb-acc-chevron::after {
  content: "▴";
}

.lb-acc--paid .lb-acc-bar {
  background: linear-gradient(180deg, #2f7b4f 0%, #23653f 100%);
  color: #f8fcf9;
}

.lb-acc--paid .lb-acc-bar .lb-no-money {
  color: #f8fcf9;
}

.lb-acc--unpaid .lb-acc-bar {
  background: #e7f0ea;
  color: #23653f;
  border: 1px solid #c8d6cc;
}

.lb-acc--unpaid .lb-acc-bar .lb-no-money {
  font-weight: 600;
  font-size: 0.85rem;
  color: #4b6b56;
}

.lb-acc-body {
  background: #fff;
  border: 1px solid #c8d6cc;
  border-top: 0;
  border-radius: 0 0 10px 10px;
}

.lb-acc--paid .lb-acc-body {
  border-color: #23653f;
}

.lb-acc .lb-card {
  box-shadow: none;
  border: 0;
  border-radius: 0;
  background: #fff;
}

.lb-acc .lb-card-header {
  display: none;
}

.lb-card {
  padding: 1.25rem;
  border-radius: 16px;
  background: var(--card);
  box-shadow: 0 8px 24px rgba(20, 33, 61, 0.1);
  scroll-margin-top: 1rem;
}

.lb-card--final {
  background: #ecfdf3;
  border: 1px solid #86efac;
  border-radius: 12px;
  box-shadow: none;
}

.lb-card--final .lb-card-header h2 {
  color: #14532d;
}

@media (max-width: 640px) {
  .lb-card {
    padding: 1rem 0.75rem;
  }
}

.lb-card-highlight {
  outline: 3px solid rgba(27, 107, 58, 0.35);
  transition: outline-color 0.2s ease;
}

.lb-card-header h2 {
  margin: 0 0 0.75rem;
  font-size: 1.375rem;
}

.lb-no-money {
  font-size: 1rem;
  font-weight: 600;
  color: var(--muted);
}

.lb-card-placeholder {
  margin: 0;
  color: var(--muted);
  font-size: 1.0625rem;
}

.lb-gate-card {
  padding: 1.5rem;
  border-radius: 16px;
  background: var(--card);
  box-shadow: 0 8px 24px rgba(20, 33, 61, 0.1);
}

.lb-gate-card h2 {
  margin: 0 0 0.75rem;
  font-size: 1.5rem;
}

.lb-gate-card p {
  margin: 0 0 0.75rem;
  font-size: 1.125rem;
}

.lb-gate-count {
  font-weight: 700;
  color: var(--text);
}

.lb-gate-card .btn {
  margin-top: 0.5rem;
}

.lb-pool-summary {
  margin: 0 0 1rem;
  font-size: 1.0625rem;
}

.lb-flights-note {
  margin: 0 0 1rem;
  font-size: 1rem;
  color: var(--text-muted, #555);
}

.lb-skins-rate {
  margin: -0.5rem 0 1rem;
  font-size: 1.0625rem;
  color: var(--text-muted, #555);
}

.lb-table-skins {
  table-layout: fixed;
  width: 100%;
}

.lb-skins-col-hole {
  width: 2.4rem;
}

.lb-skins-col-type {
  width: 3.1rem;
}

.lb-skins-col-score {
  width: 2.85rem;
}

.lb-skins-col-result {
  width: 38%;
}

.lb-table-skins--typed .lb-skins-col-result {
  width: 28%;
}

.lb-skins-col-detail {
  text-align: left;
  overflow-wrap: break-word;
  word-break: normal;
}

.lb-table-skins thead .lb-skins-col-detail {
  white-space: nowrap;
}

.lb-skins-cut {
  font-weight: 700;
  color: var(--error);
}

.lb-skins-winner {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--text);
  overflow-wrap: normal;
  word-break: normal;
}

.lb-skins-winner-name {
  display: grid;
  gap: 0.05rem;
  justify-items: center;
  line-height: 1.2;
}

.lb-skins-winner-name .lb-player-first,
.lb-skins-winner-name .lb-player-last {
  display: block;
}

.lb-skins-detail-cut {
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--muted);
  line-height: 1.3;
}

.lb-skins-type {
  white-space: nowrap;
  font-weight: 600;
}

.lb-subheading {
  margin: 1.25rem 0 0.75rem;
  font-size: 1.125rem;
}

.lb-table-wrap {
  overflow-x: auto;
}

.lb-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.0625rem;
}

.lb-table th,
.lb-table td {
  padding: 0.625rem 0.5rem;
  border-bottom: 1px solid var(--border);
  text-align: center;
  vertical-align: middle;
}

.lb-table thead th {
  font-size: 0.9375rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--secondary-text);
  background: var(--secondary-soft);
}

.lb-table-standings .lb-col-status {
  white-space: nowrap;
  min-width: 4rem;
}

/* Phone + large phone: fit standings (Rnk / Player / Score or PTS / Status) without clipping */
@media (max-width: 480px) {
  .lb-table-standings {
    table-layout: fixed;
    font-size: 1rem;
  }

  .lb-table-standings th,
  .lb-table-standings td {
    padding: 0.5rem 0.28rem;
  }

  .lb-table-standings thead th {
    font-size: 0.8125rem;
    letter-spacing: 0.01em;
  }

  .lb-table-standings th:first-child,
  .lb-table-standings td:first-child {
    width: 2.4rem;
    padding-left: 0.2rem;
    padding-right: 0.2rem;
  }

  .lb-table-standings .lb-col-metric,
  .lb-table-standings th:nth-child(3),
  .lb-table-standings td:nth-child(3) {
    width: 2.55rem;
  }

  .lb-table-standings .lb-col-status {
    width: 4rem;
    padding-left: 0.2rem;
    padding-right: 0.2rem;
    white-space: nowrap;
  }

  .lb-table-champ-live th:nth-child(4),
  .lb-table-champ-live td:nth-child(4),
  .lb-table-champ-final th:nth-child(5),
  .lb-table-champ-final td:nth-child(5) {
    width: 3.6rem;
  }

  .lb-table-champ-live .lb-col-status {
    width: 4rem;
  }

  .lb-table-skins th,
  .lb-table-skins td {
    padding: 0.45rem 0.22rem;
  }

  .lb-table-skins thead th {
    font-size: 0.75rem;
    letter-spacing: 0;
  }

  .lb-table-skins--typed .lb-skins-col-type {
    width: 2.6rem;
  }

  .lb-table-skins--typed .lb-skins-col-result {
    width: 24%;
  }
}

.lb-score-combo,
.lb-day-score-link {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.lb-day-score-link {
  color: inherit;
  text-decoration: none;
}

.lb-day-score-link:hover,
.lb-day-score-link:focus-visible {
  text-decoration: underline;
}

.lb-table tbody tr:nth-child(odd) {
  background: #ffffff;
}

.lb-table tbody tr:nth-child(even) {
  background: #e8f1f8;
}

.lb-col-player {
  text-align: left;
}

.lb-player-cell {
  display: grid;
  gap: 0.125rem;
}

.lb-player-first,
.lb-player-last {
  display: block;
  line-height: 1.25;
}

.lb-player-hcp {
  color: var(--muted);
  font-style: italic;
  font-weight: 500;
}

.lb-status-check {
  color: var(--primary);
  font-weight: 700;
}

.lb-status-admin,
.admin-finish-sign-admin {
  color: var(--info-text);
  font-weight: 800;
  letter-spacing: 0.02em;
}

.lb-status-amended {
  color: var(--warn);
  font-weight: 800;
  font-size: 1.15em;
  line-height: 1;
}

.lb-status-hcp {
  display: inline-block;
  color: var(--info-text);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
  text-transform: lowercase;
}

.lb-status-dnf {
  color: var(--error);
  font-weight: 700;
  text-transform: lowercase;
}

.lb-acc-stack {
  display: grid;
  gap: 0.2rem;
}

.lb-card-cues {
  display: none;
  padding: 0 0.15rem;
}

.lb-acc-stack:has(.lb-acc.is-open) > .lb-card-cues {
  display: block;
}

.lb-card-cues > .lb-disclaimer {
  margin: 0 0 0.35rem;
}

.lb-tap-scorecard {
  margin: 0 0 0.2rem;
  color: var(--text);
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.35;
}

.lb-champ-payout-pending {
  margin: 0.85rem 0 0;
  padding: 0.75rem 0.85rem;
  border-radius: 10px;
  background: var(--info-soft);
  color: var(--info-text);
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.35;
}

.lb-status-legend {
  margin: 0 0 0.45rem;
  padding: 0 0.15rem;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0.01em;
}

.lb-table-payout {
  max-width: 420px;
}

.lb-player-link {
  color: #1d4ed8;
  text-decoration: none;
}

.lb-player-link:hover,
.lb-player-link:focus-visible {
  text-decoration: underline;
}

.lb-scorecards-top {
  margin: 0.35rem 0 1.5rem;
}

.lb-cards + .lb-scorecards-top {
  margin: 0.25rem 0 1.25rem;
}

.lb-champ-prize {
  margin: 0 0 2rem;
}

.lb-scorecards-top + .lb-champ-prize {
  margin-top: 0;
}

.lb-champ-prize .lb-card-header h2 {
  margin-bottom: 0.5rem;
}

.lb-field-scorecards-link {
  color: #1d4ed8;
  font-size: 1.0625rem;
  font-weight: 600;
  text-decoration: none;
}

.lb-field-scorecards-link:hover,
.lb-field-scorecards-link:focus-visible {
  text-decoration: underline;
}

.page-scorecard {
  place-items: start;
  padding-top: 1rem;
  padding-bottom: 2rem;
}

.sc-shell {
  width: min(960px, 100%);
}

.sc-header {
  margin-bottom: 1rem;
}

.sc-title {
  margin: 0;
  font-size: clamp(1.5rem, 4vw, 2rem);
}

.sc-tournament-name {
  margin: 0.25rem 0 0;
  color: var(--muted);
  font-weight: 600;
}

.sc-header-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.sc-btn-compact {
  min-height: 2.5rem;
  padding: 0.45rem 0.9rem;
  font-size: 0.95rem;
}

.sc-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin: 0.75rem 0 1rem;
  color: var(--muted);
  font-size: 0.95rem;
}

.sc-meta strong {
  color: var(--text);
}

.sc-signed-badge {
  display: inline-block;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  background: #e8f5e9;
  color: var(--primary);
  font-weight: 700;
  font-size: 0.85rem;
}

.sc-error,
.sc-loading {
  margin: 1rem 0;
}

.sc-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem 1rem;
  margin: 0 auto 1rem;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fdfdfd;
  width: fit-content;
  max-width: 100%;
}

.sc-legend-item {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.85rem;
}

.sc-card {
  margin-bottom: 1.25rem;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--card);
  box-shadow: 0 2px 8px rgba(20, 33, 61, 0.08);
}

.sc-card.is-highlight {
  border-color: #93c5fd;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15);
}

.sc-card-title {
  margin: 0 0 0.65rem;
  padding: 0.45rem 0.5rem;
  border-radius: 8px;
  background: linear-gradient(180deg, #2f7b4f 0%, #23653f 100%);
  color: #f8fcf9;
  font-size: 1rem;
  text-align: center;
}

.sc-table-wrap {
  overflow-x: hidden;
}

.sc-table-wrap + .sc-table-wrap {
  margin-top: 0.85rem;
}

.sc-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.sc-table th,
.sc-table td {
  padding: 0.2rem 0.1rem;
  border-bottom: 1px solid #dce8e0;
  text-align: center;
  vertical-align: middle;
}

.sc-table td:first-child,
.sc-table th:first-child {
  width: 3.15rem;
  font-weight: 700;
  text-align: left;
  padding-left: 0.35rem;
}

.sc-table td:last-child,
.sc-table th:last-child {
  width: 2.6rem;
  background: #e7f0ea;
  font-weight: 700;
}

.sc-table th:nth-child(n + 3):not(:last-child),
.sc-table td:nth-child(n + 3):not(:last-child) {
  border-left: 1px dotted #c8d6cc;
}

.sc-table thead th {
  background: #e7f0ea;
  color: #3d5a48;
  font-size: 0.8rem;
}

.sc-table thead th:last-child {
  background: #e7f0ea;
  color: #3d5a48;
  font-size: 0.9rem;
}

.sc-table tbody tr:not(.sc-row-par) td {
  background: #ffffff;
}

.sc-table tbody tr:not(.sc-row-par) td.sc-row-label {
  background: #e7f0ea;
  color: #3d5a48;
  font-weight: 700;
}

.sc-row-par td {
  background: #e7f0ea;
  color: #3d5a48;
  font-size: 0.72rem;
  line-height: 1.1;
  padding: 0.05rem 0.1rem;
}

.sc-row-par td:first-child {
  padding-left: 0.35rem;
}

.sc-table tbody tr:not(.sc-row-par) td:last-child {
  background: #e7f0ea;
}

.sc-row-hole td {
  background: #e7f0ea;
  color: #3d5a48;
  font-size: 0.8rem;
}

.sc-mark {
  --mark-size: 30px;
  --mark-border: #222;
  position: relative;
  display: inline-grid;
  place-items: center;
  width: var(--mark-size);
  height: var(--mark-size);
  font-weight: 700;
  font-size: 0.92rem;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  box-sizing: border-box;
}

.sc-mark__value {
  position: relative;
  z-index: 1;
}

.sc-mark--plain {
  display: inline-grid;
  place-items: center;
  min-width: var(--mark-size);
  height: var(--mark-size);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.sc-mark--empty {
  color: var(--muted);
  font-weight: 600;
}

.sc-mark--dnf {
  color: var(--error);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: lowercase;
}

.sc-mark--birdie {
  border: 1px solid var(--mark-border);
  border-radius: 50%;
  background: #fff;
}

.sc-mark--eagle,
.sc-mark--albatross {
  border: 1px solid var(--mark-border);
  border-radius: 50%;
}

.sc-mark--eagle {
  background: #fff;
}

.sc-mark--albatross {
  background: rgba(0, 140, 60, 0.2);
}

.sc-mark--eagle::after,
.sc-mark--albatross::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid var(--mark-border);
  border-radius: 50%;
  pointer-events: none;
}

.sc-mark--bogey {
  border: 1px solid #333;
  border-radius: 4px;
  background: #fff;
}

.sc-mark--double-bogey,
.sc-mark--triple-bogey {
  border: 1px solid #333;
  border-radius: 4px;
}

.sc-mark--double-bogey {
  background: #fff;
}

.sc-mark--triple-bogey {
  background: rgba(200, 40, 40, 0.22);
}

.sc-mark--double-bogey::after,
.sc-mark--triple-bogey::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid #333;
  border-radius: 2px;
  pointer-events: none;
}

.sc-net-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
}

.sc-skin-mini {
  min-height: 10px;
  font-size: 0.62rem;
  line-height: 1;
  font-weight: 700;
}

@media (orientation: portrait) and (max-width: 640px) {
  .sc-card {
    padding: 0.5rem 0.35rem;
  }

  .sc-table {
    font-size: 0.78rem;
  }

  .sc-table th,
  .sc-table td {
    padding: 0.12rem 0.04rem;
  }

  .sc-table td:first-child,
  .sc-table th:first-child {
    width: 2.35rem;
    padding-left: 0.2rem;
    font-size: 0.72rem;
  }

  .sc-table td:last-child,
  .sc-table th:last-child {
    width: 2rem;
    font-size: 0.75rem;
  }

  .sc-mark,
  .sc-mark--plain {
    --mark-size: 20px;
  }

  .sc-mark {
    font-size: 0.7rem;
  }

  .sc-mark--dnf {
    font-size: 0.55rem;
  }

  .sc-mark--eagle::after,
  .sc-mark--albatross::after,
  .sc-mark--double-bogey::after,
  .sc-mark--triple-bogey::after {
    inset: 2px;
  }

  .sc-skin-mini {
    font-size: 0.55rem;
  }
}

@media (orientation: landscape) {
  .sc-card {
    padding: 0.85rem 0.75rem;
  }

  .sc-table {
    font-size: 0.95rem;
  }

  .sc-table th,
  .sc-table td {
    padding: 0.35rem 0.2rem;
  }

  .sc-table td:first-child,
  .sc-table th:first-child {
    width: 3.4rem;
    padding-left: 0.45rem;
  }

  .sc-table td:last-child,
  .sc-table th:last-child {
    width: 2.85rem;
  }

  .sc-mark,
  .sc-mark--plain {
    --mark-size: 30px;
  }

  .sc-mark {
    font-size: 0.92rem;
  }
}

.sc-rotate-hint-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  background: rgba(0, 0, 0, 0.55);
}

.sc-rotate-hint-card {
  width: min(100%, 380px);
  padding: 1.35rem 1.4rem 1.2rem;
  border-radius: 14px;
  background: var(--card);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
}

.sc-rotate-hint-card p {
  margin: 0 0 1rem;
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
}

.sc-skin-mini.is-skin {
  color: #1a7f37;
}

.sc-skin-mini.is-cut {
  color: #c62828;
}

.sc-stb-low {
  background: #ffe0e0;
}

.sc-stb-high {
  background: #e6f4e6;
}

.sc-hcap-stars {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -0.05em;
}

.sc-hcap-star-extra {
  color: #c62828;
}

.sc-section-title {
  margin: 1.25rem 0 0.65rem;
  font-size: 1.1rem;
  font-weight: 700;
}

.sc-field-list {
  display: grid;
  gap: 1rem;
}

.page-home .home-card {
  width: min(520px, 100%);
}

.home-welcome {
  margin: 0 0 1rem;
  font-size: 1.2rem;
  line-height: 1.35;
  color: var(--text);
}

.home-welcome strong {
  color: var(--header-green);
  font-weight: 700;
}

.home-loading {
  margin: 0.75rem 0 1rem;
  color: var(--muted);
}

.ss-loading {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.ss-spinner {
  width: 1.15rem;
  height: 1.15rem;
  border: 2.5px solid #c5d9cc;
  border-top-color: var(--primary);
  border-radius: 50%;
  flex-shrink: 0;
  animation: ss-spin 0.75s linear infinite;
}

@keyframes ss-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ss-spinner {
    animation: none;
  }
}

.home-empty {
  margin: 1rem 0 1.25rem;
  padding: 0;
  border: none;
  background: transparent;
  text-align: center;
}

.home-empty-art {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
  border: 1px solid var(--border);
}

.home-section-label {
  margin: 0 0 0.35rem;
  color: var(--muted);
  font-size: 0.95rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.home-tournament-box {
  margin-top: 0;
  margin-bottom: 0;
  background: var(--info-soft);
  border: 1px solid #c5d6e6;
}

.home-tournament-box > span {
  display: block;
  color: var(--muted);
  font-size: 1.05rem;
}

.home-tournament-box .home-actions {
  margin-top: 1.15rem;
}

.home-actions {
  margin-top: 1rem;
}

.home-gate-hint {
  margin: -0.15rem 0 0;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.4;
  text-align: center;
}

.home-hub-nav {
  display: grid;
  gap: 0.75rem;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border);
}

.home-hub-nav-label {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.home-hub-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.home-hub-grid-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: 0.65rem 0.5rem;
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.25;
  text-wrap: balance;
  hyphens: auto;
}

.home-hub-grid-btn--stacked {
  flex-direction: column;
  gap: 0.12rem;
  min-height: 3.75rem;
  padding: 0.5rem 0.5rem;
}

.home-hub-grid-btn-title {
  font-weight: 700;
}

.home-hub-grid-btn-sub {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.2;
}

.home-secondary-actions {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border);
}

.home-admin-btn {
  background: var(--error-soft);
  color: var(--error);
  border: 1px solid #f0c4c0;
  font-weight: 700;
}

.home-admin-btn:hover {
  background: #ffe4e1;
  border-color: #e8a9a4;
}

.home-admin-btn:active {
  background: #ffd5d0;
}

.home-secondary-actions .btn-secondary {
  font-weight: 700;
}

.home-complete-message {
  margin: 0.75rem 0 0;
  color: var(--muted);
  font-size: 1.0625rem;
}

.home-tournament-box .home-emphasis-note {
  margin: 0.75rem 0 0;
}

.home-emphasis-note {
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border-radius: 10px;
  background: var(--error-soft);
  border: 1px solid #f0c4c0;
  color: var(--error);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
}

.home-hub-nav .home-signup-gateway {
  margin: 0;
  padding: 1rem;
  border-radius: 12px;
  background: var(--info-soft);
  border: 1px solid #c5d6e6;
  text-align: center;
}

.home-hub-nav .home-signup-gateway .home-actions {
  margin-top: 0;
}

.home-signup-gateway {
  margin: 1.25rem 0 0;
  padding: 1.25rem 1rem;
  border-radius: 12px;
  background: var(--info-soft);
  border: 1px solid #c5d6e6;
  text-align: center;
}

.home-signup {
  margin: 0 0 1.25rem;
  padding: 1.25rem 1rem;
  border-radius: 12px;
  background: var(--info-soft);
  border: 1px solid #c5d6e6;
}

.home-signup-deadline {
  margin: 0.5rem 0 0.35rem;
  font-size: 1rem;
  color: var(--text);
}

.home-signup-deadline-closed {
  color: #9a3412;
}

.home-signup-status {
  margin: 0 0 0.75rem;
  color: var(--muted);
  font-size: 0.98rem;
  line-height: 1.45;
}

.home-signup-gateway:has(#home-signup-btn[hidden]) .home-signup-status {
  margin-bottom: 0;
}

.home-signup-gateway:has(#home-signup-btn[hidden]) .home-actions {
  display: none;
}

.page-signup .signup-card {
  width: min(520px, 100%);
}

.signup-header {
  position: relative;
  text-align: center;
  margin-bottom: 0.5rem;
}

.signup-header h1 {
  margin: 0 0 0.35rem;
  font-size: 1.5rem;
}

.signup-back {
  position: absolute;
  top: 0;
  right: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  color: var(--text);
  text-decoration: none;
  font-size: 1.75rem;
  line-height: 1;
}

.signup-loading {
  margin: 0.75rem 0 1rem;
  color: var(--muted);
}

.signup-reminder,
.signup-helper {
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.45;
}

.signup-field {
  margin: 0 0 1rem;
}

.signup-field legend {
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.signup-radio-row {
  display: flex;
  gap: 1.5rem;
  margin-bottom: 0.35rem;
}

.signup-radio-label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 1.05rem;
}

.signup-radio-label input {
  width: 1.2rem;
  height: 1.2rem;
}

.signup-tournament-box {
  margin-bottom: 0.5rem;
}

.signup-deadline {
  margin: 0 0 1rem;
  font-weight: 600;
  color: var(--text);
}

.signup-textarea-wrap {
  position: relative;
}

.signup-textarea-wrap textarea {
  width: 100%;
  min-height: 5.5rem;
  padding: 0.75rem 4.5rem 1.5rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  font: inherit;
  resize: vertical;
  box-sizing: border-box;
}

.signup-char-counter {
  position: absolute;
  right: 0.65rem;
  bottom: 0.55rem;
  font-size: 0.85rem;
  color: var(--muted);
}

.signup-char-counter.warning {
  color: #b36b00;
  font-weight: 600;
}

.signup-char-counter.limit {
  color: #cc0000;
  font-weight: 700;
}

.signup-empty {
  margin: 1rem 0;
  padding: 1rem;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid var(--border);
  text-align: center;
}

.signup-empty h2 {
  margin: 0 0 0.5rem;
  font-size: 1.25rem;
}

.signup-empty-message {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.signup-current {
  margin: 0 0 1.25rem;
}

.signup-current + #signup-tournament-section,
.signup-tournament-section + #signup-form-section {
  padding-top: 1.25rem;
  border-top: 1px solid var(--border);
}

.signup-tournament-section {
  margin: 0 0 1.25rem;
}

.signup-tournament-section h2 {
  margin: 0 0 0.75rem;
  font-size: 1.2rem;
}

.signup-tournament-hint {
  margin: 0 0 0.85rem;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.45;
}

.signup-tournament-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.signup-tournament-card.action-card {
  align-items: center;
}

.signup-tournament-card.is-selected {
  border-color: var(--primary);
  background: #dceaf4;
  box-shadow: 0 0 0 1px var(--primary);
}

.signup-tournament-summary {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.3rem;
}

.signup-tournament-summary .signup-tournament-card-badge {
  background: #dcfce7;
  color: #166534;
}

.signup-tournament-card-name {
  font-size: 1.05rem;
}

.signup-tournament-card-date,
.signup-tournament-card-deadline {
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.4;
}

.signup-tournament-card-badge {
  display: inline-block;
  margin-top: 0.25rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.signup-tournament-card .signup-tournament-card-badge {
  background: #dcfce7;
  color: #166534;
}

.signup-selected-summary {
  margin: 0 0 0.35rem;
  font-weight: 600;
}

.signup-form-heading {
  margin: 0 0 0.75rem;
  font-size: 1.2rem;
}

.signup-current:last-of-type {
  margin-bottom: 0;
}

.signup-current h2 {
  margin: 0 0 0.75rem;
  font-size: 1.2rem;
}

.signup-current-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.signup-current-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  margin: 0 0 1rem;
}

.signup-current-item.info-box {
  margin-top: 0;
}

.signup-current-date {
  color: var(--muted);
  font-size: 0.95rem;
}

.signup-current-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.signup-current-closed {
  color: #9a3412;
  font-size: 0.92rem;
  line-height: 1.4;
}

.signup-footer-actions {
  margin-top: 1.25rem;
}

.btn-small {
  padding: 0.45rem 0.85rem;
  font-size: 0.95rem;
}

.admin-members-card {
  width: min(960px, 100%);
}

.members-view[hidden] {
  display: none !important;
}

.reset-picker-list {
  max-height: min(22rem, 50vh);
  margin-top: 0.5rem;
}

#reset-pick-panel .admin-inline-label {
  display: block;
  margin-bottom: 0.35rem;
}

#reset-search {
  width: 100%;
  height: 3.25rem;
  padding: 0 1rem;
  margin: 0;
  border: 2px solid var(--border);
  border-radius: 10px;
  font-size: 1.125rem;
  font-family: inherit;
}

.admin-reset-name {
  margin: 0 0 0.35rem;
  font-size: 1.25rem;
  font-weight: 700;
}

#admin-hub-door-form {
  margin-top: 1rem;
}

#admin-hub-door-form input[type="text"] {
  width: 100%;
  margin-bottom: 1rem;
}

.admin-members-toolbar {
  display: grid;
  gap: 0.75rem;
  margin: 1rem 0;
}

@media (min-width: 640px) {
  .admin-members-toolbar {
    grid-template-columns: auto 1fr auto 1fr auto;
    align-items: end;
  }

  .admin-dues-toolbar {
    grid-template-columns: minmax(7rem, 1fr) minmax(7rem, 1fr) minmax(10rem, 1.5fr) auto;
    align-items: end;
  }

  .admin-roster-toolbar {
    grid-template-columns: minmax(7rem, 1fr) minmax(10rem, 1.5fr);
    align-items: end;
  }

  .admin-hcap-toolbar {
    grid-template-columns: minmax(7rem, 1fr) minmax(7rem, 1fr) minmax(8rem, 1.2fr);
    align-items: end;
  }

  .admin-collections-toolbar {
    grid-template-columns: minmax(12rem, 22rem);
    align-items: start;
  }
}

.admin-members-form-grid {
  display: grid;
  gap: 0.85rem;
}

.members-guest-toggle {
  margin: 0 0 0.5rem;
  font-size: 1.15rem;
}

#members-guest-hint {
  margin: 0 0 1rem;
}

.admin-members-panel {
  margin-top: 1.25rem;
}

.admin-members-panel .admin-section {
  margin-top: 0.75rem;
}

.admin-members-import-controls {
  display: grid;
  gap: 0.75rem;
  margin: 1rem 0;
}

@media (min-width: 640px) {
  .admin-members-import-controls {
    grid-template-columns: auto 1fr auto;
    align-items: end;
  }
}

.admin-members-import-preview {
  margin-top: 1rem;
}

.admin-members-import-list {
  margin: 0.35rem 0 1rem;
  padding-left: 1.25rem;
  font-size: 1.05rem;
  line-height: 1.5;
}

.admin-members-import-list li + li {
  margin-top: 0.35rem;
}

.import-new-status {
  min-width: 8.5rem;
  font-size: 1.05rem;
  padding: 0.35rem 0.5rem;
}

@media (min-width: 640px) {
  .admin-members-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.admin-hub-card {
  width: min(720px, 100%);
}

.admin-hub-grid {
  display: grid;
  gap: 1rem;
  margin-top: 1.25rem;
}

.admin-test-badge {
  display: inline-block;
  margin-left: 0.35rem;
  padding: 0.05rem 0.4rem;
  border-radius: 999px;
  background: #e8eef4;
  color: #355845;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.admin-hub-card .action-card__title {
  font-size: 1.35rem;
}

.admin-header .admin-event-badge {
  margin-top: 0.5rem;
}

.admin-event-heading {
  margin: 1.75rem 0 0.35rem;
  font-size: 1.2rem;
}

.admin-event-list {
  display: grid;
  gap: 0.75rem;
  margin-top: 0.75rem;
}

.admin-hub-card.admin-finished-card {
  width: min(92rem, 100%);
  max-width: none;
}

.admin-finished-event-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}

.admin-finished-event-list .admin-event-card {
  padding: 0.75rem 0.8rem;
  align-items: flex-start;
}

.admin-finished-event-list .action-card__title {
  font-size: 1.05rem;
  overflow-wrap: break-word;
}

.admin-finished-event-list .action-card__meta {
  font-size: 0.95rem;
}

.admin-finished-event-list .action-card__cue {
  font-size: 1.35rem;
  margin-top: 0.1rem;
}

@media (min-width: 768px) {
  .admin-finished-event-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .admin-finished-event-list {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}

.admin-event-card--today {
  border-color: var(--primary);
  background: var(--ok-soft);
}

.admin-event-card--leftover {
  border-color: #e2b203;
  background: var(--warn-soft);
}

.admin-event-card--upcoming,
.admin-event-card--finished {
  border-color: #d0d7de;
  background: #fff;
}

.admin-event-badge {
  display: inline-block;
  margin-top: 0.35rem;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
}

.admin-event-card--today .admin-event-badge,
.admin-event-badge--today {
  background: var(--primary);
  color: #fff;
}

.admin-event-card--leftover .admin-event-badge,
.admin-event-badge--leftover {
  background: #fef3c7;
  color: #92400e;
}

.admin-event-card--finished .admin-event-badge,
.admin-event-badge--finished {
  background: #e8eef4;
  color: var(--info-text);
}

.admin-event-badge--upcoming {
  background: #e8eef4;
  color: var(--muted);
}

.admin-event-actions {
  display: grid;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.admin-context-strip {
  margin: 1rem 0 0.25rem;
}

.admin-finish-banner {
  margin: 1rem 0;
  padding: 0.875rem 1rem;
  border-radius: 10px;
  font-size: 1.05rem;
}

.admin-finish-banner--complete {
  background: #ecfdf3;
  border: 1px solid #86efac;
  color: #14532d;
}

.admin-finish-banner--warn {
  background: #fff7ed;
  border: 1px solid #fdba74;
  color: #9a3412;
}

.admin-finish-unsigned td {
  background: #fff7ed;
}

#finish-correction-panel .admin-actions {
  margin-top: 0.75rem;
}

#finish-correction-form {
  margin-top: 1rem;
}

.admin-finish-correction-list {
  display: grid;
  gap: 0.65rem;
}

.admin-finish-correction-row {
  display: grid;
  gap: 0.65rem;
  align-items: center;
  padding: 0.85rem 1rem;
  border: 1px solid var(--border, #d0d7de);
  border-radius: 0.75rem;
  background: #fff;
}

@media (min-width: 640px) {
  .admin-finish-correction-row {
    grid-template-columns: minmax(0, 1fr) 5.5rem auto;
  }
}

.admin-finish-correction-name {
  font-weight: 600;
  font-size: 1.05rem;
}

.admin-finish-correction-hcp {
  width: 100%;
  text-align: center;
}

#finish-correction-password,
#finish-correction-reason {
  width: 100%;
  margin-bottom: 0.75rem;
}

.page-leaderboards .lb-disclaimer {
  font-weight: 600;
}

.admin-edit-scores-card #edit-scores-group {
  margin-bottom: 0.75rem;
}

#edit-scores-complete-lock {
  margin-bottom: 1rem;
}

#edit-scores-password,
#edit-scores-reason {
  width: 100%;
  margin-bottom: 0.75rem;
}

.admin-edit-scores-card .sk-review-list {
  margin-top: 1rem;
}

.admin-late-card .late-picker-list,
.admin-medical-card .late-picker-list {
  max-height: min(60vh, 28rem);
  overflow-y: auto;
  margin: 0.5rem 0 0;
}

.mw-selected-name {
  margin: 0 0 1rem;
  font-size: 1.25rem;
  font-weight: 700;
}

.late-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.late-dial {
  position: sticky;
  bottom: 0;
  z-index: 6;
  margin: 0.75rem -0.15rem 0.35rem;
  padding: 0.65rem 0.35rem calc(0.45rem + env(safe-area-inset-bottom, 0px));
  background: var(--card);
  box-shadow: 0 -6px 16px rgba(20, 33, 61, 0.08);
  border-radius: 12px 12px 0 0;
}

.late-dial-label {
  margin: 0 0 0.5rem;
  color: var(--muted);
  font-size: 1.05rem;
  font-weight: 600;
  text-align: center;
}

.late-dial .sk-review-edit-dial {
  margin-bottom: 0.35rem;
}

.late-dial .sk-text-btn {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.35rem 0;
  text-align: center;
}

.late-hole-input {
  width: 100%;
  min-height: 3rem;
  padding: 0.25rem 0.1rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: #1d4ed8;
  font-size: clamp(1rem, 3vw, 1.35rem);
  font-weight: 700;
  text-align: center;
}

.late-hole-input.is-active {
  border-color: var(--primary);
  border-width: 2px;
  box-shadow: 0 0 0 2px rgba(27, 107, 58, 0.22);
}

.late-hole-input:disabled {
  background: #f8fafc;
  color: var(--muted);
}

.admin-hcap-card {
  max-width: 960px;
}

.admin-hcap-layout {
  display: grid;
  gap: 1.25rem;
}

.admin-hcap-toolbar {
  margin-bottom: 0.75rem;
}

@media (min-width: 768px) {
  .admin-hcap-layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    align-items: start;
  }

  .admin-hcap-list-panel {
    grid-column: 1;
  }

  .admin-hcap-detail-panel,
  #hcap-select-hint {
    grid-column: 2;
  }
}

.admin-hcap-player-list {
  display: grid;
  gap: 0.5rem;
  max-height: 28rem;
  overflow-y: auto;
}

.admin-hcap-player-card.is-selected {
  border-color: var(--primary);
  background: #dceaf4;
  box-shadow: 0 0 0 1px var(--primary);
}

.admin-hcap-player-name {
  font-size: 1.05rem;
}

.admin-hcap-player-meta {
  margin-top: 0.25rem;
  font-size: 0.92rem;
}

.admin-hcap-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
  gap: 0.75rem 1rem;
  margin: 0 0 1rem;
}

.admin-hcap-stats dt {
  font-size: 0.85rem;
  color: #5f6368;
}

.admin-hcap-stats dd {
  margin: 0.15rem 0 0;
  font-size: 1.2rem;
  font-weight: 600;
}

.admin-hcap-form-grid {
  display: grid;
  gap: 0.85rem;
}

@media (min-width: 520px) {
  .admin-hcap-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-hcap-form-grid > :last-child {
    grid-column: 1 / -1;
  }
}

.admin-hcap-preview {
  display: block;
  min-height: 2.75rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border, #d0d7de);
  border-radius: 0.5rem;
  background: #f8fafc;
  font-size: 1.2rem;
  font-weight: 600;
}

.admin-hcap-detail-success {
  margin: 0 0 0.75rem;
  width: 100%;
}

.admin-hcap-card .admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.admin-hcap-card .admin-actions .admin-hcap-detail-success {
  flex: 1 1 100%;
  order: -1;
}

.page-admin:has(.admin-assign-card),
.page-admin:has(.admin-finished-card) {
  width: 100%;
  justify-items: stretch;
}

.admin-card.admin-assign-card {
  width: min(92rem, 100%);
  max-width: none;
}

.admin-assign-toolbar {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.5rem;
  margin: 1.25rem 0;
}

.admin-assign-toolbar .btn {
  width: 100%;
  padding: 0.55rem 0.45rem;
  font-size: 0.95rem;
  line-height: 1.2;
  box-sizing: border-box;
}

.admin-assign-email-mode {
  margin: -0.5rem 0 0.75rem;
}

.admin-assign-modal .admin-field-label {
  display: block;
  margin: 0.85rem 0 0.35rem;
  font-weight: 600;
}

.admin-assign-modal .admin-field-input {
  width: 100%;
  box-sizing: border-box;
}

.admin-assign-modal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: flex-end;
  margin-top: 1.25rem;
}

.admin-assign-preview-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-top: 1rem;
}

.admin-assign-duplicate-warn {
  color: #9a6700;
  font-weight: 600;
}

.admin-assign-sending {
  z-index: 120;
}

#assign-send-emails:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.admin-late-player-results {
  margin: 0.75rem 0 1rem;
  max-height: 240px;
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
}

.admin-late-player-option {
  font-size: 1.05rem;
}

.admin-late-player-option.is-selected {
  background: #dceaf4;
}

.admin-late-player-option-name {
  font-weight: 700;
}

.admin-late-player-option-meta {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--muted);
}

.admin-late-player-results-empty {
  padding: 1rem;
  color: var(--muted);
  font-size: 0.9375rem;
}

.admin-late-player-volunteer {
  margin: 0.5rem 0 0.75rem;
}

.admin-assign-section {
  margin-top: 1.5rem;
}

.admin-assign-section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.75rem;
  margin-bottom: 0.35rem;
}

.admin-assign-section h2 {
  margin: 0;
  font-size: 1.25rem;
}

.admin-assign-count {
  color: var(--muted);
  font-size: 0.95rem;
}

.admin-assign-helper {
  margin: 0 0 0.75rem;
  color: var(--muted);
  font-size: 0.95rem;
  font-style: italic;
}

.admin-assign-groups {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  min-width: 0;
}

.admin-assign-group-card {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #f8fafc;
  padding: 0.65rem;
}

.admin-assign-group-head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.admin-assign-group-head h3 {
  margin: 0;
  flex: 1;
  min-width: 0;
  font-size: 1.0625rem;
}

.admin-assign-dropzone {
  min-height: 88px;
  min-width: 0;
  padding: 0.5rem;
  border: 2px dashed #cbd5e1;
  border-radius: 10px;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

#assign-unassigned-zone.admin-assign-dropzone {
  display: grid;
  grid-template-columns: 1fr;
  align-content: start;
}

#assign-unassigned-zone .admin-assign-zone-empty,
#assign-unassigned-zone .admin-assign-drop-pad {
  grid-column: 1 / -1;
}

.admin-assign-dropzone.is-drop-target {
  border-color: var(--primary);
  background: #eff6ff;
}

.admin-assign-drop-pad {
  min-height: 2.75rem;
  margin-top: 0.25rem;
  padding: 0.5rem;
  border: 1px dashed #cbd5e1;
  border-radius: 8px;
  background: #f8fafc;
  color: var(--muted);
  font-size: 0.875rem;
  text-align: center;
  flex-shrink: 0;
}

.admin-assign-dropzone.is-drop-target .admin-assign-drop-pad {
  border-color: var(--primary);
  background: #dbeafe;
  color: #1d4ed8;
}

.admin-assign-zone-empty {
  margin: 0;
  padding: 0.75rem 0.5rem;
  text-align: center;
  color: var(--muted);
  font-size: 0.95rem;
}

.admin-assign-tile {
  min-width: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid #93c5fd;
  border-radius: 10px;
  background: #fff;
  padding: 0.4rem 0.5rem;
  cursor: grab;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.admin-assign-tile.is-dragging {
  opacity: 0.55;
  cursor: grabbing;
}

.admin-assign-tile-main {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.admin-assign-tile-identity {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.45rem;
  min-width: 0;
}

.admin-assign-tile-name {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.25;
}

.admin-assign-tile-meta {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 0.75rem;
  white-space: nowrap;
}

.admin-assign-tile-extras {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 1.25rem;
  min-width: 0;
}

.admin-assign-badges {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.3rem;
  flex: 0 1 auto;
  min-width: 0;
  min-height: 1.2rem;
}

.admin-assign-badge {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0.08rem 0.35rem;
  border-radius: 999px;
  background: #dcfce7;
  color: #166534;
  font-size: 0.7rem;
  font-weight: 600;
}

.admin-assign-requests {
  flex: 1 1 auto;
  margin: 0;
  min-width: 0;
  min-height: 1.2em;
  color: #b45309;
  font-size: 0.75rem;
  font-style: italic;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-assign-tile-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin-top: 0.15rem;
  padding-top: 0.3rem;
  border-top: 1px solid var(--border);
  min-width: 0;
}

.admin-assign-captain {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.75rem;
  margin: 0;
  flex: 0 1 auto;
  white-space: nowrap;
}

.admin-assign-captain input {
  width: 0.85rem;
  height: 0.85rem;
  flex: 0 0 auto;
}

.admin-assign-tile-actions {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.3rem;
  align-items: center;
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
  flex: 1 1 7rem;
}

.admin-assign-unassign-btn {
  width: auto;
  flex: 0 0 auto;
  padding: 0;
  border: 0;
  background: none;
  color: var(--header-green, #1b6b3a);
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
}

.admin-assign-move-label {
  flex: 1 1 5.5rem;
  min-width: 0;
}

.admin-assign-move-select {
  width: 100%;
  max-width: 100%;
  font-size: 0.75rem;
}

@media (min-width: 640px) {
  .admin-assign-toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .admin-assign-toolbar {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #assign-unassigned-zone.admin-assign-dropzone,
  .admin-assign-groups {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .admin-assign-groups,
  #assign-unassigned-zone.admin-assign-dropzone {
    grid-template-columns: 1fr;
  }
}

/* Member hubs — phone/tablet Better C; desktop keeps centered column */
.page-hub .hub-card {
  width: min(560px, 100%);
}

.hub-header {
  margin-bottom: 1rem;
}

.hub-back {
  display: inline-block;
  margin-bottom: 0.75rem;
  color: var(--header-green);
  font-size: 1.05rem;
  font-weight: 700;
  text-decoration: none;
}

.hub-back:hover {
  text-decoration: underline;
}

.hub-lead {
  margin: 0.35rem 0 0;
}

.hub-empty {
  margin: 1rem 0;
  padding: 1.15rem 1rem;
  border-radius: 12px;
  background: var(--card-soft);
  border: 1px solid var(--border);
  color: var(--muted);
  font-size: 1.05rem;
  text-align: center;
}

.stub-banner {
  margin: 0 0 1rem;
  padding: 0.9rem 1rem;
  border-radius: 12px;
  background: var(--error-soft);
  border: 1px solid #f0c4c0;
  color: var(--error);
  font-size: 1.2rem;
  font-weight: 700;
  text-align: center;
}

.past-results-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}

.past-results-filter,
.admin-season-filter {
  display: grid;
  gap: 0.35rem;
  max-width: 22rem;
  margin: 0 0 1rem;
}

.past-results-filter[hidden],
.admin-season-filter[hidden] {
  display: none !important;
}

@media (max-width: 1024px) {
  /* Better C sitewide (phones/tablets): full-bleed ivory, no outer gray frame.
     Login keeps its own full-bleed photo treatment. */
  .page:not(.page-login__shell) {
    display: block;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 0;
  }

  .page:not(.page-login__shell) > .card,
  body.page > .card {
    width: 100%;
    max-width: none;
    min-height: 100%;
    padding:
      max(1.25rem, env(safe-area-inset-top, 0px))
      max(1.15rem, env(safe-area-inset-right, 0px))
      max(1.75rem, env(safe-area-inset-bottom, 0px))
      max(1.15rem, env(safe-area-inset-left, 0px));
    border-radius: 0;
    box-shadow: none;
  }

  /* Scoring: non-tappable tournament strip can sit closer to the top */
  .page-scorekeeper:has(#scorekeeper-app.sk-shell-scoring) > .card {
    padding-top: max(0.35rem, env(safe-area-inset-top, 0px));
  }

  /* Leaderboards shell has no .card chrome — still go edge-to-edge. */
  .page-leaderboards > .lb-shell {
    width: 100%;
    max-width: none;
    min-height: 100%;
    box-sizing: border-box;
    padding:
      max(1.25rem, env(safe-area-inset-top, 0px))
      max(1.15rem, env(safe-area-inset-right, 0px))
      max(1.75rem, env(safe-area-inset-bottom, 0px))
      max(1.15rem, env(safe-area-inset-left, 0px));
  }

  #scorekeeper-app.sk-setup-layout {
    min-height: 100dvh;
  }
}

@media (min-width: 1025px) {
  .page-hub {
    padding: 2rem 1.5rem;
  }

  .page-hub .hub-card {
    width: min(560px, 100%);
    box-shadow: 0 12px 34px rgba(23, 50, 77, 0.14);
  }

  .page-seasonal-report .ss-report-card {
    width: min(52rem, 100%);
  }
}

.ss-hub-grid {
  display: grid;
  gap: 1rem;
}

.ss-report-filter {
  margin-bottom: 0.85rem;
}

.ss-report-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  gap: 0.65rem 1rem;
  margin-bottom: 0.85rem;
}

.ss-report-filters .ss-report-filter,
.ss-report-filters .past-results-filter {
  margin-bottom: 0;
  max-width: 16rem;
  flex: 1 1 9rem;
  align-content: start;
}

.ss-report-filters .ss-report-filter--who {
  max-width: 18rem;
  flex: 1 1 12rem;
}

.ss-who-hint {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  margin: 0;
  color: #b42318;
  font-size: 0.82rem;
  line-height: 1.4;
}

.ss-who-hint-text--best {
  font-weight: 700;
}

.ss-who-why {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--primary);
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
}

.ss-who-why-body {
  margin: 0 0 0.85rem;
  color: #355845;
  font-size: 0.82rem;
  line-height: 1.45;
}

.ss-note {
  margin: 0 0 0.75rem;
  padding: 0.55rem 0.75rem;
  border-radius: 8px;
  background: #f5f9f5;
  border: 1px solid #d8e2d6;
  color: #486b57;
  font-size: 0.88rem;
  line-height: 1.4;
}

.ss-sheet {
  border: 1px solid #d8e2d6;
  border-radius: 12px;
  background: #fdfefd;
  overflow: hidden;
}

.ss-sheet-titlebar {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  padding: 8px 12px;
  background: #1f5b40;
  color: #f8fcf9;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.ss-sheet-titlebar--stacked {
  flex-direction: column;
  align-items: stretch;
  gap: 0.25rem;
}

.ss-sheet-titlebar-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
}

.ss-sheet-title-season {
  font-weight: 400;
  font-size: 0.82rem;
  color: #ffffff;
}

.ss-sheet-rules {
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  color: rgba(248, 252, 249, 0.78);
  font-size: 0.72rem;
  font-weight: 400;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

#rules-form select,
#rules-form textarea {
  display: block;
  width: 100%;
  margin: 0.35rem 0 1rem;
}

#rules-form textarea {
  min-height: 6.5rem;
  padding: 0.75rem 1rem;
  border: 2px solid var(--border);
  border-radius: 10px;
  font: inherit;
  line-height: 1.4;
  resize: vertical;
}

.ss-sheet-wrap {
  overflow-x: auto;
}

.ss-sheet-table {
  width: 100%;
  border-collapse: collapse;
}

.ss-sheet-table th {
  padding: 6px 10px;
  background: #e8efea;
  border-bottom: 1px solid #d8e2d6;
  color: #355845;
  font-size: 0.73rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-align: left;
}

.ss-sheet-table th.ss-sheet-amt,
.ss-sheet-table td.ss-sheet-amt {
  text-align: right;
  white-space: nowrap;
  width: 6.5rem;
}

.ss-sheet-sort {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  text-align: inherit;
  cursor: pointer;
}

.ss-sheet-table th.ss-sheet-name .ss-sheet-sort {
  display: inline;
  width: auto;
  text-align: left;
}

.ss-sheet-table th.ss-sheet-amt .ss-sheet-sort {
  text-align: right;
}

.ss-sheet-sort[aria-pressed="true"] {
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.ss-sheet-table td {
  padding: 5px 10px;
  border-bottom: 1px solid #e6ece8;
  font-size: 0.86rem;
  line-height: 1.25;
  color: #17324d;
}

.ss-sheet-date {
  width: 10.5rem;
  white-space: nowrap;
  color: #486b57;
}

.ss-sheet-name {
  overflow-wrap: anywhere;
}

.ss-sheet-section td {
  padding: 6px 10px;
  background: #1f5b40;
  border-bottom: 1px solid #174832;
  color: #f8fcf9;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.ss-sheet-empty td {
  padding: 7px 10px;
  background: #f5f9f5;
  color: #60758a;
  font-style: italic;
}

.ss-sheet-data {
  cursor: pointer;
}

.ss-sheet-data--pre.ss-sheet-data--a td {
  background: #ffffff;
}

.ss-sheet-data--pre.ss-sheet-data--b td {
  background: #f8fbff;
}

.ss-sheet-data--after.ss-sheet-data--a td {
  background: #ffffff;
}

.ss-sheet-data--after.ss-sheet-data--b td {
  background: #fffaf3;
}

.ss-sheet-data:hover td,
.ss-sheet-data:focus td {
  background: #e8efea;
}

.ss-sheet-data:focus {
  outline: 2px solid rgba(31, 91, 64, 0.28);
  outline-offset: -2px;
}

.ss-sheet-amt {
  font-weight: 700;
}

.ss-sheet-total td {
  padding: 6px 10px;
  background: #f2f6f3;
  border-top: 1px solid #d8e2d6;
  color: #486b57;
  font-size: 0.86rem;
  font-weight: 700;
}

.ss-sheet-total--grand td {
  background: #e8efea;
  color: #1f5b40;
  font-size: 0.92rem;
  font-weight: 800;
}

@media (max-width: 640px) {
  .ss-sheet-date {
    width: 6.75rem;
    white-space: normal;
  }

  .ss-sheet-table td,
  .ss-sheet-table th {
    padding: 5px 7px;
  }
}

.ss-sheet-table th.ss-sheet-expand-col,
.ss-sheet-table td.ss-sheet-expand-col {
  width: 1.75rem;
  padding-right: 0;
  text-align: center;
}

.ss-sheet-expand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #1f5b40;
  font-size: 0.85rem;
  line-height: 1;
  cursor: pointer;
}

.ss-sheet-expand:focus-visible {
  outline: 2px solid rgba(31, 91, 64, 0.4);
  outline-offset: 1px;
}

.ss-sheet-table th.ss-sheet-num,
.ss-sheet-table td.ss-sheet-num {
  text-align: right;
  white-space: nowrap;
  width: 4.5rem;
}

.ss-sheet-table--player-summary th.ss-sheet-name {
  white-space: normal;
  line-height: 1.2;
  text-transform: none;
}

.ss-sheet-table--player-summary th.ss-sheet-name-head .ss-sheet-player-meta {
  color: #486b57;
  font-weight: 700;
}

.ss-sheet-table--player-summary th.ss-sheet-amt,
.ss-sheet-table--player-summary td.ss-sheet-amt {
  width: 6.75rem;
  text-align: center;
}

.ss-sheet-table--player-summary .ss-sheet-sort,
.ss-sheet-table--hda .ss-sheet-sort {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.1rem;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 800;
  letter-spacing: inherit;
  text-transform: none;
  text-align: center;
  cursor: pointer;
}

.ss-sheet-sort-main {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
}

.ss-sheet-sort-sub {
  display: block;
  color: #486b57;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.2;
  text-transform: none;
}

.ss-sheet-sort-arrow {
  font-size: 0.65rem;
  opacity: 0.35;
}

.ss-sheet-sort--active .ss-sheet-sort-arrow {
  opacity: 1;
}

.ss-sheet-table td.ss-sheet-amt--neg,
.ss-sheet-money--neg {
  color: #b42318;
}

.ss-sheet-player-name {
  display: block;
}

.ss-sheet-player-meta {
  display: block;
  margin-top: 0.08rem;
  color: #60758a;
  font-size: 0.74rem;
  font-weight: 500;
}

.ss-sheet-player-extra {
  display: block;
  margin-top: 0.1rem;
  color: #60758a;
  font-size: 0.74rem;
  font-weight: 500;
}

.ss-sheet-detail td {
  padding: 4px 10px 8px 2.4rem;
  background: #f5f9f5;
  border-bottom: 1px solid #e6ece8;
  color: #355845;
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.ss-sheet-detail-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ss-sheet-detail-list li {
  padding: 0.12rem 0;
}

.ss-sheet-data--open td {
  border-bottom-color: transparent;
}

@media (max-width: 640px) {
  .ss-sheet-detail td {
    padding-left: 1.85rem;
  }
}

.admin-inline-link {
  color: var(--primary);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.home-dues-receipt {
  background: var(--ok-soft);
  border-color: var(--secondary-border);
}

.home-dues-receipt p {
  margin: 0 0 0.75rem;
}

.admin-collections-list {
  display: grid;
  gap: 0.75rem;
}

.admin-card.admin-club-dues-card,
.admin-card.admin-collections-card {
  width: min(92rem, 100%);
}

.admin-club-dues-card .admin-collections-list,
.admin-collections-card .admin-collections-list {
  grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr));
  align-items: start;
}

.admin-dues-field,
.admin-dues-search-field,
.admin-roster-field,
.admin-collections-field {
  position: relative;
  display: grid;
  gap: 0.35rem;
  min-width: 0;
  margin: 0;
}

.admin-dues-toolbar .admin-inline-label,
.admin-roster-toolbar .admin-inline-label,
.admin-hcap-toolbar .admin-inline-label,
.admin-collections-toolbar .admin-inline-label,
.past-results-filter .admin-inline-label,
.admin-season-filter .admin-inline-label {
  margin: 0;
}

.admin-dues-toolbar select,
.admin-dues-toolbar input[type="search"],
.admin-dues-toolbar #dues-reset,
.admin-roster-toolbar select,
.admin-roster-toolbar input[type="search"],
.admin-hcap-toolbar select,
.admin-hcap-toolbar input[type="search"],
.admin-collections-toolbar select,
.past-results-filter select,
.admin-season-filter select {
  box-sizing: border-box;
  width: 100%;
  height: 3.25rem;
  margin: 0;
  padding: 0 1rem;
  border: 2px solid var(--border);
  border-radius: 10px;
  font-size: 1.125rem;
  line-height: 1.2;
}

.admin-dues-toolbar #dues-reset {
  width: auto;
  min-width: 6.5rem;
  white-space: nowrap;
}

.admin-dues-field[hidden] {
  display: none !important;
}

.admin-dues-reset-field .admin-inline-label {
  display: none;
}

@media (min-width: 640px) {
  .admin-dues-reset-field .admin-inline-label {
    display: grid;
  }
}

.admin-dues-name-list {
  position: absolute;
  top: calc(100% + 0.15rem);
  left: 0;
  right: 0;
  z-index: 8;
  flex: none;
  max-height: min(50vh, 20rem);
  margin: 0;
  background: var(--card);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}

.admin-dues-name-list[hidden] {
  display: none !important;
}

.admin-collections-card-row {
  position: relative;
  display: grid;
  gap: 0.65rem;
  padding: 0.9rem 1rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--card);
}

.admin-collections-card-row.is-unpaid {
  background: var(--error-soft);
  border: 3px solid var(--error);
}

.admin-collections-card-row.is-no-play {
  background: #fff7ed;
  border-color: #fdba74;
}

.admin-collections-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}

.admin-collections-name-block {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.2rem 0.45rem;
  min-width: 0;
  flex: 1;
}

.admin-collections-name {
  margin: 0;
  padding-right: 0.25rem;
  font-weight: 700;
  font-size: 1.05rem;
  min-width: 0;
}

.admin-collections-pd {
  margin: 0;
  padding: 0.08rem 0.4rem;
  border-radius: 999px;
  background: var(--header-green);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  line-height: 1.25;
  white-space: nowrap;
}

.admin-collections-dollar {
  flex-shrink: 0;
  margin: -0.25rem -0.25rem 0 0;
  padding: 0.15rem 0.4rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #eef6f1;
  color: var(--header-green);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1.2;
  cursor: pointer;
}

.admin-collections-dollar.is-open,
.admin-collections-dollar:hover {
  background: #dcefe3;
  border-color: #9eb6c9;
}

.admin-collections-no-play {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: #9a3412;
}

.admin-collections-fees {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
}

.admin-collections-option {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 1rem;
}

.admin-collections-dues {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.admin-collections-dues .admin-hint {
  margin: 0;
  flex: 1 1 100%;
}

.admin-collections-extras {
  display: grid;
  gap: 0.45rem;
  margin: 0;
  padding: 0.65rem 0 0;
  border: 0;
  border-top: 1px solid var(--border);
  min-width: 0;
}

.admin-collections-extras-label {
  float: none;
  width: auto;
  margin: 0;
  padding: 0;
  font-size: 0.95rem;
  font-weight: 700;
}

.admin-collections-extra {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.98rem;
  line-height: 1.35;
}

.admin-collections-extra input {
  flex-shrink: 0;
  width: 1.15rem;
  height: 1.15rem;
  margin-top: 0.15rem;
}

.admin-collections-extra.is-disabled {
  color: var(--muted);
}

.lb-dues-icon {
  margin-left: 0.35rem;
  padding: 0.05rem 0.35rem;
  border-radius: 6px;
  background: var(--warn-soft);
  color: var(--warn);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
  cursor: help;
}

#dues-correct-password {
  width: 100%;
  padding: 0.75rem 0.85rem;
  margin: 0.35rem 0 1rem;
  border: 2px solid var(--border);
  border-radius: 10px;
  font: inherit;
}

.account-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}

.page-account .account-header h1 {
  margin: 0;
}

.page-account .account-header .hub-back {
  margin-bottom: 0;
  flex-shrink: 0;
}

.account-name-row {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 0 0.85rem;
}

.account-name-row input[type="text"] {
  margin-bottom: 1.25rem;
}

.account-block {
  margin: 1.5rem 0 0;
  padding: 1.15rem 1rem 1.25rem;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--card-soft);
}

.account-block h2 {
  margin: 0 0 0.35rem;
  font-size: 1.2rem;
}

.account-hint {
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: 1rem;
  font-weight: 400;
}

#account-profile-form .account-hint {
  margin: -0.5rem 0 1rem;
}

.account-status {
  margin: 0 0 0.85rem;
  font-size: 1.05rem;
}

.account-label {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 1.125rem;
  font-weight: 600;
}

.account-readonly {
  margin: 0 0 1.25rem;
  font-size: 1.25rem;
}

.account-actions {
  display: grid;
  gap: 0.65rem;
}

.account-modal-sheet {
  max-width: 420px;
}

.page-login__card .btn-secondary {
  width: 100%;
}

.ss-report-filters .ss-report-filter--view {
  max-width: 14rem;
  flex: 1 1 10rem;
}

.ss-view-toggle {
  display: flex;
  box-sizing: border-box;
  width: 100%;
  height: 3.25rem;
  overflow: hidden;
  border: 2px solid var(--border);
  border-radius: 10px;
  background: #fff;
}

.ss-view-btn {
  flex: 1;
  margin: 0;
  padding: 0 0.65rem;
  border: 0;
  background: transparent;
  color: #355845;
  font: inherit;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
}

.ss-view-btn + .ss-view-btn {
  border-left: 1px solid var(--border);
}

.ss-view-btn.is-active {
  background: #1f5b40;
  color: #f8fcf9;
}

.ss-graph {
  margin-top: 0.15rem;
}

.ss-graph-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
  gap: 0.65rem 1rem;
  margin: 0 0 0.85rem;
}

.ss-graph-controls .ss-report-filter,
.ss-graph-controls .past-results-filter {
  margin-bottom: 0;
  max-width: 16rem;
  flex: 1 1 9rem;
  align-content: start;
}

.ss-graph-controls .ss-report-filter--average {
  max-width: 20rem;
  flex: 1 1 14rem;
}

.ss-graph-average-note {
  margin: 0;
  color: #486b57;
  font-size: 0.78rem;
  font-weight: 400;
  line-height: 1.35;
}

.ss-graph-preview-note {
  margin: 0 0 0.45rem;
  color: #355845;
  font-size: 0.82rem;
  line-height: 1.4;
}

.ss-graph-custom {
  margin: 0 0 0.85rem;
  padding: 0.75rem;
  border: 1px solid #d8e2d6;
  border-radius: 10px;
  background: #f5f9f5;
}

.ss-graph-custom-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-bottom: 0.65rem;
}

.ss-graph-bin-btn {
  min-height: 2.4rem;
  padding: 0.35rem 0.75rem;
  border: 2px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: #355845;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 700;
  cursor: pointer;
}

.ss-graph-bin-btn:disabled {
  opacity: 0.5;
  cursor: default;
}

.ss-graph-bin-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-bottom: 0.55rem;
}

.ss-graph-bin-field {
  display: grid;
  gap: 0.25rem;
  min-width: 7rem;
  color: #355845;
  font-size: 0.78rem;
  font-weight: 700;
}

.ss-graph-bin-field input {
  box-sizing: border-box;
  width: 7.5rem;
  height: 2.6rem;
  padding: 0 0.65rem;
  border: 2px solid var(--border);
  border-radius: 8px;
  font: inherit;
}

.ss-graph-custom-errors,
.ss-graph-errors {
  margin: 0.45rem 0 0;
  color: #b42318;
  font-size: 0.82rem;
  line-height: 1.4;
}

.ss-graph-card {
  display: grid;
  gap: 0.75rem;
}

.ss-graph-card-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem 1rem;
  align-items: start;
}

.ss-graph-card-copy h2 {
  margin: 0 0 0.25rem;
  color: #17324d;
  font-size: 1.15rem;
}

.ss-graph-filter-summary {
  margin: 0 0 0.35rem;
  color: #1f5b40;
  font-size: 0.88rem;
  font-weight: 700;
}

.ss-graph-explainer,
.ss-graph-ungrouped {
  margin: 0;
  color: #486b57;
  font-size: 0.82rem;
  line-height: 1.45;
}

.ss-graph-ungrouped {
  margin-top: 0.35rem;
}

.ss-graph-rules {
  max-width: 22rem;
  color: #486b57;
  font-size: 0.75rem;
  line-height: 1.45;
  text-align: right;
}

.ss-graph-empty {
  margin: 0;
  padding: 1.25rem;
  color: #486b57;
}

.ss-graph-shell {
  position: relative;
  padding: 14px 14px 8px;
  overflow-x: auto;
  border: 1px solid #e4ebf2;
  border-radius: 18px;
  background: linear-gradient(180deg, #fcfdff 0%, #f6f9fc 100%);
}

.ss-graph-svg {
  display: block;
  width: 100%;
  min-width: 760px;
  height: auto;
}

.ss-graph-grid-row line {
  stroke: #d8e2ec;
  stroke-width: 1;
}

.ss-graph-grid-row text {
  fill: var(--muted);
  font-size: 12px;
  font-weight: 600;
  text-anchor: end;
}

.ss-graph-baseline {
  stroke: #8ca0b3;
  stroke-width: 1.5;
}

.ss-graph-bar-value,
.ss-graph-axis-primary {
  fill: var(--text);
  font-size: 12px;
  font-weight: 700;
  text-anchor: middle;
}

.ss-graph-axis-secondary {
  fill: var(--muted);
  font-size: 11px;
  font-weight: 600;
  text-anchor: middle;
}

.ss-graph-x-title {
  fill: var(--text);
  font-size: 15px;
  font-weight: 600;
  text-anchor: middle;
}

.ss-graph-x-subtitle {
  fill: var(--muted);
  font-size: 12px;
  font-weight: 500;
  text-anchor: middle;
}

.ss-graph-bin-separator {
  stroke: #dfe8f2;
  stroke-width: 1;
  stroke-dasharray: 4 6;
}

.ss-graph-shell--detailed {
  background: linear-gradient(180deg, #fdfefe 0%, #f4f8fb 100%);
}

.ss-graph-svg--detailed {
  touch-action: none;
  cursor: grab;
}

.is-ss-graph-panning .ss-graph-svg--detailed {
  cursor: grabbing;
}

.ss-graph-zoom-toolbar {
  display: inline-grid;
  grid-template-columns: auto auto auto auto;
  align-items: center;
  gap: 6px;
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 5;
  padding: 6px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid #d8e2ec;
  box-shadow: 0 10px 24px rgba(23, 50, 77, 0.14);
}

.ss-graph-zoom-button,
.ss-graph-zoom-reset {
  min-height: 0;
  min-width: 30px;
  padding: 5px 9px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: #355845;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
}

.ss-graph-zoom-reset {
  min-width: 0;
}

.ss-graph-zoom-button:disabled,
.ss-graph-zoom-reset:disabled {
  opacity: 0.45;
  cursor: default;
}

.ss-graph-zoom-level {
  min-width: 42px;
  color: var(--text);
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}

.is-ss-graph-inspecting .ss-graph-zoom-toolbar {
  opacity: 0.58;
}

.ss-graph-marker {
  vector-effect: non-scaling-stroke;
}

.ss-graph-dot {
  cursor: pointer;
}

.ss-graph-dot:hover {
  opacity: 0.8;
}

.ss-graph-dot.is-selected {
  stroke: #17324d;
  stroke-width: 2.25;
}

.ss-graph-inspector {
  display: grid;
  gap: 0.45rem;
  position: absolute;
  right: 14px;
  bottom: 14px;
  left: 14px;
  z-index: 4;
  padding: 12px;
  border: 1px solid #d8e2ec;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 14px 32px rgba(23, 50, 77, 0.16);
}

.ss-graph-inspector.is-hidden {
  display: none;
}

.ss-graph-inspector-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.ss-graph-inspector-header strong {
  color: var(--primary);
  font-size: 0.95rem;
}

.ss-graph-inspector-close {
  min-height: 0;
  padding: 5px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: #355845;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}

.ss-graph-inspector-meta,
.ss-graph-inspector-empty {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
}

.ss-graph-inspector-lines {
  margin: 0;
  padding-left: 1.15rem;
  color: var(--text);
  font-size: 0.82rem;
  line-height: 1.45;
}

@media (max-width: 860px) {
  .ss-graph-card-header {
    grid-template-columns: minmax(0, 1fr);
  }

  .ss-graph-rules {
    max-width: none;
    text-align: left;
  }

  .ss-graph-zoom-toolbar {
    display: none;
  }
}

@media (min-width: 1025px) {
  .page-seasonal-report .ss-report-card.ss-hda-card {
    width: min(58rem, 100%);
  }
}

.ss-hda-lead {
  margin: 0.35rem 0 0;
  max-width: 42rem;
  font-size: 0.95rem;
  line-height: 1.4;
}

.ss-report-filters .ss-report-filter--player {
  max-width: 18rem;
  flex: 1 1 12rem;
}

.ss-report-filters .ss-report-filter--gender {
  max-width: 14rem;
  flex: 0 1 10rem;
}

.ss-hda-player {
  position: relative;
}

.ss-hda-player input,
.ss-hda-player input[type="text"] {
  box-sizing: border-box;
  width: 100%;
  height: 3.25rem;
  margin: 0;
  margin-bottom: 0;
  padding: 0 1rem;
  border: 2px solid var(--border);
  border-radius: 10px;
  background: #fff;
  color: var(--text);
  font: inherit;
  font-size: 1.125rem;
  line-height: 1.2;
}

.ss-hda-player-options {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  right: 0;
  z-index: 20;
  max-height: 16rem;
  overflow-y: auto;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(23, 50, 77, 0.14);
}

.ss-hda-player-options button {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.7rem 1rem;
  border: 0;
  background: transparent;
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.ss-hda-player-options button:hover,
.ss-hda-player-options button.is-active {
  background: var(--secondary-soft);
  color: var(--secondary-text);
}

.ss-hda-gender {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 1rem;
  min-height: 3.25rem;
}

.ss-hda-check {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0;
  color: var(--text);
  font-size: 1.05rem;
  font-weight: 600;
  cursor: pointer;
}

.ss-hda-check input {
  width: 1.15rem;
  height: 1.15rem;
  accent-color: var(--primary);
}

.ss-hda-handicap {
  margin: 0 0 0.75rem;
}

.ss-hda-handicap-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
}

.ss-hda-handicap-range {
  color: var(--text);
  font-size: 0.95rem;
  font-weight: 700;
}

.ss-hda-range {
  position: relative;
  height: 2.75rem;
  margin-top: 0.15rem;
  --range-start: 0%;
  --range-end: 100%;
}

.ss-hda-range::before,
.ss-hda-range::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 8px;
  border-radius: 999px;
  transform: translateY(-50%);
}

.ss-hda-range::before {
  background: #d8e2d6;
  z-index: 0;
}

.ss-hda-range::after {
  left: var(--range-start);
  right: calc(100% - var(--range-end));
  background: var(--primary);
  opacity: 0.72;
  z-index: 1;
}

.ss-hda-range input[type="range"] {
  pointer-events: none;
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  height: 2.75rem;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  z-index: 2;
}

.ss-hda-range input[type="range"]::-webkit-slider-runnable-track {
  height: 8px;
  background: transparent;
  border: 0;
}

.ss-hda-range input[type="range"]::-moz-range-track {
  height: 8px;
  background: transparent;
  border: 0;
}

.ss-hda-range input[type="range"]::-webkit-slider-thumb {
  pointer-events: all;
  -webkit-appearance: none;
  appearance: none;
  width: 1.55rem;
  height: 1.55rem;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--primary);
  box-shadow: 0 2px 8px rgba(23, 50, 77, 0.22);
  cursor: grab;
}

.ss-hda-range input[type="range"]::-moz-range-thumb {
  pointer-events: all;
  width: 1.55rem;
  height: 1.55rem;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--primary);
  box-shadow: 0 2px 8px rgba(23, 50, 77, 0.22);
  cursor: grab;
}

.ss-hda-stats {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.2rem 0.45rem;
  margin: 0 0 0.85rem;
  color: var(--text);
  font-size: 0.92rem;
  line-height: 1.4;
}

.ss-hda-stat-label {
  color: var(--muted);
  font-weight: 600;
}

.ss-hda-stats strong {
  font-weight: 800;
}

.ss-hda-stat-sep {
  color: var(--muted);
  font-weight: 700;
}

.ss-hda-rules {
  margin: 0 0 0.75rem;
  color: #486b57;
  font-size: 0.82rem;
  line-height: 1.4;
}

.ss-hda-chart-card {
  margin: 0 0 1.1rem;
}

.ss-hda-chart-copy h2 {
  margin: 0 0 0.2rem;
  color: #17324d;
  font-size: 1.12rem;
}

.ss-hda-chart-copy p {
  margin: 0 0 0.65rem;
  color: #486b57;
  font-size: 0.82rem;
  line-height: 1.4;
}

.ss-hda-chart-shell {
  min-height: 12rem;
}

.ss-hda-chart-note {
  margin: 0.55rem 0 0;
  color: #486b57;
  font-size: 0.82rem;
  line-height: 1.4;
}

.ss-hda-chart-shell .ss-graph-svg {
  min-width: 640px;
}

.ss-sheet-table--hda th.ss-sheet-amt,
.ss-sheet-table--hda td.ss-sheet-amt {
  width: 8.5rem;
}

.ss-con-sample {
  margin: 0 0 0.65rem;
}

.ss-con-mix {
  margin: 0 0 1.15rem;
}

.ss-con-mix-head {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  justify-content: space-between;
  gap: 0.45rem 1rem;
  margin: 0 0 0.45rem;
}

.ss-con-mix-head h2 {
  margin: 0;
  color: #17324d;
  font-size: 1.12rem;
}

.ss-con-mix-toolbar {
  display: grid;
  gap: 0.25rem;
  min-width: 10.5rem;
}

.ss-con-mix-toolbar .admin-inline-label {
  margin: 0;
  font-size: 0.82rem;
}

.ss-con-mix-sort {
  height: 2.55rem;
}

.ss-con-mix-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.85rem;
  margin: 0 0 0.55rem;
  padding: 0;
  list-style: none;
  color: #486b57;
  font-size: 0.78rem;
  font-weight: 600;
}

.ss-con-mix-legend li {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.ss-con-mix-swatch {
  display: inline-block;
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 3px;
}

.ss-con-mix-list {
  display: grid;
  gap: 0.4rem;
}

.ss-con-mix-row {
  display: grid;
  grid-template-columns: 6.6rem minmax(0, 1fr);
  align-items: center;
  gap: 0.65rem;
}

.ss-con-mix-meta {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}

.ss-con-mix-hole {
  color: var(--text);
  font-size: 0.92rem;
  font-weight: 800;
}

.ss-con-mix-sd {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 700;
}

.ss-con-mix-bar {
  display: flex;
  overflow: hidden;
  height: 1.7rem;
  border-radius: 999px;
  background: #e8efea;
}

.ss-con-mix-seg {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  height: 100%;
  overflow: hidden;
}

.ss-con-mix-seg-label {
  padding: 0 0.2rem;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.ss-con-mix-seg--birdie {
  background: #1f5b40;
}

.ss-con-mix-seg--par {
  background: #6d7f90;
}

.ss-con-mix-seg--bogey {
  background: #c4a35a;
}

.ss-con-mix-seg--bogey .ss-con-mix-seg-label {
  color: #3d2c00;
}

.ss-con-mix-seg--double {
  background: #c2413b;
}

.ss-trend-stats {
  row-gap: 0.35rem;
}

.ss-trend-chart-card .ss-con-mix-head {
  align-items: start;
}

.ss-trend-chart-card .ss-hda-chart-copy {
  flex: 1 1 14rem;
}

.ss-trend-chart-card .ss-hda-chart-copy p {
  margin-bottom: 0;
}

.ss-trend-chart-shell .ss-graph-svg {
  min-width: 640px;
}

.ss-trend-chart-shell.ss-trend-chart-shell--dense {
  overflow-x: hidden;
}

.ss-trend-chart-shell.ss-trend-chart-shell--dense .ss-graph-svg {
  min-width: 0;
  width: 100%;
}

.ss-trend-avg {
  stroke: #1f5b40;
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ss-trend-hcp-line,
.ss-trend-series {
  stroke: #355f8a;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ss-trend-series {
  stroke: #1f7a6b;
}

.ss-trend-hit {
  fill: transparent;
  cursor: pointer;
}

.ss-trend-dot {
  stroke: #fff;
  stroke-width: 1.5;
  pointer-events: none;
}

.ss-trend-dot.is-selected {
  stroke: #17324d;
  stroke-width: 2.4;
}

.ss-trend-readout {
  margin: 0.55rem 0 0;
  color: #17324d;
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1.4;
}

.ss-trend-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.9rem;
  margin: 0.55rem 0 0;
  padding: 0;
  list-style: none;
  color: #486b57;
  font-size: 0.78rem;
  font-weight: 600;
}

.ss-trend-legend li {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.ss-trend-legend-dot,
.ss-trend-legend-line,
.ss-trend-legend-base {
  display: inline-block;
  width: 0.85rem;
  height: 0.85rem;
}

.ss-trend-legend-dot {
  border-radius: 999px;
  background: #1f7a6b;
  box-shadow: 0 0 0 2px #fff inset;
}

.ss-trend-legend-line {
  height: 0.18rem;
  border-radius: 999px;
  background: #1f5b40;
}

.ss-trend-legend-base {
  height: 0;
  border-top: 1.5px solid #8ca0b3;
  background: transparent;
}

.ss-sheet-table--trend th.ss-sheet-amt,
.ss-sheet-table--trend td.ss-sheet-amt {
  width: 7.2rem;
}

.ss-sheet-table--trend tr.is-selected td {
  background: #e7f3ec;
}

.admin-export-form,
.admin-documents-form {
  display: grid;
  gap: 0.55rem;
  margin: 0 0 1.25rem;
}

.admin-export-form .btn,
.admin-documents-form .btn {
  justify-self: start;
  margin-top: 0.35rem;
}

.admin-export-scope {
  display: grid;
  gap: 0.45rem;
  margin: 0.15rem 0 0.35rem;
}

.admin-documents-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
}

.admin-documents-item {
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
  display: grid;
  gap: 0.45rem;
}

.admin-log-filters {
  display: grid;
  gap: 0.7rem;
  margin: 0 0 1.15rem;
}

.admin-log-filters label {
  display: grid;
  gap: 0.3rem;
  font-weight: 600;
}

.admin-log-filters select {
  font-weight: 500;
}

.admin-log-problems {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 700;
}

.admin-log-problems input {
  width: 1.15rem;
  height: 1.15rem;
}

.admin-log-actions {
  margin: 0.25rem 0 0;
  padding: 0.65rem 0.75rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 12px;
}

.admin-log-actions legend {
  font-weight: 700;
  padding: 0 0.25rem;
}

.admin-log-actions .admin-hint {
  margin: 0 0 0.5rem;
}

.admin-log-actions-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.4rem 0.75rem;
}

.admin-log-actions-list label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-weight: 500;
}

.admin-log-actions-list input {
  width: 1.1rem;
  height: 1.1rem;
}

.admin-log-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.7rem;
}

.admin-log-row {
  padding: 0.9rem 1rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
  display: grid;
  gap: 0.25rem;
}

.admin-log-when {
  margin: 0;
  font-size: 0.92rem;
  color: #4a5560;
}

.admin-log-message {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 650;
  line-height: 1.35;
}

.admin-log-row.is-warning,
.admin-log-row.is-error {
  background: #ffe8dc;
  border: 3px solid #c62828;
}

.admin-log-row.is-warning .admin-log-when,
.admin-log-row.is-error .admin-log-when {
  color: #9b2c2c;
  font-weight: 700;
}

.admin-log-row.is-error {
  background: #ffd6d0;
  border-color: #b71c1c;
}

.admin-documents-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.35rem;
}

.documents-item.action-card {
  min-height: 4.25rem;
}



