.course-intro { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:clamp(30px,6vw,82px); padding-block:clamp(53px,7vw,103px); align-items:center; }
.course-intro h1 { font-size:clamp(40px,6.1vw,85px); line-height:.99; max-width:12ch; margin-top:15px; overflow-wrap:anywhere; }
.course-intro .sales-lead { margin-top:22px; max-width:44ch; }
.course-price { margin-top:18px; font-size:18px; }
.course-price strong { font-size:22px; }
.course-hint { margin-top:15px; color:var(--muted); font-size:16px; max-width:60ch; }
.course-case { background:var(--ink); border-top:4px solid var(--accent); color:white; padding:clamp(23px,3.3vw,47px); border-radius:3px; }
.course-case h2 { font-size:clamp(28px,3.1vw,45px); line-height:1.13; margin-top:12px; max-width:17ch; }
.course-case .eyebrow { color:#d4e0e8; }
.course-case p:last-child { color:#e6eef4; font-size:17px; line-height:1.5; }
.course-case dl { margin:22px 0 17px; }
.course-case dl div { display:flex; justify-content:space-between; gap:6px 15px; padding:10px 0; border-top:1px solid #435666; }
.course-case dt { color:#d0dce6; font-size:15px; }
.course-case dd { margin:0; font-weight:700; font-size:16px; text-align:right; }
.course-facts-band { background:var(--surface-muted); border-block:1px solid var(--line); }
.course-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px 25px; margin-block:0; padding-block:21px; }
.course-facts dt { color:var(--muted); font-size:15px; }
.course-facts dd { margin:2px 0 0; font-size:clamp(17px,1.8vw,24px); font-weight:700; line-height:1.25; }
.course-outline { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 33px; list-style:none; margin:25px 0 0; padding:0; }
.course-outline li { display:flex; gap:16px; border-top:1px solid var(--line); padding:16px 0; }
.course-outline li > span { color:var(--accent); font-weight:700; font-size:16px; }
.course-outline h3 { font-size:clamp(20px,2.15vw,30px); line-height:1.25; }
.course-outline p { margin-top:5px; color:var(--muted); }
.course-main { min-height:66vh; padding-block:clamp(35px,5.3vw,75px); }
.course-main h1 { font-size:clamp(34px,4.5vw,62px); line-height:1.08; margin-top:8px; overflow-wrap:anywhere; }
.course-main h2 { font-size:clamp(26px,3.1vw,42px); line-height:1.15; }
.course-main h3 { font-size:clamp(21px,2.5vw,28px); line-height:1.22; }
.course-main .button { border:0; cursor:pointer; font-family:var(--sans); }
.course-main button:disabled { opacity:.65; cursor:wait; }
.course-main [hidden] { display:none!important; }
.course-main :focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.course-auth, .course-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(22px,4vw,60px); align-items:start; }
.course-workspace { grid-template-columns:minmax(200px,.31fr) minmax(0,1fr); gap:clamp(19px,3vw,42px); }
.course-card { background:white; border:1px solid var(--line); border-radius:3px; padding:clamp(18px,3.1vw,35px); min-width:0; }
.course-narrow { max-width:780px; margin-inline:auto; }
.course-field { display:grid; gap:6px; margin:16px 0; font-size:16px; font-weight:700; }
.course-field input { width:100%; min-width:0; font:400 16px/1.4 var(--sans); border:1px solid #8498a8; background:white; color:var(--ink); border-radius:3px; min-height:46px; padding:8px 11px; }
.course-field small { color:var(--muted); font-weight:400; font-size:14px; }
.course-code { font-family:ui-monospace,monospace!important; overflow-wrap:anywhere; }
.course-actions { display:flex; flex-wrap:wrap; gap:9px 18px; align-items:center; margin-top:17px; }
.course-quiet { background:white; color:var(--ink); border:1px solid #9aabba; border-radius:3px; font:700 15px/1.4 var(--sans); padding:7px 12px; min-height:41px; cursor:pointer; }
.course-quiet:hover { background:var(--surface-muted); }
.course-error, .course-success { font-weight:700; color:#901e2c; font-size:16px; margin-top:10px; }
.course-success { color:#235648; }
.course-app-top { display:flex; justify-content:space-between; gap:13px 22px; align-items:flex-end; flex-wrap:wrap; margin-bottom:21px; }
.course-sidebar { background:var(--surface-muted); border:1px solid var(--line); border-radius:3px; padding:16px; }
.course-sidebar > p { font-weight:700; font-size:16px; }
.course-sidebar progress { width:100%; height:10px; display:block; margin:9px 0 14px; accent-color:var(--accent); }
.course-steps, .course-codes { margin:0; padding:0; list-style:none; display:grid; gap:7px; }
.course-step { width:100%; min-height:44px; background:white; color:var(--ink); border:1px solid var(--line); border-radius:3px; text-align:left; font:700 15px/1.35 var(--sans); padding:9px 11px; cursor:pointer; }
.course-step small { display:block; font-weight:400; font-size:13px; margin-top:3px; }
.course-step[aria-current="step"] { background:var(--ink); border-color:var(--ink); color:white; }
.course-step:hover { border-color:#697e91; }
.course-card > .eyebrow { margin-bottom:9px; }
.course-lesson { margin-top:23px; }
.course-lesson p, .course-intro p.course-hint { margin-top:9px; }
.course-lesson p, .course-card > p:not(.eyebrow) { color:var(--muted); max-width:69ch; }
.course-card > p:not(.eyebrow) { margin-top:9px; }
.course-exercise, .course-result { background:var(--surface-muted); border-left:3px solid var(--accent); padding:14px 17px; margin-top:19px; }
.course-exercise details { margin-top:9px; }
.course-exercise summary { font-weight:700; cursor:pointer; }
.course-question { border:0; border-top:1px solid var(--line); padding:11px 0 0; min-inline-size:0; margin:17px 0 0; }
.course-question legend { padding:0; font-size:17px; font-weight:700; }
.course-option { display:flex; align-items:baseline; gap:10px; margin-top:6px; padding:8px 10px; border:1px solid var(--line); border-radius:3px; font-size:16px; line-height:1.45; cursor:pointer; }
.course-option:has(:checked), .course-option:hover { background:var(--surface-muted); border-color:#8094a4; }
.course-option input { accent-color:var(--accent); flex:none; }
.course-codes { margin-top:17px; }
.course-codes li { display:flex; flex-wrap:wrap; gap:6px 15px; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding:10px 0; }
.course-codes small { display:block; font-size:14px; color:var(--muted); }
@media(max-width:820px) {
  .course-intro,.course-auth,.course-workspace { grid-template-columns:minmax(0,1fr); }
  .course-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:580px) {
  .course-outline { grid-template-columns:minmax(0,1fr); }
  .course-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .course-card { padding-inline:15px; }
}

/* Курс v2: шаги урока, таблицы, ответы, модуль Фонда, таймер теста */
.course-lead { font-size:18px; color:var(--muted); margin:6px 0 18px; max-width:62ch; }
.course-stepper { min-height:200px; }
.course-lesson h3 { margin-top:6px; }
.course-lesson ol, .course-lesson ul { margin:10px 0 10px 22px; padding:0; }
.course-lesson li { margin:6px 0; line-height:1.5; }
.course-lesson li > ul { margin-top:4px; }
.course-table { overflow-x:auto; margin:16px 0; border:1px solid var(--line); border-radius:3px; }
.course-table table { border-collapse:collapse; width:100%; min-width:520px; font-size:15px; }
.course-table th, .course-table td { text-align:left; vertical-align:top; padding:9px 11px; border-bottom:1px solid var(--line); }
.course-table th { background:var(--surface-muted); font-size:13px; letter-spacing:.02em; }
.course-table tr:last-child td { border-bottom:0; }
.course-quote { margin:16px 0; padding:14px 18px; border-left:4px solid var(--accent); background:var(--surface-muted); font-size:17px; line-height:1.55; }
.course-answer { margin:12px 0; border:1px dashed var(--line); border-radius:3px; padding:8px 12px; }
.course-answer summary { cursor:pointer; color:var(--accent); font-weight:700; }
.course-answer p { margin-top:8px; }
.course-work textarea { width:100%; min-width:0; font:400 16px/1.5 var(--sans); border:1px solid #8498a8; background:white; color:var(--ink); border-radius:3px; padding:10px 12px; resize:vertical; }
.course-step-nav { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:22px; padding-top:16px; border-top:1px solid var(--line); }
.course-step-nav .course-hint { margin:0; }
.course-steps-group { list-style:none; margin:14px 0 4px; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); }
.course-module { margin-top:18px; padding-top:14px; border-top:1px solid var(--line); font-size:15px; }
.course-module .course-hint { font-size:14px; margin-top:6px; }
.course-timer { font:700 20px var(--sans); color:var(--accent); margin:6px 0 0; font-variant-numeric:tabular-nums; }
.course-feedback { margin-top:28px; padding-top:18px; border-top:1px solid var(--line); }
.course-feedback-admin { margin-top:28px; }
.course-feedback-admin li p { margin-top:6px; font-size:15px; }

.course-extension { margin-top: 28px; padding: clamp(18px, 3vw, 28px); border-inline-start: 3px solid var(--accent); background: var(--surface-muted); scroll-margin-top: 110px; }
.course-extension h3 { margin: 8px 0; }

.course-access { scroll-margin-top: 110px; }
.course-access-steps { max-width: 70ch; margin: 20px 0 0; padding-inline-start: 1.45em; }
.course-access-steps li + li { margin-top: 10px; }

/* Чтение урока и навигация по шагам */
.course-menu > summary { cursor:pointer; font-weight:700; font-size:16px; }
.course-menu > summary span { float:inline-end; color:var(--muted); font-size:14px; }
.course-step-overview { display:grid; gap:8px; margin-block:20px 17px; scroll-margin-top:110px; }
.course-step-count { font-size:14px; font-weight:700; color:var(--muted); }
.course-step-overview progress { width:100%; height:8px; accent-color:var(--accent); }
.course-step-overview select { width:100%; min-width:0; border:1px solid var(--line); border-radius:4px; padding:9px; background:var(--surface-muted); color:var(--ink); font:inherit; font-size:16px; text-overflow:ellipsis; }
.course-lead { background:var(--surface-muted); border-inline-start:3px solid var(--accent); padding:14px 17px; max-width:none; }
.course-lesson { margin-top:15px; }
.course-lesson h3 { margin-bottom:14px; }
.course-lesson p { line-height:1.62; }
.course-stepper > .course-lead,
.course-stepper .course-lesson > p:not(.eyebrow):not(.course-source),
.course-stepper .course-lesson > :is(ul, ol, blockquote),
.course-stepper .course-answer > p {
  text-align:justify;
  hyphens:auto;
}
.course-lesson .course-lesson-kind { color:var(--accent); margin-top:0; }
.course-lesson-example, .course-lesson-practice { border:1px solid var(--line); border-top:3px solid var(--accent); border-radius:4px; padding:clamp(14px, 2.5vw, 24px); }
.course-lesson-example { background:var(--surface-muted); }
.course-lesson .course-key-point { background:#f3f6f8; color:var(--ink); border-inline-start:3px solid var(--accent); padding:12px 15px; max-width:none; }
.course-table-frame { margin:16px 0; min-width:0; }
.course-table-frame .course-table { margin:0; }
.course-table tbody tr:nth-child(even) { background:#f6f8fa; }
.course-lesson .course-table-hint { display:none; font-size:13px; margin:0 0 6px; }
.course-diagram { margin:17px 0; }
.course-diagram figcaption { color:var(--ink); font-size:15px; font-weight:700; margin-bottom:9px; }
.course-diagram ol { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%, 125px),1fr)); gap:7px; list-style:none; margin:0; }
.course-diagram li { margin:0; padding:10px 12px; border-top:3px solid var(--accent); background:var(--surface-muted); border-radius:2px; }
.course-diagram li strong, .course-diagram li span { display:block; }
.course-diagram li span { font-size:14px; margin-top:3px; }
@media (max-width: 580px) {
  .course-lesson .course-table-hint { display:block; }
  .course-step-nav { flex-wrap:wrap; }
}

.course-app-top h1 { font-size:clamp(27px, 3.2vw, 43px); }
.course-lesson .course-inline-example { background:var(--surface-muted); color:var(--ink); padding:12px 15px; border-radius:4px; max-width:none; }
.course-activity { margin-block:24px 5px; padding:clamp(14px, 3vw, 22px); border:1px solid var(--line); border-top:3px solid var(--accent); border-radius:4px; background:#fff; }
.course-activity h4 { margin:0; font-size:clamp(20px, 2.6vw, 25px); line-height:1.25; }
.course-activity .course-question + .course-question { margin-top:22px; }
:is(.course-activity, .course-classification) .course-question .course-hint:not([hidden]) { max-width:none; padding:9px 12px; background:var(--surface-muted); color:var(--ink); border-inline-start:3px solid var(--accent); }
.course-classification .course-question { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 126px), 1fr)); column-gap:8px; margin-top:14px; }
.course-classification .course-question .course-hint { grid-column:1 / -1; }
.course-matching .course-question { grid-template-columns:minmax(0, 1fr); border:1px solid var(--line); border-radius:5px; padding:0 13px 13px; }
.course-matching .course-question legend { padding-inline:4px; max-width:100%; }
.course-matching select { width:100%; min-height:44px; margin-top:10px; padding:8px 10px; border:1px solid #8094a4; border-radius:4px; color:var(--ink); background:var(--surface-muted); font:inherit; font-size:16px; }
.course-lesson .course-inline-example { border-inline-start:3px solid #8197a9; }
.course-matrix tbody td { text-align:center; font-weight:700; }
.course-matrix tbody td.course-matrix-low { background:#e3f0e9; color:#184c36; }
.course-matrix tbody td.course-matrix-moderate { background:#fcf0d8; color:#654306; }
.course-matrix tbody td.course-matrix-critical { background:#f7dee2; color:#792132; }
.course-matrix-short { display:none; }
@media (max-width: 700px) {
  .course-matrix .course-table table { min-width:0; table-layout:fixed; }
  .course-matrix .course-table :is(th, td) { text-align:center; padding:8px 3px; }
  .course-matrix-full { display:none; }
  .course-matrix-short { display:inline; }
  .course-lesson .course-matrix-axes { display:block; color:var(--muted); font-size:14px; margin:0 0 6px; }
}

.course-prompt-list > li { margin-block: 14px; }
.course-prompt-list .course-work { margin: 8px 0 14px; }
.course-old-draft textarea { width:100%; margin-top:10px; padding:10px; font:inherit; resize:vertical; border:1px solid var(--line); }
