.trainer-roster{margin:24px 0;color:var(--ui-ink,#17213a)}
.trainer-roster-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.trainer-roster-heading h2{font-size:clamp(24px,3vw,32px);margin:3px 0 10px}.trainer-roster-heading p{margin:0 0 8px;line-height:1.6}
.trainer-roster button,.trainer-roster select,.trainer-roster input{min-height:44px;font-size:16px}.trainer-class-picker,.trainer-roster-search{display:grid;gap:8px;max-width:100%;font-weight:600;margin:20px 0}.trainer-class-picker select,.trainer-roster-search input,.trainer-roster textarea{width:100%;max-width:100%;background:var(--ui-surface,#fff);color:inherit;border:1px solid var(--ui-line,#d9dfea);border-radius:9px;padding:11px 12px}.trainer-roster textarea{font-size:16px;min-height:88px}
.trainer-class-details{display:grid;gap:5px;line-height:1.6}.trainer-roster-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:20px 0}.trainer-roster-totals>div{border:1px solid var(--ui-line,#d9dfea);border-radius:12px;padding:16px;background:var(--ui-surface,#fff);display:grid;gap:7px}.trainer-roster-totals strong{font-size:28px;line-height:1.2}.trainer-roster-totals span,.trainer-roster-caption,.trainer-roster-updated{font-size:14px;line-height:1.65}.trainer-roster-updated{margin-top:20px}
.trainer-roster-columns,.trainer-participant{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(0,1.15fr) minmax(0,.85fr);gap:18px;padding:18px 0}.trainer-roster-columns{font-size:13px;font-weight:700;text-transform:uppercase;border-bottom:1px solid var(--ui-line,#d9dfea)}.trainer-participant{border-bottom:1px solid var(--ui-line,#d9dfea)}.trainer-participant>div{min-width:0;overflow-wrap:anywhere}.trainer-participant h3{font-size:17px;margin:0 0 6px}.trainer-participant p{margin:6px 0;line-height:1.6}.trainer-participant small{display:block;margin-top:8px;font-size:13px;line-height:1.6}.trainer-participant a{line-height:1.8;overflow-wrap:anywhere;color:var(--ui-link,#285ad7)}.trainer-participant details{margin-top:12px}.trainer-participant summary,.trainer-confirmation-review>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;line-height:1.5}.trainer-mobile-label{display:none}.trainer-confirmed-badge{display:inline-block;font-size:13px;font-weight:700;border:1px solid var(--ui-line,#a7c4f6);background:var(--ui-blue-soft,#edf3ff);color:inherit;border-radius:20px;padding:6px 11px}
.trainer-roster-empty{padding:24px 0;line-height:1.7}.trainer-roster-empty h3{margin:0 0 8px}.trainer-roster-warning{padding:14px 16px;border:1px solid #b58224;background:var(--ui-surface,#fffbef);border-radius:10px;line-height:1.65;margin:12px 0}.trainer-confirmation-review{margin-top:24px;border-top:1px solid var(--ui-line,#d9dfea);padding-top:14px}.trainer-confirmation-list{display:grid;gap:16px}.trainer-registration-review{border:1px solid var(--ui-line,#d9dfea);border-radius:12px;padding:18px;overflow-wrap:anywhere}.trainer-registration-review h3{margin:0 0 8px}.trainer-registration-review .check{display:flex;gap:10px;align-items:flex-start}.trainer-registration-review .check input{min-height:24px;width:24px;flex:0 0 24px}.trainer-registration-review .check{min-height:44px;padding:10px 0;line-height:1.6}.trainer-registration-review .check input{margin-top:1px}.trainer-roster[aria-busy=true]{opacity:.8}
.trainer-roster-actions{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0}.registration-filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:14px;align-items:end;margin-top:22px}.registration-filters label{display:grid;gap:8px;min-width:0;font-weight:600}.registration-filters select,.registration-assignment select{width:100%;max-width:100%;padding:12px;background:var(--ui-surface,#fff);color:inherit;border:1px solid var(--ui-line,#d9dfea);border-radius:9px}.registration-download{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.registration-download p{font-size:14px}.registration-card{border:1px solid var(--ui-line,#d9dfea);border-radius:14px;margin-top:20px;padding:22px;overflow-wrap:anywhere}.registration-card-top{display:flex;gap:18px;justify-content:space-between;align-items:flex-start}.registration-card h3{font-size:21px;line-height:1.4;margin:4px 0 8px}.registration-card p{line-height:1.6;margin:6px 0}.registration-status{border:1px solid var(--ui-line,#d9dfea);border-radius:24px;padding:7px 12px;font-size:14px;font-weight:700}.registration-status[data-status=Confirmed]{background:var(--ui-blue-soft,#edf3ff)}.registration-facts{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:20px 0}.registration-facts>div{min-width:0}.registration-facts .trainer-mobile-label{display:block}.registration-card a{color:var(--ui-link,#285ad7);display:block;min-height:44px;padding:10px 0;overflow-wrap:anywhere}.registration-participants>summary,.registration-assignment>summary{min-height:44px;line-height:1.6;cursor:pointer;padding:10px 0;font-weight:700}.registration-participants,.registration-assignment{border-top:1px solid var(--ui-line,#d9dfea);margin-top:14px;padding-top:8px}.registration-person{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:12px 0;border-bottom:1px solid var(--ui-line,#d9dfea)}.registration-person>div{min-width:0}.registration-client-link{width:fit-content;margin-top:16px;padding:10px 18px!important}.registration-assignment .check{display:flex;gap:12px;align-items:flex-start;line-height:1.6}.registration-assignment .check input{width:24px;min-height:24px;flex:0 0 24px}
@media(max-width:1080px){.registration-filters{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.trainer-roster-heading{flex-direction:column;gap:12px}.trainer-roster-heading button{width:100%}.trainer-roster-actions{width:100%}.trainer-roster-columns{display:none}.trainer-participant{grid-template-columns:minmax(0,1fr);gap:16px;padding:20px 0}.trainer-mobile-label{display:block;font-size:12px;text-transform:uppercase;font-weight:700;margin-bottom:6px;letter-spacing:.04em}.trainer-participant h3{font-size:19px}.trainer-participant small{font-size:14px}.trainer-participant a{display:inline-block;min-height:44px;padding:10px 0}.trainer-roster-totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.trainer-roster-totals>div{padding:13px}.trainer-roster-totals span{font-size:13px}.trainer-registration-review{padding:14px}.trainer-roster .centre-form button{width:100%}.registration-filters{grid-template-columns:minmax(0,1fr)}.registration-card{padding:16px}.registration-card-top{flex-direction:column;gap:8px}.registration-facts,.registration-person{grid-template-columns:minmax(0,1fr);gap:12px}.registration-download>button{width:100%}.registration-client-link{width:100%}.registration-card h3{font-size:20px}}
@media print{.trainer-class-picker,.trainer-roster-search,.trainer-confirmation-review,.trainer-roster-heading button{display:none}.trainer-roster{break-inside:auto}.trainer-participant{break-inside:avoid}}
