:root {
  --ink: #17222c;
  --muted: #63717d;
  --line: #dfe5e8;
  --line-soft: #edf1f2;
  --paper: #f6f8f8;
  --white: #ffffff;
  --navy: #173f5f;
  --navy-2: #0f314b;
  --teal: #0e7c76;
  --teal-soft: #e4f3f0;
  --coral: #d9624c;
  --coral-soft: #faeae5;
  --gold: #bd842e;
  --gold-soft: #fbf2dd;
  --shadow: 0 18px 48px rgba(19, 42, 58, 0.12);
  --sidebar: 236px;
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--paper); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(14,124,118,.24); outline-offset: 2px; }
svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
[hidden] { display: none !important; }

.app-shell { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 30; width: var(--sidebar); display: flex; flex-direction: column; overflow-y: auto; padding: 27px 18px 22px; color: #dce7ed; background: var(--navy-2); }
.brand { display: flex; align-items: center; gap: 11px; padding: 0 10px 27px; color: #fff; }
.brand-mark, .modal-mark { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; border: 1px solid rgba(255,255,255,.4); color: #fff; background: var(--coral); font-family: "STKaiti", "KaiTi", serif; font-size: 22px; }
.brand strong { display: block; font-size: 17px; letter-spacing: 0; }
.brand small { display: block; margin-top: 2px; color: #91a9b7; font-size: 11px; }
.side-nav { display: grid; gap: 7px; }
.nav-item { position: relative; display: flex; align-items: center; gap: 13px; width: 100%; min-height: 46px; padding: 0 13px; border: 0; border-radius: 5px; color: #afc1cc; background: transparent; cursor: pointer; text-align: left; transition: .18s ease; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.06); }
.nav-item.active { color: #fff; background: #245878; }
.nav-item.active::before { position: absolute; left: -18px; width: 3px; height: 24px; background: #f3b349; content: ""; }
.nav-item svg { width: 19px; }
.nav-dot { width: 6px; height: 6px; margin-left: auto; border-radius: 50%; background: #f3b349; }
.nav-count { min-width: 20px; height: 20px; margin-left: auto; padding: 0 6px; border-radius: 10px; color: #d6e3e9; background: rgba(255,255,255,.1); font-size: 11px; line-height: 20px; text-align: center; }
.nav-count-new { min-width: 27px; color: #f2c16b; background: rgba(242,193,107,.12); font-size: 8px; letter-spacing: 0; }
.exam-panel { margin: auto 4px 15px; padding: 18px; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.04); }
.exam-label { display: flex; align-items: center; gap: 6px; color: #9fb3be; font-size: 12px; }
.exam-label svg { width: 15px; }
.exam-panel > strong { display: inline-block; margin-top: 9px; color: #fff; font-family: Georgia, serif; font-size: 35px; line-height: 1; }
.exam-panel > span { margin-left: 4px; color: #9fb3be; font-size: 12px; }
.progress-track { height: 3px; margin: 13px 0 9px; background: rgba(255,255,255,.09); }
.progress-track span { display: block; width: 68%; height: 100%; background: #f3b349; }
.exam-panel p { margin: 0; color: #839ba8; font-size: 11px; }
.side-help { display: flex; align-items: center; gap: 10px; padding: 12px 8px; border: 0; color: #d9e5eb; background: transparent; cursor: pointer; text-align: left; }
.help-icon { display: grid; place-items: center; width: 34px; height: 34px; color: #193f59; background: #e5b352; border-radius: 50%; }
.help-icon svg { width: 17px; }
.side-help strong, .side-help small { display: block; }
.side-help strong { font-size: 12px; }
.side-help small { margin-top: 2px; color: #7f9aa9; font-size: 10px; }
.side-help-arrow { width: 15px; margin-left: auto; color: #668797; }

.main-area { margin-left: var(--sidebar); min-height: 100vh; }
.topbar { position: sticky; top: 0; z-index: 25; display: flex; align-items: center; gap: 22px; height: 72px; padding: 0 clamp(24px, 4vw, 58px); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.94); backdrop-filter: blur(14px); }
.global-search { display: flex; align-items: center; gap: 10px; width: min(560px, 50vw); height: 42px; padding: 0 13px; border: 1px solid var(--line); background: #f7f9f9; }
.global-search:focus-within { border-color: #7ea6b5; box-shadow: 0 0 0 3px rgba(23,63,95,.08); }
.global-search svg { width: 18px; color: #82909a; }
.global-search input { min-width: 0; flex: 1; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 13px; }
.global-search input::placeholder { color: #93a0a8; }
kbd { padding: 3px 6px; border: 1px solid #dbe1e4; border-bottom-width: 2px; color: #86929a; background: #fff; font-family: inherit; font-size: 10px; }
.top-actions { display: flex; align-items: center; gap: 11px; margin-left: auto; }
.ask-quick, .login-button, .icon-button { display: flex; align-items: center; border: 0; background: transparent; cursor: pointer; }
.ask-quick { gap: 7px; height: 38px; padding: 0 13px; color: var(--navy); font-size: 12px; }
.ask-quick svg { width: 17px; }
.login-button { gap: 9px; padding: 0; font-size: 12px; }
.avatar { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid #ccd6db; border-radius: 50%; color: var(--navy); background: #eef3f4; }
.avatar svg { width: 17px; }
.mobile-menu { display: none; }

main { width: min(1480px, 100%); margin: 0 auto; padding: 34px clamp(24px, 4vw, 58px) 72px; }
.view { display: none; animation: viewIn .24s ease both; }
.view.active { display: block; }
@keyframes viewIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }

/* 站点页脚 · ICP 备案公示（法规要求：首页底部展示备案号并链接工信部） */
.site-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 13px; margin-top: 52px; padding-top: 20px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; line-height: 1.7; }
.site-legal-sep { display: inline-block; width: 1px; height: 11px; background: #cfd8dc; }
.site-legal a { color: var(--muted); border-bottom: 1px solid transparent; transition: .16s ease; }
.site-legal a:hover { color: var(--navy); border-bottom-color: currentColor; }

.welcome-band { position: relative; min-height: 248px; overflow: hidden; display: grid; grid-template-columns: minmax(340px, 1fr) 300px; align-items: center; padding: 36px 38px; color: #fff; background: var(--navy); }
.welcome-band::after { position: absolute; inset: auto 0 0; height: 4px; background: linear-gradient(90deg, #f1b64c 0 28%, #55a7a0 28% 64%, #dd705b 64%); content: ""; }
.welcome-copy { position: relative; z-index: 2; }
.eyebrow { color: #9bc8ce; font-size: 10px; font-weight: 700; letter-spacing: 0; }
.welcome-copy h1, .page-intro h1 { margin: 9px 0 10px; letter-spacing: 0; }
.welcome-copy h1 { font-family: "STSong", "Songti SC", serif; font-size: clamp(29px, 3vw, 43px); font-weight: 700; }
.welcome-copy > p { max-width: 620px; margin: 0; color: #c0d2dc; font-size: 14px; line-height: 1.8; }
.hero-levels { display: inline-flex; gap: 4px; margin-top: 25px; padding: 4px; background: rgba(255,255,255,.1); }
.hero-level { min-width: 70px; height: 36px; padding: 0 14px; border: 0; color: #bdd0d9; background: transparent; cursor: pointer; font-size: 13px; font-weight: 700; transition: color .18s ease, background .18s ease; }
.hero-level:hover { color: #fff; }
.hero-level.active { color: var(--navy-2); background: #fff; }
.stage-switch { display: inline-flex; gap: 4px; margin-top: 25px; padding: 4px; background: rgba(255,255,255,.1); }
.stage-tab { min-width: 76px; height: 34px; padding: 0 15px; border: 0; color: #bdd0d9; background: transparent; cursor: pointer; font-size: 12px; font-weight: 600; transition: .18s; }
.stage-tab:hover { color: #fff; }
.stage-tab.active { color: var(--navy-2); background: #fff; }
.cover-stack { position: relative; z-index: 1; height: 180px; }
.cover-stack img { position: absolute; bottom: -42px; width: 115px; border: 4px solid #fff; box-shadow: 0 15px 32px rgba(0,0,0,.28); transform: rotate(6deg); }
.cover-stack img:nth-child(1) { right: 150px; bottom: -62px; transform: rotate(-8deg); }
.cover-stack img:nth-child(2) { right: 72px; bottom: -48px; transform: rotate(2deg); }
.cover-stack img:nth-child(3) { right: -3px; bottom: -68px; transform: rotate(10deg); }
.band-stats { position: absolute; right: 23px; top: 22px; z-index: 3; display: flex; gap: 24px; }
.band-stats div { display: flex; align-items: baseline; gap: 5px; }
.band-stats strong { font-family: Georgia, serif; color: #fff; font-size: 20px; }
.band-stats span { color: #9db5c2; font-size: 10px; }

.library-pillars { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); margin-top: 20px; border: 1px solid var(--line); background: #fff; }
.library-pillars button { display: grid; grid-template-columns: 35px minmax(0,1fr) 15px; gap: 11px; align-items: center; min-height: 76px; padding: 13px 17px; border: 0; border-right: 1px solid var(--line); color: var(--navy); background: transparent; cursor: pointer; text-align: left; transition: background .18s ease; }
.library-pillars button:last-child { border-right: 0; }
.library-pillars button:hover { background: #f3f8f7; }
.library-pillars button > svg:first-child { width: 22px; color: var(--teal); }
.library-pillars button:nth-child(2) > svg:first-child { color: var(--coral); }
.library-pillars button:nth-child(3) > svg:first-child { color: #b47b1d; }
.library-pillars button:nth-child(4) > svg:first-child { color: var(--navy); }
.library-pillars span, .library-pillars strong, .library-pillars small { display: block; min-width: 0; }
.library-pillars strong { font-size: 13px; }
.library-pillars small { overflow: hidden; margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.library-pillars .pillar-arrow { width: 14px; color: #9aabb1; }

.exam-locator { margin-top: 20px; overflow: hidden; border: 1px solid #d7e1e3; border-top: 3px solid var(--teal); border-radius: 6px; background: #fff; box-shadow: 0 12px 34px rgba(23,50,66,.07); }
.locator-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding: 22px 26px 18px; border-bottom: 1px solid var(--line); }
.locator-head h2 { margin: 5px 0 0; color: var(--navy); font-size: 23px; }
.locator-head p { max-width: 520px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.65; text-align: right; }
.locator-grid { display: grid; grid-template-columns: .9fr 1.25fr 1.25fr; }
.locator-group { min-width: 0; padding: 22px 24px 24px; }
.locator-group + .locator-group { border-left: 1px solid var(--line); }
.locator-step { display: flex; align-items: center; gap: 8px; margin-bottom: 13px; color: #52636c; font-size: 13px; font-weight: 700; }
.locator-step b { color: var(--coral); font-family: Georgia, serif; font-size: 12px; }
.locator-options { display: grid; gap: 7px; }
.locator-level-options { grid-template-columns: repeat(2, minmax(0,1fr)); }
.locator-paper-options { grid-template-columns: repeat(2, minmax(0,1fr)); }
.locator-need-options { grid-template-columns: repeat(2, minmax(0,1fr)); }
.locator-option { min-width: 0; min-height: 42px; padding: 8px 11px; border: 1px solid #d9e1e4; border-radius: 4px; color: #4f6069; background: #fbfcfc; cursor: pointer; font-size: 13px; font-weight: 600; line-height: 1.35; text-align: center; transition: border-color .18s ease, color .18s ease, background .18s ease, box-shadow .18s ease; }
.locator-option:hover:not(:disabled) { border-color: #90aaa9; color: var(--navy); background: #f3f8f7; }
.locator-option.active { border-color: var(--navy); color: #fff; background: var(--navy); box-shadow: inset 0 -3px 0 rgba(255,255,255,.1); }
.locator-option:disabled { color: #9ba5aa; background: #f1f3f3; cursor: not-allowed; opacity: .62; }
.locator-paper-options .locator-option { min-height: 64px; text-align: left; }
.locator-paper-options strong, .locator-paper-options small { display: block; }
.locator-paper-options strong { font-size: 13px; }
.locator-paper-options small { margin-top: 4px; overflow-wrap: anywhere; color: #78878e; font-size: 11px; font-weight: 500; }
.locator-paper-options .active small { color: #c9d9e2; }
.locator-action { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 24px; border-top: 1px solid #dbe6e4; background: #f1f7f5; }
.locator-action > div { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.locator-action span { color: #70817f; font-size: 12px; }
.locator-action strong { overflow: hidden; color: var(--navy); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.locator-action .primary-button { min-height: 44px; flex: 0 0 auto; font-size: 13px; }

.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.module-heading { margin: 42px 0 17px; }
.resource-heading { margin: 46px 0 16px; }
.resource-version-note { margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.section-kicker { color: var(--coral); font-size: 10px; font-weight: 800; letter-spacing: 0; }
.section-heading h2 { margin: 5px 0 0; font-size: 21px; letter-spacing: 0; }
.text-button { display: flex; align-items: center; gap: 5px; padding: 5px 0; border: 0; color: var(--navy); background: transparent; cursor: pointer; font-size: 12px; }
.text-button svg { width: 15px; }
.result-count { color: var(--muted); font-size: 12px; }
.result-count strong { color: var(--ink); }

.module-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); background: #fff; }
.module-card { min-height: 132px; padding: 21px 20px; border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; cursor: pointer; text-align: left; transition: .2s ease; }
.module-card:hover { position: relative; z-index: 1; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(20,50,65,.1); }
.module-card-top { display: flex; align-items: center; justify-content: space-between; }
.module-index { color: #aab4ba; font-family: Georgia, serif; font-size: 12px; }
.module-card svg { width: 16px; color: #99a7ae; }
.module-card h3 { margin: 19px 0 5px; font-size: 15px; }
.module-card p { overflow: hidden; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; text-overflow: ellipsis; white-space: nowrap; }
.module-card[data-tone="teal"] { border-top: 3px solid var(--teal); }
.module-card[data-tone="coral"] { border-top: 3px solid var(--coral); }
.module-card[data-tone="gold"] { border-top: 3px solid var(--gold); }
.module-card[data-tone="navy"] { border-top: 3px solid var(--navy); }

.resource-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 51px; padding: 5px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.subject-tabs { display: flex; gap: 24px; overflow-x: auto; scrollbar-width: none; }
.subject-tabs::-webkit-scrollbar { display: none; }
.filter-tab { position: relative; flex: 0 0 auto; height: 40px; padding: 0 2px; border: 0; color: var(--muted); background: transparent; cursor: pointer; font-size: 12px; }
.filter-tab.active { color: var(--navy); font-weight: 700; }
.filter-tab.active::after { position: absolute; right: 0; bottom: -6px; left: 0; height: 2px; background: var(--navy); content: ""; }
.sort-control { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 11px; }
.sort-control select { padding: 7px 27px 7px 8px; border: 0; outline: 0; color: var(--ink); background: transparent; cursor: pointer; font-size: 11px; }
.active-filter { margin: 13px 0 -4px; color: var(--teal); font-size: 11px; }
.active-filter button { margin-left: 7px; padding: 0; border: 0; color: var(--muted); background: none; cursor: pointer; text-decoration: underline; }

.resource-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; margin-top: 20px; }
.resource-card { position: relative; display: grid; grid-template-columns: 92px minmax(0,1fr); min-height: 178px; overflow: hidden; border: 1px solid var(--line); background: #fff; transition: .2s ease; }
.resource-card:hover { border-color: #bdcbd1; transform: translateY(-2px); box-shadow: 0 13px 28px rgba(23,50,66,.09); }
.resource-card.is-review { border-color: #dfc48d; background: #fffdf8; }
.resource-card.is-review:hover { transform: none; box-shadow: none; }
.resource-cover { position: relative; overflow: hidden; min-height: 176px; background: var(--navy); }
.resource-cover img { width: 100%; height: 100%; object-fit: cover; object-position: top center; opacity: .96; }
.resource-cover.generated { display: flex; flex-direction: column; justify-content: space-between; padding: 18px 12px; color: #fff; }
.resource-cover.generated::after { position: absolute; inset: 0; opacity: .16; background-image: linear-gradient(rgba(255,255,255,.4) 1px, transparent 1px); background-size: 100% 20px; content: ""; }
.resource-cover.generated strong { position: relative; z-index: 1; font-family: "STSong", "Songti SC", serif; font-size: 14px; line-height: 1.55; }
.resource-cover.generated span { position: relative; z-index: 1; font-size: 9px; opacity: .75; }
.resource-cover.tone-teal { background: #19766f; }
.resource-cover.tone-coral { background: #bd5845; }
.resource-cover.tone-gold { background: #9b722f; }
.resource-info { display: flex; min-width: 0; flex-direction: column; padding: 16px 15px 13px; }
.resource-badges { display: flex; align-items: center; gap: 6px; padding-right: 25px; }
.badge { display: inline-flex; align-items: center; min-height: 19px; padding: 0 6px; color: #52646e; background: #edf2f3; font-size: 9px; }
.badge.hot { color: #aa4737; background: var(--coral-soft); }
.badge.zip { color: #80601d; background: var(--gold-soft); }
.resource-info h3 { display: -webkit-box; overflow: hidden; margin: 11px 0 6px; font-size: 13px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.resource-info p { display: -webkit-box; overflow: hidden; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.resource-meta { display: flex; align-items: center; gap: 7px; margin-top: auto; padding-top: 9px; color: #8a969d; font-size: 9px; }
.resource-meta span + span::before { margin-right: 7px; color: #c6cdd1; content: "·"; }
.resource-actions { display: flex; align-items: center; gap: 7px; margin-top: 9px; }
.resource-actions button, .resource-actions a { display: inline-flex; align-items: center; justify-content: center; gap: 4px; height: 28px; padding: 0 8px; border: 1px solid var(--line); color: var(--navy); background: #fff; cursor: pointer; font-size: 9px; }
.resource-actions a { border-color: var(--navy); color: #fff; background: var(--navy); }
.resource-actions svg { width: 13px; }
.review-lock { display: inline-flex; align-items: center; align-self: flex-start; min-height: 28px; margin-top: 9px; padding: 5px 8px; color: #745a24; background: #fbf2dd; font-size: 9px; font-weight: 700; line-height: 1.5; }
.favorite-button { position: absolute; top: 12px; right: 10px; z-index: 2; display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%; color: #86949c; background: rgba(255,255,255,.9); cursor: pointer; }
.favorite-button svg { width: 15px; }
.favorite-button.active { color: var(--coral); }
.favorite-button.active svg { fill: currentColor; }
.load-more-wrap { display: flex; justify-content: center; margin: 28px 0 0; }
.primary-button, .secondary-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 40px; padding: 0 18px; border: 1px solid var(--navy); cursor: pointer; font-size: 12px; }
.primary-button { color: #fff; background: var(--navy); }
.primary-button:hover { background: var(--navy-2); }
.secondary-button { color: var(--navy); background: #fff; }
.primary-button svg, .secondary-button svg { width: 16px; }
.empty-state { display: grid; place-items: center; min-height: 330px; padding: 50px 20px; border: 1px dashed #cfd9dd; background: #fff; text-align: center; }
.empty-state > svg { width: 35px; height: 35px; color: #9aabb3; }
.empty-state h3 { margin: 14px 0 5px; font-size: 16px; }
.empty-state p { margin: 0 0 20px; color: var(--muted); font-size: 12px; }

.page-intro { padding: 9px 0 28px; border-bottom: 1px solid var(--line); }
.page-intro h1 { font-family: "STSong", "Songti SC", serif; font-size: 35px; }
.page-intro p { margin: 0; color: var(--muted); font-size: 13px; }
.page-stage-switch { margin-top: 24px; background: #e9eeef; }
.page-stage-switch .stage-tab { color: #5e6d76; }
.page-stage-switch .stage-tab.active { color: #fff; background: var(--navy); }
.knowledge-layout { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 34px; margin-top: 30px; }
.knowledge-column { border-top: 3px solid var(--navy); background: #fff; }
.knowledge-subject-title { display: flex; align-items: center; gap: 15px; min-height: 90px; padding: 18px 22px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); }
.knowledge-subject-title > span { color: #c5d0d5; font-family: Georgia, serif; font-size: 27px; }
.knowledge-subject-title strong, .knowledge-subject-title small { display: block; }
.knowledge-subject-title strong { font-size: 17px; }
.knowledge-subject-title small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.knowledge-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); border-left: 1px solid var(--line); }
.knowledge-item { position: relative; min-height: 108px; padding: 17px; border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; cursor: pointer; text-align: left; }
.knowledge-item:hover { background: #f7faf9; }
.knowledge-item span { color: var(--coral); font-family: Georgia, serif; font-size: 10px; }
.knowledge-item strong { display: block; margin: 7px 0 4px; font-size: 13px; }
.knowledge-item small { display: block; overflow: hidden; color: var(--muted); font-size: 10px; line-height: 1.55; text-overflow: ellipsis; white-space: nowrap; }
.knowledge-item svg { position: absolute; right: 13px; bottom: 13px; width: 13px; color: #9aabb3; }

.subject3-hero { display: flex; align-items: end; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--line); }
.subject3-hero .page-intro { flex: 1; border: 0; }
.subject3-note { display: flex; align-items: flex-start; gap: 10px; max-width: 260px; margin-bottom: 28px; padding: 14px; border-left: 3px solid var(--gold); background: var(--gold-soft); }
.subject3-note svg { width: 18px; flex: 0 0 18px; color: var(--gold); }
.subject3-note strong, .subject3-note small { display: block; }
.subject3-note strong { font-size: 11px; }
.subject3-note small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.6; }
.subject3-controls { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 23px; }
.level-switch { display: inline-flex; padding: 3px; background: #e8eeee; }
.level-tab { min-width: 76px; height: 32px; padding: 0 17px; border: 0; color: var(--muted); background: transparent; cursor: pointer; font-size: 11px; font-weight: 700; }
.level-tab.active { color: #fff; background: var(--navy); }
.subject3-tip { color: var(--muted); font-size: 10px; }
.subject3-layout { display: grid; grid-template-columns: minmax(200px, 275px) minmax(0,1fr); gap: 17px; margin-top: 20px; }
.discipline-list { display: grid; align-content: start; border-top: 3px solid var(--navy); background: #fff; }
.discipline-item { position: relative; display: grid; grid-template-columns: 26px minmax(0,1fr); column-gap: 9px; align-items: center; min-height: 61px; padding: 10px 16px; border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); color: var(--ink); background: #fff; cursor: pointer; text-align: left; }
.discipline-item:hover { background: #f6f9f9; }
.discipline-item.active { color: #fff; background: var(--navy); }
.discipline-item > span { grid-row: 1 / 3; color: #9badb7; font-family: Georgia, serif; font-size: 11px; }
.discipline-item.active > span { color: #e7b655; }
.discipline-item strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.discipline-item small { overflow: hidden; margin-top: 3px; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.discipline-item.active small { color: #b9cbd4; }
.discipline-item svg { position: absolute; right: 12px; width: 14px; color: #9aaab1; }
.discipline-item.active svg { color: #8caaba; }
.discipline-detail { min-height: 530px; border: 1px solid var(--line); background: #fff; }
.content-integrity-note { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 10px; align-items: start; margin: 16px 28px 0; padding: 11px 13px; border-left: 3px solid var(--teal); color: #465e61; background: #f1f7f5; }
.content-integrity-note > svg { width: 18px; margin-top: 2px; color: var(--teal); }
.content-integrity-note strong, .content-integrity-note span { display: block; }
.content-integrity-note strong { color: var(--navy); font-size: 10px; }
.content-integrity-note span { margin-top: 3px; font-size: 9px; line-height: 1.65; }
.knowledge-sheet > .content-integrity-note { margin: 0 0 16px; }
.content-source-note { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 11px; align-items: center; margin: 9px 28px 16px; padding: 11px 13px; border: 1px solid #cfe0dc; background: #f8fbfa; }
.content-source-note > span { display: grid; place-items: center; width: 32px; height: 32px; color: #fff; background: var(--teal); font-family: "STSong", "Songti SC", serif; font-size: 14px; }
.content-source-note.official { border-color: #e3d3ad; background: #fffcf5; }
.content-source-note.official > span { background: var(--gold); }
.content-source-note strong, .content-source-note small { display: block; }
.content-source-note strong { color: var(--navy); font-size: 11px; }
.content-source-note small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.65; }
.knowledge-sheet > .content-source-note { margin: 0 0 16px; }
.detail-header { display: flex; justify-content: space-between; gap: 18px; padding: 27px 28px 21px; border-bottom: 1px solid var(--line); }
.detail-header h2 { margin: 8px 0 5px; font-family: "STSong", "Songti SC", serif; font-size: 25px; }
.detail-header p { margin: 0; color: var(--muted); font-size: 10px; }
.detail-number { color: #dce5e8; font-family: Georgia, serif; font-size: 46px; line-height: 1; }
.detail-tabs { display: flex; gap: 24px; padding: 0 28px; border-bottom: 1px solid var(--line); }
.detail-tabs button { position: relative; height: 44px; padding: 0; border: 0; color: var(--muted); background: transparent; cursor: pointer; font-size: 11px; }
.detail-tabs button.active { color: var(--navy); font-weight: 700; }
.detail-tabs button.active::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: var(--navy); content: ""; }
.detail-block { padding: 21px 28px 0; }
.detail-label { display: block; margin-bottom: 11px; color: var(--coral); font-size: 10px; font-weight: 800; letter-spacing: 0; }
.core-pills { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.core-pills span { display: flex; align-items: center; gap: 8px; min-height: 39px; padding: 7px 10px; color: #425965; background: #eef4f3; font-size: 10px; }
.core-pills i { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; color: #fff; background: var(--teal); font-family: Georgia, serif; font-size: 9px; font-style: normal; }
.design-steps { display: grid; gap: 7px; }
.design-steps div { display: grid; grid-template-columns: 35px minmax(0,1fr); align-items: center; min-height: 42px; border: 1px solid var(--line-soft); background: #fbfcfc; }
.design-steps b { display: grid; place-items: center; height: 100%; color: #fff; background: var(--navy); font-family: Georgia, serif; font-size: 11px; }
.design-steps span { padding: 0 12px; color: #425965; font-size: 10px; line-height: 1.5; }
.type-pills { display: flex; flex-wrap: wrap; gap: 7px; }
.type-pills span { padding: 7px 10px; border: 1px solid #d6e2e2; color: #4b6370; background: #f5f9f8; font-size: 10px; }
.check-list { display: grid; gap: 10px; margin: 0; padding: 14px 16px 14px 33px; color: #4d616b; background: #fbf6e9; font-size: 10px; line-height: 1.7; }
.exam-tip { display: flex; gap: 11px; padding: 15px; border-left: 3px solid var(--gold); background: var(--gold-soft); }
.exam-tip svg { width: 17px; flex: 0 0 17px; color: var(--gold); }
.exam-tip p { margin: 0; color: #6a5a37; font-size: 10px; line-height: 1.7; }
.source-mini-card { display: flex; gap: 12px; padding: 11px; border: 1px solid var(--line); background: #fbfcfc; }
.source-mini-cover { width: 55px; flex: 0 0 55px; overflow: hidden; background: var(--navy); }
.source-mini-cover img { width: 100%; height: 76px; object-fit: cover; object-position: top; }
.source-mini-card strong, .source-mini-card small { display: block; }
.source-mini-card strong { font-size: 11px; }
.source-mini-card small { margin: 5px 0 6px; color: var(--muted); font-size: 9px; }
.source-mini-card .text-button { font-size: 10px; }
.detail-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 24px 28px 25px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; }
.detail-footer .primary-button { min-height: 34px; padding: 0 12px; font-size: 10px; }

.interview-hero { display: flex; align-items: end; justify-content: space-between; gap: 28px; border-bottom: 1px solid var(--line); }
.interview-hero .page-intro { min-width: 0; flex: 1; border: 0; }
.interview-hero-note { display: grid; grid-template-columns: auto auto 1px auto auto; gap: 10px; align-items: center; margin-bottom: 28px; padding: 13px 15px; border: 1px solid #d5e3e2; border-top: 3px solid var(--teal); background: #fff; }
.interview-hero-note > span { color: var(--coral); font-family: Georgia, serif; font-size: 25px; line-height: 1; }
.interview-hero-note div strong, .interview-hero-note div small { display: block; }
.interview-hero-note div strong { color: var(--navy); font-size: 12px; }
.interview-hero-note div small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.interview-hero-note i { width: 1px; height: 34px; margin: 0 4px; background: var(--line); }
.interview-stage-switch { display: inline-flex; margin-top: 23px; padding: 4px; background: #e8eeee; }
.interview-stage-tab { min-width: 82px; height: 36px; padding: 0 17px; border: 0; color: var(--muted); background: transparent; cursor: pointer; font-size: 13px; font-weight: 700; }
.interview-stage-tab.active { color: #fff; background: var(--navy); }
.interview-flow { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 20px; padding: 20px 22px; color: #fff; background: var(--navy); }
.interview-flow > div { display: flex; align-items: center; gap: 9px; min-width: 0; }
.interview-flow b { color: #efbc5f; font-family: Georgia, serif; font-size: 14px; }
.interview-flow strong, .interview-flow small { display: block; }
.interview-flow strong { font-size: 13px; white-space: nowrap; }
.interview-flow small { margin-top: 3px; color: #aac1cd; font-size: 11px; line-height: 1.4; }
.interview-flow > svg { width: 15px; flex: 0 0 15px; color: #7897a9; }
.interview-workbench { display: grid; grid-template-columns: minmax(220px, 270px) minmax(0,1fr); gap: 18px; margin-top: 20px; }
.interview-subjects { align-self: start; border: 1px solid var(--line); border-top: 3px solid var(--coral); background: #fff; }
.interview-subjects > header { padding: 20px 18px 16px; border-bottom: 1px solid var(--line); }
.interview-subjects h2 { margin: 6px 0 0; color: var(--navy); font-size: 17px; }
#interviewSubjectList { display: grid; max-height: 670px; overflow-y: auto; }
.interview-subject { position: relative; display: grid; grid-template-columns: 25px minmax(0,1fr) 15px; gap: 8px; align-items: center; min-height: 66px; padding: 10px 13px; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); background: #fff; cursor: pointer; text-align: left; }
.interview-subject:last-child { border-bottom: 0; }
.interview-subject:hover { background: #f6f9f9; }
.interview-subject.active { color: #fff; background: var(--navy); }
.interview-subject > span { color: #9cadb5; font-family: Georgia, serif; font-size: 11px; }
.interview-subject.active > span { color: #efbc5f; }
.interview-subject strong, .interview-subject small { display: block; }
.interview-subject strong { font-size: 13px; }
.interview-subject small { display: -webkit-box; overflow: hidden; margin-top: 3px; color: var(--muted); font-size: 11px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.interview-subject.active small { color: #b9ccd6; }
.interview-subject svg { width: 14px; color: #9aaab1; }
.interview-detail { min-width: 0; overflow: hidden; border: 1px solid var(--line); background: #fff; }
.interview-detail-head { display: flex; align-items: start; justify-content: space-between; gap: 22px; padding: 25px 27px 20px; border-bottom: 1px solid var(--line); }
.interview-detail-head h2 { margin: 7px 0 4px; color: var(--navy); font-family: "STSong", "Songti SC", serif; font-size: 27px; }
.interview-detail-head p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.interview-head-actions { display: flex; gap: 7px; flex: 0 0 auto; }
.interview-head-actions .primary-button, .interview-head-actions .secondary-button { min-height: 38px; padding: 0 11px; font-size: 12px; }
.interview-tabs { display: flex; gap: 23px; overflow-x: auto; padding: 0 27px; border-bottom: 1px solid var(--line); scrollbar-width: none; }
.interview-tabs::-webkit-scrollbar { display: none; }
.interview-tabs button { position: relative; flex: 0 0 auto; height: 48px; padding: 0; border: 0; color: var(--muted); background: transparent; cursor: pointer; font-size: 12px; }
.interview-tabs button.active { color: var(--navy); font-weight: 700; }
.interview-tabs button.active::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: var(--navy); content: ""; }
.interview-reader { padding: 22px 27px 27px; }
.interview-practice-box { margin: 22px 27px 0; padding: 20px 21px; border: 1px solid #c9dfdb; border-left: 4px solid var(--teal); background: #f4faf8; }
.interview-practice-box header { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.interview-practice-box header .detail-label { margin-bottom: 5px; }
.interview-practice-box h3 { margin: 0; color: var(--navy); font-size: 17px; }
.interview-practice-box > p { margin: 16px 0 13px; color: #263943; font-size: 16px; font-weight: 700; line-height: 1.7; }
.interview-practice-box .secondary-button { min-height: 36px; padding: 0 11px; font-size: 12px; }
.practice-answer { margin: 13px 0; padding: 15px 17px; border-top: 1px solid #d4e5e2; border-bottom: 1px solid #d4e5e2; background: #fff; }
.practice-answer > strong { color: var(--teal); font-size: 13px; }
.practice-answer ol { display: grid; gap: 6px; margin: 10px 0 0; padding-left: 22px; color: #43575f; font-size: 13px; line-height: 1.7; }
.interview-practice-box > .text-button svg { transition: transform .18s ease; }

.knowledge-backdrop { align-items: start; padding-top: 28px; }
.knowledge-modal { width: min(1080px, 100%); max-height: calc(100vh - 56px); }
.knowledge-modal-head { display: flex; align-items: start; justify-content: space-between; gap: 18px; padding: 26px 30px 22px; border-bottom: 1px solid var(--line); }
.knowledge-modal-head h2 { margin: 7px 0 5px; font-family: "STSong", "Songti SC", serif; font-size: 27px; }
.knowledge-modal-head p { margin: 0; color: var(--muted); font-size: 11px; }
.knowledge-head-actions { display: flex; align-items: center; gap: 8px; }
.knowledge-head-actions .secondary-button { min-height: 34px; padding: 0 11px; font-size: 10px; }
.version-tabs { display: flex; gap: 26px; padding: 0 30px; border-bottom: 1px solid var(--line); }
.version-tabs button { position: relative; height: 48px; padding: 0; border: 0; color: var(--muted); background: transparent; cursor: pointer; font-size: 11px; }
.version-tabs button.active { color: var(--navy); font-weight: 700; }
.version-tabs button.active::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: var(--navy); content: ""; }
.knowledge-sheet { padding: 25px 30px 30px; }
.sheet-intro { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; padding: 13px 15px; border-left: 3px solid var(--teal); background: var(--teal-soft); }
.sheet-intro p { margin: 0; color: #4d666b; font-size: 10px; }
.version-badge { padding: 5px 8px; color: #fff; background: var(--teal); font-size: 9px; white-space: nowrap; }
.sheet-grid { display: grid; grid-template-columns: minmax(0,1fr) 285px; gap: 28px; }
.sheet-main { min-width: 0; }
.sheet-section { padding-bottom: 21px; }
.sheet-exam, .method-copy { margin: 0; color: #465961; font-size: 12px; line-height: 1.8; }
.mnemonic-box { display: flex; align-items: flex-start; gap: 11px; padding: 17px; border: 1px solid #eeddb7; background: #fffbf1; }
.mnemonic-box svg { width: 18px; flex: 0 0 18px; color: var(--gold); }
.mnemonic-box strong { color: #695534; font-size: 14px; line-height: 1.7; }
.point-list { display: grid; gap: 11px; margin: 0; padding: 0 0 0 23px; color: #425761; font-size: 11px; line-height: 1.75; }
.point-list li::marker { color: var(--coral); font-family: Georgia, serif; font-weight: 700; }
.sheet-aside { padding-left: 20px; border-left: 1px solid var(--line); }
.sheet-source { display: grid; grid-template-columns: 46px minmax(0,1fr); gap: 10px; margin-bottom: 11px; padding: 9px; border: 1px solid var(--line); background: #fbfcfc; }
.sheet-source-cover { overflow: hidden; height: 65px; background: var(--navy); }
.sheet-source-cover img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.sheet-source strong { display: -webkit-box; overflow: hidden; font-size: 10px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.sheet-source small { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; }
.sheet-source .text-button { margin-top: 3px; font-size: 9px; }
.pitfall-list { display: grid; gap: 8px; }
.pitfall-list > div { display: grid; grid-template-columns: 31px minmax(0,1fr); gap: 10px; align-items: start; padding: 12px 13px; border-left: 3px solid var(--coral); background: var(--coral-soft); }
.pitfall-list b { color: var(--coral); font-family: Georgia, serif; font-size: 11px; }
.pitfall-list p { margin: 0; color: #6e504b; font-size: 10px; line-height: 1.7; }
.sheet-source-block { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.sheet-aside-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.sheet-aside-heading small { color: #8b989e; font-size: 8px; }
.official-source-list { display: grid; gap: 7px; }
.official-source { display: grid; grid-template-columns: 28px minmax(0,1fr) 13px; gap: 9px; align-items: center; padding: 10px; border: 1px solid #cfe1de; color: inherit; background: #f7fcfb; text-decoration: none; }
.official-source:hover { border-color: #86b8b0; background: #eef9f6; }
.official-source > span { display: grid; place-items: center; width: 28px; height: 28px; color: #fff; background: var(--teal); font-family: "STSong", "Songti SC", serif; font-size: 12px; }
.official-source strong, .official-source small { display: block; }
.official-source strong { overflow: hidden; color: var(--navy); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.official-source small { display: -webkit-box; overflow: hidden; margin-top: 3px; color: #72858a; font-size: 8px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.official-source svg { width: 13px; color: var(--teal); }
.source-note { margin: 8px 0 0; color: #8a979c; font-size: 8px; line-height: 1.55; }
.paged-reader { overflow: hidden; border: 1px solid #d7e0e2; border-radius: 6px; background: #fff; box-shadow: 0 12px 30px rgba(23,63,95,.06); }
.reader-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 53px; padding: 9px 13px 9px 18px; border-bottom: 1px solid var(--line); background: #f7f9f9; }
.reader-toolbar > div { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.reader-toolbar span { overflow: hidden; color: var(--navy); font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.reader-toolbar strong { color: var(--coral); font-family: Georgia, serif; font-size: 10px; white-space: nowrap; }
.reader-toolbar nav { display: flex; gap: 5px; }
.reader-toolbar button { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 1px solid #cbd7da; color: var(--navy); background: #fff; cursor: pointer; }
.reader-toolbar button:first-child svg { transform: rotate(180deg); }
.reader-toolbar button:disabled { color: #aeb9bd; background: #f1f3f3; cursor: default; }
.reader-toolbar svg { width: 15px; }
.reader-track { display: flex; overflow-x: auto; overflow-y: hidden; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.reader-track::-webkit-scrollbar { display: none; }
.reader-page { --reader-accent: var(--teal); position: relative; min-width: 100%; min-height: 520px; padding: 35px 76px 38px 40px; border-top: 4px solid var(--reader-accent); scroll-snap-align: start; scroll-snap-stop: always; }
.reader-page[data-reader-tone="coral"] { --reader-accent: var(--coral); }
.reader-page[data-reader-tone="gold"] { --reader-accent: var(--gold); }
.reader-page[data-reader-tone="navy"] { --reader-accent: var(--navy); }
.reader-page-number { position: absolute; top: 25px; right: 33px; color: #e8edef; font-family: Georgia, serif; font-size: 42px; line-height: 1; }
.reader-page .detail-label { color: var(--reader-accent); }
.reader-page h3 { max-width: 76%; margin: 10px 0 21px; color: var(--navy); font-family: "STSong", "Songti SC", serif; font-size: 25px; line-height: 1.35; }
.reader-lead { max-width: 720px; margin: 0 0 19px; color: #52636b; font-size: 14px; line-height: 1.85; }
.reader-points { display: grid; gap: 0; margin: 0; padding-left: 0; color: #304852; font-size: 14px; line-height: 1.8; list-style: none; counter-reset: reader-point; }
.reader-points li { position: relative; padding: 12px 4px 12px 39px; border-top: 1px solid #edf1f2; counter-increment: reader-point; }
.reader-points li:first-child { border-top-color: #dce5e7; }
.reader-points li::before { content: counter(reader-point, decimal-leading-zero); position: absolute; top: 14px; left: 2px; color: var(--reader-accent); font: 700 11px/1.6 Georgia, serif; }
.reader-points li strong { color: var(--reader-accent); font-weight: 700; }
.reader-note { margin: 22px 0 0; padding: 13px 15px; border-left: 3px solid var(--gold); color: #6e5c38; background: var(--gold-soft); font-size: 12px; line-height: 1.75; }
.reader-note strong { margin-right: 8px; }
.reader-dots { display: flex; justify-content: center; gap: 5px; padding: 0 12px 13px; }
.reader-dots i { width: 16px; height: 3px; background: #d8e0e2; transition: background .2s ease, width .2s ease; }
.reader-dots i.active { width: 28px; background: var(--teal); }
.discipline-detail > .paged-reader { margin: 22px 28px 0; }
.discipline-downloads { margin: 27px 28px 0; padding-top: 21px; border-top: 1px solid var(--line); }
.discipline-downloads > header, .knowledge-downloads > header { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.discipline-downloads h3, .knowledge-downloads h3 { margin: 6px 0 0; color: var(--navy); font-size: 15px; }
.discipline-downloads > header > small, .knowledge-downloads > header > small { color: var(--muted); font-size: 9px; }
.discipline-file-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; }
.discipline-file { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: 11px; align-items: center; min-height: 86px; padding: 12px; border: 1px solid var(--line); background: #fbfcfc; }
.file-format { display: grid; place-items: center; width: 42px; height: 54px; color: #fff; background: var(--navy); font-family: Georgia, serif; font-size: 9px; }
.discipline-file:nth-child(even) .file-format { background: var(--teal); }
.discipline-file.is-review, .knowledge-file.is-review { border-color: #dfc48d; background: #fffdf8; }
.discipline-file.generated-study-file, .knowledge-file.generated-study-file { border-color: #8fbdb7; background: linear-gradient(90deg, #f2f9f7 0, #fff 72%); box-shadow: 0 10px 24px rgba(14,124,118,.08); }
.discipline-file.generated-study-file { grid-column: 1 / -1; min-height: 108px; padding: 17px; }
.discipline-file.generated-study-file .file-format { width: 52px; height: 70px; background: var(--teal); }
.generated-file-cover { display: grid; place-items: center; align-content: center; min-height: 100%; color: #fff; background: var(--teal); }
.generated-file-cover span, .generated-file-cover strong { display: block; }
.generated-file-cover span { font-size: 9px; }
.generated-file-cover strong { margin-top: 4px; font: 700 17px/1 Georgia, serif; }
.discipline-file.is-review .file-format, .knowledge-file.is-review .sheet-source-cover { opacity: .58; }
.discipline-file > .review-lock { grid-column: 2 / -1; justify-self: start; max-width: 100%; margin: 0; }
.discipline-file > div:nth-child(2) { min-width: 0; }
.discipline-file small, .discipline-file strong, .discipline-file > div > span { display: block; }
.discipline-file small { color: var(--coral); font-size: 8px; font-weight: 700; }
.discipline-file strong { overflow: hidden; margin-top: 4px; font-size: 10px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.discipline-file > div > span { margin-top: 4px; color: var(--muted); font-size: 8px; }
.discipline-file-actions { display: flex; gap: 4px; }
.discipline-file-actions button, .discipline-file-actions a { display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 1px solid #cbd8dc; color: var(--navy); background: #fff; cursor: pointer; }
.discipline-file-actions svg { width: 14px; }
.discipline-download-empty { margin: 0; padding: 13px 15px; border-left: 3px solid var(--gold); color: #6f613f; background: var(--gold-soft); font-size: 9px; line-height: 1.7; }
.discipline-official-sources { margin-top: 15px; padding-top: 15px; border-top: 1px solid var(--line); }
.discipline-official-sources .official-source-list { grid-template-columns: repeat(2, minmax(0,1fr)); }
.knowledge-downloads { margin-top: 25px; padding-top: 23px; border-top: 1px solid var(--line); }
.knowledge-file-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.knowledge-file { display: grid; grid-template-columns: 55px minmax(0,1fr); gap: 11px; min-height: 100px; padding: 10px; border: 1px solid var(--line); background: #fbfcfc; }
.knowledge-file.generated-study-file { grid-column: 1 / -1; grid-template-columns: 82px minmax(0,1fr); min-height: 126px; padding: 17px; }
.knowledge-file.generated-study-file .generated-file-cover { min-height: 90px; }
.knowledge-file.generated-study-file small { font-size: 10px; letter-spacing: 0; }
.knowledge-file.generated-study-file strong { margin-top: 7px; font-size: 15px; line-height: 1.5; }
.knowledge-file.generated-study-file span { margin-top: 6px; font-size: 11px; }
.knowledge-file.generated-study-file .text-button { display: inline-flex; align-items: center; gap: 5px; min-height: 34px; padding: 0 11px; border: 1px solid #b9d3cf; color: var(--navy); background: #fff; font-size: 11px; }
.knowledge-file .sheet-source-cover { height: 79px; }
.knowledge-file > div:last-child { min-width: 0; }
.knowledge-file small, .knowledge-file strong, .knowledge-file span { display: block; }
.knowledge-file small { color: var(--coral); font-size: 8px; font-weight: 700; }
.knowledge-file strong { display: -webkit-box; overflow: hidden; margin-top: 4px; font-size: 10px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.knowledge-file span { margin-top: 4px; color: var(--muted); font-size: 8px; }
.knowledge-file > div > div { display: flex; gap: 11px; margin-top: 7px; }
.knowledge-file .text-button { font-size: 9px; }
.knowledge-file .text-button svg { width: 12px; }
.knowledge-downloads .sheet-source-block { margin-top: 18px; }

.tests-hero { display: flex; align-items: end; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--line); }
.tests-hero .page-intro { flex: 1; border: 0; }
.test-overview { display: flex; gap: 28px; margin-bottom: 28px; }
.test-overview div { display: grid; gap: 3px; min-width: 75px; padding-left: 14px; border-left: 2px solid var(--teal); }
.test-overview div:last-child { border-color: var(--gold); }
.test-overview strong { color: var(--navy); font-family: Georgia, serif; font-size: 27px; line-height: 1; }
.test-overview span { color: var(--muted); font-size: 10px; }
.test-controls { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 24px; }
.test-controls > span { color: var(--muted); font-size: 10px; }
.test-section { margin-top: 31px; }
.test-section + .test-section { margin-top: 48px; }
.test-set-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 15px; margin-top: 16px; }
.test-set-card { position: relative; min-height: 225px; padding: 20px 20px 17px; border: 1px solid var(--line); border-top: 3px solid var(--navy); background: #fff; }
.test-set-card[data-tone="teal"] { border-top-color: var(--teal); }
.test-set-card[data-tone="coral"] { border-top-color: var(--coral); }
.test-set-card[data-tone="gold"] { border-top-color: var(--gold); }
.test-set-card:hover { transform: translateY(-2px); box-shadow: 0 13px 28px rgba(23,50,66,.08); }
.test-set-top { display: flex; justify-content: space-between; align-items: center; }
.test-set-top > span { color: #b2c0c6; font-family: Georgia, serif; font-size: 15px; }
.test-set-top em { padding: 4px 7px; color: var(--teal); background: var(--teal-soft); font-size: 9px; font-style: normal; }
.test-set-card h3 { min-height: 39px; margin: 17px 0 7px; font-size: 14px; line-height: 1.5; }
.test-set-card p { min-height: 35px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.65; }
.test-set-meta { display: flex; gap: 9px; margin-top: 14px; color: #8d9aa0; font-size: 9px; }
.test-set-meta span + span::before { margin-right: 9px; color: #c2cdd1; content: "·"; }
.test-set-card .primary-button { width: 100%; min-height: 34px; margin-top: 17px; font-size: 10px; }
.test-set-card .primary-button svg { width: 14px; }
.discipline-test-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
.level-switch.compact { margin: 0; padding: 3px; }
.level-switch.compact .test-level-tab { min-width: 62px; height: 27px; padding: 0 10px; font-size: 10px; }
.quiz-backdrop { align-items: start; padding-top: 40px; }
.quiz-modal { width: min(720px, 100%); }
.quiz-head { display: flex; align-items: start; justify-content: space-between; gap: 18px; padding: 25px 30px 20px; border-bottom: 1px solid var(--line); }
.quiz-head h2 { margin: 7px 35px 0 0; font-family: "STSong", "Songti SC", serif; font-size: 22px; line-height: 1.45; }
.quiz-progress { display: flex; align-items: center; gap: 13px; padding: 13px 30px; color: var(--muted); background: #f7f9f9; font-size: 10px; }
.quiz-progress > div { flex: 1; height: 3px; background: #e1e8e9; }
.quiz-progress i { display: block; width: 33%; height: 100%; background: var(--teal); transition: width .2s ease; }
.quiz-body { min-height: 370px; padding: 26px 30px 29px; }
.quiz-question-type { display: flex; align-items: center; gap: 11px; }
.quiz-question-type span { padding: 5px 7px; color: #fff; background: var(--navy); font-size: 9px; }
.quiz-question-type small { color: var(--muted); font-size: 9px; }
.quiz-question { margin: 18px 0 21px; font-size: 16px; line-height: 1.7; white-space: pre-line; }
.quiz-options { display: grid; gap: 9px; }
.quiz-option { display: flex; align-items: center; gap: 11px; min-height: 48px; padding: 8px 12px; border: 1px solid var(--line); color: #43555e; background: #fff; cursor: pointer; text-align: left; font-size: 11px; line-height: 1.5; }
.quiz-option:hover { border-color: #9bb6bd; background: #f8fbfb; }
.quiz-option i { display: grid; place-items: center; width: 25px; height: 25px; flex: 0 0 25px; border: 1px solid #cbd8dc; border-radius: 50%; color: #73838a; font-family: Georgia, serif; font-size: 10px; font-style: normal; }
.quiz-option.selected { border-color: var(--navy); background: #f0f5f6; }
.quiz-option.selected i { color: #fff; border-color: var(--navy); background: var(--navy); }
.quiz-option.correct { border-color: #6db4a9; background: #edf8f4; }
.quiz-option.correct i { color: #fff; border-color: var(--teal); background: var(--teal); }
.quiz-option.wrong { border-color: #df9b8f; background: #fff3f0; }
.quiz-option.wrong i { color: #fff; border-color: var(--coral); background: var(--coral); }
.subjective-prompt textarea { width: 100%; padding: 13px; border: 1px solid var(--line); outline: none; color: var(--ink); background: #fbfcfc; font-size: 11px; line-height: 1.7; resize: vertical; }
.subjective-prompt textarea:focus { border-color: #7ea6b5; box-shadow: 0 0 0 3px rgba(23,63,95,.07); }
.essay-answer-meta { display: flex; justify-content: space-between; gap: 12px; margin-top: 8px; color: #718087; font-size: 9px; line-height: 1.5; }
.essay-answer-meta span:last-child { text-align: right; }
.quiz-feedback { margin-top: 24px; padding: 17px; border-left: 3px solid var(--coral); background: #fff5f2; }
.quiz-feedback.is-correct { border-left-color: var(--teal); background: #eff9f5; }
.feedback-head { display: flex; align-items: center; gap: 8px; }
.feedback-head svg { width: 17px; color: var(--coral); }
.is-correct .feedback-head svg { color: var(--teal); }
.feedback-head strong { font-size: 12px; }
.quiz-feedback > p { margin: 11px 0 0; color: #53656d; font-size: 10px; line-height: 1.7; }
.quiz-source { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding-top: 11px; border-top: 1px dashed rgba(83,101,109,.2); font-size: 9px; }
.quiz-source span { flex: 0 0 auto; padding: 4px 6px; color: #fff; background: var(--teal); }
.quiz-source a { overflow: hidden; color: var(--teal); font-weight: 700; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.quiz-source a:hover { text-decoration: underline; }
.reference-answer { margin-top: 13px; padding-top: 12px; border-top: 1px solid rgba(83,101,109,.14); }
.reference-answer > strong { font-size: 10px; }
.reference-answer ol { display: grid; gap: 6px; margin: 8px 0 0; padding-left: 20px; color: #53656d; font-size: 10px; line-height: 1.7; }
.reference-answer small { display: block; margin-top: 11px; padding-top: 10px; border-top: 1px dashed rgba(83,101,109,.2); color: #75858c; font-size: 9px; line-height: 1.6; }
.reasoning { padding-top: 11px; border-top: 1px solid rgba(83,101,109,.14); }
.mastery-actions { display: flex; align-items: center; gap: 7px; margin-top: 15px; padding-top: 13px; border-top: 1px solid rgba(83,101,109,.14); color: var(--muted); font-size: 10px; }
.mastery-actions button { padding: 6px 9px; border: 1px solid #d4dfdf; color: #58706f; background: #fff; cursor: pointer; font-size: 9px; }
.mastery-actions button.active { border-color: var(--teal); color: #fff; background: var(--teal); }
.quiz-feedback.essay-feedback { padding: 19px 20px; border-left-color: var(--teal); background: #f5faf8; }
.essay-reference { margin-top: 15px; }
.essay-reference section { padding: 17px 0; border-top: 1px solid rgba(69,103,101,.16); }
.essay-reference section:first-child { padding-top: 13px; }
.essay-reference section > span { color: var(--coral); font-family: Georgia, serif; font-size: 9px; font-weight: 700; }
.essay-reference h4 { margin: 7px 0 10px; color: var(--navy); font-family: "STSong", "Songti SC", serif; font-size: 16px; }
.essay-reference p, .essay-reference li, .essay-reference small { color: #4d6163; font-size: 11px; line-height: 1.8; }
.essay-reference ul, .essay-reference ol { display: grid; gap: 5px; margin: 9px 0 0; padding-left: 21px; }
.essay-reference section > small { display: block; margin-top: 12px; padding: 10px 12px; border-left: 2px solid var(--gold); background: #fffaf0; }
.essay-title-list { grid-template-columns: repeat(2, minmax(0,1fr)); column-gap: 28px; }
.essay-title-list li::marker { color: var(--coral); font-family: Georgia, serif; font-weight: 700; }
.model-essay h4 { margin-bottom: 14px; font-size: 19px; text-align: center; }
.model-essay p { margin: 0 0 12px; color: #344d52; text-align: justify; text-indent: 2em; }
.essay-checklist { grid-template-columns: repeat(2, minmax(0,1fr)); column-gap: 24px; }
.quiz-footer { display: flex; justify-content: flex-end; gap: 9px; padding: 15px 30px; border-top: 1px solid var(--line); background: #fbfcfc; }

.strategy-strip { display: flex; align-items: center; justify-content: space-between; margin: 30px 0; padding: 24px 28px; color: #fff; background: var(--navy); }
.strategy-strip > div { display: grid; grid-template-columns: 30px auto; column-gap: 9px; align-items: center; }
.strategy-strip span { grid-row: 1 / 3; color: #eab556; font-family: Georgia, serif; font-size: 21px; }
.strategy-strip strong { font-size: 13px; }
.strategy-strip small { margin-top: 2px; color: #a8c0cc; font-size: 9px; }
.strategy-strip > svg { width: 16px; color: #6f91a4; }
.breakthrough-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 17px; }
.break-card { position: relative; min-height: 215px; overflow: hidden; padding: 25px 26px 23px 142px; border: 1px solid var(--line); background: #fff; }
.break-card img { position: absolute; inset: 0 auto 0 0; width: 116px; height: 100%; object-fit: cover; object-position: top; }
.break-card .section-kicker { display: block; }
.break-card h3 { margin: 10px 0 8px; font-size: 17px; }
.break-card p { min-height: 40px; margin: 0 0 14px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.break-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 17px; }
.break-tags span { padding: 4px 7px; color: #4e6571; background: #edf2f3; font-size: 9px; }

.community-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); }
.community-head .page-intro { flex: 1; border: 0; }
.community-head > button { margin-bottom: 28px; }
.community-layout { display: grid; grid-template-columns: minmax(0,1fr) 274px; gap: 30px; margin-top: 25px; }
.question-feed { min-width: 0; background: #fff; border-top: 3px solid var(--navy); }
.question-filter { display: flex; gap: 24px; padding: 0 22px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); }
.question-filter button { height: 49px; padding: 0; border: 0; color: var(--muted); background: transparent; cursor: pointer; font-size: 11px; }
.question-filter button.active { color: var(--navy); font-weight: 700; }
.question-card { padding: 21px 22px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); }
.question-card:hover { background: #fbfcfc; }
.question-author { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 10px; }
.mini-avatar { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; color: #fff; background: var(--teal); font-size: 10px; }
.mini-avatar.gold { background: #b47b35; }
.mini-avatar.navy { background: #516f8c; }
.mini-avatar.coral { background: #b45e51; }
.question-author time { margin-left: auto; color: #9ba6ad; }
.question-card h3 { margin: 13px 0 7px; font-size: 14px; line-height: 1.55; }
.question-card p { display: -webkit-box; overflow: hidden; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.7; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.question-footer { display: flex; align-items: center; gap: 7px; margin-top: 13px; }
.topic-tag { padding: 4px 7px; color: #9b4c3d; background: var(--coral-soft); font-size: 9px; }
.question-footer button { display: inline-flex; align-items: center; gap: 4px; margin-left: 7px; padding: 3px; border: 0; color: #819099; background: transparent; cursor: pointer; font-size: 9px; }
.question-footer button:first-of-type { margin-left: auto; }
.question-footer svg { width: 13px; }
.question-footer button.liked { color: var(--coral); }
.question-footer button.liked svg { fill: currentColor; }
.assistant-answered { display: inline-flex; align-items: center; gap: 3px; padding: 4px 6px; color: var(--teal); background: var(--teal-soft); font-size: 8px; }
.assistant-answered svg { width: 11px; }
.community-aside { display: grid; align-content: start; gap: 14px; }
.community-stat, .topic-box, .community-rules { padding: 20px; border: 1px solid var(--line); background: #fff; }
.assistant-card { padding: 16px; border: 1px solid #b7d6d1; background: linear-gradient(180deg, #f2fbf9 0%, #fff 52%); }
.assistant-card-head { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.assistant-brand { display: flex; align-items: center; gap: 8px; min-width: 0; }
.assistant-mark { display: grid; place-items: center; width: 29px; height: 29px; flex: 0 0 29px; color: #fff; background: var(--teal); font-family: "STKaiti", "KaiTi", serif; font-size: 16px; }
.assistant-brand strong, .assistant-brand small { display: block; }
.assistant-brand strong { color: var(--navy); font-size: 12px; }
.assistant-brand small { margin-top: 2px; color: var(--muted); font-size: 9px; }
.assistant-clear { padding: 4px 0; border: 0; color: #72918f; background: transparent; cursor: pointer; font-size: 9px; }
.assistant-suggestions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 13px; }
.assistant-suggestions span { width: 100%; color: #76908e; font-size: 9px; }
.assistant-suggestions button { padding: 5px 7px; border: 1px solid #d6e8e5; color: #46716d; background: #fff; cursor: pointer; font-size: 9px; }
.assistant-suggestions button:hover { border-color: #8dc0b9; background: #ebf8f5; }
.assistant-messages { display: grid; gap: 9px; max-height: 270px; margin-top: 13px; overflow-y: auto; padding-right: 2px; }
.assistant-message { max-width: 96%; padding: 9px 10px; color: #425961; background: #fff; border: 1px solid #dfebea; font-size: 10px; line-height: 1.65; }
.assistant-message.user { justify-self: end; color: #fff; background: var(--navy); border-color: var(--navy); }
.assistant-message.user .assistant-message-meta { color: #bfd1dc; }
.assistant-message-meta { display: block; margin-bottom: 4px; color: #6a918c; font-size: 8px; font-weight: 700; }
.assistant-message-title { display: block; margin-bottom: 4px; color: var(--navy); font-size: 10px; font-weight: 700; }
.assistant-message.user .assistant-message-title { color: #fff; }
.assistant-message-text { white-space: pre-line; }
.assistant-message ul { display: grid; gap: 3px; margin: 6px 0 0; padding-left: 16px; }
.assistant-message li::marker { color: var(--teal); }
.assistant-actions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; padding-top: 7px; border-top: 1px dashed #d7e5e3; }
.assistant-actions > span { width: 100%; color: #77918e; font-size: 8px; }
.assistant-actions button { padding: 4px 6px; border: 1px solid #b7d6d1; color: var(--teal); background: #f8fffd; cursor: pointer; font-size: 8px; }
.assistant-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 6px; align-items: end; margin-top: 11px; }
.assistant-form textarea { width: 100%; min-height: 42px; padding: 8px; border: 1px solid #d5e4e2; outline: 0; color: var(--ink); background: #fff; font-size: 10px; line-height: 1.5; resize: vertical; }
.assistant-form textarea:focus { border-color: #75b0a7; box-shadow: 0 0 0 3px rgba(14,124,118,.08); }
.assistant-form .primary-button { min-height: 42px; padding: 0 10px; font-size: 9px; }
.assistant-form .primary-button svg { width: 13px; }
.assistant-note { display: block; margin-top: 8px; color: #8a9c9b; font-size: 8px; line-height: 1.55; }
.community-stat > span, .topic-box > span { display: block; color: var(--muted); font-size: 10px; }
.community-stat strong { display: block; margin: 7px 0 1px; color: var(--navy); font-family: Georgia, serif; font-size: 32px; }
.community-stat small { color: var(--muted); font-size: 10px; }
.avatar-row { display: flex; margin-top: 16px; }
.avatar-row i { display: grid; place-items: center; width: 29px; height: 29px; margin-right: -5px; border: 2px solid #fff; border-radius: 50%; color: #fff; background: #43827d; font-size: 9px; font-style: normal; }
.avatar-row i:nth-child(2) { background: #b47b35; }
.avatar-row i:nth-child(3) { background: #516f8c; }
.avatar-row i:nth-child(4) { background: #b45e51; }
.avatar-row i:nth-child(5) { color: #667680; background: #e8edef; }
.topic-box { display: flex; flex-wrap: wrap; gap: 8px; }
.topic-box > span { width: 100%; margin-bottom: 5px; }
.topic-box button { padding: 6px 8px; border: 0; color: #496473; background: #edf3f3; cursor: pointer; font-size: 9px; }
.community-rules { border-left: 3px solid #e2ae4b; }
.community-rules strong { font-size: 12px; }
.community-rules p { margin: 8px 0 0; color: var(--muted); font-size: 10px; line-height: 1.7; }

.modal-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 22px; background: rgba(9,27,38,.64); backdrop-filter: blur(3px); }
.modal { position: relative; max-height: calc(100vh - 44px); overflow-y: auto; background: #fff; box-shadow: var(--shadow); animation: modalIn .2s ease both; }
@keyframes modalIn { from { opacity: 0; transform: translateY(8px) scale(.985); } to { opacity: 1; transform: none; } }
.modal-close { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 0; color: #75848c; background: transparent; cursor: pointer; }
.modal-close svg { width: 18px; }
.login-modal { width: min(420px, 100%); padding: 37px 38px 31px; }
.login-modal .modal-close, .ask-modal > .modal-close { position: absolute; top: 12px; right: 12px; }
.login-modal .modal-mark { width: 42px; height: 42px; margin-bottom: 21px; }
.login-modal h2, .ask-modal h2 { margin: 0 0 7px; font-size: 22px; }
.login-modal > p { margin: 0 0 25px; color: var(--muted); font-size: 12px; }
.modal label { display: block; margin-bottom: 17px; color: #46545c; font-size: 11px; font-weight: 600; }
.modal input, .modal select, .modal textarea { width: 100%; margin-top: 8px; border: 1px solid var(--line); border-radius: 0; outline: 0; color: var(--ink); background: #fff; font-size: 12px; }
.modal input, .modal select { height: 43px; padding: 0 12px; }
.modal textarea { padding: 12px; resize: vertical; line-height: 1.6; }
.modal input:focus, .modal select:focus, .modal textarea:focus { border-color: #6c99a9; box-shadow: 0 0 0 3px rgba(23,63,95,.07); }
.input-wrap { display: flex; align-items: center; margin-top: 8px; border: 1px solid var(--line); }
.input-wrap:focus-within { border-color: #6c99a9; box-shadow: 0 0 0 3px rgba(23,63,95,.07); }
.input-wrap input { flex: 1; min-width: 0; margin: 0; border: 0; box-shadow: none !important; }
.phone-wrap span { padding-left: 12px; color: #6d7b83; font-size: 12px; }
.code-wrap button { flex: 0 0 auto; margin-right: 5px; padding: 8px 9px; border: 0; color: var(--navy); background: #eef3f4; cursor: pointer; font-size: 10px; }
.code-wrap button:disabled { color: #98a3aa; cursor: default; }
.demo-tip { margin: -6px 0 15px; color: #87949b; font-size: 10px; }
.login-submit { width: 100%; height: 44px; border: 0; }
.privacy-note { display: block; margin-top: 16px; color: #9ba5aa; font-size: 9px; text-align: center; }
.preview-modal { display: flex; width: min(1040px, 100%); height: min(820px, calc(100vh - 44px)); flex-direction: column; }
.preview-modal header, .preview-modal footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 20px; border-bottom: 1px solid var(--line); }
.preview-modal header span { color: var(--coral); font-size: 9px; font-weight: 700; }
.preview-modal h2 { margin: 4px 0 0; font-size: 14px; }
.preview-body { min-height: 0; flex: 1; padding: 12px; background: #e5e9ea; }
.preview-body object { width: 100%; height: 100%; border: 0; background: #fff; }
.preview-modal footer { justify-content: flex-end; border-top: 1px solid var(--line); border-bottom: 0; }
.preview-fallback { display: grid; place-items: center; height: 100%; }
.ask-modal { width: min(580px, 100%); padding: 32px 36px; }
.ask-modal h2 { margin-top: 5px; margin-bottom: 24px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-actions { display: flex; justify-content: flex-end; gap: 9px; }
.answer-modal { width: min(680px, 100%); padding: 32px 36px; }
.answer-modal > .modal-close { position: absolute; top: 12px; right: 12px; }
.answer-question-meta { display: flex; gap: 7px; padding-right: 40px; color: var(--coral); font-size: 10px; font-weight: 700; }
.answer-modal h2 { margin: 12px 34px 9px 0; font-size: 19px; line-height: 1.55; }
.answer-question-body { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.75; }
.answer-divider { display: flex; align-items: center; gap: 7px; margin: 24px 0 0; padding: 13px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 11px; }
.answer-divider strong { color: var(--muted); font-family: Georgia, serif; }
.assistant-inline-button { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; padding: 5px 7px; border: 1px solid #b7d6d1; color: var(--teal); background: #f3fbf9; cursor: pointer; font-size: 9px; }
.assistant-inline-button svg { width: 12px; }
.answer-list { max-height: 240px; overflow-y: auto; }
.answer-item { padding: 16px 0; border-bottom: 1px solid var(--line-soft); }
.answer-item header { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 10px; }
.answer-item header time { margin-left: auto; color: #98a4aa; }
.answer-item p { margin: 10px 0 0; color: #3f4e57; font-size: 11px; line-height: 1.8; }
.answer-item.bot-answer { margin: 12px 0; padding: 16px; border: 1px solid #c9e1dd; background: #f5fbfa; }
.answer-item.bot-answer header em { padding: 3px 5px; color: var(--teal); background: #dff2ee; font-size: 8px; font-style: normal; }
.answer-item.bot-answer p { white-space: pre-line; }
.bot-answer-source { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; padding-top: 10px; border-top: 1px dashed #cfe1de; color: #758c89; font-size: 9px; }
.bot-answer-source button { padding: 5px 7px; border: 1px solid #acd1ca; color: var(--teal); background: #fff; cursor: pointer; font-size: 8px; }
.answer-empty { padding: 24px 0; color: var(--muted); font-size: 11px; text-align: center; }
.answer-modal form { margin-top: 19px; }
.answer-modal form label { margin-bottom: 7px; }
.answer-modal form textarea { margin-top: 0; }

.toast { position: fixed; right: 26px; bottom: 26px; z-index: 200; display: flex; align-items: center; gap: 9px; padding: 12px 16px; color: #fff; background: #173f5f; box-shadow: var(--shadow); font-size: 11px; opacity: 0; pointer-events: none; transform: translateY(12px); transition: .2s ease; }
.toast.show { opacity: 1; transform: none; }
.toast svg { width: 16px; color: #67c7b1; }
.mobile-nav { display: none; }

/* Keep dense study content readable across long knowledge pages and answer views. */
body { font-size: 14px; line-height: 1.5; }
.nav-item, .side-help strong, .ask-quick, .login-button, .filter-tab, .sort-control, .sort-control select, .primary-button, .secondary-button { font-size: 13px; }
.brand small, .exam-panel p, .side-help small, .section-kicker, .eyebrow, .band-stats span { font-size: 11px; }
.nav-count-new, .resource-cover.generated span { font-size: 11px; }
.section-heading h2 { font-size: 23px; }
.module-card { min-height: 150px; padding: 23px 21px; }
.module-card h3 { font-size: 16px; }
.module-card p { display: -webkit-box; overflow: hidden; font-size: 13px; line-height: 1.6; text-overflow: initial; white-space: normal; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.resource-card { grid-template-columns: 104px minmax(0,1fr); min-height: 208px; }
.resource-cover { min-height: 206px; }
.badge { min-height: 22px; padding: 2px 7px; font-size: 11px; }
.resource-info h3 { font-size: 15px; }
.resource-info p { font-size: 12px; line-height: 1.65; }
.resource-meta { font-size: 11px; }
.resource-actions button, .resource-actions a { height: 34px; padding: 0 10px; font-size: 11px; }
.knowledge-subject-title small, .knowledge-item span, .knowledge-item small { font-size: 12px; }
.knowledge-item { min-height: 122px; }
.knowledge-item strong { font-size: 14px; }
.knowledge-item small { display: -webkit-box; white-space: normal; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.subject3-note strong { font-size: 13px; }
.subject3-note small, .subject3-tip, .detail-header p, .detail-tabs button, .detail-label { font-size: 12px; }
.level-tab, .discipline-item strong { font-size: 13px; }
.discipline-item { min-height: 70px; }
.discipline-item small { font-size: 11px; }
.detail-header h2 { font-size: 28px; }
.knowledge-modal-head p, .version-tabs button, .sheet-exam, .method-copy, .point-list { font-size: 13px; }
.knowledge-head-actions .secondary-button { min-height: 38px; font-size: 12px; }
.sheet-intro p, .pitfall-list p { font-size: 13px; }
.version-badge { font-size: 11px; }
.core-pills span, .design-steps span, .type-pills span, .check-list, .exam-tip p, .detail-footer, .source-mini-card strong { font-size: 12px; }
.source-mini-card small, .source-mini-card .text-button, .sheet-source strong, .sheet-source small, .sheet-source .text-button, .content-source-note small { font-size: 11px; }
.content-source-note strong { font-size: 13px; }
.official-source strong { font-size: 12px; }
.official-source small, .source-note, .sheet-aside-heading small { font-size: 11px; }
.reader-toolbar span, .reader-toolbar strong { font-size: 12px; }
.reader-page { min-height: 520px; padding: 35px 76px 38px 40px; }
.reader-page h3 { font-size: 24px; }
.reader-lead, .reader-points { font-size: 14px; line-height: 1.85; }
.reader-note { font-size: 12px; line-height: 1.75; }
.discipline-downloads h3, .knowledge-downloads h3 { font-size: 17px; }
.discipline-downloads > header > small, .knowledge-downloads > header > small, .discipline-file small, .discipline-file > div > span, .knowledge-file small, .knowledge-file span, .discipline-download-empty { font-size: 11px; }
.discipline-file strong, .knowledge-file strong { font-size: 12px; }
.file-format { font-size: 11px; }
.knowledge-file .text-button { font-size: 12px; }
.tests-hero p, .test-overview span, .test-controls > span, .test-set-card p { font-size: 13px; }
.test-set-top em, .test-set-meta { font-size: 11px; }
.test-set-card { min-height: 248px; }
.test-set-card h3 { font-size: 16px; }
.test-set-card .primary-button { min-height: 40px; font-size: 12px; }
.quiz-progress, .quiz-question-type span, .quiz-question-type small, .quiz-feedback > p, .reference-answer > strong, .reference-answer ol, .reference-answer small, .mastery-actions { font-size: 12px; }
.quiz-question, .quiz-option, .subjective-prompt textarea { font-size: 14px; }
.question-filter button, .question-author, .question-card p, .answer-question-body, .answer-item p { font-size: 13px; }
.question-card h3 { font-size: 16px; }
.topic-tag, .question-footer button, .assistant-answered { font-size: 11px; }
.community-layout { grid-template-columns: minmax(0,1fr) 320px; }
.assistant-brand strong { font-size: 14px; }
.assistant-brand small, .assistant-clear, .assistant-suggestions span, .assistant-suggestions button, .assistant-message-meta, .assistant-actions > span, .assistant-actions button, .assistant-note { font-size: 11px; }
.assistant-message, .assistant-message-title, .assistant-form textarea { font-size: 13px; }
.assistant-form .primary-button { font-size: 12px; }
.assistant-inline-button, .answer-item.bot-answer header em { font-size: 11px; }
.community-stat > span, .topic-box > span, .community-stat small, .community-rules p { font-size: 12px; }
.topic-box button { font-size: 11px; }
.strategy-strip small, .break-tags span, .avatar-row i { font-size: 11px; }
.modal label, .modal input, .modal select, .modal textarea, .answer-divider, .answer-item header, .answer-empty { font-size: 13px; }
.demo-tip, .privacy-note, .preview-modal header span, .answer-question-meta, .bot-answer-source, .bot-answer-source button { font-size: 11px; }
.preview-modal h2 { font-size: 16px; }
.toast { font-size: 13px; }

.update-pulse { display: grid; grid-template-columns: 42px minmax(0,1fr) auto 16px; gap: 13px; align-items: center; width: 100%; min-height: 70px; margin-top: 12px; padding: 12px 17px; border: 1px solid #d2e1de; border-left: 4px solid var(--teal); color: var(--ink); background: #f8fbfa; cursor: pointer; text-align: left; }
.update-pulse:hover { background: #f0f7f5; }
.update-pulse-mark { display: grid; place-items: center; width: 42px; height: 42px; color: #fff; background: var(--teal); }
.update-pulse-mark svg { width: 19px; }
.update-pulse > span:nth-child(2) { min-width: 0; }
.update-pulse small, .update-pulse strong, .update-pulse em { display: block; }
.update-pulse small { color: var(--coral); font-size: 9px; font-weight: 800; }
.update-pulse strong { margin-top: 2px; color: var(--navy); font-size: 13px; }
.update-pulse em { margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 10px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.update-pulse-version { padding: 6px 9px; color: var(--navy); background: #e7eef1; font: 700 11px/1 Georgia, serif; }
.update-pulse-arrow { width: 15px; color: #8aa09f; }

.updates-hero { display: flex; align-items: end; justify-content: space-between; gap: 30px; border-bottom: 1px solid var(--line); }
.updates-hero .page-intro { flex: 1; border-bottom: 0; }
.update-release-stamp { min-width: 225px; margin-bottom: 27px; padding: 17px 19px; border-left: 3px solid var(--gold); background: var(--gold-soft); }
.update-release-stamp span, .update-release-stamp strong, .update-release-stamp small { display: block; }
.update-release-stamp span { color: #755b31; font-size: 10px; font-weight: 700; }
.update-release-stamp strong { margin: 5px 0 3px; color: var(--navy); font: 700 23px/1.2 Georgia, serif; }
.update-release-stamp small { color: #806f50; font-size: 10px; }
.update-status-strip { display: grid; grid-template-columns: repeat(4, minmax(120px,1fr)) auto; align-items: stretch; margin-top: 22px; border: 1px solid var(--line); background: #fff; }
.update-status-strip > div { min-width: 0; padding: 18px 19px; border-right: 1px solid var(--line); }
.update-status-strip span, .update-status-strip strong, .update-status-strip small { display: block; }
.update-status-strip span { color: var(--muted); font-size: 10px; }
.update-status-strip strong { overflow: hidden; margin: 6px 0 2px; color: var(--navy); font: 700 25px/1.1 Georgia, serif; text-overflow: ellipsis; white-space: nowrap; }
.update-status-strip strong.scan-time { font-family: inherit; font-size: 15px; line-height: 1.8; }
.update-status-strip small { color: #8b989f; font-size: 9px; }
.update-check-button { align-self: center; margin: 0 18px; white-space: nowrap; }
.update-check-button:disabled { cursor: wait; opacity: .68; }
.update-review-note { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; gap: 12px; align-items: center; margin-top: 14px; padding: 15px 17px; border-left: 3px solid var(--teal); background: #eef7f5; }
.update-review-note > svg { width: 19px; color: var(--teal); }
.update-review-note strong { display: block; color: var(--navy); font-size: 12px; }
.update-review-note p { margin: 3px 0 0; color: #586d70; font-size: 11px; line-height: 1.6; }
.update-review-note > span { color: var(--teal); font-size: 10px; font-weight: 700; text-align: right; }
.material-review-section { margin-top: 28px; border: 1px solid var(--line); border-top: 3px solid var(--coral); background: #fff; }
.material-review-section > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 22px 23px 18px; border-bottom: 1px solid var(--line); }
.material-review-section h2 { margin: 5px 0 0; color: var(--navy); font-size: 19px; }
.material-review-section header p { max-width: 760px; margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.7; }
.review-report-link { flex: 0 0 auto; text-decoration: none; }
.material-review-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-bottom: 1px solid var(--line); background: #fafbfb; }
.material-review-summary > div { padding: 17px 20px; border-right: 1px solid var(--line); }
.material-review-summary > div:last-child { border-right: 0; }
.material-review-summary span, .material-review-summary strong, .material-review-summary small { display: block; }
.material-review-summary span { color: var(--muted); font-size: 10px; }
.material-review-summary strong { margin: 5px 0 2px; color: var(--navy); font: 700 24px/1.1 Georgia, serif; }
.material-review-summary > div:nth-child(2) strong { color: var(--teal); }
.material-review-summary > div:nth-child(3) strong { color: #9b6b24; }
.material-review-summary > div:nth-child(4) strong { color: var(--coral); }
.material-review-summary small { color: #8b989f; font-size: 9px; }
.material-review-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 20px; border-bottom: 1px solid var(--line); }
.review-filter { display: flex; min-width: 0; border: 1px solid var(--line); }
.review-filter button { min-height: 36px; padding: 0 13px; border: 0; border-right: 1px solid var(--line); color: var(--muted); background: #fff; cursor: pointer; font-size: 10px; }
.review-filter button:last-child { border-right: 0; }
.review-filter button.active { color: #fff; background: var(--navy); }
.review-search { display: flex; align-items: center; width: min(300px,100%); height: 37px; padding: 0 11px; border: 1px solid var(--line); background: #fff; }
.review-search svg { flex: 0 0 auto; width: 15px; color: var(--muted); }
.review-search input { width: 100%; min-width: 0; height: 100%; padding-left: 8px; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 11px; }
.material-review-list { max-height: 640px; overflow-y: auto; padding: 0 22px; scrollbar-color: #bac7ca transparent; scrollbar-width: thin; }
.material-review-item { border-bottom: 1px solid var(--line-soft); }
.material-review-item summary { display: grid; grid-template-columns: 34px minmax(0,1fr) auto 18px; gap: 13px; align-items: center; min-height: 72px; cursor: pointer; list-style: none; }
.material-review-item summary::-webkit-details-marker { display: none; }
.material-review-item summary > svg { width: 15px; color: #879499; transition: transform .2s ease; }
.material-review-item[open] summary > svg { transform: rotate(180deg); }
.review-index { color: #98a4a9; font: 700 11px/1 Georgia, serif; }
.review-file { min-width: 0; }
.review-file small, .review-file strong { display: block; }
.review-file small { margin-bottom: 4px; color: var(--muted); font-size: 9px; }
.review-file strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.material-review-item summary em { min-width: 72px; padding: 5px 7px; font-size: 9px; font-style: normal; font-weight: 700; text-align: center; }
.material-review-item.revise summary em { color: #7b5c26; background: var(--gold-soft); }
.material-review-item.rewrite summary em { color: #9f4234; background: #fbeae6; }
.material-review-item.approved summary em { color: var(--teal); background: var(--teal-soft); }
.material-review-detail { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; margin: 0 0 17px 47px; padding: 15px 17px; border-left: 3px solid var(--gold); background: #fafbfb; }
.material-review-item.rewrite .material-review-detail { border-left-color: var(--coral); }
.material-review-detail span { color: var(--coral); font-size: 9px; font-weight: 800; }
.material-review-detail p { margin: 5px 0 0; color: #43545e; font-size: 10px; line-height: 1.7; }
.update-workspace { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 28px; }
.update-panel { min-width: 0; border: 1px solid var(--line); border-top: 3px solid var(--navy); background: #fff; }
.update-panel:nth-child(2) { border-top-color: var(--coral); }
.update-panel > header, .release-section > header { display: flex; align-items: end; justify-content: space-between; gap: 16px; padding: 20px 21px 16px; border-bottom: 1px solid var(--line); }
.update-panel h2, .release-section h2 { margin: 5px 0 0; color: var(--navy); font-size: 18px; }
.update-panel > header > small, .release-section > header > small { color: var(--muted); font-size: 10px; text-align: right; }
.update-source-list, .update-pending-list { min-height: 212px; padding: 0 20px; }
.update-source-item { display: grid; grid-template-columns: 9px minmax(0,1fr) auto; gap: 11px; align-items: center; min-height: 63px; border-bottom: 1px solid var(--line-soft); }
.source-status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 4px var(--teal-soft); }
.update-source-item strong, .update-source-item small { display: block; }
.update-source-item strong { font-size: 12px; }
.update-source-item small, .update-source-item time { color: var(--muted); font-size: 10px; }
.update-source-item small { margin-top: 3px; }
.update-source-item time { white-space: nowrap; }
.pending-file { display: grid; grid-template-columns: 39px minmax(0,1fr) auto; gap: 11px; align-items: center; min-height: 69px; border-bottom: 1px solid var(--line-soft); }
.pending-format { display: grid; place-items: center; width: 39px; height: 45px; color: #fff; background: var(--coral); font: 700 8px/1 Georgia, serif; }
.pending-file > div { min-width: 0; }
.pending-file strong, .pending-file small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pending-file strong { font-size: 11px; }
.pending-file small { margin-top: 5px; color: var(--muted); font-size: 9px; }
.pending-file em { padding: 4px 6px; color: #7b5c26; background: var(--gold-soft); font-size: 9px; font-style: normal; font-weight: 700; white-space: nowrap; }
.update-placeholder { display: grid; place-items: center; min-height: 210px; padding: 25px; color: var(--muted); font-size: 11px; line-height: 1.7; text-align: center; }
.update-empty { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 210px; color: var(--teal); }
.update-empty svg { width: 28px; }
.update-empty strong, .update-empty small { display: block; }
.update-empty strong { color: var(--navy); font-size: 13px; }
.update-empty small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.release-section { margin-top: 28px; border: 1px solid var(--line); border-top: 3px solid var(--gold); background: #fff; }
.release-list { padding: 0 23px; }
.release-item { display: grid; grid-template-columns: 125px minmax(0,1fr); gap: 28px; padding: 23px 0; border-bottom: 1px solid var(--line-soft); }
.release-item:last-child { border-bottom: 0; }
.release-version span, .release-version time { display: block; }
.release-version span { color: var(--navy); font: 700 16px/1.3 Georgia, serif; }
.release-version time { margin-top: 6px; color: var(--muted); font-size: 10px; }
.release-title-row { display: flex; align-items: center; gap: 9px; }
.release-title-row h3 { margin: 0; font-size: 15px; }
.release-title-row em { padding: 3px 6px; color: var(--teal); background: var(--teal-soft); font-size: 9px; font-style: normal; font-weight: 700; }
.release-item p { margin: 6px 0 10px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.release-item ul { display: grid; gap: 6px; margin: 0; padding-left: 18px; color: #43545e; font-size: 11px; line-height: 1.65; }
.release-item li::marker { color: var(--coral); }
.update-process { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 18px; border: 1px solid var(--line); background: #fff; }
.update-process > div { position: relative; min-height: 135px; padding: 21px 23px; border-right: 1px solid var(--line); }
.update-process > div:last-child { border-right: 0; }
.update-process span { color: var(--coral); font: 700 12px/1 Georgia, serif; }
.update-process strong { display: block; margin-top: 12px; color: var(--navy); font-size: 13px; }
.update-process p { margin: 6px 0 0; color: var(--muted); font-size: 11px; line-height: 1.75; }

@media (max-width: 1180px) {
  .resource-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .module-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .cover-stack { opacity: .7; }
  .band-stats { display: none; }
  .welcome-band { grid-template-columns: 1fr 260px; }
  .library-pillars { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .library-pillars button:nth-child(2) { border-right: 0; }
  .library-pillars button:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .strategy-strip { padding: 20px; }
  .strategy-strip small { display: none; }
  .locator-grid { grid-template-columns: 1fr 1fr; }
  .locator-group:nth-child(3) { grid-column: 1 / -1; border-top: 1px solid var(--line); border-left: 0; }
  .locator-need-options { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .update-status-strip { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .update-check-button { grid-column: 1 / -1; margin: 14px 18px; }
}

@media (max-width: 900px) {
  :root { --sidebar: 0px; }
  .sidebar { transform: translateX(-100%); width: 236px; transition: .22s ease; box-shadow: 12px 0 30px rgba(0,0,0,.15); }
  .sidebar.open { transform: none; }
  .topbar { height: 64px; padding: 0 18px; }
  .mobile-menu { display: grid; place-items: center; flex: 0 0 38px; height: 38px; }
  .global-search { width: auto; flex: 1; }
  .ask-quick { display: none; }
  main { padding: 25px 18px 86px; }
  .knowledge-layout { gap: 18px; }
  .community-layout { grid-template-columns: 1fr; }
  .community-aside { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .breakthrough-grid { grid-template-columns: 1fr; }
  .mobile-nav { position: fixed; right: 0; bottom: 0; left: 0; z-index: 60; display: grid; grid-template-columns: repeat(7,1fr); padding-bottom: env(safe-area-inset-bottom); border-top: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(14px); }
  .subject3-layout { grid-template-columns: 220px minmax(0,1fr); }
  .interview-flow { gap: 10px; overflow-x: auto; justify-content: flex-start; }
  .interview-flow > div { min-width: 145px; }
  .interview-workbench { grid-template-columns: 210px minmax(0,1fr); }
  .sheet-grid { grid-template-columns: minmax(0,1fr) 240px; }
  .knowledge-file-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .test-set-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .discipline-test-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .update-workspace { grid-template-columns: 1fr; }
  .mobile-nav button { display: grid; place-items: center; gap: 2px; height: 61px; padding: 7px 0 5px; border: 0; color: #77868e; background: transparent; font-size: 11px; }
  .mobile-nav svg { width: 18px; }
  .mobile-nav button.active { color: var(--navy); }
}

@media (hover: none) and (pointer: coarse) {
  .hero-level, .locator-option, .stage-tab, .level-tab, .interview-stage-tab, .interview-subject, .interview-tabs button, .filter-tab, .resource-actions button, .resource-actions a, .test-set-card .primary-button, .level-switch.compact .test-level-tab, .update-pulse, .update-check-button, .review-filter button { min-height: 44px; }
  .favorite-button, .modal-close { width: 44px; height: 44px; }
  .favorite-button { top: 5px; right: 3px; }
}

@media (max-width: 680px) {
  .topbar { gap: 8px; }
  .global-search kbd { display: none; }
  .global-search { height: 39px; }
  .login-button #loginButtonText { display: none; }
  main { padding-right: 14px; padding-left: 14px; }
  .site-legal { margin-top: 38px; padding-top: 16px; gap: 5px 10px; font-size: 11.5px; }
  .welcome-band { min-height: 328px; grid-template-columns: 1fr; align-items: start; padding: 27px 24px; }
  .welcome-copy h1 { max-width: 260px; font-size: 29px; line-height: 1.25; }
  .welcome-copy > p { max-width: 310px; font-size: 12px; }
  .hero-levels, .stage-switch { margin-top: 20px; }
  .hero-levels { display: flex; width: 100%; }
  .hero-level { min-width: 0; flex: 1; padding: 0 8px; }
  .stage-tab { min-width: 68px; padding: 0 11px; }
  .cover-stack { position: absolute; right: 5px; bottom: -5px; width: 230px; height: 125px; opacity: .72; }
  .cover-stack img { width: 82px; }
  .cover-stack img:nth-child(1) { right: 115px; bottom: -45px; }
  .cover-stack img:nth-child(2) { right: 57px; bottom: -34px; }
  .cover-stack img:nth-child(3) { right: 5px; bottom: -52px; }
  .exam-locator { margin-top: 14px; }
  .library-pillars { margin-top: 14px; }
  .library-pillars button { grid-template-columns: 28px minmax(0,1fr); min-height: 69px; padding: 11px 12px; }
  .library-pillars button > svg:first-child { width: 19px; }
  .library-pillars .pillar-arrow { display: none; }
  .library-pillars strong { font-size: 12px; }
  .library-pillars small { font-size: 9px; white-space: normal; }
  .update-pulse { grid-template-columns: 38px minmax(0,1fr) 14px; padding: 11px 12px; }
  .update-pulse-mark { width: 38px; height: 38px; }
  .update-pulse-version { display: none; }
  .update-pulse em { white-space: normal; }
  .locator-head { display: block; padding: 20px; }
  .locator-head h2 { font-size: 21px; }
  .locator-head p { margin-top: 8px; text-align: left; }
  .locator-grid { grid-template-columns: 1fr; }
  .locator-group { padding: 19px 20px 21px; }
  .locator-group + .locator-group, .locator-group:nth-child(3) { grid-column: auto; border-top: 1px solid var(--line); border-left: 0; }
  .locator-paper-options { grid-template-columns: 1fr; }
  .locator-paper-options .locator-option { min-height: 54px; text-align: center; }
  .locator-need-options { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .locator-action { align-items: stretch; flex-direction: column; padding: 16px 20px 20px; }
  .locator-action > div { align-items: flex-start; flex-direction: column; gap: 3px; }
  .locator-action strong { white-space: normal; }
  .locator-action .primary-button { width: 100%; }
  .module-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .module-card { min-height: 122px; padding: 17px 15px; }
  .module-card h3 { margin-top: 16px; }
  .resource-heading { margin-top: 38px; }
  .section-heading h2 { font-size: 18px; }
  .text-button { font-size: 12px; }
  .resource-toolbar { display: block; }
  .subject-tabs { gap: 19px; }
  .sort-control { display: none; }
  .resource-grid { grid-template-columns: 1fr; }
  .resource-card { grid-template-columns: 88px minmax(0,1fr); }
  .page-intro h1 { font-size: 29px; }
  .updates-hero { display: block; }
  .update-release-stamp { min-width: 0; margin: -8px 0 20px; }
  .update-status-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .update-status-strip > div:nth-child(2) { border-right: 0; }
  .update-status-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .update-review-note { grid-template-columns: 24px minmax(0,1fr); align-items: start; }
  .update-review-note > span { grid-column: 2; text-align: left; }
  .material-review-section > header { align-items: stretch; flex-direction: column; }
  .review-report-link { width: 100%; }
  .material-review-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .material-review-summary > div:nth-child(2) { border-right: 0; }
  .material-review-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .material-review-toolbar { align-items: stretch; flex-direction: column; }
  .review-filter { width: 100%; }
  .review-filter button { min-width: 0; flex: 1; padding: 0 7px; }
  .review-search { width: 100%; }
  .material-review-list { max-height: 560px; padding: 0 15px; }
  .material-review-item summary { grid-template-columns: minmax(0,1fr) auto 16px; min-height: 78px; }
  .review-index { display: none; }
  .review-file strong { white-space: normal; overflow-wrap: anywhere; }
  .material-review-detail { grid-template-columns: 1fr; gap: 13px; margin-left: 0; }
  .update-panel > header, .release-section > header { align-items: flex-start; }
  .update-panel > header > small, .release-section > header > small { display: none; }
  .release-item { grid-template-columns: 1fr; gap: 12px; }
  .release-version { display: flex; align-items: center; gap: 10px; }
  .release-version time { margin-top: 0; }
  .update-process { grid-template-columns: 1fr; }
  .update-process > div { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .update-process > div:last-child { border-bottom: 0; }
  .knowledge-layout { grid-template-columns: 1fr; }
  .knowledge-list { grid-template-columns: 1fr 1fr; }
  .subject3-hero { display: block; }
  .subject3-note { max-width: none; margin: -12px 0 20px; }
  .subject3-tip { display: none; }
  .subject3-layout { grid-template-columns: 1fr; }
  .discipline-list { display: flex; overflow-x: auto; border-top: 0; scrollbar-width: none; }
  .discipline-list::-webkit-scrollbar { display: none; }
  .discipline-item { min-width: 128px; grid-template-columns: 20px minmax(0,1fr); border-top: 1px solid var(--line); }
  .discipline-item small, .discipline-item svg { display: none; }
  .detail-header { padding: 22px 18px 17px; }
  .detail-tabs, .detail-block { padding-right: 18px; padding-left: 18px; }
  .detail-tabs { gap: 20px; overflow-x: auto; scrollbar-width: none; }
  .detail-tabs::-webkit-scrollbar { display: none; }
  .detail-footer { align-items: flex-start; margin-right: 18px; margin-left: 18px; }
  .detail-footer > span { display: none; }
  .interview-hero { display: block; }
  .interview-hero-note { width: 100%; margin: -8px 0 20px; }
  .interview-stage-switch { display: flex; width: 100%; }
  .interview-stage-tab { min-width: 0; flex: 1; padding: 0 9px; }
  .interview-flow { margin-top: 14px; padding: 16px; }
  .interview-workbench { grid-template-columns: 1fr; }
  .interview-subjects > header { padding: 17px 16px 13px; }
  #interviewSubjectList { display: flex; max-height: none; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
  #interviewSubjectList::-webkit-scrollbar { display: none; }
  .interview-subject { min-width: 148px; grid-template-columns: 22px minmax(0,1fr); border-right: 1px solid var(--line); border-bottom: 0; }
  .interview-subject svg { display: none; }
  .interview-detail-head { flex-direction: column; padding: 21px 19px 17px; }
  .interview-detail-head h2 { font-size: 24px; }
  .interview-head-actions { width: 100%; }
  .interview-head-actions .primary-button, .interview-head-actions .secondary-button { min-width: 0; flex: 1; }
  .interview-tabs { gap: 20px; padding: 0 19px; }
  .interview-reader { padding: 18px 19px 22px; }
  .interview-practice-box { margin: 18px 19px 0; padding: 17px; }
  .core-pills { grid-template-columns: 1fr; }
  .knowledge-modal-head { padding: 22px 20px 18px; }
  .knowledge-head-actions .secondary-button { width: 44px; padding: 0; font-size: 0; }
  .knowledge-head-actions { gap: 5px; }
  .version-tabs { gap: 18px; padding: 0 20px; }
  .knowledge-sheet { padding: 20px; }
  .sheet-grid { grid-template-columns: 1fr; }
  .sheet-aside { padding: 20px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .official-source-list { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .reader-page { min-height: 480px; padding: 27px 24px 30px; }
  .reader-page-number { top: 18px; right: 20px; font-size: 31px; }
  .reader-page h3 { max-width: 82%; font-size: 19px; }
  .reader-points { gap: 10px; font-size: 13px; }
  .discipline-detail > .paged-reader { margin: 18px 18px 0; }
  .discipline-detail > .content-integrity-note { margin: 14px 18px 0; }
  .discipline-detail > .content-source-note { margin: 9px 18px 15px; }
  .discipline-downloads { margin: 23px 18px 0; }
  .discipline-file-grid, .knowledge-file-grid { grid-template-columns: 1fr; }
  .discipline-official-sources .official-source-list { grid-template-columns: 1fr; }
  .discipline-downloads > header, .knowledge-downloads > header { align-items: flex-start; }
  .discipline-downloads > header > small, .knowledge-downloads > header > small { display: none; }
  .tests-hero { display: block; }
  .test-overview { margin: -8px 0 20px; }
  .test-controls { align-items: flex-start; }
  .test-set-grid, .discipline-test-grid { grid-template-columns: 1fr; }
  .quiz-backdrop { align-items: start; padding: 8px; }
  .quiz-modal { width: 100%; }
  .quiz-modal { max-height: calc(100dvh - 16px); }
  .quiz-head, .quiz-progress, .quiz-body, .quiz-footer { padding-right: 20px; padding-left: 20px; }
  .quiz-question { font-size: 14px; }
  .essay-answer-meta { display: grid; gap: 3px; }
  .essay-answer-meta span:last-child { text-align: left; }
  .quiz-feedback.essay-feedback { padding: 16px; }
  .essay-title-list, .essay-checklist { grid-template-columns: 1fr; }
  .essay-reference p, .essay-reference li, .essay-reference small { font-size: 12px; }
  .strategy-strip { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 10px; }
  .strategy-strip > svg { display: none; }
  .break-card { padding: 21px 18px 21px 122px; }
  .break-card img { width: 104px; }
  .community-head { align-items: center; }
  .community-head > button { width: 42px; min-width: 42px; padding: 0; }
  .community-head > button svg { margin: 0; }
  .community-head > button { font-size: 0; }
  .community-aside { grid-template-columns: 1fr; }
  .assistant-card { padding: 15px; }
  .question-card { padding: 18px 16px; }
  .login-modal, .ask-modal, .answer-modal { padding: 30px 22px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .preview-modal { height: calc(100vh - 28px); }
  .preview-modal footer .secondary-button { display: none; }
  .toast { right: 14px; bottom: 78px; left: 14px; justify-content: center; }
}

@media (max-width: 420px) {
  .interview-hero-note { grid-template-columns: auto 1fr auto 1fr; }
  .interview-hero-note i { display: none; }
  .interview-head-actions { display: grid; grid-template-columns: 1fr; }
  .interview-practice-box header { align-items: stretch; flex-direction: column; }
  .interview-practice-box header .secondary-button { width: 100%; }
  .official-source-list { grid-template-columns: 1fr; }
  .reader-toolbar { padding-left: 13px; }
  .reader-toolbar > div { display: grid; gap: 2px; }
  .reader-page { min-height: 500px; padding-right: 20px; padding-left: 20px; }
  .discipline-file { grid-template-columns: 38px minmax(0,1fr) auto; padding: 10px; }
  .file-format { width: 38px; height: 49px; }
  .discipline-file-actions button, .discipline-file-actions a { width: 40px; height: 40px; }
  .knowledge-list { grid-template-columns: 1fr; }
  .test-controls { display: block; }
  .test-controls > span { display: block; margin-top: 10px; }
  .test-section .section-heading { align-items: flex-start; }
  .quiz-footer { position: sticky; bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

@media print {
  @page { size: A4; margin: 14mm; }
  body.printing-knowledge { background: #fff; }
  body.printing-knowledge .app-shell, body.printing-knowledge .mobile-nav, body.printing-knowledge .toast { display: none !important; }
  body.printing-knowledge #knowledgeModal { position: static; display: block !important; padding: 0; background: #fff; }
  body.printing-knowledge .knowledge-modal { width: 100%; max-height: none; overflow: visible; box-shadow: none; }
  body.printing-knowledge .knowledge-modal-head { padding: 0 0 14px; }
  body.printing-knowledge .knowledge-head-actions, body.printing-knowledge .version-tabs { display: none; }
  body.printing-knowledge .knowledge-sheet { padding: 18px 0 0; }
  body.printing-knowledge .sheet-grid { grid-template-columns: 1fr 210px; }
  body.printing-knowledge .sheet-section, body.printing-knowledge .sheet-source { break-inside: avoid; }
  body.printing-knowledge .reader-toolbar, body.printing-knowledge .reader-dots { display: none; }
  body.printing-knowledge .paged-reader { border: 0; overflow: visible; }
  body.printing-knowledge .reader-track { display: block; overflow: visible; }
  body.printing-knowledge .reader-page { min-height: 0; padding: 10px 0 20px; break-inside: avoid; }
}
