/* Additions from ui/02; loaded only on novel pages. */
/* Chapter font controls inherit each template's reading theme. */
.novel-text-tools { display:flex; align-items:center; gap:6px; margin:0 0 18px; padding:0; color:var(--novel-muted,#a0a1b5); font-size:13px; line-height:1.5; font-family:inherit; letter-spacing:normal; text-indent:0; text-align:left; }
.novel-text-tools[hidden] { display:none; }
.novel-text-tools .icon-button { min-width:44px; width:44px; height:44px; padding:0; font-size:14px; line-height:1; font-weight:500; color:var(--novel-text,#d5d5de); background:color-mix(in srgb,var(--novel-muted,#a0a1b5) 10%,transparent); border:1px solid color-mix(in srgb,var(--novel-muted,#a0a1b5) 25%,transparent); border-radius:var(--radius); }
.novel-text-tools .icon-button:not(:disabled):hover { background:color-mix(in srgb,var(--novel-muted,#a0a1b5) 18%,transparent); }
.novel-text-tools .icon-button:focus-visible { outline:2px solid var(--novel-text,#d5d5de); outline-offset:2px; }
.novel-text-tools .icon-button:disabled { opacity:.4; cursor:not-allowed; }
.novel-text-tools output { min-width:26px; text-align:center; font-size:13px; font-variant-numeric:tabular-nums; }
/* Preserve the complete lettering on generated local jackets. */
.novel-cover-illustrated:has(img[src*="/uploads/novel-covers/"]) > img { object-fit:contain; object-position:center; }
.novel-cover-illustrated:has(img[src*="/uploads/novel-covers/"]):before,
.novel-cover-illustrated:has(img[src*="/uploads/novel-covers/"]) .novel-cover-title,
.novel-cover-illustrated:has(img[src*="/uploads/novel-covers/"]) .novel-cover-author { display:none; }
.novel-hero:has(img[src*="/uploads/novel-covers/"]) { background:#293a46; }
.novel-hero:has(img[src*="/uploads/novel-covers/"]):after { background:none; }
.novel-hero img[src*="/uploads/novel-covers/"] { position:absolute; inset:6% 4% auto auto; width:36%; height:88%; object-fit:contain; object-position:center; }
.novel-hero:has(img[src*="/uploads/novel-covers/"]) .hero-copy { top:50%; bottom:auto; transform:translateY(-50%); max-width:53%; }
