/* HSK-BASE-002/003: extend the existing source-paper visual language. */
[data-hsk30-source]{padding:24px 0 56px;min-width:0}
[data-hsk30-source] button,[data-hsk30-source] input,[data-hsk30-source] textarea{font:inherit}
[data-hsk30-source] button{min-height:44px;padding:10px 18px;border:1px solid #c9d3ca;border-radius:8px;cursor:pointer;background:#fff;color:#193d2d}
[data-hsk30-source] button:focus-visible,[data-hsk30-source] input:focus-visible,[data-hsk30-source] textarea:focus-visible{outline:3px solid #23744c;outline-offset:3px}
.source30-intro{max-width:820px;padding:24px;background:#f5f7f2;border-radius:16px}
.source30-intro fieldset{display:grid;gap:16px;border:1px solid #bcc9bb;border-radius:10px;margin:24px 0;padding:20px}
.source30-intro label{display:flex;align-items:center;gap:12px;min-height:44px}
.source30-session-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0}
.source30-session-header strong{display:block;font-size:28px;font-variant-numeric:tabular-nums}
.source30-workspace{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:28px;align-items:start}
.source30-pages,.source30-answers{min-width:0}
.source30-pages figure,.source30-review figure{margin:0 0 20px}
.source30-pages img,.source30-result img{width:100%;height:auto;display:block;border:1px solid #d9dfd5;background:white}
.source30-pages figcaption,.source30-review figcaption{font-size:13px;color:#425a47;margin:6px 0}
.source30-answers fieldset{border:1px solid #ced9ce;border-radius:10px;padding:16px;margin:0 0 16px;background:#fff}
.source30-answers legend{font-weight:700;padding:0 6px}
.source30-choices{display:flex;flex-wrap:wrap;gap:8px}
.source30-choices label{display:flex;align-items:center;gap:8px;min-height:44px;min-width:52px;padding:8px;border:1px solid #ced9ce;border-radius:6px;cursor:pointer}
.source30-choices label:has(input:checked){background:#e3efdd;border-color:#23744c}
.source30-answers textarea,.source30-answers input[type=text]{display:block;width:100%;box-sizing:border-box;border:1px solid #839581;border-radius:6px;padding:12px;line-height:1.7;font-size:17px}
.source30-answers small{display:block;color:#425a47;margin-top:8px}
.source30-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:24px 0}
.source30-result{max-width:1000px}
.source30-score strong{font-size:36px;color:#193d2d}
.source30-review{border-bottom:1px solid #ced9ce;padding:12px 0}
.source30-review summary,.source30-result>details>summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600}
.source30-review figure{max-width:800px}
[data-hsk30-source] audio{max-width:100%;display:block;margin:12px 0}
[data-hsk30-source] dialog{max-width:min(520px,85vw);border:1px solid #839581;border-radius:12px;padding:24px}
[data-hsk30-source] dialog::backdrop{background:#102718aa}
[data-status]{min-height:28px;color:#274831;overflow-wrap:anywhere}
@media(max-width:820px){.source30-workspace{grid-template-columns:minmax(0,1fr)}.source30-session-header{align-items:flex-start}.source30-answers{width:100%}.source30-intro{padding:18px}}
@media(prefers-reduced-motion:reduce){[data-hsk30-source] *{scroll-behavior:auto!important}}

.source30-page-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 20px;flex-wrap:wrap}
.source30-page-nav button:disabled{opacity:.45;cursor:default}
.source30-pages figure[hidden],.source30-answers fieldset[hidden]{display:none}
.source30-page-nav span{font-size:14px;color:#425a47}

body.hsk30-source-page[data-page="mock"].multipage-site .seo-hero{padding:12px 0}
body.hsk30-source-page[data-page="mock"].multipage-site .seo-hero__grid{padding:8px 0;gap:12px}
body.hsk30-source-page[data-page="mock"].multipage-site .seo-hero h1{font-size:clamp(24px,3.2vw,38px);line-height:1.2;margin:10px 0}
body.hsk30-source-page[data-page="mock"].multipage-site .seo-hero__lead{font-size:16px;line-height:1.5;margin:8px 0}
body.hsk30-source-page[data-page="mock"].multipage-site .seo-hero__facts{display:flex;flex-wrap:wrap;gap:12px;padding:12px}
body.hsk30-source-page[data-page="mock"].multipage-site .seo-hero__facts>span{flex:1;min-width:85px;padding:0}
body.hsk30-source-page[data-page="mock"].multipage-site .seo-hero__facts strong{font-size:17px}
body.hsk30-source-page[data-page="mock"].multipage-site .seo-breadcrumb{font-size:12px;margin-bottom:6px}
body.hsk30-source-page .seo-section:has([data-hsk30-source]){padding-top:0}
.source30-intro h2{font-size:22px}
.source30-intro fieldset{padding:12px;gap:8px;margin:14px 0}

body.hsk30-source-page[data-page="mock"].multipage-site .seo-hero{padding:10px 0!important}
body.hsk30-source-page[data-page="mock"].multipage-site .seo-hero__grid{padding:0!important;gap:10px!important}
body.hsk30-source-page[data-page="mock"].multipage-site .seo-hero h1{font-size:clamp(24px,3.2vw,34px)!important;line-height:1.2!important;margin:8px 0!important}
body.hsk30-source-page[data-page="mock"].multipage-site .seo-hero__facts{padding:8px!important;gap:8px!important}
body.hsk30-source-page[data-page="mock"].multipage-site .seo-hero__facts>span{padding:0!important}
.source30-intro>h2{font-size:22px!important;line-height:1.3!important;margin:0 0 10px!important}
.source30-intro>p{font-size:16px;line-height:1.5;margin:8px 0}
.source30-intro>details{margin-top:16px}
