.coach-wrap { max-width: 960px; }
.coach-wrap form,
.coach-form { width: auto; max-width: 40rem; }
.coach-wrap button,
.coach-nav a { width: auto; }
.coach-nav { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 0 0 1rem; }
.coach-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.coach-card { border: 1px solid #ccc; padding: 0.75rem; }
.coach-studio { display: grid; grid-template-columns: 1.4fr 1fr; gap: 1rem; }
.coach-studio video,
.coach-play video,
.kd-ui video { width: 100%; height: auto; background: #111; }
.coach-form label { display: block; margin: 0.4rem 0; }
.coach-check { display: flex; gap: 0.4rem; align-items: center; }
.coach-filters { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: end; }
.coach-vo-panel,
.coach-study { margin-top: 0.75rem; }
.coach-flag { outline: 1px solid #a40; }
.coach-wrap [hidden] { display: none; }
.coach-wrap button:focus-visible,
.coach-wrap a:focus-visible,
.coach-wrap input:focus-visible,
.coach-wrap select:focus-visible,
.coach-wrap textarea:focus-visible { outline: 2px solid #222; outline-offset: 2px; }
body.app-shell .coach-wrap { padding-bottom: 1rem; }
@media (max-width: 800px) {
    .coach-grid,
    .coach-studio { grid-template-columns: 1fr; }
    .coach-filters { display: block; }
}
@media print {
    .coach-nav,
    .coach-noprint { display: none; }
}
.coach-catalog form.coach-setting { max-width: 46rem; }
.coach-catalog .coach-help {
    margin: 0.2rem 0 0.75rem;
    max-width: 46rem;
    color: var(--text-muted, #5d6b81);
    font-size: 0.92rem;
    line-height: 1.45;
}
.coach-catalog .coach-key {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.8rem;
    font-weight: 400;
    color: var(--text-muted, #5d6b81);
}
.coach-catalog h2 { margin: 1.4rem 0 0.4rem; font-size: 1.15rem; }
.coach-catalog h3 { margin: 0 0 0.35rem; font-size: 1.02rem; }
.coach-catalog .coach-card { margin: 0 0 0.75rem; }

/* ---- UI kit pages (div.kd-ui): coach catalog, coach admin pages, coaches list, coach profile ---- */
.kd-ui .coach-more { margin-top: 0.35rem; }
.kd-ui .coach-more > summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; font-size: 0.875rem; font-weight: 600; color: var(--text-link, #1f5fbf); }
.kd-ui .coach-more > .kd-hint { max-width: 46rem; padding: 0.15rem 0 0.6rem; line-height: 1.5; }
.kd-ui .coach-suffix { position: relative; }
.kd-ui .coach-suffix::after { content: attr(data-suffix); position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%); font-size: 0.875rem; font-weight: 600; color: var(--text-muted, #5d6b81); pointer-events: none; }
.kd-ui .coach-suffix input { padding-right: 5.5rem; }
.kd-ui .coach-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.kd-ui .coach-fieldset > legend { margin-bottom: 0.5rem; padding: 0; }
.kd-ui .coach-switch { display: flex; flex-direction: column; gap: 0.15rem; }
.kd-ui .coach-locked { padding: 0.5rem 0; border-bottom: 1px solid var(--border, #d8dee9); }
.kd-ui .coach-locked:last-child { border-bottom: 0; }
/* The Save button on a switch that saves by itself is only a fallback for a browser with no JavaScript. */
@media (scripting: enabled) { .kd-ui .coach-autosave-save { display: none; } }
.kd-ui .coach-dl { display: grid; gap: 0.6rem; margin: 0; }
.kd-ui .coach-dl dt { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted, #5d6b81); }
.kd-ui .coach-dl dd { margin: 0; overflow-wrap: anywhere; }
@media (min-width: 640px) { .kd-ui .coach-dl { grid-template-columns: 1fr 1fr; } }
.kd-ui .coach-list { display: flex; flex-direction: column; gap: 0.5rem; margin: 0; padding-left: 1.1rem; }
.kd-ui .coach-person { display: flex; flex-direction: column; gap: 0.6rem; }
.kd-ui .coach-person-top { display: flex; align-items: center; gap: 0.75rem; }
.kd-ui .coach-person-name { min-width: 0; }
.kd-ui .coach-person-name a { text-decoration: none; }
.kd-ui .coach-person-actions { margin-top: auto; }
.kd-ui .coach-photo { flex: none; width: 64px; height: 64px; border-radius: 50%; object-fit: cover; background: var(--bg-alt, #eef1f6); }
.kd-ui .coach-photo-none { display: inline-flex; align-items: center; justify-content: center; font-size: 1.5rem; font-weight: 700; color: var(--text-muted, #5d6b81); }
.kd-ui form.coach-price-form { width: 100%; max-width: 16rem; }
.kd-ui form.coach-price-form select { width: 100%; max-width: 100%; }
