/* SchoolDay v269.0: Clubs (Teacher Tools > Clubs).

   Everything is scoped under #tab-clubs, so nothing here reaches another tab.
   admin-function-shell-v2365.css still loads after this and styles the tab
   strip (.schoolday-function-tabs-v2162); nothing here fights it.

   The hidden ATTRIBUTE gets a rule of its own, first: a class that sets display
   beats [hidden] (a lesson this repository has paid for twice). */
#tab-clubs [hidden] { display: none !important; }

#tab-clubs {
  --club-unmarked: #94a3b8;
  --club-present: #15803d;
  --club-absent: #b91c1c;
  --club-out: #1d4ed8;
  --club-line: var(--line, #dbe3ef);
}

#tab-clubs .sr-only-v2690 {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

#tab-clubs .clubs-status-v2690 { margin: .35rem 0; font-size: .9rem; color: var(--muted, #475569); }
#tab-clubs .clubs-status-v2690:empty { display: none; }
#tab-clubs .clubs-status-v2690.is-ok { color: var(--green, #0f5f3f); }
#tab-clubs .clubs-status-v2690.is-error { color: var(--red, #b42318); font-weight: 700; }
#tab-clubs .clubs-status-v2690.is-warning { color: #92400e; background: #fffbeb; border: 1px solid #fcd34d; border-radius: .45rem; padding: .4rem .6rem; }

#tab-clubs .clubs-toolbar-v2690 { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin: .75rem 0; }
#tab-clubs .clubs-toolbar-v2690 h4 { margin: 0; }
#tab-clubs .clubs-small-v2690 { padding: .3rem .6rem; font-size: .82rem; }
#tab-clubs .linkish-v2690 {
  background: none; border: 0; padding: 0; color: var(--blue, #144f8c); font-weight: 700;
  text-decoration: underline; cursor: pointer; font-size: inherit;
}
#tab-clubs .linkish-v2690:hover { background: none; color: var(--blue-hover, #2269aa); }
#tab-clubs .danger-v2690 { background: var(--red, #b42318); }
#tab-clubs .clubs-swatch-v2690 { display: inline-block; width: .9rem; height: .9rem; border-radius: .25rem; flex: 0 0 auto; vertical-align: -.1rem; margin-right: .35rem; border: 1px solid rgba(0,0,0,.12); }
#tab-clubs .clubs-badge-v2690 { display: inline-block; font-size: .72rem; font-weight: 800; padding: .1rem .45rem; border-radius: 999px; background: #eef2f7; color: #334155; vertical-align: .1rem; }
#tab-clubs .clubs-badge-v2690.is-live { background: #dcfce7; color: #14532d; }
#tab-clubs .clubs-badge-v2690.is-cancelled { background: #fee2e2; color: #7f1d1d; }
#tab-clubs .clubs-badge-v2690.is-ready { background: #dcfce7; color: #14532d; }
#tab-clubs .clubs-badge-v2690.is-needs_review { background: #fef3c7; color: #78350f; }
#tab-clubs .clubs-badge-v2690.is-error { background: #fee2e2; color: #7f1d1d; }
#tab-clubs .clubs-empty-v2690 { padding: 1.5rem; border: 2px dashed var(--club-line); border-radius: .8rem; text-align: center; }

/* ---------------------------------------------------------------- lists */
#tab-clubs ul[role="list"] { list-style: none; margin: 0; padding: 0; }
#tab-clubs .clubs-dashboard-list-v2690,
#tab-clubs .clubs-manage-list-v2690,
#tab-clubs .clubs-date-list-v2690,
#tab-clubs .clubs-owner-list-v2690 { display: grid; gap: .5rem; }

