/* Import and chapter review share the converter's UI; reading keeps reader.css. */
.reader-page:not(.reader-page--reading) {
  --setup-background: var(--bg-paper);
  --setup-surface: var(--card-bg);
  --page-text: var(--text-primary);
  --page-muted: var(--text-secondary);
  --page-soft: var(--text-secondary);
  --page-border: var(--border-warm);
  --page-accent: #8a5a62;
  --page-hover: var(--sakura-glow);
  --page-control: var(--bg-paper-deep);
  background: radial-gradient(ellipse 120% 80% at 50% -20%, rgba(232,160,168,.055), transparent 50%), var(--setup-background);
  color: var(--text-primary);
  color-scheme: light;
}
.reader-page:not(.reader-page--reading) .reader-topbar {
  --paper-bg: var(--setup-surface);
  --reading-bg: var(--setup-background);
  padding-inline: max(24px, env(safe-area-inset-left,0px), calc((100vw - 1120px)/2 + 28px)) max(24px, env(safe-area-inset-right,0px), calc((100vw - 1120px)/2 + 28px));
  border-color: var(--border-warm);
  background: var(--setup-surface);
}
.reader-page:not(.reader-page--reading) .reader-main {
  width: 100%;
  max-width: 1120px;
  padding: 32px 28px 40px;
}
.reader-page:not(.reader-page--reading) .reader-bottom-note {color: var(--text-secondary)}
.reader-welcome {
  display: block;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: start;
}
.reader-import-heading {margin-bottom: 24px;text-align: center}
.reader-import-heading h1 {margin: 0;font-size: 24px;line-height: 1.4;letter-spacing: .08em}
.reader-import-heading p {margin: 6px 0 0;color: var(--text-secondary);font-size: 13px;letter-spacing: .03em}
.reader-setup-steps {margin: 0 0 24px}
.reader-setup-steps .step-nav__item {min-width: 0;cursor: default;line-height: 1.5;text-align: center}
.reader-setup-steps .step-nav__num {flex: 0 0 22px;font-weight: 600}
.reader-setup-steps .reader-setup-step--done {color: #4d7c62}
.reader-setup-step--done .step-nav__icon {color: inherit}
.reader-setup-step--done .step-nav__num {background: #e5efe8;color: #4d7c62}
.reader-import-card .section-head {margin-bottom: 20px}
.reader-import-card .section-desc {margin: 6px 0 0;line-height: 1.7}
.reader-import-card .tag {flex-shrink: 0}
.reader-import-intro {min-width: 0}
.reader-import-actions {display: flex;flex-shrink: 0;align-items: center;justify-content: flex-end;flex-wrap: wrap;gap: 8px}
.reader-cache-button {min-height: 32px;padding: 5px 10px;font-size: 12px}
.reader-import-actions .tag {min-height: 32px}
.reader-cache-status {margin: 0 0 16px;padding: 10px 12px;border: 1px solid #cddfd2;border-radius: var(--radius-md);background: #f3f8f4;color: #4d7c62;font-size: 12px;line-height: 1.7;overflow-wrap: anywhere}
.reader-cache-status[data-error="true"] {border-color: #ebcdcd;background: #fdf6f6;color: #b85252}
.reader-import-card .reader-upload {
  width: 100%;
  min-height: 230px;
  margin: 0;
  padding: 32px 24px;
  gap: 8px;
  border: 2px dashed var(--border-warm);
  border-radius: var(--radius-lg);
  background: var(--bg-paper);
  text-align: center;
}
.reader-import-card .reader-upload:hover,
.reader-import-card .reader-upload--drag {
  border-color: var(--sakura);
  background: var(--card-bg-hover);
  box-shadow: inset 0 0 0 1px var(--sakura-glow);
}
.reader-import-card .reader-upload:focus-within {outline: 3px solid var(--sakura-subtle);outline-offset: 3px}
.reader-import-card .reader-upload__icon {width: 42px;height: 42px;margin-bottom: 6px;border-radius: 0;background: none;color: var(--text-muted);stroke-width: 1.25}
.reader-import-card .reader-upload strong {font-size: 15px;letter-spacing: .08em}
.reader-import-card .reader-upload small {color: var(--text-secondary);font-size: 12px}
.reader-import-meta {display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 12px 20px;margin-top: 20px}
.reader-import-encoding {display: flex;align-items: center;gap: 10px}
.reader-import-encoding .field-label {margin: 0}
.reader-import-encoding .pill {border-color: var(--sakura-subtle);background: var(--sakura-glow);color: #8a5a62}
.reader-import-meta .reader-upload__foot {margin: 0;color: var(--text-secondary);font-size: 12px}
.reader-import-resume {display: flex;align-items: center;gap: 8px;margin: 20px 0 0;padding-top: 16px;border-top: 1px solid var(--border-soft);color: var(--text-secondary);font-size: 12px;line-height: 1.7}
.reader-import-resume .icon {width: 15px;height: 15px;color: var(--sakura)}
.chapter-card--volume {border-color: var(--sakura-subtle);background: linear-gradient(135deg, var(--card-bg), var(--sakura-glow))}
.chapter-card--volume .chapter-card__dot {border-radius: 3px;background: var(--sakura)}
.reader-parse {
  --text-primary: inherit;
  --text-secondary: inherit;
  --text-muted: inherit;
  --border-warm: inherit;
  --border-soft: inherit;
  --card-bg: inherit;
  --card-bg-hover: inherit;
  --bg-paper: inherit;
  --bg-paper-deep: inherit;
  --sakura: inherit;
  --sakura-subtle: inherit;
  --sakura-glow: inherit;
  --reading-bg: var(--setup-background);
  --paper-bg: var(--setup-surface);
  margin-bottom: 0;
  color: var(--text-primary);
}
.reader-parse-heading {margin-bottom: 18px}
.reader-parse-heading h1 {font-size: 24px;letter-spacing: .06em;line-height: 1.4}
.reader-parse-heading p {margin: 6px 0 0;color: var(--text-secondary);line-height: 1.7}
.reader-parse-heading>.ghost-btn {min-height: 44px;flex-shrink: 0;background: var(--card-bg)}
.reader-parse-file {justify-content: space-between;gap: 12px 20px;margin: 0 0 16px;padding: 16px 20px;border: 1px solid var(--border-warm);border-radius: var(--radius-md);background: var(--card-bg);box-shadow: var(--shadow-card)}
.reader-parse-filename {display: flex;flex: 1;align-items: center;gap: 10px;min-width: 0}
.reader-parse-filename>.icon {width: 20px;height: 20px;color: var(--text-secondary)}
.reader-parse-file strong {min-width: 0;color: var(--text-primary);font-size: 13px}
.reader-parse-file-meta {display: flex;flex-wrap: wrap;gap: 6px}
.reader-parse-file-meta>span {padding: 3px 9px;border: 1px solid var(--border-soft);border-radius: var(--radius-pill);background: var(--bg-paper);font-size: 11px;white-space: nowrap}
.reader-parse-options {margin: 0 0 16px;border-color: var(--border-warm);border-radius: var(--radius-md);background: var(--card-bg);box-shadow: var(--shadow-card)}
.reader-parse-options summary {display: flex;align-items: center;justify-content: space-between;gap: 12px;min-height: 48px;padding: 12px 18px;color: var(--text-primary);font-size: 13px;font-weight: 600;list-style: none}
.reader-parse-options summary::-webkit-details-marker {display: none}
.reader-parse-options-arrow {width: 15px;height: 15px;color: var(--text-secondary);transition: transform .18s ease}
.reader-parse-options[open] .reader-parse-options-arrow {transform: rotate(180deg)}
.reader-parse-options-body {padding: 4px 18px 18px;gap: 12px}
.reader-parse-rule textarea,.reader-parse-rule-example textarea {min-height: 100px;border-color: var(--border-warm);border-radius: var(--radius-md);background: var(--bg-paper);color: var(--text-primary);line-height: 1.7}
.reader-parse-rule textarea:focus,.reader-parse .input:focus {border-color: var(--sakura-subtle);background: var(--card-bg);box-shadow: 0 0 0 3px var(--sakura-glow)}
.reader-parse-options .reader-select select {border-color: var(--border-warm);border-radius: var(--radius-md);background: var(--bg-paper);color: var(--text-primary)}
.reader-parse-options>.reader-parse-options-body>.ghost-btn {background: var(--card-bg)}
.reader-parse-rule-example {border-color: var(--border-soft);border-radius: var(--radius-md);background: var(--bg-paper)}
.reader-parse-rule-example textarea {background: var(--card-bg)}
.reader-parse-columns {gap: 16px;margin-top: 18px}
.reader-parse .chapter-panel,.reader-parse .detail-panel {min-width: 0}
.reader-parse-pager {gap: 8px;margin-top: 10px;padding-top: 12px;border-top: 1px solid var(--border-soft);color: var(--text-secondary)}
.reader-parse-pager .ghost-btn {min-height: 36px;padding: 6px 12px;font-size: 12px}
.reader-parse-footer {gap: 8px;margin-top: 18px;padding: 14px 18px;border: 1px solid var(--border-warm);border-radius: var(--radius-md);background: var(--card-bg);box-shadow: var(--shadow-card)}
.reader-parse-footer-actions {padding: 0}
.reader-parse-footer-actions .primary-btn {background: var(--text-primary);color: var(--card-bg)}
.reader-page[data-dark="true"] .reader-parse .primary-btn:hover:not(:disabled),
.reader-parse-footer-actions .primary-btn:hover:not(:disabled) {background: #4a4540;filter: none}
.reader-parse :is(button,input,textarea,select,summary):focus-visible {outline-color: #a95665}
.reader-page:not(.reader-page--reading) .reader-file-status {padding: 12px 16px;border: 1px solid var(--border-warm);border-radius: var(--radius-md);background: var(--card-bg);color: var(--text-secondary)}
@media (max-width: 900px) {
  .reader-parse-columns {grid-template-columns: minmax(0,1fr)}
  .reader-parse .chapter-panel {height: 440px;min-height: 0}
  .reader-parse .detail-panel {height: 580px;min-height: 0}
}
@media (max-width: 720px) {
  .reader-page:not(.reader-page--reading) .reader-topbar {padding-inline: max(15px,env(safe-area-inset-left,0px)) max(15px,env(safe-area-inset-right,0px))}
  .reader-page:not(.reader-page--reading) .reader-main {padding: 20px max(14px,env(safe-area-inset-right,0px)) 28px max(14px,env(safe-area-inset-left,0px))}
  .reader-import-heading {margin-bottom: 18px}
  .reader-import-heading h1 {font-size: 23px}
  .reader-setup-steps {margin-bottom: 18px}
  .reader-setup-steps .step-nav__item {gap: 6px;padding: 10px 6px;font-size: 11px;letter-spacing: 0}
  .reader-setup-steps .step-nav__icon {display: none}
  .reader-import-card {padding: 20px 16px}
  .reader-import-card .section-head {gap: 10px;flex-wrap: wrap;margin-bottom: 16px}
  .reader-import-card .section-desc {font-size: 12px}
  .reader-import-actions {width: 100%;justify-content: space-between}
  .reader-cache-button {min-height: 44px}
  .reader-import-card .reader-upload {min-height: 190px;padding: 26px 16px;border-radius: var(--radius-md)}
  .reader-import-meta {gap: 10px;margin-top: 16px}
  .reader-import-meta .reader-upload__foot {flex-basis: 100%;text-align: start}
  .reader-import-resume {align-items: flex-start;margin-top: 16px;padding-top: 14px}
  .reader-import-resume .icon {margin-top: 3px}
  .reader-parse-heading {flex-wrap: wrap;gap: 12px;margin-bottom: 14px}
  .reader-parse-heading>div {flex: 1;min-width: 160px}
  .reader-parse-heading h1 {font-size: 22px}
  .reader-parse-heading>.ghost-btn {padding: 8px 12px;font-size: 12px}
  .reader-parse-file {gap: 10px;margin-bottom: 12px;padding: 14px}
  .reader-parse-filename {flex-basis: 100%}
  .reader-parse-file-meta {gap: 5px}
  .reader-parse-file-meta>span {padding: 2px 8px}
  .reader-parse-options {margin-bottom: 14px}
  .reader-parse-options summary {min-height: 44px;padding: 10px 14px}
  .reader-parse-options-body {padding: 2px 14px 14px;gap: 10px}
  .reader-parse-rule textarea,.reader-parse-rule-example textarea {font-size: 16px}
  .reader-parse .chapter-panel {height: 420px}
  .reader-parse .detail-panel {height: auto;min-height: 0}
  .reader-parse .card {padding: 18px 14px}
  .reader-parse .section-head {gap: 8px}
  .reader-parse .section-title {font-size: 15px}
  .reader-parse-pager .ghost-btn {min-height: 44px;padding-inline: 10px}
  .reader-parse-footer {margin: 0;padding: 10px max(14px,env(safe-area-inset-right,0px)) max(10px,env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px));border-inline: 0;border-bottom: 0;border-radius: 0;box-shadow: 0 -4px 20px var(--shadow-warm)}
  .reader-parse-footer-actions {flex-wrap: nowrap}
  .reader-parse-footer-actions>button {padding: 10px;line-height: 1.5}
}
