:root{
  --bg:#16181d; --bg-2:#1d2027; --panel:#21252e; --panel-2:#262b35;
  --ink:#f3f0e9; --ink-soft:rgba(243,240,233,.66); --ink-faint:rgba(243,240,233,.42);
  --amber:#e8a33d; --amber-deep:#c9821c; --sage:#7fa892;
  --line:rgba(243,240,233,.12); --cream:#f3f0e9;
  --r:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Manrope",system-ui,sans-serif;background:var(--bg);color:var(--ink);
     min-height:100vh;font-size:16px;line-height:1.65}
a{color:var(--amber);text-decoration:none}
a:hover{color:var(--cream)}
h1,h2,.serif{font-family:"Fraunces",Georgia,serif}

/* ---------- каркас ---------- */
.layout{display:flex;min-height:100vh}
.sidebar{width:300px;background:var(--bg-2);border-right:1px solid var(--line);
         padding:26px 18px;flex-shrink:0;overflow-y:auto;height:100vh;position:sticky;top:0}
.content{flex:1;min-width:0;padding:44px clamp(22px,5vw,72px);max-width:920px;margin:0 auto}

/* тонкий тёмный скроллбар */
.sidebar{scrollbar-width:thin;scrollbar-color:var(--panel-2) transparent}
.sidebar::-webkit-scrollbar{width:6px}
.sidebar::-webkit-scrollbar-track{background:transparent}
.sidebar::-webkit-scrollbar-thumb{background:var(--panel-2);border-radius:999px}
.sidebar::-webkit-scrollbar-thumb:hover{background:rgba(232,163,61,.4)}
html{scrollbar-width:thin;scrollbar-color:var(--panel-2) var(--bg)}
body::-webkit-scrollbar{width:9px}
body::-webkit-scrollbar-track{background:var(--bg)}
body::-webkit-scrollbar-thumb{background:var(--panel-2);border-radius:999px}

/* правая колонка (широкие экраны) */
.rail{width:270px;flex-shrink:0;padding:44px 22px 44px 0;display:none}
@media(min-width:1360px){.rail{display:block}}
.rail-card{position:sticky;top:34px;background:var(--bg-2);border:1px solid var(--line);
  border-radius:var(--r);padding:18px 18px}
.rail-title{font-family:"Fraunces",serif;font-size:14.5px;color:var(--amber);margin-bottom:12px}
.rail-card ul{list-style:none}
.rail-card li{margin-bottom:2px}
.rail-card a,.r-locked{display:flex;gap:8px;align-items:flex-start;font-size:13px;
  padding:6px 8px;border-radius:8px;color:var(--ink-soft);line-height:1.4}
.rail-card a:hover{background:var(--panel);color:var(--cream)}
.rail-card a.r-active{background:var(--panel);color:var(--amber)}
.r-locked{color:var(--ink-faint)}
.r-tick{color:var(--sage);min-width:14px}
#hw{scroll-margin-top:24px}

.logo{font-family:"Fraunces",serif;font-weight:700;font-size:21px;letter-spacing:.3px;
      display:block;margin-bottom:6px;color:var(--cream)}
.logo b{color:var(--amber)}
.sidebar .sub{font-size:12px;color:var(--ink-faint);margin-bottom:22px}

/* модули в сайдбаре */
details.mod{margin-bottom:6px;border-radius:12px;overflow:hidden}
details.mod summary{list-style:none;cursor:pointer;padding:11px 12px;border-radius:12px;
  display:flex;align-items:center;gap:10px;font-weight:700;font-size:13.5px;color:var(--ink-soft)}
details.mod summary::-webkit-details-marker{display:none}
details.mod summary:hover{background:var(--panel)}
details.mod[open] summary{color:var(--cream)}
.mod-num{font-family:"Fraunces",serif;color:var(--amber);font-size:15px;min-width:24px}
.mod ul{list-style:none;padding:2px 0 8px 34px}
.mod li a{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;
  font-size:13.5px;color:var(--ink-soft)}
