.gap-practice{max-width:900px;margin-inline:auto;background:#fffefb;padding:28px}
.gap-practice .sentence-row[hidden]{display:none!important}
.gap-practice .sentence-row{padding:24px;background:#f7f8f2;margin:18px 0;border:1px solid #dce5d7}
.gap-practice .sentence-tiles{gap:6px;margin:20px 0;min-height:92px}
.gap-practice .fixed-han{font-size:52px}
.gap-practice .han-slot{min-width:88px;min-height:92px;border:3px dashed #328471;background:#fff;transition:background .15s,transform .15s}
.gap-practice .slot-value{font-size:48px}.gap-practice .slot-helper{font-size:12px}
.gap-practice .han-slot.drag-over{background:#dcefe3;transform:scale(1.08);outline:4px solid #9bcbb4}
.gap-practice .han-slot.correct{background:#ddf2df;border:3px solid #267546}
.gap-practice .han-slot.incorrect{border-color:#b14c32;background:#fff3ed}
.gap-practice .token-bank{gap:12px;padding:14px 0 4px}
.gap-practice .han-token{min-width:100px;min-height:112px;padding:10px 18px;cursor:grab}
.gap-practice .token-hanzi{font-size:52px}.gap-practice .token-pinyin{font-size:18px}
.gap-practice .han-token:disabled{opacity:.5;cursor:default}.gap-practice .han-token.is-dragging{opacity:.3}
.gap-practice .han-token.hint-target{outline:4px solid #e6c568;background:#fff8d8}
.gap-bank-label{font-weight:600;color:#183633}.gap-bank-label small{display:inline-block;margin-left:12px;font-weight:400;color:#64766b}
.gap-practice .row-feedback{font-size:16px;color:#216139;font-weight:600;min-height:25px}
.gap-practice .row-feedback.wrong{color:#a13f29}.gap-practice .bank-status{margin:8px 0;min-height:20px}
.gap-practice .practice-actions{margin-top:14px;align-items:center}.gap-practice .btn:disabled{opacity:.45;cursor:default}
.dragged-hanzi{position:fixed;z-index:2147483000;pointer-events:none;transform:translate(-50%,-60%);background:#fffefb;color:#185d4c;border:3px solid #287a68;border-radius:16px;box-shadow:0 12px 30px #163c3540;padding:5px 18px;font:56px/1.4 'Microsoft YaHei',sans-serif}
@media(max-width:600px){.gap-practice{padding:18px}.gap-practice .sentence-row{padding:16px}.gap-practice .fixed-han{font-size:36px}.gap-practice .han-slot{min-width:66px;min-height:78px}.gap-practice .slot-value{font-size:38px}.gap-practice .han-token{min-width:72px;min-height:96px;padding:8px 12px}.gap-practice .token-hanzi{font-size:44px}.gap-bank-label small{display:block;margin:5px 0 0}.gap-practice .practice-actions .btn{width:100%}}
