:root{
  --bg:#F5F7FA; --surface:#FFFFFF; --ink:#1B2330; --muted:#5B6678; --line:#DFE5EE;
  --accent:#2B59C3; --accent-soft:#E8EEFB;
  --ok:#2C7A4B; --ok-bg:#E6F3EB; --err:#A93226; --err-bg:#FBEAE8; --warn:#8F6210;
  --chip:#EDF1F7;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#11151C; --surface:#191F29; --ink:#E9EDF4; --muted:#9AA5B5; --line:#2A3342;
    --accent:#7DA1EF; --accent-soft:#1E2A44;
    --ok:#74C295; --ok-bg:#17301F; --err:#EA9184; --err-bg:#39211D; --warn:#D9A94E;
    --chip:#232B38;
  }
}
*{box-sizing:border-box}
body{margin:0; background:var(--bg); color:var(--ink);
  font-family:"Golos Text",-apple-system,"Segoe UI",sans-serif; font-size:15.5px; line-height:1.55}
a{color:var(--accent); text-decoration:none}
a:hover{text-decoration:underline}
h1{font-size:26px; font-weight:800; letter-spacing:-.01em; margin:0 0 8px}
h2{font-size:20px; font-weight:800; margin:0 0 8px}
h3{font-size:16px; font-weight:600; margin:0 0 6px}
p{margin:0 0 8px}
code{font-family:"JetBrains Mono",monospace; font-size:.88em; background:var(--chip); padding:2px 6px; border-radius:5px}

.topbar{display:flex; align-items:center; gap:24px; background:var(--surface);
  border-bottom:1px solid var(--line); padding:0 20px; height:54px; position:sticky; top:0; z-index:10}
.brand{font-family:"JetBrains Mono",monospace; font-weight:600; font-size:14px; letter-spacing:.1em; color:var(--ink)}
.brand span{color:var(--accent)}
.brand-big{font-family:"JetBrains Mono",monospace; font-weight:600; font-size:20px; letter-spacing:.12em; margin-bottom:4px}
.brand-big span{color:var(--accent)}
.nav-links{display:flex; gap:4px; flex:1}
.nav-links a{padding:6px 12px; border-radius:8px; color:var(--muted); font-weight:500; font-size:14.5px}
.nav-links a:hover{text-decoration:none; background:var(--chip); color:var(--ink)}
.nav-links a.active{background:var(--accent-soft); color:var(--accent)}
.nav-user{display:flex; align-items:center; gap:10px; font-size:13.5px}
.nav-name{font-weight:600}
.nav-role{color:var(--muted)}
.nav-exit{color:var(--muted)}

.page{max-width:960px; margin:0 auto; padding:32px 20px 80px}
.eyebrow{font-family:"JetBrains Mono",monospace; font-size:11px; font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:6px}
.muted{color:var(--muted)} .small{font-size:13.5px} .nowrap{white-space:nowrap}
.mt{margin-top:28px} .mt-s{margin-top:14px}
.ok-text{color:var(--ok)} .err-text{color:var(--err)} .warn-text{color:var(--warn)}
.pre-wrap{white-space:pre-wrap}
.row-between{display:flex; justify-content:space-between; align-items:center; gap:16px}

.card{background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:18px 20px}
.cards-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; margin-top:16px}
.link-card{color:var(--ink); display:block}
.link-card:hover{text-decoration:none; border-color:var(--accent)}

.alert{border-radius:8px; padding:10px 14px; font-size:14.5px}
.alert.ok{background:var(--ok-bg); color:var(--ok)}
.alert.err{background:var(--err-bg); color:var(--err)}
.alert a{color:inherit; text-decoration:underline}

.btn{display:inline-block; border:1px solid var(--line); background:var(--surface); color:var(--ink);
  border-radius:8px; padding:9px 16px; font:inherit; font-weight:600; font-size:14.5px; cursor:pointer}
.btn:hover{border-color:var(--accent); text-decoration:none}
.btn.primary{background:var(--accent); border-color:var(--accent); color:#fff}
.btn.primary:hover{opacity:.92}
.btn.big{padding:12px 28px; font-size:16px}
.small-btn{padding:5px 10px; font-size:13px; font-weight:500}

.progressbar{height:8px; background:var(--chip); border-radius:99px; overflow:hidden; margin:10px 0 6px}
.progressbar > div{height:100%; background:var(--accent); border-radius:99px; min-width:2px}
.progressbar.wide{flex:1}
.small-bar{width:120px; display:inline-block; margin:0 8px 0 0; vertical-align:middle}

.stack{display:flex; flex-direction:column; gap:12px}
.stack label{display:flex; flex-direction:column; gap:5px; font-weight:500; font-size:14px}
input,select,textarea{font:inherit; color:var(--ink); background:var(--bg);
  border:1px solid var(--line); border-radius:8px; padding:9px 12px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent); outline-offset:0; border-color:var(--accent)}
.inline-form{display:flex; gap:10px; flex-wrap:wrap}
.inline-form input,.inline-form select{flex:1; min-width:160px}

