/* TrainSkool: one readable, regular-weight design across public and role pages. */
:root {
  --ink:#17233b; --muted:#59677e; --line:#dbe2ed; --paper:#f5f7fc;
  --surface:#fff; --teal:#2855d9; --teal-bright:#315ff0; --gold:#855d09;
  --navy:#172b56; --redesign-accent:#2855d9; --redesign-soft:#eaf0ff;
  --font-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color-scheme:light;
}
:root[data-theme="dark"] {
  --ink:#edf2ff; --muted:#b5c1d8; --line:#364765; --paper:#101827;
  --surface:#192439; --teal:#a5bbff; --teal-bright:#b6c8ff; --gold:#edcc84;
  --navy:#edf2ff; --redesign-accent:#a5bbff; --redesign-soft:#233455;
  color-scheme:dark;
}
html {font-family:var(--font-sans);font-size:16px;scroll-behavior:smooth;scroll-padding-top:6rem}
body {margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:1rem;line-height:1.6}
body.auth-body,body.dashboard-body {background:var(--paper)!important}
body *,body *::before,body *::after {font-weight:400!important;box-sizing:border-box}
[hidden] {display:none!important}
h1,h2,h3,h4,.cl-title,.hero-title {font-family:var(--font-sans)!important;color:var(--ink);letter-spacing:-.035em;line-height:1.18}
h1 {font-size:clamp(2rem,4.1vw,3.5rem)} h2 {font-size:clamp(1.45rem,2.4vw,2rem)} h3 {font-size:1.2rem}
p,li,label,input,select,textarea,button {font-size:1rem}
.subtle,.lead,.cl-subtitle,.panel-description {color:var(--muted)!important}
.eyebrow,.label,.cl-eyebrow {font-size:.875rem;letter-spacing:.09em;color:var(--redesign-accent)!important}
a {color:var(--redesign-accent);text-underline-offset:.2em}
button,input,select,textarea {font:inherit;max-width:100%}
input:not([type="checkbox"]):not([type="radio"]),select,textarea {min-height:48px;border:1px solid var(--line);border-radius:9px;padding:11px 13px;background:var(--surface);color:var(--ink)}
input[type="checkbox"],input[type="radio"] {width:20px;height:20px;accent-color:#2855d9}
textarea {resize:vertical;min-height:104px}
button,.primary-link,.outline-link,.outline-button,.ghost,.text-button {min-height:44px;border-radius:9px;font-size:.9375rem;cursor:pointer}
button,.primary-link {background:#2855d9;color:#fff;border:1px solid #2855d9;box-shadow:none}
button:hover,.primary-link:hover {background:#1c43b5;color:#fff;transform:none}
.outline-link,.outline-button,.ghost,.text-button,.text-link {background:transparent;color:var(--redesign-accent);border-color:var(--line);box-shadow:none}
.outline-link:hover,.outline-button:hover,.ghost:hover,.text-button:hover {background:var(--redesign-soft);color:var(--ink)}
button:disabled {cursor:not-allowed;opacity:.55}
:focus-visible {outline:3px solid var(--redesign-accent)!important;outline-offset:4px!important}
.site-header,.dashboard-header {background:var(--surface)!important;color:var(--ink);border-bottom:1px solid var(--line);box-shadow:none;gap:1.3rem;padding:1.05rem max(1.25rem,calc((100vw - 1240px)/2));min-height:78px;flex-wrap:wrap;position:relative}
.brand {gap:.7rem;color:var(--ink)!important;font-size:1.25rem;letter-spacing:-.035em;flex-shrink:0}
.brand img {width:36px;height:36px;border-radius:9px}
.desktop-nav {gap:1.5rem;flex-shrink:0}.desktop-nav a {color:var(--muted)}
.header-actions {margin-left:auto;gap:.65rem;flex-shrink:0}.header-actions .text-link[href="/teach"]{display:none}
.site-header .search-bar {min-width:200px;max-width:440px;flex:1 1 240px;border:1px solid var(--line);background:var(--paper);padding:3px;border-radius:10px}
.search-bar input {border:0!important;background:transparent!important;min-width:0}.search-bar button {min-height:42px}
.site-header .lang-switch,.site-header #lang-switch {max-width:120px}
.site-footer {background:var(--surface)!important;color:var(--muted)!important;border-top:1px solid var(--line);padding:2rem max(1.25rem,calc((100vw - 1240px)/2));margin-top:4rem;display:flex;gap:1.5rem;flex-wrap:wrap}
.site-footer nav {display:flex;gap:1.2rem;flex-wrap:wrap}.site-footer a {color:var(--muted)}
.theme-toggle {right:18px;bottom:18px;width:44px;height:44px;box-shadow:0 4px 16px #0002;background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.ts-container {width:min(1240px,calc(100% - 2.5rem));margin:auto}
.ts-hero {padding:4rem 0 3rem;display:grid;grid-template-columns:1.1fr 1fr;gap:4rem;align-items:center}
.ts-hero h1 {max-width:600px;margin:.6rem 0 1.3rem}.ts-hero .lead {max-width:530px;font-size:1.125rem}
.ts-actions {display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin:1.5rem 0}
.ts-actions a {padding:11px 18px;text-decoration:none}
.ts-note {color:var(--muted);font-size:.875rem;max-width:60ch}
.ts-guide {background:var(--surface);border:1px solid var(--line);border-top:4px solid #2855d9;border-radius:16px;padding:2rem;box-shadow:0 16px 48px #172b5609}
.ts-guide h2 {margin:.8rem 0}.ts-guide h3 {margin:0 0 1rem}
.ts-step-caption {font-size:.875rem;color:var(--redesign-accent);margin:0}
.ts-choices {display:grid;gap:.65rem;margin:1.25rem 0}
.ts-choice {width:100%;text-align:left;border:1px solid var(--line);padding:.9rem 1rem;background:var(--surface);color:var(--ink);display:flex;justify-content:space-between;align-items:center}
.ts-choice:hover,.ts-choice[aria-pressed="true"] {background:var(--redesign-soft);border-color:var(--redesign-accent);color:var(--ink)}
:root[data-theme="dark"] button.ts-choice {background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important}
:root[data-theme="dark"] button.ts-choice:hover,:root[data-theme="dark"] button.ts-choice[aria-pressed="true"] {background:var(--redesign-soft)!important;border-color:var(--redesign-accent)!important;color:var(--ink)!important}
.ts-guide-actions {display:flex;justify-content:space-between;gap:.8rem;margin-top:1.5rem}
.ts-guide-actions button {padding:10px 20px}.ts-guide-result {border:1px solid var(--line);border-radius:12px;padding:1.1rem;margin:1rem 0}
.ts-guide-result a {display:inline-block;margin-top:.65rem}.ts-guide-result h3 {margin:0 0 .5rem}
.ts-section {padding:2.5rem 0}.ts-section-head {display:flex;align-items:end;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem}.ts-section-head h2 {margin:.4rem 0}
.ts-course-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1.3rem}
.ts-course-card {display:grid;grid-template-columns:170px 1fr;gap:1.5rem;padding:1.5rem;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);text-decoration:none;max-width:760px}
.ts-course-card:hover {border-color:var(--redesign-accent);box-shadow:0 8px 30px #172b5609}
.ts-course-card h3 {margin:.35rem 0 .75rem}.ts-course-card p {margin:.4rem 0}.ts-cover {background:var(--redesign-soft);border-radius:9px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:1.2rem;gap:.8rem;color:var(--redesign-accent)}
.ts-cover img {width:56px;height:56px}.ts-cover span {font-size:.875rem;text-align:center}
.ts-steps {display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;border-top:1px solid var(--line);padding-top:2rem}.ts-steps article {padding-right:1rem}.ts-steps article>span {color:var(--redesign-accent);font-size:.875rem}.ts-steps h3 {margin:.7rem 0}
.ts-teach {padding:2.5rem;border-radius:16px;background:var(--navy);color:white;display:flex;justify-content:space-between;align-items:center;gap:2rem}.ts-teach h2,.ts-teach p {color:#fff!important}.ts-teach .primary-link {background:#fff;color:#172b56;border-color:#fff;white-space:nowrap}
:root[data-theme="dark"] .ts-teach {background:#233455}
.auth-layout {width:min(1120px,calc(100% - 2.5rem));margin:3rem auto;gap:4rem;grid-template-columns:1fr 1.1fr;align-items:start;padding:0}
.auth-promise {padding:1.5rem 0;background:none!important}.auth-promise h1 {font-size:clamp(2rem,3.2vw,2.9rem)}
.login-card {border:1px solid var(--line);border-radius:15px;background:var(--surface);padding:2rem;box-shadow:0 12px 40px #172b5608}
.auth-list {color:var(--muted);gap:1rem}.auth-list span {border-left:2px solid var(--line);padding-left:1rem;background:none}
.form-stack {gap:1.2rem}.form-stack label {display:grid;gap:.45rem;color:var(--ink)}
.form-stack>.form-grid:empty {display:none}
.form-stack .subtle {font-size:.875rem}.success-message {color:#177448!important}.error,.error-message {color:#ba2333!important;overflow-wrap:anywhere}
:root[data-theme="dark"] .error {color:#ffafbb!important}
.ts-form-progress {display:flex;list-style:none;gap:.6rem;padding:0;margin:1.5rem 0;counter-reset:step}
.ts-form-progress li {flex:1;border-top:3px solid var(--line);padding-top:.6rem;color:var(--muted);font-size:.875rem}
.ts-form-progress li[aria-current="step"] {color:var(--redesign-accent);border-color:var(--redesign-accent)}
.ts-form-step {border:0;padding:0;margin:0;min-width:0;display:grid;gap:1.2rem}.ts-form-step legend {font-size:1.2rem;padding:0 0 1rem;line-height:1.4}
.ts-form-step .ts-review-row {display:grid;grid-template-columns:1fr 1.4fr;gap:1rem;border-bottom:1px solid var(--line);padding:.8rem 0;overflow-wrap:anywhere}
.ts-form-controls {display:flex;justify-content:space-between;gap:1rem}.ts-form-controls button {padding:.7rem 1.2rem}
.ts-password-wrap {display:flex;align-items:center;gap:.5rem}.ts-password-wrap input {width:100%;min-width:0}.ts-password-wrap button {padding:.5rem .75rem;flex-shrink:0}
.catalog-page {max-width:1240px;margin:auto;padding:2.5rem 1.25rem}.page-heading {padding:0 0 1.5rem}.page-heading h1 {font-size:clamp(2rem,3.8vw,3rem);margin:.7rem 0}
.catalog-layout {grid-template-columns:220px minmax(0,1fr);gap:2rem}.filters {padding:1.5rem;border-radius:12px;border:1px solid var(--line);background:var(--surface);align-self:start;position:static}
.filters label {margin-bottom:1rem}.filters h2 {font-size:1.2rem}.detail-panel {display:none}.course-list {gap:1.2rem}
.catalog-card {grid-template-columns:150px minmax(0,1fr) 120px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1.25rem;gap:1.2rem;box-shadow:none}
.catalog-card h2 {font-size:1.35rem}.catalog-card .subtle {font-size:.9375rem}.catalog-card>div:nth-child(2)>p:nth-child(3) {display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.catalog-card-cover {min-width:0;align-self:start}.card-price {gap:.8rem}.card-price strong {font-size:1.2rem}.card-price a {text-align:center}
.ts-filter-clear {width:100%;margin-top:.5rem}.ts-catalog-help {padding:1rem 1.3rem;background:var(--redesign-soft);border-radius:10px;margin-bottom:1.5rem}
.cl-hero {background:var(--surface)!important;padding:2.8rem 0;border-bottom:1px solid var(--line)}.cl-wrap {max-width:1240px}.cl-title {font-size:clamp(2rem,3.6vw,3rem)}.cl-subtitle {font-size:1.125rem;max-width:60ch}
.cl-hero .cl-wrap {gap:3rem}.cl-hero-media {max-width:360px}.cl-layout {gap:2rem;padding-top:2rem}.cl-section,.cl-purchase {background:var(--surface)!important;border:1px solid var(--line);border-radius:12px;box-shadow:none;padding:1.6rem}
.cl-purchase {max-height:none;overflow:visible;top:1.5rem;position:sticky;align-self:start}.cl-price {font-size:2rem;color:var(--ink)!important}.cl-section h2 {font-size:1.45rem}.cl-rating-badge {color:var(--gold)!important}.cl-content-header {gap:1rem;flex-wrap:wrap}
.cl-section-btn {background:var(--paper);color:var(--ink);border-color:var(--line);min-height:60px}.cl-lecture {font-size:.9375rem}.cl-includes li {font-size:.9375rem}.cl-purchase .lead-capture {border-top:1px solid var(--line);padding-top:1.2rem}
.dashboard-header {padding:.85rem 1.5rem}.dashboard-shell {grid-template-columns:246px minmax(0,1fr);max-width:none;gap:0}.dashboard-main {padding:2rem 2.5rem;min-width:0;max-width:1600px;width:100%}
.dashboard-nav {background:var(--surface);border:0;border-right:1px solid var(--line);padding:1.3rem 1rem;position:sticky;top:0;height:100dvh;overflow:auto;display:block}
.dashboard-nav a {display:flex;align-items:center;min-height:44px;padding:.65rem .85rem;font-size:.9375rem;color:var(--muted);border-radius:8px;border:0;margin:.2rem 0}
.dashboard-nav a.selected {background:var(--redesign-soft);color:var(--redesign-accent);border:0}.dashboard-nav .nav-group {margin-bottom:1.3rem}.nav-group-label {font-size:.875rem;color:var(--muted);margin:.5rem .85rem;letter-spacing:.04em}
.dashboard-title h1 {font-size:2rem}.panel,.dashboard-section.panel,.stat-card {background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:none}.panel {padding:1.6rem}.panel-head {gap:1rem;flex-wrap:wrap}.panel-head h2 {font-size:1.5rem}.panel-head p {font-size:.9375rem}
.stat-grid {gap:1rem}.stat-card {padding:1.4rem}.stat-card strong {font-size:2rem}.record-list {gap:1rem}.record-card,.record-row,.course-record {border-color:var(--line);border-radius:10px;background:var(--surface)}
.ts-next-steps {padding:1.7rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:1.5rem}.ts-next-steps h2 {margin:0 0 .5rem;font-size:1.5rem}.ts-next-steps .ts-actions {margin-bottom:0}
.ts-nav-search {width:100%;margin-bottom:1rem}.ts-nav-toggle {display:none}.ts-nav-empty {font-size:.875rem;color:var(--muted)}
.cw-overlay {background:var(--paper);color:var(--ink)}.cw-head,.cw-foot {background:var(--surface);border-color:var(--line)}.cw-rail {background:var(--surface);border-color:var(--line);width:250px}.cw-rail-step {background:transparent;color:var(--muted);min-height:56px}.cw-rail-step.active {background:var(--redesign-soft);color:var(--redesign-accent)}.cw-body {max-width:1000px;padding:2rem 3rem}.cw-q {font-size:1.7rem}.cw-hint,.cw-microhint {color:var(--muted);font-size:.9375rem}.cw-label {font-size:1rem}.cw-foot button {min-height:48px}.cw-field {margin:1.2rem 0}
table {width:100%;border-collapse:collapse;font-size:.9375rem} th,td {padding:.8rem;text-align:left;border-bottom:1px solid var(--line)} th {color:var(--muted);background:var(--paper)}
.table-wrap,.table-scroll,.report-table {overflow:auto}.empty-state {padding:2rem;border:1px dashed var(--line);border-radius:10px;background:var(--surface);color:var(--muted);font-size:1rem}
.skip-link,#skip-to-content {position:fixed;top:-100px;left:1rem;z-index:10000;background:var(--surface);color:var(--ink);padding:.8rem}.skip-link:focus,#skip-to-content:focus {top:1rem}
@media(max-width:1000px) {.ts-hero{gap:2rem}.site-header .desktop-nav{gap:1rem}.site-header .search-bar{order:5;max-width:none;flex-basis:100%}.dashboard-main{padding:1.5rem}.catalog-card{grid-template-columns:110px minmax(0,1fr)}.card-price{grid-column:2;flex-direction:row;align-items:center}.auth-layout{gap:2rem}.cl-hero-media{max-width:290px}.ts-course-card{grid-template-columns:130px 1fr}}
@media(max-width:760px) {
 .site-header {padding:1rem 1.25rem;gap:1rem}.desktop-nav {display:flex;order:4;width:100%;overflow:auto}.header-actions{gap:.45rem}.header-actions a{padding:9px 12px}.site-header .brand{font-size:1.1rem}.site-header .lang-switch{display:none}
 .ts-hero{grid-template-columns:1fr;padding:2.5rem 0 1rem;gap:1.5rem}.ts-hero h1{font-size:2.5rem}.ts-guide{padding:1.4rem}.ts-section{padding:1.7rem 0}.ts-section-head{align-items:start}.ts-steps{grid-template-columns:1fr;gap:1rem}.ts-teach{padding:1.5rem;display:block}.ts-course-card{grid-template-columns:90px 1fr;padding:1rem;gap:1rem}.ts-cover{padding:.5rem}.ts-cover img{width:40px;height:40px}
 .auth-layout{grid-template-columns:1fr;margin:1.5rem auto;gap:1rem}.auth-promise{padding:0}.auth-promise h1{font-size:2rem}.auth-list{display:none}.login-card{padding:1.3rem}.ts-form-progress li{font-size:.8125rem}.ts-form-step .ts-review-row{grid-template-columns:1fr;gap:.3rem}
 .catalog-layout{grid-template-columns:1fr;gap:1rem}.filters{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;padding:1rem}.filters h2,.filters .ts-filter-clear{grid-column:1/-1}.filters label{margin:0}.catalog-card{grid-template-columns:80px minmax(0,1fr);padding:1rem}.catalog-card h2{font-size:1.2rem}
 .cl-hero .cl-wrap{display:block}.cl-hero-media{display:none}.cl-layout{display:flex;flex-direction:column;gap:1.3rem}.cl-purchase{position:static;width:100%;order:-1;max-height:none}.cl-main{width:100%}.cl-section,.cl-purchase{padding:1.2rem}.cl-hero{padding:2rem 0}.cl-title{font-size:2rem}.cl-lecture{flex-wrap:wrap}
 .dashboard-shell{display:block}.dashboard-header{padding:1rem;gap:.5rem}.session-actions{margin-left:auto}.session-actions span{max-width:140px;overflow:hidden;text-overflow:ellipsis}.dashboard-nav{position:static;height:auto;max-height:65dvh;border-right:0;border-bottom:1px solid var(--line);display:none}.dashboard-body.ts-menu-open .dashboard-nav{display:block}.ts-nav-toggle{display:inline-block;padding:.5rem .8rem}.dashboard-main{padding:1.25rem}.dashboard-title{align-items:start;gap:1rem;flex-wrap:wrap}.dashboard-title h1{font-size:1.7rem}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ts-next-steps{padding:1.25rem}
 .cw-body{padding:1.5rem}.cw-rail{display:none}.cw-shell{display:block}.cw-main{width:100%}.cw-foot{padding:1rem;flex-wrap:wrap}.cw-head{gap:.6rem;flex-wrap:wrap}.cw-q{font-size:1.5rem}.cw-step-label{font-size:.875rem}.panel{padding:1.2rem}.chat-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
