.swim-class-toolbar { display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); margin-bottom:var(--space-5); }
.swim-class-toolbar-actions, .swim-class-card-actions, .swim-class-badges { display:flex; align-items:center; gap:var(--space-2); }
.swim-class-state-tabs { display:inline-flex; gap:2px; padding:3px; border-radius:8px; background:var(--color-surface-alt); }
.swim-class-state-tabs a { padding:5px 14px; border-radius:var(--radius-sm); color:var(--color-text-muted); font-size:13px; text-decoration:none; }
.swim-class-state-tabs a.active { background:var(--color-surface); box-shadow:var(--shadow-card); color:var(--color-text-primary); font-weight:600; }
.swim-class-card .detail-card-body { padding:var(--space-5) var(--space-6); }
.swim-class-card { min-height:0; }
.swim-class-card-header, .swim-class-offering-row, .swim-class-assignment-layout { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--space-4); }
.swim-class-card-header h2 { margin:0; color:var(--color-text-primary); font-size:16px; font-weight:700; }
.swim-class-badges { margin-top:6px; }
.swim-class-offering-list { margin-top:10px; }
.swim-class-offering-row { align-items:center; padding:var(--space-3) 0; border-bottom:1px solid var(--color-border); }
.swim-class-offering-summary { min-width:0; }
.swim-class-offering-summary h3 { margin:0; color:var(--color-text-primary); font-family:var(--font-sans); font-size:14px; font-weight:600; }
.swim-class-offering-subtitle, .swim-class-offering-meta { color:var(--color-text-muted); font-size:12.5px; }
.swim-class-offering-subtitle { margin-top:2px; }
.swim-class-offering-meta { display:flex; flex:0 0 auto; align-items:center; gap:10px; font-variant-numeric:tabular-nums; }
.swim-class-source-imported { background:var(--color-primary-light); color:var(--color-primary); }
.swim-class-assignment-copy { max-width:340px; }
.swim-class-assignment-copy h2 { margin:0 0 var(--space-1); font-size:15px; font-weight:600; }
.swim-class-assignment-copy p { margin:0; color:var(--color-text-muted); font-size:13px; line-height:1.5; }
.swim-class-assignment-form { display:grid; grid-template-columns:200px 200px 170px; gap:var(--space-3); align-items:end; }
.swim-class-assignment-form .form-label { margin-bottom:var(--space-1); color:var(--color-text-secondary); font-size:13px; font-weight:500; }
.swim-class-assignment-form .btn { width:100%; }
.swim-class-form-error { grid-column:1 / -1; }
.swim-class-form-error:empty { display:none; }
.swim-class-form-error.validation-summary-valid { display:none; }
.swim-class-empty-card .detail-card-body { padding:0; }
.swim-class-empty-card .empty-state { padding:var(--space-10) var(--space-8); }
.swim-class-choice-heading h2 { margin:0; font-size:16px; font-weight:600; }
.swim-class-choice-heading p { margin:var(--space-1) 0 0; color:var(--color-text-muted); }
.swim-class-choice-list { margin:var(--space-4) 0 0; padding:0; list-style:none; border-top:1px solid var(--color-border); }
.swim-class-choice-list li { display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); padding:var(--space-3) 0; border-bottom:1px solid var(--color-border); }
.swim-class-choice-list li:last-child { border-bottom:0; padding-bottom:0; }
.swim-class-choice-list strong, .swim-class-choice-list span { display:block; }
.swim-class-choice-list span { color:var(--color-text-muted); font-size:12.5px; }

@media (max-width:1199px) {
    .swim-class-assignment-layout, .swim-class-offering-row { flex-direction:column; }
    .swim-class-offering-meta { flex-wrap:wrap; }
}

@media (max-width:767px) {
    .swim-class-toolbar, .swim-class-card-header { align-items:stretch; flex-direction:column; }
    .swim-class-toolbar-actions, .swim-class-card-actions { flex-wrap:wrap; }
    .swim-class-assignment-form { grid-template-columns:1fr; width:100%; }
    .swim-class-choice-list li { align-items:stretch; flex-direction:column; }
}