#tab-clubs .clubs-dashboard-row-v2690,
#tab-clubs .clubs-manage-row-v2690 {
  width: 100%; display: grid; grid-template-columns: auto minmax(0, 1.2fr) minmax(0, 2fr) auto; align-items: center; gap: .75rem;
  text-align: left; background: #fff; color: var(--ink, #0f172a); border: 1px solid var(--club-line);
  border-radius: .7rem; padding: .8rem 1rem; font-weight: 400;
}
#tab-clubs .clubs-manage-row-v2690 { grid-template-columns: auto minmax(0, 1fr) auto; }
#tab-clubs .clubs-dashboard-row-v2690:hover,
#tab-clubs .clubs-manage-row-v2690:hover { background: var(--blue-soft, #e7f1fb); color: var(--ink, #0f172a); border-color: #9ec5ea; }
#tab-clubs .clubs-manage-row-v2690.is-archived { opacity: .65; }
#tab-clubs .clubs-dashboard-row-v2690 .clubs-swatch-v2690 { width: .45rem; height: 2.2rem; margin: 0; }
#tab-clubs .clubs-dashboard-name-v2690 { font-weight: 800; font-size: 1.02rem; }
#tab-clubs .clubs-dashboard-count-v2690 { color: var(--muted, #475569); font-size: .88rem; white-space: nowrap; }
#tab-clubs .clubs-manage-name-v2690 { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }

#tab-clubs .clubs-club-head-v2690 { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin-bottom: .5rem; }
#tab-clubs .clubs-club-head-v2690 h3 { margin: 0; flex: 1 1 auto; display: flex; align-items: center; }

#tab-clubs .clubs-date-row-v2690 {
  display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; align-items: center; gap: .5rem;
  border: 1px solid var(--club-line); border-radius: .6rem; background: #fff; padding: .25rem .5rem;
}
#tab-clubs .clubs-date-list-v2690.is-compact .clubs-date-row-v2690 { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto; padding: .45rem .7rem; }
#tab-clubs .clubs-date-row-v2690.is-live { border-color: #86efac; box-shadow: inset .3rem 0 0 #22c55e; }
#tab-clubs .clubs-date-row-v2690.is-cancelled { background: #fafafa; }
#tab-clubs .clubs-date-row-v2690.is-cancelled .clubs-date-when-v2690 { text-decoration: line-through; color: #64748b; }
#tab-clubs .clubs-tick-v2690 { display: flex; justify-content: center; }
#tab-clubs .clubs-tick-v2690 input { width: 1.2rem; height: 1.2rem; }
#tab-clubs .clubs-date-open-v2690 {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1rem; align-items: center;
  background: none; color: var(--ink, #0f172a); border: 0; text-align: left; padding: .55rem .35rem; font-weight: 400; width: 100%;
}
#tab-clubs .clubs-date-open-v2690:hover { background: var(--blue-soft, #e7f1fb); color: var(--ink, #0f172a); }
#tab-clubs .clubs-date-summary-v2690 { color: var(--muted, #475569); font-size: .9rem; }

