/* saved progress: panel, ticks, streak, achievements, completion record */
.cp-panel,.cp-strip{margin:0 0 20px;padding:18px 20px;border:1px solid #dce5df;border-radius:14px;background:#f5faf7;display:grid;gap:10px}
.cp-panel strong{font-size:18px;color:#14261d}
.cp-sub{margin:0;color:#3d5448;font-size:15px}
.cp-bar{height:10px;border-radius:99px;background:#dce5df;overflow:hidden}
.cp-bar span{display:block;height:100%;background:#1f6b49;border-radius:99px}
.cp-guest{background:#fff8f0;border-color:#ecd9c4}
.cp-strip{grid-template-columns:auto 1fr;align-items:center;gap:12px 18px}
.cp-streak{font-weight:600;color:#14261d}
.cp-achievements{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.cp-achievements li{padding:6px 12px;border-radius:99px;border:1px solid #dce5df;background:#fff;font-size:14px;color:#4f5f57}
.cp-achievements li.is-earned{background:#edf5ef;border-color:#9cc4ae;color:#14261d;font-weight:600}
.cp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.cp-badge{margin-left:10px;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:600;background:#fff3e0;color:#7a4a00;white-space:nowrap}
.cp-badge.is-done{background:#edf5ef;color:#1f6b49}
.cp-lesson-status{margin:0;font-weight:600;color:#4f5f57}
.cp-lesson-status.is-done{color:#1f6b49}
.cp-next{margin:12px 0 0;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}
.cp-record{margin:0 0 24px;padding:28px;text-align:center;border:2px solid #1f6b49;border-radius:16px;background:#fff;display:grid;gap:6px;justify-items:center}
.cp-record h2{font-size:28px;margin:4px 0;overflow-wrap:anywhere}
.cp-record h3{font-size:20px;margin:0}
.cp-record p{margin:0}
.cp-record-id{color:#4f5f57;font-size:14px}
.cp-record-note{font-size:13px;color:#4f5f57;max-width:48ch;margin-top:8px!important}
@media(max-width:740px){.cp-strip{grid-template-columns:1fr}.cp-record{padding:20px}.cp-badge{display:inline-block;margin:4px 0 0}}
@media print{body *{visibility:hidden}.cp-record,.cp-record *{visibility:visible}.cp-record{position:absolute;inset:0 0 auto 0;border:2px solid #000}.cp-print{display:none!important}}
.cp-panel .w-button,.cp-panel .cp-print{justify-self:start}
/* touch targets >= 44px and readable text (beats the global #ol-studio .w-button 37px/10px) */
#ol-studio .cl-set .w-button,#ol-studio .catalog-lesson-actions .w-button,#ol-studio .cp-panel .w-button,#ol-studio .cp-strip .w-button,#ol-studio .cp-next .w-button,#ol-studio .cp-print{min-height:44px;font-size:13px;display:inline-flex;align-items:center;justify-content:center}
/* guided practice (step-by-step) */
.gd-wrap{margin:24px 0;padding:20px;border:1px solid #dce5df;border-radius:14px;background:#fbfdfb;display:grid;gap:14px}
.gd-head{display:grid;gap:8px}
.gd-title{margin:0;font-size:20px}
.gd-goal{margin:0;color:#3d5448}
.gd-progress{margin:0;font-weight:600;color:#14261d}
.gd-bar{height:8px;border-radius:99px;background:#dce5df;overflow:hidden}
.gd-bar span{display:block;height:100%;background:#1f6b49;border-radius:99px;transition:width .25s}
.gd-steps{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.gd-step{padding:14px 16px;border:1px solid #dce5df;border-radius:12px;background:#fff;display:grid;gap:10px;min-width:0}
.gd-step.is-current{border-color:#1f6b49;box-shadow:0 0 0 2px #1f6b4922}
.gd-step.is-locked{opacity:.65}
.gd-step.is-done{background:#f5fbf7}
.gd-step-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gd-num{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:99px;background:#edf5ef;color:#1f6b49;font-weight:700;font-size:14px}
.gd-step.is-current .gd-num{background:#1f6b49;color:#fff}
.gd-lock{font-size:13px;color:#5a6b62}
.gd-do{margin:0;line-height:1.6;overflow-wrap:anywhere}
.gd-do-done{color:#4f5f57;font-size:15px}
.gd-hints{display:grid;gap:6px}
.gd-hint-text{margin:0;padding:8px 12px;border-left:3px solid #c99a2e;background:#fff9ea;border-radius:4px;overflow-wrap:anywhere}
.gd-feedback{display:grid;gap:6px}
.gd-feedback.is-correct strong{color:#1f6b49}
.gd-feedback.is-wrong strong{color:#9c3d12}
.gd-result,.gd-answer,.gd-save{margin:0;overflow-wrap:anywhere}
.gd-answer{font-weight:600}
.gd-finish{padding:16px;border-radius:12px;background:#edf5ef;display:grid;gap:8px;justify-items:start}
#ol-studio .gd-wrap .w-button{min-height:44px;font-size:13px}
@media(max-width:740px){.gd-wrap{padding:14px}}
