#capability-overlay { display: flex; flex-direction: column; }
#capability-overlay.textbook-learning-engine-overlay .cp-topbar { display: none; }
#capability-overlay.textbook-learning-engine-overlay .cp-body { flex: 1 1 100%; }
#pdf-preview-overlay { display: flex; flex-direction: column; z-index: 1400; }

/* PDF / EPUB 沉浸阅读器 */
.pdf-reader,
.autonomous-learning {
  --reader-bg: #cbc2b2;
  --reader-stage: #d8d0c1;
  --reader-panel: #f5efe3;
  --reader-panel-strong: #fffaf0;
  --reader-paper: #fffdf7;
  --reader-ink: #342f28;
  --reader-muted: #81786c;
  --reader-line: rgba(69, 59, 47, 0.16);
  --reader-accent: #866542;
  --reader-accent-soft: rgba(134, 101, 66, 0.13);
  --reader-shadow: 0 22px 54px rgba(43, 35, 25, 0.22), 0 3px 10px rgba(43, 35, 25, 0.12);
}
.pdf-reader {
  --pdf-reader-font-family: "Songti SC", "STSong", serif;
  --pdf-reader-font-size: 18px;
  --pdf-reader-inspector-width: clamp(380px, 30vw, 460px);
  --pdf-reader-inspector-reserve: calc(var(--pdf-reader-inspector-width) + 24px);
  --pdf-reader-stage-shift: 0px;
  isolation: isolate;
  overflow: hidden;
  background: var(--reader-bg);
  color: var(--reader-ink);
  animation: pdf-reader-enter 0.24s cubic-bezier(.2,.75,.25,1);
}
.pdf-reader[data-reader-theme="warm"],
.autonomous-learning[data-reader-theme="warm"] {
  --reader-bg: #c7ad8c; --reader-stage: #d8c2a3; --reader-panel: #f3e2c8;
  --reader-panel-strong: #faecd6; --reader-paper: #fbefd8; --reader-ink: #3f3022;
  --reader-muted: #876d54; --reader-line: rgba(84, 57, 31, 0.18); --reader-accent: #a15c35;
  --reader-accent-soft: rgba(161, 92, 53, 0.13);
}
.pdf-reader[data-reader-theme="sage"],
.autonomous-learning[data-reader-theme="sage"] {
  --reader-bg: #9daf9d; --reader-stage: #b5c2b0; --reader-panel: #e3eade;
  --reader-panel-strong: #eef3e9; --reader-paper: #f1f4e9; --reader-ink: #27382d;
  --reader-muted: #65796a; --reader-line: rgba(35, 65, 45, 0.16); --reader-accent: #3e7353;
  --reader-accent-soft: rgba(62, 115, 83, 0.13);
}
.pdf-reader[data-reader-theme="night"],
.autonomous-learning[data-reader-theme="night"] {
  --reader-bg: #111a1b; --reader-stage: #172325; --reader-panel: #182427;
  --reader-panel-strong: #202e30; --reader-paper: #d8d3c5; --reader-ink: #dfded5;
  --reader-muted: #93a09e; --reader-line: rgba(217, 225, 221, 0.12); --reader-accent: #77b5a2;
  --reader-accent-soft: rgba(119, 181, 162, 0.14); --reader-shadow: 0 24px 60px rgba(0,0,0,.48);
}
.pdf-reader[data-reader-theme="focus"],
.autonomous-learning[data-reader-theme="focus"] {
  --reader-bg: #a8a59e; --reader-stage: #b9b6ae; --reader-panel: #e9e7e1;
  --reader-panel-strong: #f2f0eb; --reader-paper: #f5f3ed; --reader-ink: #292927;
  --reader-muted: #6e6d68; --reader-line: rgba(42, 42, 39, 0.14); --reader-accent: #555752;
  --reader-accent-soft: rgba(85, 87, 82, 0.12);
}
.autonomous-learning { --reader-muted: #6b6258; }
.autonomous-learning[data-reader-theme="warm"] { --reader-muted: #73583f; }
.autonomous-learning[data-reader-theme="sage"] { --reader-muted: #526556; }
.autonomous-learning[data-reader-theme="night"] { --reader-muted: #a7b2b0; }
.autonomous-learning[data-reader-theme="focus"] { --reader-muted: #5f5e58; }
body.pdf-reader-open #statusbar,
body.pdf-reader-open #dock,
body.pdf-reader-open #g-ai-fab,
body.pdf-reader-open #g-ai-panel,
body.pdf-reader-open #bs-ocr-background { display: none; }
@keyframes pdf-reader-enter { from { opacity: 0; transform: scale(1.008); } }

.pdf-reader-topbar {
  position: relative; z-index: 12; flex: none; min-height: 64px;
  display: flex; align-items: center; gap: 12px; padding: 9px 14px;
  border-bottom: 1px solid var(--reader-line);
  background: color-mix(in srgb, var(--reader-panel) 91%, transparent);
  box-shadow: 0 1px 10px rgba(45, 36, 24, 0.05);
  backdrop-filter: blur(20px) saturate(1.05);
  -webkit-backdrop-filter: blur(20px) saturate(1.05);
}
.pdf-reader-icon-button,
.pdf-reader-toolbar button,
.pdf-reader-toolbar select,
.pdf-reader-top-actions button,
.pdf-reader-scrubber button {
  border: 1px solid var(--reader-line); color: var(--reader-ink);
  background: color-mix(in srgb, var(--reader-panel-strong) 74%, transparent);
}
.pdf-reader button { cursor: pointer; }
.pdf-reader button:hover:not(:disabled),
.pdf-reader select:hover { border-color: color-mix(in srgb, var(--reader-accent) 48%, transparent); background: var(--reader-accent-soft); }
.pdf-reader button:focus-visible,
.pdf-reader select:focus-visible,
.pdf-reader textarea:focus-visible,
.pdf-reader input:focus-visible { outline: 2px solid var(--reader-accent); outline-offset: 2px; }
.pdf-reader button:disabled { opacity: 0.28; cursor: default; }
.pdf-reader-icon-button {
  width: 36px; height: 36px; flex: none; border-radius: 50%; font-size: 17px;
  display: grid; place-items: center; transition: background .16s ease, transform .16s ease, border-color .16s ease;
}
.pdf-reader-icon-button:hover:not(:disabled) { transform: translateY(-1px); }
.pdf-reader-back { font-size: 30px; font-family: Georgia, serif; font-weight: 300; line-height: 1; }
.pdf-reader-heading { width: min(210px, 17vw); min-width: 120px; display: flex; flex-direction: column; overflow: hidden; }
.pdf-reader-heading b { overflow: hidden; color: var(--reader-ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.pdf-reader-eyebrow { color: var(--reader-accent); font-size: 9px; font-weight: 700; letter-spacing: .2em; }
.pdf-reader-progress { min-width: 82px; display: flex; flex-direction: column; align-items: center; font-variant-numeric: tabular-nums; }
.pdf-reader-progress b { font-size: 12px; }
.pdf-reader-progress span { color: var(--reader-muted); font-size: 9px; }
.pdf-reader-toolbar { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: center; gap: 7px; }
.pdf-reader-select-wrap { height: 36px; display: flex; align-items: center; gap: 5px; padding: 0 5px 0 9px; border: 1px solid var(--reader-line); border-radius: 9px; color: var(--reader-muted); font-size: 9px; }
.pdf-reader-select-wrap select { height: 28px; max-width: 102px; padding: 0 20px 0 6px; border: 0; border-radius: 7px; color: var(--reader-ink); font-size: 11px; }
.pdf-reader-stepper,
.pdf-reader-segmented,
.pdf-reader-zoom { height: 36px; display: flex; align-items: stretch; overflow: hidden; border: 1px solid var(--reader-line); border-radius: 9px; }
.pdf-reader-stepper button,
.pdf-reader-segmented button,
.pdf-reader-zoom button { min-width: 31px; padding: 0 8px; border: 0; border-left: 1px solid var(--reader-line); font-size: 10px; }
.pdf-reader-stepper button:first-child,
.pdf-reader-segmented button:first-child,
.pdf-reader-zoom button:first-child { border-left: 0; }
.pdf-reader-stepper output { min-width: 25px; display: grid; place-items: center; color: var(--reader-muted); font: 10px/1 ui-monospace, monospace; }
.pdf-reader-segmented button.active { background: var(--reader-accent); color: var(--reader-panel-strong); }
.pdf-reader-zoom span { min-width: 38px; display: inline-block; font-variant-numeric: tabular-nums; }
.pdf-reader-top-actions { display: flex; align-items: center; gap: 5px; }
.pdf-reader-rail-button {
  height: 36px; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 0 11px; border-radius: 10px; font-size: 13px; white-space: nowrap;
  transition: background .16s ease, transform .16s ease, border-color .16s ease;
}
.pdf-reader-rail-button:hover:not(:disabled) { transform: translateY(-1px); }
.pdf-reader-rail-button b { font-size: 10px; font-weight: 700; }
.pdf-reader-rail-button[aria-expanded="true"] { border-color: var(--reader-accent); background: var(--reader-accent-soft); color: var(--reader-accent); }

.pdf-reader-body { position: relative; z-index: 1; flex: 1; min-height: 0; overflow: hidden; }
.pdf-reader-stage {
  position: absolute; inset: 0; min-width: 0; min-height: 0; overflow: hidden;
  background-color: var(--reader-stage);
  background-image: radial-gradient(rgba(67,55,38,.055) .7px, transparent .8px), linear-gradient(115deg, rgba(255,255,255,.12), transparent 36%);
  background-size: 5px 5px, 100% 100%;
  transform: translate3d(calc(0px - var(--pdf-reader-stage-shift)), 0, 0);
  transition: transform .28s cubic-bezier(.22,.8,.22,1);
}
.pdf-reader:not(.is-book-fullscreen).is-inspector-open,
.pdf-reader.is-book-fullscreen.is-fullscreen-inspector-open { --pdf-reader-stage-shift: calc(var(--pdf-reader-inspector-reserve) / 2); }
.pdf-reader.is-focus { --pdf-reader-stage-shift: 0px; }
.pdf-reader-pages {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  gap: 17px; padding: 15px 48px; perspective: 1600px; overflow: auto;
  scroll-behavior: smooth; overscroll-behavior: contain;
}
.pdf-reader-pages[data-layout="double"] { gap: 2px; }
.pdf-reader.is-epub .pdf-reader-pages { display: block; overflow: hidden; padding: 15px 48px; }
.pdf-reader-epub-host {
  width: min(100%, 1260px); height: 100%; margin: 0 auto; overflow: hidden;
  border-radius: 4px; background: var(--reader-paper); box-shadow: var(--reader-shadow);
}
.pdf-reader-epub-host iframe { border: 0; background: var(--reader-paper); }
.pdf-reader.is-epub .pdf-reader-zoom { display: none; }
.pdf-reader-page {
  position: relative; flex: none; overflow: hidden; background: var(--reader-paper);
  box-shadow: var(--reader-shadow); transform-origin: center center;
  contain: layout paint style; isolation: isolate;
}
.pdf-reader-pages[data-layout="double"] .pdf-reader-page:first-child { border-radius: 3px 0 0 3px; transform-origin: right center; }
.pdf-reader-pages[data-layout="double"] .pdf-reader-page:last-child { border-radius: 0 3px 3px 0; transform-origin: left center; }
.pdf-reader-pages[data-layout="double"] .pdf-reader-page:first-child::after,
.pdf-reader-pages[data-layout="double"] .pdf-reader-page:last-child::after {
  content: ""; position: absolute; top: 0; bottom: 0; z-index: 8; width: 18px; pointer-events: none;
}
.pdf-reader-pages[data-layout="double"] .pdf-reader-page:first-child::after { right: 0; background: linear-gradient(90deg, transparent, rgba(44,34,23,.16)); }
.pdf-reader-pages[data-layout="double"] .pdf-reader-page:last-child::after { left: 0; background: linear-gradient(90deg, rgba(44,34,23,.13), transparent); }
.pdf-reader-pages.turn-forward .pdf-reader-page { animation: pdf-page-forward .38s cubic-bezier(.2,.75,.2,1); }
.pdf-reader-pages.turn-backward .pdf-reader-page { animation: pdf-page-backward .38s cubic-bezier(.2,.75,.2,1); }
@keyframes pdf-page-forward { from { opacity: .28; transform: translateX(22px) rotateY(-3deg); filter: blur(1px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes pdf-page-backward { from { opacity: .28; transform: translateX(-22px) rotateY(3deg); filter: blur(1px); } to { opacity: 1; transform: none; filter: none; } }
.pdf-reader-canvas { position: absolute; inset: 0; display: block; filter: saturate(.9) contrast(.98); }
.pdf-reader[data-reader-theme="warm"] .pdf-reader-canvas { filter: sepia(.14) saturate(.82) contrast(.95); }
.pdf-reader[data-reader-theme="sage"] .pdf-reader-canvas { filter: sepia(.07) hue-rotate(68deg) saturate(.72) contrast(.94); }
.pdf-reader[data-reader-theme="night"] .pdf-reader-canvas { filter: brightness(.72) sepia(.1) saturate(.68) contrast(.9); }
.pdf-reader[data-reader-theme="focus"] .pdf-reader-canvas { filter: grayscale(.65) contrast(.95); }

.pdf-reader-text-layer {
  position: absolute; inset: 0; z-index: 2; overflow: clip; opacity: 1; line-height: 1;
  text-align: initial; text-size-adjust: none; -webkit-text-size-adjust: none; forced-color-adjust: none;
  transform-origin: 0 0; caret-color: var(--reader-accent);
  --min-font-size: 1; --text-scale-factor: calc(var(--total-scale-factor) * var(--min-font-size)); --min-font-size-inv: calc(1 / var(--min-font-size));
}
.pdf-reader-text-layer :is(span, br) { position: absolute; color: transparent; white-space: pre; cursor: text; transform-origin: 0 0; }
.pdf-reader-text-layer > :not(.markedContent),
.pdf-reader-text-layer .markedContent span:not(.markedContent) {
  z-index: 1; --font-height: 0; --scale-x: 1; --rotate: 0deg;
  font-size: calc(var(--text-scale-factor) * var(--font-height));
  transform: rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv));
}
.pdf-reader-text-layer .markedContent { display: contents; }
.pdf-reader-text-layer ::selection { background: rgba(58, 120, 98, .3); }
.pdf-reader-text-layer br::selection { background: transparent; }
.pdf-reader-text-layer .endOfContent { position: absolute; inset: 100% 0 0; display: block; user-select: none; }
.pdf-reader-ocr-text-layer {
  position: absolute; inset: 0; z-index: 2; overflow: clip; color: transparent;
  line-height: 1; text-align: initial; text-size-adjust: none; -webkit-text-size-adjust: none;
  forced-color-adjust: none; caret-color: var(--reader-accent); user-select: text;
}
.pdf-reader-ocr-text-layer span {
  position: absolute; display: block; overflow: visible; color: transparent; white-space: pre;
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  font-weight: 400; line-height: 1; letter-spacing: 0; cursor: text; transform-origin: 0 0;
}
.pdf-reader-ocr-text-layer ::selection { background: rgba(58, 120, 98, .32); }
.pdf-reader-ocr-cache-warning {
  position: absolute; right: clamp(10px, 3%, 22px); bottom: clamp(10px, 3%, 22px); z-index: 6;
  padding: 5px 8px; border: 1px solid rgba(164, 105, 42, .24); border-radius: 999px;
  background: color-mix(in srgb, var(--reader-panel-strong) 90%, transparent); color: var(--reader-muted);
  box-shadow: 0 5px 16px rgba(48, 39, 28, .12); font-size: 8px; line-height: 1.2;
  pointer-events: none;
}
.pdf-reader-ocr-card {
  position: absolute; right: clamp(12px, 4%, 28px); bottom: clamp(12px, 4%, 28px); z-index: 6;
  display: grid; justify-items: start; gap: 4px; max-width: min(250px, calc(100% - 24px));
  padding: 10px 11px; border: 1px solid rgba(74, 91, 77, .22); border-radius: 10px;
  background: color-mix(in srgb, var(--reader-panel-strong) 88%, transparent);
  box-shadow: 0 8px 24px rgba(48, 39, 28, .14); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.pdf-reader-ocr-card > span { color: var(--reader-muted); font-size: 8px; font-weight: 700; letter-spacing: .14em; }
.pdf-reader-ocr-card button {
  min-height: 29px; padding: 0 11px; border: 1px solid color-mix(in srgb, var(--reader-accent) 28%, transparent);
  border-radius: 8px; background: var(--reader-accent-soft); color: var(--reader-accent);
  font-size: 10px; font-weight: 700; white-space: nowrap;
}
.pdf-reader-ocr-card button:disabled { cursor: wait; opacity: .72; }
.pdf-reader-ocr-card small { color: var(--reader-muted); font-size: 8px; line-height: 1.45; }
.pdf-reader-reflow-text {
  position: absolute; inset: 0; z-index: 2; overflow: auto;
  color: color-mix(in srgb, var(--reader-ink) 90%, #17130f); background: var(--reader-paper);
  font-family: var(--pdf-reader-font-family); font-size: var(--pdf-reader-font-size); line-height: 1.92;
  letter-spacing: .025em; text-align: justify;
}
.pdf-reader-reflow-content { position: relative; min-height: 100%; padding: clamp(32px, 5vh, 64px) clamp(32px, 5vw, 70px); }
.pdf-reader[data-reader-theme="night"] .pdf-reader-reflow-text { color: #343832; }
.pdf-reader-reflow-text p { margin: 0 0 .72em; }
.pdf-reader-reflow-page-number { display: block; margin-bottom: 1.5em; color: var(--reader-muted); font: 10px/1 var(--font); text-align: center; letter-spacing: .16em; }

.pdf-reader-highlights { position: absolute; inset: 0; z-index: 4; overflow: hidden; pointer-events: none; }
.pdf-reader-highlight { position: absolute; border: 0; padding: 0; border-radius: 2px; pointer-events: auto; mix-blend-mode: multiply; opacity: .58; transition: opacity .16s ease, filter .16s ease; }
.pdf-reader-highlight:hover,
.pdf-reader-highlight.is-active { opacity: .82; filter: saturate(1.18); }
.pdf-reader-highlight.is-yellow { background: #f4ce55; clip-path: polygon(0 11%, 99% 2%, 97% 88%, 2% 98%); }
.pdf-reader-highlight.is-mint { background: linear-gradient(to bottom, transparent 42%, #67c99a 42%, #67c99a 92%, transparent 92%); }
.pdf-reader-highlight.is-rose { background: repeating-linear-gradient(-5deg, rgba(237,143,159,.92) 0 5px, rgba(237,143,159,.64) 5px 8px); }
.pdf-reader-highlight.is-blue { background: rgba(114,174,232,.28); border-bottom: max(2px, .18em) solid #5799d5; border-radius: 0; }
.pdf-reader-selection-tools {
  position: absolute; z-index: 20; transform: translateX(-50%); display: flex; align-items: center; gap: 4px;
  padding: 6px; border: 1px solid rgba(255,255,255,.18); border-radius: 12px;
  background: rgba(34, 36, 34, .94); box-shadow: 0 12px 32px rgba(0,0,0,.3); backdrop-filter: blur(12px);
}
.pdf-reader-selection-tools::after { content: ""; position: absolute; left: 50%; bottom: -6px; width: 11px; height: 11px; background: rgba(34,36,34,.94); transform: translateX(-50%) rotate(45deg); }
.pdf-reader-selection-tools > span { position: relative; z-index: 1; padding: 0 4px; color: rgba(255,255,255,.7); font-size: 9px; }
.pdf-reader-selection-tools > i { position: relative; z-index: 1; width: 1px; height: 18px; margin: 0 2px; background: rgba(255,255,255,.18); }
.pdf-highlight-color { position: relative; z-index: 1; width: 26px; height: 26px; border: 0; border-radius: 50%; box-shadow: inset 0 0 0 2px rgba(255,255,255,.4); }
.pdf-highlight-color.is-yellow { background: #f4ce55; }
.pdf-highlight-color.is-mint { background: #67c99a; }
.pdf-highlight-color.is-rose { background: #ed8f9f; }
.pdf-highlight-color.is-blue { background: #72aee8; }
.pdf-reader-selection-ai { position: relative; z-index: 1; height: 27px; margin-left: 2px; padding: 0 9px; border: 0; border-radius: 7px; background: #edf4ef; color: #1f4d38; font-size: 10px; font-weight: 700; }

.pdf-reader-page-turn {
  position: absolute; top: 50%; z-index: 10; width: 34px; height: 68px; border: 1px solid var(--reader-line);
  border-radius: 17px; background: color-mix(in srgb, var(--reader-panel-strong) 70%, transparent);
  color: var(--reader-ink); font: 34px/1 Georgia, serif; opacity: .5; transform: translateY(-50%);
  transition: opacity .16s ease, transform .16s ease, background .16s ease;
}
.pdf-reader-page-turn:hover:not(:disabled) { opacity: 1; transform: translateY(-50%) scale(1.04); }
.pdf-reader-page-turn-prev { left: calc(10px + var(--pdf-reader-stage-shift)); }
.pdf-reader-page-turn-next { right: calc(10px + var(--pdf-reader-stage-shift)); }
.pdf-reader-loading { position: absolute; inset: 0; z-index: 30; display: grid; place-content: center; justify-items: center; gap: 9px; color: var(--reader-ink); background: var(--reader-stage); text-align: center; }
.pdf-reader-loading small { max-width: 360px; color: var(--reader-muted); font-size: 11px; line-height: 1.55; }
.pdf-reader-loading.is-error b { color: #9b3d36; }
.pdf-reader-loader { width: 30px; height: 30px; border: 2px solid var(--reader-line); border-top-color: var(--reader-accent); border-radius: 50%; animation: pdf-loader-spin .8s linear infinite; }
@keyframes pdf-loader-spin { to { transform: rotate(360deg); } }

.pdf-reader-outline-toolbar { flex: none; min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 12px; border-bottom: 1px solid var(--reader-line); color: var(--reader-muted); font-size: 9px; }
.pdf-reader-outline-toolbar .is-error { color: #9b3d36; }
.pdf-reader-outline-toolbar button { min-height: 29px; flex: none; padding: 0 10px; border: 1px solid var(--reader-line); border-radius: 8px; background: var(--reader-panel-strong); color: var(--reader-accent); font-size: 9px; font-weight: 700; }
.pdf-reader-outline { flex: 1; min-height: 0; overflow: auto; padding: 10px 12px 28px; }
.pdf-reader-outline-item { width: 100%; display: grid; grid-template-columns: minmax(0,1fr) 28px; align-items: center; gap: 3px; }
.pdf-reader.is-epub .pdf-reader-outline-item { grid-template-columns: minmax(0,1fr); }
.pdf-reader-outline-item.level-1 { padding-left: 12px; }
.pdf-reader-outline-item.level-2 { padding-left: 24px; }
.pdf-reader-outline-entry { width: 100%; min-width: 0; min-height: 35px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 6px 8px; border: 0; border-radius: 7px; background: transparent; color: var(--reader-ink); text-align: left; }
.pdf-reader-outline-entry.level-1,
.pdf-reader-outline-entry.level-2 { color: color-mix(in srgb, var(--reader-ink) 77%, var(--reader-muted)); font-size: 10px; }
.pdf-reader-outline-entry span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.pdf-reader-outline-entry small { color: var(--reader-muted); font-size: 9px; font-variant-numeric: tabular-nums; }
.pdf-reader-outline-entry.is-active { background: var(--reader-accent-soft); color: var(--reader-accent); }
.pdf-reader-outline-entry:disabled { opacity: .48; cursor: default; }
.pdf-reader-outline-edit { width: 26px; height: 26px; padding: 0; border: 0; border-radius: 7px; background: transparent; color: var(--reader-muted); font-size: 12px; }
.pdf-reader-outline-item:hover .pdf-reader-outline-edit,
.pdf-reader-outline-edit:focus-visible { color: var(--reader-accent); background: var(--reader-accent-soft); }
.pdf-reader-outline-editor { display: grid; gap: 9px; margin: 3px 0 8px; padding: 10px; border: 1px solid color-mix(in srgb, var(--reader-accent) 42%, var(--reader-line)); border-radius: 10px; background: var(--reader-panel-strong); box-shadow: 0 7px 18px rgba(50,42,31,.07); }
.pdf-reader-outline-editor.level-1 { margin-left: 12px; }
.pdf-reader-outline-editor.level-2 { margin-left: 24px; }
.pdf-reader-outline-editor label { display: grid; gap: 4px; color: var(--reader-muted); font-size: 9px; }
.pdf-reader-outline-editor input,
.pdf-reader-outline-editor select { width: 100%; height: 31px; min-width: 0; padding: 0 8px; border: 1px solid var(--reader-line); border-radius: 7px; background: var(--reader-panel); color: var(--reader-ink); font: 10px/1 var(--font); }
.pdf-reader-outline-editor-fields { display: grid; grid-template-columns: minmax(0,1fr) 90px; gap: 8px; }
.pdf-reader-outline-editor-actions { display: flex; justify-content: flex-end; gap: 6px; }
.pdf-reader-outline-editor-actions button { min-width: 52px; height: 29px; border: 1px solid var(--reader-line); border-radius: 7px; background: transparent; color: var(--reader-muted); font-size: 9px; }
.pdf-reader-outline-editor-actions #pdf-reader-outline-delete { margin-right:auto; border-color:rgba(210,92,75,.55); color:#e38b7e; }
.pdf-reader-outline-editor-actions #pdf-reader-outline-save { border-color: var(--reader-accent); background: var(--reader-accent); color: var(--reader-panel-strong); font-weight: 700; }
.pdf-reader-panel-empty { margin: auto; max-width: 250px; padding: 34px 16px; color: var(--reader-muted); font-size: 10px; line-height: 1.6; text-align: center; }

.pdf-reader-inspector { position: absolute; top: 12px; right: 12px; bottom: 12px; z-index: 7; width: var(--pdf-reader-inspector-width); min-width: 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--reader-line); border-radius: 13px; background: color-mix(in srgb, var(--reader-panel) 94%, transparent); box-shadow: -8px 10px 32px rgba(50,42,31,.09); opacity: 0; visibility: hidden; pointer-events: none; transform: translate3d(calc(100% + 16px),0,0); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); transition: opacity .18s ease, transform .28s cubic-bezier(.22,.8,.22,1), visibility 0s linear .28s; }
.pdf-reader:not(.is-book-fullscreen).is-inspector-open .pdf-reader-inspector,
.pdf-reader.is-book-fullscreen.is-fullscreen-inspector-open .pdf-reader-inspector { opacity: 1; visibility: visible; pointer-events: auto; transform: none; transition-delay: 0s; }
.pdf-reader-inspector-header { flex: none; height: 49px; display: flex; align-items: stretch; border-bottom: 1px solid var(--reader-line); }
.pdf-reader-inspector-tabs { min-width: 0; flex: 1; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); padding: 7px 4px 0 10px; }
.pdf-reader-inspector-tabs button { border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--reader-muted); font-size: 11px; font-weight: 600; }
.pdf-reader-inspector-tabs button.active { border-bottom-color: var(--reader-accent); color: var(--reader-ink); }
.pdf-reader-inspector-tabs span { min-width: 17px; display: inline-grid; place-items: center; margin-left: 3px; padding: 1px 5px; border-radius: 99px; background: var(--reader-accent-soft); color: var(--reader-accent); font-size: 9px; }
.pdf-reader-inspector-close { width: 38px; flex: none; border: 0; background: transparent; color: var(--reader-muted); font-size: 20px; }
.pdf-reader-inspector-panel { flex: 1; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.pdf-reader-panel-intro { flex: none; margin: 12px 12px 5px; padding: 11px 12px; border: 1px solid var(--reader-line); border-radius: 10px; background: var(--reader-panel-strong); }
.pdf-reader-panel-intro b { font-size: 11px; }
.pdf-reader-panel-intro p { margin-top: 3px; color: var(--reader-muted); font-size: 9px; line-height: 1.5; }
.pdf-reader-notes { flex: 1; min-height: 0; overflow: auto; padding: 8px 12px 30px; }
.pdf-reader-notes-empty { min-height: 220px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--reader-muted); text-align: center; }
.pdf-reader-notes-empty span { margin-bottom: 8px; color: var(--reader-accent); font-size: 24px; }
.pdf-reader-notes-empty b { color: var(--reader-ink); font-size: 12px; }
.pdf-reader-notes-empty p { max-width: 170px; margin-top: 4px; font-size: 10px; line-height: 1.5; }
.pdf-reader-note-card { --note-color: #f4ce55; position: relative; margin: 0 0 10px; padding: 10px 10px 10px 13px; border: 1px solid var(--reader-line); border-radius: 8px; background: var(--reader-panel-strong); box-shadow: 0 4px 12px rgba(50,42,31,.05); }
.pdf-reader-note-card::before { content: ""; position: absolute; left: -1px; top: 9px; bottom: 9px; width: 3px; border-radius: 0 3px 3px 0; background: var(--note-color); }
.pdf-reader-note-card.is-mint { --note-color: #67c99a; }
.pdf-reader-note-card.is-rose { --note-color: #ed8f9f; }
.pdf-reader-note-card.is-blue { --note-color: #72aee8; }
.pdf-reader-note-card.is-active { border-color: color-mix(in srgb, var(--note-color) 70%, var(--reader-line)); box-shadow: 0 6px 18px color-mix(in srgb, var(--note-color) 18%, transparent); }
.pdf-reader-note-card header { display: flex; align-items: center; justify-content: space-between; }
.pdf-reader-note-page,
.pdf-reader-note-remove,
.pdf-reader-note-ai { border: 0; background: transparent; color: var(--reader-muted); }
.pdf-reader-note-page { font-size: 9px; font-weight: 700; }
.pdf-reader-note-remove { width: 22px; height: 22px; border-radius: 50%; font-size: 16px; }
.pdf-reader-note-card blockquote { margin: 4px 0 8px; color: var(--reader-ink); font: 11px/1.55 var(--pdf-reader-font-family); cursor: pointer; }
.pdf-reader-note-card textarea { width: 100%; min-height: 52px; resize: vertical; padding: 7px 8px; border: 1px solid var(--reader-line); border-radius: 7px; background: color-mix(in srgb, var(--reader-panel) 65%, transparent); color: var(--reader-ink); font: 10px/1.5 var(--font); }
.pdf-reader-note-ai { margin-top: 6px; color: var(--reader-accent); font-size: 9px; font-weight: 700; }
.pdf-reader-connectors { position: absolute; inset: 0; z-index: 6; overflow: visible; pointer-events: none; }
.pdf-reader-connectors path { fill: none; stroke-width: 1.4; stroke-linecap: round; opacity: .72; filter: drop-shadow(0 1px 1px rgba(0,0,0,.08)); }

.pdf-reader-ai-identity { flex: none; display: flex; align-items: center; gap: 9px; margin: 12px; padding: 12px; border: 1px solid var(--reader-line); border-radius: 10px; background: var(--reader-panel-strong); }
.pdf-reader-ai-identity > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--reader-accent); color: var(--reader-panel-strong); }
.pdf-reader-ai-identity div { display: flex; flex-direction: column; }
.pdf-reader-ai-identity b { font-size: 11px; }
.pdf-reader-ai-identity small { color: var(--reader-muted); font-size: 9px; }
.pdf-reader-ai-quote { flex: none; max-height: 110px; overflow: auto; margin: 0 12px 8px; padding: 9px 10px; border-left: 3px solid var(--reader-accent); background: var(--reader-accent-soft); color: var(--reader-ink); font: 10px/1.55 var(--pdf-reader-font-family); }
.pdf-reader-ai-quick { flex: none; display: flex; flex-wrap: wrap; gap: 5px; padding: 0 12px 8px; }
.pdf-reader-ai-quick button { padding: 5px 8px; border: 1px solid var(--reader-line); border-radius: 99px; background: transparent; color: var(--reader-muted); font-size: 9px; }
.pdf-reader-ai-log { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 8px; overflow: auto; padding: 4px 12px 12px; }
.pdf-reader-ai-message { max-width: 92%; padding: 8px 10px; border-radius: 10px; font-size: 10px; line-height: 1.6; white-space: pre-wrap; }
.pdf-reader-ai-message.user { align-self: flex-end; background: var(--reader-accent); color: var(--reader-panel-strong); border-bottom-right-radius: 3px; }
.pdf-reader-ai-message.assistant { align-self: flex-start; background: var(--reader-panel-strong); border: 1px solid var(--reader-line); border-bottom-left-radius: 3px; }
.pdf-reader-ai-message.is-pending { color: var(--reader-muted); animation: pdf-ai-pulse 1.2s ease-in-out infinite; }
.pdf-reader-ai-message.is-error { color: #9b3d36; }
@keyframes pdf-ai-pulse { 50% { opacity: .55; } }
.pdf-reader-ai-form { flex: none; display: grid; grid-template-columns: 1fr 34px; gap: 6px; margin: 0 12px 13px; padding: 7px; border: 1px solid var(--reader-line); border-radius: 11px; background: var(--reader-panel-strong); }
.pdf-reader-ai-form textarea { resize: none; border: 0; outline: 0; background: transparent; color: var(--reader-ink); font: 10px/1.5 var(--font); }
.pdf-reader-ai-form button { align-self: end; width: 31px; height: 31px; border: 0; border-radius: 50%; background: var(--reader-accent); color: var(--reader-panel-strong); font-size: 17px; }

.pdf-reader-scrubber { position: relative; z-index: 15; flex: none; height: 76px; border-top: 1px solid var(--reader-line); background: color-mix(in srgb, var(--reader-panel) 94%, transparent); box-shadow: 0 -3px 18px rgba(42,34,24,.05); }
.pdf-reader-scrubber-center { position: absolute; top: 13px; left: 50%; width: min(70vw,1080px); display: flex; align-items: flex-start; gap: 10px; transform: translateX(-50%); }
.pdf-reader-scrubber-center > button { width: 30px; height: 30px; flex: none; border-radius: 50%; font-size: 14px; }
.pdf-reader-scrubber-track { position: relative; flex: 1; min-width: 80px; height: 45px; }
.pdf-reader-slider { position: relative; z-index: 3; width: 100%; height: 22px; margin: 0; appearance: none; -webkit-appearance: none; background: transparent; cursor: ew-resize; }
.pdf-reader-slider::-webkit-slider-runnable-track { height: 4px; border-radius: 99px; background: linear-gradient(90deg, var(--reader-accent) 0 var(--scrub-progress), var(--reader-line) var(--scrub-progress) 100%); }
.pdf-reader-slider::-moz-range-track { height: 4px; border-radius: 99px; background: var(--reader-line); }
.pdf-reader-slider::-moz-range-progress { height: 4px; border-radius: 99px; background: var(--reader-accent); }
.pdf-reader-slider::-webkit-slider-thumb { width: 16px; height: 16px; margin-top: -6px; appearance: none; -webkit-appearance: none; border: 4px solid var(--reader-panel-strong); border-radius: 50%; background: var(--reader-accent); box-shadow: 0 2px 7px rgba(45,36,24,.3); transition: transform .12s ease; }
.pdf-reader-slider:active::-webkit-slider-thumb { transform: scale(1.28); }
.pdf-reader-slider::-moz-range-thumb { width: 9px; height: 9px; border: 4px solid var(--reader-panel-strong); border-radius: 50%; background: var(--reader-accent); box-shadow: 0 2px 7px rgba(45,36,24,.3); }
.pdf-reader-page-ruler { position: absolute; top: 10px; right: 0; left: 0; height: 31px; border-top: 1px solid var(--reader-line); background-image: repeating-linear-gradient(90deg, var(--reader-line) 0 1px, transparent 1px var(--page-tick-gap)); background-position: 0 0; background-repeat: no-repeat; background-size: 100% 7px; pointer-events: none; }
.pdf-reader-page-ruler span { position: absolute; top: 10px; color: var(--reader-muted); font: 8px/1 ui-monospace, "SFMono-Regular", Consolas, monospace; transform: translateX(-50%); font-variant-numeric: tabular-nums; }
.pdf-reader-page-ruler span:first-child { transform: none; }
.pdf-reader-page-ruler span:last-child { transform: translateX(-100%); }
.pdf-reader-scrub-preview { position: absolute; left: clamp(80px, calc(var(--scrub-ratio) * 100%), calc(100% - 80px)); bottom: 49px; width: 174px; padding: 6px 6px 8px; border: 1px solid rgba(255,255,255,.25); border-radius: 10px; background: rgba(35,34,31,.94); box-shadow: 0 16px 38px rgba(0,0,0,.3); color: #f7f3eb; text-align: center; transform: translateX(-50%); pointer-events: none; animation: pdf-scrub-pop .13s ease-out; }
.pdf-reader-scrub-preview::after { content: ""; position: absolute; left: 50%; bottom: -6px; width: 11px; height: 11px; background: rgba(35,34,31,.94); transform: translateX(-50%) rotate(45deg); }
.pdf-reader-scrub-preview canvas { position: relative; z-index: 1; width: 160px; height: 108px; display: block; border-radius: 5px; background: #e8dfd1; object-fit: contain; }
.pdf-reader-scrub-preview.is-epub { width: auto; min-width: 130px; padding: 9px 12px; }
.pdf-reader-scrub-preview.is-epub canvas { display: none; }
.pdf-reader-scrub-preview span { position: relative; z-index: 1; display: block; margin-top: 5px; font-size: 10px; font-variant-numeric: tabular-nums; }
@keyframes pdf-scrub-pop { from { opacity: 0; transform: translateX(-50%) translateY(8px) scale(.96); } }
.pdf-reader-session-stats { position: absolute; left: 16px; bottom: 9px; z-index: 5; display: flex; align-items: center; gap: 8px; color: var(--reader-muted); font-size: 9px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pdf-reader-session-stats b { color: var(--reader-ink); font-size: 10px; }
.pdf-reader-session-stats span + span::before { content: "·"; margin-right: 8px; color: var(--reader-line); }
.pdf-reader-shortcuts { position: absolute; right: 16px; bottom: 9px; color: var(--reader-muted); font-size: 9px; letter-spacing: .04em; white-space: nowrap; }

.pdf-reader.is-focus .pdf-reader-inspector,
.pdf-reader.is-focus .pdf-reader-connectors { display: none; }
.pdf-reader.is-focus .pdf-reader-heading,
.pdf-reader.is-focus .pdf-reader-progress,
.pdf-reader.is-focus .pdf-reader-toolbar .pdf-reader-select-wrap,
.pdf-reader.is-focus .pdf-reader-toolbar .pdf-reader-stepper { opacity: .12; transition: opacity .2s ease; }
.pdf-reader.is-focus .pdf-reader-topbar:hover :is(.pdf-reader-heading,.pdf-reader-progress,.pdf-reader-toolbar .pdf-reader-select-wrap,.pdf-reader-toolbar .pdf-reader-stepper) { opacity: 1; }

.pdf-reader.is-book-fullscreen .pdf-reader-topbar,
.pdf-reader.is-book-fullscreen .pdf-reader-connectors,
.pdf-reader.is-book-fullscreen .pdf-reader-page-turn,
.pdf-reader.is-book-fullscreen .pdf-reader-selection-tools,
.pdf-reader.is-book-fullscreen .pdf-reader-scrubber,
.pdf-reader.is-book-fullscreen :is(.pdf-reader-ocr-card, .pdf-reader-ocr-cache-warning) { display: none; }
.pdf-reader.is-book-fullscreen .pdf-reader-body { flex: 1; }
.pdf-reader.is-book-fullscreen .pdf-reader-pages { padding: 8px; }
.pdf-reader.is-book-fullscreen .pdf-reader-inspector { display: flex; }
.pdf-reader.is-book-fullscreen.is-fullscreen-inspector-open .pdf-reader-connectors { display: block; }
.pdf-reader.is-book-fullscreen.is-fullscreen-inspector-open .pdf-reader-selection-tools:not(.hidden) { display: flex; }

@media (max-width: 1180px) {
  .pdf-reader-heading { width: 140px; }
  .pdf-reader-select-wrap > span,
  .pdf-reader-shortcuts { display: none; }
  .pdf-reader-select-wrap { padding-left: 4px; }
}
@media (max-width: 900px) {
  .pdf-reader:not(.is-book-fullscreen).is-inspector-open,
  .pdf-reader.is-book-fullscreen.is-fullscreen-inspector-open { --pdf-reader-stage-shift: 0px; }
  .pdf-reader-inspector { width: min(400px, calc(100vw - 24px)); }
  .pdf-reader-heading { width: 120px; }
  .pdf-reader-progress { display: none; }
  .pdf-reader-toolbar { justify-content: flex-end; }
  .pdf-reader-zoom { display: none; }
  .pdf-reader-rail-button { width: 36px; padding: 0; }
  .pdf-reader-rail-button b { display: none; }
  .pdf-reader-scrubber-center { width: calc(100% - 24px); }
}
@media (max-width: 620px) {
  .pdf-reader-topbar { gap: 6px; padding-inline: 8px; }
  .pdf-reader-heading { display: none; }
  .pdf-reader-toolbar { justify-content: center; }
  .pdf-reader-stepper { display: none; }
  .pdf-reader-select-wrap select { max-width: 84px; }
  .pdf-reader-top-actions #pdf-preview-open { display: none; }
  .pdf-reader-pages { padding-inline: 34px; }
  .pdf-reader-inspector {
    top: auto; right: 8px; bottom: max(8px, env(safe-area-inset-bottom)); left: 8px;
    width: auto; height: min(56dvh, 460px); transform: translate3d(0, calc(100% + 16px), 0);
  }
  .pdf-reader-scrubber { height: 82px; }
  .pdf-reader-scrubber-center { width: calc(100% - 16px); gap: 6px; }
  .pdf-reader-session-stats { left: 10px; bottom: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .pdf-reader,
  .pdf-reader-pages.turn-forward .pdf-reader-page,
  .pdf-reader-pages.turn-backward .pdf-reader-page,
  .pdf-reader-scrub-preview,
  .pdf-reader-stage,
  .pdf-reader-inspector { transition: none; }
  .pdf-reader-pages { scroll-behavior: auto; }
}