/* ---------------------------------------------------------------- register */
#tab-clubs .clubs-reg-summary-v2690 { font-weight: 800; font-size: 1.05rem; margin: .4rem 0; }
#tab-clubs .clubs-reg-head-v2690,
#tab-clubs .clubs-reg-row-v2690 {
  display: grid; grid-template-columns: minmax(12rem, 1.4fr) minmax(9rem, 1.3fr) minmax(14rem, 1.3fr) minmax(8rem, 1fr) auto;
  gap: .6rem; align-items: center;
}
#tab-clubs .clubs-reg-head-v2690 { font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; color: #64748b; padding: 0 .75rem .25rem; }
#tab-clubs .clubs-reg-list-v2690 { display: grid; gap: .4rem; }
#tab-clubs .clubs-reg-row-v2690 { background: #fff; border: 1px solid var(--club-line); border-left: .35rem solid var(--club-unmarked); border-radius: .6rem; padding: .55rem .75rem; }
#tab-clubs .clubs-reg-row-v2690.is-present { border-left-color: var(--club-present); }
#tab-clubs .clubs-reg-row-v2690.is-absent { border-left-color: var(--club-absent); }
#tab-clubs .clubs-reg-row-v2690.is-checked-out { border-left-color: var(--club-out); }
#tab-clubs .clubs-reg-pupil-v2690 { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .5rem; min-width: 0; }
#tab-clubs .clubs-reg-pupil-v2690 > span { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .35rem; }
#tab-clubs .clubs-dot-v2690 { width: .8rem; height: .8rem; border-radius: 50%; background: var(--club-unmarked); flex: 0 0 auto; }
#tab-clubs .clubs-dot-v2690.is-present { background: var(--club-present); }
#tab-clubs .clubs-dot-v2690.is-absent { background: var(--club-absent); border-radius: .15rem; }
#tab-clubs .clubs-dot-v2690.is-checked-out { background: var(--club-out); clip-path: polygon(50% 0, 100% 100%, 0 100%); border-radius: 0; }
#tab-clubs .clubs-reg-status-text-v2690 { font-size: .78rem; font-weight: 800; color: #475569; }
#tab-clubs .is-present .clubs-reg-status-text-v2690 { color: var(--club-present); }
#tab-clubs .is-absent .clubs-reg-status-text-v2690 { color: var(--club-absent); }
#tab-clubs .is-checked-out .clubs-reg-status-text-v2690 { color: var(--club-out); }
#tab-clubs .clubs-reg-req-v2690 { display: flex; flex-wrap: wrap; gap: .25rem; align-items: center; font-size: .85rem; }
#tab-clubs .clubs-req-chip-v2690 { background: #f1f5f9; border-radius: .35rem; padding: .1rem .4rem; max-width: 100%; overflow-wrap: anywhere; }
#tab-clubs .clubs-req-chip-v2690.is-long { background: #fff7ed; }
#tab-clubs .clubs-reg-att-v2690 { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; }
#tab-clubs .clubs-mark-v2690 { background: #fff; color: var(--ink, #0f172a); border: 2px solid #cbd5e1; padding: .45rem .8rem; min-width: 5.2rem; }
#tab-clubs .clubs-mark-v2690:hover { color: var(--ink, #0f172a); background: #f8fafc; }
#tab-clubs .clubs-mark-v2690.is-present.is-on { background: var(--club-present); border-color: var(--club-present); color: #fff; }
#tab-clubs .clubs-mark-v2690.is-absent.is-on { background: var(--club-absent); border-color: var(--club-absent); color: #fff; }
#tab-clubs .clubs-mark-v2690:disabled,
#tab-clubs .clubs-reg-att-v2690 button:disabled { opacity: .5; cursor: default; }
#tab-clubs .clubs-out-at-v2690 { font-weight: 800; color: var(--club-out); }
#tab-clubs .clubs-reg-assess-v2690 { display: flex; flex-wrap: wrap; gap: .3rem; }
#tab-clubs .clubs-assess-btn-v2690 { padding: .3rem .6rem; font-size: .85rem; }
#tab-clubs .clubs-progress-v2690 { font-weight: 800; color: var(--blue, #144f8c); }
#tab-clubs .clubs-reg-more-v2690 { font-size: .85rem; }
#tab-clubs .clubs-secret-btn-v2690 { padding: .2rem .55rem; font-size: .8rem; background: #fef3c7; color: #78350f; border: 1px solid #fcd34d; user-select: none; -webkit-user-select: none; touch-action: none; }
#tab-clubs .clubs-secret-btn-v2690:hover { background: #fde68a; color: #78350f; }
#tab-clubs .clubs-secret-v2690 { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 800; font-size: 1.05rem; letter-spacing: .04em; }
#tab-clubs .clubs-small-note-v2690 { font-size: .78rem; }

/* ---------------------------------------------------------------- dialog */
#tab-clubs .clubs-dialog-v2690 {
  position: fixed; inset: 0; z-index: 4000; background: rgba(15, 23, 42, .45);
  display: flex; align-items: flex-start; justify-content: center; padding: 4vh 1rem; overflow-y: auto;
}
#tab-clubs .clubs-dialog-card-v2690 { background: #fff; border-radius: .9rem; width: min(46rem, 100%); box-shadow: 0 20px 50px rgba(15, 23, 42, .3); }
#tab-clubs .clubs-dialog-head-v2690 { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem .5rem; border-bottom: 1px solid var(--club-line); }
#tab-clubs .clubs-dialog-head-v2690 h3 { margin: 0; }
#tab-clubs .clubs-dialog-close-v2690 { background: none; color: #334155; font-size: 1.6rem; line-height: 1; padding: .1rem .5rem; }
#tab-clubs .clubs-dialog-close-v2690:hover { background: #f1f5f9; color: #0f172a; }
#tab-clubs .clubs-dialog-body-v2690 { padding: 1rem 1.2rem 1.2rem; max-height: 80vh; overflow-y: auto; }
#tab-clubs .clubs-dialog-actions-v2690 { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }

