body{display:flex;flex-direction:column;min-height:100vh}
.lp-bar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:58px;z-index:4}
.lp-bar .wrap{display:flex;align-items:center;gap:10px;height:50px}
.lp-toc-btn{background:#fff;border:1px solid var(--line);border-radius:6px;padding:7px 10px;font-weight:700;color:var(--navy);cursor:pointer;font-size:.9rem}
.lp-title{flex:1;min-width:0;font-weight:700;color:var(--navy);font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lp-seat{font-size:.78rem;color:var(--muted);text-align:right;line-height:1.25}.lp-seat b{color:var(--navy);font-variant-numeric:tabular-nums}
.lp-prog{height:5px;background:#e3e9ef}.lp-prog i{display:block;height:100%;background:var(--orange);width:0;transition:width .3s}
.lp{flex:1;display:grid;grid-template-columns:1fr;max-width:1180px;width:100%;margin:0 auto}
.lp-side{position:fixed;top:0;left:0;bottom:0;width:86%;max-width:330px;background:#fff;z-index:20;transform:translateX(-102%);transition:transform .25s;overflow-y:auto;box-shadow:4px 0 24px rgba(0,0,0,.2)}
.lp-side.open{transform:none}.lp-shade{position:fixed;inset:0;background:rgba(15,42,67,.45);z-index:19;display:none}.lp-shade.open{display:block}
.lp-side h3{padding:16px 16px 4px;margin:0;font-size:.95rem}.lp-side .sub{padding:0 16px 10px;font-size:.8rem;color:var(--muted);border-bottom:1px solid var(--line)}
.lp-side .x{float:right;background:none;border:0;font-size:1.3rem;cursor:pointer;color:var(--muted);margin:-4px -4px 0 0}
.lp-side ol{list-style:none;margin:0;padding:6px 0}
.lp-side li button{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;background:none;border:0;padding:9px 16px;font:inherit;font-size:.9rem;color:var(--ink);cursor:pointer;border-left:4px solid transparent}
.lp-side li button:disabled{color:#a3afba;cursor:not-allowed}
.lp-side li button.cur{background:#eef4f9;border-left-color:var(--orange);font-weight:700}
.lp-side .ck{flex:none;width:20px;height:20px;border-radius:50%;border:2px solid #b8c4cf;display:grid;place-items:center;font-size:.72rem;font-weight:800;color:#fff;margin-top:1px}
.lp-side .done .ck{background:var(--ok);border-color:var(--ok)}
.lp-side .quiz{margin:8px 16px 18px;display:block}
.lp-main{padding:20px 18px 30px;min-width:0}
.lp-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px 18px;max-width:760px}
.lp-card h2{margin-top:.1em}.lp-card .kicker{display:block;margin-bottom:4px}
.lp-card blockquote{margin:14px 0;background:#f2f6fa;border-left:4px solid var(--steel);padding:10px 14px;border-radius:6px}
.lp-card table{font-size:.84rem}.lp-card th{position:static}
.fb{color:var(--ink);font-weight:400;margin-top:10px;padding:12px 14px;border-radius:8px;font-size:.93rem;display:none}.fb.show{display:block}
.fb.ok{background:#eaf6ef;border:1px solid #b7dcc6}.fb.no{background:#fbecea;border:1px solid #efc2bd}
.q label input{margin-right:8px}.q .chk{margin-top:8px}
.lp-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:760px;margin-top:16px}
.lp-count{font-size:.88rem;color:var(--muted);font-weight:700}
.lp-nav .btn{padding:11px 16px;min-width:96px}.btn[disabled]{opacity:.45;cursor:not-allowed}
.lock{font-size:.85rem;color:var(--muted);margin-top:6px}
@media(min-width:900px){
 .lp{grid-template-columns:300px 1fr}.lp-side{position:sticky;top:113px;height:calc(100vh - 113px);transform:none;box-shadow:none;border-right:1px solid var(--line);width:auto;max-width:none;z-index:1}
 .lp-side .x,.lp-toc-btn,.lp-shade{display:none!important}.lp-main{padding:28px 34px}.lp-card{padding:28px 32px}}
