.training-page { min-height:100vh; }
.training-page [hidden] { display:none!important; }
.training-main { max-width:1224px;margin:0 auto;padding:125px 32px 56px;min-height:72vh; }
.training-heading { display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:32px; }
.training-eyebrow { color:var(--sm-text-muted);font-size:10px;letter-spacing:.15em;font-weight:600;margin:0 0 13px; }
.training-heading h1 { margin:0 0 12px;font-size:clamp(32px,4vw,48px);font-weight:600;letter-spacing:-.045em;line-height:1.2; }
.training-heading h1>span { color:var(--sm-brand); }
.training-heading>div>p:last-child,.training-muted { color:var(--sm-text-muted);font-size:12px;line-height:1.8; }
.training-heading>div>p:last-child { margin:0; }
.training-date { color:var(--sm-text-muted);font-size:12px;border:1px solid var(--sm-line);padding:10px 14px;border-radius:30px;white-space:nowrap; }
.training-tabs { display:flex;gap:30px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--sm-line);margin-bottom:26px; }
.training-tabs button { flex-shrink:0;font:inherit;color:var(--sm-text-muted);background:none;border:0;padding:12px 0 16px;font-size:13px;position:relative;cursor:pointer; }
.training-tabs button[aria-pressed="true"] { color:var(--sm-text); }
.training-tabs button[aria-pressed="true"]:after { content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--sm-brand); }
.training-hero-grid { display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:18px; }
.training-today,.training-goal-card,.training-panel { border:1px solid var(--sm-line);border-radius:18px;padding:28px;min-width:0; }
.training-today { position:relative;isolation:isolate;overflow:hidden;min-height:235px;background:linear-gradient(115deg,rgba(220,20,60,.13),rgba(220,20,60,.025));border-color:rgba(220,20,60,.2); }
.training-today h2 { font-size:28px;font-weight:500;margin:0 0 12px;letter-spacing:-.025em;line-height:1.4;max-width:80%;overflow-wrap:anywhere; }
.training-today p:not(.training-eyebrow) { font-size:12px;color:var(--sm-text-muted);line-height:1.8;max-width:82%;margin:0 0 24px; }
.training-today .training-button { position:relative;z-index:1; }
.training-court { position:absolute;width:220px;right:-30px;bottom:5px;z-index:-1;opacity:.13;fill:none;stroke:var(--sm-text);stroke-width:1.3; }
.training-court circle { fill:var(--sm-brand);stroke:none; }
.training-goal-card { display:flex;flex-direction:column;justify-content:space-between;background:rgba(var(--sm-ink-rgb),.018); }
.training-goal-card .training-section-top { margin-bottom:20px; }
.training-goal-card .training-eyebrow { margin:0; }
.training-goal-card h3 { margin:8px 0 13px;font-size:21px;line-height:1.6;font-weight:500;overflow-wrap:anywhere; }
.training-goal-card .training-muted { margin:14px 0 0; }
.training-pill { display:inline-flex;align-items:center;gap:6px;width:fit-content;color:var(--sm-text-muted);font-size:10px;line-height:1.5;padding:5px 9px;border-radius:20px;border:1px solid var(--sm-line); }
.training-pill[data-status="active"] { color:var(--sm-brand);border-color:rgba(220,20,60,.3); }
.training-pill[data-status="completed"] { color:#70b99b; }
:root[data-theme="light"] .training-pill[data-status="completed"] { color:#317759; }
.training-summary { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:23px 0 34px; }
.training-stat { padding:16px 0;border-bottom:1px solid var(--sm-line);min-width:0; }
.training-stat p { color:var(--sm-text-muted);font-size:11px;margin:0 0 10px; }
.training-stat strong { font-size:29px;font-weight:500;letter-spacing:-.04em;font-variant-numeric:tabular-nums; }
.training-stat small { color:var(--sm-text-muted);font-size:10px;margin-left:7px; }
.training-section { margin-top:32px;min-width:0; }
.training-section-top { display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px; }
.training-section-top h2 { font-size:20px;line-height:1.5;font-weight:500;letter-spacing:-.02em;margin:0; }
.training-section-top p { margin-top:6px;margin-bottom:0; }
.training-section-top .training-eyebrow { margin:0 0 8px; }
.training-plan-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px; }
.training-card { border:1px solid var(--sm-line);border-radius:14px;padding:20px;background:rgba(var(--sm-ink-rgb),.015);min-width:0;display:flex;flex-direction:column; }
.training-card-top { display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px; }
.training-card h3 { font-size:15px;font-weight:500;line-height:1.65;overflow-wrap:anywhere;margin:0 0 10px; }
.training-card .training-muted { margin:0 0 18px;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden; }
.training-card-meta { display:flex;flex-wrap:wrap;gap:7px 14px;font-size:11px;color:var(--sm-text-muted);margin-bottom:15px; }
.training-card-actions { display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:auto; }
.training-card-actions>.training-button:first-child { flex:1; }
.training-lower-grid { display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:32px; }
.training-list { display:grid;gap:12px; }
.training-record { border:1px solid var(--sm-line);border-radius:14px;padding:21px;min-width:0; }
.training-record-top { display:flex;justify-content:space-between;align-items:flex-start;gap:15px; }
.training-record h3 { font-size:15px;font-weight:500;margin:9px 0 7px;line-height:1.5;overflow-wrap:anywhere; }
.training-record p { white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 0; }
.training-record .training-card-actions { margin-top:15px; }
.training-record .training-card-actions>.training-button:first-child { flex:0 1 auto; }
.training-record-minute { font-size:23px;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:-.03em; }
.training-record-minute small { margin-left:4px;font-size:10px;color:var(--sm-text-muted); }
.training-private { display:inline-flex;align-items:center;gap:5px;color:var(--sm-text-muted);font-size:10px; }
.training-empty { grid-column:1/-1;text-align:center;padding:35px 20px;border:1px dashed var(--sm-line);border-radius:14px;color:var(--sm-text-muted);font-size:12px;line-height:1.8; }
.training-empty p { margin:0 0 10px; }
.training-search { display:flex;gap:9px;margin-bottom:18px;max-width:560px; }
.training-main input,.training-main select,.training-dialog :is(input,textarea,select) { border:1px solid var(--sm-line);border-radius:9px;padding:11px 12px;color:var(--sm-text);background:var(--sm-input-surface,rgba(var(--sm-ink-rgb),.025));font:inherit;font-size:13px;line-height:1.6;min-width:0;width:100%; }
.training-search input { flex:1; }
.training-search button { flex-shrink:0; }
.training-categories { display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px; }
.training-categories button { border-radius:30px;min-height:35px;font-size:11px;padding:7px 13px; }
.training-categories button[aria-pressed="true"] { background:var(--sm-text);color:var(--sm-modal-surface);border-color:var(--sm-text); }
.training-technique-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px; }
.training-technique-number { font:500 11px/1 sans-serif;letter-spacing:.08em;color:var(--sm-text-muted); }
.training-technique-card { min-height:235px; }
.training-technique-card .training-card-actions { justify-content:space-between; }
.training-favorite-button { display:inline-flex;align-items:center;gap:5px; }
.training-favorite-button[aria-pressed="true"] { color:var(--sm-brand); }
.training-pagination { display:flex;justify-content:center;align-items:center;gap:14px;margin-top:22px;font-size:12px;color:var(--sm-text-muted); }
.training-progress-grid { display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px; }
.training-panel h3 { font-size:16px;font-weight:500;margin:0 0 26px; }
.training-daily-chart { display:flex;align-items:flex-end;gap:4px;height:180px;border-bottom:1px solid var(--sm-line); }
.training-day { flex:1;min-width:0;position:relative;height:100%;display:flex;align-items:flex-end; }
.training-day-bar { width:100%;border-radius:3px 3px 0 0;background:var(--sm-brand);min-height:3px;opacity:.75; }
.training-day:focus .training-day-tip,.training-day:hover .training-day-tip { display:block; }
.training-day-tip { display:none;position:absolute;left:50%;bottom:100%;transform:translateX(-50%);background:var(--sm-modal-surface);border:1px solid var(--sm-line);border-radius:5px;padding:5px;white-space:nowrap;font-size:10px;z-index:1; }
.training-day:first-child .training-day-tip { left:0;transform:none; }.training-day:last-child .training-day-tip { left:auto;right:0;transform:none; }
.training-focus-list { display:grid;gap:18px; }.training-focus-label { display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:9px; }
.training-focus-meter { height:4px;background:rgba(var(--sm-ink-rgb),.06);border-radius:4px;overflow:hidden; }.training-focus-meter span { display:block;height:100%;background:var(--sm-brand); }
.training-gate { display:grid;place-content:center;justify-items:center;gap:15px;min-height:350px;text-align:center;border-block:1px solid var(--sm-line);padding:28px; }
.training-gate h2 { font-weight:500;font-size:22px;margin:0; }.training-gate p { font-size:12px;color:var(--sm-text-muted);line-height:1.8; }
.training-loader { width:22px;height:22px;border:2px solid var(--sm-line);border-top-color:var(--sm-brand);border-radius:50%;animation:training-spin .8s linear infinite; }
.training-notice { padding:13px 15px;border:1px solid var(--sm-line);border-left:2px solid var(--sm-brand);border-radius:8px;margin-bottom:22px;font-size:12px;line-height:1.7; }
.training-dialog { box-sizing:border-box;width:min(650px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow-y:auto;background:var(--sm-modal-surface);color:var(--sm-text);border:1px solid var(--sm-line);border-radius:20px;padding:27px;box-shadow:0 20px 100px rgba(0,0,0,.35); }
.training-dialog::backdrop { background:rgba(0,0,0,.6);backdrop-filter:blur(5px); }.training-dialog>header { display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px; }.training-dialog h2 { font-size:21px;font-weight:500;line-height:1.5;margin:0; }
.training-dialog h3 { font-size:15px;font-weight:500;margin:23px 0 12px; }.training-field { margin-bottom:17px; }.training-field label { display:block;font-size:12px;margin-bottom:8px; }.training-field textarea { resize:vertical;min-height:94px; }.training-field-row { display:grid;grid-template-columns:1fr 1fr;gap:16px; }.training-field-row .training-field { min-width:0; }
.training-dialog-actions { display:flex;justify-content:flex-end;flex-wrap:wrap;gap:9px;margin-top:22px; }.training-dialog-actions .training-text-button { margin-right:auto; }.training-error { font-size:12px;line-height:1.8;color:#ed8295; }.training-error:empty { display:none; }:root[data-theme="light"] .training-error { color:#a51030; }
.training-detail-content { white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.9; }.training-technique-steps { padding-left:21px;font-size:13px;line-height:1.9; }.training-technique-steps li { margin-bottom:9px; }
.training-media-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0; }.training-media-item { min-width:0;position:relative; }.training-media-item :is(img,video) { width:100%;aspect-ratio:1;object-fit:cover;border:1px solid var(--sm-line);border-radius:10px; }.training-media-item button { position:absolute;right:4px;top:4px;background:rgba(0,0,0,.7);color:#fff;border:0;border-radius:50%;width:27px;height:27px;cursor:pointer; }.training-media-grid:empty { display:none; }.training-media-grid[data-count="1"] { grid-template-columns:minmax(0,1fr); }.training-media-grid[data-count="1"] :is(img,video) { max-height:360px;aspect-ratio:auto;object-fit:contain; }
.training-share-preview { border:1px solid var(--sm-line);border-radius:10px;padding:16px;margin:18px 0;max-height:260px;overflow:auto;white-space:pre-wrap;font-size:12px;line-height:1.8;overflow-wrap:anywhere; }
.training-main :is(button,a,input,select):focus-visible,.training-dialog :is(button,a,input,textarea,select):focus-visible { outline:2px solid var(--sm-accent);outline-offset:3px; }
.training-sr-only { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap; }
@keyframes training-spin { to { transform:rotate(360deg); } }
@media(max-width:900px) { .training-main { padding-inline:24px; }.training-hero-grid { grid-template-columns:1.4fr 1fr; }.training-today,.training-goal-card { padding:22px; }.training-plan-grid,.training-technique-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.training-lower-grid { gap:20px; }.training-progress-grid { grid-template-columns:1fr; } }
@media(max-width:600px) { .training-main { padding:100px 18px 25px; }.training-heading { align-items:flex-start;gap:14px;margin-bottom:8px; }.training-heading h1 { font-size:34px; }.training-heading>div>p:last-child { max-width:225px;font-size:11px; }.training-date { font-size:9px;padding:8px 9px;margin-top:32px; }.training-tabs { gap:24px;margin-bottom:20px; }.training-tabs button { font-size:12px; }.training-hero-grid,.training-lower-grid { grid-template-columns:1fr;gap:14px; }.training-today { min-height:223px; }.training-today h2 { font-size:25px; }.training-goal-card { padding:19px 21px; }.training-goal-card .training-section-top { margin-bottom:8px; }.training-goal-card h3 { font-size:17px;margin:7px 0; }.training-goal-card .training-muted { margin-top:9px; }.training-summary { grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 22px;margin:13px 0 22px; }.training-stat { padding:17px 0; }.training-stat strong { font-size:27px; }.training-section { margin-top:26px; }.training-section-top { gap:12px;margin-bottom:16px;align-items:flex-start; }.training-section-top h2 { font-size:18px; }.training-section-top>.training-button { padding:9px 11px;white-space:nowrap; }.training-plan-grid,.training-technique-grid { grid-template-columns:1fr;gap:12px; }.training-card { padding:19px; }.training-technique-card { min-height:0; }.training-card h3 { font-size:15px; }.training-card-top { margin-bottom:11px; }.training-record { padding:18px; }.training-dialog { padding:20px;max-height:calc(100dvh - 28px);width:calc(100vw - 24px);border-radius:16px; }.training-dialog h2 { font-size:19px; }.training-dialog-actions .training-button { flex:1; }.training-panel { padding:22px 18px; }.training-field-row { gap:12px; }.training-categories { gap:6px; }.training-categories button { font-size:10px;padding:7px 10px; } }
@media(prefers-reduced-motion:reduce) { .training-button { transition:none; }.training-loader { animation:none; } }

/* Training follows the shared hero, moving tab indicator and return-bar system. */
.training-page { --hero-background-photo:url('/_static/repair-20261015-r130/assets/hero/serve.webp');--hero-background-position:center 56%; }
.training-main { max-width:none;padding:0 0 48px; }
#training-workspace { max-width:1300px;margin:0 auto;padding:0; }
#training-browse { min-height:55vh; }
#training-controls-anchor { position:sticky;top:var(--training-sticky-top,var(--sm-navbar-bottom,96px));z-index:54;overflow-anchor:none;margin-bottom:8px; }
.training-controls { position:relative;z-index:1;background:transparent;border:0;border-radius:0;transition:background-color .16s; }
.training-controls.is-fixed { background:var(--sm-sticky-surface);backdrop-filter:var(--sm-sticky-blur);-webkit-backdrop-filter:var(--sm-sticky-blur); }
.training-control-row { display:flex;align-items:center;gap:18px;min-height:60px;padding:4px 0; }
.training-tabs { flex:0 0 auto;display:flex;gap:4px;margin:0;border:0;max-width:100%; }
.training-tabs button { flex:0 0 auto;padding:8px 13px;min-height:44px;font-size:13px; }
.training-tabs button[aria-pressed="true"]::after { content:none; }
.training-toolbar { display:flex;align-items:center;justify-content:flex-end;flex:1;gap:12px;min-width:0;margin:0;padding:0;border:0;background:transparent; }
.training-filter-toggle { display:flex;align-items:center;gap:7px;border:0;min-height:44px;padding:8px;background:transparent;color:var(--sm-text-muted);font:inherit;font-size:13px;white-space:nowrap;cursor:pointer; }
.training-filter-toggle>i:last-child { font-size:9px;transition:transform .2s; }.training-filter-toggle[aria-expanded="true"]>i:last-child { transform:rotate(180deg); }
#training-filter-count { display:grid;place-items:center;min-width:16px;height:16px;border-radius:50%;font-size:9px;color:var(--sm-text);background:rgba(var(--sm-ink-rgb),.08); }
.training-active-filters { font-size:11px;color:var(--sm-text-muted);white-space:nowrap; }
.training-search { display:flex;align-items:center;flex:0 1 265px;gap:0;position:relative;min-width:135px;margin:0;padding:0; }
.training-search input { background:transparent;border:0;border-radius:8px;padding:10px 42px 10px 12px;font-size:13px;min-height:40px; }
.training-search input:focus { background:rgba(var(--sm-ink-rgb),.025);box-shadow:inset 0 -1px 0 var(--sm-field-line);outline:0; }
.training-search-submit { position:absolute;right:2px;top:0;bottom:0;width:38px;padding:0;border:0;border-radius:8px;color:var(--sm-text-muted);background:transparent;cursor:pointer; }
.training-search-submit:hover { color:var(--sm-text); }
.training-filter-panel-reveal { padding:12px 14px 14px;border:0;border-top:1px solid var(--sm-line);max-height:min(420px,50dvh);overflow:auto;overscroll-behavior:contain; }
.training-filter-panel-reveal > * { animation:training-reveal .2s ease both; }
.training-library-modes { display:flex;width:fit-content;margin:0 0 15px;gap:4px; }
.training-library-modes button { padding:8px 12px;font:inherit;font-size:12px;cursor:pointer; }
.training-filter-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px; }
.training-filter-grid>label,.training-filter-field { display:grid;align-content:start;gap:9px;color:var(--sm-text-muted);font-size:12px;min-width:0; }
.training-filter-grid select { font-size:13px;min-height:44px;padding:10px; }
.training-grip-switch { display:flex;gap:4px; }
.training-grip-switch button { flex:1;font:inherit;font-size:13px;padding:8px 12px;cursor:pointer; }
#training-filter-reset { display:flex;margin:14px 0 0 auto;font-size:12px;min-height:36px; }
.training-breadcrumb { display:flex;align-items:center;min-height:45px;margin:0 0 13px; }
.training-breadcrumb button { font-size:12px; }
.training-catalog-heading { display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin:25px 0 23px; }
.training-catalog-heading h2 { margin:0;font-size:30px;font-weight:600;line-height:1.35;letter-spacing:-.035em; }
.training-result-count { color:var(--sm-text-muted);font-size:11px;margin:0;line-height:1.7; }
.training-catalog-intro:empty { display:none; }.training-catalog-intro { max-width:760px;margin:-10px 0 22px; }.training-catalog-intro p { margin:0;font-size:12px; }
.training-catalog-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px; }
.training-category-card { position:relative;display:flex;flex-direction:column;align-items:flex-start;text-align:left;min-width:0;min-height:162px;padding:25px;border:1px solid var(--sm-line);border-radius:14px;background:rgba(var(--sm-ink-rgb),.015);font:inherit;color:var(--sm-text);cursor:pointer;transition:background .2s,border-color .2s; }
.training-category-card:hover { background:rgba(var(--sm-ink-rgb),.04);border-color:rgba(var(--sm-ink-rgb),.2); }
.training-category-card>i { position:absolute;right:24px;top:27px;color:var(--sm-brand);font-size:17px; }
.training-category-title { font-size:21px;font-weight:550;line-height:1.4;margin:0 30px 11px 0;letter-spacing:-.03em; }
.training-category-summary { color:var(--sm-text-muted);font-size:11px;line-height:1.7;max-width:100%;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden; }
.training-category-meta { display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:auto;padding-top:20px;gap:10px;font-size:11px;color:var(--sm-text-muted); }
.training-category-arrow { font:20px/1 sans-serif;color:var(--sm-text-muted); }
.training-catalog-grid.is-technique-list { display:flex;flex-direction:column;gap:0;border-top:1px solid var(--sm-line); }
.training-technique-row { display:flex;align-items:center;justify-content:space-between;gap:30px;padding:23px 4px;text-align:left;border:0;border-bottom:1px solid var(--sm-line);background:transparent;font:inherit;color:var(--sm-text);cursor:pointer;transition:background .2s; }
.training-technique-row:hover { background:rgba(var(--sm-ink-rgb),.025); }
.training-technique-row-copy { display:grid;gap:8px;min-width:0; }.training-technique-title { font-size:21px;font-weight:550;line-height:1.45;letter-spacing:-.025em; }.training-technique-excerpt { font-size:12px;color:var(--sm-text-muted);line-height:1.7;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden; }
.training-technique-row-meta { display:flex;align-items:center;gap:23px;flex-shrink:0; }
.training-catalog-footnote { display:flex;align-items:center;gap:9px;margin:24px 0 0;color:var(--sm-text-muted);font-size:10px; }.training-catalog-footnote p { margin:0;line-height:1.8; }
.training-overview-date { display:flex;justify-content:flex-end;margin-bottom:20px; }.training-date { margin:0; }
.training-section-top h2 { font-size:25px;font-weight:550; }
.training-detail-navigation { display:flex;align-items:center;justify-content:space-between;gap:20px;width:100vw;margin:0 calc(50% - 50vw);padding:8px max(16px,calc((100vw - 960px)/2));border-radius:0 0 14px 14px; }
#training-detail-body { max-width:960px;margin:0 auto;padding:35px 0 20px;animation:training-reveal .23s ease both; }
#training-detail-status { max-width:960px;margin:18px auto 0; }
.training-technique-heading { position:relative;padding:0 220px 30px 0;border-bottom:1px solid var(--sm-line); }
.training-catalog-detail-meta { display:flex;align-items:center;gap:7px;margin-bottom:16px; }
.training-technique-heading h2 { font-size:36px;font-weight:600;line-height:1.35;letter-spacing:-.04em;margin:0 0 14px; }
.training-detail-lead { font-size:14px;line-height:1.9;color:var(--sm-text-muted);margin:0; }
.training-technique-heading>.btn { position:absolute;right:0;top:45px;min-width:175px;font-size:13px; }
.training-detail-facts { display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:25px 0;border-bottom:1px solid var(--sm-line); }.training-detail-facts h3 { font-size:12px;font-weight:500;color:var(--sm-text-muted);margin:0 0 10px; }.training-detail-facts p { font-size:14px;line-height:1.85;margin:0; }
.training-technique-columns { display:grid;grid-template-columns:1fr 1fr;column-gap:55px;padding:8px 0 25px;border-bottom:1px solid var(--sm-line); }.training-instruction-section { min-width:0;margin-top:24px; }.training-instruction-section h3 { font-size:21px;font-weight:550;line-height:1.5;margin:0 0 16px; }.training-instruction-section .training-technique-steps { font-size:14px;line-height:1.95;padding-left:20px;margin:0; }.training-instruction-section li { padding-left:4px;margin-bottom:12px; }.training-instruction-section.is-practice { grid-column:2;grid-row:1/3; }.training-instruction-section.is-mistakes h3 { color:var(--sm-text-muted);font-size:17px; }
.training-reading { border-bottom:1px solid var(--sm-line);padding:17px 0;color:var(--sm-text-muted); }.training-reading summary { min-height:30px;font-size:12px;line-height:30px;cursor:pointer;width:fit-content; }.training-reading[open] summary { margin-bottom:12px; }.training-reading .training-detail-content { margin:0;font-size:12px; }
.training-source-links { display:flex;flex-wrap:wrap;gap:10px 25px; }.training-source-links a,.training-source-link { color:var(--sm-text-muted);font-size:11px;line-height:1.8;text-underline-offset:4px; }.training-source-links a:hover { color:var(--sm-text); }
.training-dialog { padding:0 26px 26px;overscroll-behavior:contain;border-radius:20px; }.training-dialog>header { position:sticky;top:0;z-index:3;margin:0 -26px 24px;padding:20px 22px 17px 26px;background:var(--sm-modal-surface);border-bottom:1px solid var(--sm-line); }.training-dialog h2 { font-size:21px;font-weight:550; }.training-dialog .training-icon-button { width:44px;height:44px;min-height:44px;border:0;border-radius:50%;background:transparent;font-size:15px;color:var(--sm-text-muted); }.training-dialog .training-icon-button:hover { color:var(--sm-text);background:rgba(var(--sm-ink-rgb),.06); }.training-dialog-actions { position:sticky;bottom:-26px;padding:17px 0 0;background:var(--sm-modal-surface);gap:10px; }.training-dialog-actions .training-button { min-height:44px; }.training-dialog input,.training-dialog textarea,.training-dialog select { font-size:14px;min-height:44px; }.training-dialog[open] { animation:training-reveal .2s ease both; }
.training-skeleton-hero { min-height:400px;box-sizing:border-box;display:flex;align-items:center;flex-direction:column;gap:22px;padding:120px 20px 45px; }
.training-skeleton { display:block;position:relative;overflow:hidden;border-radius:8px;background:rgba(var(--sm-ink-rgb),.065); }.training-skeleton::after { content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(var(--sm-ink-rgb),.055),transparent 80%);transform:translateX(-100%);animation:training-shimmer 1.8s ease-in-out infinite; }.training-skeleton-eyebrow { display:none; }.training-skeleton-title { width:250px;max-width:80%;height:48px; }.training-skeleton-copy { width:360px;max-width:85%;height:25px; }.training-skeleton-actions { display:grid;grid-template-columns:1fr 1fr;gap:16px;width:min(100%,440px);margin-top:10px; }.training-skeleton-actions>span { height:50px; }
.training-skeleton-body { max-width:1200px;margin:0 auto;padding:12px 0; }.training-skeleton-toolbar { height:48px;margin-bottom:26px; }.training-skeleton-tabs { display:none; }.training-skeleton-body>.training-skeleton-title { width:130px;height:32px;margin-bottom:23px; }.training-skeleton-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px; }.training-skeleton-card { height:162px;border-radius:14px; }.training-list-skeleton { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;grid-column:1/-1;width:100%; }
@keyframes training-shimmer { to { transform:translateX(100%); } }@keyframes training-reveal { from { opacity:0;transform:translateY(6px); }to { opacity:1;transform:translateY(0); } }
@media(max-width:1264px) { #training-workspace,.training-skeleton-body { margin-inline:0; }.training-main { padding-inline:0; } }
@media(max-width:1050px) { .training-control-row { gap:7px; }.training-tabs button { padding-inline:9px;font-size:12px; }.training-toolbar { gap:5px; }.training-search { flex-basis:210px; }.training-active-filters { display:none; }.training-filter-grid { gap:13px; } }
@media(max-width:768px) {
    .training-page { --hero-background-position:64% center; }.training-main { padding:0 0 25px; }#training-workspace,.training-skeleton-body { margin-inline:0; }
    #training-controls-anchor { margin-bottom:8px; }.training-control-row { flex-wrap:wrap;gap:0; }.training-tabs { flex:1 1 100%;width:100%;justify-content:space-between; }.training-tabs button { flex:1;padding:8px 10px;min-height:44px;font-size:12px; }.training-toolbar { flex:1 1 100%;justify-content:flex-start;padding:0 4px;gap:9px; }.training-filter-toggle { font-size:12px;padding:8px; }.training-active-filters { display:block;font-size:10px; }.training-search { flex:1;min-width:0;max-width:none;margin-left:auto; }.training-search input { font-size:16px;min-height:46px;padding-left:9px;padding-right:36px; }.training-search input::placeholder { font-size:12px; }.training-search-submit { width:34px; }
    .training-filter-panel-reveal { padding:10px 8px 12px;max-height:min(360px,45dvh); }.training-filter-grid { grid-template-columns:1fr 1fr;gap:14px 12px; }.training-filter-grid>label,.training-filter-field { font-size:11px;gap:7px; }.training-filter-grid select { font-size:12px; }.training-grip-switch button { font-size:12px;padding-inline:8px; }.training-library-modes button { min-height:40px;font-size:11px; }.training-catalog-heading { margin:19px 5px 18px;gap:12px; }.training-catalog-heading h2 { font-size:26px; }.training-result-count { font-size:10px; }.training-catalog-intro { margin:0 5px 18px; }.training-catalog-intro p { font-size:11px; }.training-breadcrumb { margin:0 5px 9px;min-height:36px; }
    .training-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:9px; }.training-category-card { min-height:145px;padding:19px 15px;border-radius:12px; }.training-category-card>i { right:15px;top:22px;font-size:15px; }.training-category-title { font-size:19px;margin-right:23px;margin-bottom:12px; }.training-category-summary { font-size:10px;-webkit-line-clamp:2; }.training-category-meta { font-size:10px;padding-top:15px; }.training-category-arrow { font-size:18px; }.training-catalog-footnote { margin:20px 5px 0;font-size:9px; }
    .training-technique-row { padding:20px 6px;gap:15px; }.training-technique-title { font-size:19px; }.training-technique-excerpt { font-size:11px;-webkit-line-clamp:2; }.training-technique-row-meta { gap:12px; }.training-technique-row-meta .training-pill { font-size:9px;padding:4px 7px; }.training-section-top h2 { font-size:22px; }
    .training-detail-navigation { border-radius:0 0 12px 12px; }.training-detail-navigation button { font-size:12px; }#training-detail-body { padding:27px 10px 15px; }#training-detail-status { margin-inline:10px; }.training-technique-heading { padding:0 0 23px; }.training-technique-heading h2 { font-size:29px;margin-bottom:12px; }.training-detail-lead { font-size:13px; }.training-technique-heading>.btn { position:relative;right:auto;top:auto;margin-top:21px;min-width:155px;font-size:12px;min-height:44px; }.training-detail-facts { gap:20px;padding:22px 0; }.training-detail-facts h3 { font-size:11px; }.training-detail-facts p { font-size:12px; }.training-technique-columns { display:flex;flex-direction:column;padding-bottom:20px; }.training-instruction-section h3 { font-size:20px; }.training-instruction-section .training-technique-steps { font-size:13px; }.training-instruction-section.is-mistakes { order:3; }
    .training-dialog { padding:0 19px 20px;width:calc(100vw - 24px);max-height:calc(100dvh - 28px);border-radius:18px; }.training-dialog>header { margin:0 -19px 22px;padding:15px 12px 13px 19px; }.training-dialog h2 { font-size:20px; }.training-dialog-actions { bottom:-20px;padding-top:13px; }.training-dialog input,.training-dialog textarea,.training-dialog select { font-size:16px; }.training-skeleton-hero { min-height:295px;padding:100px 20px 28px;gap:16px; }.training-skeleton-title { width:185px;height:36px; }.training-skeleton-copy { width:260px;height:25px; }.training-skeleton-actions { gap:12px;margin-top:0; }.training-skeleton-actions>span { height:48px; }.training-skeleton-toolbar { height:93px; }.training-skeleton-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:9px; }.training-skeleton-card { height:145px; }.training-list-skeleton { grid-template-columns:1fr; }
}
@media(max-width:480px) { .training-skeleton-hero { min-height:260px;padding-top:80px; }.training-skeleton-title { height:31px; } }
@media(prefers-reduced-motion:reduce) { .training-skeleton::after,.training-dialog[open],#training-detail-body,.training-filter-panel-reveal > * { animation:none; }.training-category-card,.training-technique-row,.training-controls,.training-filter-toggle>i:last-child { transition:none; } }
/* Keep native editors centered after the site's global margin reset. */
.training-dialog { margin:auto; }

/* Training uses booking's grip / filter / search control order. */
.training-page .training-tabs.sm-segmented {
    display:flex;width:max-content;max-width:100%;margin:0 auto;
    padding:4px;gap:4px;border:0;border-radius:11px;background:var(--sm-segment-track);box-shadow:none;
}
.training-page .training-control-row { flex-wrap:nowrap;gap:12px;min-height:52px;padding:4px 0; }
.training-page #training-grip-field { flex:1 1 220px;min-width:0;max-width:320px;display:block; }
.training-page #training-grip-field[hidden] { display:none; }
.training-page .training-grip-switch { width:100%;padding:4px;background:var(--sm-segment-track);border:0;box-shadow:none; }
.training-page .training-grip-switch button { min-height:44px;white-space:nowrap;padding:8px 14px; }
.training-page .training-toolbar { flex:0 0 auto;justify-content:flex-end;gap:8px;padding:0; }
.training-page #training-search-toggle { display:flex;flex:0 0 44px;color:var(--sm-text-muted); }
.training-page .training-search-panel { width:100%;margin:0; }
.training-page .training-search-panel .search-input { color:var(--sm-text); }
.training-page .training-search-panel .search-icon,.training-page .training-search-panel .search-clear { color:var(--sm-text-muted); }
.training-page .training-filter-panel-reveal { border:0; }
.training-page .training-filter-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:768px) {
    .training-page .training-tabs.sm-segmented { width:100%;margin-bottom:0; }
    .training-page .training-tabs button { padding-inline:8px; }
    .training-page .training-control-row { gap:6px; }
    .training-page .training-toolbar { flex:0 0 auto;gap:2px; }
    .training-page .training-active-filters { display:none; }
    .training-page .training-grip-switch button { padding-inline:12px; }
    .training-page .training-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
    .training-page #training-level-field { grid-column:1 / -1; }
}

