html[data-theme="spring"] #speaking-content .lesson-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; align-items: stretch; }
#speaking-content .lesson-card[hidden] { display: none; }
.speaking-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.speaking-filters button { min-height: 40px; padding: 8px 12px; border: 1px solid #d7e5dc; border-radius: 999px; background: #fff; color: var(--ink); font: inherit; font-size: 13px; cursor: pointer; }
.speaking-filters button span { margin-left: 3px; color: var(--muted); font-size: 12px; }
.speaking-filters button:hover { border-color: #8fc0a2; }
.speaking-filters button.is-active { border-color: #67aa83; background: #eaf6ed; color: #255c3e; font-weight: 700; }
.speaking-filters button:focus-visible { outline: 3px solid #3d7f5d; outline-offset: 2px; }
.speaking-filter-result { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
html[data-theme="spring"] #speaking-content .lesson-card { display: flex; flex-direction: column; gap: 0; padding: 0; min-height: 0; overflow: hidden; text-decoration: none; }
html[data-theme="spring"] #speaking-content .lesson-card.is-locked { border-color: var(--line); }
html[data-theme="spring"] #speaking-content .lesson-card.is-locked .card-action { color:#428965; border-color:#88bda0; background:#f7fbf8; }
html[data-theme="spring"] #speaking-content .lesson-thumb { aspect-ratio: 4 / 3; width: 100%; border-radius: 0; box-shadow: none; flex: none; }
#speaking-content .lesson-thumb img { object-fit: contain; }
#speaking-content .lesson-copy { padding: 10px 14px 12px; display: flex; flex-direction: column; flex: 1; }
.speaking-progress-badge { position:absolute; top:8px; right:8px; padding:5px 9px; border-radius:99px; color:white; background:#386c4b; font-size:11px; font-weight:800; }
.speaking-progress-badge.is-in-progress { background:#986426; }
html[data-theme="spring"] #speaking-content h3 { margin: 0 0 4px; font-size: 19px; line-height: 1.2; max-height: none; display: block; overflow: visible; }
html[data-theme="spring"] #speaking-content .lesson-copy p.speaking-title-zh { width:100%; margin: 0; font-size: 14px; }
.speaking-card-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; margin-top:auto; padding-top:8px; }
.speaking-scene-no { flex:none; padding:2px 5px; color:#29434a; border-radius:5px; background:#f7dd82; font-size:10px; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; }
html[data-theme="spring"] #speaking-content .card-action { display: inline-flex; align-items: center; justify-content: center; flex:none; width: auto; min-width: 94px; min-height: 36px; margin-top: 0; padding: 7px 13px; text-align: center; }
#speaking-content .continue-card .button { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
#speaking-content .lesson-card:focus-visible { outline: 3px solid #3d7f5d; outline-offset: 3px; }
.unified-wordbook { max-width:980px; margin-top:20px; }
.unified-wordbook-heading { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 18px; margin-bottom:22px; }
.unified-wordbook-heading h1 { margin:0; font:800 clamp(29px,4vw,42px)/1.2 var(--display); }
.unified-wordbook-heading p { margin:0; color:#557065; font-size:13px; }
.unified-wordbook-toolbar { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:12px; margin-bottom:8px; }
.unified-wordbook-filters { display:flex; flex-wrap:wrap; gap:7px; }
.unified-wordbook-filters button { min-height:40px; padding:8px 13px; border:1px solid #cbdccd; border-radius:999px; color:#355b44; background:#fff; font:700 13px var(--body); cursor:pointer; }
.unified-wordbook-filters button span { margin-left:3px; font-variant-numeric:tabular-nums; }
.unified-wordbook-filters button.is-active { border-color:#4b956a; color:#fff; background:#4b956a; }
.unified-wordbook-search { display:grid; gap:4px; min-width:210px; color:#456753; font-size:12px; font-weight:700; }
.unified-wordbook-search input { width:100%; min-height:40px; padding:8px 11px; border:1px solid #cbdccd; border-radius:10px; color:#29434a; background:#fff; font:14px var(--body); }
.unified-wordbook-result { margin:0 0 12px; color:#557065; font-size:12px; }
.unified-wordbook-list { display:grid; gap:12px; }
.unified-word-entry { min-width:0; padding:18px 20px; border:1px solid #d7e5dc; border-radius:16px; background:#fff; }
.unified-word-entry[hidden],.unified-wordbook #wordbook-empty[hidden] { display:none; }
.unified-word-head { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 12px; }
.unified-word-head h2 { min-width:0; margin:0; color:#294b38; font:750 22px/1.3 var(--display); overflow-wrap:anywhere; }
.unified-word-head h2 small { color:#58705f; font:500 13px var(--body); }
.unified-word-source { color:#456c51; font-size:12px; font-weight:700; }
.unified-word-meaning { margin:6px 0 0; color:#29434a; font-size:14px; }
.unified-word-context { margin:9px 0 0; color:#50685b; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.unified-word-phrases { display:grid; gap:6px; margin:12px 0 0; padding:0; list-style:none; }
.unified-word-phrases li { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 10px; border-radius:10px; background:#f3f7ee; }
.unified-word-phrases li span { display:grid; min-width:0; gap:2px; }
.unified-word-phrases strong { color:#294b38; font-size:13px; overflow-wrap:anywhere; }
.unified-word-phrases small { color:#50685b; font-size:12px; }
.unified-word-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:12px; }
.unified-wordbook .unified-word-actions button,.unified-wordbook .unified-word-phrases button { min-height:36px; padding:7px 12px; border:1px solid #bcd5c2; border-radius:9px; color:#315c3c; background:#eff6eb; font:700 12px var(--body); cursor:pointer; }
.unified-wordbook .unified-word-actions button:disabled { opacity:.55; cursor:wait; }
.unified-word-actions a { padding:7px 2px; color:#356b48; font-size:12px; font-weight:700; text-underline-offset:3px; }
.unified-wordbook .unified-word-actions .unified-word-remove { margin-left:auto; color:#8d554a; border-color:#e5d5d0; background:#fff8f5; }
.unified-wordbook button:focus-visible,.unified-wordbook a:focus-visible,.unified-wordbook input:focus-visible { outline:3px solid #3d7f5d; outline-offset:2px; }
@media (max-width: 1200px) { html[data-theme="spring"] #speaking-content .lesson-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1000px) { html[data-theme="spring"] #speaking-content .lesson-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 744px) and (max-width: 1060px) {
  html[data-theme="spring"] #speaking-content .lesson-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  #speaking-content .lesson-copy { padding: 10px; }
  html[data-theme="spring"] #speaking-content h3 { font-size: 16px; line-height: 1.25; overflow-wrap: anywhere; }
  html[data-theme="spring"] #speaking-content .lesson-copy p.speaking-title-zh { font-size: 13px; }
  #speaking-content .speaking-card-footer { gap: 6px; }
  html[data-theme="spring"] #speaking-content .card-action { min-width: 0; padding-inline: 8px; font-size: 12px; }
}
@media (max-width: 700px) { .unified-wordbook { padding:20px; } .unified-wordbook-search { width:100%; } .unified-word-head { display:block; } .unified-word-source { display:block; margin-top:5px; } }
@media (max-width: 540px) {
  html[data-theme="spring"] #speaking-content .lesson-grid { grid-template-columns: 1fr; gap: 10px; }
  html[data-theme="spring"] #speaking-content .lesson-card { flex-direction: row; align-items: stretch; min-height: 116px; }
  html[data-theme="spring"] #speaking-content .lesson-thumb { width: 116px; align-self: center; margin-left: 8px; border-radius: 9px; overflow: hidden; }
  #speaking-content .lesson-copy { min-width: 0; padding: 10px 11px; }
  html[data-theme="spring"] #speaking-content h3 { font-size: 16px; line-height: 1.2; overflow-wrap: anywhere; }
  html[data-theme="spring"] #speaking-content .lesson-copy p.speaking-title-zh { font-size: 12px; }
  .speaking-card-footer { padding-top:5px; }
  html[data-theme="spring"] #speaking-content .card-action { min-height: 28px; min-width: 0; padding: 3px 10px; font-size: 11px; }
  .speaking-progress-badge { top:3px; right:3px; padding:3px 5px; font-size:9px; }
}