.swim-class-detail-titlebar { display:flex; align-items:center; justify-content:space-between; gap:var(--space-5); margin-bottom:var(--space-5); }
.swim-class-detail-title { display:flex; align-items:baseline; gap:var(--space-4); min-width:0; }
.swim-class-detail-title h1 { margin:0; color:var(--color-text-primary); font-size:22px; font-weight:700; }
.swim-class-detail-title span { color:var(--color-text-muted); font-size:13px; }
.swim-class-offering-detail { min-width:0; max-width:100%; overflow:hidden; }
.swim-class-offering-detail .detail-card-body { padding:var(--space-5) var(--space-6); }
.swim-class-offering-heading-row { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:var(--space-5); }
.swim-class-offering-overview, .swim-class-offering-heading-row, .swim-class-offering-heading-row > * { min-width:0; max-width:100%; }
.swim-class-offering-heading-row > div:first-child { flex:1 1 280px; }
.swim-class-offering-heading { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-2); }
.swim-class-offering-heading h2 { margin:0; color:var(--color-text-primary); font-size:17px; font-weight:700; }
.swim-class-offering-description { margin-top:6px; color:var(--color-text-muted); font-size:13px; line-height:1.6; }
.swim-class-offering-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; flex:1 1 auto; gap:var(--space-2); }
.swim-class-offering-actions form { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; margin:0; }
.swim-class-offering-actions .btn { display:inline-flex; align-items:center; justify-content:center; height:38px; line-height:1; }
.swim-class-sync-toolbar-form { display:inline-flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; max-width:100%; }
.swim-class-sync-status { flex-basis:100%; margin-top:4px; text-align:right; }
.swim-class-offering-stats { display:flex; gap:28px; margin:var(--space-4) 0 0; padding:var(--space-4) 0 0; border-top:1px solid var(--color-border); }
.swim-class-offering-stats div { min-width:64px; }
.swim-class-offering-stats dt { color:var(--color-text-secondary); font-size:11px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; }
.swim-class-offering-stats dd { margin:2px 0 0; color:var(--color-text-primary); font-family:var(--font-heading); font-size:22px; font-weight:700; font-variant-numeric:tabular-nums; }
.swim-class-meetings-heading { padding:14px var(--space-4); border-top:1px solid var(--color-border); border-bottom:1px solid var(--color-border); }
.swim-class-meetings-heading h3 { margin:0; font-size:15px; font-weight:600; }
.swim-class-meetings-scroll { display:block; width:100%; min-width:0; max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; contain:inline-size layout; }
.swim-class-meetings-table { width:100%; min-width:860px; border-collapse:collapse; color:var(--color-text-primary); font-size:14px; }
.swim-class-meetings-table th { padding:12px var(--space-4); border-bottom:1px solid var(--color-border); color:var(--color-text-secondary); font-size:11px; font-weight:600; letter-spacing:.05em; text-align:left; text-transform:uppercase; white-space:nowrap; }
.swim-class-meetings-table td { padding:9px var(--space-4); border-bottom:1px solid var(--color-border); vertical-align:middle; }
.swim-class-meetings-table tbody tr:last-child td { border-bottom:0; }
.swim-class-meeting-actions { text-align:right; white-space:nowrap; }
.swim-class-meeting-actions .btn { padding:7px 14px; }
.swim-class-meeting-number { margin-left:12px; color:var(--color-text-muted); font-size:12px; font-variant-numeric:tabular-nums; }
.swim-class-needs-instructor { background:#fef9c3; color:#854d0e; }
.swim-class-roster-toggle { padding:0; border:0; background:transparent; color:inherit; font:inherit; font-variant-numeric:tabular-nums; text-decoration:underline; text-decoration-color:transparent; text-underline-offset:3px; }
.swim-class-roster-toggle:hover, .swim-class-roster-toggle:focus-visible { color:var(--color-primary); text-decoration-color:currentColor; }
.swim-class-instructor-panel td, .swim-class-roster-panel td { padding:0; background:var(--color-surface-alt); }
.swim-class-instructor-panel form, .swim-class-roster-content { min-width:0; max-width:100%; padding:var(--space-4) var(--space-4) 18px; }
.swim-class-instructor-panel-heading, .swim-class-roster-heading { display:flex; align-items:baseline; justify-content:space-between; gap:var(--space-4); margin-bottom:14px; }
.swim-class-instructor-panel-heading h4, .swim-class-roster-heading h4 { margin:0; font-size:14px; font-weight:600; }
.swim-class-instructor-panel-heading span { color:var(--color-text-muted); font-size:12px; }
.swim-class-instructor-layout { display:flex; align-items:flex-start; min-width:0; max-width:100%; gap:28px; }
.swim-class-instructor-layout > * { min-width:0; max-width:100%; }
.swim-class-instructor-combobox { position:relative; width:430px; min-width:0; max-width:100%; }
.swim-class-instructor-combobox .form-label { margin-bottom:4px; color:var(--color-text-secondary); font-size:13px; font-weight:500; }
.swim-class-instructor-combobox .form-control[aria-expanded="true"] { border-color:var(--color-primary); border-radius:var(--radius-sm) var(--radius-sm) 0 0; box-shadow:0 0 0 3px rgba(0,121,107,.15); }
.swim-class-instructor-listbox { width:100%; max-width:100%; max-height:360px; overflow-y:auto; border:1px solid var(--color-border); border-top:0; border-radius:0 0 var(--radius-sm) var(--radius-sm); background:var(--color-surface); box-shadow:var(--shadow-card); }
.swim-class-instructor-group-label { padding:6px 12px 3px; border-top:1px solid var(--color-border); background:var(--color-surface-alt); color:var(--color-text-muted); font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.swim-class-instructor-group-label:first-child { border-top:0; }
.swim-class-instructor-option { display:flex; align-items:flex-start; gap:9px; padding:7px 12px; cursor:pointer; }
.swim-class-instructor-option:hover, .swim-class-instructor-option.is-active, .swim-class-instructor-option.is-selected { background:var(--color-primary-light); outline:0; }
.swim-class-instructor-option-copy { display:flex; flex:1; align-items:baseline; min-width:0; gap:8px; }
.swim-class-instructor-option-copy strong { font-size:13.5px; font-weight:500; }
.swim-class-instructor-option.is-selected strong { font-weight:700; }
.swim-class-availability-text { font-size:11.5px; }
.swim-class-availability-text.is-available { color:#166534; }
.swim-class-availability-text.is-unavailable { display:block; color:#854d0e; line-height:1.35; }
.swim-class-instructor-option:has(.is-unavailable) .swim-class-instructor-option-copy { display:block; }
.swim-class-status-dot { display:inline-block; flex:0 0 8px; width:8px; height:8px; margin-top:6px; border-radius:50%; }
.swim-class-status-dot.is-available { background:#166534; }
.swim-class-status-dot.is-unavailable { background:#854d0e; }
.swim-class-instructor-no-results { padding:12px; color:var(--color-text-muted); font-size:12.5px; }
.swim-class-instructor-list-footer { padding:6px 12px; border-top:1px solid var(--color-border); background:var(--color-surface-alt); color:var(--color-text-muted); font-size:11px; }
.swim-class-instructor-legend { max-width:380px; color:var(--color-text-muted); font-size:12.5px; line-height:1.6; }
.swim-class-instructor-legend > div { display:flex; align-items:flex-start; gap:8px; margin-bottom:8px; }
.swim-class-instructor-legend p { margin:12px 0 0; }
.swim-class-instructor-buttons { display:flex; gap:10px; margin-top:var(--space-4); }
.swim-class-excluded-meeting td { color:var(--color-text-muted); }
.swim-class-excluded-meeting td:first-child span { text-decoration:line-through; }
.swim-class-legacy-sessions { margin-top:var(--space-5); }
.swim-class-legacy-sessions summary { cursor:pointer; }

@media (max-width:991px) {
    .swim-class-offering-heading-row, .swim-class-instructor-layout { flex-direction:column; }
    .swim-class-offering-actions { flex-wrap:wrap; }
    .swim-class-instructor-combobox { width:100%; }
    .swim-class-instructor-legend { max-width:none; }
}

@media (max-width:767px) {
    .swim-class-detail-titlebar, .swim-class-detail-title, .swim-class-instructor-panel-heading { align-items:stretch; flex-direction:column; }
    .swim-class-detail-title { gap:var(--space-1); }
    .swim-class-detail-titlebar .btn { align-self:flex-start; }
    .swim-class-offering-actions { align-items:stretch; flex-direction:column; width:100%; }
    .swim-class-offering-actions .btn { width:100%; }
    .swim-class-offering-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-3); }
    .swim-class-instructor-buttons { align-items:stretch; flex-direction:column; }
}
