/* v59.0 - unified operational UI. Presentation only; no data or save logic. */

:root {
  --ui-canvas: #efede7;
  --ui-surface: #ffffff;
  --ui-surface-muted: #f7f6f2;
  --ui-surface-strong: #ebe8e0;
  --ui-text: #111b27;
  --ui-muted: #657181;
  --ui-border: #dcdedc;
  --ui-border-strong: #c8ccca;
  --ui-nav: #13212e;
  --ui-nav-soft: #243442;
  --ui-brand: #df291e;
  --ui-brand-dark: #b91f16;
  --ui-success: #14833b;
  --ui-warning: #b75b08;
  --ui-danger: #bd201c;
  --ui-info: #2563d9;
  --ui-shadow-sm: 0 2px 8px rgba(15, 24, 34, 0.055);
  --ui-shadow-md: 0 10px 28px rgba(15, 24, 34, 0.075);
  --ui-radius-sm: 8px;
  --ui-radius-md: 12px;
}

/* --------------------------------------------------------------------------
   Judo Klatovy operations UI
   Kompaktní aplikační vrstva nad oficiálním design systémem klubu.
   -------------------------------------------------------------------------- */
.event-workspace-dialog {
  width: min(940px, calc(100vw - 28px));
  max-height: min(860px, calc(100dvh - 28px));
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--jk-radius-dialog);
  background: var(--surface);
  color: var(--ink);
  box-shadow: var(--shadow);
  overflow: hidden;
}

.event-workspace-dialog::backdrop {
  background: rgba(15, 24, 34, 0.58);
  backdrop-filter: blur(3px);
}

.event-workspace-card {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  max-height: inherit;
}

.event-workspace-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 22px 16px;
  color: #f4f2ec;
  background: var(--jk-ink-900);
}

.event-workspace-heading h2,
.event-workspace-heading p { margin: 0; }
.event-workspace-heading h2 { margin-top: 4px; font-size: clamp(1.45rem, 3vw, 2rem); line-height: 1.08; }
.event-workspace-heading > div > p:last-child { margin-top: 7px; color: #b7c2cd; font-size: .92rem; }
.event-workspace-heading .eyebrow { color: #ffb5ae; font-family: "IBM Plex Mono", monospace; }
.event-workspace-close { flex: 0 0 44px; min-width: 44px; min-height: 44px; color: #fff; border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.08); }

.event-workspace-tabs {
  display: flex;
  gap: 6px;
  padding: 9px 12px;
  border-bottom: 1px solid var(--line);
  background: var(--surface-soft);
  overflow-x: auto;
  scrollbar-width: none;
}
.event-workspace-tabs::-webkit-scrollbar { display: none; }
.event-workspace-tabs button {
  min-height: 38px;
  padding: 7px 13px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--muted);
  background: transparent;
  font-weight: 800;
  white-space: nowrap;
}
.event-workspace-tabs button.active { color: #fff; background: var(--brand); }

.event-workspace-body { padding: 18px 20px 24px; overflow: auto; overscroll-behavior: contain; }
.event-workspace-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(240px, .65fr); gap: 14px; }
.event-workspace-panel {
  min-width: 0;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: var(--jk-radius-card);
  background: var(--surface);
}
.event-workspace-panel.soft { background: var(--surface-soft); }
.event-workspace-panel h3,
.event-workspace-panel p { margin: 0; }
.event-workspace-panel h3 { font-size: 1.08rem; }
.event-workspace-panel > p { margin-top: 5px; color: var(--muted); }
.event-fact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.event-fact { min-width: 0; padding: 10px; border-radius: 10px; background: var(--surface-soft); }
.event-fact span { display: block; color: var(--muted); font: 700 .7rem/1.2 "IBM Plex Mono", monospace; text-transform: uppercase; letter-spacing: .04em; }
.event-fact strong { display: block; margin-top: 4px; overflow-wrap: anywhere; }
.event-workspace-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.event-workspace-actions > * { min-height: 40px; }

.event-progress { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; margin-top: 12px; }
.event-progress-bar { height: 8px; border-radius: 99px; background: var(--line); overflow: hidden; }
.event-progress-bar span { display: block; height: 100%; border-radius: inherit; background: var(--brand); }
.event-progress strong { font-family: "IBM Plex Mono", monospace; }
.workflow-task-list { display: grid; gap: 8px; margin-top: 13px; }
.workflow-task-row {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding: 9px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
}
.workflow-task-toggle { width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 11px; color: var(--muted); background: var(--surface-soft); font-weight: 900; }
.workflow-task-row.done .workflow-task-toggle { color: #fff; border-color: var(--success); background: var(--success); }
.workflow-task-row.done .workflow-task-copy strong { text-decoration: line-through; text-decoration-thickness: 1px; color: var(--muted); }
.workflow-task-copy { min-width: 0; }
.workflow-task-copy strong,
.workflow-task-copy small { display: block; overflow-wrap: anywhere; }
.workflow-task-copy small { margin-top: 2px; color: var(--muted); }
.workflow-task-menu { display: flex; gap: 4px; }
.workflow-task-menu button { min-width: 38px; min-height: 38px; padding: 6px; }
.workflow-task-derived { font-family: "IBM Plex Mono", monospace; font-size: .68rem; text-transform: uppercase; letter-spacing: .04em; }

.today-focus-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(250px, .75fr); gap: 12px; }
.today-focus-card { min-width: 0; padding: 15px; border: 1px solid var(--line); border-radius: var(--jk-radius-card); background: var(--surface); }
.today-focus-card.is-primary { color: #f4f2ec; border-color: transparent; background: var(--jk-ink-900); }
.today-focus-card h3,
.today-focus-card p { margin: 0; }
.today-focus-card p { color: var(--muted); }
.today-focus-card.is-primary p { color: #b7c2cd; }
.today-event-list { display: grid; gap: 7px; margin-top: 12px; }
.today-event-row { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 9px; min-width: 0; padding: 8px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); color: var(--ink); }
.today-event-row time { display: grid; place-items: center; min-height: 42px; border-radius: 9px; color: #fff; background: var(--brand); font-family: "IBM Plex Mono", monospace; font-weight: 800; }
.today-event-row strong,
.today-event-row small { display: block; overflow-wrap: anywhere; }
.today-event-row small { color: var(--muted); }
.today-event-row button { min-height: 40px; }

@media (max-width: 760px) {
  .event-workspace-dialog { width: 100%; max-height: calc(100dvh - 8px); margin: auto 0 0; border-radius: 22px 22px 0 0; }
  .event-workspace-heading { padding: 16px 17px 13px; }
  .event-workspace-heading::before { content: ""; position: absolute; top: 7px; left: calc(50% - 19px); width: 38px; height: 4px; border-radius: 99px; background: rgba(255,255,255,.34); }
  .event-workspace-heading h2 { padding-right: 4px; }
  .event-workspace-tabs { padding-inline: 9px; }
  .event-workspace-tabs button { min-height: 44px; }
  .event-workspace-body { padding: 13px 14px calc(18px + env(safe-area-inset-bottom)); }
  .event-workspace-grid,
  .today-focus-grid { grid-template-columns: 1fr; }
  .event-fact-grid { grid-template-columns: 1fr 1fr; }
  .workflow-task-row { grid-template-columns: 44px minmax(0, 1fr) auto; }
  .workflow-task-toggle { width: 44px; height: 44px; }
  .today-event-row { grid-template-columns: 44px minmax(0, 1fr) 44px; }
  .today-event-row button { min-width: 44px; padding-inline: 0; }
  .today-event-row button span { display: none; }
}

:root[data-theme="dark"] {
  --ui-canvas: #0d151e;
  --ui-surface: #16222e;
  --ui-surface-muted: #1d2b38;
  --ui-surface-strong: #263746;
  --ui-text: #f2f5f7;
  --ui-muted: #aab5c1;
  --ui-border: rgba(231, 238, 245, 0.14);
  --ui-border-strong: rgba(231, 238, 245, 0.24);
  --ui-nav: #09111a;
  --ui-nav-soft: #1a2937;
  --ui-brand: #ef3b2f;
  --ui-brand-dark: #d62d22;
  --ui-success: #5bd47e;
  --ui-warning: #f6bc55;
  --ui-danger: #ff827a;
  --ui-info: #76a6ff;
  --ui-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.2);
  --ui-shadow-md: 0 12px 30px rgba(0, 0, 0, 0.25);
}

html {
  background: var(--ui-canvas);
}

body {
  background: var(--ui-canvas);
  color: var(--ui-text);
}

body,
button,
input,
select,
textarea {
  letter-spacing: 0;
}

.app-shell {
  min-height: 100dvh;
  background: var(--ui-canvas);
}

.content {
  padding: 24px clamp(18px, 2.4vw, 34px) 42px;
}

.screen {
  max-width: 1380px;
}

.topbar {
  min-height: 86px;
  padding: 14px 24px;
  border-bottom: 1px solid var(--ui-border);
  background: color-mix(in srgb, var(--ui-surface) 95%, transparent);
  box-shadow: 0 1px 0 rgba(15, 24, 34, 0.025);
  backdrop-filter: blur(14px);
}

.topbar > div:not(.topbar-actions) {
  min-width: 0;
}

.topbar .eyebrow {
  color: var(--ui-muted);
}

.topbar h1 {
  overflow: hidden;
  margin: 3px 0 0;
  color: var(--ui-text);
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  line-height: 1.08;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.topbar-actions {
  gap: 8px;
}

.topbar .quick-attendance {
  min-height: 46px;
  border-color: var(--ui-brand);
  background: var(--ui-brand);
  color: #fff;
  box-shadow: 0 7px 18px color-mix(in srgb, var(--ui-brand) 22%, transparent);
}

.topbar .icon-button,
.topbar .profile-button {
  min-width: 46px;
  min-height: 46px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface);
  color: var(--ui-text);
  box-shadow: var(--ui-shadow-sm);
}

.topbar .icon-button:hover,
.topbar .profile-button:hover {
  border-color: var(--ui-border-strong);
  background: var(--ui-surface-muted);
}

.sidebar {
  width: 272px;
  padding: 20px 16px 16px;
  border-right: 0;
  background: var(--ui-nav);
  color: #e6edf4;
  box-shadow: none;
}

.club-mark {
  min-height: 62px;
  margin: 0 4px 16px;
  padding: 0 6px 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.11);
}

.club-mark img {
  width: 44px;
  height: 44px;
  border-radius: var(--ui-radius-sm);
  background: #fff;
}

.club-mark strong {
  color: #fff;
}

.club-mark small {
  color: #9cacbb;
}

.nav-list {
  gap: 3px;
}

.sidebar .nav-item,
.sidebar .nav-toggle {
  min-height: 44px;
  padding: 9px 11px;
  border: 1px solid transparent;
  border-radius: var(--ui-radius-sm);
  color: #cbd5df;
  font-size: 0.91rem;
  font-weight: 760;
}

.sidebar .nav-item:hover,
.sidebar .nav-toggle:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}

.sidebar .nav-item.active {
  border-color: rgba(239, 59, 47, 0.18);
  background: rgba(223, 41, 30, 0.16);
  color: #fff;
}

.sidebar .nav-item.active::before {
  width: 4px;
  border-radius: 999px;
  background: var(--ui-brand);
}

.sidebar-quick-search {
  position: relative;
  display: grid;
  gap: 5px;
  margin: 0 0 9px;
}

.sidebar-quick-search > label {
  color: rgba(235, 242, 249, 0.72);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
}

.sidebar-quick-search > input {
  width: 100%;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font: inherit;
}

.sidebar-quick-search > input::placeholder {
  color: rgba(235, 242, 249, 0.58);
}

.sidebar-search-results {
  position: absolute;
  z-index: 20;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  max-height: min(48vh, 420px);
  overflow: auto;
  padding: 5px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 10px;
  background: #1c2a3a;
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.28);
}