#tab-clubs .clubs-form-grid-v2690 { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .6rem .9rem; margin: .5rem 0; }
#tab-clubs .clubs-field-v2690 { display: flex; flex-direction: column; gap: .25rem; font-weight: 700; font-size: .9rem; margin: 0; }
#tab-clubs .clubs-field-v2690.is-wide { grid-column: 1 / -1; }
#tab-clubs .clubs-field-v2690.is-inline { flex-direction: row; align-items: center; gap: .45rem; }
#tab-clubs .clubs-field-v2690 input,
#tab-clubs .clubs-field-v2690 select,
#tab-clubs .clubs-field-v2690 textarea { font-weight: 400; }
#tab-clubs .clubs-inline-v2690 { display: inline-flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
#tab-clubs .clubs-inline-v2690 input[type="number"] { width: 5rem; }
#tab-clubs .clubs-segment-v2690 { border: 1px solid var(--club-line); border-radius: .6rem; padding: .5rem .8rem; margin: .6rem 0; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; align-items: center; }
#tab-clubs .clubs-segment-v2690 legend { font-weight: 800; font-size: .88rem; padding: 0 .3rem; }
#tab-clubs .clubs-segment-v2690 label { display: inline-flex; align-items: center; gap: .35rem; font-weight: 400; margin: 0; flex-wrap: wrap; }
#tab-clubs .clubs-segment-v2690 input[type="number"] { width: 4.5rem; }
#tab-clubs .clubs-days-v2690 { border: 1px solid var(--club-line); border-radius: .6rem; padding: .5rem .8rem; display: flex; flex-wrap: wrap; gap: .4rem; }
#tab-clubs .clubs-days-v2690 legend { font-weight: 800; font-size: .88rem; }
#tab-clubs .clubs-day-v2690 { display: inline-flex; align-items: center; gap: .25rem; border: 1px solid var(--club-line); border-radius: .5rem; padding: .3rem .55rem; font-weight: 700; margin: 0; }

#tab-clubs .clubs-dates-preview-v2690 { margin-top: .8rem; }
#tab-clubs .clubs-dates-summary-v2690 { font-weight: 800; }
#tab-clubs .clubs-dates-list-v2690 { max-height: 16rem; overflow-y: auto; border: 1px solid var(--club-line); border-radius: .6rem; padding: .3rem .6rem; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .15rem .8rem; }
#tab-clubs .clubs-dates-list-v2690 label { display: flex; gap: .4rem; align-items: baseline; font-weight: 400; margin: 0; padding: .15rem 0; flex-wrap: wrap; }
#tab-clubs .clubs-dates-list-v2690 li.is-out span:first-of-type { text-decoration: line-through; color: #64748b; }

#tab-clubs .clubs-find-results-v2690 { margin: .5rem 0; }
#tab-clubs .clubs-find-list-v2690 { display: grid; gap: .3rem; max-height: 18rem; overflow-y: auto; }
#tab-clubs .clubs-find-list-v2690 button {
  width: 100%; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .2rem .8rem; text-align: left;
  background: #fff; color: var(--ink, #0f172a); border: 1px solid var(--club-line); font-weight: 400; padding: .5rem .7rem;
}
#tab-clubs .clubs-find-list-v2690 button:hover { background: var(--blue-soft, #e7f1fb); color: var(--ink, #0f172a); }
#tab-clubs .clubs-new-child-v2690 { margin-top: .8rem; border: 1px solid var(--club-line); border-radius: .6rem; padding: .5rem .8rem; }
#tab-clubs .clubs-new-child-v2690 summary { font-weight: 800; cursor: pointer; }
#tab-clubs .clubs-check-list-v2690 { display: grid; gap: .25rem; max-height: 16rem; overflow-y: auto; margin: .4rem 0; }

