:root{--ink:#1a2744;--muted:#5a6a88;--line:#c5d0e6;--paper:#f7f9fc;--cell:#fff;--accent:#2f6fed;--accent-soft:#eaf1ff;--ok:#1f9d63;--bad:#e04b4b;--carry:#c45c1a;--shadow:0 10px 30px #1a274414;--radius:18px;--font:"Segoe UI", "Trebuchet MS", sans-serif;--max:960px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font);color:var(--ink);background:radial-gradient(circle at 10% 0,#dce8ff 0%,#0000 40%),radial-gradient(circle at 90% 10%,#ffe8d6 0%,#0000 35%),linear-gradient(#eef3fb,#f8fafc 50%,#eef2f8);margin:0;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.shell{max-width:var(--max);margin:0 auto;padding:20px 16px 48px}.shell:has(.app-frame){max-width:1120px}.app-frame{grid-template-columns:minmax(220px,270px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.app-main{min-width:0}.app-nav{border:1px solid var(--line);border-radius:var(--radius);max-height:calc(100vh - 32px);box-shadow:var(--shadow);background:#fffffff5;padding:14px 12px 16px;position:sticky;top:16px;overflow:auto}.app-nav-head{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;padding:0 8px;font-size:.78rem;font-weight:700}.app-nav-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.app-nav-list.is-nested{border-left:2px solid #e4eaf5;margin:4px 0 6px;padding-left:10px}.app-nav-link,.app-nav-label,.app-nav-section-btn{text-align:left;width:100%;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:7px 10px;font-size:.9rem;line-height:1.35;text-decoration:none;display:block}.app-nav-label{cursor:default;color:var(--muted);font-weight:600}.app-nav-link:hover,.app-nav-section-btn:hover{background:var(--accent-soft);text-decoration:none}.app-nav-link.active,.app-nav-section-btn.active{background:var(--accent);color:#fff;font-weight:600}.app-nav-item:not(.is-open)>.app-nav-list,.app-nav-item:not(.is-open)>.app-nav-sections{display:none}.app-nav-sections{border-left:2px solid #d7e4ff;margin:4px 0 6px;padding-left:10px}.app-nav-sections ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.app-nav-section-btn{color:var(--muted);font-size:.82rem}.app-nav-all{border:1px solid var(--line);width:100%;font:inherit;color:var(--muted);cursor:pointer;background:#fff;border-radius:10px;margin-top:6px;padding:7px 10px;font-size:.8rem}.app-nav-all:hover,.app-nav-all.active{border-color:var(--accent);color:var(--accent)}.site-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px;display:flex}.site-header--compact{margin-bottom:16px}.lesson-section{scroll-margin-top:20px}.lesson-page.has-sections .lesson-section:not(.is-open)>:not(h2){display:none}.lesson-page.has-sections .lesson-section>h2{cursor:pointer;align-items:baseline;gap:8px;margin-top:.6em;display:flex}.lesson-page.has-sections .lesson-section>h2:before{content:"▸";color:var(--muted);font-size:.85em}.lesson-page.has-sections .lesson-section.is-open>h2{color:var(--accent)}.lesson-page.has-sections .lesson-section.is-open>h2:before{content:"▾";color:var(--accent)}.lesson-page.has-sections .lesson-section:not(.is-open)>h2{color:var(--muted);font-weight:650}.lesson-page.has-sections .lesson-section+.lesson-section{border-top:1px dashed var(--line);margin-top:.4em;padding-top:.4em}.lesson-page[data-mode=all] .lesson-section>h2{color:var(--ink)}@media (width<=860px){.app-frame{grid-template-columns:1fr}.app-nav{max-height:none;position:static}}.brand{letter-spacing:-.02em;color:var(--ink);font-size:1.15rem;font-weight:800;text-decoration:none}.brand:hover{color:var(--accent);text-decoration:none}.brand span{color:var(--accent)}.hero{margin-bottom:28px}.hero h1{letter-spacing:-.03em;margin:0 0 8px;font-size:clamp(1.6rem,4vw,2.25rem);line-height:1.15}.hero p{color:var(--muted);max-width:36rem;margin:0;font-size:1.05rem}.card-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;display:grid}.card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;background:#ffffffeb;padding:20px 18px;text-decoration:none;transition:border-color .15s,transform .15s;display:block}.card:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-2px)}.card h2{letter-spacing:-.02em;margin:0 0 6px;font-size:1.2rem}.card p{color:var(--muted);margin:0;font-size:.95rem}.card .meta{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.chip{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.chip.muted{color:var(--muted);background:#eef2f8}.breadcrumb{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:18px;font-size:.9rem;display:flex}.breadcrumb a{color:var(--muted)}.breadcrumb a:hover{color:var(--accent)}.breadcrumb .sep{opacity:.5}.prose{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#ffffffe0;padding:22px 20px 28px}.prose h1{letter-spacing:-.02em;margin:0 0 12px;font-size:clamp(1.35rem,3vw,1.8rem)}.prose h2{margin:1.4em 0 .5em;font-size:1.15rem}.prose p,.prose li{color:var(--ink)}.prose p{margin:0 0 .85em}.prose ul,.prose ol{margin:0 0 1em;padding-left:1.25em}.prose code{background:#eef2f8;border-radius:6px;padding:.1em .35em;font-size:.92em}.prose .lang-uk{color:#7a6a4a;margin:-.35em 0 .95em;font-size:.95em}.prose li .lang-uk{margin:.2em 0 .35em;font-size:.94em;display:block}.prose table{border-collapse:collapse;width:100%;margin:0 0 1em;font-size:.95rem}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:8px 10px}.prose th{background:#eef2f8}.actions{flex-wrap:wrap;gap:10px;margin:18px 0 0;display:flex}.btn{border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;box-shadow:var(--shadow);background:#fff;border-radius:14px;justify-content:center;align-items:center;padding:10px 16px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--accent);text-decoration:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{box-shadow:none;background:0 0}.site-footer{border-top:1px solid var(--line);color:var(--muted);margin-top:40px;padding-top:16px;font-size:.88rem}.empty{color:var(--muted);text-align:center;border:1px dashed var(--line);border-radius:var(--radius);background:#ffffffb3;padding:24px}