.sidebar-search-results button {
  display: grid;
  width: 100%;
  gap: 2px;
  padding: 8px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #fff;
  text-align: left;
  cursor: pointer;
}

.sidebar-search-results button:hover,
.sidebar-search-results button:focus-visible {
  background: rgba(255, 255, 255, 0.1);
}

.sidebar-search-results small,
.sidebar-search-results p {
  margin: 0;
  color: rgba(235, 242, 249, 0.72);
}

.sidebar .nav-icon {
  width: 27px;
  height: 27px;
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.07);
  color: inherit;
}

.sidebar .nav-submenu {
  margin: 3px 0 5px 20px;
  padding-left: 9px;
  border-left: 1px solid rgba(255, 255, 255, 0.12);
}

.sidebar .theme-nav-button,
.sidebar .desktop-sync-button,
.sidebar .logout-button {
  margin-top: 7px;
}

.sidebar .desktop-sync-button {
  background: rgba(255, 255, 255, 0.07);
  color: #fff;
}

.sidebar .logout-button {
  background: rgba(239, 59, 47, 0.1);
  color: #ffc5c2;
}

.sidebar .sync-status {
  margin: 12px 8px 8px;
  color: #b7c4cf;
  font-size: 0.75rem;
  line-height: 1.35;
}

.sidebar-developer-credit {
  margin-top: auto;
  border-color: rgba(255, 158, 151, 0.4);
  color: #ffc7c3;
}

.toolbar,
.compact-toolbar {
  align-items: end;
  gap: 10px;
  margin: 0 0 14px;
  padding: 12px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface);
  box-shadow: var(--ui-shadow-sm);
}

.toolbar label,
.compact-toolbar label {
  gap: 5px;
  color: var(--ui-muted);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

input,
select,
textarea,
.dialog-card input,
.dialog-card select,
.dialog-card textarea {
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface);
  color: var(--ui-text);
}

input:focus,
select:focus,
textarea:focus {
  border-color: color-mix(in srgb, var(--ui-info) 58%, var(--ui-border));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ui-info) 14%, transparent);
  outline: none;
}

.primary-action,
.secondary-action,
.danger-action,
.text-button {
  min-height: 42px;
  border-radius: var(--ui-radius-sm);
  font-weight: 850;
}

.primary-action {
  border-color: var(--ui-brand);
  background: var(--ui-brand);
  color: #fff;
}

.primary-action:hover {
  border-color: var(--ui-brand-dark);
  background: var(--ui-brand-dark);
}

.secondary-action {
  border-color: var(--ui-border);
  background: var(--ui-surface);
  color: var(--ui-text);
}

.secondary-action:hover {
  border-color: var(--ui-border-strong);
  background: var(--ui-surface-muted);
}

.danger-action {
  border-color: color-mix(in srgb, var(--ui-danger) 30%, var(--ui-border));
  background: color-mix(in srgb, var(--ui-danger) 9%, var(--ui-surface));
  color: var(--ui-danger);
}

.panel,
.calendar-card,
.news-card,
.member-row,
.group-card,
.schedule-card,
.clothing-card,
.secondary-data-module {
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface);
  box-shadow: var(--ui-shadow-sm);
}

.panel {
  padding: 18px;
}

.panel-heading {
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
}

.panel-heading h3,
.panel h3 {
  color: var(--ui-text);
  font-size: 1.12rem;
}

.panel-heading p,
.panel p,
.meta {
  color: var(--ui-muted);
}

.tag,
.pill,
.status-pill {
  min-height: 26px;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 0.74rem;
  line-height: 1.1;
}

.empty-state {
  border: 1px dashed var(--ui-border-strong);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-muted);
  color: var(--ui-muted);
}

/* Dashboard */
.overview-dashboard,
.parent-home {
  max-width: 1280px;
  gap: 16px;
}

.parent-hero-card {
  padding: 20px;
  border: 1px solid color-mix(in srgb, var(--ui-brand) 24%, var(--ui-border));
  border-left: 5px solid var(--ui-brand);
  border-radius: var(--ui-radius-md);
  background: var(--ui-nav);
  background-image: none;
  color: #fff;
  box-shadow: var(--ui-shadow-md);
}

.parent-hero-card h3 {
  margin: 4px 0 6px;
  font-size: clamp(1.3rem, 2.6vw, 1.8rem);
}

.parent-hero-card p:last-child {
  margin-bottom: 0;
  color: #c2ccd5;
}

.overview-intro-card {
  min-height: auto;
  padding: 18px 20px;
  border: 1px solid color-mix(in srgb, var(--ui-nav) 72%, var(--ui-border));
  border-radius: var(--ui-radius-md);
  background: var(--ui-nav);
  box-shadow: var(--ui-shadow-md);
}

.overview-intro-card h3 {
  margin: 2px 0;
  font-size: 1.55rem;
}

.overview-intro-card .eyebrow {
  color: #ffaaa4;
}

.overview-intro-card p:last-child {
  color: #b9c5d0;
}

.overview-metric-grid {
  gap: 10px;
}

.overview-metric {
  min-height: 104px;
  padding: 15px 16px;
  border-color: var(--ui-border);
  border-top-width: 3px;
  border-radius: var(--ui-radius-md);
  box-shadow: var(--ui-shadow-sm);
}

.overview-metric strong {
  font-size: clamp(1.65rem, 2.4vw, 2rem);
}

.overview-training-card,
.overview-activity-card,
.parent-recent-activity {
  min-height: 66px;
  padding: 10px 13px;
  border-color: var(--ui-border);
  border-left-width: 4px;
  border-radius: var(--ui-radius-md);
  box-shadow: var(--ui-shadow-sm);
}

.overview-more-details,
.parent-more-details,
.parent-excuse-drawer {
  border-radius: var(--ui-radius-md);
  border-color: var(--ui-border);
}

.overview-more-details > summary,
.parent-more-details > summary,
.parent-excuse-drawer > summary {
  min-height: 50px;
  padding: 11px 14px;
}

/* Attendance */
#attendance .toolbar {
  display: grid;
  grid-template-columns: minmax(160px, 0.75fr) minmax(230px, 1.25fr) minmax(145px, 0.7fr) auto auto;
}

#attendance .panel {
  padding: 16px;
}

.attendance-summary {
  margin-bottom: 10px;
}

.class-book-box,
.coach-checklist {
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-muted);
  box-shadow: none;
}

.class-book-box {
  padding: 12px;
}

.class-book-box textarea {
  min-height: 78px;
  background: var(--ui-surface);
}

.coach-checklist {
  margin-bottom: 10px;
  padding: 10px 12px;
}

.coach-chip {
  min-height: 36px;
  padding: 7px 10px;
  border-color: var(--ui-border);
  background: var(--ui-surface);
}

.member-checklist {
  gap: 7px;
}

.check-row {
  min-height: 58px;
  padding: 9px 11px;
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface);
  box-shadow: none;
}

.check-row:hover {
  border-color: var(--ui-border-strong);
  background: var(--ui-surface-muted);
}

.attendance-row-main {
  gap: 12px;
}

.status-toggle.attendance-icon-toggle {
  background: var(--ui-surface-strong);
}

.status-toggle.attendance-icon-toggle button {
  width: 37px;
  height: 37px;
}

/* Calendar and news */
.calendar-list,
.news-feed {
  gap: 10px;
}

.calendar-card {
  grid-template-columns: 54px minmax(0, 1fr) minmax(190px, auto);
  align-items: start;
  gap: 13px;
  padding: 13px;
}

.calendar-card .date-badge {
  width: 52px;
  border-radius: var(--ui-radius-sm);
}

.calendar-card .date-badge strong {
  padding: 6px 0;
  font-size: 1.15rem;
}

.calendar-card .calendar-event-content h3 {
  margin: 0;
  color: var(--ui-text);
  font-size: 1.05rem;
}

.calendar-card .calendar-event-content p {
  margin-top: 3px;
}

.calendar-card > .card-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(82px, auto));
  align-items: center;
  gap: 7px;
}

