/* 宋式书斋。Loaded after the legacy skins; only the light theme owns these tokens.
   Layout remains with the existing page bodies and visualViewport keyboard handler. */
html.theme-yaji {
  --paper: #f4f1e9; --paper-bright: #fbf8f0; --paper-dim: #e9e5da;
  --paper-deep: #d5cfbf; --paper-shade: #9c978a;
  --ink: #302f2a; --ink-90: #302f2a; --ink-80: #45443d;
  --ink-70: #59594f; --ink-55: #646459; --ink-40: #77766a;
  --ink-25: #302f2a40; --ink-15: #302f2a29; --ink-08: #302f2a14; --ink-04: #302f2a0a;
  --jade: #4d6457; --cinnabar: #4d6457; --cinnabar-soft: #4d6457;
  --cinnabar-ink: #4d6457; --tea-gold: #8d744a; --gold-leaf: #8d744a;
  --glass-paper: #fbf8f0; --glass-sheer: #fbf8f0; --glass-wash: #f4f1e9;
  --body: var(--book-font);
  --seri: var(--body); --song: var(--body); --hand: var(--body); --font-body: var(--body);
  --ref-body: max(16px, calc(17px * var(--user-font-scale, 1)));
  --ref-note: max(14px, calc(14px * var(--user-font-scale, 1)));
  --ref-title: max(27px, calc(28px * var(--user-font-scale, 1)));
  --shadow-soft: 0 2px 8px #302f2a06; --shadow-lift: 0 10px 30px #302f2a09;
}
html.theme-yaji, html.theme-yaji body { font-size: var(--type-body); line-height: 1.9; }
html.theme-yaji body::before { background: radial-gradient(ellipse at 20% 0, #fbf8f0 0, transparent 70%), var(--paper); }
html.theme-yaji body::after { opacity: .07 !important; }
html.theme-yaji :is(button, input, textarea, select) { font-family: var(--body); }
html.theme-yaji :is(button, [role='button'], .bottom-nav-item, .xt-video-cta-btn) { min-height: 44px; }
html.theme-yaji :is(button, [role='button'], a):focus-visible { outline: 2px solid var(--jade); outline-offset: 3px; }
html.theme-yaji :is(.page-header, .v7-header, .xt-article-header, .zw-overlay-header) {
  background: var(--paper) !important; border-color: var(--ink-15) !important; box-shadow: none !important;
}
html.theme-yaji .bottom-nav { background: var(--paper-bright) !important; border-top: 1px solid var(--ink-15) !important; box-shadow: none !important; }
html.theme-yaji .nav-item { color: var(--ink-55) !important; gap: 4px; }
html.theme-yaji .nav-item.active { color: var(--jade) !important; }
html.theme-yaji .nav-label { font: 400 var(--type-note)/1.6 var(--book-font); letter-spacing: 0; }
html.theme-yaji .nav-item svg { width: 22px; height: 22px; stroke-width: 1.6; }
/* Quiet headings, complete glyph fallback for all dynamic copy. */
html.theme-yaji .question-title {
  font-family: var(--body) !important; font-size: var(--ref-title) !important;
  font-weight: 500 !important; line-height: 1.4 !important; letter-spacing: .05em !important; text-shadow: none !important;
}
html.theme-yaji :is(.zw-hero-en, .xt-hero-en, .yj-ziwo-seal, .yj-rank-en, .yj-rank-progress) { display: none !important; }
html.theme-yaji :is(.zw-hero, .zw-profile, .zw-menu, .xt-hero)::before,
html.theme-yaji :is(.zw-hero, .zw-profile, .zw-menu, .xt-hero)::after { content: none !important; }
/* Chat stays full-height; only its reading measure is constrained on wide screens. */
html.theme-yaji .v7-chat-home { background: var(--paper); }
html.theme-yaji .v7-header { padding-inline: max(18px, calc((100% - 760px) / 2)); }
html.theme-yaji .v7-messages {
  min-height: 0; padding: 28px max(18px, calc((100% - 760px) / 2)) 24px; gap: 24px;
}
html.theme-yaji .v7-msg-bubble {
  font: var(--ref-body)/1.85 var(--body); letter-spacing: 0;
  background: var(--paper-bright); border: 1px solid var(--ink-15); border-radius: 4px; box-shadow: none;
  padding: 18px 20px;
}
html.theme-yaji .v7-msg--user .v7-msg-bubble { background: #e7ece5; border-color: #4d64572e; }
html.theme-yaji .v7-msg-avatar { border-color: var(--ink-15); box-shadow: none; }
html.theme-yaji .v7-composer { padding-inline: max(14px, calc((100% - 760px) / 2)); background: var(--paper); border-color: var(--ink-15); }
html.theme-yaji .v7-composer-textarea { font: var(--ref-body)/1.8 var(--body); background: var(--paper-bright); border-radius: 6px; color: var(--ink); }
html.theme-yaji :is(.v7-chip, .v7-suggestion-chip, .v7-composer-ritual, .v7-composer-send) {
  min-height: 44px; font-size: var(--ref-body); border-radius: 6px; box-shadow: none;
}
html.theme-yaji .v7-composer-send { background: var(--jade); color: var(--paper-bright); border-color: var(--jade); }
/* Question sheet retains its internal scroll and authentic question requirement. */
html.theme-yaji .question-card { border-radius: 6px !important; padding: 28px 22px !important; background: var(--paper) !important; }
html.theme-yaji :is(.question-subtitle, .yj-q-hint-lead, .question-input, .quick-text, .question-btn, .yj-ritual-guide-title) {
  font-size: var(--ref-body) !important; line-height: 1.8 !important; color: var(--ink) !important;
}
html.theme-yaji .question-subtitle { margin: 12px 0 20px !important; }
html.theme-yaji .question-input { border-radius: 6px !important; background: var(--paper-bright) !important; }
html.theme-yaji .quick-questions { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
html.theme-yaji .quick-question { padding: 12px !important; min-height: 60px; border-radius: 4px !important; }
html.theme-yaji .quick-question:nth-child(n+3) { display: none !important; }
html.theme-yaji #questionSubmit { background: var(--jade) !important; color: var(--paper-bright) !important; border-radius: 6px !important; }
/* Learning: paper cards, ordinary tabs, consistent horizontal covers. */
html.theme-yaji :is(.xt-root, .xt-overlay) {
  --xt-ink: var(--ink); --xt-ink-70: var(--ink-70); --xt-ink-55: var(--ink-55);
  --xt-ink-25: var(--ink-25); --xt-ink-15: var(--ink-15); --xt-cinnabar: var(--jade);
  --xt-text: var(--ink); --xt-text-soft: var(--ink-80); --xt-text-dim: var(--ink-55);
  --xt-paper: var(--paper); --xt-paper-bright: var(--paper-bright); --xt-bg: var(--paper);
  --xt-bg-card: var(--paper-bright); --xt-border: var(--ink-15); --xt-serif: var(--body);
  --xt-radius: 4px; --xt-radius-card: 4px;
}
html.theme-yaji .xt-hero { padding: 26px 22px 22px; }
html.theme-yaji .xt-cat-wrap { background: var(--paper); backdrop-filter: none; mask-image: none; }
html.theme-yaji .xt-cat-track { gap: 8px; padding: 0 18px; }
html.theme-yaji .xt-cat-btn { border: 0; border-bottom: 2px solid transparent; border-radius: 0; padding: 10px 12px; font-size: var(--ref-body); letter-spacing: 0; color: var(--ink-55); background: transparent; }
html.theme-yaji .xt-cat-btn.active { color: var(--jade); border-bottom-color: var(--jade); background: transparent; }
html.theme-yaji .xt-feed-wrap { padding: 24px 22px 60px; }
html.theme-yaji .xt-feed { gap: 28px; }
html.theme-yaji .xt-card { border-radius: 4px; background: var(--paper-bright); border-color: var(--ink-15); box-shadow: none; }
html.theme-yaji :is(.xt-featured-ribbon, .xt-article-featured-pill) {
  position: static; transform: none; background: transparent; color: var(--jade); border: 0;
  border-radius: 0; box-shadow: none; font: var(--ref-note)/1.8 var(--body); padding: 12px 20px 0; letter-spacing: .08em;
}
html.theme-yaji :is(.xt-featured-ribbon, .xt-article-featured-pill)::after { display: none; }
html.theme-yaji .xt-featured-glyph { display: none; }
html.theme-yaji :is(.xt-card-title, .xt-lecture-title) { font: 400 var(--type-card)/1.6 var(--book-font); color: var(--ink); }
html.theme-yaji :is(.xt-card-excerpt, .xt-lecture-excerpt, .xt-quote-reflection, .xt-empty-text) { font: var(--ref-body)/1.85 var(--body); color: var(--ink-80); }
html.theme-yaji .xt-card-excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
html.theme-yaji :is(.xt-author-date, .xt-author-name, .xt-tag, .xt-lecture-meta, .xt-lecture-subtitle, .xt-lecture-detail-hint, .xt-article-meta, .xt-video-chip-label, .xt-video-chip-value, .xt-video-cta-hint) {
  font: var(--ref-note)/1.7 var(--body); color: var(--ink-55); letter-spacing: 0;
}
html.theme-yaji .xt-card-lecture { display: flex; flex-direction: column; }
html.theme-yaji .xt-lecture-poster { width: 100%; aspect-ratio: 16/10; min-height: 0; flex: none; height: auto; border-radius: 4px 4px 0 0; }
html.theme-yaji .xt-lecture-body { width: 100%; padding: 20px; min-width: 0; }
html.theme-yaji .xt-lecture-excerpt { display: none; }
html.theme-yaji .xt-video-hero :is(.xt-video-hero-title, .xt-video-hero-subtitle, .xt-video-hero-glyph) { color: #fbf8f0 !important; opacity: 1; }
html.theme-yaji .xt-video-hero-title { font: 300 var(--type-page)/1.5 var(--title-font); }
html.theme-yaji .xt-video-hero-subtitle { font: var(--ref-body)/1.8 var(--body); }
html.theme-yaji :is(.xt-video-scroll, .xt-article-body) { min-height: 0; overflow-y: auto; }
html.theme-yaji :is(.xt-article-content, .xt-video-desc, .xt-video-desc-p, .xt-video-highlight-text, .xt-body-p, .xt-body-quote) { font: var(--ref-body)/1.85 var(--body); color: var(--ink); }
html.theme-yaji .xt-video-cta-bar { background: var(--paper); border-color: var(--ink-15); }
html.theme-yaji .xt-video-cta-btn { background: var(--jade); color: var(--paper-bright); border-radius: 6px; font: 400 var(--type-control)/1.6 var(--book-font); letter-spacing: 0; text-indent: 0; min-height: 48px; padding: 12px 16px; box-shadow: none; }
/* Profile and all of its sheets share the same ink, including favorites tabs. */
html.theme-yaji :is(.zw-root, .zw-overlay, .zw-modal) {
  --zw-gold: var(--jade); --zw-gold-soft: var(--ink-70); --zw-text: var(--ink);
  --zw-text-soft: var(--ink-80); --zw-text-dim: var(--ink-55); --zw-bg: var(--paper);
  --zw-bg-card: var(--paper-bright); --zw-bg-card-strong: var(--paper-bright); --zw-border: var(--ink-15);
  --zw-serif: var(--body); --zw-radius: 4px;
}
html.theme-yaji .zw-root { padding-inline: 22px !important; }
html.theme-yaji .zw-profile { padding: 22px 0; margin-bottom: 24px; }
html.theme-yaji .zw-avatar { background: #e5e9df !important; border: 1px solid #4d645759 !important; box-shadow: none !important; }
html.theme-yaji .zw-name { font: 400 var(--type-name)/1.5 var(--book-font) !important; }
html.theme-yaji .yj-rank-caption { display: block; margin: 6px 0 0; font: var(--ref-note)/1.8 var(--body); color: var(--ink-55); letter-spacing: .08em; }
html.theme-yaji .zw-name-edit { min-width: 44px; min-height: 44px; }
html.theme-yaji :is(.zw-menu-label, .zw-setting-label, .zw-settings-title, .zw-llm-card-title, .zw-first-banner-text, .zw-first-banner-cta, .zw-empty-text, .zw-overlay-subtitle, .zw-modal-body) { font: var(--ref-body)/1.8 var(--body) !important; color: var(--ink) !important; }
html.theme-yaji :is(.zw-menu-right, .zw-setting-hint, .zw-stat-label, .zw-llm-label, .zw-llm-card-desc, .zw-llm-card-badge) { font: var(--ref-note)/1.7 var(--body) !important; color: var(--ink-55) !important; }
html.theme-yaji :is(.zw-menu, .zw-settings, .zw-stats-row, .zw-llm-card, .zw-first-banner) { background: var(--paper-bright) !important; border: 1px solid var(--ink-15) !important; border-radius: 4px !important; box-shadow: none !important; }
html.theme-yaji .zw-menu-item { min-height: 60px; }
html.theme-yaji .zw-menu-icon { color: var(--jade) !important; }
html.theme-yaji .zw-tab { font: var(--ref-body)/1.8 var(--body); min-height: 44px; color: var(--ink-55); border-radius: 0; background: transparent; }
html.theme-yaji .zw-tab--on { color: var(--jade); background: transparent; border-color: var(--jade); }
html.theme-yaji :is(.zw-input, .zw-select, .zw-textarea) { font: var(--ref-body)/1.8 var(--body); color: var(--ink); background: var(--paper-bright); border-radius: 6px; }
html.theme-yaji :is(.privacy-modal-content, .info-section-content, .history-item-question, .history-detail-body, .yn-consent-b) { font-size: var(--ref-body) !important; line-height: 1.85 !important; color: var(--ink-80) !important; }
html.theme-yaji .privacy-modal { padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
html.theme-yaji .privacy-modal-content :is(p, li) { font-size: var(--ref-body) !important; line-height: 1.85 !important; overflow-wrap: anywhere; }
html.theme-yaji .privacy-modal-content h4 { font: 400 var(--type-card)/1.6 var(--book-font) !important; }
html.theme-yaji .privacy-modal-title { font: 300 var(--type-page)/1.5 var(--title-font) !important; letter-spacing: .02em; }
html.theme-yaji .yn-consent-card { background: var(--paper); border-radius: 6px; }
html.theme-yaji .yn-bgm-btn { min-width: 44px; min-height: 44px; height: 44px; background: var(--paper-bright); color: var(--jade); border-color: var(--ink-25); box-shadow: none; }
@media (min-width: 820px) {
  html.theme-yaji .xt-feed { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  html.theme-yaji .xt-card-featured { grid-column: 1/-1; }
  html.theme-yaji .xt-root { max-width: 1120px; margin-inline: auto; }
  html.theme-yaji .xt-article-body > * { max-width: 680px; }
}
@media (max-height: 500px) and (orientation: landscape) {
  html.theme-yaji .v7-header { padding-block: 5px; }
  html.theme-yaji .v7-messages { padding-block: 10px; }
  html.theme-yaji .question-card { padding-block: 16px !important; }
  html.theme-yaji .zw-profile { padding-block: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html.theme-yaji *, html.theme-yaji *::before, html.theme-yaji *::after { scroll-behavior: auto !important; }
}
/* The root page has an ID-based legacy reset; keep its breathing space explicit. */
html.theme-yaji #ziwoRoot { padding-inline: 22px !important; }
html.theme-yaji :is(.zw-root, .xt-root)::before { content: none !important; }
html.theme-yaji .zw-avatar { filter: none !important; }
html.theme-yaji .zw-first-banner-cta { color: var(--paper-bright) !important; background: var(--jade) !important; border-color: var(--jade) !important; border-radius: 6px !important; padding-inline: 16px; }
html.theme-yaji :is(.zw-sg-label, .zw-sg-seg-btn, .zw-settings-reset) { font: var(--ref-body)/1.8 var(--body) !important; }
html.theme-yaji :is(.zw-sg-hint, .zw-sg-value) { font: var(--ref-note)/1.7 var(--body) !important; color: var(--ink-55) !important; }
html.theme-yaji .zw-sg-seg-btn { min-width: 44px; min-height: 44px; padding-inline: 10px; }
html.theme-yaji .zw-sg-seg { gap: 3px; background: var(--ink-04); }
html.theme-yaji .zw-sg-seg-btn--on { background: var(--jade) !important; color: var(--paper-bright) !important; }
html.theme-yaji .zw-sg-switch { min-height: 44px; height: 44px; background: transparent !important; width: 44px; }
html.theme-yaji .zw-sg-switch::before { content: ''; position: absolute; inset: 9px 0; border-radius: 20px; background: var(--ink-25); }
html.theme-yaji .zw-sg-switch--on::before { background: var(--jade); }
html.theme-yaji .zw-sg-thumb { top: 12px; box-shadow: none; }
html.theme-yaji .zw-empty { font: var(--ref-body)/1.85 var(--body); color: var(--ink-55); }
html.theme-yaji .nav-item.active .nav-icon, html.theme-yaji .nav-item.active .nav-label { color: var(--jade) !important; }
html.theme-yaji .xt-lecture-subtitle { display: none; }
html.theme-yaji .xt-lecture-poster-badge { background: transparent; color: #fbf8f0; font: var(--ref-note)/1.6 var(--body); }
html.theme-yaji .xt-lecture-poster-glyph { color: #fbf8f0; }
html.theme-yaji body.yj-tab-qigua { --body: 'Yinian Reading', 'LXGW WenKai Screen', 'LXGW WenKai', 'Noto Serif SC', 'Songti SC', serif; --pond-font: var(--body); --seri: var(--body); }
html.theme-yaji body.yj-tab-qigua .question-overlay :is(.ink-pond__title, .question-title, .quick-question, textarea, button, .question-subtitle, .yj-q-hint-lead) { font-family: var(--body) !important; }
@media (max-width: 420px) {
  html.theme-yaji .zw-sg-row--seg { flex-wrap: wrap; row-gap: 12px; }
  html.theme-yaji .zw-sg-row--seg .zw-sg-seg { margin-left: auto; }
}

html.theme-yaji #bottomNav .bottom-nav-item.active,
html.theme-yaji #bottomNav .bottom-nav-item.active :is(.nav-label, .nav-glyph, .nav-icon) { color: var(--jade) !important; stroke: currentColor !important; filter: none !important; }
html.theme-yaji .zw-menu-label { letter-spacing: 0 !important; }
html.theme-yaji .zw-menu-row { border: 0 !important; border-bottom: 1px solid var(--ink-15) !important; border-radius: 0 !important; background: transparent !important; }
html.theme-yaji .zw-menu-row:last-child { border-bottom: 0 !important; }

html.theme-yaji :is(.yn-auth-card, .yn-loginwall-card, .yn-auth-in, .yn-auth-btn, .yn-auth-p, .yn-auth-hint) { font-family: var(--body) !important; }
html.theme-yaji :is(.yn-auth-card, .yn-loginwall-card) { background: var(--paper); border-radius: 6px; }
html.theme-yaji :is(.yn-auth-in, .yn-auth-btn, .yn-auth-p, .yn-auth-hint) { font-size: var(--ref-body) !important; line-height: 1.8 !important; }
html.theme-yaji :is(.yn-auth-in, .yn-auth-btn) { min-height: 44px; }
/* Match the pond's existing selector weight so user text-size settings reach its form. */
html.theme-yaji #questionOverlay .ink-pond-form :is(.quick-question, .question-btn, .question-subtitle, .yj-q-hint-lead),
html.theme-yaji #questionOverlay .ink-pond-form #questionInput { font-size: var(--ref-body) !important; line-height: 1.8 !important; }
html.theme-yaji #questionOverlay .ink-pond-form .question-title { font-size: var(--ref-title) !important; }
html.theme-yaji #questionOverlay #inkPondTitle { font-size: var(--ref-title); }
html.theme-yaji #questionOverlay { bottom: calc(60px + env(safe-area-inset-bottom, 0px)); padding-bottom: 32px !important; }
html.theme-yaji .xt-feed-wrap::before { content: none; }
html.theme-yaji .zw-modal-card { max-height: calc(100dvh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); overflow-y: auto; background: var(--paper) !important; border-radius: 6px !important; font-family: var(--body) !important; }
html.theme-yaji :is(.zw-modal-title, .zw-overlay-title) { font: 300 var(--type-page)/1.5 var(--title-font); letter-spacing: .02em; }
html.theme-yaji :is(.zw-field-label, .zw-name-input, .zw-modal-subtitle, .zw-btn) { font: var(--ref-body)/1.8 var(--body) !important; letter-spacing: .02em !important; }
html.theme-yaji .zw-name-input { background: var(--paper-bright) !important; border-radius: 6px !important; }
html.theme-yaji .zw-btn { border-radius: 6px !important; }
html.theme-yaji .zw-btn-primary { background: var(--jade) !important; color: var(--paper-bright) !important; }
html.theme-yaji .zw-btn-secondary { background: transparent !important; color: var(--ink) !important; }
/* Auth CSS is injected late from chat-home.css. Own both text and form geometry here. */
html.theme-yaji .yn-auth { box-sizing: border-box; padding: max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)); overflow: hidden; background: #302f2a99; color: var(--ink) !important; }
html.theme-yaji .yn-auth * { box-sizing: border-box; min-width: 0; color: var(--ink) !important; }
html.theme-yaji .yn-auth .yn-auth-card { width: 100%; max-width: 400px; max-height: 100%; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 28px 22px; gap: 14px; background: var(--paper); border: 1px solid var(--ink-15); border-radius: 6px; }
html.theme-yaji .yn-auth .yn-auth-mark { color: var(--ink) !important; font: 32px/1.5 var(--body); letter-spacing: .1em; }
html.theme-yaji .yn-auth .yn-auth-title { color: var(--ink) !important; font: 300 var(--type-page)/1.5 var(--title-font); }
html.theme-yaji .yn-auth :is(.yn-pw-wrap, .yn-code-row, .yn-redeem, .yn-auth-links) { width: 100%; min-width: 0; }
html.theme-yaji .yn-auth .yn-auth-in { display: block; width: 100%; max-width: 100%; min-width: 0; flex-shrink: 1; height: auto; min-height: 48px; padding-block: 10px; background: var(--paper-bright); color: var(--ink) !important; -webkit-text-fill-color: var(--ink); border: 1px solid var(--ink-25); border-radius: 6px; font: var(--ref-body)/1.8 var(--body); }
html.theme-yaji .yn-auth .yn-auth-in::placeholder { color: var(--ink-55) !important; -webkit-text-fill-color: var(--ink-55); opacity: 1; }
html.theme-yaji .yn-auth .yn-auth-in:-webkit-autofill { -webkit-text-fill-color: var(--ink); box-shadow: 0 0 0 1000px var(--paper-bright) inset; }
html.theme-yaji .yn-auth .yn-auth-in:focus { border-color: var(--jade); outline: 2px solid #4d645733; outline-offset: 2px; }
html.theme-yaji .yn-auth .yn-auth-btn { flex-shrink: 0; min-height: 48px; height: auto; max-width: 100%; padding: 10px 16px; border-radius: 6px; background: var(--jade); color: var(--paper-bright) !important; font: var(--ref-body)/1.8 var(--body); }
html.theme-yaji .yn-auth .yn-auth-btn--ghost { color: var(--jade) !important; border: 1px solid var(--ink-25); background: transparent; }
html.theme-yaji .yn-auth .yn-auth-links { flex-wrap: wrap; align-items: center; gap: 8px !important; }
html.theme-yaji .yn-auth .yn-auth-links a { display: inline-flex; min-height: 44px; align-items: center; color: var(--jade) !important; font: var(--ref-body)/1.8 var(--body); }
html.theme-yaji .yn-auth .yn-auth-note { color: var(--ink-55) !important; font: var(--ref-body)/1.85 var(--body); margin: 0; }
html.theme-yaji .yn-auth .yn-auth-msg { color: #8b3c2e !important; font: var(--ref-body)/1.8 var(--body); overflow-wrap: anywhere; }
html.theme-yaji .yn-auth .yn-auth-msg.is-ok { color: var(--jade) !important; }
html.theme-yaji .yn-auth :is(.yn-auth-close, .yn-pw-eye) { min-width: 44px; min-height: 44px; color: var(--ink-55) !important; }
html.theme-yaji :is(.v7-composer-expand, .xt-action-btn) { min-width: 44px; min-height: 44px; }
html.theme-yaji .xt-video-cta-bar { padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px)); }
html.theme-yaji .xt-overlay { bottom: calc(60px + env(safe-area-inset-bottom, 0px)); overflow: hidden; }
html.theme-yaji .xt-video-cta-bar { position: relative; flex: 0 0 auto; }
/* Long-term memory is a reading sheet; its content follows the user's type size. */
html.theme-yaji .mp-sheet { box-sizing: border-box; padding-top: max(20px, env(safe-area-inset-top)); font-family: var(--body); color: var(--ink); }
html.theme-yaji .mp-card { max-height: 100%; min-height: 0; background: var(--paper); border-radius: 6px; border-color: var(--ink-15); box-shadow: var(--shadow-lift); }
html.theme-yaji .mp-body { min-height: 0; overflow-y: auto; }
html.theme-yaji .mp-title { font: 300 var(--type-page)/1.5 var(--title-font); color: var(--ink); }
html.theme-yaji .mp-card :is(.mp-subtitle, .mp-empty, .mp-section-h, .mp-item, .mp-portrait-text, .mp-tone-sig, .mp-episode-q, .mp-episode-sum, .mp-btn, .mp-fact-action, .mp-archive-h) { font: var(--ref-body)/1.85 var(--body); color: var(--ink); }
html.theme-yaji .mp-card :is(.mp-meta, .mp-fact-badge, .mp-episode-date, .mp-episode-topic) { font: var(--ref-note)/1.8 var(--body); color: var(--ink-55); }
html.theme-yaji .mp-card :is(.mp-subtitle, .mp-empty) { color: var(--ink-55); font-style: normal; }
html.theme-yaji .mp-card :is(.mp-section-h, .mp-tone-sig) { color: var(--jade); }
html.theme-yaji .mp-ornament { display: none; }
html.theme-yaji .mp-portrait .mp-portrait-text { background: var(--paper-bright); border-color: var(--jade); }
html.theme-yaji .mp-item { background: var(--paper-bright); border-radius: 4px; flex-wrap: wrap; }
html.theme-yaji .mp-card :is(.mp-btn, .mp-fact-action, .mp-archive-h) { min-width: 44px; min-height: 44px; border-radius: 6px; }
html.theme-yaji .mp-card :is(.mp-btn--danger, .mp-fact-action--danger) { color: #8b3c2e; border-color: #8b3c2e66; }
@media (max-height: 500px) { html.theme-yaji .mp-sheet { padding-top: 12px; } }

/* Feedback revision: result reading and return paths share the studio's paper. */
html.theme-yaji #interpPanel {
  display: none; flex-direction: column; inset: 0 0 calc(60px + env(safe-area-inset-bottom, 0px));
  padding: 0 !important; overflow: hidden !important; background: var(--paper) !important;
}
html.theme-yaji #interpPanel .interp-reading-body {
  flex: 1 1 0%; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
  width: 100%; box-sizing: border-box; padding: max(52px, env(safe-area-inset-top)) max(18px, calc((100% - 680px) / 2)) 32px;
}
html.theme-yaji #interpPanel :is(.answer-section, .interp-section) {
  padding: 22px 0; margin: 0; border: 0; border-top: 1px solid var(--ink-15); border-radius: 0;
  color: var(--ink); background: transparent !important; box-shadow: none;
}
html.theme-yaji #interpPanel .interp-header { margin: 0 auto 24px; padding: 0; }
html.theme-yaji #interpPanel :is(.answer-question, .answer-explanation, .interp-section-content, .nianxin-hero-desc, .nianxin-hero-cta-text, .conclusion-share-btn, .deep-layer-toggle) {
  font: var(--ref-body)/1.85 var(--body) !important; color: var(--ink) !important;
  letter-spacing: 0 !important; white-space: pre-line; overflow-wrap: anywhere;
}
html.theme-yaji #interpPanel :is(.result-kind, .nianxin-hero-badge) { font: var(--ref-note)/1.8 var(--body); color: var(--ink-55); }
html.theme-yaji #interpPanel .answer-question { border: 0; padding: 0 0 14px; margin: 0; }
html.theme-yaji #interpPanel .answer-direction { margin: 12px 0; font: 500 calc(22px * var(--user-font-scale, 1))/1.6 var(--body); color: var(--ink) !important; }
html.theme-yaji #interpPanel .answer-explanation { text-align: left; }
html.theme-yaji #interpPanel .interp-section-title { font: 500 calc(20px * var(--user-font-scale, 1))/1.7 var(--body); color: var(--jade); margin-bottom: 12px; }
html.theme-yaji #interpPanel .nianxin-entry-card { margin: 14px 0 26px; padding: 0; }
html.theme-yaji #interpPanel .nianxin-hero {
  display: block; width: 100%; box-sizing: border-box; min-width: 0; padding: 18px;
  border: 1px solid var(--ink-25); border-radius: 6px; background: var(--paper-bright) !important;
  color: var(--ink); box-shadow: none; animation: none;
}
html.theme-yaji #interpPanel .nianxin-hero::before,
html.theme-yaji #interpPanel .nianxin-hero::after { content: none; }
html.theme-yaji #interpPanel :is(.nianxin-hero-avatar, .nianxin-hero-badge) { display: none; }
html.theme-yaji #interpPanel .nianxin-hero-content { padding: 0; margin: 0; }
html.theme-yaji #interpPanel .nianxin-hero-title { color: var(--ink); font: 500 calc(21px * var(--user-font-scale, 1))/1.6 var(--body); }
html.theme-yaji #interpPanel .nianxin-hero-desc { margin: 8px 0 16px; font-style: normal; opacity: 1; }
html.theme-yaji #interpPanel .nianxin-hero-cta-row { background: var(--jade); color: var(--paper-bright); border: 0; border-radius: 4px; min-height: 48px; box-shadow: none; }
html.theme-yaji #interpPanel .nianxin-hero-cta-text { color: var(--paper-bright) !important; }
html.theme-yaji #interpPanel .nianxin-hero-cta-arrow { color: var(--paper-bright); }
html.theme-yaji #interpPanel .reading-save-note { margin: 18px 0; padding: 18px; border: 1px solid var(--ink-15); border-radius: 4px; color: var(--ink-80); font: var(--ref-body)/1.85 var(--body); overflow-wrap: anywhere; }
html.theme-yaji #interpPanel :is(.conclusion-share-btn, .deep-layer-toggle) { min-height: 48px; background: transparent; border: 1px solid var(--ink-25); border-radius: 4px; color: var(--jade) !important; padding: 10px 14px; }
html.theme-yaji #interpPanel .interp-hex-segment { background: var(--jade); box-shadow: none; }
html.theme-yaji #historyDetail { display: none; flex-direction: column; bottom: calc(60px + env(safe-area-inset-bottom, 0px)); overflow: hidden; background: var(--paper); }
html.theme-yaji #historyDetail .history-detail-header { flex: 0 0 auto; min-height: 64px; height: auto; padding: max(12px, env(safe-area-inset-top)) 18px 12px; align-items: center; background: var(--paper); }
html.theme-yaji #historyDetail .history-detail-title { min-width: 0; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font: 400 var(--type-card)/1.6 var(--book-font); color: var(--ink); white-space: normal; overflow-wrap: anywhere; }
html.theme-yaji #historyDetail .history-detail-content { flex: 1 1 0%; min-height: 0; overflow-y: auto; padding: 0 max(18px, calc((100% - 680px) / 2)) 24px; }
html.theme-yaji #historyDetail .history-detail-section { background: transparent; padding: 22px 0; margin: 0; border: 0; border-bottom: 1px solid var(--ink-15); border-radius: 0; color: var(--ink) !important; }
html.theme-yaji #historyDetail :is(.history-detail-value, .history-chat-text, .history-chat-role, .history-continue-btn) { font: var(--ref-body)/1.85 var(--body); white-space: pre-line; color: var(--ink); overflow-wrap: anywhere; }
html.theme-yaji #historyDetail .history-detail-label { font: 400 var(--ref-body)/1.8 var(--book-font); color: var(--jade); margin: 0 0 10px; min-height: 44px; display: flex; align-items: center; }
html.theme-yaji #historyDetail .history-detail-value { margin: 0 0 14px; }
html.theme-yaji #historyDetail .history-detail-actions { flex: 0 0 auto; padding: 14px max(18px, calc((100% - 680px) / 2)); background: var(--paper); border-top: 1px solid var(--ink-15); }
html.theme-yaji #historyDetail .history-continue-btn { min-height: 48px; background: var(--jade); color: var(--paper-bright); border: 0; border-radius: 4px; }
html.theme-yaji .zw-card--history { width: 100%; min-width: 0; max-width: 100%; align-items: flex-start; text-align: left; font-family: var(--body); white-space: normal; word-break: normal; }
html.theme-yaji .zw-card--history .zw-card-glyph { flex: 0 0 52px; min-width: 0; max-width: 52px; overflow: hidden; }
html.theme-yaji .zw-card--history .zw-card-glyph span { min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html.theme-yaji .zw-card--history .zw-card-meta { min-width: 0; }
html.theme-yaji .zw-card--history :is(.zw-card-title, .zw-card-subtitle) { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; white-space: normal; word-break: normal; overflow-wrap: anywhere; line-height: 1.8; }
html.theme-yaji #ziwoRoot .zw-llm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
html.theme-yaji #ziwoRoot .zw-llm-card { display: flex; flex-direction: column; align-items: stretch; gap: 8px; min-width: 0; width: 100%; box-sizing: border-box; padding: 18px !important; border: 1px solid var(--ink-25) !important; border-radius: 4px !important; }
html.theme-yaji #ziwoRoot .zw-llm-card--on { border: 1px solid var(--jade) !important; background: #e7ece5 !important; }
html.theme-yaji #ziwoRoot :is(.zw-llm-card-title, .zw-llm-card-sub, .zw-llm-hint, .zw-llm-think-label, .zw-llm-think-hint, .zw-llm-card-state) { font: var(--ref-body)/1.8 var(--body) !important; white-space: normal; overflow-wrap: anywhere; color: var(--ink); letter-spacing: 0; margin: 0; }
html.theme-yaji #ziwoRoot .zw-llm-card-state { color: var(--jade); }
html.theme-yaji #ziwoRoot .zw-llm-think { flex-wrap: wrap; gap: 12px; }
html.theme-yaji #app > .ritual-howto { order: 2; width: 100%; max-width: 680px; margin: 6px 0 0; text-align: left; color: var(--ink); font: var(--ref-body)/1.8 var(--body); }
html.theme-yaji .ritual-howto p { margin: 8px 0; }
html.theme-yaji .ritual-howto .ritual-progress-text { color: var(--jade); }
html.theme-yaji #app > .yj-ritual-guide { order: 3; width: 100%; margin: 0 0 12px; }
html.theme-yaji .yj-ritual-guide-toggle { min-height: 44px; padding: 6px 0; }
html.theme-yaji .yj-ritual-guide-title { font: var(--ref-body)/1.8 var(--body) !important; }
html.theme-yaji :is(.yj-step-brief, .yj-step-detail, .yj-ritual-guide-foot, .yj-intro-guide) { font: var(--ref-body)/1.85 var(--body); color: var(--ink); }
html.theme-yaji .yj-intro-next { min-height: 48px; padding: 12px 20px; font: var(--ref-body)/1.8 var(--body); background: var(--jade); color: var(--paper-bright); border-color: var(--jade); }
html.theme-yaji #questionSubmit:disabled { background: var(--paper-dim) !important; color: var(--ink-55) !important; border: 1px solid var(--ink-25) !important; opacity: 1 !important; cursor: default; }
.v7-ritual-context { width: 100%; box-sizing: border-box; padding: 18px; background: var(--paper-bright, #fbf8f0); border: 1px solid var(--ink-25, #302f2a40); border-radius: 4px; font: var(--ref-body, 17px)/1.8 var(--body, serif); color: var(--ink, #302f2a); }
.v7-ritual-context p { margin: 0 0 12px; }
.v7-ritual-context button { min-height: 48px; padding: 10px 16px; background: var(--jade, #4d6457); color: var(--paper-bright, #fbf8f0); border: 0; border-radius: 4px; font: inherit; }
.yn-copy-modal { position: fixed; inset: 0; z-index: 100100; display: flex; align-items: center; justify-content: center; padding: max(18px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom)); box-sizing: border-box; background: #302f2a88; color: #302f2a; }
.yn-copy-card { width: 100%; max-width: 620px; max-height: 100%; min-height: 0; overflow-y: auto; box-sizing: border-box; padding: 22px; border-radius: 6px; background: #fbf8f0; font: var(--ref-body, 17px)/1.85 var(--body, serif); }
.yn-copy-card h2, html.theme-yaji .yn-copy-card h2 { font: 300 var(--type-page)/1.5 var(--title-font, serif); font-family: var(--title-font, serif) !important; letter-spacing: normal; margin: 0 0 12px; }
.yn-copy-card p { margin: 0 0 16px; }
.yn-copy-card textarea { width: 100%; max-width: 100%; min-height: 120px; box-sizing: border-box; padding: 12px; color: #302f2a; background: #f4f1e9; border: 1px solid #77766a; font: inherit; overflow-wrap: anywhere; }
.yn-copy-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.yn-copy-actions button { flex: 1 1 150px; min-height: 48px; padding: 10px; font: inherit; color: #fbf8f0; background: #4d6457; border: 0; border-radius: 4px; }
.yn-copy-actions button[data-close] { color: #302f2a; background: transparent; border: 1px solid #77766a; }
@media (max-width: 700px) { html.theme-yaji #ziwoRoot .zw-llm-grid { grid-template-columns: minmax(0, 1fr); } }

html.theme-yaji #interpPanel.visible, html.theme-yaji #historyDetail.visible { display: flex; }
html.theme-yaji #interpPanel, html.theme-yaji #historyDetail { height: auto !important; background-image: none !important; }
html.theme-yaji #historyDetail { padding: 0 !important; }
html.theme-yaji .yj-ritual-intro .yj-intro-guide { color: #fcf8ef; }
html.theme-yaji #interpPanel .nianxin-hero-cta-arrow { stroke: currentColor; }
html.theme-yaji #questionOverlay #questionSubmit:disabled { background: var(--paper-dim) !important; color: var(--ink) !important; box-shadow: none !important; }
html.theme-yaji :is(.zw-toast, .yn-toast) { background: var(--jade) !important; color: var(--paper-bright) !important; font: var(--ref-body)/1.8 var(--body); border-color: var(--jade); }
html.theme-yaji .yj-ritual-intro { box-sizing: border-box; overflow: hidden; padding: max(18px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom)); }
html.theme-yaji .yj-ritual-intro .yj-intro-stack { max-height: 100%; min-height: 0; overflow-y: auto; box-sizing: border-box; padding: 8px; overscroll-behavior: contain; }
html.theme-yaji .yj-intro-stack > * { flex-shrink: 0; }
html.theme-yaji #historyDetail .history-detail-section { font: var(--ref-body)/1.85 var(--body); }

/* Product-owned article cards override the legacy global fit-content button reset. */
html.theme-yaji .xt-prev-next .xt-nav-btn {
  min-width: 0; width: auto; max-width: 100%; white-space: normal; word-break: normal;
}
html.theme-yaji .xt-prev-next :is(.xt-nav-name, .xt-nav-label) {
  min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere;
  text-overflow: clip; line-height: 1.6;
}
.yn-locale-trigger { min-width: 44px; min-height: 44px; padding: 8px 10px; color: var(--jade, #315448); background: transparent; border: 0; font: inherit; cursor: pointer; }
.yn-locale-picker { position: fixed; inset: 0; z-index: 100600; display: grid; place-items: center; overflow: hidden; padding: max(16px, env(safe-area-inset-top)) 18px max(16px, env(safe-area-inset-bottom)); background: #252b2877; backdrop-filter: blur(3px); font-family: var(--book-font, serif); color: var(--ink, #302f28); }
.yn-locale-card { width: min(100%, 360px); max-height: 100%; overflow-y: auto; padding: 20px; border: 1px solid var(--ink-25, #544b3638); border-radius: 5px; background: var(--paper-bright, #fbf9f3); box-shadow: 0 18px 64px #17251d33; }
.yn-locale-card header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.yn-locale-card h2, html.theme-yaji .yn-locale-card h2 { margin: 0; font: 300 24px/1.5 var(--title-font, serif); font-family: var(--title-font, serif) !important; letter-spacing: normal; }
.yn-locale-close { min-width: 44px; min-height: 44px; border: 0; background: transparent; color: inherit; font: 28px/1 serif; cursor: pointer; }
.yn-locale-options { display: grid; gap: 12px; margin-top: 20px; }
.yn-locale-options button { width: 100%; min-width: 0; min-height: 54px; padding: 12px 18px; border: 1px solid var(--ink-25, #544b3638); border-radius: 3px; background: transparent; color: inherit; text-align: left; font: 400 18px/1.5 var(--book-font, serif); cursor: pointer; }
.yn-locale-options [aria-checked="true"] { border-color: var(--jade, #315448); background: #3154480c; color: var(--jade, #315448); }
.yn-locale-options [aria-checked="true"]::after { content: '✓'; float: right; }
.yn-locale-note { min-height: 1.5em; margin: 14px 0 0; font-size: 14px; line-height: 1.5; }
.yn-consent-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.yn-consent-top .yn-consent-mark { font: 300 28px/1.5 var(--title-font, serif); letter-spacing: .02em; }
html.theme-yaji .yn-consent-card { max-width: 460px; max-height: 100%; padding: 22px; }
html.theme-yaji .yn-consent { box-sizing: border-box; padding: max(16px, env(safe-area-inset-top)) 18px max(16px, env(safe-area-inset-bottom)); overflow: hidden; }
html.theme-yaji .yn-consent-h { font: 300 24px/1.5 var(--title-font, serif); font-family: var(--title-font, serif) !important; letter-spacing: normal; margin: 10px 0 18px; text-align: left; }
html.theme-yaji .yn-consent-b p { margin: 0 0 18px; }
html.theme-yaji .yn-consent-b a { color: var(--jade); border-color: currentColor; }
html.theme-yaji .yn-consent-scope { color: var(--ink-70); }
html.theme-yaji .yn-consent-btn { white-space: normal; min-width: 0; font-weight: 400; }
html.theme-yaji .yn-consent-agree { background: var(--jade); color: var(--paper-bright); }
html.theme-yaji .yn-consent-deny { color: var(--ink-70); border-color: var(--ink-25); }
.zw-locale-row { display: flex; justify-content: flex-end; margin: -6px 0 8px; }
html.theme-yaji .yn-auth-card > .yn-locale-trigger { display: block; margin: 10px 0 0 auto; }
html.theme-yaji .yn-auth :is(.yn-auth-btn, .yn-auth-title, .yn-auth-note, .yn-auth-links),
html.theme-yaji .zw-root :is(.zw-sg-seg-btn, .zw-menu-label, .zw-menu-right-text, .zw-llm-card-title, .zw-llm-card-sub, .zw-llm-card-state) {
  min-width: 0; white-space: normal; overflow-wrap: anywhere;
}
html.theme-yaji .zw-language-row { justify-content: space-between; }
html.theme-yaji .zw-llm-card { min-width: 0; }
html.theme-yaji .zw-sg-seg { min-width: 0; flex-wrap: wrap; }
/* 上面的 :is() 规则把 min-width 归零以便英文换行；分段按钮仍需 ≥44px 触控热区（UI-RULES §4），可换行所以不怕挤 */
html.theme-yaji .zw-root .zw-sg-seg-btn { min-width: 44px; }
html[lang="en"].theme-yaji .v7-persona-badge { max-width: 8em; font-size: var(--type-note); }
html[lang="en"] .yn-tour-bub :is(h4, p, button) { letter-spacing: 0; }
.yn-policy-language { display: flex; justify-content: flex-end; margin-bottom: 10px; }
html[lang="en"] .yn-legal { letter-spacing: 0; }
html[lang="en"] .yn-legal :is(h1,h2,h3) { letter-spacing: 0; font-weight: 400; }
/* Keep both consent choices visible while its full disclosure scrolls naturally. */
html.theme-yaji .yn-consent-card { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
html.theme-yaji .yn-consent-b { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
html.theme-yaji :is(.yn-consent-top, .yn-consent-h, .yn-consent-acts, .yn-consent-deny2) { flex-shrink: 0; }
html[lang="en"].theme-yaji :is(.yn-consent-h, .yn-copy-card h2, .xt-nav-label, .xt-references-title, .zw-stat-label, .zw-first-banner-text, .zw-first-banner-cta) { letter-spacing: 0 !important; }
html[lang="en"].theme-yaji .xt-nav-label { text-align: inherit; }
html[lang="en"].theme-yaji .zw-sg-row--seg { flex-wrap: wrap; gap: 12px; }
html[lang="en"].theme-yaji .zw-overlay-subtitle { letter-spacing: 0; }
