[hidden]{display:none!important}
input,textarea,select,button{font:inherit}
.student-name input,.test-share-link input,.admin-login input,.admin-editor input,.admin-editor textarea,.admin-editor select{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
.student-name input,.test-share-link input,.admin-login input,.admin-editor input,.admin-editor select{min-height:50px;padding:0 15px}
.admin-editor textarea{padding:13px 15px;resize:vertical;line-height:1.55}
.test-answer input{width:21px;height:21px;flex:0 0 21px;margin:0;accent-color:var(--dark)}
.test-submit,.test-result-actions button,.php-primary,.admin-login button,.admin-editor button{min-height:48px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--dark);border-radius:11px;background:var(--dark);color:#fff;font-weight:800;cursor:pointer}
.test-submit{width:100%;min-height:56px!important;background:var(--dark)!important;color:#fff!important;opacity:1!important}
.test-submit:hover,.test-result-actions button:hover,.admin-login button:hover,.admin-editor button:hover{background:#263d50}
.test-submit-wrap{margin-top:22px}.test-submit-wrap>p:first-child{margin:0 0 8px;color:var(--muted);font-size:14px}.test-form-error{min-height:24px;margin:9px 0 0;color:#a0443e;font-size:15px;font-weight:700}
.test-result-actions .php-outline,.php-outline{border-color:var(--line);background:#fff;color:var(--ink)}
.test-result-actions .php-outline:hover,.php-outline:hover{background:#edf2f5;color:var(--ink)}
.test-result[hidden]{display:none!important}.test-result:not([hidden]){display:flex}
.test-result-actions button:disabled{opacity:.7;cursor:wait}
.test-share-link input{font-size:14px;font-weight:500}
.illustrated-guide{display:block}.illustrated-guide>summary{list-style:none;cursor:pointer}.illustrated-guide>summary::-webkit-details-marker{display:none}.illustrated-guide-content{padding:0 22px 24px}.php-details-label{min-width:132px;display:flex;align-items:center;justify-content:flex-end;gap:8px;color:var(--dark);font-size:14px;font-weight:800}.php-details-label i{display:none;font-style:normal}.php-details-label span{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:24px;transition:transform .2s}.illustrated-guide[open] .php-details-label b{display:none}.illustrated-guide[open] .php-details-label i{display:inline}.illustrated-guide[open] .php-details-label span{transform:rotate(180deg)}
.guide-image{padding:0;border:0;cursor:zoom-in}.guide-image img{display:block}
.php-image-modal{width:min(1000px,calc(100% - 28px));max-height:92vh;padding:22px;border:0;border-radius:18px;background:#fff;color:var(--ink);box-shadow:0 24px 90px rgba(10,24,35,.35)}.php-image-modal::backdrop{background:rgba(9,21,31,.78)}.php-image-modal>button{width:44px;height:44px;position:sticky;top:0;float:right;z-index:2;border:0;border-radius:50%;background:var(--dark);color:#fff;font-size:28px;cursor:pointer}.php-image-modal h2{margin:4px 55px 5px 0;font-size:24px}.php-image-modal p{margin:0 55px 16px 0;color:var(--muted)}.php-image-modal img{width:100%;max-height:72vh;object-fit:contain;border-radius:12px;background:#eef2f4}
.php-message-page{min-height:60vh;padding:80px 0}.php-message-page h1{font-size:clamp(34px,5vw,52px)}.php-message-page p{margin-bottom:25px;color:var(--muted)}
.admin-login{min-height:70vh;padding:60px 0;display:grid;place-items:center}.admin-login form{width:min(480px,100%);padding:30px;display:grid;gap:17px;border:1px solid var(--line);border-radius:20px;background:#fff}.admin-login h1{margin:0;font-size:32px}.admin-login label,.admin-editor label{display:grid;gap:7px;font-weight:800}.admin-login button,.admin-editor button{width:100%;min-height:52px}.admin-error{padding:12px;border-radius:10px;background:#f8e7e5;color:#8b332d}.admin-success{padding:12px;border-radius:10px;background:#e6f0e9;color:#285238}.php-outline-light{min-height:44px;padding:0 16px;display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.3);border-radius:10px;color:#fff;font-weight:700}.admin-editor{max-width:900px;margin:25px auto 0;padding:28px;display:grid;gap:20px;border:1px solid var(--line);border-radius:20px;background:#fff}.admin-editor h1{margin:0;font-size:36px}
@media(max-width:760px){.header-inner{gap:16px}.main-nav{gap:13px;overflow-x:auto}.main-nav .nav-link{white-space:nowrap}.illustrated-guide-trigger{align-items:flex-start}.php-details-label{min-width:44px}.php-details-label b,.php-details-label i{display:none!important}.test-result-actions{width:100%}.test-result-actions button{width:100%}.php-image-modal{padding:16px}.admin-editor{padding:20px 16px}}
@media(max-width:430px){.header-inner{min-height:64px}.brand>span:last-child{display:none}.main-nav{margin-right:0}.avatar{display:none}.test-submit{font-size:16px}.student-name input{font-size:16px}.php-details-label span{width:42px;height:42px;border-color:#98aeb8;background:#edf4f6;color:#10293a;font-size:26px}.shared-result-summary{grid-template-columns:1fr}}
/* --- правки по ТЗ: компактные списки, выделения, схемы --- */
.article-body .lesson-list{margin:0 0 15px;padding:0;display:grid;gap:6px;list-style:none}
.article-body .lesson-list>li{margin:0}
.article-body ol.lesson-list{counter-reset:lesson-step}
.article-body ol.lesson-list>li{counter-increment:lesson-step}
.article-body ol.lesson-list>li::before{content:counter(lesson-step) ".";width:auto;height:auto;top:13px;left:15px;background:none;border-radius:0;color:var(--accent);font-size:15px;font-weight:800}
.article-body .lesson-list-plain>li{padding:0;border:0;border-radius:0;background:none}
.article-body .lesson-list-plain>li::before{display:none}
.article-body .lesson-list-plain{gap:7px}
.article-body .lesson-list+.lesson-list{margin-top:-9px}
.article-body .lesson-p-tight{margin-top:-10px}
.article-body .lesson-note{margin:20px 0 18px}
.article-body .lesson-note:last-child{margin-bottom:0}
.article-body .lesson-note strong{margin-bottom:6px}
.article-body .lesson-note p{line-height:1.55;white-space:pre-line}
.resource-list a>span{display:grid;gap:3px}
.resource-list a small{color:var(--muted);font-size:13px;font-weight:500;line-height:1.45}
.admin-results{margin:34px 0 0;padding:26px;border:1px solid var(--line);border-radius:20px;background:#fff}
.admin-results>header{margin-bottom:16px}
.admin-results h2{margin:0 0 4px;font-size:24px}
.admin-results>header p{margin:0;color:var(--muted);font-size:15px}
.admin-results table{width:100%;border-collapse:collapse;font-size:15px}
.admin-results th,.admin-results td{padding:11px 13px;border-bottom:1px solid var(--line);text-align:left}
.admin-results th{font-weight:800;white-space:nowrap}
.admin-results tr:last-child td{border-bottom:0}
.admin-empty{margin:0;color:var(--muted)}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.course-extra{padding:44px 0 70px}
.course-extra-head{max-width:720px;margin-bottom:26px}
.course-extra-head h1{margin:8px 0 8px;font-size:clamp(30px,4vw,42px);line-height:1.15}
.course-extra-head p{margin:0;color:var(--muted);font-size:16px;line-height:1.6}
.course-search{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 26px;max-width:640px}
.course-search label{flex:1 1 260px}
.course-search input{width:100%;min-height:52px;padding:0 15px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink)}
.course-search button{min-height:52px;padding:0 22px;border:1px solid var(--dark);border-radius:11px;background:var(--dark);color:#fff;font-weight:800;cursor:pointer}
.course-search button:hover{background:#263d50}
.search-count{margin:0 0 14px;color:var(--muted)}
.search-results{display:grid;gap:12px}
.search-result{display:grid;gap:5px;padding:17px 19px;border:1px solid var(--line);border-radius:15px;background:#fff;color:inherit;text-decoration:none}
.search-result:hover{border-color:var(--accent);box-shadow:0 10px 26px rgba(24,42,58,.07)}
.search-result small{color:var(--muted);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.search-result strong{font-size:19px}
.search-result span{color:#36515a;font-size:15px;line-height:1.6}
.glossary-list{display:grid;gap:12px;margin:0}
.glossary-item{padding:17px 19px;border:1px solid var(--line);border-radius:15px;background:#fff}
.glossary-item dt{margin:0 0 5px;font-size:18px;font-weight:800}
.glossary-item dd{margin:0;color:#36515a;font-size:15px;line-height:1.6}
.glossary-item dd a{display:block;margin-top:7px;color:var(--accent);font-size:14px;font-weight:700}
.funnel{display:grid;gap:7px}
.funnel-row{display:grid;grid-template-columns:minmax(140px,2fr) 3fr 42px;align-items:center;gap:12px;font-size:14px}
.funnel-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.funnel-bar{height:12px;border-radius:99px;background:#eef2f4;overflow:hidden}
.funnel-bar i{display:block;height:100%;border-radius:99px;background:var(--accent)}
.funnel-value{text-align:right;font-weight:800}
@media(max-width:600px){.funnel-row{grid-template-columns:1fr 34px;grid-template-areas:"name value" "bar bar"}.funnel-name{grid-area:name}.funnel-value{grid-area:value}.funnel-bar{grid-area:bar}}
.my-results{margin:26px 0 0;padding:24px;border:1px solid var(--line);border-radius:18px;background:#fff}
.my-results>header{margin-bottom:14px}
.my-results h2{margin:0 0 4px;font-size:22px}
.my-results>header p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.my-results ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.my-results li{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px}
.my-results-score{font-weight:800}
.my-results-score.is-passed{color:#2f6b49}
.my-results-date{color:var(--muted);font-size:14px}
.my-results li a{margin-left:auto;color:var(--accent);font-weight:700}
.glossary-item dt span{color:var(--muted);font-weight:600}
.glossary-item dt span::before{content:"("}
.glossary-item dt span::after{content:")"}
/* --- пакет Г: типографика --- */
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif}
:root{--accent-text:#3f6a72}
.eyebrow:not(.light),.concept-eyebrow,.lesson-kicker span:first-child{color:var(--accent-text)}
.concept-hero .concept-eyebrow,.theme-slate .concept-hero .concept-eyebrow{color:#e4c7a9}
.theme-slate .concept-hero .concept-eyebrow{color:#9bcbd1}
.main-nav .nav-link{font-size:14px}
.concept-header nav{overflow-x:auto;-webkit-overflow-scrolling:touch}
.concept-header nav a{white-space:nowrap}
/* --- пакет Д: мобильное чтение --- */
.reading-progress{position:sticky;top:0;z-index:29;height:3px;background:transparent;pointer-events:none}
.reading-progress i{display:block;height:100%;width:0;background:var(--accent);transition:width .1s linear}
.php-image-stage{max-height:72vh;overflow:auto;border-radius:12px;background:#eef2f4;cursor:zoom-in;-webkit-overflow-scrolling:touch}
.php-image-stage img{display:block;width:100%;max-height:72vh;object-fit:contain;margin:0 auto}
.php-image-stage.is-zoomed{cursor:zoom-out}
.php-image-stage.is-zoomed img{width:auto;max-width:none;max-height:none}
.php-image-hint{margin:10px 0 0!important;color:var(--muted);font-size:13px;text-align:center}
@media(max-width:760px){
  .php-image-modal{width:calc(100% - 12px);max-height:96vh;padding:12px}
  .php-image-modal h2{margin:2px 50px 4px 0;font-size:19px}
  .php-image-modal p{margin:0 50px 10px 0;font-size:14px}
  .php-image-stage,.php-image-stage img{max-height:74vh}
}
.mobile-lesson-nav{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.mobile-lesson-nav>summary{min-height:48px;display:flex;align-items:center;gap:9px;padding:0 14px;color:var(--ink);font-size:15px;font-weight:700;cursor:pointer;list-style:none}
.mobile-lesson-nav>summary::-webkit-details-marker{display:none}
.mobile-lesson-nav>summary>span{flex:1}
.mobile-lesson-nav>summary>i{font-style:normal;font-size:20px;color:var(--muted);transition:transform .2s}
.mobile-lesson-nav[open]>summary>i{transform:rotate(180deg)}
.mobile-lesson-nav nav{display:grid;border-top:1px solid var(--line)}
.mobile-lesson-nav nav a{display:flex;gap:10px;align-items:baseline;min-height:46px;padding:11px 14px;color:var(--ink);font-size:15px;line-height:1.4;border-bottom:1px solid #eef2f4;text-decoration:none}
.mobile-lesson-nav nav a:last-child{border-bottom:0}
.mobile-lesson-nav nav a>span{color:var(--muted);font-weight:700;font-size:13px;min-width:26px}
.mobile-lesson-nav nav a.is-current{background:#eef4f6;font-weight:700}
.mobile-lesson-nav .mobile-nav-all{color:var(--accent-text);font-weight:700;justify-content:center}
/* --- пакет Е: удобство --- */
.glossary-filter{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 18px}
.glossary-filter label{flex:1 1 260px}
.glossary-filter input{width:100%;min-height:50px;padding:0 15px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink)}
.glossary-filter p{margin:0;color:var(--muted);font-size:14px;white-space:nowrap}
.glossary-item[hidden]{display:none!important}
.lesson-progress-strip{margin:26px 0 14px;padding:15px 17px;border:1px solid var(--line);border-radius:14px;background:#fff}
.lesson-progress-line{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 14px;margin-bottom:10px}
.lesson-progress-line>span{font-size:15px;font-weight:700}
.lesson-progress-line>a{color:var(--accent-text);font-size:14px;font-weight:700;text-decoration:none}
.lesson-progress-line>a:hover{text-decoration:underline}
.lesson-progress-bar{display:block;height:8px;border-radius:99px;background:#eef2f4;overflow:hidden}
.lesson-progress-bar i{display:block;height:100%;width:0;border-radius:99px;background:var(--accent);transition:width .25s ease}
.php-details-label span{font-size:0}
.php-details-label span svg{display:block}
.mobile-lesson-nav>summary>i{display:inline-flex;font-size:0}
/* кружок «Развернуть» был почти невидим: рамка давала 1.35:1 к белому фону */
.php-details-label span{background:#e8f0f2;border-color:var(--accent);color:var(--dark)}
.illustrated-guide>summary:hover .php-details-label span{background:var(--accent);color:#fff}
.php-details-label{color:var(--dark)}
/* --- закрытый контур: кабинет кандидата --- */
.team-page{padding:44px 0 80px}
.team-head{max-width:700px;margin-bottom:26px}
.team-head h1{margin:8px 0 10px;font-size:clamp(28px,4vw,40px);line-height:1.15}
.team-head p{margin:0 0 8px;color:var(--muted);font-size:16px;line-height:1.6}
.team-deadline{display:inline-flex;align-items:center;gap:7px;margin:6px 0 0!important;color:var(--dark)!important;font-weight:700;font-size:15px!important}
.team-progress{max-width:700px;margin:0 0 30px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:#fff}
.team-progress>div{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}
.team-progress strong{font-size:20px}
.team-progress span{color:var(--muted);font-size:15px}
.team-bar{height:8px;border-radius:99px;background:#eef2f4;overflow:hidden}
.team-bar i{display:block;height:100%;border-radius:99px;background:var(--accent)}
.team-stages{list-style:none;margin:0;padding:0;display:grid;gap:14px;max-width:760px}
.team-stages li{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff;opacity:.62}
.team-stages li.is-open{opacity:1;border-color:var(--accent);box-shadow:0 10px 30px rgba(24,42,58,.07)}
.team-step{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#eef4f6;color:var(--dark);font-weight:800}
.team-stages li.is-open .team-step{background:var(--dark);color:#fff}
.team-stages h2{margin:0 0 6px;font-size:20px;line-height:1.3}
.team-stages p{margin:0 0 12px;color:var(--muted);font-size:15.5px;line-height:1.6}
.team-cta{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 18px;border-radius:11px;background:var(--dark);color:#fff;font-weight:700;text-decoration:none}
.team-cta:hover{background:#263d50}
.team-soon{color:var(--muted);font-size:14px;font-weight:700}
@media(max-width:600px){.team-stages li{grid-template-columns:1fr;gap:10px}}
.admin-header-actions{display:flex;gap:10px;flex-wrap:wrap}
.candidate-created{margin:0 0 20px;padding:18px 20px;border:1px solid var(--accent);border-radius:14px;background:#eef4f6}
.candidate-created strong{display:block;margin-bottom:9px}
.candidate-created input{width:100%;min-height:46px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:#fff;font-family:ui-monospace,Menlo,monospace;font-size:14px}
.candidate-created p{margin:8px 0 0;color:var(--muted);font-size:14px}
.candidate-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;align-items:end;margin:0 0 26px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}
.candidate-form label{display:grid;gap:6px;font-weight:700;font-size:14px}
.candidate-form input,.candidate-form select{min-height:46px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
.candidate-form button{min-height:46px;padding:0 20px;border:1px solid var(--dark);border-radius:10px;background:var(--dark);color:#fff;font-weight:800;cursor:pointer}
.candidate-form button:hover{background:#263d50}
.cand-state{display:inline-block;padding:3px 9px;border-radius:6px;font-size:12px;font-weight:800}
.cand-state.is-active{background:#e6f0e9;color:#2f6b49}
.cand-state.is-expired{background:#f7efe2;color:#8f5c1c}
.cand-state.is-revoked{background:#f8e7e5;color:#a0443e}
.cand-actions{display:flex;gap:8px;flex-wrap:wrap}
.cand-actions button{min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:13px;font-weight:700;cursor:pointer}
.cand-actions button:hover{border-color:var(--accent);background:#eef4f6}
.team-meta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:0 0 12px;color:var(--muted);font-size:14px}
.team-meta span{display:inline-flex;align-items:center;gap:6px}
.team-done-mark{color:#2f6b49;font-weight:800}
.team-stages li.is-done{opacity:1;border-color:#cfe0d6}
.team-stages li.is-done .team-step{background:#e6f0e9;color:#2f6b49}
.team-cta.is-quiet{background:#fff;color:var(--ink);border:1px solid var(--line)}
.team-cta.is-quiet:hover{background:#eef4f6}
.team-stage{max-width:820px;padding:34px 0 80px}
.team-stage .back-link{margin-bottom:18px}
.team-course-cta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin:0 0 26px;padding:20px 22px;border:1px solid var(--accent);border-radius:16px;background:#eef4f6}
.team-course-cta strong{display:block;margin-bottom:4px;font-size:18px}
.team-course-cta p{margin:0;color:var(--muted);font-size:15px;max-width:46ch}
.team-done{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:30px 0 0;padding-top:24px;border-top:1px solid var(--line)}
.team-done button{display:inline-flex;align-items:center;gap:9px;min-height:52px;padding:0 22px;border:1px solid var(--dark);border-radius:12px;background:var(--dark);color:#fff;font-weight:800;cursor:pointer}
.team-done button:hover{background:#263d50}
.team-done button.is-done{background:#e6f0e9;border-color:#cfe0d6;color:#2f6b49}
.team-done span{color:var(--muted);font-size:15px}
.team-stages li.is-locked{opacity:.75;border-style:dashed}
.team-stages li.is-locked .team-step{background:#f7efe2;color:#8f5c1c}
.team-lock-mark{color:#8f5c1c;font-weight:800}
.team-locked{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;margin:0 0 24px;padding:22px 24px;border:1px dashed var(--line);border-radius:16px;background:#fbf7f1;color:#8f5c1c}
.team-locked strong{display:block;margin-bottom:6px;color:var(--ink);font-size:18px}
.team-locked p{margin:0 0 14px;color:#5c4a33;font-size:15.5px;line-height:1.6;max-width:60ch}
@media(max-width:600px){.team-locked{grid-template-columns:1fr}}
.team-tests{margin:34px 0 0;max-width:760px}
.team-tests h2{margin:0 0 6px;font-size:24px}
.team-tests>p{margin:0 0 16px;color:var(--muted);font-size:15.5px}
.team-test-list{display:grid;gap:10px}
.team-test-card{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;color:inherit;text-decoration:none}
.team-test-card:hover{border-color:var(--accent);box-shadow:0 8px 22px rgba(24,42,58,.06)}
.team-test-card.is-passed{border-color:#cfe0d6;background:#f6fbf8}
.team-test-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#eef4f6;color:var(--dark)}
.team-test-card.is-passed .team-test-icon{background:#e6f0e9;color:#2f6b49}
.team-test-body{display:grid;gap:2px}
.team-test-body strong{font-size:17px}
.team-test-body small{color:var(--muted);font-size:14px}
.team-attempts{margin:0 0 14px;color:var(--muted);font-weight:700}
.team-test fieldset.test-question{margin:0 0 18px}
.team-test .test-submit{margin-top:8px}
.team-result{margin:0 0 22px;padding:22px 24px;border-radius:16px;border:1px solid var(--line);background:#fff}
.team-result.is-passed{border-color:#cfe0d6;background:#f2f9f5}
.team-result.is-retry{border-color:#e6cfcc;background:#fdf5f4}
.team-result strong{display:block;margin-bottom:6px;font-size:20px}
.team-result p{margin:0 0 12px;color:var(--muted);font-size:15.5px}
.cand-tests{display:grid;gap:4px}
.cand-test{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12px;font-weight:700;white-space:nowrap}
.cand-test.is-ok{background:#e6f0e9;color:#2f6b49}
.cand-test.is-warn{background:#f7efe2;color:#8f5c1c}
.cand-test.is-fail{background:#f8e7e5;color:#a0443e}
.cand-test.is-idle{background:#eef2f4;color:#65727e}
.cand-name{color:inherit;text-decoration:none}
.cand-name:hover strong{color:var(--accent)}
.dossier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:0 0 26px}
.dossier-card{padding:17px 19px;border:1px solid var(--line);border-radius:14px;background:#fff;display:grid;gap:3px}
.dossier-card>span{color:var(--muted);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.dossier-card strong{font-size:24px;line-height:1.2}
.dossier-card small{color:var(--muted);font-size:13px}
.dossier-stages{display:flex;flex-wrap:wrap;gap:8px}
.dossier-stage{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:99px;font-size:14px;color:var(--muted)}
.dossier-stage.is-ok{border-color:#cfe0d6;background:#f2f9f5;color:#2f6b49;font-weight:700}
.dossier-log{list-style:none;margin:0;padding:0;display:grid;gap:0}
.dossier-log li{display:grid;grid-template-columns:78px 1fr;gap:14px;padding:9px 0;border-bottom:1px solid var(--line-soft,#eef2f4);font-size:15px}
.dossier-log li:last-child{border-bottom:0}
.dossier-log time{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}
.admin-page .back-link{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px;color:var(--muted);font-weight:700;text-decoration:none}
.interview-start{display:flex;flex-wrap:wrap;gap:18px;align-items:center;justify-content:space-between;margin:0 0 26px;padding:22px 24px;border:1px solid var(--accent);border-radius:16px;background:#eef4f6}
.interview-start strong{display:block;margin-bottom:4px;font-size:19px}
.interview-start p{margin:0;color:var(--muted);font-size:15px;max-width:52ch}
.plain-list{margin:0 0 14px;padding-left:20px;display:grid;gap:5px}
.plain-list li{color:#a0443e;font-size:15px}
.footer-legal{margin:10px 0 0!important;font-size:14px}
.footer-legal a{color:inherit;opacity:.85;text-decoration:underline}
.consent-check{display:flex;gap:11px;align-items:flex-start;margin:16px 0 0;font-size:15px;line-height:1.5;cursor:pointer}
.consent-check input{width:20px;height:20px;flex:0 0 20px;margin:2px 0 0;accent-color:var(--dark)}
.consent-check a{color:var(--accent);font-weight:700}
.team-lock-progress{margin:0 0 14px!important;color:#5c4a33!important;font-size:15px!important}
.team-lock-progress strong{color:#8f5c1c}
.course-video-card.is-pending .video-frame{background:#eef2f4;border:1px dashed var(--line);display:grid;place-items:center;min-height:180px}
.video-pending{display:grid;justify-items:center;gap:8px;color:var(--muted);font-weight:700;font-size:15px}
.team-docs{margin:30px 0 0;max-width:760px}
.team-docs h2{margin:0 0 6px;font-size:23px}
.team-docs>p{margin:0 0 14px;color:var(--muted);font-size:15.5px}
.team-doc-list{display:grid;gap:9px}
.team-doc-card{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:13px;background:#fff;color:inherit;text-decoration:none}
.team-doc-card:hover{border-color:var(--accent);box-shadow:0 8px 20px rgba(24,42,58,.06)}
.team-doc-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#eef4f6;color:var(--dark)}
.team-doc-body{display:grid;gap:2px;min-width:0}
.team-doc-body strong{font-size:16px}
.team-doc-body small{color:var(--muted);font-size:13.5px;line-height:1.45}
/* вес заголовков: иерархия держалась только на размере */
.team-head h1,.team-stage h1,.team-stages h2,.team-docs h2,.team-tests h2,.course-extra-head h1{font-weight:700}
.article-body .lesson-text-card h2{font-weight:700}
.team-test-foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:10px}
.team-test-foot p{margin:0;color:var(--muted);font-size:15px}
.team-test-foot p.is-full{color:#2f6b49}
.team-test-foot .test-submit{width:auto;min-width:220px;margin-top:0}

/* разбор ответов после попытки теста */
.test-review { margin-top: 28px; }
.test-review h2 { font-size: 1.35rem; margin: 0 0 4px; }
.test-review-lead { color: var(--muted); margin: 0 0 18px; }
.test-review-item {
  border: 1px solid var(--line);
  border-left: 3px solid #2e6b4f;
  border-radius: 0 10px 10px 0;
  background: #fff;
  padding: 18px 22px;
  margin-bottom: 12px;
}
.test-review-item.is-wrong { border-left-color: #b3261e; }
.test-review-item h3 {
  display: flex;
  gap: 10px;
  align-items: baseline;
  font-size: 1.02rem;
  line-height: 1.45;
  margin: 0 0 12px;
}
.test-review-item h3 span {
  flex: none;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
  font-weight: 500;
}
.test-review-answer { margin: 0 0 8px; padding-left: 14px; border-left: 2px solid var(--line); }
.test-review-answer span {
  display: block;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 2px;
}
.test-review-answer.is-right { border-left-color: #2e6b4f; }
.test-review-answer.is-bad { border-left-color: #b3261e; }
.test-review-why { margin: 12px 0 0; color: var(--muted); }

/* рабочие термины: отдельный раздел словаря, виден только кандидату */
.glossary-working { margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--line); }
.glossary-working h2 { font-size: 1.35rem; margin: 0 0 4px; }
.glossary-working > p { color: var(--muted); margin: 0 0 20px; }

/* упражнения: тренировка с разбором, а не проверка */
.exercise {
  border: 1px solid var(--line);
  border-left: 3px solid var(--accent);
  border-radius: 0 14px 14px 0;
  background: #fff;
  padding: 22px 26px;
  margin: 22px 0;
}
.exercise.is-done { border-left-color: #2e6b4f; }
.exercise-head { margin-bottom: 16px; }
.exercise-mark {
  display: inline-block;
  font-size: 0.76rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 8px;
}
.exercise.is-done .exercise-mark { color: #2e6b4f; }
.exercise-head h3 { font-size: 1.06rem; line-height: 1.45; margin: 0; }
.exercise-situation {
  margin: 0 0 12px;
  padding: 12px 16px;
  border-radius: 10px;
  background: #f4f6f7;
  color: var(--dark);
}
.exercise-options { display: grid; gap: 8px; }
.exercise-option {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  width: 100%;
  text-align: left;
  font: inherit;
  color: inherit;
  cursor: pointer;
  padding: 13px 16px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
  transition: border-color 0.15s, background 0.15s;
}
.exercise-option:hover { border-color: var(--accent); }
.exercise-letter {
  flex: none;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: #eef2f3;
  display: grid;
  place-items: center;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--muted);
}
.exercise-option.is-right { border-color: #2e6b4f; background: #f2f9f5; }
.exercise-option.is-right .exercise-letter { background: #2e6b4f; color: #fff; }
.exercise-option.is-wrong { border-color: #b3261e; background: #fdf5f4; }
.exercise-option.is-wrong .exercise-letter { background: #b3261e; color: #fff; }
.exercise-feedback {
  margin: 14px 0 0;
  padding-left: 14px;
  border-left: 2px solid var(--line);
  color: var(--muted);
}
.exercise-feedback.is-right { border-left-color: #2e6b4f; }
.exercise-feedback.is-wrong { border-left-color: #b3261e; }
.exercise-field textarea {
  width: 100%;
  font: inherit;
  color: inherit;
  padding: 13px 16px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
  resize: vertical;
}
.exercise-field textarea:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.exercise-hint { margin: 10px 0 14px; color: var(--muted); font-size: 0.92rem; }
.exercise-reveal, .exercise-reset {
  font: inherit;
  cursor: pointer;
  padding: 10px 18px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  color: inherit;
}
.exercise-reveal:disabled { opacity: 0.5; cursor: default; }
.exercise-reveal:not(:disabled):hover, .exercise-reset:hover { border-color: var(--accent); }
.exercise-sample {
  margin-top: 16px;
  padding: 16px 20px;
  border-radius: 12px;
  background: #f2f9f5;
  border: 1px solid #cfe0d6;
}
.exercise-sample strong { display: block; margin-bottom: 6px; }
.exercise-sample p { margin: 0; }
.exercise-why { margin: 12px 0 0; color: var(--muted); }
/* M-09: типичная ошибка в разборе задания. */
.exercise-mistake { margin: 12px 0 0; color: var(--muted); }
.exercise-mistake strong, .exercise-sample .exercise-mistake strong { display: inline; margin: 0; color: var(--dark); }
.exercise-answer {
  list-style: decimal;
  margin: 0 0 14px;
  padding-left: 22px;
  display: grid;
  gap: 8px;
  min-height: 8px;
}
.exercise-answer:empty { margin-bottom: 0; }
/* общие стили списков урока добавляют отступ — внутри упражнения он лишний */
.exercise-answer li { padding: 0; margin: 0; }
.exercise-answer li::marker { color: var(--muted); }
.exercise-bank { display: grid; gap: 8px; }
.exercise-step {
  display: block;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
  width: 100%;
}
.exercise-step:hover { border-color: var(--accent); }
.exercise-answer .exercise-step { cursor: default; border-style: dashed; }
.exercise-order-actions { margin-top: 14px; }
.team-done button:disabled { opacity: 0.55; cursor: default; }
.team-done span.is-full { color: #2e6b4f; }

/* --- L-01: предупреждение администратору о незаполненных реквизитах оператора --- */
.admin-notice{margin:20px 0 0;padding:18px 20px;display:grid;gap:8px;border:1px solid #d8b48a;border-left-width:4px;border-radius:14px;background:#fdf6ec;color:#5c4326}
.admin-notice h2{margin:0;font-size:18px;line-height:1.35}
.admin-notice p{margin:0;font-size:15px;line-height:1.5}
.admin-notice a{color:#7a4f1a;text-decoration:underline}
.admin-notice code{padding:1px 5px;border-radius:5px;background:#f0e2cd;font-size:14px}

/* --- M-01: разбор ответов итогового теста ученика --- */
.test-review h3,.test-repeat h3{margin:0 0 14px;font-size:1.25rem}
.test-review{margin-top:26px}
.test-review-item{margin:0 0 14px;padding:16px 18px;border:1px solid var(--line);border-left:3px solid #2e6b4f;border-radius:14px;background:#fff}
.test-review-item.is-wrong{border-left-color:#b3261e}
.test-review-item h4{margin:0 0 10px;font-size:1rem;line-height:1.45;font-weight:800}
.test-review-badge{margin-right:8px;padding:2px 9px;display:inline-block;border-radius:999px;background:#e6f0e9;color:#285238;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.test-review-item.is-wrong .test-review-badge{background:#f8e7e5;color:#8b332d}
.test-review-answer span{margin-right:6px;display:block;color:var(--muted);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.test-review-mistake{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:#f8e7e5;color:#7a2e28;font-size:15px;line-height:1.5}
.test-review-link{margin-top:12px;min-height:44px;padding:0 14px;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:10px;font-weight:700;text-decoration:none}
.test-review-link:hover{background:#eef3f5}
.test-repeat{margin-top:24px;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:#f4f8f9}
.test-repeat ul{margin:0;padding:0;display:grid;gap:10px;list-style:none}
.test-repeat li{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.test-repeat li a{font-weight:700}
.test-repeat li.is-critical a{color:#8b332d}
.test-repeat-tag{padding:2px 9px;border-radius:999px;background:#f8e7e5;color:#8b332d;font-size:12px;font-weight:800}

/* --- C-02: калькулятор размера позиции --- */
.calculator{margin:18px 0;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff}
.calculator-grid{margin:16px 0 0;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.calculator-field{display:grid;gap:6px;font-weight:700}
.calculator-field>span{display:grid;gap:2px;font-size:15px;line-height:1.35}
.calculator-field small{color:var(--muted);font-size:13px;font-weight:600}
.calculator-field input{min-height:48px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:16px;font-weight:700}
.calculator-field input:focus-visible{outline:2px solid #3f6a72;outline-offset:1px}
.calculator-result{margin-top:18px;padding:14px 16px;border-radius:12px;background:#eef3f5;font-size:16px;line-height:1.5;font-weight:700}
.calculator-result.is-ok{background:#e6f0e9;color:#23503a}
.calculator-result.is-blocked{background:#f8e7e5;color:#7a2e28}
.calculator-result.is-invalid{background:#fdf6ec;color:#5c4326}
.calculator-steps{margin:14px 0 0;padding:0 0 0 22px;display:grid;gap:7px;color:var(--muted);font-size:15px;line-height:1.5}
.calculator-steps li{margin:0}
.calculator-help{margin-top:16px}
.calculator-help summary{min-height:44px;display:flex;align-items:center;font-weight:800;cursor:pointer}
.calculator-help p{margin:8px 0 0;color:var(--muted);font-size:15px;line-height:1.55}
.calculator-note{margin:14px 0 0;color:var(--muted);font-size:14px;line-height:1.5}
@media(max-width:430px){.calculator{padding:16px 14px}.calculator-grid{grid-template-columns:1fr}}

/* следующий блок ещё закрыт: переход работает, страница объяснит почему */
.lesson-pagination .next.is-locked { opacity: 0.75; }
.lesson-pagination .next.is-locked small { color: #8f5c1c; }

/* --- C-05: предупреждение перед инструкцией с реальными деньгами --- */
.guide-caution{margin:0 0 18px;padding:20px;border:1px solid #d8b48a;border-left:4px solid #c98a3c;border-radius:16px;background:#fdf6ec;color:#4d3a22}
.guide-caution h2{margin:0 0 10px;display:flex;gap:9px;align-items:center;font-size:1.15rem;line-height:1.3}
.guide-caution h2 svg{flex:0 0 auto}
.guide-caution p{margin:0 0 10px;font-size:15px;line-height:1.55}
.guide-caution ul{margin:0 0 14px;padding:0 0 0 20px;display:grid;gap:7px;font-size:15px;line-height:1.5}
.guide-caution-link{min-height:46px;padding:0 16px;display:inline-flex;gap:8px;align-items:center;border-radius:10px;background:#7a4f1a;color:#fff;font-weight:700;text-decoration:none}
.guide-caution-link:hover{background:#5f3d14}
.guide-caution-footer{margin:12px 0 0;font-size:14px;opacity:.85}

/* возврат к адаптации: виден кандидату на всех страницах клиентского курса */
.back-to-team {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 15px;
  border-radius: 999px;
  border: 1px solid var(--accent);
  color: var(--accent);
  background: #fff;
  font-size: 0.9rem;
  font-weight: 500;
  white-space: nowrap;
  text-decoration: none;
}
.back-to-team:hover { background: var(--accent); color: #fff; }
.back-to-team svg { flex: none; }
/* шапка главной светлая — кнопка возврата должна быть такой же заметной, как везде */
.concept-header .back-to-team { flex: none; }

/* --- M-06: результат урока и предварительные знания --- */
.lesson-frame{margin:0 0 20px;padding:16px 18px;display:grid;gap:12px;border:1px solid var(--line);border-radius:14px;background:#f4f8f9}
.lesson-frame-item{display:grid;gap:3px}
.lesson-frame-item>span{color:var(--muted);font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.lesson-frame-item>p{margin:0;font-size:16px;line-height:1.5;font-weight:600}
.lesson-frame-item a{font-weight:700;text-decoration:underline}
@media(min-width:760px){.lesson-frame{grid-template-columns:1fr auto;gap:20px 26px;align-items:start}}

/* --- C-06: расчётное упражнение --- */
.exercise-calc-row{margin-top:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.exercise-calc-row .exercise-field{margin:0;flex:0 1 190px}
.exercise-calc-row input{width:100%;min-height:48px;padding:0 12px;border:1px solid var(--line);border-radius:10px;font-size:16px;font-weight:700}
.exercise-calc-row input:focus-visible{outline:2px solid #3f6a72;outline-offset:1px}
.exercise-unit{color:var(--muted);font-size:15px;font-weight:700}
.exercise-check{min-height:48px;padding:0 18px;border:1px solid #182a3a;border-radius:10px;background:#182a3a;color:#fff;font-size:15px;font-weight:700;cursor:pointer}
.exercise-check:hover{background:#0f1d29}
@media(max-width:430px){.exercise-calc-row .exercise-field{flex:1 1 100%}.exercise-check{width:100%}}

/* Заголовок вопроса: раньше это был <legend>, который браузер выносит из
   рамки поля — на узком экране номер налезал на карточку выше. */
.test-question { display: grid; gap: 8px; }
.test-question-title {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  width: 100%;
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.45;
}
.test-question-title > span {
  flex: 0 0 30px;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--dark);
  color: #fff;
  font-size: 14px;
}
@media (max-width: 700px) { .test-question-title { font-size: 17px; } }

/* --- M-03: отметка о прохождении требует выполненных заданий --- */
.complete-row{display:grid;gap:10px;justify-items:start}
.complete-button.is-locked{opacity:.55;cursor:not-allowed}
.complete-hint{margin:0;max-width:62ch;color:var(--muted);font-size:15px;line-height:1.5}

/* вопросы теста Академии шли вплотную друг к другу */
.team-test { display: grid; gap: 14px; }
.team-test .test-question { margin: 0; }

/* --- A-01: название модуля в боковой панели больше не заголовок h2 ---
   Значения повторяют прежнее правило .sidebar-module h2 из site.css. */
.sidebar-module .sidebar-module-title{margin:5px 0 0;font-size:17px;line-height:1.35;font-weight:700;color:inherit}

/* --- U-01: таблицы с заголовком. На десктопе вид прежний, на телефоне строка
   превращается в карточку «подпись — значение» вместо прокрутки вбок. --- */
.course-table-wrap.has-head th{border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top;padding:12px 14px;font-size:15px;line-height:1.45;color:var(--dark);background:#edf2f5;font-weight:800;text-align:left}
.course-table-wrap.has-head th:last-child{border-right:0}
.course-table-wrap.has-head tbody tr:first-child td{color:inherit;background:transparent;font-weight:400}
@media(max-width:480px){
  .course-table-wrap.has-head{overflow-x:visible}
  .course-table-wrap.has-head table{min-width:0}
  .course-table-wrap.has-head thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .course-table-wrap.has-head tbody tr{display:block;padding:8px 0;border-bottom:1px solid var(--line)}
  .course-table-wrap.has-head tbody tr:last-child{border-bottom:0}
  .course-table-wrap.has-head tbody td{display:grid;grid-template-columns:minmax(92px,38%) 1fr;gap:10px;border:0;padding:6px 14px}
  .course-table-wrap.has-head tbody td::before{content:attr(data-label);color:var(--muted);font-size:13px;font-weight:700;line-height:1.45}
}
/* U-05: на самых узких экранах подпись встаёт над значением — колонка подписи
   в 92px не оставляла места длинному слову значения, и строка была шире блока. */
@media(max-width:360px){.course-table-wrap.has-head tbody td{grid-template-columns:1fr;gap:2px}}
/* M-10: практическая часть итогового урока перед тестом. */
.final-practice{margin-bottom:28px}

/* --- A-03: текстовая альтернатива и расшифровка видео --- */
.video-text-alt{margin:10px 0 0;font-size:15px;line-height:1.5}
.video-text-alt a{font-weight:700;text-decoration:underline}
.video-transcript{margin-top:12px}
.video-transcript summary{min-height:44px;display:flex;align-items:center;font-weight:800;cursor:pointer}
.video-transcript p{margin:8px 0 0;font-size:15px;line-height:1.55}


/* Схема процесса: шаги по порядку со стрелками. Стилей у неё не было
   совсем, и шаги слипались в одну строку без пробелов. */
.lesson-flow {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  margin: 18px 0 20px;
  padding: 0;
}
/* шаги делят строку поровну, текст переносится внутри шага — без висящих стрелок */
.lesson-flow-step { flex: 1 1 0; min-width: 0; }
.lesson-flow-step {
  display: flex;
  align-items: center;
  padding: 11px 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f4f7f8;
  color: var(--dark);
  font-size: 15.5px;
  font-weight: 600;
  line-height: 1.4;
}
.lesson-flow-step:not(:last-child)::after {
  content: "→";
  margin: 0 -30px 0 16px;
  width: 14px;
  color: var(--accent);
  font-weight: 700;
}
.lesson-flow-step:not(:last-child) { margin-right: 30px; }
/* длинную цепочку в строку не уместить — столбиком читается лучше */
.lesson-flow:has(.lesson-flow-step:nth-child(4)) { flex-direction: column; }
.lesson-flow:has(.lesson-flow-step:nth-child(4)) .lesson-flow-step { margin-right: 0 !important; flex: none; }
.lesson-flow:has(.lesson-flow-step:nth-child(4)) .lesson-flow-step:not(:last-child) { margin-bottom: 26px; position: relative; }
.lesson-flow:has(.lesson-flow-step:nth-child(4)) .lesson-flow-step:not(:last-child)::after {
  content: "↓"; position: absolute; left: 22px; bottom: -24px; margin: 0;
}
@media (max-width: 700px) {
  .lesson-flow { flex-direction: column; gap: 0; }
  .lesson-flow-step { flex: none; }
  .lesson-flow-step { margin-right: 0 !important; }
  .lesson-flow-step:not(:last-child) { margin-bottom: 26px; position: relative; }
  .lesson-flow-step:not(:last-child)::after {
    content: "↓";
    position: absolute;
    left: 22px;
    bottom: -24px;
    margin: 0;
  }
}

/* --- A-04: индикатор фокуса. Было 3px solid #568a9361 — полупрозрачный цвет,
   контраст с белым фоном около 1.6:1 при требовании WCAG 1.4.11 не ниже 3:1.
   Меняется только цвет кольца, которое видно лишь при навигации с клавиатуры.
   Селектор повторяет правило из site.css и добавляет поля, списки и раскрывающиеся
   блоки, которые оно не покрывало. На тёмных блоках кольцо светлое: одним цветом
   3:1 и на белом, и на тёмно-синем не получить. --- */
button:focus-visible,a:focus-visible,textarea:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #3f6a72;outline-offset:3px}
.concept-hero :focus-visible,.course-hero :focus-visible,.module-page-header :focus-visible{outline-color:#9ec5cc}
.test-answer:has(input:focus-visible){outline:3px solid #3f6a72;outline-offset:2px;border-radius:10px}

/* ==========================================================================
   Курс сотрудника: единая типографика и сетка.
   Стили общие с клиентским курсом, поэтому всё ограничено страницами
   адаптации (.team-stage — блок, документ, тест; .team-page — список).
   Задачи: одна рамка вместо рамки в рамке, одна шкала размеров шрифта,
   строка 65–75 знаков, ровный вертикальный ритм.
   ========================================================================== */

/* строка для чтения: было ~95 знаков, стало ~72 */
.team-stage { max-width: 780px; }

/* заголовки страницы и карточек — соразмерно тексту */
.team-stage .lesson-header h1 { font-size: clamp(32px, 4.2vw, 44px); line-height: 1.12; letter-spacing: -0.025em; }
.team-stage .lesson-header > p { font-size: 18px; line-height: 1.6; }
.team-stage .article-body h2,
.team-stage .lesson-text-card-header h2 { font-size: 24px; line-height: 1.25; letter-spacing: -0.015em; }

/* карточка раздела */
.team-stage .lesson-text-card { padding: 28px 30px; }
.team-stage .lesson-text-card-header { margin: 0 0 18px; }

/* вертикальный ритм: 16 px между текстом, 24 px вокруг вставок */
.team-stage .lesson-card-body > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.team-stage .lesson-card-body > * + * { margin-top: 16px !important; }
.team-stage .lesson-card-body > :is(.exercise, .lesson-note, .course-table-wrap, .lesson-flow, .lesson-video-section),
.team-stage .lesson-card-body > :is(.exercise, .lesson-note, .course-table-wrap, .lesson-flow, .lesson-video-section) + * { margin-top: 24px !important; }

/* основной текст: одна шкала — 17 / 1.7 */
.team-stage .article-body p,
.team-stage .article-body li { font-size: 17px; line-height: 1.7; color: #33485a; }

/* списки: без рамки у каждого пункта — маркер и воздух */
.team-stage .article-body .lesson-list { gap: 10px; }
.team-stage .article-body .lesson-list > li {
  border: 0;
  border-radius: 0;
  background: none;
  padding: 0 0 0 26px;
}
.team-stage .article-body ul.lesson-list > li::before { top: 0.72em; left: 6px; width: 7px; height: 7px; }
.team-stage .article-body ol.lesson-list > li::before { top: 0; left: 0; font-size: 17px; line-height: 1.7; }

/* врезка «Важно»: тот же размер, что у текста, чуть светлее фон */
.team-stage .article-body .lesson-note { padding: 18px 22px; border-radius: 0 12px 12px 0; }
.team-stage .article-body .lesson-note strong { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent-text, #3f6f78); margin-bottom: 6px; }
.team-stage .article-body .lesson-note p { font-size: 16px; line-height: 1.65; color: #2f4a55; }

/* упражнение: один тонированный блок вместо рамки в рамке */
.team-stage .lesson-card-body .exercise {
  border: 0;
  border-left: 3px solid var(--accent);
  border-radius: 0 14px 14px 0;
  background: #f3f7f8;
  padding: 22px 24px;
}
.team-stage .lesson-card-body .exercise.is-done { border-left-color: #2e6b4f; background: #f1f7f3; }
.team-stage .exercise-mark { font-size: 13px; font-weight: 700; letter-spacing: 0.08em; margin-bottom: 10px; }
.team-stage .exercise-head { margin-bottom: 16px; }
.team-stage .exercise-head h3 { font-size: 18px; line-height: 1.45; font-weight: 650; color: var(--dark); }
.team-stage .exercise-head p { font-size: 16px; line-height: 1.65; margin: 8px 0 0; }
/* ситуация — как сообщение в переписке */
.team-stage .exercise-situation {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px 12px 12px 4px;
  padding: 12px 16px;
  margin: 0 0 14px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--dark);
}
.team-stage .exercise-option { font-size: 16px; line-height: 1.5; padding: 12px 14px; }
.team-stage .exercise-option span:last-child { min-width: 0; }
.team-stage .exercise-feedback,
.team-stage .exercise-why,
.team-stage .exercise-hint { font-size: 16px; line-height: 1.65; }
.team-stage .exercise-sample { padding: 16px 18px; }
.team-stage .exercise-sample p { font-size: 16px; line-height: 1.65; }
.team-stage .exercise-field textarea { font-size: 16px; line-height: 1.6; }

/* тест: варианты не мельче основного текста */
.team-stage .test-answer { font-size: 16px; line-height: 1.5; }
.team-stage .test-question-title { font-size: 18px; }

/* документы блока */
.team-stage .team-doc-card strong { font-size: 16px; }
.team-stage .team-doc-card small { font-size: 14px; line-height: 1.5; }

/* список блоков: без полупрозрачности — серое на сером не читается */
.team-page .team-stages li { opacity: 1; }
.team-page .team-stages li:not(.is-open):not(.is-done) { background: #fbfcfc; }
.team-page .team-stages li:not(.is-open):not(.is-done) h2 { color: #3a4f5f; }

@media (max-width: 700px) {
  .team-stage .lesson-text-card { padding: 20px 18px; }
  .team-stage .article-body h2,
  .team-stage .lesson-text-card-header h2 { font-size: 21px; }
  .team-stage .article-body p,
  .team-stage .article-body li { font-size: 16px; line-height: 1.65; }
  .team-stage .article-body ol.lesson-list > li::before { font-size: 16px; line-height: 1.65; }
  .team-stage .lesson-card-body .exercise { padding: 18px 16px; }
  .team-stage .exercise-head h3 { font-size: 17px; }
}

/* страница со списком блоков: тот же масштаб текста, что внутри курса */
.team-page .team-head > p { font-size: 17px; line-height: 1.65; }
.team-page .team-deadline { font-size: 15px; }
.team-page .team-progress span { font-size: 15px; }
.team-page .team-stages h2 { font-size: 20px; }
.team-page .team-stages p { font-size: 16px; line-height: 1.6; }
.team-page .team-meta, .team-page .team-meta span { font-size: 14px; }
.team-page .team-tests p { font-size: 16px; line-height: 1.6; }
.team-page .team-test-body small { font-size: 14px; }

/* между ситуацией и вопросом — воздух, иначе вопрос прилипает к сообщению */
.team-stage .exercise-situation { margin-bottom: 18px; }

/* --- U-04: вопрос после урока --- */
.lesson-feedback{margin:26px 0 0;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:#fff}
.lesson-feedback-title{margin:0 0 12px;font-size:1.1rem}
.lesson-feedback-options{display:flex;gap:10px;flex-wrap:wrap}
.lesson-feedback-options button{min-height:44px;min-width:96px;padding:0 16px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:15px;font-weight:700;cursor:pointer}
.lesson-feedback-options button[aria-pressed="true"]{border-color:#182a3a;background:#182a3a;color:#fff}
.lesson-feedback-more{margin-top:14px;display:grid;gap:12px}
.lesson-feedback-field{display:grid;gap:6px;font-size:15px;font-weight:700}
.lesson-feedback-field select,.lesson-feedback-field textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;font-weight:400}
.lesson-feedback-note{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.lesson-feedback-send{justify-self:start;min-height:44px;padding:0 18px;border:0;border-radius:10px;background:#182a3a;color:#fff;font-weight:700;cursor:pointer}
.lesson-feedback-status{margin:10px 0 0;font-size:15px}
.lesson-feedback-status:empty{display:none}

/* --- M-05: входная проверка --- */
.diagnostic-link{margin-top:12px;display:inline-block;color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.diagnostic-skip a,.diagnostic-actions a{font-weight:700;text-decoration:underline}
.diagnostic-form{margin-top:20px}
.diagnostic-block{margin:18px 0 0;padding:18px 20px;border:1px solid var(--line);border-left-width:4px;border-radius:14px;background:#fff}
.diagnostic-block h2{margin:0 0 6px;font-size:1.15rem}
.diagnostic-block p{margin:0 0 10px;color:var(--muted);font-size:15px;line-height:1.5}
.diagnostic-block ul{margin:0;padding-left:20px;display:grid;gap:6px}
.diagnostic-block a{font-weight:700}
.diagnostic-block.is-focus{border-left-color:#c98a3c}
.diagnostic-block.is-mandatory{border-left-color:#b3261e}
.diagnostic-block.is-light{border-left-color:#2e6b4f}
.diagnostic-actions{margin:22px 0 0}
.diagnostic-plan{margin-top:24px;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:#fff}
.diagnostic-plan h2{margin:0 0 6px;font-size:1.2rem}
.diagnostic-plan p{margin:0 0 10px;color:var(--muted)}
.diagnostic-plan ul{margin:0 0 12px;padding-left:20px;display:grid;gap:6px}
.diagnostic-plan a{font-weight:700}

/* --- T-01, U-04: отчёт администратора об обучении --- */
.admin-comments{margin:0;padding:0;display:grid;gap:12px;list-style:none}
.admin-comments li{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.admin-comments p{margin:0;line-height:1.5}
.admin-comment-meta{margin-bottom:6px!important;color:var(--muted);font-size:14px}

/* --- критерий приёмки 3: измеримый результат модуля --- */
.module-outcome{margin:14px 0 0;display:grid;gap:3px;max-width:62ch;font-weight:600;line-height:1.5}
.module-outcome span{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;opacity:.82}

/* ==========================================================================
   Финальный аудит: правки интерфейса курса сотрудника
   ========================================================================== */

/* M1: подписи над упражнениями — контраст не ниже 4,5:1 (было 3,57) */
.team-stage .exercise-mark { color: #2d5a63; }

/* H1: контакт рекрутера на тупиковых экранах */
.recruiter-contact { margin-top: 18px; display: grid; gap: 10px; justify-items: start; }
.recruiter-contact p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--muted); }
.recruiter-template {
  display: block;
  margin-top: 6px;
  padding: 10px 14px;
  border: 1px dashed var(--line);
  border-radius: 10px;
  background: #fff;
  color: var(--dark);
  user-select: all;
}

/* C1, M4: экран перед попыткой теста */
.test-intro {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  padding: 24px 26px;
  display: grid;
  gap: 10px;
  justify-items: start;
}
.test-intro strong { font-size: 20px; line-height: 1.3; }
.test-intro p { margin: 0; font-size: 16px; line-height: 1.6; color: #33485a; }
.test-intro.is-last { border-color: #e6cfcc; background: #fdf7f6; }

/* H3: оглавление длинного документа и кнопка «наверх» */
.doc-toc { margin: 0 0 22px; border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 0 20px; }
.doc-toc summary { cursor: pointer; padding: 14px 0; font-weight: 600; font-size: 16px; list-style: none; }
.doc-toc summary::-webkit-details-marker { display: none; }
.doc-toc summary::after { content: "▾"; margin-left: 8px; color: var(--muted); }
.doc-toc[open] summary::after { content: "▴"; }
.doc-toc ol { margin: 0 0 16px; padding-left: 22px; display: grid; gap: 7px; }
.doc-toc a { color: var(--dark); font-size: 16px; line-height: 1.5; text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
.doc-toc a:hover { text-decoration-color: var(--accent); }
.team-stage .lesson-text-card-header h2 { scroll-margin-top: 90px; }
.to-top {
  position: fixed;
  right: 16px;
  bottom: 18px;
  z-index: 30;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--dark);
  box-shadow: 0 8px 22px rgba(24, 42, 58, 0.14);
  display: grid;
  place-items: center;
  font-size: 20px;
  cursor: pointer;
}
.to-top[hidden] { display: none; }

/* M2: правая колонка на странице списка — только на широком экране */
.team-aside { display: none; }
@media (min-width: 1100px) {
  .team-page { display: grid; grid-template-columns: minmax(0, 760px) 300px; column-gap: 44px; align-items: start; }
  .team-page > * { grid-column: 1; }
  .team-page > .team-aside {
    grid-column: 2;
    grid-row: 1 / span 12;
    position: sticky;
    top: 92px;
    display: grid;
    gap: 10px;
    justify-items: start;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
    padding: 22px;
  }
}
.team-aside-label { font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #2d5a63; }
.team-aside strong { font-size: 19px; line-height: 1.3; }
.team-aside p { margin: 0; color: var(--muted); font-size: 15px; }
.team-aside-progress { display: grid; gap: 6px; width: 100%; font-size: 14px; color: var(--muted); margin-top: 6px; }
.team-aside-deadline { display: flex; align-items: center; gap: 6px; }

/* L1: зона нажатия логотипа 44 px */
.site-header--team .brand { min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; }

/* L2: шапка прячется при прокрутке вниз и возвращается при прокрутке вверх */
.site-header--team { transition: transform 0.22s ease; }
.site-header--team.is-hidden { transform: translateY(-100%); }
@media (prefers-reduced-motion: reduce) { .site-header--team { transition: none; } }

/* Режим просмотра курса сотрудника: плашка с датой и переключателем направления */
.preview-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 18px;
  margin: 0 0 22px;
  padding: 14px 18px;
  border: 1px solid #e3cf9a;
  border-radius: 14px;
  background: #fbf5e6;
}
.team-page > .preview-bar { grid-column: 1 / -1; }
.preview-bar-text { display: grid; gap: 2px; }
.preview-bar-text strong { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: #6d5210; }
.preview-bar-text span { font-size: 15px; line-height: 1.5; color: #4b3d17; }
.preview-tracks { display: flex; flex-wrap: wrap; gap: 6px; }
.preview-tracks a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid #d9c589;
  background: #fff;
  color: #4b3d17;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
}
.preview-tracks a:hover { border-color: #6d5210; }
.preview-tracks a.is-active { background: #6d5210; border-color: #6d5210; color: #fff; }
.preview-note {
  margin: 18px 0 0;
  padding: 12px 16px;
  border-radius: 12px;
  background: #fbf5e6;
  color: #4b3d17;
  font-size: 15px;
  line-height: 1.55;
}

/* Правки 14.09: таблица без выделенной первой строки, кнопка на документ,
   оглавление скриптов по сценариям, плотные списки с заметным маркером. */
.course-table-wrap.course-table-plain tr:first-child td { color: inherit; background: transparent; font-weight: 400; }
.team-stage .article-body .lesson-list { gap: 4px; }
.team-stage .article-body ul.lesson-list > li::before { width: 8px; height: 8px; top: 0.7em; background: var(--accent); }
.team-stage .course-table-wrap td { line-height: 1.55; }

.doc-link-button { display: flex; align-items: center; justify-content: space-between; gap: 14px; max-width: 460px; padding: 13px 18px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--dark); text-decoration: none; font-weight: 650; font-size: 16px; line-height: 1.4; }
.doc-link-button small { display: block; margin-bottom: 2px; font-size: 13px; font-weight: 600; color: var(--muted); }
.doc-link-button svg { flex: none; color: var(--accent); }
.doc-link-button:hover { border-color: var(--accent); }
.doc-link-button:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }

.team-stage .lesson-group-card { background: #f3f7f8; border-color: #cfdfe3; }
.team-stage .lesson-text-card-header h2[id] { scroll-margin-top: 90px; }
.doc-toc.doc-toc-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px 28px; padding: 18px 20px; }
.doc-toc a.doc-toc-group { display: block; margin-bottom: 8px; font-size: 17px; font-weight: 700; color: var(--dark); text-decoration: none; }
.doc-toc-groups ol { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
/* Таблица из двух коротких колонок (оклад, мотивация) помещается в экран телефона без прокрутки вбок. */
.course-table-wrap.course-table-plain table { min-width: 0; }

/* Открытый доступ: кнопка «Представиться», форма имени, номер работы. */
.preview-bar-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.preview-join { display: inline-flex; align-items: center; min-height: 40px; padding: 0 18px; border-radius: 999px; background: var(--dark); color: #fff; font-size: 15px; font-weight: 650; text-decoration: none; }
.preview-join:hover { opacity: .9; }
.preview-join:focus-visible { outline: 3px solid #6d5210; outline-offset: 2px; }
.preview-note a { color: inherit; font-weight: 650; }
.team-join { display: grid; gap: 14px; max-width: 640px; margin: 8px 0 0; padding: 26px 28px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.team-join :is(h1, h2) { margin: 0; font-size: 24px; line-height: 1.25; letter-spacing: 0; }
.team-join p { margin: 0; font-size: 16px; line-height: 1.6; color: #33485a; }
.team-join-form { display: grid; gap: 14px; }
.team-join-form label { display: grid; gap: 6px; font-size: 15px; font-weight: 650; color: var(--dark); }
.team-join-form label small { font-weight: 400; color: var(--muted); }
.team-join-form input { font: inherit; font-size: 16px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--dark); }
.team-join-form input:focus-visible { outline: 3px solid var(--accent); outline-offset: 1px; border-color: var(--accent); }
.team-join-form .team-cta { justify-self: start; border: 0; font: inherit; font-weight: 650; cursor: pointer; }
.team-work { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0 0 18px; padding: 14px 18px; border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 0 12px 12px 0; background: #fff; font-size: 15px; color: #33485a; }
.team-work strong { color: var(--dark); }
.team-work-line { font-size: 15px; color: #33485a; }
@media (max-width: 700px) { .team-join { padding: 20px 18px; } }

/* --- Замечания владельца, 14.09.2026 --- */
/* Жирные слова внутри заметки больше не встают на отдельную строку:
   блочной остаётся только подпись заметки. */
.article-body .lesson-note p strong{display:inline;margin:0}
/* Уточнение к названию урока — с новой строки и без скобок */
.title-note{display:block}
/* Над уроком — только «После этого урока вы сможете», на всю ширину */
@media(min-width:760px){.lesson-frame{grid-template-columns:1fr}}
/* Главная: название следующего урока с новой строки, вторая кнопка без подчёркивания */
.progress-copy [data-next-lesson]{white-space:pre-line}
.progress-copy .diagnostic-link{text-decoration:none}
/* Инструкция с изображениями открывается отдельной страницей в новой вкладке */
.guide-link{display:flex;justify-content:space-between;gap:16px;color:inherit}
.guide-link:hover .php-details-label span{background:var(--accent);color:#fff}
.guide-page .illustrated-guide-content{padding:0!important;margin-top:18px}

/* Админка: ссылки на курсы с кнопкой «Скопировать». */
.admin-links { margin: 0 0 28px; padding: 22px 24px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.admin-links h2 { margin: 0 0 4px; font-size: 22px; color: var(--dark); }
.admin-links header p, .admin-links-note { margin: 0; font-size: 15px; line-height: 1.55; color: #4d6070; }
.admin-links-list { display: grid; margin: 14px 0; }
.admin-link-row { display: grid; grid-template-columns: minmax(200px, 1fr) minmax(260px, 1.4fr); gap: 8px 16px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); }
.admin-link-row strong { display: block; font-size: 16px; color: var(--dark); }
.admin-link-row small { font-size: 14px; color: #5b6b78; }
.admin-link-copy { display: flex; gap: 8px; }
.admin-link-copy input { flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #f6f8f9; color: var(--dark); font: inherit; font-size: 15px; }
.admin-link-copy button { flex: none; padding: 0 14px; border: 0; border-radius: 10px; background: var(--dark); color: #fff; font: inherit; font-size: 14px; font-weight: 650; cursor: pointer; }
.admin-link-copy button:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
@media (max-width: 760px) { .admin-link-row { grid-template-columns: 1fr; } }

/* Страница другого направления в открытом доступе: две кнопки рядом */
.php-message-actions{display:flex;flex-wrap:wrap;gap:12px}
.php-message-actions a{text-align:center}
.php-secondary{min-height:48px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--dark);font-weight:800}
.php-secondary:hover{border-color:var(--dark)}

/* Переключатель языка клиентского курса: RU / EN / ES в шапке */
.lang-switch{display:inline-flex;flex:none;align-items:center;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;background:#fff}
.lang-switch a{padding:5px 9px;border-radius:999px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.04em;line-height:1;text-decoration:none}
.lang-switch a:hover{color:var(--dark)}
.lang-switch a.is-current{background:var(--dark);color:#fff}
.concept-header-inner .lang-switch{margin-left:12px}
.header-inner .lang-switch{margin-left:10px}
@media(max-width:760px){.concept-account{display:none}.lang-switch a{padding:5px 7px}}
/* Урок, который ещё не переведён: показан на русском с пометкой */
.lang-pending{margin:0 0 20px;padding:12px 16px;border:1px solid #ecd9a4;border-radius:12px;background:#fdf6e3;color:#6b5616;font-weight:600}
@media(max-width:430px){.lang-switch{padding:2px}.lang-switch a{padding:5px 6px;font-size:11px}.header-inner .lang-switch,.concept-header-inner .lang-switch{margin-left:6px}}