.mod li a:hover{background:var(--panel);color:var(--cream)}
.mod li a.active{background:var(--panel);color:var(--amber)}
.mod li a.locked{color:var(--ink-faint);cursor:not-allowed}
.tick{color:var(--sage);font-size:12px}
.lock{font-size:11px;opacity:.8}
.testlink{font-weight:700}
.testlink.passed{color:var(--sage)}

.sidebar .foot{margin-top:26px;padding-top:18px;border-top:1px solid var(--line);
  font-size:13px;color:var(--ink-soft)}
.sidebar .foot a.support{display:flex;align-items:center;gap:8px;padding:10px 12px;margin-top:10px;
  background:var(--panel);border-radius:12px;color:var(--cream);font-weight:600;font-size:13.5px}
.sidebar .foot a.support:hover{background:var(--panel-2)}

/* ---------- шапка контента ---------- */
.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px;gap:14px;flex-wrap:wrap}
.crumbs{font-size:13px;color:var(--ink-faint)}
.userbox{display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--ink-soft)}
.btn{display:inline-block;background:var(--amber);color:#1a1408;font-weight:800;
  border:none;border-radius:999px;padding:11px 24px;font-size:14.5px;cursor:pointer;
  font-family:"Manrope",sans-serif;transition:transform .06s,background .15s}
.btn:hover{background:var(--amber-deep);color:#1a1408}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;border:1.5px solid var(--line);color:var(--ink-soft);font-weight:600}
.btn.ghost:hover{border-color:var(--amber);color:var(--amber)}
.btn.small{padding:7px 16px;font-size:13px}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* ---------- заголовки уроков ---------- */
h1.title{font-size:clamp(28px,4vw,40px);font-weight:600;line-height:1.18;margin-bottom:8px}
.subtitle{color:var(--amber);font-style:italic;font-size:16px;margin-bottom:28px}

/* видео */
.video{position:relative;padding-top:56.25%;border-radius:var(--r);overflow:hidden;
  background:var(--panel);margin-bottom:34px;border:1px solid var(--line)}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-empty{border-radius:var(--r);border:1.5px dashed var(--line);color:var(--ink-faint);
  padding:26px;text-align:center;font-size:14px;margin-bottom:34px}

/* тело урока */
.body p{margin-bottom:16px;color:var(--ink-soft)}
.body b{color:var(--cream)}
.body h3{font-family:"Fraunces",serif;color:var(--cream);font-size:21px;font-weight:600;
  margin:32px 0 12px;padding-left:14px;border-left:3px solid var(--amber)}

/* домашка */
.homework{margin-top:38px;background:linear-gradient(135deg,rgba(232,163,61,.10),rgba(232,163,61,.04));
  border:1px solid rgba(232,163,61,.35);border-radius:var(--r);padding:22px 24px}
.homework .hw-head{display:flex;justify-content:space-between;align-items:center;gap:12px;
  flex-wrap:wrap;margin-bottom:10px}
.homework h4{font-family:"Fraunces",serif;color:var(--amber);font-size:17px}
.homework p{color:var(--ink-soft);font-size:15px}

/* навигация низ урока */
.lesson-nav{display:flex;justify-content:space-between;gap:12px;margin-top:40px;
  padding-top:24px;border-top:1px solid var(--line)}
.lesson-nav a{font-size:14px;color:var(--ink-soft);max-width:45%}
.lesson-nav a:hover{color:var(--amber)}
.lesson-nav small{display:block;color:var(--ink-faint);font-size:11px;letter-spacing:.08em;text-transform:uppercase}

/* ---------- тесты ---------- */
.qcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  padding:20px 22px;margin-bottom:16px}
.qcard.ok{border-color:rgba(127,168,146,.6)}
.qcard.bad{border-color:rgba(224,110,90,.55)}
.qcard .qtext{font-weight:700;margin-bottom:12px}
.qcard label{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:10px;
  cursor:pointer;color:var(--ink-soft);font-size:15px}
.qcard label:hover{background:var(--panel-2)}
.qcard input{accent-color:var(--amber);margin-top:4px}
.result-banner{border-radius:var(--r);padding:22px 26px;margin-bottom:26px;font-size:16px}
.result-banner.pass{background:rgba(127,168,146,.12);border:1px solid rgba(127,168,146,.5)}
.result-banner.fail{background:rgba(224,110,90,.10);border:1px solid rgba(224,110,90,.45)}
.result-banner .serif{font-size:24px;display:block;margin-bottom:6px}

