:root{--green:#34E834;--green-ink:#0d9a0d;--ink:#0F1720;--ink2:#5B6B7B;--line:#E3E9DF;--bg:#F7FAF5;--red:#D93838;--orange:#E89A34}*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Noto Sans Thai',-apple-system,sans-serif;background:var(--bg);color:var(--ink)}nav{padding:14px 24px;display:flex;align-items:center;gap:10px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}nav img{width:30px;height:30px}nav b{font-size:18px;letter-spacing:1px}nav b span{color:var(--green)}.nav-links{margin-left:auto;display:flex;gap:14px;align-items:center}.nav-links a{color:var(--ink);text-decoration:none;font-size:14px;font-weight:600}.wrap{max-width:760px;margin:0 auto;padding:28px 16px 60px}.badge{display:inline-block;background:var(--green);color:#06130a;font-size:11px;font-weight:800;padding:2px 8px;border-radius:99px;margin-bottom:8px}h1{font-size:clamp(22px,4vw,30px);font-weight:800;line-height:1.35}.sub{color:var(--ink2);font-size:14px;margin-top:8px;line-height:1.7}.hide{display:none!important}.chapters{display:grid;gap:10px;margin:22px 0}.ch-card{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:16px;cursor:pointer;text-align:left;font:inherit;display:flex;align-items:center;gap:14px;transition:.15s}.ch-card:hover:not(:disabled){border-color:var(--green);transform:translateY(-2px)}.ch-card:disabled{opacity:.55;cursor:default}.ch-num{width:42px;height:42px;border-radius:12px;background:#e9fbe9;color:var(--green-ink);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;flex-shrink:0}.ch-title{font-size:15px;font-weight:700}.ch-sub{font-size:12.5px;color:var(--ink2);margin-top:2px;line-height:1.6}.ch-st{margin-left:auto;flex-shrink:0;font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px}.st-done{background:var(--green);color:#06130a}.st-todo{background:var(--line);color:var(--ink2)}.st-lock{background:#fff;color:var(--ink2);border:1px solid var(--line)}.backbtn{font:inherit;font-size:13px;font-weight:700;padding:8px 14px;border-radius:10px;border:1.5px solid var(--line);background:#fff;cursor:pointer}.lesson{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;margin-top:14px}.lesson h2{font-size:18px;font-weight:800;margin-bottom:10px}.lesson p{font-size:14.5px;line-height:1.9;margin-bottom:12px}.lesson ul{padding-left:20px;margin-bottom:12px}.lesson li{font-size:14.5px;line-height:1.9}.tipbox{background:var(--bg);border-radius:10px;padding:12px 14px;font-size:13.5px;line-height:1.8;color:var(--ink2);margin-top:6px}.tipbox b{color:var(--ink)}.nextbtn{margin-top:16px;width:100%;padding:13px;border:0;border-radius:12px;background:var(--green);color:#06130a;font:inherit;font-size:15px;font-weight:800;cursor:pointer}.qcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;margin-top:14px}.qmeta{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink2);margin-bottom:10px}.qtext{font-size:16px;font-weight:700;line-height:1.6;margin-bottom:12px}.opt{display:block;width:100%;text-align:left;font:inherit;font-size:14.5px;background:var(--bg);border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:8px;cursor:pointer;line-height:1.55}.opt:hover:not(:disabled){border-color:var(--green)}.opt.correct{background:#e9fbe9;border-color:var(--green-ink);font-weight:700}.opt.wrong{background:#fdecec;border-color:var(--red)}.opt:disabled{cursor:default;opacity:.92}.explain{margin-top:12px;font-size:13.5px;color:var(--ink2);background:var(--bg);border-radius:10px;padding:10px 12px;line-height:1.7;display:none}.result{text-align:center;padding:30px 18px;background:#fff;border:1px solid var(--line);border-radius:16px;margin-top:14px}.score{font-size:44px;font-weight:800}.pass{color:var(--green-ink)}.fail{color:var(--red)}.rsub{color:var(--ink2);font-size:14px;margin-top:6px;line-height:1.7}.rbtns{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}.rbtns button{font:inherit;font-size:14px;font-weight:700;padding:12px 20px;border-radius:12px;cursor:pointer}.rbtns .primary{background:var(--green);color:#06130a;border:0}.rbtns .ghost{background:#fff;color:var(--ink);border:1.5px solid var(--line)}footer{text-align:center;font-size:12px;color:var(--ink2);padding:20px;border-top:1px solid var(--line);margin-top:36px}footer a{color:var(--green-ink)}