body{background:var(--g)}
.testbar{background:#fff4d6;border-bottom:1px dashed #b98a00;padding:6px 16px;font-size:13px;font-weight:700;text-align:center}
.lmshead{background:var(--k);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:14px 32px;font-size:14px}
.lmshead a{color:#fff}
main{max-width:960px;margin:32px auto;padding:0 20px}
.card{background:#fff;border-radius:4px;padding:24px;margin-bottom:16px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.card h3{margin-bottom:6px}.muted{color:var(--muted);font-size:14px}
.bar{height:8px;background:var(--g);border-radius:4px;margin:12px 0}.bar i{display:block;height:100%;background:var(--o);border-radius:4px}
.chap{display:flex;gap:16px;align-items:center;justify-content:space-between}
.chap.locked{opacity:.55}.badge{font-size:12px;font-weight:800;text-transform:uppercase;padding:4px 10px;border-radius:12px;background:var(--g)}
.badge.done{background:var(--green);color:#fff}.badge.open{background:var(--o);color:#fff}
input{width:100%;padding:12px;margin:6px 0 14px;border:1px solid #ccc;border-radius:2px;font-size:16px}
.err{color:#b00020;font-weight:700}
.player-wrap{position:relative;background:#000}
.wm{position:absolute;z-index:5;pointer-events:none;color:rgba(255,255,255,.45);font-size:15px;font-weight:700;text-shadow:0 0 3px rgba(0,0,0,.6);transition:top 1s,left 1s;user-select:none}
.controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:14px 0}
select{padding:8px;font-size:15px}
.note{font-size:13px;background:#fff4d6;border:1px dashed #b98a00;padding:10px;border-radius:3px;margin-top:12px}
