:root {
  --ink: #171a2e;
  --ink-soft: #51556b;
  --paper: #f5f3ee;
  --surface: #fffefa;
  --line: #dedcd4;
  --line-dark: #cbc8bd;
  --lime: #d8ff59;
  --lime-deep: #b9e52f;
  --violet: #6d63d8;
  --blue: #dfe8ff;
  --peach: #ffe3c7;
  --danger: #d94b4b;
  --success: #2f8064;
  --shadow: 0 16px 50px rgba(23,26,46,.09);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Open Sans", "Segoe UI", Arial, sans-serif; font-synthesis: none; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
button, input, textarea { font: inherit; }
button { color: inherit; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid rgba(109,99,216,.35); outline-offset: 2px; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 244px minmax(0,1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 28px 18px 20px; background: var(--ink); color: #f9f8f3; display: flex; flex-direction: column; z-index: 20; }
.brand { display: flex; align-items: center; gap: 11px; padding: 0 10px 30px; color: inherit; text-decoration: none; font-family: Georgia, serif; font-size: 24px; letter-spacing: -.5px; }
.brand-mark { width: 34px; height: 34px; display: grid; place-items: center; background: var(--lime); color: var(--ink); border-radius: 8px 8px 14px 8px; font: 700 20px Georgia, serif; transform: rotate(-3deg); }
.nav-list { display: grid; gap: 5px; }
.nav-item { border: 0; background: transparent; color: #b7bbcf; min-height: 45px; border-radius: 9px; padding: 0 12px; display: flex; align-items: center; gap: 12px; text-align: left; cursor: pointer; font-size: 14px; transition: .2s ease; }
.nav-item span { width: 20px; font-size: 18px; color: #858aa4; }
.nav-item:hover { background: rgba(255,255,255,.06); color: white; }
.nav-item.active { background: rgba(216,255,89,.12); color: white; }
.nav-item.active span { color: var(--lime); }
.sidebar-spacer { flex: 1; }
.mini-progress { border-top: 1px solid rgba(255,255,255,.1); padding: 22px 9px 16px; }
.mini-progress-head { display: flex; justify-content: space-between; font-size: 12px; }
.mini-progress-head strong { color: var(--lime); }
.progress-track { height: 5px; border-radius: 4px; overflow: hidden; background: rgba(255,255,255,.12); margin: 10px 0 8px; }
.progress-track span { display: block; height: 100%; background: var(--lime); border-radius: inherit; transition: width .4s ease; }
.mini-progress small { color: #7f849c; font-size: 11px; }
.profile-card { border: 0; background: rgba(255,255,255,.06); color: white; border-radius: 10px; display: grid; grid-template-columns: 35px 1fr auto; gap: 10px; align-items: center; padding: 10px; text-align: left; cursor: pointer; }
.avatar { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 50%; background: #a8a1ff; color: var(--ink); font-size: 11px; font-weight: 800; }
.profile-card strong,.profile-card small { display: block; }
.profile-card strong { font-size: 12px; }.profile-card small { color: #9297ae; font-size: 10px; margin-top: 2px; }.profile-more { color: #777d96; font-size: 11px; }

.main { min-width: 0; }
.topbar { height: 74px; padding: 0 clamp(22px,4vw,58px); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: rgba(245,243,238,.9); backdrop-filter: blur(12px); position: sticky; top: 0; z-index: 15; }
.breadcrumbs { color: #676b7d; font-size: 12px; }.breadcrumbs span { color: #aaa9a2; margin: 0 8px; }
.top-actions { display: flex; align-items: center; gap: 9px; }
.icon-button,.mobile-menu { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); cursor: pointer; position: relative; }
.notification i { position: absolute; width: 6px; height: 6px; border-radius: 50%; background: var(--danger); top: 8px; right: 8px; border: 1px solid white; }
.outline-button,.secondary-button,.primary-button,.text-button,.copy-button,.send-button { border: 0; cursor: pointer; font-weight: 700; }
.outline-button { min-height: 37px; padding: 0 14px; border: 1px solid var(--line-dark); border-radius: 9px; background: transparent; font-size: 12px; }
.primary-button,.secondary-button { min-height: 42px; padding: 0 17px; border-radius: 9px; }
.primary-button { background: var(--lime); color: var(--ink); box-shadow: inset 0 -2px 0 rgba(23,26,46,.12); }
.primary-button:hover { background: var(--lime-deep); transform: translateY(-1px); }
.secondary-button { background: var(--surface); border: 1px solid var(--line-dark); }
.secondary-button:hover { border-color: var(--ink); }
.text-button { background: transparent; padding: 4px 0; font-size: 12px; color: var(--ink); }
.full { width: 100%; }
.mobile-menu { display: none; }

.view { display: none; padding: 54px clamp(24px,5vw,72px) 80px; max-width: 1440px; margin: 0 auto; animation: viewIn .35s ease; }
.view.active { display: block; }
@keyframes viewIn { from { opacity: 0; transform: translateY(6px); } }
.eyebrow { margin: 0 0 10px; color: #74788b; font-size: 10px; font-weight: 800; letter-spacing: .16em; }
h1,h2,h3,p { margin-top: 0; }
h1 { font: 500 clamp(34px,4vw,50px)/1.04 Georgia, "Times New Roman", serif; letter-spacing: -1.4px; margin-bottom: 14px; }
h2 { font: 500 25px/1.15 Georgia, serif; letter-spacing: -.5px; }
.lead { max-width: 760px; color: var(--ink-soft); font-size: 15px; line-height: 1.65; margin: 0; }
.welcome-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; margin-bottom: 42px; }
.welcome-row h1 { margin-bottom: 10px; }
.welcome-row .lead { max-width: 670px; }
.streak { display: flex; align-items: center; gap: 11px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 11px 15px; flex: 0 0 auto; }
.streak > span { width: 32px; height: 32px; display: grid; place-items: center; background: var(--peach); border-radius: 8px; }
.streak strong,.streak small { display: block; }.streak strong { font-size: 13px; }.streak small { color: #7a7d8e; font-size: 10px; margin-top: 2px; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(270px,.72fr); gap: 28px; }
.continue-card { background: var(--ink); color: white; border-radius: 15px; padding: 25px 27px 0; overflow: hidden; box-shadow: var(--shadow); }
.card-kicker { display: flex; justify-content: space-between; color: #9fa4bc; font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.lesson-layout { display: grid; grid-template-columns: 180px 1fr; gap: 32px; align-items: center; padding: 27px 0 31px; }
.lesson-glyph { height: 130px; background: linear-gradient(145deg,#272b49,#20233b); border: 1px solid rgba(255,255,255,.08); border-radius: 13px; display: grid; grid-template-columns: 1fr auto 1fr; place-items: center; padding: 20px; position: relative; overflow: hidden; }
.lesson-glyph:after { content:""; position:absolute; width:90px; height:90px; border:1px solid rgba(216,255,89,.18); border-radius:50%; }
.lesson-glyph span { z-index:1; width: 43px; height:43px; border-radius:8px; background:var(--lime); color:var(--ink); display:grid; place-items:center; font-size:10px; font-weight:900; }
.lesson-glyph span:last-child { background:#8b84ef; color:white; }.lesson-glyph i { z-index:1; color:#858ba7; font-style:normal; }
.lesson-type { color: #9ca1b6; font-size: 11px; }.lesson-copy h2 { font-size: 29px; margin: 8px 0 10px; }.lesson-copy p { color:#b7bbcb; line-height:1.55; font-size:13px; max-width:470px; }
.continue-foot { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 13px; min-height: 38px; border-top: 1px solid rgba(255,255,255,.09); }
.continue-foot > span { background: rgba(255,255,255,.1); height:3px; border-radius:4px; }.continue-foot i { display:block; height:100%; background:var(--lime); }.continue-foot small { color:#81869e; font-size:9px; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; margin:38px 0 15px; }.section-heading h2 { margin:0; }.section-heading .eyebrow { margin-bottom:7px; }
.next-list { border-top: 1px solid var(--line-dark); }
.next-item { width:100%; display:grid; grid-template-columns:30px 44px 1fr auto 15px; align-items:center; gap:9px; min-height:72px; border:0; border-bottom:1px solid var(--line); background:transparent; text-align:left; cursor:pointer; }
.next-item:hover { background: rgba(255,255,255,.55); }.status-dot { width:23px; height:23px; display:grid; place-items:center; border-radius:50%; background:#e5e3dc; font-size:10px; }.completed .status-dot { background:#d9eedf; color:var(--success); }.status-dot.current { background:var(--lime); }.next-index { color:#8b8e9b; font: 12px Georgia,serif; }.next-item strong,.next-item small { display:block; }.next-item strong { font-size:13px; }.next-item small { color:#898b96; font-size:10px; margin-top:5px; }.next-item b { color:#92939a; font-size:19px; }.tag { padding:5px 8px; border:1px solid var(--line); border-radius:20px; font-size:8px; text-transform:uppercase; letter-spacing:.08em; }.tag-done { color:var(--success); border-color:#c5dfd3; }.tag-now { background:var(--lime); border-color:var(--lime); }
.dashboard-rail { display:grid; align-content:start; gap:16px; }.stat-card,.mentor-card,.project-nudge { background:var(--surface); border:1px solid var(--line); border-radius:13px; padding:20px; }.stat-card { display:flex; align-items:center; gap:17px; }.ring { --value: 0; width:88px; height:88px; border-radius:50%; flex:0 0 auto; display:grid; place-items:center; background:conic-gradient(var(--violet) calc(var(--value)*1%), #e9e7e0 0); position:relative; }.ring:after { content:""; position:absolute; inset:7px; border-radius:50%; background:var(--surface); }.ring > span { z-index:1; text-align:center; }.ring strong,.ring small { display:block; }.ring strong { font: 20px Georgia,serif; }.ring small { font-size:8px; color:#828590; }.stat-card h3 { font:500 17px Georgia,serif; margin:0 0 5px; }.stat-card p { margin:0; font-size:10px; line-height:1.5; color:#777a89; }
.mentor-card { background:#e7e4ff; border-color:#d5d1f4; }.mentor-top { display:flex; align-items:center; gap:10px; }.mentor-avatar { width:36px; height:36px; display:grid; place-items:center; border-radius:50%; background:var(--violet); color:white; font:600 16px Georgia,serif; }.mentor-top small,.mentor-top strong { display:block; }.mentor-top small { font-size:8px; letter-spacing:.1em; color:#6d68a4; }.mentor-top strong { font-size:11px; margin-top:3px; }.mentor-card blockquote { margin:17px 0 14px; font:italic 15px/1.5 Georgia,serif; }.project-nudge { display:flex; gap:13px; align-items:center; }.nudge-icon { width:42px; height:42px; display:grid; place-items:center; background:var(--ink); color:var(--lime); border-radius:9px; font-size:9px; font-weight:900; }.project-nudge > div { flex:1; }.project-nudge small,.project-nudge strong { display:block; }.project-nudge small { color:#858793; font-size:8px; letter-spacing:.1em; }.project-nudge strong { font-size:11px; margin:4px 0 6px; }.project-nudge .progress-track { background:#e2e0d8; margin:0; }

.page-title { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:38px; }.page-title.compact { margin-bottom:30px; }.course-total { flex:0 0 auto; display:flex; align-items:baseline; gap:8px; border-bottom:2px solid var(--ink); padding-bottom:7px; }.course-total strong { font: 38px Georgia,serif; }.course-total span { font-size:10px; color:#737684; }.filter-row { display:flex; gap:7px; flex-wrap:wrap; margin-bottom:22px; }.chip { border:1px solid var(--line-dark); border-radius:30px; background:transparent; padding:8px 13px; font-size:10px; cursor:pointer; }.chip.active { background:var(--ink); color:white; border-color:var(--ink); }
.module-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }.module-card { min-height:210px; border:1px solid var(--line); background:var(--surface); border-radius:13px; padding:19px; display:flex; flex-direction:column; cursor:pointer; transition:.22s ease; position:relative; overflow:hidden; }.module-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--line-dark); }.module-card .module-top { display:flex; justify-content:space-between; align-items:center; }.module-index { font:14px Georgia,serif; color:#858897; }.module-lock { font-size:9px; padding:4px 7px; background:#edeae2; border-radius:20px; }.module-card h2 { font-size:19px; margin:27px 0 8px; max-width:90%; }.module-card p { color:#747785; font-size:11px; line-height:1.5; margin-bottom:20px; }.module-bottom { margin-top:auto; display:flex; justify-content:space-between; align-items:center; font-size:9px; color:#898b96; }.module-card .progress-track { width:62px; background:#e8e5de; margin:0; }.module-card.current { background:var(--ink); color:white; border-color:var(--ink); }.module-card.current p,.module-card.current .module-index,.module-card.current .module-bottom { color:#aaaec0; }.module-card.current:after { content:"API →"; position:absolute; right:-6px; bottom:11px; font:700 50px Georgia,serif; color:rgba(216,255,89,.09); }.module-card.premium:before { content:"PLUS"; position:absolute; top:0; right:0; padding:6px 9px; background:#e7e4ff; color:#5d56a5; font-size:8px; font-weight:900; border-radius:0 12px 0 10px; }

.access-badge,.lab-status { border-radius:30px; padding:9px 13px; font-size:10px; font-weight:800; border:1px solid #bcd8cb; color:var(--success); background:#f0faf4; flex:0 0 auto; }.trainer-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.trainer-card { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:21px; display:flex; flex-direction:column; min-height:385px; }.trainer-card.featured { border-color:#b8b1fa; box-shadow:0 14px 40px rgba(109,99,216,.11); }.trainer-meta,.trainer-foot { display:flex; justify-content:space-between; align-items:center; }.trainer-meta span { font-size:8px; font-weight:900; letter-spacing:.12em; }.trainer-meta small,.trainer-foot > span { color:#828592; font-size:9px; }.trainer-visual { height:130px; margin:18px 0 21px; border-radius:10px; background:#eeece5; display:flex; align-items:center; justify-content:center; gap:13px; overflow:hidden; }.trainer-card h2 { margin-bottom:9px; }.trainer-card > p { color:#747785; font-size:12px; line-height:1.55; }.trainer-foot { margin-top:auto; }.contract-visual { background:var(--ink); color:white; font:11px ui-monospace,monospace; }.contract-visual span { padding:10px; border:1px solid rgba(255,255,255,.17); border-radius:6px; }.contract-visual span:last-child { color:var(--lime); }.contract-visual i { width:45px; height:1px; background:#777d98; position:relative; }.contract-visual i:after { content:"›"; position:absolute; right:-2px; top:-10px; }.req-visual { background:#ffe8cf; }.req-visual b { width:41px;height:41px;display:grid;place-items:center;border-radius:50%;background:#f1b979;font:22px Georgia,serif; }.req-visual span { font:italic 14px Georgia,serif; }.sql-visual { background:#e5e4ff; justify-content:flex-start; padding:27px; }.sql-visual code { color:#393568; line-height:1.7; font-size:11px; }.bpmn-visual { font-size:9px; }.bpmn-visual i { width:18px;height:18px;border:2px solid var(--ink);border-radius:50%; }.bpmn-visual span { padding:8px;border:1px solid #aba99f;border-radius:5px; }.bpmn-visual b { font-size:22px; }

.lab-status i { display:inline-block; width:7px;height:7px;border-radius:50%;background:#43a777;margin-right:6px; box-shadow:0 0 0 4px rgba(67,167,119,.12); }.lab-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(270px,.65fr); gap:20px; }.lab-console { background:#1b1e32; color:white; border-radius:14px; overflow:hidden; box-shadow:var(--shadow); }.console-toolbar { height:58px; display:flex; align-items:center; padding:0 21px; border-bottom:1px solid rgba(255,255,255,.09); gap:12px; }.method { color:var(--lime); font-size:10px; font-weight:900; }.console-toolbar code { color:#c5c8d7; font-size:12px; flex:1; }.copy-button { background:rgba(255,255,255,.07); color:#b9bdce; border-radius:6px; padding:7px 9px; font-size:9px; }.code-buttons { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; padding:21px 21px 0; }.code-buttons button { border:1px solid rgba(255,255,255,.1); background:#252941; color:#a8adbf; border-radius:8px; padding:12px; text-align:left; cursor:pointer; font-size:9px; }.code-buttons span { display:block; color:white; font:20px Georgia,serif; margin-bottom:5px; }.code-buttons button.active { border-color:var(--lime); background:rgba(216,255,89,.08); }.code-buttons button.active span { color:var(--lime); }.send-button { margin:14px 21px 20px; width:calc(100% - 42px); height:42px; background:var(--lime); color:var(--ink); border-radius:8px; }.response-panel { min-height:300px; background:#111322; border-top:1px solid rgba(255,255,255,.08); padding:20px; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:11px; }.response-empty { min-height:250px; display:grid; place-items:center; align-content:center; gap:7px; color:#676c83; text-align:center; }.response-empty > span { font-size:31px; }.response-empty strong { color:#8f94a9; }.response-empty small { font-size:9px; }.response-meta { display:flex; justify-content:space-between; color:#8e93a8; margin-bottom:18px; }.response-code { color:#ffcf65; }.response-code.success { color:var(--lime); }.json-line { line-height:1.75; color:#c8cada; }.json-key { color:#9990fa; }.json-string { color:#b6de7b; }.json-number { color:#ffbd76; }.lab-guide { background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:22px; }.guide-step { display:grid;grid-template-columns:26px 1fr;gap:11px;padding-bottom:19px;position:relative; }.guide-step:not(:last-of-type):after { content:"";position:absolute;left:12px;top:28px;bottom:2px;border-left:1px dashed #c8c6be; }.guide-step > span { width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#e5e3dc;font-size:9px;font-weight:800; }.guide-step.active > span { background:var(--lime); }.guide-step strong { font-size:11px; }.guide-step p { color:#777a88;font-size:10px;line-height:1.5;margin:5px 0 0; }.guide-step kbd { background:#e8e6df;border:1px solid #cbc8bf;border-radius:3px;padding:1px 4px;font-size:8px; }.analyst-note { background:#fff2d3;border:1px solid #efdbac;border-radius:9px;padding:13px;margin:5px 0 17px; }.analyst-note strong { font-size:10px; }.analyst-note p { margin:6px 0 0;font-size:9px;line-height:1.5;color:#715f37; }.improvement span { display:block;font-size:10px;font-weight:800;margin-bottom:7px; }.improvement textarea { width:100%;min-height:94px;resize:vertical;border:1px solid var(--line);border-radius:8px;background:#faf9f5;padding:11px;font-size:10px;line-height:1.5;margin-bottom:9px; }

.project-timeline { max-width:900px; margin:0 auto; }.project-card { display:grid;grid-template-columns:80px 1fr;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px; }.project-card.accent { background:#e7e4ff;border-color:#d0ccf0; }.project-number { font:42px Georgia,serif;color:#b2b2ac; }.project-label { font-size:8px;letter-spacing:.13em;font-weight:900;color:#777a89; }.project-content h2 { font-size:28px;margin:9px 0 12px; }.project-content > p { color:#6f7281;font-size:12px;line-height:1.6; }.project-content ul,.price-card ul { list-style:none;padding:0;margin:19px 0;display:grid;gap:9px; }.project-content li,.price-card li { font-size:11px;padding-left:20px;position:relative; }.project-content li:before,.price-card li:before { content:"✓";position:absolute;left:0;color:var(--success);font-weight:900; }.project-actions { display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:17px;margin-top:22px; }.project-actions > span { font-size:9px;color:#7e818e; }.timeline-bridge { height:54px;display:grid;place-items:center;position:relative; }.timeline-bridge:before { content:"";height:100%;border-left:1px dashed #aaa9a3; }.timeline-bridge span { position:absolute;background:var(--paper);padding:5px 9px;font-size:8px;color:#7b7e8a; }

.pricing-intro { text-align:center;margin-bottom:35px; }.pricing-intro .lead { margin:0 auto; }.pricing-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:stretch; }.price-card { background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:23px;display:flex;flex-direction:column;position:relative; }.price-card.recommended { background:var(--ink);color:white;border-color:var(--ink);transform:translateY(-7px);box-shadow:var(--shadow); }.recommend-label { position:absolute;top:-12px;right:16px;background:var(--lime);color:var(--ink);padding:6px 9px;border-radius:20px;font-size:8px;font-weight:900; }.price-name { font:20px Georgia,serif; }.price { margin:24px 0 14px; }.price strong,.price small { display:block; }.price strong { font:32px Georgia,serif; }.price small { color:#898c99;font-size:8px;margin-top:3px; }.price-card > p { min-height:34px;color:#777a88;font-size:10px;line-height:1.5; }.recommended > p,.recommended li.muted { color:#a7abbd; }.price-card ul { min-height:116px; }.price-card li.muted { color:#aaa9a4; }.price-card li.muted:before { content:"—";color:#aaa9a4; }.price-card button { margin-top:auto; }.payment-note { text-align:center;color:#83858e;font-size:9px;margin:27px auto 0;max-width:650px; }
.license-clarification { margin-top:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:13px;overflow:hidden; }.license-clarification > div { background:var(--surface);padding:18px; }.license-clarification strong { font:500 15px Georgia,serif; }.license-clarification p { margin:7px 0 0;color:#737684;font-size:10px;line-height:1.55; }
.license-consent { max-width:760px;margin:20px auto 0;display:flex;align-items:flex-start;gap:9px;color:#686b79;font-size:10px;line-height:1.5; }.license-consent input { margin-top:2px;accent-color:var(--ink); }

.modal-backdrop { position:fixed;inset:0;background:rgba(16,18,31,.62);backdrop-filter:blur(7px);z-index:100;display:grid;place-items:center;padding:18px; }.modal-backdrop[hidden] { display:none; }.modal { width:min(430px,100%);background:var(--surface);border-radius:16px;padding:31px;box-shadow:0 30px 90px rgba(0,0,0,.25);position:relative;animation:modalIn .25s ease; }.modal.wide { width:min(620px,100%); }.modal-close { position:absolute;right:16px;top:14px;border:0;background:transparent;font-size:24px;color:#7f818b;cursor:pointer; }.modal h2 { font-size:30px;margin-bottom:7px; }.modal > p:not(.eyebrow) { color:#777a88;font-size:12px;margin-bottom:22px; }.modal form { display:grid;gap:13px; }.modal label > span { display:block;font-size:10px;font-weight:700;margin-bottom:6px; }.modal input { width:100%;height:43px;border:1px solid var(--line-dark);border-radius:8px;padding:0 11px;background:#fbfaf6; }.consent { display:flex;align-items:center;gap:8px;color:#727582; }.consent input { width:16px;height:16px; }.consent span { margin:0!important;font-weight:400!important; }.modal-note { display:block;text-align:center;margin-top:16px;color:#83858f; }.link-inline { border:0;background:transparent;padding:0;text-decoration:underline;cursor:pointer; }.trainer-question { background:#f1efe9;border-radius:10px;padding:18px;margin:18px 0; }.trainer-question > span { color:#777a89;font-size:9px; }.trainer-question p { margin:8px 0 0;font:italic 17px Georgia,serif; }.option-list { display:grid;gap:8px; }.option { border:1px solid var(--line);background:white;border-radius:8px;padding:12px;text-align:left;cursor:pointer;font-size:11px; }.option:hover { border-color:var(--violet); }.option.correct { border-color:var(--success);background:#eaf7ef; }.option.wrong { border-color:var(--danger);background:#fff0ed; }.trainer-feedback { min-height:42px;font-size:11px;line-height:1.5;color:#656877;margin-top:12px; }.sql-answer { width:100%;min-height:90px;border:1px solid var(--line-dark);border-radius:8px;background:#1b1e32;color:#d8ff59;font:12px ui-monospace,monospace;padding:13px;resize:vertical; }
@keyframes modalIn { from { opacity:0;transform:translateY(10px) scale(.98); } }
.toast { position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);background:var(--ink);color:white;padding:11px 17px;border-radius:9px;font-size:11px;z-index:200;opacity:0;pointer-events:none;transition:.25s ease;box-shadow:var(--shadow); }.toast.show { opacity:1;transform:translate(-50%,0); }

@media (max-width: 1080px) { .module-grid { grid-template-columns:repeat(2,1fr); }.pricing-grid { grid-template-columns:repeat(2,1fr); }.license-clarification { grid-template-columns:1fr; }.dashboard-grid { grid-template-columns:1fr; }.dashboard-rail { grid-template-columns:repeat(3,1fr); }.stat-card { grid-column:auto; }.mentor-card { min-height:180px; } }
@media (max-width: 760px) { .app-shell { grid-template-columns:1fr; }.sidebar { position:fixed;left:0;transform:translateX(-102%);transition:.25s ease;width:244px;box-shadow:20px 0 60px rgba(0,0,0,.2); }.sidebar.open { transform:translateX(0); }.mobile-menu { display:block; }.breadcrumbs { display:none; }.topbar { padding:0 16px; }.view { padding:35px 17px 60px; }.welcome-row,.page-title { align-items:flex-start;flex-direction:column; }.welcome-row { margin-bottom:26px; }.streak { display:none; }.lesson-layout { grid-template-columns:1fr; }.lesson-glyph { display:none; }.dashboard-rail,.trainer-grid,.lab-layout,.pricing-grid { grid-template-columns:1fr; }.module-grid { grid-template-columns:1fr; }.dashboard-rail { display:grid; }.next-item { grid-template-columns:28px 38px 1fr 12px; }.next-item .tag { display:none; }.code-buttons { grid-template-columns:1fr; }.project-card { grid-template-columns:1fr;padding:22px; }.project-number { font-size:25px;margin-bottom:12px; }.project-actions { align-items:flex-start;gap:12px;flex-direction:column; }.project-actions button { width:100%; }.price-card.recommended { transform:none; }.top-actions .icon-button { display:none; }.lab-status,.access-badge { align-self:flex-start; } }
@media (prefers-reduced-motion: reduce) { *,*:before,*:after { scroll-behavior:auto!important;transition:none!important;animation:none!important; } }

/* Content library and account progress */
:root { --theory:#b9f227; --simple:#7b6fe8; --advanced:#f2a14b; }
.progress-stack { height:7px;display:flex;overflow:hidden;border-radius:20px;background:rgba(255,255,255,.1);margin:11px 0 13px; }
.progress-stack i { width:0;height:100%;transition:width .35s ease; }.progress-stack .theory{background:var(--theory)}.progress-stack .simple{background:var(--simple)}.progress-stack .advanced{background:var(--advanced)}
.mini-counters { display:grid;gap:6px;color:#9b9fb3;font-size:9px; }.mini-counters span{display:flex;align-items:center;gap:6px}.mini-counters b{color:white}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:0 0 auto}.dot.theory{background:var(--theory)}.dot.simple{background:var(--simple)}.dot.advanced{background:var(--advanced)}
.profile-card { grid-template-columns:35px 1fr; }
.access-pill { border:1px solid #cdd9a8;background:#f5fbdc;border-radius:30px;padding:10px 14px;font-size:10px;font-weight:800;white-space:nowrap; }
.progress-summary,.legend-card { background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px; }
.progress-summary h2{font-size:22px}.counter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:20px 0}.counter-grid>div{border-radius:10px;padding:13px 9px;background:#f0eee8}.counter-grid>div:nth-child(1){border-top:3px solid var(--theory)}.counter-grid>div:nth-child(2){border-top:3px solid var(--simple)}.counter-grid>div:nth-child(3){border-top:3px solid var(--advanced)}.counter-grid strong,.counter-grid span,.counter-grid small{display:block}.counter-grid strong{font:26px Georgia,serif}.counter-grid span{font-size:9px;margin:2px 0}.counter-grid small{font-size:8px;color:#888b97}.counter-note{color:#777a88;font-size:10px;line-height:1.55;margin:0}.legend-card{display:grid;gap:10px}.legend-card strong{font:16px Georgia,serif;margin-bottom:3px}.legend-card span{display:flex;align-items:center;gap:8px;font-size:10px;color:#6f7280}
.route-preview{display:grid;border-top:1px solid var(--line-dark)}.route-preview button{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:12px;min-height:68px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.route-preview button:hover{background:rgba(255,255,255,.55)}.route-preview button>span{font:18px Georgia,serif;color:#90929b}.route-preview strong,.route-preview small{display:block}.route-preview strong{font-size:12px}.route-preview small{color:#8b8d97;font-size:9px;margin-top:4px}
.module-card.locked{background:#f0eee8}.module-access{font-size:8px;font-weight:900;letter-spacing:.08em;padding:5px 7px;border-radius:20px;background:#eef5d7;color:#52631f}.module-access.plus{background:#e7e4ff;color:#5d56a5}.module-access.full{width:auto;flex:0 0 auto;background:#ffe4c9;color:#82501c}.module-bottom b{font-size:9px;color:var(--ink)}
.module-card.placeholder{cursor:default;background:#f1efe9;color:#777a86}.module-card.placeholder:hover{transform:none;box-shadow:none;border-color:var(--line)}.module-card.placeholder .module-access{background:#e4e1d9;color:#6f716f}.module-card.placeholder .module-bottom b{color:#8b8d94}.route-preview button:disabled{cursor:default;color:#777a86}.route-preview button:disabled:hover{background:transparent}.route-preview button:disabled>b{font-size:var(--font-min);letter-spacing:.045em}
.module-hero{max-width:900px;margin-bottom:35px}.back-button{border:0;background:transparent;padding:0;margin-bottom:30px;color:#737684;font-size:11px;cursor:pointer}.auth-gate{max-width:760px;background:var(--ink);color:white;border-radius:16px;padding:38px;box-shadow:var(--shadow)}.auth-gate>span{display:inline-block;color:var(--ink);background:var(--lime);border-radius:20px;padding:6px 9px;font-size:8px;font-weight:900}.auth-gate h2{font-size:30px;margin:20px 0 10px}.auth-gate p{color:#b6bacb;font-size:12px;margin-bottom:22px}
.material-layout{display:grid;grid-template-columns:220px minmax(0,760px);gap:34px;align-items:start}.section-nav{position:sticky;top:100px;background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:16px}.section-nav>strong{display:block;font-size:10px;letter-spacing:.09em;margin-bottom:10px}.section-nav nav{display:grid}.section-nav a{display:grid;grid-template-columns:22px 1fr;gap:8px;padding:10px 5px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:10px;line-height:1.35}.section-nav a>span{color:#92949c;font:12px Georgia,serif}.nav-progress{grid-column:2;display:flex;gap:3px;margin-top:5px}.nav-progress b{width:14px;height:3px;border-radius:3px;background:#ddd}.nav-progress b.theory.done{background:var(--theory)}.nav-progress b.simple.done{background:var(--simple)}.nav-progress b.advanced.done{background:var(--advanced)}.section-legend{border-top:1px solid var(--line);margin-top:10px;padding-top:12px;display:grid;gap:7px}.section-legend span{display:flex;align-items:center;gap:6px;font-size:8px;color:#858793}
.material-content{min-width:0}.theory-section{scroll-margin-top:95px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:clamp(24px,5vw,48px);margin-bottom:28px;box-shadow:0 10px 35px rgba(23,26,46,.04)}.theory-section>header{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:25px}.theory-section>header span{font-size:8px;font-weight:900;letter-spacing:.13em;color:#777a88}.theory-section>header h2{font-size:30px;margin:7px 0 0}.theory-section>header small{color:#8a8c96;font-size:9px;white-space:nowrap}.section-intro{font:18px/1.65 Georgia,serif;color:#343749}.knowledge-list{padding:0;list-style:none;display:grid;gap:11px;margin:25px 0}.knowledge-list li{position:relative;padding-left:24px;font-size:12px;line-height:1.55;color:#5f6271}.knowledge-list li:before{content:'✓';position:absolute;left:0;color:#59901d;font-weight:900}
.concept-diagram{display:block;background:var(--ink);border-radius:12px;padding:25px 16px;margin:27px 0;color:white;overflow:auto}.concept-diagram>strong{display:block;margin:0 0 14px;text-align:center;color:#d8dbea;font-size:var(--font-min)}.concept-diagram>div{display:flex;align-items:center;justify-content:center;gap:8px}.concept-diagram span{min-width:110px;text-align:center;border:1px solid rgba(255,255,255,.17);border-radius:8px;padding:12px 9px;font-size:9px}.concept-diagram span:first-child{background:var(--lime);color:var(--ink);border-color:var(--lime);font-weight:900}.concept-diagram i{color:#777d95;font-style:normal}.concept-diagram.map>div{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));max-width:620px;margin:auto}.concept-diagram.map span{min-width:0}.concept-diagram.map span:first-child{grid-column:1/-1}.concept-diagram.cycle i:last-of-type{color:var(--lime)}.best-practice{background:#f2efdc;border-left:4px solid var(--theory);border-radius:0 10px 10px 0;padding:16px 18px;margin:25px 0}.best-practice span{font-size:8px;font-weight:900;letter-spacing:.12em}.best-practice p{font-size:11px;line-height:1.6;margin:7px 0 0;color:#565947}.section-finish{display:flex;align-items:center;gap:11px;border-top:1px solid var(--line);padding-top:18px}.completion-mark{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#e8e6df;color:#aaa;font-weight:900}.completion-mark.done{background:var(--theory);color:var(--ink)}.section-finish strong,.section-finish small{display:block}.section-finish strong{font-size:10px}.section-finish small{font-size:8px;color:#8a8c96;margin-top:3px}
.task-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px}.section-task{position:relative;min-height:340px;border-radius:12px;padding:18px;overflow:hidden}.simple-task{background:#ebe9ff;border:1px solid #d5d0ff}.advanced-task{background:#fff0df;border:1px solid #f5d4ad}.task-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.task-heading>span{font-size:8px;font-weight:900;letter-spacing:.1em}.task-state{font-size:8px;padding:5px 7px;border-radius:20px;background:rgba(255,255,255,.55)}.task-state.done{background:#dff3ca;color:#356117}.section-task h3{font:16px/1.35 Georgia,serif;margin:18px 0 14px}.task-options{display:grid;gap:7px}.task-options button{border:1px solid rgba(80,72,160,.18);background:rgba(255,255,255,.7);border-radius:8px;padding:9px;text-align:left;font-size:9px;cursor:pointer}.task-options button.selected{border-color:#5c50ca;background:#dcd7ff}.task-options button.correct{border-color:#5d9d42;background:#e4f4d9}.task-options button.wrong{border-color:#d26868;background:#ffe2de}.section-task textarea{width:100%;min-height:110px;border:1px solid #e3bc8f;background:rgba(255,255,255,.65);border-radius:8px;padding:10px;resize:vertical;font-size:9px;line-height:1.5}.task-submit{width:100%;min-height:42px;border:0;border-radius:8px;background:var(--ink);color:white;font-size:9px;font-weight:800;margin-top:10px;padding:8px;cursor:pointer}.task-hint,.task-expected,.task-feedback{font-size:var(--font-min);line-height:1.55}.task-hint{color:#66697a;margin:-5px 0 12px}.task-expected{background:rgba(255,255,255,.58);border-radius:8px;padding:11px;margin:0 0 10px}.task-feedback{min-height:24px;color:#8b3d35;margin:10px 0 0}.task-lock{position:absolute;inset:0;background:rgba(245,243,238,.93);backdrop-filter:blur(3px);display:grid;place-content:center;text-align:center;padding:18px}.task-lock strong,.task-lock span{display:block}.task-lock strong{font:17px Georgia,serif}.task-lock span{font-size:9px;color:#767987;margin-top:7px}.section-sentinel{height:2px}

.section-objective{border:1px solid var(--line);border-radius:11px;padding:16px 18px;margin-bottom:24px;background:#faf9f5}.section-objective span,.case-example>span,.pitfall>span{display:block;font-size:var(--font-min);font-weight:600;letter-spacing:.045em}.section-objective p{font-size:var(--font-body);line-height:1.65;margin:7px 0 0}.term-list{margin:30px 0}.term-list h3,.content-block h3,.case-example h3,.pitfall h3,.section-checklist h3{font-size:22px;line-height:1.35}.term-list dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.term-list dl>div{border:1px solid var(--line);border-radius:9px;padding:13px}.term-list dt{font-weight:700;font-size:var(--font-body)}.term-list dd{margin:5px 0 0;color:#626574;font-size:var(--font-min);line-height:1.55}.content-block{margin:30px 0}.content-block p,.content-block li,.case-example p,.pitfall p,.section-checklist li{font-size:var(--font-body);line-height:1.7;color:#4f5261}.content-block ul,.section-checklist ul{padding-left:24px}.case-example,.pitfall{border-radius:11px;padding:18px 20px;margin:26px 0}.case-example{background:#edf1f7}.pitfall{background:#f7e9e5;border-left:4px solid #c87866}.case-example h3,.pitfall h3{margin:8px 0}.case-example p,.pitfall p{margin:0}.section-checklist{margin:30px 0}.section-checklist ul{display:grid;gap:8px}
.markdown-material{color:#4f5261}.markdown-material p,.markdown-material li{font-size:var(--font-body);line-height:1.75}.markdown-material p{margin:0 0 18px}.markdown-material ul,.markdown-material ol{display:grid;gap:8px;padding-left:25px;margin:0 0 22px}.markdown-material strong{color:var(--ink)}.markdown-material code{font-family:inherit;font-weight:700;color:var(--ink);background:#eeece5;border-radius:4px;padding:1px 4px}
.final-quiz{position:relative;scroll-margin-top:95px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:clamp(24px,5vw,48px);margin:4px 0 28px;box-shadow:0 10px 35px rgba(23,26,46,.04);overflow:hidden}.final-quiz>header{border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:26px}.final-quiz>header h2{font-size:30px;margin:8px 0}.final-quiz>header>p:last-child{font-size:var(--font-body);line-height:1.65;color:#5f6271;margin:0}.final-quiz-questions{display:grid;gap:18px}.final-question{border:1px solid var(--line);border-radius:12px;padding:18px;margin:0;min-width:0}.final-question legend{display:flex;align-items:flex-start;gap:10px;padding:0 7px 0 0;font:700 17px/1.45 Georgia,serif;color:var(--ink)}.final-question legend>span{flex:0 0 auto;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--ink);color:#fff;font:700 var(--font-min)/1 Arial,sans-serif}.final-question-hint{font-size:var(--font-min);color:#747785;margin:2px 0 12px}.final-options{display:grid;gap:8px;margin-top:12px}.final-options label{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:10px;min-height:48px;border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:#fff;cursor:pointer;transition:.16s ease}.final-options label:hover{border-color:#aaa9b2}.final-options input{width:16px;height:16px;margin:0;accent-color:#5c50ca}.final-option-letter{display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:#f0eee8;font-size:var(--font-min);font-weight:800}.final-option-text{font-size:var(--font-body);line-height:1.55}.final-options small{font-size:10px;font-weight:700;white-space:nowrap}.final-options label:has(input:checked){border-color:#5c50ca;background:#f0efff}.final-options label.correct-selected{border:2px solid #5b942f;background:#e6f3d8}.final-options label.correct-selected .final-option-letter{background:#5b942f;color:#fff}.final-options label.correct-selected small{color:#3d6e1c}.final-options label.wrong-selected{border:2px solid #c75353;background:#ffe4e1}.final-options label.wrong-selected .final-option-letter{background:#c75353;color:#fff}.final-options label.wrong-selected small{color:#9b3333}.final-options label.correct-missed{border:1px solid #63a83e;background:#fff}.final-options label.correct-missed .final-option-letter{color:#477d2a;box-shadow:inset 0 0 0 1px #63a83e;background:#fff}.final-options label.correct-missed small{color:#477d2a}.final-quiz-actions{display:flex;align-items:stretch;gap:12px;margin-top:25px}.final-quiz-actions>button{min-width:150px}.final-quiz-result{display:flex;align-items:center;gap:12px;flex:1;border-radius:10px;background:#f0eee8;padding:12px 16px}.final-quiz-result[hidden]{display:none}.final-quiz-result strong{font:700 24px Georgia,serif}.final-quiz-result span{font-size:var(--font-body);line-height:1.5}.final-quiz>.task-lock{z-index:2}.final-test-link{margin-top:7px;border-top:1px solid var(--line)}
.workbench{max-width:760px;margin:6vh auto;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:clamp(35px,7vw,75px);box-shadow:var(--shadow)}.workbench-mark{width:74px;height:74px;display:grid;place-items:center;margin:0 auto 25px;border-radius:18px;background:var(--ink);color:var(--lime);font:700 16px Georgia,serif}.workbench p:not(.eyebrow){color:#686b79;line-height:1.65;max-width:570px;margin:0 auto 24px}.free-banner{max-width:900px;margin:0 auto 34px;display:flex;align-items:center;gap:18px;background:#ecf8ca;border:1px solid #cfe58e;border-radius:13px;padding:18px 22px}.free-banner>span{background:var(--ink);color:var(--lime);border-radius:20px;padding:7px 9px;font-size:8px;font-weight:900}.free-banner strong{font:18px Georgia,serif}.free-banner p{font-size:10px;color:#62694c;margin:5px 0 0}.pricing-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));max-width:950px;margin:0 auto}.stub-button{cursor:default}.stub-button:hover{transform:none}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:#eeece6;border-radius:9px;padding:3px;margin:20px 0 16px}.auth-tabs button{height:34px;border:0;background:transparent;border-radius:7px;font-size:10px;cursor:pointer}.auth-tabs button.active{background:white;box-shadow:0 2px 8px rgba(23,26,46,.08);font-weight:800}.form-error{min-height:16px!important;margin:0!important;color:var(--danger)!important;font-size:9px!important}.modal form[hidden]{display:none}
@media(max-width:980px){.material-layout{grid-template-columns:1fr}.section-nav{position:static}.section-nav nav{grid-template-columns:1fr 1fr}.pricing-grid.three{grid-template-columns:1fr}.task-pair{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:600px){.material-layout{display:block}.theory-section{padding:23px 17px}.theory-section>header{display:block}.theory-section>header small{display:block;margin-top:8px}.concept-diagram>div{justify-content:flex-start}.concept-diagram.map>div,.term-list dl{grid-template-columns:1fr}.concept-diagram.map span:first-child{grid-column:auto}.section-intro{font-size:16px}.section-nav nav{grid-template-columns:1fr}.counter-grid{grid-template-columns:1fr}.free-banner{align-items:flex-start;flex-direction:column}}

/* Typography: readable Cyrillic at small sizes, restrained emphasis */
h1,h2,h3,.price-name,.free-banner strong,.workbench h1 { font-family: Georgia, "Times New Roman", serif; }
code,pre,.sql-answer,.console-toolbar code { font-family: "Roboto Mono", Consolas, "Courier New", monospace; }
button,input,textarea { line-height:1.4; }
.eyebrow,.card-kicker,.module-access,.theory-section>header span,.task-heading>span,.best-practice span,.project-label { font-size:10px; font-weight:600; letter-spacing:.09em; line-height:1.45; }
.module-access { padding:5px 8px; }
.module-card p { font-size:13px; line-height:1.58; }
.module-bottom { font-size:11px; line-height:1.4; }
.module-bottom b { font-size:11px; font-weight:600; }
.mini-counters,.route-preview small,.counter-grid small,.theory-section>header small,.section-finish small,.task-lock span,.payment-note { font-size:10px; line-height:1.45; }
.section-nav>strong { font-size:11px; font-weight:600; letter-spacing:.06em; }
.section-nav a { font-size:12px; line-height:1.45; }
.section-legend span { font-size:10px; }
.task-state { font-size:10px; font-weight:600; }
.section-finish strong { font-size:12px; font-weight:600; }
.task-options button,.section-task textarea,.task-submit { font-size:11px; line-height:1.5; }
.price small { font-size:10px; }
.price-card>p,.price-card li { font-size:12px; line-height:1.55; }
.outline-button,.primary-button,.secondary-button,.text-button { font-size:12px; font-weight:600; }
.profile-card strong { font-size:13px; font-weight:600; }
.profile-card small { font-size:11px; }

/* Large desktop readability: no meaningful interface text below chat-size */
:root { --font-min:15px; --font-body:16px; }
body { font-size:var(--font-body); line-height:1.55; }
.app-shell { grid-template-columns:286px minmax(0,1fr); }
.sidebar { padding:30px 22px 22px; }
.nav-item { min-height:50px; font-size:15px; }
.topbar { min-height:80px; }
.breadcrumbs,.outline-button,.primary-button,.secondary-button,.text-button,.back-button,.chip,.auth-tabs button,.toast { font-size:var(--font-min); }
.mini-progress-head,.mini-progress small,.mini-counters,.avatar,.profile-card strong,.profile-card small { font-size:var(--font-min); line-height:1.45; }
.eyebrow,.card-kicker,.module-access,.module-index,.access-pill,.lesson-glyph span,.theory-section>header span,.task-heading>span,.best-practice span,.project-label,.free-banner>span,.auth-gate>span,.recommend-label { font-size:var(--font-min); font-weight:600; letter-spacing:.045em; line-height:1.45; }
.lead,.lesson-copy p,.counter-note,.module-card p,.auth-gate p,.knowledge-list li,.best-practice p,.free-banner p,.price-card>p,.price-card li,.modal>p:not(.eyebrow),.modal label>span,.consent,.form-error { font-size:var(--font-body) !important; line-height:1.65; }
.lesson-type,.continue-foot small,.course-total span,.module-bottom,.module-bottom b,.route-preview strong,.route-preview small,.counter-grid span,.counter-grid small,.legend-card span,.section-nav>strong,.section-nav a,.section-legend span,.theory-section>header small,.concept-diagram span,.section-finish strong,.section-finish small,.task-state,.task-options button,.section-task textarea,.task-submit,.task-lock span,.price small,.payment-note { font-size:var(--font-min); line-height:1.5; }
.modal input,.modal textarea { font-size:var(--font-body); }
.module-card h2 { font-size:22px; }
.route-preview button { min-height:82px; }
.counter-grid>div { padding:16px 12px; }
.mini-progress { padding-top:24px; }
.material-layout { grid-template-columns:260px minmax(0,820px); }
.section-nav { padding:19px; }
.section-task h3 { font-size:19px; line-height:1.45; }
.modal { width:min(500px,100%); }
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{width:286px}.topbar{min-height:74px}}