.calendar-card > .card-actions .tag {
  grid-column: 1 / -1;
  justify-self: end;
}

.news-card {
  padding: 14px 16px;
}

/* Members */
.members-primary-toolbar {
  justify-content: flex-start;
}

.member-search-bar {
  position: sticky;
  z-index: 4;
  top: 100px;
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(200px, auto);
  gap: 10px;
  margin-bottom: 9px;
  padding: 10px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: color-mix(in srgb, var(--ui-surface) 94%, transparent);
  box-shadow: var(--ui-shadow-sm);
  backdrop-filter: blur(12px);
}

.member-search-bar input {
  min-width: 0;
}

.member-filter-panel {
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-muted);
}

.member-list {
  gap: 7px;
}

.member-row {
  padding: 10px 12px;
  box-shadow: none;
}

.member-row:hover {
  border-color: var(--ui-border-strong);
}

.member-row summary {
  grid-template-columns: 36px minmax(0, 1fr) auto;
  min-height: 38px;
}

.member-row-body {
  margin-top: 10px;
  padding-top: 12px;
}

.member-detail-shell {
  gap: 10px;
}

.member-quick-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.member-quick-grid article {
  min-height: 62px;
  padding: 10px 11px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface-muted);
}

.member-detail-panel,
.member-facts-more {
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface);
}

.member-detail-panel > summary,
.member-facts-more > summary {
  min-height: 48px;
  padding: 10px 12px;
}

.member-detail-panel-body {
  padding: 12px;
}

.member-detail-actions {
  position: sticky;
  z-index: 3;
  bottom: 10px;
  padding: 9px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: color-mix(in srgb, var(--ui-surface) 92%, transparent);
  box-shadow: var(--ui-shadow-md);
  backdrop-filter: blur(12px);
}

/* Competitions and leaderboard */
.competition-workbench-panels,
.competition-workbench-summary,
.competition-nomination-list-panel {
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-md);
  box-shadow: none;
}

.competition-workbench-panels {
  gap: 9px;
}

.competition-workflow-nav {
  display: flex;
  gap: 6px;
  margin: 0 0 10px;
  padding: 5px;
  overflow-x: auto;
  border: 1px solid var(--ui-border);
  border-radius: 12px;
  background: var(--ui-surface-muted);
  scrollbar-width: thin;
}

.competition-workflow-nav button {
  flex: 1 0 auto;
  min-height: 38px;
  padding: 7px 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ui-muted);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 850;
  cursor: pointer;
}

.competition-workflow-nav button:hover,
.competition-workflow-nav button:focus-visible {
  background: var(--ui-surface);
  color: var(--ui-text);
}

.competition-transport-body {
  min-height: 0 !important;
}

.competition-workbench-summary {
  gap: 8px;
  padding: 9px;
  background: var(--ui-surface-muted);
}

.competition-workbench-summary span {
  min-height: 54px;
  padding: 8px 10px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface);
}

.competition-nomination-list {
  gap: 6px;
  padding: 8px;
}

.nomination-card {
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface);
  box-shadow: none;
}

.nomination-card > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 50px;
  gap: 10px;
  padding: 8px 10px;
}

.nomination-person {
  display: flex;
  min-width: 0;
  align-items: baseline;
  gap: 8px;
}

.nomination-person strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nomination-person span {
  flex: 0 0 auto;
  color: var(--ui-muted);
  font-size: 0.78rem;
  font-weight: 850;
}

.nomination-toggle {
  min-height: 34px;
  padding: 6px 12px;
  border-radius: 999px;
}

.nomination-detail {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  padding: 10px;
  border-top: 1px solid var(--ui-border);
  background: var(--ui-surface-muted);
}

.competition-transport-body {
  gap: 10px;
  padding: 10px;
}

.transport-overview-strip {
  gap: 7px;
}

.transport-overview-strip span {
  min-height: 54px;
  padding: 8px 10px;
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-sm);
}

.competition-transport-grid {
  gap: 10px;
}

.transport-card,
.transport-need-row,
.transport-assignment-summary article {
  padding: 10px;
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface);
}

.leaderboard-list {
  gap: 7px;
}

.leaderboard-row {
  min-height: 62px;
  padding: 9px 11px;
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface);
  box-shadow: none;
}

/* Clothing */
.stock-table {
  gap: 5px;
}

.stock-header,
.stock-row {
  grid-template-columns: minmax(110px, 1.05fr) minmax(90px, 0.9fr) minmax(74px, 0.7fr) minmax(70px, 0.6fr) minmax(76px, 0.65fr) minmax(90px, 0.8fr) minmax(120px, 1.2fr) auto;
}

.stock-header {
  padding: 8px 10px;
  border: 0;
  border-radius: var(--ui-radius-sm);
  background: var(--ui-nav);
  color: #dce5ed;
}

.stock-row {
  min-height: 54px;
  padding: 7px 9px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface);
  box-shadow: none;
}

.stock-row:hover {
  border-color: var(--ui-border-strong);
  background: var(--ui-surface-muted);
}

.stock-count input {
  min-height: 36px;
  padding: 5px 7px;
}

.issue-row {
  gap: 10px;
  padding: 10px 12px;
  border-color: var(--ui-border);
  border-radius: var(--ui-radius-sm);
  background: var(--ui-surface);
  box-shadow: none;
}

.issue-statuses {
  gap: 5px;
}

.issue-statuses label {
  min-height: 34px;
  padding: 6px 8px;
  border: 1px solid var(--ui-border);
  border-radius: 999px;
  background: var(--ui-surface-muted);
}

/* Dialogs and feedback */
dialog {
  padding: 18px;
}

.dialog-card {
  width: min(860px, 100%);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface);
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.28);
}

.dialog-heading {
  padding: 18px 22px 14px;
  border-bottom: 1px solid var(--ui-border);
  background: var(--ui-surface);
}

.dialog-heading h2 {
  margin-top: 2px;
  color: var(--ui-text);
  font-size: 1.6rem;
}

.dialog-card #dialogFields {
  padding: 18px 22px;
}

.dialog-card menu {
  border-top-color: var(--ui-border);
  background: var(--ui-surface);
}

.draft-save-bar {
  border-color: color-mix(in srgb, var(--ui-brand) 28%, var(--ui-border));
  border-radius: var(--ui-radius-md);
  background: color-mix(in srgb, var(--ui-surface) 90%, transparent);
  box-shadow: var(--ui-shadow-md);
  backdrop-filter: blur(16px);
}

.screen-loading {
  border: 1px solid var(--ui-border);
  border-radius: 999px;
  background: color-mix(in srgb, var(--ui-surface) 90%, transparent);
  color: var(--ui-text);
  box-shadow: var(--ui-shadow-md);
  backdrop-filter: blur(14px);
}

