:root { --bg: #ffffff; --fg: #0a0a0a; --muted:#6b7280; --line:#e5e7eb; --accent:#111827; --focus:#111827; --ok:#065f46; --warn:#92400e; --radius:12px; --shadow:0 4px 24px rgba(0,0,0,.06); }
*{box-sizing:border-box} html,body{height:100%} body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.6 "Noto Sans",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.topbar{position:sticky;top:0;z-index:10;display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--bg);backdrop-filter:saturate(120%) blur(6px)}
.brand{font-weight:700;letter-spacing:.2px;margin:0}
.icon-btn{border:1px solid var(--line);background:#fff;padding:8px 10px;border-radius:10px;cursor:pointer}
.icon-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.search-wrap{flex:1;display:flex;justify-content:center}
.search-wrap input{width:min(720px,100%);border:1px solid var(--line);border-radius:999px;padding:10px 14px;outline:none}
.search-wrap input:focus{border-color:var(--focus);box-shadow:0 0 0 3px rgba(0,0,0,.06)}
.layout{display:grid;grid-template-columns:280px 1fr;min-height:calc(100vh - 120px)}
.sidebar{border-right:1px solid var(--line);padding:12px;overflow:auto}
.nav-list{display:flex;flex-direction:column;gap:6px}
.nav-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}
.nav-item.active{border-color:#111827}
.nav-item small{color:var(--muted)}
.sidebar-footer{margin-top:12px;display:flex;justify-content:space-between;align-items:center;border-top:1px dashed var(--line);padding-top:10px}
.main{padding:20px;max-width:1000px;margin:0 auto}
.lesson h1,.lesson h2,.lesson h3{line-height:1.25;margin:18px 0 10px}
.lesson p, .lesson ul{margin:10px 0}
.lesson code{font-family:"Space Mono",monospace;background:#f8fafc;border:1px solid var(--line);border-radius:6px;padding:2px 6px}
.practice{margin-top:24px;border:1px solid var(--line);border-radius:var(--radius);padding:16px;background:#fff;box-shadow:var(--shadow)}
.practice-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.primary-btn,.secondary-btn,.link-btn{border-radius:10px;border:1px solid var(--line);background:#fff;padding:8px 12px;cursor:pointer}
.primary-btn{background:#0f172a;color:#fff;border-color:#0f172a}
.primary-btn:hover{filter:brightness(1.05)}
.secondary-btn:hover{transform:translateY(-1px)}
.link-btn{background:transparent;border:none;color:var(--muted);text-decoration:underline}
.answer-form{display:flex;gap:10px;align-items:end;margin:10px 0}
.answer-form input{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px}
.feedback{min-height:24px;margin-top:6px}
.feedback.ok{color:var(--ok)} .feedback.no{color:#7f1d1d}
.hint{border-top:1px dashed var(--line);padding-top:8px;margin-top:8px}
.site-footer{border-top:1px solid var(--line);padding:20px;text-align:center;color:var(--muted)}
@media (max-width: 960px){.layout{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 35% 0 0;max-width:360px;transform:translateX(-100%);transition:transform .25s ease;background:#fff}.sidebar.open{transform:none}.main{padding:16px}}