/* The anchor provides native sticky geometry; the child only changes material. */
.training-page .training-controls.is-fixed { position:relative;top:auto;left:auto;width:100%; }
#training-controls-anchor:has([data-sm-joined]) { z-index:996; }

.training-page #training-controls-anchor { max-width:1200px;margin-inline:auto; }

/* Compact browsing chrome, with an overlay that never moves the results. */
.training-page #training-workspace,.training-page #training-controls-anchor { max-width:none; }
.training-page .training-tabs.sm-segmented { margin:0 auto 8px; }
.training-page .training-tabs button { min-height:36px;padding:6px 14px;display:flex;align-items:center;justify-content:center;gap:7px; }
.training-tabs button i { font-size:12px;opacity:.8; }
.training-page .training-control-row { min-height:52px;padding:4px 16px;gap:10px;box-sizing:border-box; }
.training-page .training-grip-switch { padding:4px;gap:4px; }
.training-page .training-grip-switch button { min-height:36px;padding:6px 14px; }
.training-page #training-controls-anchor { margin-bottom:0; }
.training-page .training-filter-panel { position:absolute;top:100%;inset-inline:0;z-index:2;box-sizing:border-box;border:0;border-radius:0 0 14px 14px; }
/* The scrolling menu keeps its paint when its outer geometry joins the toolbar. */
.training-page .training-filter-panel-reveal { padding:18px 20px 14px;box-sizing:border-box;border-radius:inherit;background:var(--sm-surface);max-height:min(420px,calc(100dvh - var(--sm-navbar-bottom,96px) - 120px)); }
.training-page .training-search-panel { padding-inline:16px;box-sizing:border-box; }
.training-page .training-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr));max-width:1100px;margin-inline:auto; }
.training-page .training-filter-grid select { border:0;border-bottom:1px solid var(--sm-field-line,var(--sm-line));border-radius:0;background:transparent;padding-inline:0; }
.training-page .training-library-modes { margin-inline:auto; }
.training-page #training-filter-reset { margin-right:max(0px,calc((100% - 1100px)/2)); }
.training-page .training-breadcrumb { width:100%;min-height:60px;box-sizing:border-box;margin:0;padding:8px 20px;border-radius:0 0 14px 14px; }
.training-page .training-catalog-heading { margin:0;padding:22px 20px 16px; }
.training-page .training-catalog-heading:has(h2[hidden]) { justify-content:flex-end;padding-block:14px; }
.training-page .training-catalog-intro { max-width:none;margin:0;padding:0 20px 20px; }
.training-page .training-catalog-intro:empty { display:none; }
.training-group-description { color:var(--sm-text-muted);font-size:12px; }
.training-group-description summary { cursor:pointer;width:fit-content;min-height:28px; }
.training-group-description p { max-width:760px;margin:9px 0 0;line-height:1.8; }
.training-page .training-catalog-grid { grid-template-columns:repeat(4,minmax(0,1fr));gap:12px; }
.training-page .training-category-card { position:relative;isolation:isolate;min-height:188px;padding:22px;gap:9px;overflow:hidden;background:var(--sm-surface);border:1px solid var(--sm-line);transition:transform 280ms cubic-bezier(.22,1,.36,1),border-color 240ms,background 240ms; }
.training-page .training-category-card:hover { transform:translateY(-2px);border-color:rgba(var(--sm-ink-rgb),.24); }
.training-page .training-category-card:active { transform:scale(.975); }
.training-category-motto { font-size:12px;line-height:1.65;color:var(--sm-text-muted); }
.training-category-visual,.training-technique-visual,.training-detail-visual,.training-cue-icon { display:grid;place-items:center;flex-shrink:0;position:relative;overflow:hidden;background:transparent;border:0;color:var(--sm-text-secondary,var(--sm-text)); }
.training-category-visual { width:42px;height:42px;border-radius:0;align-self:flex-start; }
.training-page .training-category-title { margin:0;font-size:20px; }
.training-page .training-category-meta { padding-top:8px;margin-top:auto; }
.training-page .training-catalog-grid.is-technique-list { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border:0; }
.training-page .training-catalog-grid.is-grouped { display:flex;flex-direction:column;gap:28px; }
.training-technique-group-heading { display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0 20px 14px; }
.training-technique-group-heading h3 { margin:0;font-size:15px;font-weight:500; }
.training-technique-tiles { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px; }
.training-page .training-technique-row { gap:14px;min-height:110px;padding:20px;border:1px solid var(--sm-line);border-radius:13px;background:rgba(var(--sm-ink-rgb),.018); }
.training-page .training-technique-row:hover { background:rgba(var(--sm-ink-rgb),.045); }
.training-technique-visual { width:44px;height:44px;border-radius:13px;font-size:18px; }
.training-page .training-technique-row-copy { flex:1;gap:9px; }
.training-page .training-technique-title { font-size:17px;font-weight:500; }
.training-page .training-technique-row>.training-category-arrow { font-size:18px; }
.training-page .training-catalog-footnote { padding:0 20px;margin:24px 0; }
.training-page [data-training-panel]:is([data-training-panel="plans"],[data-training-panel="records"],[data-training-panel="progress"])>.training-section-top h2 { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
.training-page [data-training-panel]>.training-section-top { padding:20px;margin-bottom:0; }
.training-page .training-overview-date { padding:18px 20px 0; }
.training-page .training-stat { padding:20px; }
.training-page .training-section>.training-section-top { padding-inline:20px; }
.training-page #training-private-search-status { padding:14px 20px; }

/* Technical notes stay complete; each reading section opens only when needed. */
.training-page #training-detail-body { max-width:none;padding:0 0 28px; }
.training-page .training-technique-heading { padding:28px max(20px,calc((100% - 1080px)/2));display:grid;grid-template-columns:92px minmax(0,1fr);gap:0 24px;align-items:start; }
.training-detail-visual { grid-column:1;grid-row:1 / 4;width:92px;height:108px;border-radius:25px;font-size:36px; }
.training-page .training-catalog-detail-meta { grid-column:2;flex-wrap:wrap;margin:0 0 12px; }
.training-page .training-technique-heading h2 { grid-column:2;font-size:30px;margin:0 0 12px; }
.training-page .training-detail-lead { grid-column:2;max-width:700px;font-size:13px;line-height:1.85; }
.training-page .training-technique-heading>.btn { grid-column:2;position:static;width:fit-content;min-width:170px;margin-top:21px;min-height:44px; }
.training-key-cue { display:flex;align-items:center;gap:18px;padding:26px max(20px,calc((100% - 1080px)/2));background:rgba(220,20,60,.035); }
.training-cue-icon { width:44px;height:44px;border-radius:50%;font-size:17px; }
.training-key-cue h3 { margin:0 0 9px;font-size:11px;font-weight:500;color:var(--sm-text-muted); }
.training-key-cue p { margin:0;font-size:15px;line-height:1.85;max-width:790px; }
.training-page .training-technique-columns { display:block;border:0;padding:0; }
.training-page .training-instruction-section { margin:0;padding:0 max(20px,calc((100% - 1080px)/2));border-bottom:1px solid var(--sm-line); }
.training-instruction-section>summary { display:flex;align-items:center;gap:13px;list-style:none;min-height:74px;cursor:pointer;font-size:16px;font-weight:500; }
.training-instruction-section>summary::-webkit-details-marker { display:none; }
.training-instruction-section>summary>i:first-child { width:21px;color:var(--sm-text-muted);font-size:16px;text-align:center; }
.training-instruction-count { font-size:11px;font-weight:400;color:var(--sm-text-muted); }
.training-disclosure-arrow { margin-left:auto;color:var(--sm-text-muted);font-size:11px;transition:transform .2s; }
.training-instruction-section[open] .training-disclosure-arrow { transform:rotate(180deg); }
.training-page .training-instruction-section .training-technique-steps { display:grid;gap:12px;max-width:900px;margin:0;padding:0 0 24px 29px;font-size:14px;line-height:1.9; }
.training-page .training-instruction-section li { margin:0;padding:10px 14px;background:rgba(var(--sm-ink-rgb),.025);border-radius:9px; }
.training-page .training-instruction-section .training-detail-content { margin:0;padding:0 0 24px 34px;font-size:13px;max-width:900px; }
.training-page .training-detail-facts { padding:0 0 24px 34px;border:0;gap:30px; }
.training-page .training-detail-facts p { font-size:13px; }
.training-page .training-reading { padding:14px max(20px,calc((100% - 1080px)/2)); }
.training-page #training-detail-status { max-width:none;margin:16px 20px; }
.training-page .training-skeleton-body { max-width:none;padding:14px 0; }
.training-page .training-skeleton-toolbar { height:104px;margin-bottom:14px; }
.training-page .training-dialog .training-field { position:relative;margin-bottom:20px; }
.training-page .training-dialog .training-field label { font-size:11px;color:var(--sm-text-muted);margin-bottom:5px; }
.training-page .training-dialog .training-field :is(input,textarea,select) { border:0;border-bottom:1px solid var(--sm-field-line,var(--sm-line));border-radius:0;background:transparent;padding:9px 0 12px; }
.training-page .training-dialog .training-field :is(input,textarea,select):focus { border-bottom-color:var(--sm-brand);outline:0;box-shadow:none; }
@media(max-width:900px) {
 .training-page .training-catalog-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .training-page .training-catalog-grid.is-technique-list,.training-technique-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
 .training-page .training-tabs.sm-segmented { margin-bottom:4px; }
 .training-page .training-tabs button { min-height:36px;padding:6px 8px;font-size:12px; }
 .training-page .training-control-row { min-height:52px;padding-inline:16px;gap:5px; }
 .training-page .training-grip-switch button { padding:6px 9px; }
 .training-page .training-filter-panel-reveal { padding:16px; }
 .training-page .training-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .training-page #training-level-field { grid-column:auto; }
 .training-page .training-breadcrumb { padding-inline:18px; }
 .training-page .training-catalog-heading { padding:20px 18px 14px; }
 .training-page .training-catalog-heading h2 { font-size:25px; }
 .training-page .training-catalog-intro { padding-inline:18px; }
 .training-page .training-catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:9px; }
 .training-page .training-category-card { min-height:178px;padding:17px 18px;gap:8px; }
 .training-category-visual { width:38px;height:38px;border-radius:0; }
 .training-page .training-category-title { font-size:18px; }
 .training-page .training-catalog-grid.is-technique-list,.training-technique-tiles { grid-template-columns:1fr;gap:9px; }
 .training-page .training-technique-row { min-height:96px;padding:19px 18px;gap:15px; }
 .training-page .training-technique-title { font-size:17px; }
 .training-technique-group-heading { padding-inline:18px; }
 .training-page .training-technique-heading { padding:25px 18px;grid-template-columns:66px minmax(0,1fr);gap:0 16px; }
 .training-detail-visual { width:66px;height:78px;border-radius:20px;font-size:27px;grid-row:1 / 3; }
 .training-page .training-technique-heading h2 { font-size:25px;margin-bottom:0; }
 .training-page .training-catalog-detail-meta { gap:5px;margin-bottom:10px; }
 .training-page .training-catalog-detail-meta .training-pill { font-size:9px;padding:3px 7px; }
 .training-page .training-detail-lead { grid-column:1 / -1;margin-top:20px; }
 .training-page .training-technique-heading>.btn { grid-column:1 / -1;width:100%;margin-top:20px; }
 .training-key-cue { padding:24px 18px;gap:13px;align-items:flex-start; }
 .training-key-cue p { font-size:14px; }
 .training-cue-icon { width:36px;height:36px;font-size:14px; }
 .training-page .training-instruction-section { padding-inline:18px; }
 .training-instruction-section>summary { min-height:70px;font-size:15px; }
 .training-page .training-detail-facts { grid-template-columns:1fr;padding-left:0;gap:20px; }
 .training-page .training-instruction-section .training-technique-steps { font-size:13px;padding-left:18px; }
 .training-page .training-instruction-section .training-detail-content { padding-left:0; }
 .training-page .training-reading { padding-inline:18px; }
 .training-page .training-stat { padding:18px; }
}
@media(prefers-reduced-motion:reduce) { .training-disclosure-arrow { transition:none; } }
body.training-page :is(.training-tabs,.training-grip-switch,.training-library-modes) > button.sm-segment { min-height:36px;padding-block:6px; }