.auth-wrap{min-height:80vh; display:flex; align-items:center; justify-content:center}
.auth-card{background:var(--surface); border:1px solid var(--line); border-radius:12px;
  padding:36px; width:100%; max-width:380px}

.module-block{margin-top:32px}
.mod-num{font-family:"JetBrains Mono",monospace; color:var(--accent); font-size:15px; font-weight:600}
.lesson-list{display:flex; flex-direction:column; gap:6px; margin-top:10px}
.lesson-row{display:flex; align-items:center; gap:12px; background:var(--surface);
  border:1px solid var(--line); border-radius:8px; padding:10px 14px; color:var(--ink)}
.lesson-row:hover{border-color:var(--accent); text-decoration:none}
.lesson-row.done{opacity:.72}
.check{width:20px; height:20px; border-radius:6px; border:1.5px solid var(--line); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:13px; color:var(--ok)}
.done .check{border-color:var(--ok); background:var(--ok-bg)}
.lesson-title{flex:1}
.lesson-kind{font-family:"JetBrains Mono",monospace; font-size:10.5px; text-transform:uppercase;
  letter-spacing:.06em; color:var(--muted)}
.k-test{color:var(--accent)}

.lesson-body{background:var(--surface); border:1px solid var(--line); border-radius:10px;
  padding:28px 32px; margin-top:16px; max-width:none}
.lesson-body p{margin:0 0 14px; max-width:70ch}
.lesson-body h3{font-size:17px; font-weight:700; margin:22px 0 10px}
.lesson-body img{max-width:100%; height:auto; border-radius:8px}
.lesson-body ul,.lesson-body ol{padding-left:22px; margin:0 0 14px}
.lesson-nav{display:flex; justify-content:space-between; gap:12px; margin-top:20px}
.video-placeholder{background:var(--chip); border:1.5px dashed var(--line); border-radius:10px;
  padding:36px; text-align:center; margin-top:16px}
.video-embed{position:relative; padding-top:56.25%; margin-top:16px; border-radius:10px; overflow:hidden}
.video-embed iframe{position:absolute; inset:0; width:100%; height:100%}

.quiz-form{margin-top:16px; display:flex; flex-direction:column; gap:14px}
.q-card{border-radius:10px; margin:0; padding:16px 20px}
fieldset.q-card{border:1px solid var(--line)}
.q-card legend{font-weight:600; padding:0 6px}
.q-num{color:var(--accent); font-family:"JetBrains Mono",monospace}
.opt{display:flex; gap:10px; align-items:flex-start; padding:7px 4px; border-radius:6px; cursor:pointer; font-weight:400}
.opt:hover{background:var(--chip)}
.opt input{margin-top:3px; accent-color:var(--accent)}
.attempts{display:flex; gap:8px; flex-wrap:wrap; margin-top:8px}
.pill{font-family:"JetBrains Mono",monospace; font-size:11px; font-weight:600; padding:3px 10px;
  border-radius:99px; white-space:nowrap}
.pill.ok{background:var(--ok-bg); color:var(--ok)}
.pill.err{background:var(--err-bg); color:var(--err)}
.pill.note{background:var(--accent-soft); color:var(--accent); font-weight:500; text-transform:lowercase}
.score{font-size:22px; font-weight:800}
.q-ok{border-left:3px solid var(--ok)}
.q-err{border-left:3px solid var(--err)}
.opt-result{padding:3px 0; margin:0; color:var(--muted)}
.opt-result.was-correct{color:var(--ok); font-weight:600}
.opt-result.was-chosen:not(.was-correct){color:var(--err)}

.tw{overflow-x:auto; border:1px solid var(--line); border-radius:10px; background:var(--surface)}
table{border-collapse:collapse; width:100%; font-size:14.5px; min-width:600px}
th{font-family:"JetBrains Mono",monospace; font-size:10.5px; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted); text-align:left; padding:10px 14px; border-bottom:1px solid var(--line)}
td{padding:10px 14px; border-bottom:1px solid var(--line); vertical-align:middle}
tr:last-child td{border-bottom:none}
tr.inactive{opacity:.55}
.actions{display:flex; gap:6px}

.cert{background:var(--surface); border:2px solid var(--accent); border-radius:14px;
  padding:56px 40px; text-align:center; max-width:640px; margin:24px auto 0}
.cert-brand{font-family:"JetBrains Mono",monospace; letter-spacing:.2em; font-size:13px; color:var(--muted)}
.cert-label{text-transform:uppercase; letter-spacing:.3em; font-size:13px; color:var(--accent); margin:18px 0 6px}
.cert-name{font-size:32px; margin:6px 0}
.cert-text{color:var(--muted)}
.cert-course{font-size:18px; font-weight:600; max-width:44ch; margin:10px auto}
.cert-level{display:inline-block; background:var(--accent-soft); color:var(--accent);
  border-radius:99px; padding:5px 18px; font-weight:600; margin-top:6px}
.cert-meta{display:flex; justify-content:space-between; margin-top:36px; color:var(--muted);
  font-family:"JetBrains Mono",monospace; font-size:13px}