/* ---------------------------------------------------------------- editor */
#tab-clubs .clubs-editor-v2690 section { border-top: 1px solid var(--club-line); padding: .8rem 0; }
#tab-clubs .clubs-editor-v2690 section:first-child { border-top: 0; }
#tab-clubs .clubs-editor-v2690 h4 { margin: 0 0 .4rem; }
#tab-clubs .clubs-editor-actions-v2690 { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding: .8rem 0; border-top: 1px solid var(--club-line); }
#tab-clubs .clubs-editor-dates-v2690 { border-top: 2px solid var(--club-line); padding-top: .6rem; }
#tab-clubs .clubs-chips-v2690 { display: flex; flex-wrap: wrap; gap: .35rem; margin: .35rem 0; }
#tab-clubs .clubs-chip-v2690 { display: inline-flex; align-items: center; gap: .3rem; background: #eef2f7; border-radius: 999px; padding: .2rem .35rem .2rem .7rem; font-size: .88rem; }
#tab-clubs .clubs-chip-x-v2690 { background: none; color: #334155; padding: 0 .35rem; font-size: 1.1rem; line-height: 1; }
#tab-clubs .clubs-chip-x-v2690:hover { background: #cbd5e1; color: #0f172a; border-radius: 50%; }
#tab-clubs .clubs-field-list-v2690 { display: grid; gap: .35rem; }
#tab-clubs .clubs-field-row-v2690 { display: grid; grid-template-columns: minmax(9rem, 1.2fr) minmax(7rem, .8fr) minmax(8rem, 1.2fr) auto auto; gap: .4rem; align-items: center; }
#tab-clubs .clubs-inline-check-v2690 { display: inline-flex; align-items: center; gap: .3rem; font-weight: 400; margin: 0; white-space: nowrap; }
#tab-clubs .clubs-order-v2690 { display: inline-flex; gap: .25rem; }
#tab-clubs .clubs-check-grid-v2690 { display: flex; flex-wrap: wrap; gap: .4rem; }

#tab-clubs .clubs-owner-row-v2690 { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1rem; background: #fff; border: 1px solid var(--club-line); border-radius: .6rem; padding: .7rem .9rem; }
#tab-clubs .clubs-owner-row-v2690.is-linked { opacity: .7; }
#tab-clubs .clubs-owner-actions-v2690 { display: flex; flex-wrap: wrap; gap: .35rem; align-items: flex-start; }

/* ---------------------------------------------------------------- assessments */
#tab-clubs .clubs-levels-v2690 { padding-left: 1.2rem; display: grid; gap: .8rem; }
#tab-clubs .clubs-level-v2690 { border: 1px solid var(--club-line); border-radius: .6rem; padding: .6rem .8rem; background: #fcfdff; }
#tab-clubs .clubs-level-head-v2690 { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
#tab-clubs .clubs-level-head-v2690 input { flex: 1 1 12rem; font-weight: 800; }
#tab-clubs .clubs-skills-v2690 { padding-left: 1.3rem; display: grid; gap: .3rem; margin: .5rem 0; }
#tab-clubs .clubs-skill-v2690 { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(9rem, 1fr) auto; gap: .35rem; align-items: center; }
#tab-clubs .clubs-scale-list-v2690 { display: grid; gap: .5rem; }
#tab-clubs .clubs-scale-list-v2690 > li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; border: 1px solid var(--club-line); border-radius: .6rem; padding: .6rem .8rem; background: #fff; }
#tab-clubs .clubs-grade-strip-v2690 { display: flex; flex-wrap: wrap; gap: .25rem; margin-top: .3rem; }
#tab-clubs .clubs-grade-chip-v2690 { border-left: .35rem solid var(--grade, #64748b); background: #f8fafc; border-radius: .3rem; padding: .1rem .45rem; font-size: .84rem; }
#tab-clubs .clubs-grade-table-v2690 { width: 100%; border-collapse: collapse; margin: .5rem 0; }
#tab-clubs .clubs-grade-table-v2690 th { text-align: left; font-size: .82rem; color: #475569; padding: .2rem; }
#tab-clubs .clubs-grade-table-v2690 td { padding: .2rem; }
#tab-clubs .clubs-grade-table-v2690 input[type="number"] { width: 6rem; }
#tab-clubs .clubs-mark-level-v2690 { margin-bottom: .8rem; }
#tab-clubs .clubs-mark-level-v2690 h4 { margin: .4rem 0; }
#tab-clubs .clubs-mark-skill-v2690 { border: 1px solid var(--club-line); border-radius: .6rem; padding: .5rem .7rem; margin-bottom: .4rem; }
#tab-clubs .clubs-mark-name-v2690 { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .2rem .8rem; }
#tab-clubs .clubs-grade-picks-v2690 { display: flex; flex-wrap: wrap; gap: .3rem; margin: .4rem 0; align-items: center; }
#tab-clubs .clubs-grade-pick-v2690 { background: #fff; color: var(--ink, #0f172a); border: 2px solid var(--grade, #64748b); padding: .35rem .6rem; font-weight: 700; }
#tab-clubs .clubs-grade-pick-v2690:hover { background: #f8fafc; color: var(--ink, #0f172a); }
#tab-clubs .clubs-grade-pick-v2690.is-on { background: var(--grade, #64748b); color: #fff; outline: 3px solid #0f172a; outline-offset: 1px; }
#tab-clubs .clubs-mark-history-v2690 { font-size: .85rem; }
#tab-clubs .clubs-mark-history-v2690 .is-undone { color: #94a3b8; text-decoration: line-through; }
#tab-clubs .clubs-req-table-v2690 { width: 100%; border-collapse: collapse; font-size: .88rem; }
#tab-clubs .clubs-req-table-v2690 th, #tab-clubs .clubs-req-table-v2690 td { border-bottom: 1px solid var(--club-line); padding: .35rem; text-align: left; vertical-align: top; }
#tab-clubs .clubs-req-table-v2690 tr.is-cancelled td { color: #94a3b8; }