/* Match the first paint to the actual two control rows and four-column catalog. */
.training-page .training-catalog-heading:has(h2[hidden]) { display:none; }
.training-page .training-catalog-grid { margin-top:18px; }
.training-page .training-catalog-total,.training-page .training-group-total { text-align:right;padding:14px 20px 0; }
.training-page .training-category-arrow { display:inline-flex;flex:0 0 20px;width:20px;height:20px; }
.training-category-arrow svg { display:block;width:100%;height:100%; }
.training-page .training-skeleton-body { padding:0; }
.training-page .training-skeleton-tabs { display:block;width:330px;max-width:90%;height:44px;margin:0 auto 8px;border-radius:11px; }
.training-skeleton-controls { display:flex;align-items:center;justify-content:space-between;min-height:52px;gap:10px;padding:4px 16px;box-sizing:border-box; }
.training-skeleton-grip { flex:1 1 220px;max-width:320px;height:44px; }
.training-skeleton-tools { width:96px;height:36px; }
.training-page .training-skeleton-grid { grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px; }
.training-skeleton-catalog-card { display:flex;flex-direction:column;align-items:flex-start;min-height:186px;box-sizing:border-box;padding:22px;gap:12px;border:1px solid var(--sm-line);border-radius:14px; }
.training-skeleton-icon { width:56px;height:56px;border-radius:17px; }
.training-skeleton-label { width:68%;height:23px; }
.training-skeleton-meta { width:48%;height:12px;margin-top:auto; }
@media(max-width:900px) { .training-page .training-skeleton-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:600px) {
 .training-page .training-skeleton-tabs { width:100%;max-width:100%;margin-bottom:4px; }
 .training-page .training-skeleton-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:9px; }
 .training-skeleton-catalog-card { min-height:170px;padding:19px 18px; }
 .training-skeleton-icon { width:49px;height:49px;border-radius:15px; }
 .training-skeleton-label { height:21px; }
}

