@import url('../fonts/lxgw/lxgwwenkai-regular.css?v=native-1');

:root {
  --cream: #fff9ec;
  --paper: #fffefa;
  --paper-edge: #e8dec9;
  --ink: #4a4036;
  --ink-soft: #665a4e;
  --ink-muted: #776f61;
  --sun: #f4b942;
  --sun-deep: #d99b21;
  --sun-soft: #fff1c8;
  --leaf: #8fbf75;
  --leaf-deep: #557d43;
  --leaf-soft: #edf6e8;
  --stamp: #d96c4a;
  --stamp-deep: #a44931;
  --stamp-soft: #fff0eb;
  --font-display: 'LXGW WenKai', 'Kaiti SC', KaiTi, STKaiti, serif;
  --font-reading: 'Source Han Serif SC', 'Noto Serif CJK SC', 'Songti SC', SimSun, serif;
  --font-ui: 'Source Han Sans SC', 'Noto Sans CJK SC', 'Microsoft YaHei', system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; scroll-behavior: smooth; background: var(--cream); font-family: var(--font-ui); color: var(--ink); }
body { margin: 0; min-width: 320px; background: var(--cream); color: var(--ink); -webkit-font-smoothing: antialiased; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { border: 0; background: none; color: inherit; cursor: pointer; }
button:disabled { cursor: not-allowed; }
a { color: inherit; text-decoration: none; }
p, h1, h2, h3 { margin: 0; }
img { display: block; max-width: 100%; }
fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid rgba(217, 155, 33, .42); outline-offset: 3px; }
.icon { width: 1.1em; height: 1.1em; flex: 0 0 auto; }
.container { width: min(1180px, calc(100% - 4rem)); margin-inline: auto; }
.container.wide { width: min(1320px, calc(100% - 4rem)); }
.eyebrow { display: flex; align-items: center; gap: .45rem; color: var(--stamp-deep); font-size: .72rem; font-weight: 800; letter-spacing: .15em; }
.muted { color: var(--ink-muted); font-size: .75rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.brand { display: inline-flex; align-items: center; gap: .75rem; }
.brand-symbol { position: relative; display: grid; width: 3rem; height: 3rem; place-items: center; border-radius: 50%; background: var(--sun); box-shadow: 0 8px 18px rgba(171,119,18,.16); }
.brand-symbol .brand-book { width: 1.5rem; height: 1.5rem; stroke-width: 1.8; }
.brand-symbol .brand-sun { position: absolute; top: -.25rem; right: -.25rem; width: 1.2rem; height: 1.2rem; color: white; fill: white; }
.brand strong { display: block; font-family: var(--font-display); font-size: 1.25rem; letter-spacing: .08em; }

.button { display: inline-flex; min-height: 2.45rem; align-items: center; justify-content: center; gap: .45rem; border: 1px solid transparent; border-radius: 4px; padding: .55rem 1rem; font-weight: 700; transition: transform .18s ease, color .18s ease, background .18s ease, border-color .18s ease; }
.button:hover:not(:disabled) { transform: translateY(-1px); }
.button-primary { background: var(--sun); color: var(--ink); box-shadow: none; }
.button-primary:hover:not(:disabled) { background: var(--sun-deep); color: white; }
.button-outline { border-color: var(--paper-edge); background: rgba(255,254,250,.78); color: var(--ink-soft); }
.button-outline:hover:not(:disabled), .button-ghost:hover:not(:disabled) { background: var(--sun-soft); color: var(--ink); }
.button-ghost { color: var(--ink-soft); }
.button-large { min-height: 3.2rem; padding-inline: 1.65rem; font-size: 1rem; }
.button-small { min-height: 2.2rem; padding: .4rem .7rem; font-size: .82rem; }
.button-block { width: 100%; }
.button:disabled { opacity: .45; }
.icon-button { display: inline-grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: 50%; color: var(--ink-soft); }
.icon-button:hover:not(:disabled) { background: var(--sun-soft); }
.back-link { display: inline-flex; align-items: center; gap: .35rem; color: var(--ink-muted); font-size: .78rem; }
.back-link:hover { color: var(--ink); }
.badge { display: inline-flex; align-items: center; border: 1px solid var(--paper-edge); border-radius: 999px; background: white; padding: .28rem .62rem; color: var(--ink-soft); font-size: .7rem; font-weight: 700; }
.badge-leaf { border-color: #cfe3c6; background: var(--leaf-soft); color: var(--leaf-deep); }
.badge-stamp { border-color: #f1c9bb; background: var(--stamp-soft); color: var(--stamp-deep); }
.notice { display: flex; align-items: flex-start; gap: .7rem; border-radius: .85rem; padding: .75rem 1rem; font-size: .78rem; line-height: 1.65; }
.notice-warm { border: 1px solid #e6c985; background: #fff6d9; color: #70552d; }
.notice-leaf { border: 1px solid #cfe3c6; background: var(--leaf-soft); color: var(--leaf-deep); }
.form-error { margin-top: 1rem; border: 1px solid #f1c9bb; border-radius: .75rem; background: var(--stamp-soft); padding: .7rem .85rem; color: var(--stamp-deep); font-size: .78rem; line-height: 1.6; }
.form-error:empty { display: none; }

/* 纸上书房：公共阅读界面 */
.home-page { min-height: 100vh; background: #f7f4ec; }
.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 100; background: var(--ink); color: white; padding: .8rem 1.2rem; }
.skip-link:focus { top: 1rem; }
.site-header { display: flex; min-height: 100px; align-items: center; justify-content: space-between; border-bottom: 1px solid #dcd7ca; gap: 1rem; }
.site-header-actions, .home-nav { display: flex; align-items: center; gap: 2rem; }
.home-nav a { font-size: .82rem; color: var(--ink-soft); padding-block: .6rem; }
.home-nav a:hover { color: var(--stamp-deep); }
.editor-entry { display: inline-flex; align-items: center; gap: .5rem; border-left: 1px solid #dcd7ca; padding-left: 2rem; color: var(--ink-muted); font-size: .76rem; }
.editor-entry:hover { color: var(--ink); }
.hero { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(3rem,7vw,7rem); padding-block: 4rem 4.5rem; }
.hero-cover { min-width: 0; }
.cover-stage { position: relative; display: grid; min-height: 550px; place-items: center; padding: 3.5rem 3.5rem 4rem; background: #e4e5d9; isolation: isolate; }
.cover-stage::before { position: absolute; inset: 0; z-index: -1; background: linear-gradient(128deg, transparent 28%,#f8f7eb60 28.2%,#f8f7eb60 48%,transparent 48.2%); content: ''; }
.cover-stage::after { position: absolute; inset: 1rem; z-index: -1; border: 1px solid #77795624; content: ''; }
.stage-season { position: absolute; right: 1.65rem; top: 2rem; writing-mode: vertical-rl; color: #646650; font-family: var(--font-reading); font-size: .7rem; letter-spacing: .2em; }
.stage-caption { position: absolute; bottom: 1.65rem; left: 2rem; color: #646650; font-size: .65rem; letter-spacing: .2em; }
[data-feature-cover] { display: block; width: min(100%, 290px); }
.hero-copy { min-width: 0; }
.issue-kicker { display: flex; align-items: center; gap: .7rem; color: var(--ink-muted); font-size: .7rem; letter-spacing: .12em; }
.issue-kicker > span:first-child { color: var(--stamp-deep); }
.issue-kicker i { width: 1.4rem; height: 1px; background: #c8c0af; }
.hero-copy h1 { margin-top: 1.75rem; font-family: var(--font-display); font-size: clamp(3rem,4.9vw,4.8rem); font-weight: 400; line-height: 1.22; letter-spacing: .045em; }
.hero-copy h1 > span:not(.title-period) { padding-left: .025em; }
.title-period { color: #b79845; }
.hero-deck { margin-top: 1.65rem; font-family: var(--font-display); font-size: 1.2rem; }
.hero-summary { max-width: 29rem; margin-top: 1rem; color: var(--ink-soft); font-size: .86rem; line-height: 2.1; }
.hero-actions { display: flex; align-items: center; gap: 1.8rem; margin-top: 2rem; }
.hero-actions .button-primary { min-width: 10rem; justify-content: space-between; background: #e8b747; color: #3f3529; }
.hero-actions .button-primary:hover { background: #d6a332; }
.hero-shelf-link { display: inline-flex; align-items: center; gap: .65rem; font-size: .8rem; color: var(--ink-soft); }
.hero-shelf-link:hover { color: var(--stamp-deep); }
.hero-colophon { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid #dcd7ca; color: var(--ink-muted); font-size: .68rem; line-height: 1.8; }
.hero-colophon > span:first-child { color: var(--ink-soft); }
.issue-cover { position: relative; width: 100%; aspect-ratio: 2/3; overflow: hidden; border: 1px solid #d1cbb9; border-radius: 1px 3px 3px 1px; background: #f9f4e7; box-shadow: 3px 1px 0 #e6e1d4, 5px 2px 0 #f4eee0, 6px 3px 0 #c9c1ae, 10px 18px 28px #3d3b3026; transform: perspective(1200px) rotateY(-6deg) rotateZ(-3deg); transform-origin: center; transition: transform .35s ease, box-shadow .35s ease; }
.issue-cover:hover { transform: perspective(1200px) rotateY(-2deg) rotateZ(-1deg) translateY(-4px); box-shadow: 3px 1px 0 #e6e1d4, 5px 2px 0 #f4eee0, 6px 3px 0 #c9c1ae, 12px 24px 32px #3d3b302b; }
.issue-cover > img { position: absolute; inset: 30% 6% 14% 8%; width: 86%; height: 56%; object-fit: cover; object-position: center 60%; }
.issue-cover__spine { position: absolute; inset: 0 auto 0 0; z-index: 4; width: .6rem; border-right: 1px solid #b3a58b30; background: linear-gradient(90deg,#8c80651e,#fff9ee80 60%,#8c806510); }
.issue-cover__veil { position: absolute; inset: 0; z-index: 2; background: repeating-linear-gradient(0deg, #655b4403 0 1px,transparent 1px 3px); pointer-events: none; }
.issue-cover__content { position: relative; z-index: 3; display: flex; height: 100%; flex-direction: column; padding: 1.3rem 1.4rem 1.2rem 1.6rem; }
.cover-meta { display: flex; justify-content: flex-end; gap: .4rem; color: #776b56; font-size: .5rem; letter-spacing: .12em; }
.cover-title { margin-top: 1rem; }
.cover-title h2 { font-family: var(--font-display); font-size: 2.5rem; font-weight: 400; letter-spacing: .12em; line-height: 1.15; }
.cover-footer { display: flex; justify-content: space-between; align-items: end; gap: .5rem; margin-top: auto; border-top: 1px solid #d3cab6; padding-top: .65rem; }
.cover-footer p { font-family: var(--font-display); font-size: 1.05rem; letter-spacing: .04em; }
.issue-cover[data-variant='shelf'] .issue-cover__content { padding: .9rem .9rem .8rem 1.05rem; }
.issue-cover[data-variant='shelf'] .cover-meta { font-size: .35rem; letter-spacing: 0; }
.issue-cover[data-variant='shelf'] .cover-title { margin-top: .8rem; }
.issue-cover[data-variant='shelf'] .cover-title h2 { font-size: 1.7rem; }
.issue-cover[data-variant='shelf'] .cover-footer p { font-size: .7rem; }
.bookcase-section { border-top: 1px solid #dcd7ca; background: #efeee5; scroll-margin-top: 1rem; }
.bookshelf-inner { padding-block: 3rem 3.5rem; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.section-heading .eyebrow { color: #77765e; font-size: .64rem; font-weight: 400; letter-spacing: .16em; }
.section-heading h2 { margin-top: .65rem; font-family: var(--font-display); font-size: 2.25rem; font-weight: 400; }
.shelf-count { display: inline-block; margin-left: .8rem; font-family: var(--font-ui); font-size: .65rem; color: var(--ink-muted); vertical-align: middle; }
.magazine-search { position: relative; width: min(25rem,48%); }
.magazine-search input { width: 100%; height: 2.9rem; border: 0; border-bottom: 1px solid #b9b7a6; border-radius: 0; background: transparent; padding: 0 2.25rem; color: var(--ink); font-size: .78rem; outline: none; }
.magazine-search input:focus { border-color: #92722f; box-shadow: 0 2px 0 #92722f; }
.magazine-search input::-webkit-search-cancel-button { display: none; }
.search-icon, .search-clear { position: absolute; top: 50%; transform: translateY(-50%); color: #74735f; }
.search-icon { left: .25rem; }
.search-clear { right: 0; display: grid; width: 2.2rem; height: 2.2rem; place-items: center; }
.shelf-stage { margin-top: 2.25rem; }
.shelf-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2.5rem; align-items: stretch; }
.shelf-item { display: flex; align-items: center; gap: 2rem; padding: 1.8rem 2rem; background: #f7f5ed; border: 1px solid #ddd9cc; }
.shelf-cover-wrap { width: 145px; flex: 0 0 145px; }
.shelf-item .issue-cover { transform: rotate(-2deg); }
.shelf-item:hover .issue-cover, .shelf-item:focus-visible .issue-cover { transform: rotate(0deg) translateY(-4px); }
.shelf-caption { min-width: 0; }
.shelf-caption .shelf-number { color: var(--stamp-deep); font-size: .64rem; letter-spacing: .15em; }
.shelf-caption h3 { margin-top: .9rem; font-family: var(--font-display); font-size: 1.5rem; font-weight: 400; line-height: 1.5; }
.shelf-caption .shelf-meta { margin-top: .7rem; color: var(--ink-muted); font-size: .68rem; }
.shelf-open-hint { display: inline-flex; align-items: center; gap: 1rem; margin-top: 1.8rem; border-bottom: 1px solid #b8b09a; padding-bottom: .4rem; font-size: .72rem; }
.shelf-next { display: flex; align-items: center; justify-content: center; gap: 2rem; padding: 2rem; border: 1px solid #d8d7c9; }
.next-mark { display: grid; width: 4rem; height: 5.5rem; place-items: center; border: 1px solid #9a9b793d; border-radius: 50% 50% 0 0; color: #737c55; }
.next-mark .icon { width: 1.8rem; height: 1.8rem; stroke-width: 1; }
.shelf-next .eyebrow { color: #77765e; font-weight: 400; font-size: .6rem; }
.shelf-next h3 { margin-top: .8rem; font-family: var(--font-display); font-size: 1.35rem; font-weight: 400; }
.shelf-next p:last-child { margin-top: .7rem; color: #77765e; font-size: .75rem; line-height: 1.9; }
.search-results > p { margin-bottom: 1.25rem; color: var(--ink-muted); font-size: .78rem; }
.search-results > p strong { color: var(--stamp-deep); }
.search-result-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.search-result-card { display: flex; align-items: flex-start; gap: 1rem; border: 1px solid #dcd7ca; background: #faf8f1; padding: 1.3rem; transition: border-color .2s; }
.search-result-card:hover { border-color: #9b967d; }
.search-result-card > img { width: 3rem; aspect-ratio: 2/3; object-fit: cover; }
.result-heading { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; }
.result-heading h3 { font-family: var(--font-display); font-size: 1.15rem; font-weight: 400; }
.result-heading span { color: var(--ink-muted); font-size: .6rem; line-height: 1.6; }
.search-result-card > div > p { margin-top: .7rem; white-space: pre-line; color: var(--ink-soft); font-family: var(--font-display); font-size: 1.05rem; line-height: 1.8; }
mark { background: #f0dc9b; color: inherit; }
.search-empty { display: grid; min-height: 15rem; align-content: center; justify-items: center; border-block: 1px solid #dcd7ca; text-align: center; padding: 2rem; }
.search-empty > .icon { color: #818567; }
.search-empty h3 { margin-top: 1rem; font-family: var(--font-display); font-size: 1.35rem; font-weight: 400; }
.search-empty p { margin-top: .7rem; color: var(--ink-muted); font-size: .8rem; }
.site-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.75rem; color: var(--ink-muted); font-size: .67rem; }
.site-footer p, .site-footer a { display: flex; align-items: center; gap: .5rem; }
.site-footer p > .icon { color: #ac8b37; }
.footer-divider { margin-inline: .5rem; color: #c8c0af; }

/* 阅读器 */
.reader-shell { min-height: 100dvh; overflow: hidden; background: radial-gradient(circle at 50% 18%,rgba(255,254,250,.88),transparent 29rem),linear-gradient(145deg,#eadfc8,#f5eddd 50%,#dfd0b5); }
.reader-toolbar { position: relative; z-index: 10; display: grid; min-height: 5rem; grid-template-columns: 1fr minmax(0,2fr) 1fr; align-items: center; border-bottom: 1px solid rgba(112,88,52,.12); background: rgba(255,249,236,.76); padding: .8rem clamp(1rem,3vw,3rem); backdrop-filter: blur(18px); }
.reader-title { min-width: 0; text-align: center; }
.reader-title strong { display: block; overflow: hidden; font-family: var(--font-display); font-size: 1.2rem; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.reader-title small { display: block; margin-top: .2rem; color: var(--ink-muted); font-family: var(--font-reading); }
.reader-tools { display: flex; align-items: center; justify-content: flex-end; gap: .6rem; }
.reader-tools > span { min-width: 6rem; color: var(--ink-muted); font-family: var(--font-reading); font-size: .72rem; text-align: right; }
.reader-workspace { position: relative; display: flex; min-height: calc(100dvh - 10.5rem); align-items: center; justify-content: center; padding: 1.25rem 4rem 1rem; touch-action: pan-y; user-select: none; }
#reader-content { display: grid; width: 100%; place-items: center; }
.reader-cover-state { display: flex; width: min(23rem,70vw); flex-direction: column; align-items: center; border-radius: 1rem; transition: transform .26s ease; }
.reader-cover-state:hover { transform: translateY(-.35rem); }
.reader-cover-state > span { display: inline-flex; align-items: center; gap: .45rem; margin-top: 2.2rem; border: 1px solid rgba(217,108,74,.24); border-radius: 999px; background: rgba(255,254,250,.82); padding: .65rem 1rem; color: var(--stamp-deep); font-family: var(--font-reading); font-size: .82rem; box-shadow: 0 9px 24px rgba(74,64,54,.1); }
.reader-book { position: relative; display: grid; width: min(66rem,calc(100vw - 9rem),calc((100dvh - 13rem)*1.5)); min-width: 42rem; aspect-ratio: 3/2; grid-template-columns: repeat(2,minmax(0,1fr)); filter: drop-shadow(0 24px 28px rgba(74,64,54,.2)); animation: spread-in .36s ease both; }
.reader-book::before { position: absolute; inset: .4rem -.45rem -.55rem; z-index: -1; border-radius: .3rem .8rem .8rem .3rem; background: #d4c29f; content: ''; }
.reader-book::after { position: absolute; top: 0; bottom: 0; left: 50%; z-index: 3; width: 2rem; background: linear-gradient(90deg,rgba(74,64,54,.08),rgba(255,255,255,.3) 48%,rgba(74,64,54,.11)); content: ''; pointer-events: none; transform: translateX(-50%); }
@keyframes spread-in { from { opacity: .7; transform: perspective(1200px) rotateY(2deg) translateY(.25rem); } }
.reader-page { position: relative; display: flex; min-width: 0; overflow: hidden; flex-direction: column; background: linear-gradient(rgba(255,254,250,.95),rgba(255,254,250,.97)),repeating-linear-gradient(0deg,rgba(74,64,54,.025) 0 1px,transparent 1px 5px); padding: clamp(1.5rem,3.1vw,3.25rem); }
.reader-page--left { border-radius: .8rem .08rem .08rem .8rem; box-shadow: inset -1.6rem 0 2.2rem -2rem rgba(74,64,54,.34); }
.reader-page--right { border-radius: .08rem .8rem .8rem .08rem; box-shadow: inset 1.6rem 0 2.2rem -2rem rgba(74,64,54,.34); }
.reader-page__running-head { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(232,222,201,.8); padding-bottom: .65rem; color: var(--ink-muted); font-family: var(--font-reading); font-size: clamp(.55rem,.9vw,.72rem); letter-spacing: .08em; }
.reader-page__number { position: absolute; right: 1.5rem; bottom: 1rem; color: var(--ink-muted); font-family: var(--font-reading); font-size: .7rem; }
.reader-page--left .reader-page__number { right: auto; left: 1.5rem; }
.reader-work { display: flex; min-height: 0; flex: 1; flex-direction: column; }
.reader-work--sentence { justify-content: center; padding: clamp(2rem,5vw,5rem) clamp(.25rem,2vw,2rem); }
.reader-sentence { max-width: 100%; margin: 0; white-space: pre-line; color: var(--ink); font-family: var(--font-display); line-height: 1.85; letter-spacing: .035em; text-wrap: pretty; }
.reader-sentence--short { font-size: clamp(2rem,3.2vw,3.4rem); }
.reader-sentence--medium { font-size: clamp(1.7rem,2.65vw,2.8rem); }
.reader-sentence--long { font-size: clamp(1.4rem,2.15vw,2.3rem); }
.reader-sentence__author { align-self: flex-end; margin-top: clamp(1.6rem,3vw,2.8rem); color: var(--stamp-deep); font-family: var(--font-reading); font-size: clamp(.78rem,1.1vw,.95rem); letter-spacing: .12em; }
.reader-page[data-template='opening'] .reader-work--sentence { justify-content: flex-start; padding-top: clamp(3.5rem,8vw,7rem); }
.reader-page[data-template='opening'][data-side='right'] .reader-work--sentence { justify-content: flex-end; padding-bottom: clamp(3.5rem,8vw,7rem); }
.reader-page[data-template='text'] .reader-work--sentence { align-items: center; }
.reader-page[data-template='text'] .reader-sentence { max-width: 88%; text-align: center; }
.reader-page[data-template='text'] .reader-sentence__author { align-self: center; }
.reader-page[data-template='manuscript-and-text'] { background: repeating-linear-gradient(0deg,transparent 0 2.55rem,rgba(143,191,117,.13) 2.55rem 2.61rem),linear-gradient(rgba(255,254,250,.96),rgba(255,254,250,.96)); }
.reader-page[data-template='stacked-visual'][data-side='left'] .reader-work--sentence { justify-content: flex-start; padding-top: clamp(4.5rem,11vw,9rem); }
.reader-page[data-template='stacked-visual'][data-side='right'] .reader-work--sentence { justify-content: flex-end; padding-bottom: clamp(4.5rem,11vw,9rem); }
.reader-book[data-template='spread-illustration'] .reader-page--left { background: linear-gradient(120deg,rgba(237,246,232,.78),rgba(255,254,250,.97) 72%); }
.reader-book[data-template='spread-illustration'] .reader-page--right { background: linear-gradient(120deg,rgba(255,254,250,.97) 28%,rgba(255,241,200,.76)); }
.reader-book--collection .reader-page { justify-content: center; }
.reader-book--collection .reader-collection-body { padding-right: clamp(2rem,5vw,5rem); background: linear-gradient(135deg,#fffefa,#fff8e5); }
.reader-book--collection .reader-collection-author { align-items: center; background: linear-gradient(135deg,#fff8e5,#edf6e8); }
.reader-book--collection .reader-sentence { text-align: right; }
.reader-book--collection .reader-sentence__author { align-self: center; margin: 0; font-size: clamp(1rem,1.8vw,1.5rem); }
.reader-title-page { background: radial-gradient(circle at 16% 20%,rgba(244,185,66,.16),transparent 11rem),var(--paper); }
.reader-page-center { margin-block: auto; }
.reader-page-center > .icon { width: 1.75rem; height: 1.75rem; color: var(--stamp); }
.reader-overline { margin-top: 1.5rem; color: var(--stamp-deep); font-family: var(--font-reading); font-size: .8rem; letter-spacing: .18em; }
.reader-page-center h1 { margin-top: 1rem; font-family: var(--font-display); font-size: clamp(2.4rem,4vw,4.5rem); font-weight: 500; line-height: 1.1; }
.reader-page-center > p:last-child { max-width: 24rem; margin-top: 1.75rem; color: var(--ink-soft); font-family: var(--font-reading); font-size: .85rem; line-height: 2; }
.reader-contents-page { background: radial-gradient(circle at 90% 90%,rgba(143,191,117,.12),transparent 14rem),var(--paper); }
.reader-contents-page h2 { margin-top: 2rem; font-family: var(--font-display); font-size: 1.8rem; font-weight: 500; }
.reader-contents { display: grid; gap: .2rem; margin-top: 2rem; }
.reader-content-link { display: flex; align-items: baseline; gap: .7rem; border-radius: .4rem; padding: .4rem .25rem; color: var(--ink-soft); font-family: var(--font-reading); font-size: clamp(.72rem,1.1vw,.95rem); text-align: left; }
.reader-content-link:hover { background: var(--sun-soft); color: var(--stamp-deep); }
.reader-content-link i { height: 1px; flex: 1; border-top: 1px dotted rgba(138,125,111,.55); }
.reader-finished-page, .reader-back-page { align-items: center; justify-content: center; text-align: center; }
.reader-finished-page { background: linear-gradient(145deg,#fffefa,#fff5d6); }
.reader-back-page { background: radial-gradient(circle at 50% 42%,rgba(244,185,66,.2),transparent 12rem),#edf6e8; }
.reader-finished-page > .icon, .reader-back-page > .icon { width: 2rem; height: 2rem; color: var(--stamp); }
.reader-finished-page h2, .reader-back-page h2 { margin-top: 1.25rem; font-family: var(--font-display); font-size: 2rem; font-weight: 500; }
.reader-finished-page p, .reader-back-page p { margin-top: .75rem; color: var(--ink-muted); font-family: var(--font-reading); line-height: 1.8; }
.reader-edge { position: absolute; top: 50%; z-index: 5; display: grid; width: 2.8rem; height: 5.5rem; place-items: center; border: 1px solid rgba(112,88,52,.12); border-radius: 999px; background: rgba(255,254,250,.55); color: var(--ink-muted); opacity: .48; box-shadow: 0 8px 24px rgba(74,64,54,.08); transform: translateY(-50%); }
.reader-edge:hover { background: var(--paper); color: var(--stamp-deep); opacity: 1; }
.reader-edge:disabled { opacity: .15; }
.reader-edge--left { left: .8rem; }
.reader-edge--right { right: .8rem; }
.reader-pagination { position: relative; z-index: 10; display: flex; min-height: 5.5rem; align-items: center; justify-content: center; gap: clamp(1rem,3vw,2.5rem); border-top: 1px solid rgba(112,88,52,.1); background: rgba(255,249,236,.52); padding: .85rem 1.25rem; backdrop-filter: blur(14px); }
.reader-dots { display: flex; align-items: center; gap: .35rem; }
.reader-page-dot { width: .45rem; height: .45rem; border-radius: 50%; background: rgba(138,125,111,.35); padding: 0; transition: width .18s ease, background .18s ease; }
.reader-page-dot.is-active { width: 1.35rem; border-radius: 999px; background: var(--stamp); }

/* 投稿 */
.submission-page { min-height: 100vh; background: radial-gradient(circle at 10% 0%,rgba(244,185,66,.13),transparent 20rem),radial-gradient(circle at 90% 12%,rgba(143,191,117,.1),transparent 22rem),#f8f3e9; }
.submission-wrap { width: min(672px,calc(100% - 2rem)); margin-inline: auto; padding-block: 1.5rem 2.5rem; }
.submission-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.submission-heading { margin-top: 2rem; text-align: center; }
.submission-heading h1, .success-card h1 { font-family: var(--font-display); font-size: clamp(2rem,5vw,2.5rem); font-weight: 500; }
.submission-heading p { margin-top: .5rem; color: var(--ink-muted); font-size: .86rem; line-height: 1.7; }
.submission-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); overflow: hidden; margin-top: 1.75rem; border: 1px solid var(--paper-edge); border-radius: 1rem; background: rgba(255,254,250,.82); }
.submission-step { display: flex; min-width: 0; align-items: center; justify-content: center; gap: .4rem; padding: .75rem .4rem; color: var(--ink-muted); font-size: .72rem; }
.submission-step + .submission-step { border-left: 1px solid var(--paper-edge); }
.submission-step span, .submission-section-number { display: inline-grid; flex: 0 0 auto; place-items: center; border-radius: 50%; background: var(--sun-soft); color: var(--ink); font-size: .7rem; font-weight: 800; }
.submission-step span { width: 1.35rem; height: 1.35rem; }
.submission-section-number { width: 1.75rem; height: 1.75rem; }
.submission-card { margin-top: 1.25rem; border: 1px solid rgba(232,222,201,.95); border-radius: 1.5rem; background: rgba(255,254,250,.95); padding: clamp(1.25rem,4vw,2rem); box-shadow: 0 18px 50px rgba(74,64,54,.08); }
.submission-card fieldset { margin-top: 1.75rem; }
.submission-card fieldset + fieldset { margin-top: 2rem; border-top: 1px solid var(--paper-edge); padding-top: .75rem; }
.submission-card legend { display: flex; align-items: center; gap: .5rem; font-family: var(--font-display); font-size: 1.25rem; }
.submission-card > fieldset > input, .submission-card textarea, .inspector-form textarea, .official-work-form textarea { width: 100%; border: 1px solid var(--paper-edge); border-radius: .65rem; background: #fffefa; padding: .7rem .8rem; color: var(--ink); outline: none; }
.submission-card > fieldset > input { height: 2.75rem; margin-top: 1rem; }
.submission-card input:focus, .submission-card textarea:focus, .inspector-form textarea:focus, .official-work-form textarea:focus { border-color: var(--sun); box-shadow: 0 0 0 3px rgba(244,185,66,.18); }
.submission-editor { position: relative; overflow: visible; margin-top: .5rem; border: 1px solid var(--paper-edge); border-radius: 1rem; background: #fffefa; }
.submission-editor:focus-within { border-color: var(--sun); box-shadow: 0 0 0 3px rgba(244,185,66,.18); }
.submission-editor textarea { min-height: 12rem; resize: vertical; border: 0; border-radius: 1rem 1rem 0 0; background: transparent; font-size: 1rem; line-height: 1.75; box-shadow: none !important; }
.submission-editor__toolbar { display: flex; min-height: 2.8rem; align-items: center; gap: .75rem; border-top: 1px solid rgba(232,222,201,.7); padding: .35rem .5rem .35rem .8rem; }
.submission-editor__toolbar > span { min-width: 0; flex: 1; overflow: hidden; color: var(--ink-muted); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.attachment-menu-wrap { position: relative; }
.attachment-menu { position: absolute; right: 0; bottom: calc(100% + .4rem); z-index: 5; width: 12rem; overflow: hidden; border: 1px solid var(--paper-edge); border-radius: .75rem; background: var(--paper); padding: .3rem; box-shadow: 0 14px 34px rgba(74,64,54,.15); }
.attachment-menu button { display: flex; width: 100%; align-items: center; gap: .55rem; border-radius: .5rem; padding: .6rem .7rem; color: var(--ink-soft); font-size: .8rem; text-align: left; }
.attachment-menu button:hover { background: var(--sun-soft); }
.consent-list { display: grid; gap: .75rem; margin-top: .5rem; }
.submission-consent { display: flex; cursor: pointer; align-items: flex-start; gap: .8rem; border: 1px solid var(--paper-edge); border-radius: 1rem; background: #fffefa; padding: .9rem 1rem; }
.submission-consent input { width: 1.1rem; height: 1.1rem; margin-top: .15rem; accent-color: var(--sun-deep); }
.submission-consent strong, .submission-consent small { display: block; }
.submission-consent strong { font-size: .83rem; }
.submission-consent small { margin-top: .25rem; color: var(--ink-muted); font-size: .72rem; line-height: 1.45; }
.privacy-note { display: flex; align-items: flex-start; gap: .75rem; margin-top: 2rem; border-radius: 1rem; background: rgba(237,246,232,.75); padding: 1rem; }
.privacy-note .icon { margin-top: .2rem; color: var(--leaf-deep); }
.privacy-note p { color: var(--ink-soft); font-size: .72rem; line-height: 1.8; }
.submission-card > .button-block { margin-top: 1.5rem; }
.anonymous-note { margin-top: .5rem; color: var(--ink-muted); font-size: .72rem; text-align: center; }
.submission-success { display: grid; min-height: 100dvh; place-items: center; padding: 2rem 1rem; }
.success-card { width: min(576px,100%); margin: 0; text-align: center; }
.success-icon { display: grid; width: 4rem; height: 4rem; margin-inline: auto; place-items: center; border-radius: 50%; background: var(--leaf-soft); color: var(--leaf-deep); }
.success-icon .icon { width: 2rem; height: 2rem; }
.success-card .eyebrow { justify-content: center; margin-top: 1.25rem; }
.success-card h1 { margin-top: .5rem; }
.success-card > p:not(.eyebrow) { margin-top: 1rem; color: var(--ink-muted); font-size: .86rem; line-height: 1.9; }
.success-card .notice { margin-top: 1.5rem; text-align: left; }
.success-card .button { margin-top: 1.5rem; }

/* 后台 */
.admin-auth-root { display: grid; min-height: 100dvh; place-items: center; background: radial-gradient(circle at 18% 12%,rgba(244,185,66,.16),transparent 22rem),radial-gradient(circle at 88% 18%,rgba(143,191,117,.12),transparent 24rem),#f6f1e7; padding: 2rem 1rem; }
.admin-login-card { display: grid; width: min(28rem,100%); gap: 1.4rem; border: 1px solid var(--paper-edge); border-radius: 1.5rem; background: rgba(255,254,250,.94); padding: clamp(1.5rem,5vw,2.25rem); box-shadow: 0 24px 70px rgba(74,64,54,.12); }
.admin-login-card h1 { margin-top: .45rem; font-family: var(--font-display); font-size: 2rem; font-weight: 500; }
.admin-login-card > div > p:last-child { margin-top: .55rem; color: var(--ink-muted); font-size: .8rem; line-height: 1.7; }
.admin-login-card--loading { justify-items: center; color: var(--ink-muted); font-size: .82rem; }
.admin-login-form { display: grid; gap: 1rem; }
.admin-login-form label { color: var(--ink-muted); font-size: .75rem; font-weight: 700; }
.admin-login-form input, .submission-review-actions input { width: 100%; height: 2.8rem; margin-top: .4rem; border: 1px solid var(--paper-edge); border-radius: .7rem; background: var(--paper); padding: 0 .8rem; color: var(--ink); outline: none; }
.admin-login-form input:focus, .submission-review-actions input:focus { border-color: var(--sun); box-shadow: 0 0 0 3px rgba(244,185,66,.18); }
.admin-loading { width: 1.5rem; height: 1.5rem; border: 2px solid var(--paper-edge); border-top-color: var(--sun-deep); border-radius: 50%; animation: admin-spin .8s linear infinite; }
@keyframes admin-spin { to { transform: rotate(360deg); } }
.admin-shell { display: grid; min-height: 100dvh; grid-template-columns: 15rem minmax(0,1fr); background: radial-gradient(circle at 90% 5%,rgba(143,191,117,.1),transparent 24rem),#f6f1e7; }
.admin-sidebar { position: sticky; top: 0; display: flex; height: 100dvh; flex-direction: column; border-right: 1px solid var(--paper-edge); background: rgba(255,254,250,.88); backdrop-filter: blur(18px); }
.admin-brand { border-bottom: 1px solid var(--paper-edge); padding: 1.25rem; }
.admin-brand > p, .admin-user { color: var(--ink-muted); font-size: .72rem; line-height: 1.7; }
.admin-brand > p { margin-top: 1rem; }
#admin-nav { display: flex; flex: 1; flex-direction: column; gap: .35rem; padding: .75rem; }
.admin-nav-item { display: flex; min-height: 2.8rem; align-items: center; gap: .7rem; border-radius: .85rem; padding: .65rem .8rem; color: var(--ink-muted); font-size: .86rem; text-align: left; }
.admin-nav-item:hover { background: var(--sun-soft); color: var(--ink); }
.admin-nav-item.is-active { background: var(--sun); color: var(--ink); font-weight: 700; box-shadow: 0 8px 18px rgba(171,119,18,.14); }
.admin-nav-item small { margin-left: auto; border-radius: 999px; background: rgba(255,255,255,.7); padding: .1rem .5rem; }
.admin-user { border-top: 1px solid var(--paper-edge); padding: 1rem; }
.admin-user strong { color: var(--ink); }
.admin-sign-out { margin-top: .55rem; color: var(--stamp-deep); font-size: .7rem; font-weight: 700; }
.admin-main { min-width: 0; }
.admin-topbar { display: flex; min-height: 5.25rem; align-items: center; justify-content: space-between; gap: 1.5rem; border-bottom: 1px solid var(--paper-edge); background: rgba(255,254,250,.7); padding: .9rem clamp(1.5rem,3vw,2.25rem); backdrop-filter: blur(14px); }
.admin-topbar h1 { font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; }
.admin-topbar > div > p:last-child { margin-top: .25rem; color: var(--ink-muted); font-size: .82rem; }
.admin-topbar-actions { display: flex; align-items: center; gap: 1rem; }
.prototype-chip { display: inline-flex; align-items: center; border: 1px solid #e6c985; border-radius: 999px; background: #fff6d9; padding: .3rem .65rem; color: #70552d; font-size: .68rem; font-weight: 700; cursor: help; }
.prototype-chip.is-connected { border-color: #cfe3c6; background: var(--leaf-soft); color: var(--leaf-deep); }
.admin-content { width: 100%; max-width: 92rem; margin-inline: auto; padding: clamp(1.5rem,3vw,2.25rem); }
.admin-stack { display: grid; min-width: 0; max-width: 100%; gap: 1.25rem; }
.admin-panel, .admin-stat-card { border: 1px solid rgba(232,222,201,.92); background: rgba(255,254,250,.9); box-shadow: 0 12px 32px rgba(74,64,54,.06); }
.admin-panel { min-width: 0; max-width: 100%; border-radius: 1.35rem; padding: clamp(1.25rem,2.5vw,1.8rem); }
.admin-panel h2 { font-family: var(--font-display); font-size: 1.55rem; font-weight: 500; }
.admin-panel h3 { font-size: 1rem; }
.admin-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.admin-stat-card { overflow: hidden; border-radius: 1.1rem; padding: 1.25rem; }
.admin-stat-card--sun { border-top: 3px solid var(--sun); }.admin-stat-card--leaf { border-top: 3px solid var(--leaf); }.admin-stat-card--stamp { border-top: 3px solid var(--stamp); }.admin-stat-card--paper { border-top: 3px solid var(--paper-edge); }
.admin-stat-card p { color: var(--ink-muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; }
.admin-stat-card strong { display: block; margin-top: .65rem; font-family: var(--font-display); font-size: 2.25rem; font-weight: 500; }
.admin-stat-card small { display: block; margin-top: .5rem; color: var(--ink-muted); }
.panel-heading { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.panel-heading h2, .panel-heading h3 { margin-top: .65rem; font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; }
.panel-heading p { margin-top: .35rem; color: var(--ink-muted); font-size: .8rem; line-height: 1.6; }
.panel-copy { margin-top: 1rem; color: var(--ink-muted); font-size: .85rem; line-height: 1.8; }
.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.issue-switcher { display: flex; min-width: 0; gap: .65rem; overflow-x: auto; padding: .15rem .15rem .45rem; }
.issue-switcher__item, .issue-switcher__new { display: grid; min-width: 11rem; min-height: 5.4rem; align-content: center; justify-items: start; gap: .3rem; border: 1px solid var(--paper-edge); border-radius: 1rem; background: rgba(255,254,250,.82); padding: .75rem 1rem; text-align: left; }
.issue-switcher__item:hover, .issue-switcher__new:hover { border-color: rgba(217,155,33,.45); background: var(--sun-soft); }
.issue-switcher__item.is-active { border-color: var(--sun-deep); background: #fff9e9; box-shadow: 0 8px 20px rgba(171,119,18,.1); }
.issue-switcher__item > span { color: var(--ink-muted); font-size: .68rem; }
.issue-switcher__item > strong { max-width: 9rem; overflow: hidden; font-family: var(--font-display); font-size: .9rem; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.issue-switcher__item .badge { margin-top: .15rem; }
.issue-switcher__new { display: flex; min-width: 8.5rem; align-items: center; justify-content: center; color: var(--stamp-deep); font-size: .78rem; font-weight: 700; }
.new-issue-panel { max-width: 52rem; }
.new-issue-form { display: grid; grid-template-columns: 8rem minmax(14rem,1fr) minmax(12rem,1fr); align-items: end; gap: 1rem; margin-top: 1.5rem; }
.new-issue-form label { color: var(--ink-muted); font-size: .72rem; font-weight: 700; }
.new-issue-form input { width: 100%; height: 2.65rem; margin-top: .45rem; border: 1px solid var(--paper-edge); border-radius: .65rem; background: var(--paper); padding: 0 .75rem; color: var(--ink); outline: none; }
.new-issue-form input:focus { border-color: var(--sun); box-shadow: 0 0 0 3px rgba(244,185,66,.18); }
.admin-flow-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; margin-top: 1.5rem; }
.admin-flow-step { position: relative; display: flex; align-items: flex-start; gap: .75rem; border-radius: 1rem; background: #f8f3e9; padding: 1rem; }
.admin-flow-step > span { display: grid; width: 1.8rem; height: 1.8rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: var(--sun); font-size: .75rem; font-weight: 800; }
.admin-flow-step p { margin-top: .3rem; color: var(--ink-muted); font-size: .72rem; line-height: 1.5; }
.admin-flow-arrow { position: absolute; top: 50%; right: -.95rem; z-index: 2; color: var(--paper-edge); transform: translateY(-50%); }
.admin-two-column { display: grid; grid-template-columns: 1.4fr 1fr; align-items: start; gap: 1.25rem; }
.warning-panel { border-left: 4px solid var(--stamp); }
.warning-panel > .icon { color: var(--stamp-deep); }
.warning-panel h3 { margin-top: .75rem; }
.warning-panel p, .publish-blocked p { margin-top: .6rem; color: var(--ink-muted); font-size: .84rem; line-height: 1.7; }
.text-button { margin-top: 1rem; color: var(--stamp-deep); font-size: .82rem; font-weight: 700; }
.intake-grid { grid-template-columns: 1.2fr .8fr; }
.intake-cover { width: 7.25rem; height: 10.25rem; border: 1px solid var(--paper-edge); border-radius: .35rem; object-fit: cover; box-shadow: 0 8px 20px rgba(74,64,54,.12); }
.intake-cover--placeholder { display: grid; place-items: center; background: linear-gradient(145deg,var(--sun-soft),var(--leaf-soft)); padding: 1rem; color: var(--ink-muted); font-family: var(--font-display); font-size: .8rem; text-align: center; }
.info-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; margin-top: 1.5rem; }
.info-grid--compact { grid-template-columns: repeat(2,minmax(0,1fr)); }
.info-grid > div { border: 1px solid var(--paper-edge); border-radius: .75rem; background: rgba(255,255,255,.75); padding: 1rem; }
.info-grid small, .info-grid strong { display: block; }.info-grid small { color: var(--ink-muted); }.info-grid strong { margin-top: .35rem; font-family: var(--font-display); font-size: 1.25rem; font-weight: 500; }
.teacher-steps { margin-top: 1.5rem; border-radius: 1rem; background: #f7f2e8; padding: 1rem; }
.teacher-steps ol { margin: .75rem 0 0; padding: 0; color: var(--ink-muted); font-size: .82rem; line-height: 1.8; list-style: none; }
.compact-help { color: var(--ink-muted); font-size: .75rem; }
.compact-help summary, .url-details summary { cursor: pointer; color: var(--stamp-deep); font-weight: 700; }
.issue-summary > .compact-help { margin-top: 1rem; }
.compact-help ol { margin: .65rem 0 0; padding-left: 1.25rem; line-height: 1.8; }
.admin-qr-panel { display: flex; align-items: center; flex-direction: column; justify-content: center; text-align: center; }
.admin-qr-panel h2 { margin-top: .5rem; }
.admin-qr-panel.is-disabled { min-height: 28rem; border-style: dashed; background: rgba(255,254,250,.58); }
.admin-qr-image { width: 220px; height: 220px; margin-block: 1.2rem; border: 1px solid var(--paper-edge); border-radius: 1rem; background: var(--paper); padding: .55rem; box-shadow: 0 10px 28px rgba(74,64,54,.1); }
.break-url { max-width: 100%; overflow-wrap: anywhere; color: var(--ink-muted); font-size: .72rem; line-height: 1.5; }
.url-details { width: 100%; }
.url-details .break-url { margin-top: .55rem; }
.admin-qr-panel .button-row { justify-content: center; margin-top: 1rem; }
.qr-paused { display: grid; max-width: 20rem; place-items: center; gap: 1rem; margin-top: 2.5rem; color: var(--ink-muted); }
.qr-paused > .icon { width: 2.4rem; height: 2.4rem; color: var(--paper-edge); }
.qr-paused p { font-size: .8rem; line-height: 1.75; }
.qr-help { margin-top: 1rem; border-radius: .75rem; background: var(--stamp-soft); padding: .6rem .75rem; color: var(--stamp-deep); font-size: .7rem; line-height: 1.55; }
.qr-error { display: grid; width: 220px; height: 220px; margin: 1.2rem 0; place-items: center; border: 1px dashed var(--paper-edge); color: var(--ink-muted); font-size: .8rem; }
.empty-state { display: grid; min-height: 18rem; margin-top: 2rem; place-items: center; align-content: center; border: 1px dashed var(--paper-edge); border-radius: 1rem; background: #fffdfa; padding: 2rem; text-align: center; }
.empty-state > .icon { width: 2.5rem; height: 2.5rem; color: var(--paper-edge); }
.empty-state h2, .empty-state h3 { margin-top: 1rem; font-family: var(--font-display); font-size: 1.3rem; font-weight: 500; }
.empty-state p { max-width: 36rem; margin-top: .5rem; color: var(--ink-muted); font-size: .82rem; line-height: 1.7; }
.empty-state .button { margin-top: 1rem; }
.empty-state--compact { min-height: 12rem; margin-top: 0; }
.compact-empty-panel { padding: 1rem; }
.submission-review-list { display: grid; gap: 1rem; }
.submission-review-card { padding: 1.25rem; }
.submission-review-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.submission-review-heading h2 { margin-top: .65rem; font-size: 1.3rem; }
.submission-review-heading p { margin-top: .3rem; color: var(--ink-muted); font-size: .7rem; }
.submission-review-body { margin-top: 1rem; border-left: 3px solid var(--sun); background: #faf7f0; padding: .9rem 1rem; white-space: pre-line; font-family: var(--font-display); font-size: 1rem; line-height: 1.8; }
.submission-review-actions { display: grid; grid-template-columns: minmax(12rem,1fr) auto auto; align-items: end; gap: .6rem; margin-top: 1rem; }
.submission-review-actions input { margin-top: 0; }
.trash-empty { margin-top: 0; }
.library-summary { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem 1rem; }
.library-summary p { font-family: var(--font-display); font-size: 1.1rem; }
.library-summary > span { color: var(--ink-muted); font-size: .72rem; }
.library-summary .compact-help { margin-left: auto; }
.system-tabs { display: flex; gap: .35rem; border-bottom: 1px solid var(--paper-edge); padding: 0 .5rem .75rem; }
.system-tabs button { border-radius: 999px; padding: .45rem .8rem; color: var(--ink-muted); font-size: .78rem; }
.system-tabs button.is-active { background: var(--sun-soft); color: var(--ink); font-weight: 700; }
.admin-table-wrap { overflow-x: auto; margin-top: 1.25rem; border: 1px solid var(--paper-edge); border-radius: 1rem; }
.admin-table { width: 100%; border-collapse: collapse; background: rgba(255,254,250,.7); font-size: .8rem; }
.admin-table th { background: rgba(245,237,221,.68); padding: .8rem 1rem; color: var(--ink-muted); font-size: .7rem; letter-spacing: .06em; text-align: left; }
.admin-table td { border-top: 1px solid rgba(232,222,201,.7); padding: .9rem 1rem; vertical-align: top; }
.admin-table tbody tr:hover { background: rgba(255,241,200,.36); }
.admin-table .work-body { min-width: 20rem; white-space: pre-line; color: var(--ink-soft); line-height: 1.7; }
.admin-table tr.is-editing { background: var(--stamp-soft); }
.table-action { display: inline-flex; align-items: center; gap: .35rem; border-radius: .5rem; padding: .4rem .55rem; color: var(--stamp-deep); font-size: .75rem; font-weight: 700; white-space: nowrap; }
.table-action:hover { background: var(--sun-soft); }
.version-label { display: block; color: var(--ink); font-weight: 700; }
.version-time { display: block; margin-top: .3rem; color: var(--ink-muted); white-space: nowrap; }
.work-version-guide { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: .75rem; margin-top: 1.25rem; border: 1px solid #e7dcc6; border-radius: 1rem; background: #faf6ed; padding: .9rem 1rem; }
.work-version-guide > div { display: grid; grid-template-columns: 1.7rem minmax(0,1fr); align-items: center; gap: 0 .65rem; }
.work-version-guide > div > span { display: grid; width: 1.7rem; height: 1.7rem; grid-row: 1 / 3; place-items: center; border-radius: 50%; background: var(--sun-soft); color: var(--ink); font-size: .7rem; font-weight: 800; }
.work-version-guide strong { font-size: .8rem; }
.work-version-guide small { margin-top: .15rem; color: var(--ink-muted); font-size: .68rem; }
.work-version-guide > .icon { color: var(--paper-edge); }
.work-editor-card { scroll-margin-top: 1rem; border-top: 4px solid var(--stamp); }
.save-notice { display: flex; align-items: center; gap: .55rem; margin-top: 1rem; border-radius: .75rem; background: var(--leaf-soft); padding: .7rem .85rem; color: var(--leaf-deep); font-size: .78rem; }
.official-editor-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1rem; margin-top: 1.25rem; }
.readonly-work-record, .official-work-form { border-radius: 1rem; padding: 1rem; }
.readonly-work-record { border: 1px dashed #d8cdb8; background: #f8f4eb; }
.record-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.readonly-work-record > p { min-height: 8rem; margin-top: 1rem; white-space: pre-line; color: var(--ink); font-family: var(--font-display); font-size: 1.05rem; line-height: 1.8; }
.readonly-work-record > small { display: block; margin-top: 1rem; color: var(--ink-muted); font-size: .7rem; line-height: 1.6; }
.official-work-form { border: 1px solid var(--paper-edge); background: white; }
.official-work-form > label { display: block; color: var(--ink); font-size: .8rem; font-weight: 700; }
.official-work-form textarea { min-height: 9.5rem; margin-top: .55rem; resize: vertical; font-family: var(--font-display); font-size: 1rem; line-height: 1.8; }
.official-work-form > p { margin-top: .65rem; color: var(--ink-muted); font-size: .7rem; line-height: 1.6; }
.official-work-form .button-row { justify-content: flex-end; margin-top: 1rem; }
.status-ok { display: inline-flex; align-items: center; gap: .25rem; color: var(--leaf-deep); }
.status-warn { color: var(--stamp-deep); }
.check-list { display: grid; gap: .75rem; margin-top: 1.25rem; }
.check-list > div { display: flex; align-items: flex-start; gap: .75rem; border: 1px solid var(--paper-edge); border-radius: .75rem; background: rgba(255,255,255,.7); padding: 1rem; }
.check-list > div > .icon { margin-top: .1rem; }.check-list strong, .check-list small { display: block; }.check-list small { margin-top: .3rem; color: var(--ink-muted); }
.publish-blocked { border-top: 4px solid var(--stamp); text-align: center; }
.publish-blocked > .icon { width: 2rem; height: 2rem; color: var(--stamp-deep); }.publish-blocked h2 { margin-top: 1rem; }.publish-blocked .button { margin-top: 1.25rem; }
.compact-panel { padding: 1.25rem; }
.admin-editor-workspace { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(20rem,.75fr); align-items: start; gap: 1rem; }
.order-panel { padding: 0; overflow: hidden; }
.order-heading { border-bottom: 1px solid var(--paper-edge); padding: 1rem 1.25rem; }
.admin-order-list { max-height: calc(100dvh - 12rem); overflow-y: auto; padding: .8rem; }
.admin-page-divider { display: flex; align-items: center; gap: .75rem; padding: .45rem .35rem; color: var(--ink-muted); font-size: .68rem; font-weight: 700; }.admin-page-divider i { height: 1px; flex: 1; background: var(--paper-edge); }
.admin-order-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .5rem; border: 1px solid transparent; border-radius: .9rem; }
.admin-order-row:hover { background: #faf6ed; }.admin-order-row.is-selected { border-color: rgba(217,108,74,.3); background: #fff9f5; box-shadow: 0 5px 14px rgba(74,64,54,.05); }
.admin-order-select { display: flex; min-width: 0; align-items: flex-start; gap: .8rem; border-radius: .8rem; padding: .75rem; text-align: left; }
.admin-order-select > span:last-child { min-width: 0; flex: 1; }.admin-order-select strong, .admin-order-select small { display: block; }.admin-order-select small { display: -webkit-box; overflow: hidden; margin-top: .3rem; color: var(--ink-muted); font-size: .72rem; line-height: 1.5; white-space: pre-line; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.admin-order-number { display: grid; width: 1.75rem; height: 1.75rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #f4eee2; color: var(--ink-muted); font-size: .7rem; font-weight: 800; }.admin-order-row.is-selected .admin-order-number { background: var(--sun); color: var(--ink); }
.override-dot { display: inline-block; width: .45rem; height: .45rem; margin-left: .4rem; border-radius: 50%; background: var(--stamp); vertical-align: middle; }
.admin-order-controls { display: flex; gap: .1rem; padding-right: .45rem; }.admin-order-controls .icon-button { width: 2rem; height: 2rem; }.admin-order-controls .icon-button:disabled { opacity: .25; }
.admin-editor-inspector { position: sticky; top: 1rem; }
.admin-mini-spread { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: hidden; margin-top: 1rem; border: 1px solid #dacdb7; border-radius: .5rem; background: #fffdfa; box-shadow: 0 12px 30px rgba(74,64,54,.1); }
.admin-mini-page { position: relative; display: grid; min-height: 15rem; place-items: center; padding: 1.4rem 1rem 2rem; text-align: center; }.admin-mini-page + .admin-mini-page { border-left: 1px solid var(--paper-edge); }.admin-mini-page p { font-family: var(--font-display); line-height: 1.7; }.admin-mini-page strong { display: block; margin-top: 1.25rem; color: var(--stamp-deep); font-size: .7rem; }.admin-mini-page em { color: var(--paper-edge); font-size: .72rem; }.admin-mini-page > span { position: absolute; right: 0; bottom: .65rem; left: 0; color: var(--ink-muted); font-size: .65rem; }
.inspector-form { margin-top: 1rem; }.inspector-form h3 { display: flex; align-items: center; gap: .4rem; font-family: var(--font-display); font-size: 1.25rem; font-weight: 500; }.inspector-form h3 .icon { color: var(--stamp-deep); }.inspector-form label { display: block; margin-top: 1rem; color: var(--ink-muted); font-size: .72rem; }.inspector-form label strong { display: block; margin-top: .3rem; color: var(--ink); font-size: .85rem; }.inspector-form textarea { margin-top: .5rem; resize: vertical; line-height: 1.6; }.inspector-form > p { margin-top: .5rem; color: var(--ink-muted); font-size: .7rem; line-height: 1.6; }
.issue-body-editor .panel-heading h3 { margin-top: 0; }
.issue-body-editor .panel-heading p { max-width: 18rem; }
.official-body-reference { margin-top: 1rem; border: 1px dashed #d8cdb8; border-radius: .75rem; background: #f8f4eb; padding: .75rem; color: var(--ink-muted); font-size: .68rem; }
.official-body-reference summary { cursor: pointer; font-weight: 700; }
.official-body-reference button { margin-top: .65rem; color: var(--stamp-deep); font-weight: 700; }
.official-body-reference > p { margin-top: .65rem; white-space: pre-line; color: var(--ink-soft); font-family: var(--font-display); font-size: .83rem; line-height: 1.6; }
.issue-editor-actions { justify-content: flex-end; margin-top: .65rem; }

@media (max-width: 1023px) {
  .admin-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 900px) {
  .admin-shell { display: block; }
  .admin-sidebar { position: relative; height: auto; border-right: 0; border-bottom: 1px solid var(--paper-edge); }
  .admin-brand { padding-bottom: .8rem; }
  #admin-nav { flex-direction: row; overflow-x: auto; padding-bottom: .8rem; }
  .admin-nav-item { flex: 0 0 auto; }
  .admin-user { display: none; }
  .admin-flow-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-flow-arrow { display: none; }
  .admin-editor-workspace, .admin-two-column, .intake-grid { grid-template-columns: 1fr; }
  .new-issue-form { grid-template-columns: 1fr 1fr; }
  .new-issue-form .button-row { grid-column: 1 / -1; }
  .official-editor-grid { grid-template-columns: 1fr; }
  .admin-order-list { max-height: none; }
  .admin-editor-inspector { position: static; }
}

@media (max-width: 767px) {
  .reader-toolbar { min-height: 4.4rem; padding-inline: .7rem; }
  .reader-title strong { font-size: 1rem; }
  .reader-tools > span, .desktop-label { display: none; }
  .reader-workspace { min-height: calc(100dvh - 9.4rem); overflow-x: auto; justify-content: flex-start; padding: 1rem 3.2rem; }
  #reader-content { min-width: 38rem; }
  .reader-cover-state { width: min(19rem,70vw); }
  #reader-content:has(.reader-cover-state) { min-width: calc(100vw - 6.4rem); }
  .reader-book { width: 38rem; min-width: 38rem; }
  .reader-edge { position: fixed; top: 50%; width: 2.25rem; height: 4rem; }
  .reader-pagination { min-height: 5rem; gap: .6rem; padding-inline: .65rem; }
  .reader-pagination .button { padding-inline: .75rem; font-size: .78rem; }
  .reader-dots { gap: .22rem; }
  .reader-page-dot { width: .38rem; height: .38rem; }
  .reader-page-dot.is-active { width: .9rem; }
  .admin-topbar { align-items: flex-start; flex-direction: column; }
  .admin-topbar-actions { width: 100%; justify-content: space-between; }
  .submission-review-actions { grid-template-columns: 1fr 1fr; }
  .submission-review-actions input { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
  .brand-symbol { width: 2.6rem; height: 2.6rem; }.brand strong { font-size: 1.08rem; }
  .submission-step { gap: .2rem; flex-direction: column; text-align: center; }
  .admin-flow-grid, .admin-stats, .info-grid { grid-template-columns: 1fr; }
  .new-issue-form { grid-template-columns: 1fr; }
  .work-version-guide { grid-template-columns: 1fr; }
  .work-version-guide > .icon { display: none; }
  .admin-content { padding: 1rem; }
  .admin-topbar { padding-inline: 1rem; }
  .reader-pagination .button { min-width: 2.7rem; overflow: hidden; white-space: nowrap; }
}

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

/* 全站纸感、控件与阅读节奏 */
.container, .container.wide { width: min(1160px, calc(100% - 5rem)); }
.brand { gap: .7rem; }
.brand-symbol { width: 2.6rem; height: 2.6rem; border: 1px solid #ad9651; border-radius: 50% 50% 3px 3px; background: transparent; color: #8c743a; box-shadow: none; }
.brand-symbol .brand-book { width: 1.4rem; height: 1.4rem; }
.brand-symbol .brand-sun { top: -.3rem; right: -.25rem; width: .85rem; height: .85rem; fill: #f7f4ec; color: #a18a48; }
.brand strong { font-size: 1.3rem; font-weight: 400; }
.brand small { display: block; margin-top: .2rem; color: var(--ink-muted); font-size: .52rem; letter-spacing: .13em; }
.reader-shell { background: #deddd2; }
.reader-toolbar { min-height: 4.7rem; background: #f7f4ed; backdrop-filter: none; }
.reader-workspace { min-height: calc(100dvh - 10rem); }
.reader-title strong { font-size: 1.05rem; }
.reader-title small { font-family: var(--font-ui); font-size: .65rem; }
.reader-tools .button { font-size: .72rem; }
.reader-pagination { background: #f7f4ed; backdrop-filter: none; }
.reader-cover-state { width: min(19rem,65vw); }
.reader-cover-state > div { width: 100%; }
.reader-cover-state > span { border: 0; border-radius: 0; background: none; box-shadow: none; color: var(--ink-soft); font-size: .73rem; }
.reader-book { filter: drop-shadow(0 12px 18px #37362723); }
.reader-book::before { background: repeating-linear-gradient(0deg,#c7c0ac 0 1px,#ece7dc 1px 3px); }
.reader-page--left { border-radius: 2px 0 0 2px; }
.reader-page--right { border-radius: 0 2px 2px 0; }
.reader-page { background: #fcfaf4; }
.reader-title-page, .reader-contents-page { background: #fcfaf4; }
.reader-contents { margin-top: 1.5rem; }
.reader-content-link { min-height: 2.5rem; border-bottom: 1px solid #e6e0d3; border-radius: 0; }
.reader-page-center h1 { font-weight: 400; }
.reader-edge { width: 2.4rem; height: 3rem; border-radius: 3px; background: #f7f4ed; box-shadow: none; opacity: .8; }
.reader-dots { gap: 0; }
.reader-page-dot { display: grid; width: 1.4rem; height: 2.25rem; place-items: center; border-radius: 0; background: none; }
.reader-page-dot::after { width: 4px; height: 4px; border-radius: 50%; background: #a8a493; content: ''; }
.reader-page-dot.is-active { width: 1.4rem; background: none; }
.reader-page-dot.is-active::after { width: 6px; height: 6px; background: #a0783b; }
.reader-page-dot:hover::after { background: var(--ink); }
.reader-finished-page, .reader-back-page { background: #f6f2e8; }
.reader-finish-actions { display: flex; gap: .75rem; margin-top: 1.5rem; font-size: .8rem; }
.reader-progress { position: absolute; bottom: 0; left: 0; width: var(--read-progress, 0%); height: 2px; background: #b89543; transition: width .25s ease; }
.submission-page { background: #f2f0e7; }
.submission-wrap { width: min(720px,calc(100% - 2rem)); padding-block: 2rem 3rem; }
.submission-header { border-bottom: 1px solid #dad5c7; padding-bottom: 1.5rem; }
.submission-heading { margin-top: 2.5rem; }
.submission-heading::before { display: block; content: '向阳小刊 · 作品录入'; margin-bottom: 1rem; color: #927343; font-size: .64rem; letter-spacing: .18em; }
.submission-card { border-radius: 4px; background: #fcfaf5; box-shadow: 0 5px 18px #4a403606; border-color: #dcd7ca; }
.submission-editor, .submission-editor textarea, .notice, .submission-consent, .privacy-note { border-radius: 4px; }
.submission-section-number { border-radius: 2px; background: #e9e4d5; color: #6d6047; }
.submission-step > span { background: #e8e1ce; box-shadow: none; }
.admin-shell { background: #f3f2eb; }
.admin-sidebar { background: #ecece2; }
.admin-topbar { background: #faf8f1; backdrop-filter: none; }
.admin-brand > p { letter-spacing: .13em; font-size: .64rem; }
.admin-nav-item { border-radius: 3px; min-height: 3rem; }
.admin-nav-item.is-active { background: #dcdcc9; color: #414b34; box-shadow: inset 3px 0 #788360; }
.admin-nav-item:hover { background: #e2e2d4; }
.admin-panel, .admin-stat-card { border-radius: 5px; background: #fdfbf6; box-shadow: none; border-color: #dedacd; }
.admin-panel h2 { font-size: 1.4rem; }
.issue-switcher__item, .issue-switcher__new, .info-grid > div, .admin-flow-step, .empty-state, .official-body-reference { border-radius: 4px; box-shadow: none; }
.issue-switcher__item.is-active { background: #eeedde; border-color: #979a79; box-shadow: none; }
.admin-stat-card { border-top-width: 2px; }
.admin-qr-image { border-radius: 3px; box-shadow: none; }
.admin-auth-card { border-radius: 5px; box-shadow: 0 12px 40px #4a40360a; }
.issue-summary-editor { margin-top: 1.15rem; border-top: 1px solid var(--paper-edge); padding-top: 1.1rem; }
.issue-summary-editor label, .new-issue-summary { display: block; color: var(--ink-muted); font-size: .72rem; font-weight: 700; }
.issue-summary-editor textarea, .new-issue-form textarea { width: 100%; min-height: 5.6rem; margin-top: .45rem; resize: vertical; border: 1px solid var(--paper-edge); border-radius: .65rem; background: var(--paper); padding: .7rem .8rem; color: var(--ink); font-size: .82rem; line-height: 1.7; outline: none; }
.issue-summary-editor textarea:focus, .new-issue-form textarea:focus { border-color: var(--sun); box-shadow: 0 0 0 3px rgba(244,185,66,.18); }
.issue-summary-editor .button-row { justify-content: flex-end; margin-top: .65rem; }
.new-issue-summary { grid-column: 1 / -1; }

@media (min-width: 768px) and (max-width: 1023px) {
  .hero { gap: 3rem; }
  .cover-stage { min-height: 480px; padding-inline: 2.75rem; }
  .hero-copy h1 { font-size: 3.6rem; }
  .shelf-item { gap: 1.4rem; padding: 1.5rem; }
  .shelf-cover-wrap { width: 115px; flex-basis: 115px; }
  .shelf-next { gap: 1.2rem; padding: 1.5rem; }
  .shelf-caption h3 { font-size: 1.25rem; }
  .issue-cover[data-variant='shelf'] .cover-title h2 { font-size: 1.35rem; }
}
@media (max-width: 767px) {
  .container, .container.wide { width: calc(100% - 2.5rem); }
  .site-header { min-height: 85px; }
  .site-header-actions { gap: 1rem; }
  .home-nav { gap: 1rem; }
  .home-nav a { font-size: .72rem; }
  .home-nav a:first-child { display: none; }
  .editor-entry { border-left: 0; padding-left: 0; font-size: .68rem; }
  .editor-entry .icon { display: none; }
  .hero { grid-template-columns: 1fr; gap: 2rem; padding-block: 2.5rem 3rem; }
  .hero-copy { grid-row: 1; }
  .hero-copy h1 { font-size: clamp(2.8rem,11vw,4rem); margin-top: 1.3rem; }
  .hero-copy h1 br { display: none; }
  .hero-copy h1 > span:not(.title-period) { display: block; }
  .title-period { display: none; }
  .hero-deck { margin-top: 1.2rem; font-size: 1.1rem; }
  .hero-summary { font-size: .83rem; max-width: none; line-height: 2; }
  .hero-actions { margin-top: 1.5rem; }
  .hero-colophon { margin-top: 1.5rem; }
  .cover-stage { min-height: 450px; padding: 3rem; }
  [data-feature-cover] { width: 235px; }
  .bookshelf-inner { padding-block: 2.5rem; }
  .section-heading { align-items: stretch; flex-direction: column; gap: 1.5rem; }
  .section-heading h2 { font-size: 2rem; }
  .magazine-search { width: 100%; }
  .shelf-stage { margin-top: 1.75rem; }
  .shelf-row { grid-template-columns: 1fr; gap: 1rem; }
  .shelf-item { padding: 1.5rem; gap: 1.8rem; }
  .shelf-cover-wrap { width: 125px; flex-basis: 125px; }
  .shelf-caption h3 { font-size: 1.3rem; }
  .issue-cover[data-variant='shelf'] .cover-title h2 { font-size: 1.4rem; }
  .issue-cover[data-variant='shelf'] .cover-meta { font-size: .3rem; }
  .issue-cover[data-variant='shelf'] .cover-footer p { font-size: .6rem; }
  .shelf-next { justify-content: flex-start; gap: 2rem; padding: 1.75rem; }
  .search-result-list { grid-template-columns: 1fr; }
  .search-result-card { padding: 1rem; }
  .site-footer { align-items: flex-start; font-size: .6rem; }
  .site-footer p { flex-wrap: wrap; line-height: 1.8; max-width: 16rem; }
  .site-footer a { flex-shrink: 0; padding-top: .15rem; }
  .footer-divider { margin-inline: .1rem; }
  .reader-toolbar { grid-template-columns: auto minmax(0,1fr) auto; gap: .4rem; padding-inline: .5rem; }
  .reader-title strong { font-size: .9rem; }
  .reader-tools { gap: .2rem; }
  .reader-tools .button { padding-inline: .5rem; min-height: 2.5rem; }
  .reader-workspace { min-height: calc(100dvh - 10rem); overflow: visible; padding: 1.25rem; touch-action: pan-y; }
  #reader-content, #reader-content:has(.reader-cover-state) { min-width: 0; width: 100%; }
  .reader-book { width: 100%; min-width: 0; aspect-ratio: auto; grid-template-columns: 1fr; gap: 1px; }
  .reader-book::after { display: none; }
  .reader-book::before { inset: .25rem -.2rem -.3rem; }
  .reader-page { min-height: 25rem; padding: 2rem; }
  .reader-page--left, .reader-page--right { border-radius: 1px; box-shadow: none; }
  .reader-page + .reader-page { border-top: 1px solid #ddd7c9; }
  .reader-work--sentence { padding: 2rem 0; }
  .reader-sentence--short { font-size: 2rem; }
  .reader-sentence--medium { font-size: 1.85rem; }
  .reader-sentence--long { font-size: 1.6rem; }
  .reader-content-link { font-size: .85rem; }
  .reader-page-center > p:last-child { font-size: .9rem; }
  .reader-edge { display: none; }
  .reader-pagination { position: sticky; bottom: 0; gap: .4rem; min-height: 4.7rem; padding: .6rem .5rem; }
  .reader-pagination .button { padding-inline: .7rem; font-size: .75rem; }
  .reader-page-dot, .reader-page-dot.is-active { width: 1rem; height: 2.5rem; }
  .reader-finish-actions { flex-wrap: wrap; justify-content: center; }
}
@media (max-width: 374px) {
  .brand small { display: none; }
  .brand strong { font-size: 1.05rem; }
  .site-header-actions { gap: .7rem; }
  .shelf-item { gap: 1.2rem; padding-inline: 1rem; }
  .shelf-caption h3 { font-size: 1.2rem; }
  .shelf-cover-wrap { width: 110px; flex-basis: 110px; }
  .issue-cover[data-variant='shelf'] .cover-title h2 { font-size: 1.2rem; }
  .reader-page-dot, .reader-page-dot.is-active { width: .8rem; }
}
@media (max-width: 767px) {
  .reader-shell { overflow: visible; padding-bottom: 4.7rem; }
  .reader-toolbar { position: sticky; top: 0; }
  .reader-pagination { position: fixed; right: 0; bottom: 0; left: 0; padding-bottom: max(.6rem, env(safe-area-inset-bottom)); }
  .reader-contents-page { scroll-margin-top: 5rem; }
}
/* 小封面文字随封面宽度缩放，避免平板书架上的标题折行。 */
.issue-cover { container-type: inline-size; }
.issue-cover[data-variant='shelf'] .issue-cover__content { padding: 7cqw 7cqw 6cqw 9cqw; }
.issue-cover[data-variant='shelf'] .cover-meta { font-size: 3.2cqw; }
.issue-cover[data-variant='shelf'] .cover-title { margin-top: 6cqw; }
.issue-cover[data-variant='shelf'] .cover-title h2 { font-size: 14cqw; white-space: nowrap; }
.issue-cover[data-variant='shelf'] .cover-footer { padding-top: 3cqw; }
.issue-cover[data-variant='shelf'] .cover-footer p { font-size: 6cqw; white-space: nowrap; }

/* 后台期刊卡片：让封面与期刊信息共享顶部空间，避免状态区被拉长。 */
.issue-summary-top { display: grid; grid-template-columns: minmax(0,1fr) 6.5rem; align-items: start; gap: 1.25rem; }
.issue-summary-main { min-width: 0; }

@media (max-width: 520px) {
  .issue-summary-top { grid-template-columns: minmax(0,1fr) 5.5rem; gap: .75rem; }
}

/* 期刊卡片的最终信息层级：封面下只保留一个可选状态胶囊，简介默认只读。 */
.issue-summary-top > .issue-summary-main { min-width: 0; }
.intake-cover-column { display: flex; align-items: center; flex-direction: column; gap: .55rem; }
.intake-cover-column > .intake-cover { width: 6.5rem; height: 9.1rem; }
.intake-status-picker { position: relative; width: 6.5rem; }
.intake-status-pill { width: 100%; height: 2rem; appearance: none; border: 1px solid var(--paper-edge); border-radius: 999px; background: #fffefa; padding: 0 1.55rem 0 .75rem; color: var(--ink-soft); font-size: .7rem; font-weight: 800; text-align: center; cursor: pointer; outline: none; }
.intake-status-pill:focus { border-color: var(--sun-deep); box-shadow: 0 0 0 3px rgba(244,185,66,.16); }
.intake-status-pill[data-status='draft'] { border-color: #e6c985; background: #fff6d9; color: #70552d; }
.intake-status-pill[data-status='open'] { border-color: #b9d8ae; background: var(--leaf-soft); color: var(--leaf-deep); }
.intake-status-pill[data-status='closed'] { border-color: #e8b7a7; background: var(--stamp-soft); color: var(--stamp-deep); }
.intake-status-picker > .icon { position: absolute; top: 50%; right: .55rem; width: .8rem; height: .8rem; color: currentColor; pointer-events: none; transform: translateY(-50%); }
.issue-summary-display { display: flex; align-items: flex-end; gap: .35rem; margin-top: 1.25rem; border-top: 1px solid var(--paper-edge); padding-top: 1rem; }
.issue-summary-display p { min-width: 0; flex: 1; color: var(--ink-soft); font-size: .82rem; line-height: 1.85; }
.summary-edit-button { display: inline-grid; width: 1.7rem; height: 1.7rem; flex: 0 0 auto; place-items: center; border: 1px solid transparent; border-radius: 50%; color: var(--ink-muted); }
.summary-edit-button .icon { width: .85rem; height: .85rem; }
.summary-edit-button:hover { border-color: var(--paper-edge); background: var(--sun-soft); color: var(--ink); }
.issue-summary-editor--inline { margin-top: 1.25rem; padding-top: 1rem; }
.issue-summary-editor--inline .button-row { justify-content: flex-end; margin-top: .6rem; }

@media (max-width: 520px) {
  .intake-cover-column > .intake-cover, .intake-status-picker { width: 5.5rem; }
  .intake-cover-column > .intake-cover { height: 7.75rem; }
  .intake-status-pill { height: 1.85rem; padding-inline: .5rem 1.25rem; font-size: .65rem; }
  .issue-summary-display { margin-top: 1rem; padding-top: .8rem; }
  .issue-summary-display p { font-size: .78rem; line-height: 1.7; }
}

/* 教师录入与作者修订 */
.teacher-dialog { position: fixed; inset: 0 0 0 auto; margin: 0; width: min(540px, 100%); max-width: 100%; height: 100dvh; max-height: 100dvh; overflow-y: auto; border: 0; border-left: 1px solid var(--paper-edge); background: var(--paper); color: var(--ink); padding: clamp(1rem, 4vw, 2rem); }
.teacher-dialog::backdrop { background: rgb(40 32 22 / 30%); }
.teacher-dialog form { display: grid; gap: .8rem; }
.teacher-dialog input:not([type=checkbox]), .official-work-form input:not([type=checkbox]), .teacher-dialog textarea { width: 100%; border: 1px solid var(--paper-edge); border-radius: 3px; background: #fffefa; padding: .65rem .8rem; color: var(--ink); }
.teacher-dialog textarea { resize: vertical; line-height: 1.8; min-height: 12rem; }
.teacher-dialog h2 { font-family: var(--font-display); font-weight: 500; }
.teacher-note, .author-preview, .teacher-count { font-size: .8rem; color: var(--ink-muted); line-height: 1.7; }
.teacher-count { text-align: right; }
.author-consent, .official-work-form > .author-consent { display: flex; gap: .5rem; align-items: baseline; font-size: .8rem; font-weight: 400; margin-top: .5rem; }
.author-consent input { flex: 0 0 auto; width: auto; }
.official-work-form .author-preview { margin-bottom: 1rem; }
.readonly-work-record > small { display: block; margin-top: .6rem; color: var(--ink-muted); }
#teacher-message { font-size: .85rem; line-height: 1.7; }