/* ---------- главная ---------- */
.hero-card{background:linear-gradient(140deg,var(--panel),var(--bg-2));border:1px solid var(--line);
  border-radius:20px;padding:34px 36px;margin-bottom:28px}
.progress-wrap{margin-top:20px}
.progress-bar{height:10px;background:var(--panel-2);border-radius:999px;overflow:hidden}
.progress-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--amber-deep),var(--amber));
  border-radius:999px}
.progress-label{font-size:13px;color:var(--ink-soft);margin-top:8px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px}
.tile .serif{font-size:19px;margin-bottom:4px}
.tile p{font-size:13.5px;color:var(--ink-soft)}

/* ---------- сертификат ---------- */
.cert-card{background:linear-gradient(140deg,rgba(232,163,61,.10),var(--panel));
  border:1px solid rgba(232,163,61,.4);border-radius:20px;padding:36px;text-align:center}
.cert-card input{width:min(420px,100%);background:var(--bg);border:1.5px solid var(--line);
  border-radius:12px;color:var(--ink);padding:13px 16px;font:inherit;text-align:center;margin:16px 0}
.cert-card input:focus{outline:none;border-color:var(--amber)}
.warn{color:var(--amber);font-size:14px;max-width:520px;margin:0 auto 6px}

/* ---------- логин ---------- */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;
  background:radial-gradient(80% 60% at 50% 0%,#20242d 0%,var(--bg) 70%)}
.login-card{background:var(--panel);border:1px solid var(--line);border-radius:22px;
  padding:40px 42px;width:min(400px,94vw)}
.login-card .logo{font-size:26px;text-align:center}
.login-card p{color:var(--ink-soft);text-align:center;font-size:14px;margin:6px 0 24px}
.login-card input{width:100%;background:var(--bg);border:1.5px solid var(--line);border-radius:12px;
  color:var(--ink);padding:13px 16px;font:inherit;margin-bottom:14px}
.login-card input:focus{outline:none;border-color:var(--amber)}
.login-card .btn{width:100%}
.login-card .err{color:#e07a63;font-size:13.5px;text-align:center;margin-top:12px}

/* мобильная */
.burger{display:none}
@media(max-width:860px){
  .layout{flex-direction:column}
  .sidebar{width:100%;height:auto;position:static;border-right:none;border-bottom:1px solid var(--line);
    padding:18px}
  .content{padding:26px 18px}
  .sidebar nav{display:none}
  .sidebar.open nav{display:block}
  .burger{display:inline-block;background:var(--panel);border:1px solid var(--line);color:var(--cream);
    border-radius:10px;padding:8px 14px;font:inherit;cursor:pointer;margin-top:8px}
}
.messages{margin-bottom:18px}
.messages li{list-style:none;background:rgba(127,168,146,.12);border:1px solid rgba(127,168,146,.5);
  border-radius:12px;padding:12px 16px;font-size:14px}
.lockbox{text-align:center;padding:70px 20px}
.lockbox .big{font-size:56px;margin-bottom:14px}


/* ---------- полезные ссылки ---------- */
.links-list{display:flex;flex-direction:column;gap:12px;max-width:560px}
.link-card{display:flex;align-items:center;gap:16px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--r);padding:16px 20px;
  color:var(--ink);transition:border-color .15s,transform .06s}
.link-card:hover{border-color:var(--amber);color:var(--ink)}
.link-card:active{transform:translateY(1px)}
.link-emoji{font-size:24px}
.link-body{flex:1;min-width:0}
.link-title{display:block;font-weight:700;font-size:15.5px}
.link-note{display:block;font-size:13px;color:var(--ink-soft);margin-top:2px}
.link-arrow{color:var(--amber);font-size:18px}

/* zakrytye moduli v demo */
details.mod-locked summary{pointer-events:none;opacity:.5}
details.mod-locked summary::after{display:none}
details.mod-locked .lk{margin-left:6px;font-size:.85em}