/* Match booking's edge-to-edge controls and their first-paint geometry. */
@media(max-width:768px) {
 .training-page .training-control-row,.training-page .training-search-panel,.training-page .training-skeleton-controls { padding-inline:0; }
 .training-page #training-controls-anchor,.training-page .training-tabs.sm-segmented { width:100%;margin-inline:0; }
 .training-page #training-grip-field { max-width:none; }
}

@media(max-width:768px) { .training-skeleton-grip { max-width:none; } }

/* Match the profile's 4px rhythm between its primary tabs and shared body. */
body.training-page .training-tabs.sm-segmented { margin-bottom:4px; }
body.training-page .training-control-row { min-height:44px; padding-block:0; }
body.training-page #training-controls-anchor { margin-bottom:4px; }
body.training-page .training-catalog-grid { margin-top:4px; }
body.training-page .training-library-modes { margin-bottom:4px; }
body.training-page .training-catalog-grid > * { min-width:0; max-width:100%; box-sizing:border-box; }
body.training-page .training-skeleton-tabs { margin-bottom:4px; }
body.training-page .training-skeleton-controls { min-height:44px; padding-block:0; }
body.training-page .training-skeleton-grid { margin-top:4px; }
body.training-page .training-tabs.sm-segmented[data-sm-sliding] { padding-inline:8px; }