.attendance-session-group-filter {
  display: flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  margin: 0 0 10px;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.attendance-session-group-filter[hidden] {
  display: none;
}

.attendance-session-group-filter::-webkit-scrollbar {
  display: none;
}

.attendance-session-group-filter > span {
  flex: 0 0 auto;
  color: var(--ui-muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.attendance-session-group-filter button {
  min-height: 36px;
  flex: 0 0 auto;
  padding: 7px 10px;
  border: 1px solid var(--ui-border);
  border-radius: 999px;
  color: var(--ui-text);
  background: var(--ui-surface);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 800;
  cursor: pointer;
  touch-action: manipulation;
}

.attendance-session-group-filter button.active {
  border-color: color-mix(in srgb, var(--ui-brand) 58%, var(--ui-border));
  color: var(--ui-brand);
  background: color-mix(in srgb, var(--ui-surface) 88%, var(--ui-brand) 12%);
}

.attendance-session-group-filter button strong {
  margin-left: 3px;
  font-variant-numeric: tabular-nums;
}

.shared-training-migration {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 12px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--ui-brand) 30%, var(--ui-border));
  border-radius: var(--ui-radius-md);
  background: color-mix(in srgb, var(--ui-surface) 92%, var(--ui-brand) 8%);
}

.shared-training-migration[hidden] {
  display: none;
}

.shared-training-migration > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.shared-training-migration span {
  color: var(--ui-muted);
  font-size: 0.84rem;
}

@media (max-width: 680px) {
  .shared-training-migration {
    align-items: stretch;
    flex-direction: column;
  }

  .shared-training-migration .secondary-action {
    width: 100%;
  }
}

.toast {
  border-radius: var(--ui-radius-md);
  background: var(--ui-nav);
  color: #fff;
  box-shadow: var(--ui-shadow-md);
}

@media (max-width: 980px) {
  .content {
    padding: 18px 16px 96px;
  }

  #attendance .toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .calendar-card {
    grid-template-columns: 52px minmax(0, 1fr);
  }

  .calendar-card > .card-actions {
    grid-column: 2;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .calendar-card > .card-actions .tag {
    grid-column: auto;
    justify-self: start;
  }

  .member-quick-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stock-header {
    display: none;
  }

  .stock-row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .stock-row .stock-note,
  .stock-row .stock-location {
    grid-column: span 2;
  }

  .stock-row .inline-actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .topbar {
    min-height: 76px;
    padding: max(10px, env(safe-area-inset-top)) 12px 10px;
  }

  .topbar h1 {
    max-width: 38vw;
    font-size: 1.25rem;
  }

  .topbar .eyebrow {
    font-size: 0.66rem;
  }

  .topbar-actions {
    gap: 5px;
  }

  .topbar .quick-attendance {
    min-height: 42px;
    padding: 8px 12px;
    font-size: 0.84rem;
  }

  .topbar .icon-button,
  .topbar .profile-button {
    min-width: 42px;
    min-height: 42px;
    border-radius: 10px;
  }

  .content {
    padding: 12px 10px calc(86px + env(safe-area-inset-bottom));
  }

  .bottom-nav {
    left: max(8px, env(safe-area-inset-left));
    right: max(8px, env(safe-area-inset-right));
    bottom: max(7px, env(safe-area-inset-bottom));
    width: auto;
    min-height: 64px;
    padding: 6px;
    border: 1px solid var(--ui-border);
    border-radius: 16px;
    background: color-mix(in srgb, var(--ui-surface) 94%, transparent);
    box-shadow: 0 12px 34px rgba(15, 24, 34, 0.18);
    backdrop-filter: blur(18px);
  }

  .bottom-nav-item {
    flex: 1 1 0;
    align-self: stretch;
    min-width: 0;
    min-height: 54px;
    gap: 2px;
    padding: 6px 3px;
    border-radius: 11px;
    color: var(--ui-muted);
    font-size: 0.66rem;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  .bottom-nav-item > * {
    pointer-events: none;
  }

  .bottom-nav-item.active {
    background: color-mix(in srgb, var(--ui-brand) 10%, var(--ui-surface));
    color: var(--ui-brand);
  }

  .bottom-nav-icon {
    width: 23px;
    height: 23px;
  }

  .toolbar,
  .compact-toolbar,
  #attendance .toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 9px;
    padding: 9px;
  }

  .toolbar > button,
  .compact-toolbar > button {
    align-self: end;
  }

  .panel {
    padding: 12px;
  }

  .panel-heading {
    align-items: flex-start;
    margin-bottom: 10px;
  }

  .panel-heading h3,
  .panel h3 {
    font-size: 1rem;
  }

  .overview-intro-card {
    align-items: center;
    padding: 14px;
  }

  .overview-intro-card h3 {
    font-size: 1.25rem;
  }

  .overview-attendance-action {
    min-height: 42px;
    padding: 8px 11px;
    font-size: 0.82rem;
  }

  .overview-metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  .overview-metric {
    min-height: 84px;
    padding: 11px 12px;
  }

  .overview-metric strong {
    font-size: 1.55rem;
  }

  .overview-training-card,
  .overview-activity-card,
  .parent-recent-activity {
    min-height: 60px;
    gap: 9px;
    padding: 9px 10px;
  }

  .overview-training-card {
    grid-template-columns: 66px minmax(0, 1fr) 32px;
  }

  .class-book-box {
    padding: 9px;
  }

  .class-book-box textarea {
    min-height: 66px;
  }

  .coach-heading {
    align-items: start;
    flex-direction: column;
    gap: 2px;
  }

  .coach-options {
    gap: 5px;
  }

  .coach-chip {
    min-height: 34px;
    padding: 6px 8px;
    font-size: 0.78rem;
  }

  .check-row {
    min-height: 54px;
    padding: 7px 8px;
  }

  .status-toggle.attendance-icon-toggle button {
    width: 34px;
    height: 34px;
    font-size: 1rem;
  }

  .calendar-card {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 9px;
    padding: 10px;
  }

  .calendar-card .date-badge {
    width: 46px;
  }

  .calendar-card .calendar-event-content h3 {
    font-size: 0.98rem;
  }

  .calendar-card > .card-actions {
    grid-column: 1 / -1;
    grid-template-columns: auto repeat(2, minmax(0, 1fr));
    gap: 6px;
  }

  .calendar-card > .card-actions .secondary-action,
  .calendar-card > .card-actions .danger-action {
    min-height: 36px;
    padding: 6px 8px;
    font-size: 0.78rem;
  }

  .members-primary-toolbar {
    display: flex;
    align-items: stretch;
  }

  .member-search-bar {
    top: 82px;
    grid-template-columns: 1fr;
    gap: 7px;
    padding: 8px;
  }

  .member-row {
    padding: 8px 9px;
  }

  .member-row summary {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 7px;
  }

  .member-status-icons {
    gap: 3px;
  }

  .status-icon {
    width: 22px;
    height: 22px;
    font-size: 0.65rem;
  }

  .member-quick-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }

  .member-quick-grid article {
    min-height: 54px;
    padding: 8px 9px;
  }

  .member-detail-actions {
    bottom: 76px;
    gap: 5px;
  }

  .member-detail-actions > * {
    flex: 1 1 130px;
  }

  .competition-workbench-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .competition-workbench-summary span {
    min-height: 50px;
    padding: 7px;
  }

  .competition-workbench-summary strong {
    font-size: 0.92rem;
  }

  .competition-workbench-summary small {
    font-size: 0.62rem;
  }

  .nomination-card > summary {
    min-height: 46px;
    padding: 7px 8px;
  }

  .nomination-person {
    gap: 6px;
  }

  .nomination-person strong {
    font-size: 0.9rem;
  }

  .nomination-toggle {
    min-height: 32px;
    padding: 5px 9px;
    font-size: 0.75rem;
  }

  .nomination-detail {
    grid-template-columns: 1fr;
  }

  .competition-transport-grid {
    grid-template-columns: 1fr;
  }

  .transport-overview-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .leaderboard-row {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) auto;
    grid-template-areas:
      "rank name points"
      "rank starts points"
      "rank category medals";
    gap: 4px 8px;
    align-items: center;
    min-height: 0;
    padding: 10px 11px;
  }

  .leaderboard-row .leaderboard-rank {
    grid-area: rank;
    align-self: start;
    display: inline-grid;
    width: 30px;
    min-width: 30px;
    height: 30px;
    min-height: 30px;
    padding: 0;
    place-items: center;
    font-size: 0.82rem;
  }

  .leaderboard-row .leaderboard-name {
    grid-area: name;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.9rem;
    font-weight: 850;
  }

  .leaderboard-row .leaderboard-points {
    grid-area: points;
    align-self: start;
    justify-self: end;
    min-width: 54px;
    padding: 5px 8px;
    text-align: center;
  }

  .leaderboard-row .leaderboard-starts {
    grid-area: starts;
    min-width: 0;
    font-size: 0.74rem;
    white-space: nowrap;
  }

  .leaderboard-row .leaderboard-mobile-category {
    grid-area: category;
    width: max-content;
    max-width: 100%;
    padding: 3px 7px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.68rem;
  }

  .leaderboard-row .leaderboard-mobile-medals {
    grid-area: medals;
    align-self: center;
    display: flex;
    flex-wrap: nowrap;
    gap: 3px;
    max-width: none;
    margin: 0;
    justify-content: flex-end;
  }

  .leaderboard-row .leaderboard-medal-badge {
    flex: 0 0 auto;
    min-width: 34px;
    padding: 3px 5px;
    font-size: 0.68rem;
    text-align: center;
    white-space: nowrap;
  }

  .leaderboard-row .leaderboard-group,
  .leaderboard-row .leaderboard-place {
    display: none;
  }

  .stock-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 8px;
    padding: 9px;
  }

  .stock-row .stock-location,
  .stock-row .stock-note,
  .stock-row .inline-actions {
    grid-column: 1 / -1;
  }

  .stock-cell::before {
    display: block;
    margin-bottom: 2px;
    color: var(--ui-muted);
    content: attr(data-label);
    font-size: 0.62rem;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  .issue-row {
    grid-template-columns: 1fr;
  }

  dialog {
    align-items: end;
    padding: 0;
  }

  .dialog-card {
    width: 100%;
    max-height: calc(100dvh - env(safe-area-inset-top));
    border-width: 1px 0 0;
    border-radius: 18px 18px 0 0;
  }

  .dialog-heading {
    padding: 14px 16px 12px;
  }

  .dialog-heading h2 {
    font-size: 1.35rem;
  }

  .dialog-card #dialogFields {
    padding: 14px 16px;
  }

  .dialog-card menu {
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  }

  .draft-save-bar {
    left: 10px;
    right: 10px;
    bottom: calc(80px + env(safe-area-inset-bottom));
    width: auto;
  }

  .toast {
    bottom: calc(84px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 430px) {
  .topbar h1 {
    max-width: 34vw;
  }

  .topbar .quick-attendance {
    padding-inline: 9px;
  }

  .toolbar,
  .compact-toolbar,
  #attendance .toolbar {
    grid-template-columns: 1fr;
  }

  .toolbar > button,
  .compact-toolbar > button {
    width: 100%;
  }

  .overview-training-card {
    grid-template-columns: 56px minmax(0, 1fr) 30px;
  }

  .overview-activity-card,
  .parent-recent-activity {
    grid-template-columns: 44px minmax(0, 1fr) auto;
  }

  .calendar-card > .card-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .calendar-card > .card-actions .tag {
    grid-column: 1 / -1;
  }

  .competition-workbench-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .member-detail-actions > * {
    flex-basis: calc(50% - 5px);
  }
}

:root[data-theme="dark"] .topbar,
:root[data-theme="dark"] .bottom-nav,
:root[data-theme="dark"] .draft-save-bar,
:root[data-theme="dark"] .member-search-bar {
  border-color: var(--ui-border);
  background: color-mix(in srgb, var(--ui-surface) 92%, transparent);
}

:root[data-theme="dark"] .panel,
:root[data-theme="dark"] .calendar-card,
:root[data-theme="dark"] .news-card,
:root[data-theme="dark"] .member-row,
:root[data-theme="dark"] .nomination-card,
:root[data-theme="dark"] .transport-card,
:root[data-theme="dark"] .stock-row,
:root[data-theme="dark"] .issue-row,
:root[data-theme="dark"] .dialog-card {
  color: var(--ui-text);
  background: var(--ui-surface);
}

:root[data-theme="dark"] .member-avatar {
  border-color: color-mix(in srgb, var(--ui-muted) 38%, transparent);
  background: var(--ui-surface-strong);
  color: var(--ui-text);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, #ffffff 5%, transparent);
}

:root[data-theme="dark"] .overview-metric,
:root[data-theme="dark"] .overview-training-card,
:root[data-theme="dark"] .overview-activity-card,
:root[data-theme="dark"] .parent-recent-activity,
:root[data-theme="dark"] .member-quick-grid article,
:root[data-theme="dark"] .competition-workbench-summary span,
:root[data-theme="dark"] .transport-overview-strip span {
  border-color: var(--ui-border);
  background: var(--ui-surface);
  color: var(--ui-text);
}