/* ---------------------------------------------------------------- import */
#tab-clubs .clubs-import-step-v2690 { border-top: 1px solid var(--club-line); padding: .8rem 0; }
#tab-clubs .clubs-import-step-v2690 h4 { margin: 0 0 .5rem; }
#tab-clubs .clubs-dropzone-v2690 { border: 2px dashed #94a3b8; border-radius: .9rem; padding: 1.6rem; text-align: center; display: flex; flex-direction: column; gap: .3rem; cursor: pointer; background: #f8fafc; }
#tab-clubs .clubs-dropzone-v2690.is-over,
#tab-clubs .clubs-dropzone-v2690:focus-visible { border-color: var(--blue, #144f8c); background: var(--blue-soft, #e7f1fb); }
#tab-clubs .clubs-map-table-v2690 { width: 100%; border-collapse: collapse; }
#tab-clubs .clubs-map-table-v2690 th, #tab-clubs .clubs-map-table-v2690 td { border-bottom: 1px solid var(--club-line); padding: .35rem; text-align: left; vertical-align: middle; }
#tab-clubs .clubs-map-table-v2690 td select, #tab-clubs .clubs-map-table-v2690 td input { margin: .1rem .2rem .1rem 0; }
#tab-clubs .clubs-club-map-v2690 { display: grid; gap: .4rem; }
#tab-clubs .clubs-import-dates-v2690 { border: 1px solid var(--club-line); border-radius: .6rem; padding: .4rem .8rem; margin: .5rem 0; }
#tab-clubs .clubs-import-totals-v2690 { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; background: #f8fafc; border: 1px solid var(--club-line); border-radius: .6rem; padding: .6rem .9rem; margin: .6rem 0; }
#tab-clubs .clubs-review-list-v2690 { display: grid; gap: .35rem; max-height: 32rem; overflow-y: auto; }
#tab-clubs .clubs-review-row-v2690 { border: 1px solid var(--club-line); border-left: .3rem solid #22c55e; border-radius: .5rem; padding: .45rem .7rem; background: #fff; }
#tab-clubs .clubs-review-row-v2690.is-needs_review { border-left-color: #f59e0b; }
#tab-clubs .clubs-review-row-v2690.is-error { border-left-color: #dc2626; }
#tab-clubs .clubs-review-msgs-v2690 { margin: .25rem 0 0 1.1rem; font-size: .88rem; }
#tab-clubs .clubs-candidates-v2690 { border: 0; padding: .3rem 0 0; margin: 0; display: grid; gap: .2rem; }
#tab-clubs .clubs-candidates-v2690 label { font-weight: 400; margin: 0; display: flex; gap: .4rem; align-items: baseline; flex-wrap: wrap; }