/* One neutral icon family keeps categories clear without decorative imagery. */
.training-art i { font-size:25px;line-height:1;color:var(--sm-text-secondary,var(--sm-text));transition:transform 350ms cubic-bezier(.22,1,.36,1); }
@media(hover:hover) { .training-category-card:hover .training-art i { transform:translateY(-2px); } }
.training-category-card:focus-visible { outline:2px solid var(--sm-text);outline-offset:-3px; }
.training-page .training-day-bar { transform-origin:bottom;animation:training-meter-rise 560ms cubic-bezier(.22,1,.36,1) both; }
.training-page .training-focus-meter { height:7px; }
.training-page .training-focus-meter span { border-radius:inherit;transform-origin:left;animation:training-meter-fill 560ms cubic-bezier(.22,1,.36,1) both; }
.training-page .training-court circle { animation:training-ball-hop 3.4s ease-in-out infinite; }

/* Raised category tiles and open lesson routes share the existing training palette. */
body.training-page { --training-route-accent:#f2a2ad; --training-coin:var(--sm-brand); --training-coin-edge:#973043; --training-node-width:176px; }
:root[data-theme="light"] body.training-page { --training-route-accent:#a62b3d; }
.training-page [data-family="backhand"],.training-page [data-family="defense"] { --training-coin:#559fcd; --training-coin-edge:#2c648c; }
.training-page [data-family="footwork"],.training-page [data-family="serve"] { --training-coin:#dca544; --training-coin-edge:#977022; }
.training-page [data-family="receive"],.training-page [data-family="rubbers"] { --training-coin:#a781cf; --training-coin-edge:#725399; }
.training-page [data-family="control"],.training-page [data-family="doubles"] { --training-coin:#48a68f; --training-coin-edge:#286f60; }
body.training-page .training-catalog-grid,body.training-page .training-skeleton-grid { gap:4px; }
body.training-page .training-catalog-grid:not(.is-technique-list) { grid-template-columns:repeat(2,minmax(0,1fr)); }
.training-page .training-category-card { min-height:194px;margin-bottom:9px;padding:23px;gap:12px;overflow:visible;border:1px solid var(--sm-line);border-radius:22px;background:var(--sm-surface);box-shadow:0 7px 0 color-mix(in srgb,var(--sm-surface) 76%,var(--training-coin-edge)),0 10px 18px #00000008;transition:transform 340ms cubic-bezier(.2,1.45,.38,1),box-shadow 340ms cubic-bezier(.2,1.45,.38,1),border-color 220ms;touch-action:manipulation;-webkit-tap-highlight-color:transparent; }
.training-page .training-category-visual { width:56px;height:50px;border-radius:50%;overflow:visible;background:linear-gradient(135deg,#ffffff29,transparent 65%),var(--training-coin);box-shadow:0 5px 0 var(--training-coin-edge),inset 0 2px 0 #ffffff25; }
.training-page .training-category-visual i { color:white;font-size:24px;text-shadow:0 2px 0 #00000017; }
.training-page .training-category-title { font-size:21px;font-weight:700; }
.training-page .training-category-motto { color:var(--sm-text-muted);font-size:12px;line-height:1.7; }
.training-page .training-category-meta { padding-top:2px;font-size:11px; }
.training-page .training-category-card:active { transform:translateY(6px);box-shadow:0 1px 0 var(--training-coin-edge); }
@media(hover:hover) { .training-page .training-category-card:hover { transform:translateY(-3px);border-color:color-mix(in srgb,var(--training-coin) 40%,var(--sm-line)); } .training-page .training-category-card:hover:active { transform:translateY(6px); } }
.training-journey-intro { display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:720px;min-height:148px;margin-inline:auto;padding:24px 28px;box-sizing:border-box;border-radius:22px;background:var(--sm-surface);border:1px solid color-mix(in srgb,var(--training-coin) 28%,var(--sm-line));box-shadow:0 6px 0 color-mix(in srgb,var(--sm-surface) 74%,var(--training-coin-edge)); }
.training-journey-intro>div { min-width:0;flex:1; }
.training-journey-eyebrow { display:inline-block;color:var(--training-route-accent);font-size:11px;font-weight:600;letter-spacing:.08em; }
.training-journey-intro p { margin:8px 0 16px!important;font-size:clamp(17px,2vw,23px)!important;font-weight:700;line-height:1.5; }
.training-journey-emblem { flex:0 0 76px;width:76px;height:68px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#ffffff29,transparent 65%),var(--training-coin);box-shadow:0 8px 0 var(--training-coin-edge),inset 0 2px 0 #ffffff25;transform:rotate(-8deg); }
.training-journey-emblem i { font-size:32px;color:white; }
.training-reading-progress { display:grid;gap:8px;max-width:340px; }
.training-reading-label { display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--sm-text-muted);font-size:11px; }
.training-reading-label strong { color:var(--sm-text);font-variant-numeric:tabular-nums;font-size:12px;font-weight:650; }
.training-reading-meter { display:block;width:100%; }
.training-reading-meter>span { background:var(--training-coin); }
body.training-page .training-catalog-grid.is-journey { display:flex;flex-direction:column;gap:38px;width:100%;max-width:760px;margin-inline:auto;padding:12px 20px 36px;box-sizing:border-box; }
@media(min-width:901px) { .training-page .training-catalog-heading { max-width:720px;margin-inline:auto; } }
.is-journey .training-technique-group { position:relative;width:100%;max-width:720px;margin:0 auto;padding:0; }
.is-journey .training-technique-group-heading { padding:17px 20px;justify-content:flex-start;gap:12px;border-radius:16px;background:var(--sm-surface);border:1px solid var(--sm-line);box-shadow:0 4px 0 rgba(var(--sm-ink-rgb),.055); }
.training-chapter-number { display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:10px;background:rgba(var(--sm-ink-rgb),.06);color:var(--training-route-accent);font-size:12px;font-weight:750; }
.training-chapter-count { margin-left:auto;color:var(--sm-text-muted);font-size:11px;white-space:nowrap; }
.is-journey .training-technique-tiles,body.training-page .training-catalog-grid.is-journey:not(.is-grouped) { --training-route-sway:min(108px,calc((100% - var(--training-node-width)) / 2 - 2px));position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding-block:20px 5px; }
.is-journey .training-technique-tiles:before { content:none; }
.training-route-line { position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none; }
.training-route-line path { fill:none;stroke:rgba(var(--sm-ink-rgb),.12);stroke-width:5px;stroke-linecap:round;stroke-dasharray:3 13; }
.training-page .is-journey .training-technique-row { position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:var(--training-node-width);min-height:196px;margin-inline-start:calc((100% - var(--training-node-width)) / 2);padding:32px 0 4px;gap:17px;background:transparent;border:0;border-radius:16px;box-shadow:none;text-align:center;touch-action:manipulation;transition:none;-webkit-tap-highlight-color:transparent; }
.training-page .is-journey .training-technique-row[data-path-offset="1"] { margin-inline-start:calc((100% - var(--training-node-width)) / 2 + var(--training-route-sway)); }
.training-page .is-journey .training-technique-row[data-path-offset="-1"] { margin-inline-start:calc((100% - var(--training-node-width)) / 2 - var(--training-route-sway)); }
.training-route-node { position:relative;display:grid;place-items:center;flex:0 0 88px;width:102px;height:88px;box-sizing:border-box;border:1px solid #ffffff18;border-radius:50%;color:white;background:radial-gradient(ellipse at 32% 20%,#ffffff35 0 21%,transparent 23%),linear-gradient(145deg,#ffffff14,transparent 55%),var(--training-coin);box-shadow:0 10px 0 var(--training-coin-edge),0 13px 0 rgba(var(--sm-ink-rgb),.04),inset 0 2px 0 #ffffff30;transform:translateY(0);transition:transform 360ms cubic-bezier(.2,1.5,.38,1),box-shadow 360ms cubic-bezier(.2,1.5,.38,1); }
.training-route-node>i { font-size:32px;color:#fff;text-shadow:0 3px 0 #00000020; }
.training-route-node>i.fa-play { margin-left:5px;font-size:29px; }
.training-route-number { position:absolute;right:-6px;bottom:-6px;display:grid;place-items:center;width:27px;height:25px;border-radius:9px;background:var(--sm-surface);border:2px solid var(--sm-bg);color:var(--sm-text-secondary,var(--sm-text));font-size:10px;font-weight:750;font-variant-numeric:tabular-nums; }
.training-route-current { position:absolute;top:0;left:50%;transform:translateX(-50%);padding:5px 11px;border-radius:9px;border:1px solid var(--sm-line);box-shadow:0 3px 0 rgba(var(--sm-ink-rgb),.06);background:var(--sm-surface);color:var(--training-route-accent);font-size:11px;font-weight:700;white-space:nowrap; }
.training-route-current:after { content:'';position:absolute;width:7px;height:7px;left:calc(50% - 4px);bottom:-5px;transform:rotate(45deg);background:var(--sm-surface);border-right:1px solid var(--sm-line);border-bottom:1px solid var(--sm-line); }
.training-page .is-journey .training-technique-row-copy { width:100%;justify-items:center;gap:5px;padding:5px 4px;border-radius:12px;box-sizing:border-box;background:var(--sm-bg); }
.training-page .is-journey .training-technique-title { font-size:15px;font-weight:650;line-height:1.5; }
.training-page .is-journey .training-pill { display:flex;flex-wrap:wrap;justify-content:center;gap:5px 9px;border:0;padding:0;border-radius:0;font-size:10px; }
.training-lesson-entry { display:inline-flex;align-items:center;gap:5px; }
.training-video-badge { color:var(--training-route-accent);font-size:11px; }
.training-page .is-journey .training-technique-row:hover,.training-page .is-journey .training-technique-row:active { transform:none;box-shadow:none;border:0;background:transparent; }
@media(hover:hover) { .training-page .is-journey .training-technique-row:hover .training-route-node { transform:translateY(-4px);box-shadow:0 14px 0 var(--training-coin-edge),0 18px 0 rgba(var(--sm-ink-rgb),.025),inset 0 2px 0 #ffffff30; } }
.training-page .is-journey .training-technique-row:active .training-route-node { transform:translateY(7px);box-shadow:0 3px 0 var(--training-coin-edge),inset 0 2px 0 #ffffff30;transition-duration:100ms; }
.training-page .is-journey .training-technique-row:focus-visible { outline:2px solid var(--sm-accent,var(--sm-brand));outline-offset:3px; }

.training-demo { margin:0 auto 26px;width:calc(100% - 40px);max-width:900px; }
.training-demo-stage { position:relative;overflow:hidden;border-radius:18px;isolation:isolate;background:rgba(var(--sm-ink-rgb),.04);aspect-ratio:16/10; }
.training-demo-stage video { display:block;width:100%;height:100%;object-fit:contain;position:absolute;inset:0;background:#131716; }
.training-demo-fallback { position:absolute;inset:0;display:flex;align-items:center;gap:24px;padding:30px;background:linear-gradient(130deg,rgba(216,59,74,.07),rgba(var(--sm-ink-rgb),.02));box-sizing:border-box; }
.training-demo-fallback>i { display:grid;place-items:center;flex:0 0 74px;height:74px;border:1px dashed rgba(216,59,74,.3);border-radius:50%;color:var(--sm-brand);font-size:28px; }
.training-demo-cue { min-width:0; }
.training-demo-cue small { color:var(--sm-text-muted);font-size:11px; }
.training-demo-cue p { font-size:15px;line-height:1.9;margin:8px 0 0; }
.training-demo.is-static .training-demo-stage { aspect-ratio:auto;min-height:150px; }
.training-demo.is-static .training-demo-fallback { position:relative;min-height:150px; }
.training-demo-toggle { position:absolute;right:12px;bottom:12px;z-index:2;display:flex;align-items:center;gap:7px;min-height:40px;padding:9px 14px;border:1px solid rgba(255,255,255,.22);border-radius:30px;background:rgba(13,18,17,.72);color:white;font:inherit;font-size:12px;cursor:pointer;backdrop-filter:blur(8px); }
.training-demo-toggle:focus-visible { outline:2px solid white;outline-offset:3px; }
.training-demo-status { position:absolute;left:14px;bottom:16px;right:105px;font-size:11px;color:white;text-shadow:0 1px 4px #000; }
.training-demo-status:empty { display:none; }
.training-demo-caption { display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;padding:11px 2px 0;font-size:11px;line-height:1.7;color:var(--sm-text-muted); }
.training-demo-caption strong { font-size:12px;font-weight:600;color:var(--sm-text); }
.training-demo-source { display:flex;flex-wrap:wrap;gap:3px 10px;font-size:9px;line-height:1.8;color:var(--sm-text-muted);padding:5px 2px 0; }
.training-demo-source a { color:inherit;text-decoration:underline;text-underline-offset:3px; }
.training-demo.has-video-error video { visibility:hidden; }
.training-demo.has-video-error .training-demo-status { position:static;display:block;padding:0 20px 15px;color:var(--sm-text-muted);text-shadow:none; }
.training-demo.has-video-error .training-demo-stage { aspect-ratio:auto; }
.training-demo.has-video-error .training-demo-fallback { position:relative;min-height:170px; }
.training-instruction-section .training-demo { width:100%;max-width:720px;margin:0 0 22px; }

@media(max-width:600px) {
 .training-page .training-catalog-intro { padding:0 12px 24px; }
 .training-page .training-category-card { min-height:196px;padding:18px 16px;gap:11px;border-radius:18px; }
 .training-page .training-category-title { font-size:18px; }
 .training-page .training-category-motto { font-size:11px; }
 .training-page .training-category-visual { width:50px;height:45px; }
 .training-page .training-category-visual i { font-size:22px; }
 .training-journey-intro { padding:20px;gap:16px;min-height:148px;border-radius:18px; }
 .training-journey-intro p { max-width:205px; }
 .training-journey-emblem { width:56px;height:51px;flex-basis:56px; }
 .training-journey-emblem i { font-size:24px; }
 body.training-page .training-catalog-grid.is-journey { padding-inline:12px;gap:30px; }
 .is-journey .training-technique-group-heading { padding:15px 13px;gap:9px; }
 .is-journey .training-technique-group-heading h3 { font-size:14px; }
 body.training-page { --training-node-width:164px; }
 .training-demo { width:calc(100% - 36px); }
 .training-demo-stage { border-radius:14px;aspect-ratio:4/3; }
 .training-demo-fallback { padding:20px;gap:15px; }
 .training-demo-fallback>i { flex-basis:44px;height:44px;font-size:21px; }
 .training-demo-cue p { font-size:13px;line-height:1.8; }
 .training-demo.is-static .training-demo-stage,.training-demo.is-static .training-demo-fallback { min-height:140px; }
 .training-demo-source { font-size:9px; }
}
@media(prefers-reduced-motion:reduce) { .training-page .is-journey .training-technique-row { transition:none;transform:none; } }
@keyframes training-ball-hop { 0%,10%,45%,100% { transform:translate(0,0); } 24% { transform:translate(-2px,3px); } 34% { transform:translate(2px,-2px); } }
@keyframes training-meter-rise { from { transform:scaleY(.08); } to { transform:scaleY(1); } }
@keyframes training-meter-fill { from { transform:scaleX(.05); } to { transform:scaleX(1); } }
@media(max-width:360px) { .training-tabs button i { display:none; } .training-category-motto { font-size:11px; } }
@media(prefers-reduced-motion:reduce) { .training-art i,.training-category-card:hover .training-art i, .training-page .training-day-bar, .training-page .training-focus-meter span, .training-page .training-court circle { animation:none;transition:none;transform:none; } .training-page .training-category-card { transition:none; } .training-page .training-category-card:hover { transform:none; } }

.training-demo-controls { display:flex; align-items:center; gap:10px; min-height:46px; padding:6px 2px; }
.training-demo-controls button { flex:0 0 34px; min-width:34px; min-height:38px; border:0; background:transparent; color:var(--sm-text); }
.training-demo-controls input { flex:1; min-width:35px; accent-color:var(--sm-brand); cursor:pointer; }
.training-demo-controls select { width:62px; min-height:36px; padding:4px; border:0; border-radius:8px; background:var(--sm-segment-track); color:var(--sm-text); font:inherit; font-size:12px; }
.training-demo-clock { flex:0 0 30px; color:var(--sm-text-muted); font-size:11px; font-variant-numeric:tabular-nums; }
.training-demo:fullscreen { box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; width:100%; max-width:none; margin:0; padding:24px; background:var(--sm-bg,#111); }
.training-demo:fullscreen .training-demo-stage { max-height:75vh; width:100%; }
.training-demo.has-video-error .training-demo-controls { display:none; }
@media(max-width:390px) { .training-demo-controls { gap:4px; } }

@media(prefers-reduced-motion:reduce) { .training-page .training-category-card,.training-page .is-journey .training-route-node { transition:none; } .training-page .training-category-card:hover,.training-page .training-category-card:active,.training-page .is-journey .training-technique-row:is(:hover,:active) .training-route-node { transform:none; } }
