.training-main { --training-gold:#d4b079; }
:root[data-theme="light"] .training-main { --training-gold:#79561e; }
.training-main :focus-visible { outline:2px solid var(--training-gold); outline-offset:4px; }
.training-breadcrumb { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 22px; }
.training-main > .availability-note { margin:24px 0 32px; font-size:12px; }
.training-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:end; margin-bottom:36px; }
.training-intro .small-label { color:var(--muted); }
.training-intro h1 { font-size:clamp(56px,6.5vw,88px); margin:18px 0 0; line-height:.98; }
.training-intro h1 span { color:var(--training-gold); }
.training-intro .page-lead { margin:0 0 4px; max-width:40ch; font-size:17px; }
.training-feedback { font-size:14px; padding:12px 16px; margin:20px 0; border-left:3px solid var(--training-gold); background:var(--panel); }
.training-feedback:empty { display:none; }
.training-feedback[data-error=true] { border-color:#d37973; }
.training-text-button { padding:10px 0; min-height:44px; background:none; border:0; text-decoration:underline; text-underline-offset:4px; text-align:left; }
.training-access { border:1px solid var(--line); border-top:3px solid var(--training-gold); padding:clamp(24px,5vw,50px); max-width:760px; margin:40px 0; }
/* Reserve the existing guest panel while access is checked. It remains hidden
   and non-interactive; no space is retained once the private view is shown. */
#training-guest[hidden]:has(~ #training-public:not([hidden])) { display:block !important; visibility:hidden; }
.training-access h2 { font:clamp(30px,4vw,46px)/1.1 var(--display); }
.training-access p:not(.small-label) { max-width:52ch; color:var(--soft); }
.training-access .button { margin-top:18px; white-space:normal; }
.training-overview { border:1px solid var(--line); padding:clamp(22px,3vw,36px); background:var(--panel); }
.training-overview-heading { display:flex; gap:16px; justify-content:space-between; align-items:center; }
.training-overview-heading h2 { font:clamp(22px,2.5vw,30px)/1.25 var(--display); margin:0; overflow-wrap:anywhere; }
.training-private-label { font-size:11px; letter-spacing:.4px; border:1px solid var(--line); padding:5px 9px; white-space:nowrap; color:var(--soft); }
.training-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:24px 0; margin:24px 0; border-block:1px solid var(--line); }
.training-stats > div { display:flex; flex-direction:column-reverse; gap:0; padding-left:25px; border-left:1px solid var(--line); }
.training-stats > div:first-child { padding-left:0; border-left:0; }
.training-stats dt { font-size:13px; color:var(--soft); }
.training-stats dd { font:clamp(36px,5vw,50px)/1.15 var(--display); color:var(--training-gold); margin:0; font-variant-numeric:tabular-nums; }
.training-stats dd small { font:14px var(--body); color:var(--soft); }
.training-overview.progress-tone { --progress-color:#ef827d; }
.training-overview.progress-tone[data-tone="orange"] { --progress-color:#efad58; }
.training-overview.progress-tone[data-tone="green"] { --progress-color:#64cf9b; }
:root[data-theme="light"] .training-overview.progress-tone { --progress-color:#b12b27; }
:root[data-theme="light"] .training-overview.progress-tone[data-tone="orange"] { --progress-color:#925200; }
:root[data-theme="light"] .training-overview.progress-tone[data-tone="green"] { --progress-color:#16774b; }
.training-progress-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:10px; font-size:13px; }
.training-progress-heading .progress-percent { color:var(--progress-color); font:36px/1.1 var(--display); font-variant-numeric:tabular-nums; }
.training-progress-detail { color:var(--soft); margin:10px 0 0; font-size:13px; }
.training-overview progress { display:block; width:100%; height:9px; margin-top:12px; border:0; border-radius:0; overflow:hidden; background:var(--line); accent-color:var(--progress-color); }
.training-overview progress::-webkit-progress-bar { background:var(--line); }
.training-overview progress::-webkit-progress-value { background:var(--progress-color); }
.training-overview progress::-moz-progress-bar { background:var(--progress-color); }
.training-help { font-size:12px; color:var(--muted); margin:12px 0 0; }
.training-resume { display:grid; grid-template-columns:1fr auto; gap:3px 16px; border-top:1px solid var(--line); margin-top:24px; padding-top:19px; min-height:64px; }
.training-resume > span:first-child { font-size:12px; color:var(--soft); }
.training-resume strong { grid-column:1; font-size:15px; color:var(--training-gold); }
.training-resume > span:last-child { grid-column:2; grid-row:1 / 3; align-self:center; font-size:25px; }
.training-library { margin-top:48px; }
.training-library-heading { display:flex; justify-content:space-between; align-items:end; flex-wrap:wrap; gap:12px 24px; margin-bottom:24px; }
.training-library-heading .small-label { color:var(--muted); font-size:10px; margin:0 0 10px; }
.training-library-heading h2 { margin:0; font:clamp(28px,4vw,38px)/1.15 var(--display); }
.training-library-heading > p { color:var(--muted); font-size:12px; max-width:26ch; margin:0; }
.training-filters { border:0; padding:0; margin:0; min-width:0; }
.training-filter-buttons { display:flex; gap:8px; flex-wrap:wrap; }
.training-filter-buttons button { min-height:44px; padding:9px 15px; font-size:13px; font-weight:700; background:transparent; border:1px solid var(--line); }
.training-filter-buttons button[aria-pressed=true] { color:var(--paper); background:var(--training-gold); border-color:var(--training-gold); }
.training-search-fields { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:16px; margin:22px 0 0; }
.training-search-fields label { display:block; font-size:12px; margin-bottom:8px; color:var(--soft); }
.training-search-fields input,.training-search-fields select { width:100%; min-width:0; padding:12px; min-height:48px; border:1px solid var(--line); border-radius:0; font:16px var(--body); color:var(--ink); background:var(--paper); }
.training-results { margin:22px 0 15px; color:var(--muted); font-size:12px; }
.training-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.training-item { min-width:0; scroll-margin-top:28px; }
.training-card { height:100%; display:flex; flex-direction:column; padding:22px; border:1px solid var(--line); background:var(--panel); }
.training-card[data-status=comfortable] { border-left:3px solid var(--training-gold); padding-left:20px; }
.training-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.training-code { font:26px/1.1 var(--display); color:var(--training-gold); min-height:44px; display:flex; align-items:center; }
.training-card h3 { font:25px/1.13 var(--display); margin:12px 0 8px; overflow-wrap:anywhere; }
.training-card-meta { color:var(--muted); font-size:11px; margin:0 0 22px; }
.training-favorite { flex-shrink:0; min-height:44px; min-width:44px; display:flex; gap:8px; align-items:center; justify-content:center; padding:8px 10px; font-size:11px; background:transparent; color:var(--soft); border:1px solid var(--line); }
.training-favorite svg { width:17px; height:17px; fill:transparent; stroke:currentColor; stroke-width:1.6; }
.training-favorite[aria-pressed=true] { color:var(--training-gold); border-color:var(--training-gold); }
.training-favorite[aria-pressed=true] svg { fill:currentColor; }
.training-status-control { margin-top:auto; }
.training-status-control label { display:block; font-size:11px; color:var(--soft); margin-bottom:7px; }
.training-status-control select { width:100%; min-width:0; font:14px var(--body); min-height:44px; border:1px solid var(--line); border-radius:0; color:var(--ink); background:var(--paper); padding:10px; }
.training-card button:disabled,.training-card select:disabled { opacity:.55; cursor:wait; }
.training-card[aria-busy=true] { border-color:var(--training-gold); }
.training-empty { padding:32px; border:1px dashed var(--line); }
.training-empty h3 { font:28px/1.1 var(--display); margin:0 0 12px; }
.training-empty p { color:var(--soft); font-size:14px; margin:0; }
.training-note { font-size:12px; color:var(--muted); border-top:1px solid var(--line); margin:34px 0 0; padding-top:22px; max-width:78ch; }
@media(max-width:700px) { .training-intro { grid-template-columns:1fr; gap:22px; } .training-intro h1 { font-size:clamp(54px,10vw,76px); } .training-intro .page-lead { font-size:15px; max-width:48ch; } .training-overview-heading { align-items:flex-start; flex-wrap:wrap; } .training-list { grid-template-columns:1fr; } .training-card { padding:20px; } .training-card[data-status=comfortable] { padding-left:18px; } .training-search-fields { grid-template-columns:1fr; } .training-stats > div { padding-left:18px; } .training-library-heading > p { max-width:none; } .training-library { margin-top:36px; } }
@media(max-width:380px) { .training-stats > div { padding-left:12px; } .training-stats dt { font-size:11px; } .training-filter-buttons { gap:6px; } .training-filter-buttons button { padding-inline:12px; } .training-private-label { font-size:10px; } .training-favorite { font-size:10px; } }
@media(max-width:700px) { .training-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 0; } .training-stats > div:nth-child(3) { border-left:0; padding-left:0; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .training-main * { transition:none !important; animation:none !important; } }
