:root {
  --v16-ink: #17251f;
  --v16-ink-2: #28463a;
  --v16-jade: #356a57;
  --v16-jade-soft: #e8f0eb;
  --v16-cinnabar: #a44738;
  --v16-cinnabar-dark: #85352b;
  --v16-gold: #b78a42;
  --v16-gold-soft: #f4ead3;
  --v16-paper: #f7f4ed;
  --v16-paper-2: #fbfaf6;
  --v16-card: rgba(255, 255, 252, .9);
  --v16-line: rgba(45, 65, 55, .12);
  --v16-muted: #6c776f;
  --v16-shadow: 0 18px 60px rgba(31, 42, 35, .08);
  --v16-shadow-hover: 0 20px 54px rgba(37, 55, 44, .14);
  --v16-radius: 20px;
}

/* v1.8 · 统一视觉识题与数学问答 */
#page-scan { max-width: 1480px; margin: 0 auto; }
#page-scan .solver-page-intro { min-height: auto; padding: 30px 34px; margin-bottom: 18px; }
#page-scan .solver-page-intro h1 { max-width: 760px; font-size: clamp(30px, 3.1vw, 48px); line-height: 1.18; margin: 7px 0 12px; }
.solver-intro-note { min-width: 300px; padding: 18px 22px; border-left: 3px solid #ae4b3e; border-radius: 0 16px 16px 0; background: linear-gradient(100deg, rgba(174,75,62,.08), rgba(183,143,62,.06)); display: grid; gap: 7px; }
.solver-intro-note b { color: #18392e; font-family: var(--serif, "STSong", serif); font-size: 18px; }
.solver-intro-note span { color: #778078; font-size: 12px; }
.solver-chat-shell { min-height: min(760px, calc(100vh - 230px)); border: 1px solid rgba(108,91,58,.18); border-radius: 26px; background: rgba(255,253,248,.96); box-shadow: 0 24px 70px rgba(51,55,43,.11); overflow: hidden; display: grid; grid-template-rows: auto minmax(420px, 1fr) auto; }
.solver-chat-head { min-height: 76px; padding: 13px 22px; display: flex; align-items: center; gap: 13px; border-bottom: 1px solid rgba(108,91,58,.12); background: rgba(252,249,242,.86); backdrop-filter: blur(18px); }
.solver-avatar, .solver-message-avatar { display: grid; place-items: center; flex: 0 0 auto; color: #fffaf1; background: linear-gradient(145deg, #a94438, #79352f); box-shadow: inset 0 0 0 1px rgba(255,255,255,.22), 0 8px 20px rgba(132,55,45,.16); }
.solver-avatar { width: 42px; height: 42px; border-radius: 14px; font: 700 18px/1 var(--serif, "STSong", serif); }
.solver-chat-head > div:nth-child(2) { display: grid; gap: 3px; min-width: 0; }
.solver-chat-head b { color: #1e342b; font-size: 15px; }
.solver-chat-head span { color: #858b84; font-size: 11px; }
.solver-chat-head .capability-badge { margin-left: auto; }
.solver-new-chat { min-height: 38px; padding: 0 15px; border: 1px solid rgba(125,94,53,.22); border-radius: 12px; color: #70483c; background: #fffdf8; font-weight: 700; cursor: pointer; transition: .2s ease; }
.solver-new-chat:hover { border-color: #a94438; color: #a33f34; transform: translateY(-1px); }
.solver-chat-thread { min-height: 0; overflow-y: auto; padding: 34px clamp(20px, 5vw, 80px); scroll-behavior: smooth; }
.solver-welcome { max-width: 820px; margin: 28px auto; text-align: center; }
.solver-welcome-seal { width: 62px; height: 62px; margin: 0 auto 18px; border: 1px solid rgba(169,68,56,.2); border-radius: 20px; display: grid; place-items: center; color: #a94438; background: linear-gradient(145deg, #fffaf1, #f5eadb); box-shadow: 0 12px 30px rgba(117,72,49,.12); font: 700 30px/1 Georgia, serif; }
.solver-welcome h2 { color: #1c3229; font: 600 clamp(25px, 2.4vw, 36px)/1.25 var(--serif, "STSong", serif); margin: 0 0 10px; }
.solver-welcome > p { max-width: 650px; margin: 0 auto 28px; color: #788078; line-height: 1.8; }
.solver-prompt-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; text-align: left; }
.solver-prompt-grid button { min-height: 86px; padding: 17px 19px; border: 1px solid rgba(112,91,58,.16); border-radius: 17px; background: #fffefa; display: grid; align-content: center; gap: 6px; cursor: pointer; transition: .22s ease; }
.solver-prompt-grid button:hover { border-color: rgba(169,68,56,.42); background: #fffaf3; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(77,61,43,.08); }
.solver-prompt-grid b { color: #30483d; font-size: 14px; }
.solver-prompt-grid span { color: #90938d; font-size: 11px; }
.solver-message { max-width: 980px; margin: 0 auto 28px; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 13px; align-items: start; }
.solver-message.user { max-width: 880px; grid-template-columns: minmax(0, 1fr) 38px; }
.solver-message.user .solver-message-avatar { grid-column: 2; }
.solver-message.user .solver-message-body { grid-column: 1; grid-row: 1; justify-self: end; background: #f0e8dc; border-color: rgba(137,86,63,.13); border-bottom-right-radius: 6px; }
.solver-message-avatar { width: 38px; height: 38px; border-radius: 13px; font-size: 13px; }
.solver-message.user .solver-message-avatar { color: #315244; background: #e3ece5; box-shadow: inset 0 0 0 1px rgba(45,91,72,.1); }
.solver-message-body { min-width: 0; padding: 16px 18px; border: 1px solid rgba(102,87,62,.12); border-radius: 6px 18px 18px 18px; color: #2d3b34; background: #fffefa; line-height: 1.8; box-shadow: 0 8px 22px rgba(74,65,49,.05); }
.solver-message-body h3, .solver-message-body h4 { color: #7e3931; margin: 18px 0 8px; }
.solver-message-body p { margin: 7px 0; white-space: pre-wrap; }
.solver-message-body ul, .solver-message-body ol { padding-left: 22px; }
.solver-message.error .solver-message-body { border-color: rgba(169,68,56,.28); background: #fff8f4; color: #86453c; }
.solver-message-images { display: flex; gap: 9px; flex-wrap: wrap; margin-bottom: 12px; }
.solver-message-images img { width: 126px; height: 94px; object-fit: cover; border-radius: 12px; border: 1px solid rgba(89,76,55,.14); }
.solver-message-actions { display: flex; gap: 8px; padding-top: 12px; margin-top: 14px; border-top: 1px solid rgba(102,87,62,.1); }
.solver-message-actions button { border: 0; border-radius: 9px; padding: 7px 10px; color: #69756f; background: #f4f2eb; cursor: pointer; font-size: 11px; }
.solver-message-actions button:hover { color: #943e34; background: #f5e8df; }
.solver-thinking { display: flex; align-items: center; gap: 5px; color: #7e877e; }
.solver-thinking span { width: 7px; height: 7px; border-radius: 50%; background: #a94438; animation: solver-pulse 1.2s infinite ease-in-out; }
.solver-thinking span:nth-child(2) { animation-delay: .14s; }.solver-thinking span:nth-child(3) { animation-delay: .28s; }
.solver-thinking p { margin-left: 7px; }
@keyframes solver-pulse { 0%,80%,100% { opacity: .25; transform: scale(.75); } 40% { opacity: 1; transform: scale(1); } }
.solver-composer-wrap { position: relative; margin: 0 clamp(14px, 4vw, 62px) 24px; padding: 10px; border: 1px solid rgba(92,79,58,.2); border-radius: 21px; background: #fffefa; box-shadow: 0 15px 40px rgba(50,53,43,.1); transition: .2s ease; }
.solver-composer-wrap:focus-within { border-color: rgba(169,68,56,.5); box-shadow: 0 16px 42px rgba(105,55,43,.13), 0 0 0 3px rgba(169,68,56,.06); }
.solver-composer-wrap.dragging { border-color: #a94438; background: #fff8ef; }
.solver-attachment-strip { display: none; gap: 9px; padding: 2px 2px 9px; overflow-x: auto; }
.solver-attachment-strip.has-images { display: flex; }
.solver-attachment { width: 94px; flex: 0 0 94px; position: relative; border-radius: 12px; overflow: hidden; border: 1px solid rgba(101,82,55,.15); background: #f5f1e8; }
.solver-attachment img { width: 94px; height: 72px; display: block; object-fit: cover; }
.solver-attachment > span { position: absolute; left: 5px; top: 5px; width: 18px; height: 18px; display: grid; place-items: center; border-radius: 7px; color: #fff; background: rgba(33,48,41,.76); font-size: 9px; }
.solver-attachment > div { position: absolute; inset: auto 3px 3px; display: flex; justify-content: space-between; }
.solver-attachment button { border: 0; border-radius: 7px; padding: 4px 6px; color: #fff; background: rgba(54,49,41,.76); cursor: pointer; font-size: 9px; }
.solver-composer { display: grid; grid-template-columns: 42px minmax(0,1fr) 42px 46px; gap: 7px; align-items: end; }
.solver-composer textarea { width: 100%; min-height: 42px; max-height: 180px; padding: 10px 8px 7px; border: 0; outline: 0; resize: none; color: #273a31; background: transparent; font: inherit; line-height: 1.55; }
.solver-tool-button, .solver-camera-button, .solver-send-button { width: 42px; height: 42px; border: 0; border-radius: 13px; cursor: pointer; font-weight: 800; transition: .18s ease; }
.solver-tool-button, .solver-camera-button { color: #496257; background: #eff2eb; font-size: 21px; }
.solver-camera-button { font-size: 12px; }
.solver-tool-button:hover, .solver-camera-button:hover { color: #963f35; background: #f5e8df; }
.solver-send-button { width: 46px; color: #fffaf2; background: linear-gradient(145deg, #ad493c, #84372f); box-shadow: 0 8px 18px rgba(142,56,47,.2); font-size: 20px; }
.solver-send-button:hover { transform: translateY(-1px); }.solver-send-button:disabled { opacity: .45; cursor: wait; }
.solver-composer-meta { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 7px 5px 0 50px; color: #95988f; font-size: 10px; }
.solver-composer-meta label { display: flex; gap: 6px; align-items: center; }
.solver-composer-meta select { max-width: 168px; border: 0; outline: 0; color: #6b746e; background: transparent; font-size: 10px; }
@media (max-width: 760px) {
  #page-scan .solver-page-intro { padding: 23px 20px; }.solver-intro-note { display: none; }
  .solver-chat-shell { min-height: calc(100vh - 150px); border-radius: 18px; }.solver-chat-head { padding: 10px 12px; }
  .solver-chat-head .capability-badge { display: none; }.solver-new-chat { padding: 0 10px; }
  .solver-chat-thread { padding: 25px 12px; }.solver-prompt-grid { grid-template-columns: 1fr; }
  .solver-message { grid-template-columns: 32px minmax(0,1fr); gap: 8px; }.solver-message.user { grid-template-columns: minmax(0,1fr) 32px; }
  .solver-message-avatar { width: 32px; height: 32px; border-radius: 10px; }.solver-message-body { padding: 13px 14px; }
  .solver-composer-wrap { margin: 0 8px 10px; }.solver-composer { grid-template-columns: 38px minmax(0,1fr) 40px; }
  .solver-camera-button { display: none; }.solver-tool-button, .solver-send-button { width: 38px; height: 38px; }
  .solver-composer-meta { padding-left: 42px; }.solver-composer-meta > span { display: none; }
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  color: var(--v16-ink);
  background:
    radial-gradient(circle at 86% 4%, rgba(183, 138, 66, .09), transparent 28rem),
    radial-gradient(circle at 18% 36%, rgba(53, 106, 87, .07), transparent 32rem),
    var(--v16-paper);
  font-family: "Microsoft YaHei UI", "PingFang SC", "Noto Sans CJK SC", sans-serif;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .22;
  background-image: linear-gradient(rgba(24, 38, 31, .03) 1px, transparent 1px), linear-gradient(90deg, rgba(24, 38, 31, .03) 1px, transparent 1px);
  background-size: 32px 32px;
  mask-image: linear-gradient(to bottom, black, transparent 70%);
}

button, input, textarea, select { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }

.app-header.suite-header {
  height: 70px;
  min-height: 70px;
  border: 0;
  background: rgba(247, 244, 237, .88);
  backdrop-filter: blur(18px) saturate(125%);
  box-shadow: 0 1px 0 var(--v16-line);
}

.suite-header-inner {
  width: 100%;
  max-width: none;
  height: 70px;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 38px 196px minmax(260px, 1fr) auto auto auto !important;
  grid-template-rows: 70px !important;
  gap: 14px;
  align-items: center;
}
.suite-header-inner > * { grid-row: 1 !important; min-width: 0; }
#sidebar-toggle { grid-column: 1 !important; }
.suite-header-inner > .brand { grid-column: 2 !important; width: auto !important; max-width: 196px; }
.suite-header-inner > .header-search { grid-column: 3 !important; width: auto !important; }
.suite-header-inner > .math-domain-ribbon { grid-column: 4 !important; }
.suite-header-inner > .header-status { grid-column: 5 !important; width: auto !important; min-width: 108px; }
.suite-header-inner > .tour-button { grid-column: 6 !important; width: auto !important; }

.header-icon-button {
  width: 38px;
  height: 38px;
  display: grid;
  place-content: center;
  gap: 4px;
  border: 1px solid var(--v16-line);
  border-radius: 12px;
  background: rgba(255,255,255,.65);
  cursor: pointer;
  transition: .2s ease;
}
.header-icon-button span { width: 16px; height: 1.5px; border-radius: 2px; background: var(--v16-ink); transition: .2s ease; }
.header-icon-button:hover { border-color: rgba(164,71,56,.35); transform: translateY(-1px); }

.brand {
  min-width: 0;
  padding: 0;
  gap: 10px;
  color: var(--v16-ink);
}
.brand-mark {
  width: 38px;
  height: 42px;
  border-radius: 11px 11px 14px 14px;
  border: 1px solid rgba(255,255,255,.36);
  background: linear-gradient(145deg, #b75645, #8f382e);
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.09), 0 8px 20px rgba(133,53,43,.18);
  font-family: "STKaiti", "KaiTi", serif;
}
.brand > span:last-child { min-width: 0; text-align: left; }
.brand b { font-size: 17px; letter-spacing: .08em; white-space: nowrap; }
.brand small { margin-top: 2px; color: var(--v16-muted); font-size: 10px; white-space: nowrap; }

.header-search {
  height: 42px;
  min-width: 0;
  border: 1px solid rgba(46, 79, 64, .16);
  border-radius: 14px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 6px 18px rgba(43,63,52,.04);
  transition: .2s ease;
}
.header-search:focus-within { border-color: rgba(53,106,87,.48); box-shadow: 0 0 0 4px rgba(53,106,87,.08); }
.header-search > span { color: var(--v16-gold); font-family: "STKaiti", serif; }
.header-search input { color: var(--v16-ink); background: transparent; }
.header-search input::placeholder { color: #9ba29d; }
.header-search kbd { color: #8b938e; background: #f1efe9; border-color: var(--v16-line); }

.math-domain-ribbon {
  height: 38px;
  padding: 0 13px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(183,138,66,.2);
  border-radius: 12px;
  color: #6f5b31;
  background: rgba(244,234,211,.58);
  font-size: 11px;
  white-space: nowrap;
}
.math-domain-ribbon span { padding: 3px 6px; border-radius: 7px; color: white; background: var(--v16-cinnabar); font-weight: 700; }

.header-status { gap: 8px; }
.header-status .storage-state { display: none !important; }
.header-status .ai-state { min-width: 108px; justify-content: center; }
.header-status .ai-state span { display: inline !important; color: var(--v16-jade) !important; font-size: 11px !important; white-space: nowrap; }
.header-status .ai-state i { display: block !important; width: 7px !important; height: 7px !important; flex: 0 0 7px; }
.storage-state, .ai-state {
  height: 36px;
  border: 1px solid var(--v16-line);
  border-radius: 11px;
  color: var(--v16-muted);
  background: rgba(255,255,255,.62);
}
.storage-state i, .ai-state i { background: var(--v16-jade); }

.tour-button {
  height: 38px;
  padding: 0 16px;
  border: 1px solid rgba(164,71,56,.18);
  border-radius: 12px;
  color: var(--v16-cinnabar);
  background: rgba(255,255,255,.62);
  font-weight: 700;
  cursor: pointer;
  transition: .2s ease;
}
.tour-button:hover { color: #fff; background: var(--v16-cinnabar); transform: translateY(-1px); }

.suite-shell { min-height: calc(100vh - 70px); padding-top: 70px; }

.suite-sidebar {
  top: 70px;
  width: 248px;
  height: calc(100vh - 70px);
  padding: 20px 14px;
  border: 0;
  border-right: 1px solid var(--v16-line);
  background: rgba(250,248,243,.82);
  backdrop-filter: blur(16px);
  overflow-y: auto;
  transition: width .24s ease, transform .24s ease;
}
.sidebar-caption { padding: 0 12px 10px; color: #9a7650; font-size: 10px; letter-spacing: .2em; }
.suite-nav { gap: 5px; }
.nav-button {
  min-height: 58px;
  padding: 9px 10px;
  border: 1px solid transparent;
  border-radius: 15px;
  color: #4e5d55;
  background: transparent;
  transition: .18s ease;
}
.nav-button:hover { border-color: var(--v16-line); background: rgba(255,255,255,.62); transform: translateX(2px); }
.nav-button.active {
  color: var(--v16-ink);
  border-color: rgba(164,71,56,.17);
  background: linear-gradient(100deg, rgba(164,71,56,.1), rgba(255,255,255,.78));
  box-shadow: none;
}
.nav-button > span {
  width: 34px;
  height: 34px;
  border: 1px solid rgba(53,106,87,.13);
  border-radius: 11px;
  color: var(--v16-jade);
  background: var(--v16-jade-soft);
  font-family: "STKaiti", "KaiTi", serif;
}
.nav-button.active > span { color: #fff; border-color: transparent; background: var(--v16-cinnabar); }
.nav-button b { font-size: 13px; }
.nav-button small { color: #8b948e; font-size: 10px; }
.sidebar-progress, .sidebar-boundary { border-color: var(--v16-line); border-radius: 16px; background: rgba(255,255,255,.55); }

.suite-main {
  margin-left: 248px;
  width: calc(100% - 248px);
  padding: 28px clamp(22px, 3vw, 48px) 64px;
  transition: margin .24s ease, width .24s ease;
}

body.nav-collapsed .suite-sidebar { width: 78px; padding-inline: 10px; }
body.nav-collapsed .suite-main { margin-left: 78px; width: calc(100% - 78px); }
body.nav-collapsed .sidebar-caption, body.nav-collapsed .nav-button b, body.nav-collapsed .nav-button small,
body.nav-collapsed .sidebar-progress, body.nav-collapsed .sidebar-boundary { display: none; }
body.nav-collapsed .nav-button { padding: 9px; justify-content: center; }
body.nav-collapsed .nav-button > span { margin: 0; }

.page { max-width: 1600px; margin: 0 auto; }

.page-intro.suite-intro {
  min-height: 170px;
  margin-bottom: 18px;
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid rgba(58,77,67,.1);
  border-radius: 26px;
  background:
    linear-gradient(120deg, rgba(255,255,252,.96), rgba(248,245,237,.82)),
    var(--v16-card);
  box-shadow: var(--v16-shadow);
  overflow: hidden;
}
.page-intro.suite-intro::after {
  content: "";
  position: absolute;
  right: -70px;
  top: -100px;
  width: 260px;
  height: 260px;
  border: 1px solid rgba(183,138,66,.16);
  border-radius: 50%;
  box-shadow: inset 0 0 0 34px rgba(183,138,66,.025), inset 0 0 0 68px rgba(53,106,87,.025);
  pointer-events: none;
}
.eyebrow { color: var(--v16-cinnabar); letter-spacing: .16em; font-weight: 800; }
.page-intro h1 { max-width: 900px; margin-top: 8px; color: var(--v16-ink); font-family: "STSong", "Songti SC", serif; font-size: clamp(28px, 3.2vw, 48px); line-height: 1.18; font-weight: 700; letter-spacing: -.02em; }
.page-intro p { max-width: 920px; margin-top: 13px; color: var(--v16-muted); line-height: 1.8; }
.intro-stat-grid article { border-color: var(--v16-line); border-radius: 15px; background: rgba(255,255,255,.7); }
.intro-stat-grid b { color: var(--v16-cinnabar); }

.simple-card {
  border: 1px solid var(--v16-line);
  border-radius: var(--v16-radius);
  background: var(--v16-card);
  box-shadow: 0 12px 38px rgba(31,42,35,.055);
  backdrop-filter: blur(8px);
}
.simple-card:hover { border-color: rgba(53,106,87,.17); }
.card-title span { color: var(--v16-cinnabar); }
.card-title h2 { color: var(--v16-ink); }

.primary-button {
  border: 1px solid transparent;
  border-radius: 12px;
  color: white;
  background: linear-gradient(135deg, var(--v16-cinnabar), var(--v16-cinnabar-dark));
  box-shadow: 0 8px 20px rgba(133,53,43,.16);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.primary-button:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(133,53,43,.24); filter: saturate(1.05); }
.primary-button:active { transform: translateY(0); }
.secondary-button {
  border: 1px solid rgba(49,80,65,.16);
  border-radius: 12px;
  color: var(--v16-ink-2);
  background: rgba(255,255,255,.76);
  box-shadow: none;
  transition: .18s ease;
}
.secondary-button:hover { border-color: rgba(53,106,87,.34); color: var(--v16-jade); background: #fff; transform: translateY(-1px); }
.text-button { color: var(--v16-cinnabar); }

.field input, .field textarea, .field select, .filter-toolbar input, .filter-toolbar select,
.knowledge-search-card input, .header-search input {
  border-color: rgba(45,65,55,.14);
  border-radius: 12px;
  color: var(--v16-ink);
  background: rgba(255,255,255,.78);
}
.field input:focus, .field textarea:focus, .field select:focus, .filter-toolbar input:focus,
.knowledge-search-card input:focus { border-color: rgba(53,106,87,.46); box-shadow: 0 0 0 4px rgba(53,106,87,.07); outline: 0; }

.math-guard-strip { margin-bottom: 18px; border-color: var(--v16-line); border-radius: 18px; background: rgba(255,255,255,.58); }
.math-guard-strip article { border-color: var(--v16-line); }
.math-guard-strip b { color: var(--v16-jade); }

.scan-layout { gap: 18px; }
.input-mode-grid { gap: 9px; }
.input-mode {
  border: 1px solid var(--v16-line);
  border-radius: 14px;
  background: rgba(250,249,245,.8);
  transition: .18s ease;
}
.input-mode:hover, .input-mode.active { border-color: rgba(164,71,56,.25); background: rgba(164,71,56,.055); transform: translateY(-2px); }
.input-mode > span { color: var(--v16-cinnabar); background: rgba(164,71,56,.08); }
.image-dropzone { border: 1px dashed rgba(53,106,87,.3); border-radius: 17px; background: rgba(232,240,235,.38); transition: .2s ease; }
.image-dropzone:hover, .image-dropzone.dragging { border-color: var(--v16-jade); background: rgba(232,240,235,.75); }
.drop-seal { color: var(--v16-jade); background: #fff; box-shadow: 0 8px 24px rgba(53,106,87,.12); }
.capability-badge.ready { color: var(--v16-jade); border-color: rgba(53,106,87,.2); background: var(--v16-jade-soft); }
.confidence.high { color: var(--v16-jade); background: var(--v16-jade-soft); }

.suite-metrics article, .curriculum-stat, .resource-library-note > div {
  border-color: var(--v16-line);
  border-radius: 16px;
  background: rgba(255,255,255,.68);
  box-shadow: none;
}
.curriculum-stat b, .resource-library-note b { color: var(--v16-ink); }

.resource-catalog-overview {
  margin: 14px 0 18px;
  border: 1px solid var(--v16-line);
  border-radius: 20px;
  background: rgba(255,255,255,.68);
  box-shadow: 0 12px 38px rgba(31,42,35,.045);
  overflow: hidden;
}
.resource-catalog-overview summary {
  min-height: 62px;
  padding: 14px 20px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 14px;
  align-items: center;
  cursor: pointer;
  list-style: none;
}
.resource-catalog-overview summary::-webkit-details-marker { display: none; }
.resource-catalog-overview summary span { color: var(--v16-cinnabar); font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.resource-catalog-overview summary b { font-size: 14px; }
.resource-catalog-overview summary i { color: var(--v16-muted); font-style: normal; transition: .2s ease; }
.resource-catalog-overview[open] summary i { transform: rotate(180deg); }
.catalog-overview-grid { padding: 0 16px 16px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.catalog-overview-grid article { min-height: 108px; padding: 15px; display: grid; grid-template-columns: 34px 1fr; gap: 5px 10px; border: 1px solid var(--v16-line); border-radius: 15px; background: var(--v16-paper-2); transition: .18s ease; }
.catalog-overview-grid article:hover { transform: translateY(-2px); border-color: rgba(53,106,87,.28); box-shadow: 0 10px 25px rgba(34,52,42,.07); }
.catalog-overview-grid article > span { grid-row: 1 / 3; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: var(--v16-jade); background: var(--v16-jade-soft); font-family: "STKaiti", serif; }
.catalog-overview-grid article b { align-self: end; font-size: 14px; }
.catalog-overview-grid article small { color: var(--v16-muted); line-height: 1.55; }
.catalog-overview-grid .catalog-highlight { border-color: rgba(164,71,56,.16); background: linear-gradient(135deg, rgba(164,71,56,.07), rgba(244,234,211,.5)); }
.catalog-overview-grid .catalog-highlight > span { color: #fff; background: var(--v16-cinnabar); }

.knowledge-layout { gap: 14px; grid-template-columns: minmax(210px, .75fr) minmax(420px, 1.65fr) minmax(280px, 1fr); }
.folder-tree-card, .knowledge-content-card, .deep-dive-card { min-width: 0; }
.folder-node, .knowledge-entry { border-color: var(--v16-line); border-radius: 13px; }
.folder-node:hover, .knowledge-entry:hover { border-color: rgba(53,106,87,.28); background: rgba(232,240,235,.45); }
.knowledge-entry h3 { color: var(--v16-ink); }
.resource-featured { color: #7c5d26; background: var(--v16-gold-soft); }

.resource-outline {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
  list-style: none;
  counter-reset: resource-outline;
}
.resource-outline li { padding: 10px 12px 10px 42px; position: relative; border-radius: 11px; color: #46564d; background: rgba(232,240,235,.48); line-height: 1.55; }
.resource-outline li::before { counter-increment: resource-outline; content: counter(resource-outline, decimal-leading-zero); position: absolute; left: 12px; top: 10px; color: var(--v16-cinnabar); font-size: 10px; font-weight: 800; }

.math-tool-tabs, .map-toolbar, .knowledge-cloud-strip { border-color: var(--v16-line); border-radius: 16px; background: rgba(255,255,255,.66); }
.math-tool-tabs button.active { color: #fff; background: var(--v16-jade); }
.paper-clock { border-color: rgba(183,138,66,.2); background: var(--v16-gold-soft); }

/* v1.7 interactive knowledge graph */
.layout-v15 .suite-main { max-width: none; }
#page-mindmap { max-width: 1780px; }
#page-mindmap .page-intro { min-height: 152px; }
#page-mindmap .map-toolbar {
  padding: 16px;
  display: grid;
  grid-template-columns: 180px 180px minmax(230px, 1fr) auto auto;
  gap: 12px;
  align-items: end;
  box-shadow: 0 10px 28px rgba(37, 54, 44, .06);
}
#page-mindmap .map-toolbar .compact-field { width: auto; }
.map-search-field { min-width: 0; }
.map-search-field input { width: 100%; }
.map-toolbar .toolbar-note { grid-column: 1 / -1; padding: 2px 2px 0; color: #7d877f; font-size: 11px; }
#page-mindmap .map-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; align-items: start; }
.map-canvas-card {
  min-height: 760px;
  padding: 0;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(54, 83, 68, .13);
  background: #f8f4ea;
  box-shadow: 0 22px 56px rgba(35, 48, 40, .10);
}
.map-canvas-header {
  min-height: 66px;
  padding: 12px 15px 12px 20px;
  position: relative;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid rgba(54, 83, 68, .11);
  background: rgba(255, 253, 247, .92);
  backdrop-filter: blur(14px);
}
.map-canvas-header > div:first-child { display: grid; gap: 3px; }
.map-canvas-header span { color: var(--v16-cinnabar); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.map-canvas-header b { color: var(--v16-ink); font-size: 15px; }
.map-view-actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.map-view-actions button {
  min-width: 38px;
  height: 36px;
  padding: 0 12px;
  border: 1px solid rgba(52, 83, 67, .15);
  border-radius: 11px;
  color: var(--v16-jade);
  background: rgba(235, 241, 236, .72);
  font-size: 12px;
  font-weight: 750;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.map-view-actions button:hover { transform: translateY(-1px); border-color: rgba(166, 69, 55, .26); color: var(--v16-cinnabar); background: rgba(247, 231, 225, .75); }
.map-view-actions button:focus-visible { outline: 3px solid rgba(183, 138, 66, .25); outline-offset: 2px; }
.map-canvas-viewport {
  height: clamp(680px, calc(100vh - 250px), 940px);
  min-height: 680px;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 14% 20%, rgba(178, 139, 70, .13), transparent 25%),
    radial-gradient(circle at 84% 72%, rgba(53, 106, 87, .10), transparent 29%),
    linear-gradient(rgba(58, 83, 69, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(58, 83, 69, .035) 1px, transparent 1px),
    #fbf8f0;
  background-size: auto, auto, 28px 28px, 28px 28px, auto;
}
.map-canvas-viewport::before { content: ""; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 90px rgba(69, 88, 74, .06); }
#knowledge-map {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  border-radius: 0;
  background: transparent !important;
  cursor: grab;
  touch-action: none;
}
#knowledge-map:active { cursor: grabbing; }
#knowledge-map:focus-visible { outline: 3px solid rgba(183, 138, 66, .34); outline-offset: -4px; }
.map-canvas-card .canvas-legend { right: 18px; bottom: 17px; z-index: 6; gap: 10px; padding: 9px 12px; border-color: rgba(59, 84, 70, .13); background: rgba(255, 253, 247, .9); }
.canvas-legend .legend-course { background: #b28b46; }
.canvas-legend .legend-chapter { background: #728f7d; }
.map-interaction-tip {
  position: absolute;
  left: 18px;
  bottom: 17px;
  z-index: 6;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px;
  padding: 9px 12px;
  border: 1px solid rgba(59, 84, 70, .12);
  border-radius: 999px;
  color: #778179;
  background: rgba(255, 253, 247, .9);
  backdrop-filter: blur(10px);
  font-size: 10px;
}
.map-interaction-tip b { color: var(--v16-cinnabar); }
.map-interaction-tip span + span::before { content: "·"; margin-right: 9px; color: #b8afa0; }
#page-mindmap .map-detail-card { min-height: 760px; max-height: calc(100vh - 188px); position: sticky; top: 88px; overflow: auto; border-color: rgba(54, 83, 68, .13); box-shadow: 0 18px 44px rgba(35, 48, 40, .08); }
.map-node-detail .map-detail-kind { display: inline-flex; padding: 5px 9px; border-radius: 999px; color: var(--v16-jade); background: var(--v16-jade-soft); font-size: 10px; font-weight: 800; }
.map-node-detail h3 { margin: 12px 0 8px; font-family: "STSong", "Songti SC", serif; font-size: 27px; color: var(--v16-ink); }
.map-node-detail > p { color: var(--v16-muted); line-height: 1.75; }
.map-node-metrics { margin: 16px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.map-node-metrics div { padding: 12px; border-radius: 13px; background: rgba(235, 241, 236, .64); }
.map-node-metrics b { display: block; color: var(--v16-ink); font-size: 18px; }
.map-node-metrics span { color: var(--v16-muted); font-size: 10px; }
.map-toggle-children { margin-top: 12px; }
.map-canvas-card:fullscreen { width: 100vw; height: 100vh; border-radius: 0; background: #f8f4ea; }
.map-canvas-card:fullscreen .map-canvas-viewport { height: calc(100vh - 66px); max-height: none; }

@media (max-width: 1180px) {
  #page-mindmap .map-layout { grid-template-columns: 1fr; }
  #page-mindmap .map-detail-card { min-height: 0; max-height: none; position: static; }
}

.modal-backdrop { background: rgba(18,30,24,.56); backdrop-filter: blur(8px); }
.modal-card { border: 1px solid rgba(255,255,255,.2); border-radius: 22px; background: var(--v16-paper-2); box-shadow: 0 30px 90px rgba(18,30,24,.24); }
.modal-head { border-color: var(--v16-line); }
.toast { border-radius: 13px; color: white; background: var(--v16-ink-2); box-shadow: 0 14px 36px rgba(20,34,27,.2); }

.product-tour[hidden] { display: none; }
.product-tour { position: fixed; inset: 0; z-index: 5000; display: grid; place-items: center; padding: 24px; }
.tour-mask { position: absolute; inset: 0; background: rgba(17,31,24,.58); backdrop-filter: blur(7px); }
.tour-panel { width: min(460px, calc(100vw - 34px)); padding: 28px; position: relative; border: 1px solid rgba(255,255,255,.26); border-radius: 24px; background: var(--v16-paper-2); box-shadow: 0 30px 90px rgba(12,24,18,.28); }
.tour-step { color: var(--v16-cinnabar); font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.tour-panel h2 { margin: 9px 0 8px; font-family: "STSong", serif; font-size: 28px; }
.tour-panel p { min-height: 76px; color: var(--v16-muted); line-height: 1.75; }
.tour-progress { height: 4px; margin: 20px 0; border-radius: 4px; background: #e8e4da; overflow: hidden; }
.tour-progress i { display: block; width: 25%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--v16-cinnabar), var(--v16-gold)); transition: width .24s ease; }
.tour-panel > div:last-child { display: flex; justify-content: space-between; align-items: center; }

@media (max-width: 1260px) {
  .suite-header-inner { grid-template-columns: 38px 185px minmax(220px,1fr) auto auto !important; }
  .math-domain-ribbon { display: none; }
  .suite-header-inner > .header-status { grid-column: 4 !important; }
  .suite-header-inner > .tour-button { grid-column: 5 !important; }
  .knowledge-layout { grid-template-columns: 220px 1fr; }
  .deep-dive-card { grid-column: 1 / -1; }
}

@media (max-width: 920px) {
  .suite-header-inner { padding: 0 14px; grid-template-columns: 38px 1fr auto !important; grid-template-rows: 70px !important; }
  .suite-header-inner > .brand { grid-column: 2 !important; max-width: none; }
  .suite-header-inner > .header-status { grid-column: 3 !important; }
  .brand { width: auto; }
  .brand small, .header-status, .tour-button { display: none; }
  .header-search { grid-column: 1 / -1; position: fixed; left: 12px; right: 12px; top: 78px; z-index: 90; box-shadow: 0 12px 34px rgba(30,45,36,.14); }
  .suite-shell { padding-top: 118px; }
  .suite-sidebar { top: 118px; height: calc(100vh - 118px); transform: translateX(-100%); width: 250px; z-index: 110; box-shadow: 18px 0 50px rgba(20,35,27,.16); }
  .suite-main, body.nav-collapsed .suite-main { margin-left: 0; width: 100%; padding: 18px 14px 48px; }
  body.mobile-nav-open .suite-sidebar { transform: translateX(0); }
  body.nav-collapsed .suite-sidebar { width: 250px; padding: 20px 14px; }
  body.nav-collapsed .sidebar-caption, body.nav-collapsed .nav-button b, body.nav-collapsed .nav-button small,
  body.nav-collapsed .sidebar-progress, body.nav-collapsed .sidebar-boundary { display: initial; }
  body.nav-collapsed .nav-button { padding: 9px 10px; justify-content: initial; }
  .catalog-overview-grid { grid-template-columns: 1fr 1fr; }
  .scan-layout, .dashboard-grid, .paper-layout, .math-workspace-grid, .sessions-layout { grid-template-columns: 1fr; }
  #page-mindmap .map-toolbar { grid-template-columns: 1fr 1fr; }
  #page-mindmap .map-toolbar .map-search-field { grid-column: 1 / -1; }
  .map-canvas-header { align-items: flex-start; flex-direction: column; }
  .map-view-actions { justify-content: flex-start; }
  .map-canvas-viewport { height: 680px; }
  .map-interaction-tip { display: none; }
}

@media (max-width: 620px) {
  .page-intro.suite-intro { min-height: 0; padding: 22px 18px; border-radius: 20px; }
  .page-intro h1 { font-size: 30px; }
  .intro-stat-grid { grid-template-columns: repeat(3, 1fr); }
  .math-guard-strip { grid-template-columns: 1fr 1fr; }
  .input-mode-grid { grid-template-columns: 1fr 1fr; }
  .catalog-overview-grid { grid-template-columns: 1fr; }
  .knowledge-layout { grid-template-columns: 1fr; }
  .deep-dive-card { grid-column: auto; }
  .curriculum-coverage { grid-template-columns: 1fr 1fr; }
  .resource-library-note { grid-template-columns: 1fr 1fr; }
  #page-mindmap .map-toolbar { grid-template-columns: 1fr; }
  #page-mindmap .map-toolbar .map-search-field, .map-toolbar .toolbar-note { grid-column: auto; }
  .map-canvas-header { padding: 12px; }
  .map-view-actions button { min-width: 34px; padding-inline: 9px; }
  .map-canvas-viewport { min-height: 600px; height: 70vh; }
  .map-canvas-card .canvas-legend { left: 12px; right: auto; bottom: 12px; max-width: calc(100% - 24px); flex-wrap: wrap; border-radius: 14px; }
}

.paper-toolbar > div:first-child { display: grid; gap: 3px; }
.paper-toolbar > div:first-child small { color: #7d887f; font-size: 10px; }
.paper-choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 12px; }
.paper-choice-grid label { min-height: 48px; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid rgba(78,99,86,.16); border-radius: 12px; color: #354b40; background: #fffefa; cursor: pointer; transition: .18s ease; }
.paper-choice-grid label:hover { border-color: rgba(164,71,56,.38); background: #fff8f1; }
.paper-choice-grid label:has(input:checked) { border-color: #3f725e; background: #e9f0eb; box-shadow: inset 0 0 0 1px rgba(63,114,94,.1); }
.paper-choice-grid input { width: 16px; height: 16px; accent-color: #3f725e; }
.paper-choice-grid span { line-height: 1.55; }
.paper-fill-input { width: min(620px, 100%); min-height: 46px; margin-top: 11px; padding: 9px 13px; border: 1px solid rgba(78,99,86,.2); border-radius: 11px; outline: 0; color: #263c31; background: #fffefa; }
.paper-fill-input:focus { border-color: #477663; box-shadow: 0 0 0 3px rgba(71,118,99,.08); }
.paper-export-options { margin: 8px 0 12px; padding-left: 8px; }
.paper-export-options p { margin: 5px 0; }

@media print {
  body.paper-print-mode .paper-choice-grid { grid-template-columns: 1fr 1fr; }
  body.paper-print-mode .paper-choice-grid label { border-color: #aaa; background: #fff; box-shadow: none; }
  body.paper-print-mode .paper-fill-input, body.paper-print-mode .paper-answer-input { border: 1px solid #aaa; background: #fff; }
  body.paper-print-mode .paper-question { break-inside: avoid; page-break-inside: avoid; }
}

@media (max-width: 620px) {
  .paper-choice-grid { grid-template-columns: 1fr; }
}

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