:root[data-theme="dark"] .class-book-box,
:root[data-theme="dark"] .coach-checklist,
:root[data-theme="dark"] .nomination-detail,
:root[data-theme="dark"] .competition-workbench-summary,
:root[data-theme="dark"] .member-filter-panel,
:root[data-theme="dark"] .issue-statuses label {
  background: var(--ui-surface-muted);
}

:root[data-theme="dark"] .primary-action {
  border-color: var(--ui-brand);
  background: var(--ui-brand);
  color: #fff;
}

:root[data-theme="dark"] .secondary-action {
  border-color: var(--ui-border);
  background: var(--ui-surface);
  color: var(--ui-text);
}

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

/* v60.0 - readable status chrome and bulk administration */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.sync-icon-button .sync-action-icon {
  display: inline-grid;
  place-items: center;
  color: currentColor;
  line-height: 1;
}

.sync-icon-button.syncing {
  color: var(--ui-text);
}

.sync-icon-button.syncing::before {
  content: none;
}

.sync-icon-button.syncing .sync-action-icon {
  animation: spinSync 0.8s linear infinite;
}

.leaderboard-header {
  background: var(--ui-nav);
  color: #fff;
}

.leaderboard-header > * {
  color: inherit;
  opacity: 1;
}

.sidebar .sync-status {
  border: 1px solid transparent;
  font-weight: 850;
}

.sidebar .sync-status.ok-sync {
  border-color: #86d8a5;
  background: #d9f8e4;
  color: #0b572b;
}

.sidebar .sync-status.active-sync {
  border-color: #eacb69;
  background: #fff2bd;
  color: #754000;
}

.sidebar .sync-status.error-sync {
  border-color: #f2a3a0;
  background: #ffe1df;
  color: #8f1712;
}

.sidebar .sync-status.muted-sync {
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.1);
  color: #f2f6fa;
}

.app-version-pill {
  border: 1px solid var(--ui-border-strong);
  background: var(--ui-surface-strong);
  color: var(--ui-text);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

.bulk-edit-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.bulk-edit-intro h3,
.bulk-edit-intro p {
  margin: 0;
}

.bulk-edit-intro h3 {
  margin-bottom: 5px;
}

.bulk-edit-section {
  padding: 0;
  overflow: clip;
}

.bulk-edit-section > summary {
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px;
  cursor: pointer;
  list-style: none;
}

.bulk-edit-section > summary::-webkit-details-marker {
  display: none;
}

.bulk-edit-section > summary > span:first-child {
  display: grid;
  gap: 3px;
}

.bulk-edit-section > summary small,
.bulk-edit-toolbar > span,
.bulk-current-value {
  color: var(--ui-muted);
}

.bulk-edit-body {
  border-top: 1px solid var(--ui-border);
}

.bulk-edit-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) minmax(180px, 1fr) auto;
  gap: 10px;
  align-items: end;
  padding: 14px 18px;
  background: var(--ui-surface-muted);
}

.bulk-belt-toolbar {
  grid-template-columns: minmax(200px, 1.2fr) minmax(170px, 0.9fr) minmax(150px, 0.7fr) auto;
}

.bulk-payment-toolbar {
  grid-template-columns: minmax(150px, 0.7fr) minmax(210px, 1.25fr) minmax(170px, 0.9fr) auto;
}

.bulk-medical-toolbar {
  grid-template-columns: minmax(210px, 1.2fr) minmax(170px, 0.9fr) minmax(180px, 0.8fr) auto;
}

.bulk-clothing-toolbar {
  grid-template-columns: minmax(220px, 1.2fr) minmax(180px, 0.85fr) minmax(170px, 0.8fr) auto;
}

.bulk-evidence-toolbar {
  grid-template-columns: minmax(210px, 1.2fr) minmax(170px, 0.9fr) minmax(150px, 0.7fr) auto;
}

.belt-exam-settings-grid {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto;
  gap: 14px;
  align-items: end;
}

.belt-exam-settings-grid label {
  display: grid;
  gap: 6px;
  color: var(--ui-muted);
  font-size: 0.82rem;
  font-weight: 800;
}

.belt-exam-settings-grid input {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--ui-border-strong);
  border-radius: 10px;
  background: var(--ui-surface);
  color: var(--ui-text);
  font: inherit;
}

.belt-exam-settings-grid .meta {
  grid-column: 1 / -1;
  margin: 0;
}

.member-payment-history {
  display: grid;
  gap: 8px;
}

.member-trainer-summary {
  display: grid;
  grid-template-columns: minmax(180px, 0.7fr) minmax(280px, 1.3fr);
  gap: 12px;
  margin-bottom: 12px;
  padding: 12px;
  border: 1px solid var(--ui-border);
  border-radius: 12px;
  background: var(--ui-surface-muted);
}

.member-trainer-groups,
.member-contact-strip a {
  display: grid;
  gap: 3px;
}

.member-trainer-groups span,
.member-contact-strip span {
  color: var(--ui-muted);
  font-size: 0.72rem;
  font-weight: 800;
}

.member-contact-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.member-contact-strip a {
  flex: 1 1 170px;
  min-height: 50px;
  padding: 7px 10px;
  border: 1px solid var(--ui-border-strong);
  border-radius: 9px;
  background: var(--ui-surface);
  color: var(--ui-text);
  text-decoration: none;
}

.member-contact-strip a:hover {
  border-color: var(--ui-brand);
}

.member-contact-empty {
  display: grid;
  place-items: center;
  min-height: 48px;
}

.member-payment-history article {
  display: grid;
  grid-template-columns: minmax(100px, auto) auto minmax(150px, 1fr);
  gap: 10px;
  align-items: center;
  padding: 9px 10px;
  border-bottom: 1px solid var(--ui-border);
}

.member-payment-history small {
  color: var(--ui-muted);
}

.bulk-edit-toolbar label {
  display: grid;
  gap: 5px;
  color: var(--ui-muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.bulk-edit-toolbar input,
.bulk-edit-toolbar select,
.bulk-edit-control select,
.bulk-edit-control input {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--ui-border-strong);
  border-radius: 10px;
  background: var(--ui-surface);
  color: var(--ui-text);
  font: inherit;
}

.bulk-edit-note {
  margin: 12px 18px 0;
  padding: 10px 12px;
  border-left: 4px solid #d79600;
  border-radius: 6px;
  background: #fff5cf;
  color: #674000;
  font-size: 0.84rem;
  font-weight: 750;
}

.bulk-evidence-import {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-left-color: var(--ui-brand);
  background: color-mix(in srgb, var(--ui-brand) 8%, var(--ui-surface));
  color: var(--ui-text);
}

.bulk-evidence-import > div {
  display: grid;
  gap: 2px;
}

.bulk-evidence-import small {
  color: var(--ui-muted);
  font-size: 0.76rem;
  font-weight: 700;
}

.bulk-edit-list {
  max-height: min(62vh, 720px);
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-x: none;
  touch-action: pan-y;
  padding: 12px 18px 18px;
}

.bulk-edit-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.35fr) minmax(140px, 0.65fr) minmax(230px, 1fr);
  gap: 14px;
  align-items: center;
  min-height: 58px;
  padding: 8px 10px;
  border-bottom: 1px solid var(--ui-border);
  transition: background 0.16s ease, box-shadow 0.16s ease;
}

.bulk-edit-row.is-changed {
  background: color-mix(in srgb, var(--ui-brand) 7%, var(--ui-surface));
  box-shadow: inset 4px 0 0 var(--ui-brand);
}

.bulk-evidence-row {
  min-width: 0;
  overflow: hidden;
  border-bottom: 1px solid var(--ui-border);
  background: var(--ui-surface);
  transition: background 0.16s ease, box-shadow 0.16s ease;
}

.bulk-evidence-row.is-changed {
  background: color-mix(in srgb, var(--ui-brand) 7%, var(--ui-surface));
  box-shadow: inset 4px 0 0 var(--ui-brand);
}

.bulk-evidence-row > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  min-height: 58px;
  padding: 8px 10px;
  cursor: pointer;
  list-style: none;
}

.bulk-evidence-row > summary::-webkit-details-marker {
  display: none;
}

.bulk-evidence-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  padding: 11px 10px 13px;
  border-top: 1px solid var(--ui-border);
  background: var(--ui-surface-muted);
}

.bulk-evidence-fields label {
  display: grid;
  min-width: 0;
  gap: 5px;
  color: var(--ui-muted);
  font-size: 0.76rem;
  font-weight: 800;
}

.bulk-evidence-fields input,
.bulk-evidence-fields select {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  border: 1px solid var(--ui-border-strong);
  border-radius: 10px;
  background: var(--ui-surface);
  color: var(--ui-text);
  font: inherit;
}

.bulk-evidence-address {
  grid-column: span 2;
}

.bulk-evidence-rc {
  grid-column: 1 / -1;
}

.bulk-evidence-rc small {
  color: var(--ui-muted);
  font-weight: 700;
}

.grant-fix-data-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--ui-border-strong);
  border-radius: 12px;
  background: var(--ui-surface-muted);
}

.grant-fix-data-bar > div {
  display: grid;
  gap: 3px;
}

.grant-fix-data-bar small {
  color: var(--ui-muted);
}

.grant-fix-data-bar .secondary-action {
  flex: 0 0 auto;
}

.bulk-group-row {
  grid-template-columns: minmax(220px, 0.8fr) minmax(360px, 1.8fr);
}

.bulk-group-options {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.bulk-group-picker {
  min-width: 0;
  border: 1px solid var(--ui-border-strong);
  border-radius: 10px;
  background: var(--ui-surface);
  overflow: hidden;
}

.bulk-group-picker > summary {
  display: flex;
  min-height: 42px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 10px;
  cursor: pointer;
  list-style: none;
}

.bulk-group-picker > summary::-webkit-details-marker {
  display: none;
}

.bulk-group-picker > summary > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.8rem;
  font-weight: 850;
}

