/* Shared speaking practice layout */
.dl-speaking-panel{padding:24px;background:#fff;color:#263452}
.dl-speaking-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dl-speaking-head strong{font-size:21px;font-weight:870}
.dl-speaking-head p{font-size:12px;color:#78869e;margin:5px 0}
.dl-speaking-head button{border:1px solid #dfe4f1;background:#fff;color:#576483;padding:10px 12px;border-radius:9px;font-size:12px}
.dl-speaking-progress{display:flex;justify-content:space-between;gap:9px;color:#79869f;font-size:12px;margin:23px 0 8px}
.dl-speaking-meter{height:7px;background:#e8edf7;border-radius:9px;overflow:hidden}
.dl-speaking-meter div{height:100%;border-radius:9px;background:#646dda}
.dl-speaking-label{color:#7b89a2;margin:22px 0 8px;font-size:12px}
.dl-speaking-target{font-size:clamp(22px,4vw,30px);line-height:1.5;font-weight:850;margin:0 0 9px;letter-spacing:-.4px;overflow-wrap:anywhere}
.dl-speaking-meaning{font-size:14px;color:#73819a;line-height:1.6;margin:9px 0 22px}
.dl-speaking-buttons{display:flex;gap:9px;flex-wrap:wrap}
.dl-speaking-buttons button{flex:1 1 140px;min-height:48px;padding:11px 16px;border-radius:11px;border:1px solid #d9ddf7;font-weight:830;font-size:13px;background:#f0f2ff;color:#4753ac}
.dl-speaking-buttons button.dl-speaking-start{background:#545ec8;color:#fff;border-color:#545ec8}
.dl-speaking-buttons button.dl-speaking-stop{background:#fff0f1;border-color:#e4abb4;color:#a74754}
.dl-speaking-buttons button:disabled{opacity:.35;cursor:not-allowed}
.dl-speaking-status,.dl-speaking-error{font-size:12px;line-height:1.6;padding:11px 12px;border-radius:9px;margin:13px 0 0}
.dl-speaking-status{background:#eff8ff;color:#286282}.dl-speaking-error{background:#fff5ef;color:#98572e}
.dl-speaking-result{border:1px solid #e2e6f2;border-radius:14px;padding:15px;background:#fcfcff;margin:18px 0 0}
.dl-speaking-result-head{display:flex;align-items:center;justify-content:space-between;gap:9px}
.dl-speaking-result-head strong{font-size:14px}.dl-speaking-result-head b{font-size:12px;border-radius:8px;background:#e8ebff;padding:7px 10px;color:#4e5cb2}
.dl-speaking-result>p{font-size:12px;color:#7b879d;margin:14px 0 7px}
.dl-speaking-result blockquote{background:#eff2fa;border-left:3px solid #737ee3;border-radius:8px;padding:12px;margin:0;font-size:15px;overflow-wrap:anywhere}
.dl-speaking-diff{border-radius:9px;border:1px solid #e4e7f2;background:#fff;padding:10px;line-height:2.2}
.dl-speaking-token{display:inline-block;border-radius:6px;font-size:13px;font-weight:760;padding:3px 6px;margin:1px}
.dl-speaking-token.same{background:#e9f9f1;color:#167a59}
.dl-speaking-token.different,.dl-speaking-token.missing{background:#fff0f2;color:#aa4351}
.dl-speaking-token.extra{background:#f4eafb;color:#7d54ac}
.dl-speaking-token small{display:block;font-size:10px}
.dl-speaking-result .dl-speaking-disclaimer{color:#7f8ba1;font-size:11px;line-height:1.65}
.dl-speaking-alternative{display:flex;flex-direction:column;align-items:flex-start;gap:9px;border-top:1px solid #ebeff6;margin-top:18px;padding-top:14px}
.dl-speaking-alternative>button:first-child{background:none;border:0;padding:7px 0;font-size:12px;color:#545eb3;font-weight:790}
.dl-speaking-alternative label{font-size:12px;color:#76829b}
.dl-speaking-alternative textarea{width:100%;font:inherit;padding:12px;border-radius:10px;border:1px solid #dce1f0;resize:vertical;min-width:0}
.dl-speaking-alternative .dl-speaking-compare{padding:9px 12px;border:1px solid #d7dcf7;color:#525cb7;background:#f2f2ff;border-radius:10px;font-size:12px;font-weight:750}
.dl-speaking-nav{display:flex;gap:8px;flex-wrap:wrap;margin-top:21px;padding-top:16px;border-top:1px solid #eaedf5}
.dl-speaking-nav button{flex:1 1 95px;min-height:43px;border:1px solid #dfe3f1;border-radius:10px;background:#fff;padding:9px 10px;color:#606c86;font-size:12px;font-weight:820;white-space:nowrap}
.dl-speaking-nav button:last-child{background:#535fca;color:#fff;border-color:#535fca}
.dl-speaking-nav button:disabled{opacity:.3}
.dl-speaking-privacy{font-size:11px;color:#8994a7;line-height:1.7;margin:17px 0 0}
body.dl-app.dl-ja section.card:has(.dl-speaking-panel){padding:0}
@media(max-width:640px){.dl-speaking-panel{padding:17px 13px}.dl-speaking-head strong{font-size:18px}.dl-speaking-buttons button{flex:1 1 135px;padding:11px 9px}.dl-speaking-nav button{font-size:11px;padding:9px 5px}}