@media print{
  .topbar,.no-print{display:none}
  body{background:#fff}
  .cert{border-color:#2B59C3; margin:0 auto}
  .page{padding:0}
}
@media (max-width:700px){
  .topbar{gap:10px; overflow-x:auto}
  .nav-name{display:none}
  .lesson-body{padding:18px}
}

/* --- поиск --- */
.search-btn{margin-left:auto; display:flex; align-items:center; gap:8px; border:1px solid var(--line);
  background:var(--bg); color:var(--muted); border-radius:8px; padding:6px 12px; font:inherit; font-size:13.5px; cursor:pointer}
.search-btn:hover{border-color:var(--accent); color:var(--ink)}
kbd{font-family:"JetBrains Mono",monospace; font-size:11px; background:var(--chip); border:1px solid var(--line);
  border-radius:4px; padding:1px 5px}
.search-overlay{position:fixed; inset:0; background:rgba(10,14,20,.45); display:none;
  align-items:flex-start; justify-content:center; padding:10vh 16px 0; z-index:100}
.search-overlay.show{display:flex}
.search-box{background:var(--surface); border:1px solid var(--line); border-radius:12px;
  width:100%; max-width:640px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.25)}
.search-box input{width:100%; border:none; border-bottom:1px solid var(--line); border-radius:0;
  padding:16px 18px; font-size:16px; background:var(--surface)}
.search-box input:focus{outline:none}
.search-results{max-height:52vh; overflow-y:auto}
.search-results a{display:flex; flex-direction:column; gap:2px; padding:11px 18px; color:var(--ink);
  border-bottom:1px solid var(--line)}
.search-results a:hover{background:var(--chip); text-decoration:none}
.sr-type{font-family:"JetBrains Mono",monospace; font-size:10px; text-transform:uppercase;
  letter-spacing:.08em; color:var(--muted)}
.sr-type.t-branch{color:var(--accent)}
.sr-snippet{font-size:13px; color:var(--muted); overflow:hidden; text-overflow:ellipsis;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical}
.search-miss{padding:10px 18px; border-top:1px solid var(--line); text-align:right}
.hidden{display:none}

/* --- скрипт продаж --- */
.script-layout{display:grid; grid-template-columns:250px 1fr; gap:28px; align-items:start}
.script-nav{position:sticky; top:70px; max-height:calc(100vh - 90px); overflow-y:auto;
  font-size:13.5px; padding-right:6px}
.snav-stage{margin-bottom:14px}
.snav-stage > a{font-weight:700; color:var(--ink); display:block; padding:4px 8px; border-radius:6px}
.snav-steps a{display:block; color:var(--muted); padding:3px 8px 3px 16px; border-left:2px solid var(--line);
  margin-left:8px}
.snav-steps a:hover{color:var(--accent); text-decoration:none; border-left-color:var(--accent)}
.stage{margin-top:36px}
.stage-title{background:var(--accent-soft); color:var(--accent); border-radius:10px; padding:12px 18px; font-size:18px}
.step{margin-top:22px; scroll-margin-top:70px}
.step-title{font-size:16.5px; font-weight:700; margin-bottom:8px}
.step-body{background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:16px 20px}
.step-body p{margin:0 0 10px; max-width:75ch}
.step-body p:last-child{margin-bottom:0}
.line-m{border-left:3px solid var(--accent); padding-left:12px}
.line-k{border-left:3px solid var(--warn); padding-left:12px; color:var(--muted)}
.note{color:var(--muted); font-size:14px}
.branch{border:1px solid var(--line); border-radius:8px; margin-top:8px; background:var(--surface);
  scroll-margin-top:70px}
.branch summary{cursor:pointer; padding:10px 16px; font-weight:600; list-style:none; display:flex; gap:8px}
.branch summary::before{content:"▸"; color:var(--accent); transition:transform .12s}
.branch[open] summary::before{transform:rotate(90deg)}
.branch summary:hover{background:var(--chip)}
.branch-body{padding:4px 18px 14px; border-top:1px solid var(--line)}
.branch-body p{margin:8px 0; max-width:72ch}
.branch-body ul{padding-left:20px; margin:8px 0}
.hl{outline:2px solid var(--accent); outline-offset:2px}
.intro{margin-bottom:6px}
@media (max-width:900px){
  .script-layout{grid-template-columns:1fr}
  .script-nav{position:static; max-height:none; display:none}
}

.copy-row{display:flex; gap:10px; align-items:center; margin-top:8px; flex-wrap:wrap}
.copy-row code{word-break:break-all}
.inline-pay{display:flex; gap:4px}
.brand-chips{display:flex; gap:8px; margin-top:10px}
.chip{padding:5px 14px; border-radius:99px; border:1px solid var(--line); color:var(--muted); font-size:13.5px; font-weight:500}
.chip:hover{text-decoration:none; border-color:var(--accent); color:var(--ink)}
.chip.on{background:var(--accent-soft); color:var(--accent); border-color:var(--accent)}
.pill.il{background:var(--chip); color:var(--accent)}
.pill.kr{background:var(--chip); color:#B5484C}