.bulk-group-picker > summary > small {
  flex: 0 0 auto;
  color: var(--ui-muted);
  font-size: 0.68rem;
}

.bulk-group-picker[open] > summary {
  border-bottom: 1px solid var(--ui-border);
}

.bulk-group-picker .bulk-group-options {
  padding: 7px;
}

.bulk-group-options label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 5px 9px;
  border: 1px solid var(--ui-border);
  border-radius: 999px;
  background: var(--ui-surface-muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.bulk-group-options input {
  width: 17px;
  height: 17px;
  accent-color: var(--ui-brand);
}

.bulk-medical-row {
  grid-template-columns: minmax(200px, 1.1fr) auto minmax(150px, 0.8fr) minmax(170px, 0.8fr);
}

.bulk-medical-row .bulk-edit-control {
  display: grid;
  gap: 4px;
  color: var(--ui-muted);
  font-size: 0.72rem;
  font-weight: 800;
}

.bulk-medical-document {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 11px;
  border: 1px solid #e5c96f;
  border-radius: 10px;
  background: #fff8dc;
}

.bulk-medical-document > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.bulk-medical-document small { color: #6f5b1f; overflow-wrap: anywhere; }
.bulk-medical-document > div,
.medical-submission-actions { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.medical-submission-item { align-items: center; }
.medical-submission-item > div:first-child { min-width: 0; }
.parent-medical-review-message { display: block; margin-top: 3px; color: var(--danger); overflow-wrap: anywhere; }

.bulk-medical-status.is-ok { background: #d9f8e4; color: #0b572b; }
.bulk-medical-status.is-expiring { background: #fff2bd; color: #754000; }
.bulk-medical-status.is-pending { background: #fff2bd; color: #754000; }
.bulk-medical-status.is-expired,
.bulk-medical-status.is-missing { background: #ffe1df; color: #8f1712; }

.bulk-clothing-row {
  grid-template-columns: minmax(240px, 1.2fr) minmax(220px, 0.9fr) minmax(220px, 0.9fr);
}

.bulk-clothing-meta {
  display: grid;
  gap: 4px;
  justify-items: start;
}

.bulk-clothing-meta small {
  color: var(--ui-muted);
  overflow-wrap: anywhere;
}

.bulk-clothing-toggle {
  justify-self: end;
}

.bulk-clothing-toggle.is-locked {
  opacity: 0.9;
}

.bulk-edit-member {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.bulk-edit-member strong,
.bulk-edit-member small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bulk-edit-member small {
  color: var(--ui-muted);
}

.bulk-payment-paid {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  font-weight: 850;
}

.bulk-payment-paid input {
  width: 21px;
  height: 21px;
  accent-color: #15803d;
}

.bulk-edit-sticky-actions {
  position: sticky;
  bottom: 0;
  z-index: 2;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 12px 18px;
  border-top: 1px solid var(--ui-border);
  background: color-mix(in srgb, var(--ui-surface) 94%, transparent);
  backdrop-filter: blur(12px);
}

.bulk-edit-sticky-actions button[aria-busy="true"] {
  cursor: progress;
}

:root[data-theme="dark"] .leaderboard-header {
  background: #26364a;
  color: #fff;
}

:root[data-theme="dark"] .app-version-pill {
  border-color: #506078;
  background: #253247;
  color: #f8fafc;
}

:root[data-theme="dark"] .bulk-edit-note {
  border-left-color: #eab308;
  background: #3e3212;
  color: #fff0a3;
}

:root[data-theme="dark"] .bulk-evidence-import {
  border-left-color: #fb7185;
  background: #241e2b;
  color: #f8fafc;
}

@media (max-width: 760px) {
  #bulkEdit,
  #bulkEditContent,
  .bulk-edit-section,
  .bulk-edit-body {
    min-width: 0;
    max-width: 100%;
    overflow-x: clip;
  }

  #bulkEdit input:not([type="checkbox"]):not([type="radio"]),
  #bulkEdit select,
  #bulkEdit textarea {
    font-size: 16px;
  }

  .bulk-edit-intro {
    align-items: flex-start;
    flex-direction: column;
  }

  .bulk-edit-section > summary {
    align-items: flex-start;
    flex-direction: column;
    padding: 14px;
  }

  .bulk-edit-toolbar,
  .bulk-belt-toolbar,
  .bulk-payment-toolbar,
  .bulk-medical-toolbar,
  .bulk-clothing-toolbar,
  .bulk-evidence-toolbar,
  .belt-exam-settings-grid {
    grid-template-columns: 1fr 1fr;
    padding: 12px;
  }

  .belt-exam-settings-grid .primary-action,
  .belt-exam-settings-grid .meta {
    grid-column: 1 / -1;
  }

  .member-payment-history article {
    grid-template-columns: 1fr auto;
  }

  .member-trainer-summary {
    grid-template-columns: 1fr;
    padding: 10px;
  }

  .member-payment-history small {
    grid-column: 1 / -1;
  }

  .bulk-edit-toolbar > span {
    grid-column: 1 / -1;
  }

  .bulk-edit-list {
    max-height: none;
    overflow: visible;
    padding: 8px 12px 14px;
    touch-action: pan-y;
  }

  .bulk-edit-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px 10px;
    min-height: 70px;
    padding: 9px 6px;
  }

  .bulk-evidence-row > summary {
    min-height: 56px;
    padding: 8px 6px;
  }

  .bulk-evidence-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    padding: 9px 6px 11px;
  }

  .bulk-evidence-fields input,
  .bulk-evidence-fields select {
    scroll-margin-bottom: calc(160px + env(safe-area-inset-bottom));
  }

  .bulk-evidence-address,
  .bulk-evidence-rc {
    grid-column: 1 / -1;
  }

  .grant-fix-data-bar {
    align-items: stretch;
    flex-direction: column;
    padding: 10px;
  }

  .grant-fix-data-bar .secondary-action {
    width: 100%;
  }

  .bulk-group-row,
  .bulk-medical-row,
  .bulk-clothing-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .bulk-group-picker {
    grid-column: 1 / -1;
  }

  .bulk-group-picker .bulk-group-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
  }

  .bulk-group-options label {
    min-width: 0;
    min-height: 32px;
    padding: 4px 7px;
  }

  .bulk-group-options label span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .bulk-medical-row .bulk-medical-issued {
    grid-column: 1;
  }

  .bulk-medical-row .bulk-medical-validity {
    grid-column: 2;
  }

  .bulk-medical-row .bulk-edit-control {
    min-width: 0;
  }

  .bulk-medical-row .bulk-edit-control input {
    min-width: 0;
    min-height: 42px;
    height: 42px;
    padding: 5px 6px;
    font-size: 16px;
  }

  .bulk-medical-document { align-items: stretch; flex-direction: column; }
  .bulk-medical-document > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bulk-medical-document > div > * { justify-content: center; text-align: center; }
  .medical-submission-item { align-items: stretch; flex-direction: column; }
  .medical-submission-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .medical-submission-actions > * { justify-content: center; text-align: center; }

  .bulk-edit-note {
    margin: 8px 12px 0;
    padding: 7px 9px;
    font-size: 0.72rem;
    line-height: 1.35;
  }

  .bulk-evidence-import {
    align-items: stretch;
    flex-direction: column;
  }

  .bulk-evidence-import .small-action {
    width: 100%;
  }

  .bulk-edit-row:not(.bulk-medical-row) .bulk-edit-control,
  .bulk-belt-row .bulk-current-value,
  .bulk-clothing-row .bulk-clothing-meta {
    grid-column: 1 / -1;
  }

  .bulk-payment-paid {
    justify-self: end;
  }

  .bulk-clothing-toggle {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .bulk-edit-sticky-actions {
    bottom: calc(76px + env(safe-area-inset-bottom));
    padding: 10px 12px;
  }

  .bulk-edit-sticky-actions .primary-action,
  .bulk-edit-sticky-actions .secondary-action {
    min-width: 0;
    flex: 1;
    padding-inline: 10px;
  }

  .parent-home,
  .parent-dashboard,
  .parent-home-section,
  .parent-child-summary,
  .parent-more-details,
  .parent-excuse-drawer,
  .parent-recent-activity-list {
    min-width: 0;
    max-width: 100%;
    overflow-x: clip;
  }

  .calendar-card .card-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
  }

  .calendar-card .card-actions > .tag {
    grid-column: 1 / -1;
  }

  .calendar-card .card-actions button {
    width: 100%;
    min-width: 0;
  }

  .competition-workflow-nav {
    margin-inline: -2px;
  }
}

/* v61.1 - compact mobile work rows and unambiguous transport */
.icon-action-button {
  display: inline-grid;
  width: 38px;
  min-width: 38px;
  height: 38px;
  padding: 0;
  place-items: center;
  border: 1px solid var(--ui-border-strong);
  border-radius: 10px;
  background: var(--ui-surface);
  color: var(--ui-text);
  font: inherit;
  font-size: 1.05rem;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  transition: transform 0.14s ease, border-color 0.14s ease, background 0.14s ease;
}

.icon-action-button:hover,
.icon-action-button:focus-visible {
  transform: translateY(-1px);
}

.icon-action-button:active {
  transform: scale(0.94);
}

.icon-action-button.edit-icon {
  border-color: #a9c7f5;
  background: #eaf3ff;
  color: #1555a4;
}

.icon-action-button.delete-icon {
  border-color: #f2b7b3;
  background: #fff0ef;
  color: #b42318;
}

.icon-action-button.add-icon {
  border-color: color-mix(in srgb, var(--ui-brand) 42%, var(--ui-border));
  background: color-mix(in srgb, var(--ui-brand) 10%, var(--ui-surface));
  color: var(--ui-brand);
  font-size: 1.3rem;
}

.mobile-icon-action > span:first-child {
  display: none;
}

.exam-compact-row {
  grid-template-columns: minmax(180px, 1fr) minmax(0, auto) auto;
  gap: 8px 12px;
  min-height: 54px;
  padding: 9px 10px;
}

.exam-person {
  min-width: 0;
}

.exam-person strong,
.exam-person .meta {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.exam-facts {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 5px;
}

.exam-facts .tag,
.exam-facts .belt-badge {
  min-height: 28px;
  padding: 4px 7px;
  font-size: 0.74rem;
  white-space: nowrap;
}

.exam-history-actions {
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 5px;
}

.transport-assignment-summary article {
  grid-template-columns: auto minmax(100px, auto) minmax(0, 1fr);
}

.transport-assigned-check {
  display: inline-grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border-radius: 50%;
  background: #d9f8e4;
  color: #0b6a32;
  font-weight: 950;
}

.topbar .sync-icon-button .sync-action-icon {
  display: inline-grid !important;
  width: auto !important;
  height: auto !important;
  place-items: center;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: currentColor;
  font-size: 1.28rem;
  line-height: 1;
  transform-origin: 50% 50%;
}

.topbar .sync-icon-button.syncing::before {
  content: none !important;
  display: none !important;
  animation: none !important;
}

.topbar .sync-icon-button.syncing .sync-action-icon {
  animation: spinSync 0.8s linear infinite !important;
}

:root[data-theme="dark"] .icon-action-button.edit-icon {
  border-color: #315c91;
  background: #172d49;
  color: #b9d7ff;
}

:root[data-theme="dark"] .icon-action-button.delete-icon {
  border-color: #743d3d;
  background: #3e2020;
  color: #ffb4af;
}

:root[data-theme="dark"] .transport-assigned-check {
  background: #173c28;
  color: #90e5ad;
}

@media (max-width: 760px) {
  .mobile-icon-action {
    display: inline-grid;
    width: 40px !important;
    min-width: 40px !important;
    height: 40px;
    padding: 0 !important;
    place-items: center;
    border-radius: 10px;
    font-size: 1rem;
  }

  .mobile-icon-action > span:first-child {
    display: inline;
  }

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

  .calendar-card .card-actions,
  .news-card .compact-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
  }

  .calendar-card .card-actions > .tag {
    margin-right: auto;
  }

  .stock-row {
    grid-template-columns: minmax(0, 1fr) auto auto auto !important;
    grid-template-areas:
      "category code size actions"
      "type count count actions"
      "location location location location"
      "note note note note";
    gap: 3px 8px !important;
    min-height: 0;
    padding: 8px 9px !important;
  }

  .stock-row .stock-category { grid-area: category; font-weight: 900; }
  .stock-row .stock-type { grid-area: type; color: var(--ui-muted); font-size: 0.78rem; }
  .stock-row .stock-code { grid-area: code; }
  .stock-row .stock-size { grid-area: size; }
  .stock-row .stock-count { grid-area: count; }
  .stock-row .stock-location { grid-area: location; }
  .stock-row .stock-note { grid-area: note; }
  .stock-row .stock-actions { grid-area: actions; }

  .stock-row .stock-code,
  .stock-row .stock-size {
    align-self: start;
    padding: 3px 6px;
    border-radius: 999px;
    background: var(--ui-surface-muted);
    font-size: 0.72rem;
    white-space: nowrap;
  }

  .stock-row .stock-count {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 6px;
  }

  .stock-row .stock-count > span {
    font-size: 0.68rem;
  }

  .stock-row .stock-count input {
    width: 58px;
    min-height: 34px;
  }

  .stock-row .stock-actions {
    display: grid;
    grid-column: auto !important;
    align-self: center;
    gap: 5px;
  }

  .stock-row .stock-location:empty,
  .stock-row .stock-note:empty {
    display: none;
  }

  .stock-row .stock-cell::before {
    display: none;
  }

  .stock-row .stock-location:not(:empty),
  .stock-row .stock-note:not(:empty) {
    padding-top: 4px;
    color: var(--ui-muted);
    font-size: 0.72rem;
  }

  .issue-row {
    gap: 7px;
    padding: 9px 10px;
  }

  .issue-row .issue-statuses {
    display: flex;
    flex-wrap: wrap;
  }

  .issue-row .issue-statuses label {
    min-height: 30px;
    padding: 4px 7px;
    font-size: 0.72rem;
  }

  .issue-row .issue-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
  }

  .issue-row .issue-actions [data-toggle-issue-history] {
    min-height: 38px;
    margin-right: auto;
    padding: 7px 10px;
  }

  .exam-compact-row {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas:
      "person action"
      "facts facts";
    gap: 5px 8px;
    min-height: 0;
    padding: 8px 9px;
  }

  .exam-compact-row .exam-person { grid-area: person; }
  .exam-compact-row .exam-facts {
    grid-area: facts;
    justify-content: flex-start;
  }
  .exam-compact-row > .icon-action-button,
  .exam-compact-row > .exam-history-actions {
    grid-area: action;
    align-self: center;
    justify-self: end;
  }

  .exam-person .meta {
    margin-top: 1px;
    font-size: 0.72rem;
  }

  .transport-assignment-summary article {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 2px 8px;
    align-items: center;
  }

  .transport-assignment-summary article .meta {
    grid-column: 2;
  }
}

/* v61.2 - compact mobile details, communication, audit and management forms */
.member-action-icon {
  display: none;
}

.message-history-module {
  margin-top: 12px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-md);
  background: var(--ui-surface-muted);
  overflow: hidden;
}

.message-history-module > summary,
.communication-module > summary,
.profile-management-module > summary {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  cursor: pointer;
  list-style: none;
}

.message-history-module > summary::-webkit-details-marker,
.communication-module > summary::-webkit-details-marker,
.profile-management-module > summary::-webkit-details-marker {
  display: none;
}

.message-history-module > summary > span,
.communication-module > summary > span,
.profile-management-module > summary > span {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.message-history-module > summary small,
.communication-module > summary small,
.profile-management-module > summary small {
  color: var(--ui-muted);
  font-size: 0.75rem;
}

.message-history-module-body {
  padding: 0 10px 10px;
}

.audit-summary-main {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 3px 8px;
}

.audit-summary-main strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.audit-summary-main small {
  grid-column: 1 / -1;
}

.audit-summary-open {
  color: var(--ui-muted);
  font-size: 1.1rem;
  font-weight: 900;
  transition: transform 0.16s ease;
}

.audit-row[open] .audit-summary-open {
  transform: rotate(180deg);
}

#profiles .profile-management-module,
#systemStatus .secondary-data-module,
#communication .communication-module,
#registrations .panel,
#webIntegration .panel {
  border-color: var(--ui-border);
  box-shadow: none;
}

:root[data-theme="dark"] .message-history-module {
  border-color: var(--ui-border);
  background: var(--ui-surface-muted);
}

@media (max-width: 760px) {
  /* Member detail: immediate contact first, everything else tightly collapsed. */
  .member-detail-shell {
    gap: 7px;
  }

  .member-trainer-summary {
    gap: 7px;
    margin-bottom: 2px;
    padding: 8px;
    border-radius: 12px;
  }

  .member-trainer-groups {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
  }

  .member-trainer-groups strong {
    max-width: 62%;
    overflow: hidden;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .member-contact-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
  }

  .member-contact-strip a {
    min-height: 40px;
    padding: 5px 7px;
    border-radius: 9px;
  }

  .member-contact-strip a strong {
    overflow: hidden;
    font-size: 0.78rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .member-contact-strip a:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .member-quick-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
  }

  .member-quick-grid article {
    min-height: 46px;
    padding: 6px 7px;
  }

  .member-quick-grid article span {
    font-size: 0.62rem;
  }

  .member-quick-grid article strong {
    font-size: 0.78rem;
    line-height: 1.1;
  }

  .member-detail-panel > summary,
  .member-facts-more > summary {
    min-height: 42px;
    padding: 7px 9px;
  }

  .member-detail-panel > summary .tag,
  .member-facts-more > summary .tag {
    max-width: 44%;
    overflow: hidden;
    padding: 4px 7px;
    font-size: 0.65rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .member-detail-panel-body {
    padding: 8px;
  }

  .member-detail-actions {
    display: flex;
    bottom: 76px;
    align-items: center;
    gap: 5px;
    padding: 6px;
  }

  .member-detail-actions > * {
    flex: 0 1 auto;
    min-height: 38px;
  }

  .member-detail-actions .member-mobile-action {
    display: inline-grid;
    width: 40px;
    min-width: 40px;
    height: 40px;
    padding: 0;
    place-items: center;
    border-radius: 10px;
  }

  .member-detail-actions .member-action-icon {
    display: inline;
    font-size: 1rem;
    line-height: 1;
  }

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

  .member-detail-actions [data-merge-novotny-duplicate],
  .member-detail-actions [data-toggle-member-inactive] {
    flex: 1 1 150px;
    min-width: 0;
    padding: 6px 8px;
    font-size: 0.72rem;
  }

  .member-documents .document-item {
    grid-template-columns: 36px minmax(0, 1fr) auto;
    gap: 6px;
    padding: 7px;
  }

  .member-documents .document-preview {
    width: 36px;
    height: 36px;
  }

  .member-documents .document-item span,
  .member-documents .document-item small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .member-documents .document-actions {
    display: flex;
    align-items: center;
    gap: 3px;
  }

  .member-documents .document-actions .text-button {
    padding: 4px 5px;
    font-size: 0.66rem;
  }

  /* Competition workbench: keep one decision row visible at a time. */
  #competitions > .toolbar {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #competitions .panel {
    padding: 9px;
  }

  #competitions .panel-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px;
  }

  #competitions .competition-actions {
    display: grid;
    grid-template-columns: auto auto;
    gap: 5px;
  }

  #competitions .competition-actions .primary-action {
    grid-column: 1 / -1;
  }

  #competitions .competition-actions button {
    min-width: 0;
    min-height: 36px;
    padding: 6px 8px;
    font-size: 0.7rem;
  }

  .competition-workflow-nav {
    position: sticky;
    z-index: 4;
    top: 76px;
    gap: 3px;
    padding: 4px;
  }

  .competition-workflow-nav button {
    min-height: 34px;
    padding: 5px 8px;
    font-size: 0.7rem;
  }

  .event-registration-panel > summary,
  .competition-transport-panel > summary,
  .competition-nomination-list-panel > summary {
    min-height: 42px;
    padding: 7px 8px;
  }

  .event-registration-panel-body,
  .competition-transport-body,
  .competition-nomination-list {
    padding: 7px;
  }

  .event-registration-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
    padding: 7px 8px;
  }

  .event-registration-row .card-actions {
    display: flex;
    justify-self: end;
    gap: 4px;
  }

  .event-registration-row .small-action {
    min-height: 32px;
    padding: 5px 7px;
    font-size: 0.68rem;
  }

  .nomination-card > summary {
    min-height: 42px;
  }

  .nomination-detail {
    gap: 7px;
    padding: 7px 8px;
  }

  .nomination-detail .meta {
    margin-top: 0;
    font-size: 0.7rem;
  }

  .nomination-detail input,
  .nomination-detail select {
    min-height: 40px;
  }

  .competition-results-panel > summary {
    min-height: 44px;
    padding: 7px 8px;
  }

  .competition-results-panel > summary p {
    display: none;
  }

  .competition-results-panel > summary button {
    min-height: 34px;
    padding: 5px 8px;
    font-size: 0.68rem;
  }

  .competitor-card {
    padding: 8px;
    border-radius: 12px;
  }

  .competitor-card summary {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "main best"
      "medals medals";
    gap: 5px 7px;
  }

  .result-card-medals {
    justify-content: flex-start;
  }

  .result-card-best {
    justify-self: end;
  }

  .result-timeline .result-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 8px;
    padding: 7px;
  }

  /* Communication: one task per block and a collapsed, scan-friendly history. */
  #communication > .panel,
  #communication > .communication-module {
    padding: 9px;
  }

  #communication > .panel > .toolbar,
  .communication-module-body > .toolbar {
    grid-template-columns: 1fr;
    margin-bottom: 7px;
    padding: 0;
    border: 0;
    background: transparent;
  }

  #communication .button-row {
    display: flex;
    gap: 5px;
    overflow-x: auto;
    padding-bottom: 2px;
  }

  #communication .button-row button {
    flex: 0 0 auto;
    min-height: 34px;
    padding: 5px 8px;
    font-size: 0.7rem;
  }

  #communication textarea {
    min-height: 84px;
  }

  .message-history-module {
    margin-top: 8px;
  }

  .message-history-module > summary,
  .communication-module > summary,
  .profile-management-module > summary {
    min-height: 42px;
    padding: 7px 9px;
  }

  .message-history-module-body {
    padding: 0 6px 6px;
  }

  .message-history {
    gap: 5px;
  }

  .message-history-row summary {
    min-height: 40px;
    padding: 7px 8px;
  }

  .message-history-main strong {
    overflow: hidden;
    font-size: 0.82rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .message-history-row summary .tag {
    padding: 4px 6px;
    font-size: 0.66rem;
  }

  .message-history-detail {
    gap: 5px;
    padding: 0 8px 8px;
  }

  .poll-card {
    padding: 9px;
  }

  .poll-option {
    min-height: 38px;
    padding: 7px 8px;
  }

  .chat-box {
    max-height: 48vh;
    padding: 8px;
  }

  .chat-message {
    max-width: 92%;
    padding: 7px 9px;
  }

  /* Audit: action, record and actor stay in one compact readable unit. */
  .audit-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .audit-row summary {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
    padding: 7px 8px;
  }

  .audit-summary-main {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 2px 6px;
  }

  .audit-summary-main .tag {
    padding: 3px 6px;
    font-size: 0.62rem;
  }

  .audit-summary-main strong {
    font-size: 0.8rem;
  }

  .audit-summary-main small {
    font-size: 0.66rem;
  }

  .audit-diff {
    gap: 4px;
    margin: 6px 0;
  }

  .audit-diff-row {
    padding: 6px;
  }

  /* Management screens: controls remain touch-friendly without card-on-card bulk. */
  #profiles > .panel,
  #profiles > .profile-management-module,
  #systemStatus > .panel,
  #systemStatus > .secondary-data-module,
  #registrations > .panel,
  #webIntegration > .panel,
  #exports > .panel,
  #groups > .panel,
  #bulkEdit .panel {
    padding: 9px;
  }

  #profiles .panel-heading,
  #systemStatus .panel-heading,
  #registrations .panel-heading,
  #webIntegration .panel-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px;
  }

  #profiles .panel-heading p,
  #systemStatus .panel-heading p,
  #registrations .panel-heading p,
  #webIntegration .panel-heading p {
    font-size: 0.72rem;
  }

  #profiles .inline-actions,
  #systemStatus .inline-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 5px;
  }

  #profiles .inline-actions button,
  #systemStatus .inline-actions button,
  #registrations .panel-heading button,
  #webIntegration .panel-heading button {
    min-height: 34px;
    padding: 5px 8px;
    font-size: 0.68rem;
  }

  .profile-management-body,
  .secondary-data-body,
  .communication-module-body {
    padding: 8px;
  }

  /* Shared editor sheets: remove oversized nested field cards. */
  .dialog-card #dialogFields {
    gap: 7px;
    padding: 10px 12px;
  }

  .dialog-card label {
    gap: 4px;
    padding: 7px 8px;
    border-radius: 11px;
    font-size: 0.76rem;
  }

  .dialog-card input,
  .dialog-card select,
  .dialog-card textarea {
    min-height: 42px;
  }

  .dialog-card textarea {
    min-height: 88px;
  }

  .dialog-card menu {
    gap: 7px;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 430px) {
  .member-contact-strip {
    grid-template-columns: 1fr;
  }

  .member-contact-strip a:last-child:nth-child(odd) {
    grid-column: auto;
  }

  #competitions .panel-heading,
  #profiles .panel-heading,
  #systemStatus .panel-heading,
  #registrations .panel-heading,
  #webIntegration .panel-heading {
    grid-template-columns: 1fr;
  }

  #competitions .competition-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #competitions .competition-actions .primary-action {
    grid-column: 1 / -1;
  }
}