/* Register and Assess Pupils: the shortcut that replaced their Clubs panes. */
.clubs-shortcut-v2690 { margin: .3rem 0 .6rem; }
.clubs-shortcut-v2690 .linkish-v2690 { background: none; border: 0; padding: 0; color: var(--blue, #144f8c); font-weight: 800; text-decoration: underline; cursor: pointer; }
.clubs-shortcut-v2690[hidden] { display: none !important; }

/* Pupil record: the Clubs section. */
.pupil-clubs-v2690 { border-top: 1px solid var(--line, #dbe3ef); margin-top: 1rem; padding-top: .8rem; }
.pupil-clubs-v2690[hidden] { display: none !important; }
.pupil-clubs-v2690 .clubs-req-table-v2690 { width: 100%; border-collapse: collapse; font-size: .88rem; }
.pupil-clubs-v2690 .clubs-req-table-v2690 th, .pupil-clubs-v2690 .clubs-req-table-v2690 td { border-bottom: 1px solid var(--line, #dbe3ef); padding: .35rem; text-align: left; vertical-align: top; }

/* ---------------------------------------------------------------- phones */
@media (max-width: 760px) {
  #tab-clubs .clubs-dashboard-row-v2690 { grid-template-columns: auto minmax(0, 1fr); }
  #tab-clubs .clubs-dashboard-next-v2690,
  #tab-clubs .clubs-dashboard-count-v2690 { grid-column: 2; }
  #tab-clubs .clubs-reg-head-v2690 { display: none; }
  #tab-clubs .clubs-reg-row-v2690 { grid-template-columns: 1fr; gap: .45rem; }
  #tab-clubs .clubs-mark-v2690 { flex: 1 1 0; min-height: 2.6rem; }
  #tab-clubs .clubs-reg-att-v2690 > button { flex: 1 1 auto; min-height: 2.6rem; }
  #tab-clubs .clubs-field-row-v2690 { grid-template-columns: 1fr 1fr; }
  #tab-clubs .clubs-skill-v2690 { grid-template-columns: 1fr; }
  #tab-clubs .clubs-date-list-v2690.is-compact .clubs-date-row-v2690 { grid-template-columns: 1fr auto; }
  #tab-clubs .clubs-dialog-v2690 { padding: 0; }
  #tab-clubs .clubs-dialog-card-v2690 { border-radius: 0; min-height: 100vh; }
  #tab-clubs .clubs-dialog-body-v2690 { max-height: none; }
}

/* ---------------------------------------------------------------------------
   v269.5: the controls that were stretching.

   styles.css sets `input, select, textarea { width: 100% }`. That is right for
   text boxes and wrong for checkboxes and radios, which grew to the full width
   of their label and pushed their own caption onto the next line -- which is
   why Add dates read as a column of controls floating above their captions,
   and why "Show archived", "Show past dates" and "Also replace gradings
   already chosen" wrapped. styles.css already fixes this, but only inside
   .checkbox-grid, which the Clubs screens do not use.

   .pupil-clubs-v2690 is named alongside #tab-clubs because it is the one piece
   of Clubs that renders outside the tab (the Clubs block on a pupil's record).
   --------------------------------------------------------------------------- */
#tab-clubs input[type="checkbox"],
#tab-clubs input[type="radio"],
.pupil-clubs-v2690 input[type="checkbox"] {
  width: 1.05rem;
  min-width: 1.05rem;
  height: 1.05rem;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
}

/* Add dates: the date and time boxes in a Stops/On row sized themselves to the
   whole row, so the radio beside them was forced onto its own line. */
#tab-clubs .clubs-segment-v2690 input[type="date"],
#tab-clubs .clubs-segment-v2690 input[type="time"] {
  width: auto;
  min-width: 9.5rem;
}

/* The preview list reads as rows of ticks and dates, not ticks above dates. */
#tab-clubs .clubs-dates-list-v2690 label { align-items: center; }

/* The short toolbar toggles now fit on one line, so keep them on one line and
   let the whole card wrap instead. Above the mobile breakpoint only: on a
   phone the card must still be allowed to break rather than scroll sideways.
   The long holiday checkbox in Add dates is not a toolbar card and still
   wraps, which is right for it. */
@media (min-width: 761px) {
  #tab-clubs .clubs-toolbar-v2690 .check-card > span,
  .pupil-clubs-v2690 .check-card > span { white-space: nowrap; }
}

/* A square swatch, not a full-width colour bar. */
#tab-clubs .clubs-field-v2690 input[type="color"] {
  width: 2.6rem;
  min-width: 2.6rem;
  height: 2.6rem;
  align-self: start;
  padding: .15rem;
  border-radius: .5rem;
  cursor: pointer;
}

/* Clear the function tab strip on the screens that open with a control rather
   than a heading: Manage Clubs / Manage Assessments (toolbar) and the two
   editors (the "< All clubs" / "< All assessments" head). */
#tab-clubs .clubs-toolbar-v2690 { margin-top: 1.1rem; }
#tab-clubs .clubs-club-head-v2690 { margin-top: 1.1rem; }

/* "Add a field" picks up the same rhythm as the requirement rows above it. */
#tab-clubs .clubs-field-list-v2690 + [data-field-add] { margin-top: .35rem; }

/* v269.6: the question inside a confirm dialog. Narrow enough to read in one
   go, with room under it before the Cancel / go-ahead pair. */
#tab-clubs .clubs-confirm-v2696 {
  margin: 0 0 1rem;
  max-width: 46ch;
  font-size: .95rem;
  line-height: 1.5;
}

/* ---------------------------------------------------------------------------
   v269.7: finding one child on a register, and important notes.
   --------------------------------------------------------------------------- */

#tab-clubs .clubs-find-v2697 {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  margin: .9rem 0 .6rem;
  padding: .65rem .8rem;
  border: 1px solid var(--club-line);
  border-radius: .6rem;
  background: #f8fbfe;
}
#tab-clubs .clubs-find-row-v2697 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem .9rem;
}
#tab-clubs .clubs-find-search-v2697 { flex: 1 1 11rem; min-width: 0; }
#tab-clubs .clubs-find-search-v2697 input { min-width: 0; }

/* One row of letters, wrapping. Deliberately not a scrolling strip: on a phone
   a letter you cannot see is a letter you will not press. */
#tab-clubs .clubs-letters-v2697 {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
  padding-top: .5rem;
  border-top: 1px solid var(--club-line);
}
#tab-clubs .clubs-letter-v2697 {
  min-width: 2.1rem;
  min-height: 2.1rem;
  padding: .2rem .4rem;
  border: 1px solid var(--club-line);
  border-radius: .4rem;
  background: #fff;
  color: var(--ink, #14213d);
  font-size: .85rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}