/* v65.1 · ochrana mobilních formulářů a dlouhého provozního textu */
#editorDialog,
#editorDialog .dialog-card,
#editorDialog #dialogFields,
#editorDialog #dialogFields > *,
#editorDialog .dialog-field {
  min-inline-size: 0;
  max-inline-size: 100%;
}

#editorDialog .dialog-field :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  display: block;
  inline-size: 100%;
  min-inline-size: 0;
  max-inline-size: 100%;
  box-sizing: border-box;
}

#editorDialog .checkbox-field {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-soft);
  color: var(--ink);
}

#editorDialog .checkbox-field input[type="checkbox"] {
  inline-size: 22px;
  block-size: 22px;
  min-inline-size: 22px;
  margin: 0;
  accent-color: var(--brand);
}

#editorDialog .checkbox-field > span {
  display: block;
  min-inline-size: 0;
  color: var(--ink);
  font-weight: 800;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

#editorDialog .dialog-field input[type="date"],
#editorDialog .dialog-field input[type="time"],
#editorDialog .dialog-field input[type="datetime-local"] {
  min-width: 0;
  width: 100%;
}

#editorDialog .dialog-heading,
#editorDialog .dialog-heading h2,
.panel-heading > div,
.profile-card > div,
.card-actions {
  min-width: 0;
  max-width: 100%;
}

#editorDialog .dialog-heading h2,
.panel-heading :is(h2, h3, p),
.profile-card :is(strong, p, .meta) {
  overflow-wrap: anywhere;
}

.exam-history-row .exam-facts {
  max-width: 100%;
}

.exam-history-note {
  flex: 1 0 100%;
  max-width: 100%;
  padding: 4px 7px;
  border-radius: 9px;
  background: var(--ui-surface-muted, var(--surface-soft));
  color: var(--ui-muted, var(--muted));
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1.35;
  overflow-wrap: anywhere;
  white-space: normal;
}

@media (max-width: 760px) {
  #editorDialog .dialog-heading h2 {
    font-size: clamp(1.35rem, 6.5vw, 1.85rem);
    line-height: 1.12;
  }

  #editorDialog .dialog-field input[type="date"]::-webkit-date-and-time-value,
  #editorDialog .dialog-field input[type="time"]::-webkit-date-and-time-value,
  #editorDialog .dialog-field input[type="datetime-local"]::-webkit-date-and-time-value {
    min-width: 0;
    text-align: left;
  }

  .exam-history-row .exam-facts {
    overflow: hidden;
  }

  .exam-history-note {
    display: -webkit-box;
    padding: 5px 7px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
  }

  .profile-card .card-actions {
    flex-wrap: wrap;
  }
}

/* v72.6 - finální mobilní cíle a klávesová navigace */
summary:focus-visible {
  outline: 3px solid var(--ui-focus);
  outline-offset: 2px;
}

.nav-item[aria-current="page"],
.bottom-nav-item[aria-current="page"] { color: var(--ui-brand); }

/* v72.7 - ikona třídní knihy nesmí zdědit blokové zarovnání starší vrstvy. */
.attendance-work-icon.attendance-book-icon {
  display: grid;
  place-items: center;
}

@media (max-width: 760px) {
  #calendarPreviousMonth,
  #calendarNextMonth { min-width: 44px; }

  #attendance #saveClassBook,
  #groups .group-workspace-tabs button,
  #competitions .competition-workflow-nav button,
  #competitions .competition-actions button,
  #competitions #downloadResultsCsv,
  #communication .button-row button,
  #communication .message-template,
  #registrations #refreshWebRegistrationsButton,
  #webIntegration #publishPublicWebDataButton,
  #clothing .parent-order-history > summary,
  #grants .grant-source-links a { min-height: 44px; }

  #grants .grant-source-links a {
    display: inline-flex;
    align-items: center;
  }
}