#tab-clubs .clubs-letter-v2697:hover { background: #eef4fb; }
#tab-clubs .clubs-letter-v2697.is-on {
  border-color: #d09a00;
  background: #f5c542;
  color: #111827;
}

#tab-clubs .clubs-showing-v2697:empty { display: none; }
#tab-clubs .clubs-showing-v2697 { margin: .1rem 0 .4rem; font-size: .88rem; }
#tab-clubs .clubs-none-v2697 { margin: .8rem 0; }

/* ------------------------------------------------------------------- notes */

#tab-clubs .clubs-notes-v2697 { display: flex; flex-direction: column; gap: .2rem; }
#tab-clubs .clubs-note-warn-v2697 {
  margin: .2rem 0 .6rem;
  padding: .55rem .7rem;
  border: 1px solid #e3b23c;
  border-left: 3px solid #d09a00;
  border-radius: 0 .45rem .45rem 0;
  background: #fdf6e3;
  color: #5c4405;
  font-size: .88rem;
  font-weight: 600;
  line-height: 1.45;
}
#tab-clubs .clubs-note-list-v2697 {
  list-style: none;
  margin: .6rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
#tab-clubs .clubs-note-list-v2697 > li {
  padding: .55rem .7rem;
  border: 1px solid var(--club-line);
  border-radius: .5rem;
  background: #fff;
}
#tab-clubs .clubs-note-list-v2697 > li p { margin: 0; }
#tab-clubs .clubs-note-list-v2697 > li p:first-child { white-space: pre-wrap; }

/* The register's last column now holds two links rather than one. */
#tab-clubs .clubs-reg-more-v2690 { display: flex; flex-wrap: wrap; gap: .15rem .6rem; align-items: baseline; }

@media (max-width: 760px) {
  #tab-clubs .clubs-find-search-v2697 { flex-basis: 100%; }
  #tab-clubs .clubs-letter-v2697 { min-width: 2.3rem; min-height: 2.3rem; }
}
