/* NovelNest licensed-library UI improvements */

/*
  Cover sizing
  ------------
  Covers now keep the REAL aspect ratio of each image. We never force square,
  2:3, or a fixed height. Width changes by context, while height stays auto.
  This prevents stretching, cropping, and long-strip thumbnails.
*/
.cover:not(.external-cover){
  height:auto !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  object-position:center !important;
  background:transparent !important;
  box-shadow:none;
}

/* Catalog / library / browse cards */
.book-card .cover:not(.external-cover){
  width:112px !important;
  height:auto !important;
  max-height:170px !important;
  flex:0 0 112px;
  align-self:center !important;
  border-radius:10px;
}
.book-card{align-items:center;min-height:190px}
.book-card>div{min-width:0;align-self:center}

/* Novel detail page */
.detail>.cover:not(.external-cover){
  width:100% !important;
  height:auto !important;
  max-height:360px !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  align-self:start;
  justify-self:center;
  border-radius:10px;
}

/* Latest-chapter rows */
.chapter-row .cover:not(.external-cover){
  width:54px !important;
  height:auto !important;
  max-height:82px !important;
  min-width:54px !important;
  flex:0 0 54px !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
  border-radius:5px;
  box-shadow:none;
}

/* Feature covers */
.spotlight>.cover:not(.external-cover),
.feature-side .cover:not(.external-cover){
  height:auto !important;
  aspect-ratio:auto !important;
  object-fit:contain !important;
}

/* Chapter list pagination */
.toc-pager{
  display:grid;
  grid-template-columns:auto auto minmax(150px,1fr) auto auto;
  gap:9px;
  align-items:center;
  margin:18px 0 8px;
}
.toc-pager button,.toc-pager select{
  min-height:44px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--paper);
  color:var(--ink);
  font:600 14px 'DM Sans',sans-serif;
  padding:0 13px;
}
.toc-pager select{width:100%;text-align:center;color:var(--green)}
.toc-pager button:not(:disabled):hover{border-color:var(--green);color:var(--green)}
.toc-page-note{text-align:center;color:var(--muted);font-size:12px;margin:9px 0 18px}

/* Compact chapter reader navigation */
.reader-wrap{max-width:var(--reader-content-width,790px)}
.modern-reader-tools{
  display:grid;
  grid-template-columns:58px minmax(0,1fr) 58px 58px;
  gap:8px;
  align-items:stretch;
  margin:18px 0 0;
  position:sticky;
  top:8px;
  z-index:25;
}
.reader-nav-button,.reader-settings-button,.reader-chapter-select{
  min-height:52px;
  border:0;
  border-radius:8px;
  background:var(--green);
  color:#fff;
  font:700 16px 'DM Sans',sans-serif;
  box-shadow:0 4px 14px #00000012;
}
.reader-nav-button{display:grid;place-items:center;font-size:28px;line-height:1}
.reader-nav-button.disabled{opacity:.38;pointer-events:none}
.reader-settings-button{font-size:22px;cursor:pointer}
.reader-chapter-select{width:100%;padding:0 34px 0 14px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}

.reader-settings-panel{
  margin:10px 0 18px;
  padding:20px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--paper);
  box-shadow:0 10px 28px #00000014;
}
.reader-settings-panel[hidden]{display:none}
.reader-setting-row{
  display:grid;
  grid-template-columns:145px minmax(0,1fr);
  gap:14px;
  align-items:center;
  padding:10px 0;
}
.reader-setting-row>span{font-weight:700;color:var(--ink)}
.reader-setting-row select{
  width:100%;
  min-height:42px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--paper);
  color:var(--ink);
  padding:0 11px;
}
.reader-choice-group{display:flex;gap:18px;flex-wrap:wrap}
.reader-choice-group label{display:flex;align-items:center;gap:7px;color:var(--ink)}
.reader-choice-group input{accent-color:var(--green);width:18px;height:18px}

.prose{
  font-family:var(--reader-font-family,Georgia,serif) !important;
  line-height:var(--reader-line-height,1.9) !important;
}
.reader-wrap[data-read-mode="page"] .prose{
  height:68vh;
  min-height:420px;
  column-width:min(var(--reader-content-width,790px),calc(100vw - 54px));
  column-gap:42px;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  padding-bottom:12px;
}
.reader-wrap[data-read-mode="page"] .prose p{break-inside:avoid;}

@media(max-width:760px){
  .book-card .cover:not(.external-cover){
    width:108px !important;
    height:auto !important;
    max-height:162px !important;
    flex-basis:108px;
  }
  .book-card{gap:15px !important;min-height:180px}

  .detail>.cover:not(.external-cover){
    width:110px !important;
    height:auto !important;
    max-height:190px !important;
    justify-self:start;
  }

  .chapter-row .cover:not(.external-cover){
    width:52px !important;
    height:auto !important;
    max-height:78px !important;
    min-width:52px !important;
    flex-basis:52px !important;
  }

  .book-card h3{margin-top:5px}
  .toc-pager{grid-template-columns:1fr 1fr;gap:8px}
  .toc-pager select{grid-column:1/-1;grid-row:1}
  .toc-pager [data-toc-action="first"],.toc-pager [data-toc-action="last"]{display:none}
  .modern-reader-tools{grid-template-columns:52px minmax(0,1fr) 52px 52px;gap:6px;top:5px}
  .reader-nav-button,.reader-settings-button,.reader-chapter-select{min-height:50px}
  .reader-setting-row{grid-template-columns:1fr;gap:7px;padding:9px 0}
  .reader-settings-panel{padding:15px}
  .reader-choice-group{gap:12px 18px}
}

@media(max-width:430px){
  .book-card .cover:not(.external-cover){
    width:96px !important;
    height:auto !important;
    max-height:150px !important;
    flex-basis:96px;
  }
  .book-card{min-height:168px}
  .modern-reader-tools{grid-template-columns:48px minmax(0,1fr) 48px 48px}
  .reader-chapter-select{font-size:14px;padding-left:10px}
}

/* Reading position controls stay reachable on small screens. */
.reader-wrap{padding-bottom:85px}
.reader-position-bar{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));z-index:30;display:flex;align-items:center;gap:14px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:0 4px 20px #0002;font:600 13px system-ui,sans-serif;max-width:calc(100vw - 28px)}
.reader-position-bar>div{display:grid;gap:5px;min-width:75px}
.reader-position-bar progress{width:75px;height:5px;accent-color:var(--green)}
.reader-position-bar button{min-height:44px;padding:6px 10px;background:var(--soft);color:var(--ink);border:1px solid var(--line);border-radius:8px;font:inherit;cursor:pointer}
.reader-position-bar button:focus-visible{outline:2px solid var(--green);outline-offset:3px}
@media print{.reader-position-bar{display:none}}

/* Chapter state labels are text as well as color, and wrap on narrow screens. */
.toc .chapter-entry-number{flex:0 0 28px}
.toc .chapter-entry-text{display:grid;gap:9px;min-width:0;flex:1}
.toc .chapter-entry-title{color:var(--ink);font-size:15px;overflow-wrap:anywhere}
.toc .chapter-entry-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.chapter-state,.toc .chapter-state{display:inline-flex;align-items:center;width:fit-content;border:1px solid var(--line);border-radius:20px;padding:3px 9px;font:600 12px system-ui,sans-serif;line-height:1.5;color:var(--muted);background:var(--paper)}
.chapter-state[data-state="in-progress"]{color:var(--ink);background:var(--soft)}
.chapter-state[data-state="finished"]{color:var(--green);border-color:var(--green);background:var(--soft)}
.chapter-completion{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.chapter-completion button{min-height:44px}

.library-backup{margin:32px 0;padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.library-backup p{max-width:70ch;line-height:1.65}
.library-backup .actions{display:flex;flex-wrap:wrap;gap:10px}
.library-backup button{min-height:44px}
.backup-preview{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.backup-preview[hidden]{display:none}
@media(max-width:430px){.library-backup{padding:18px}.library-backup .actions button{width:100%}}

/* Keep long About sections compact without hiding the full synopsis. */
.synopsis-collapsible [hidden]{display:none !important}
.synopsis-toggle{
  display:inline-flex;align-items:center;padding:6px 0;margin:0 0 5px;
  border:0;background:transparent;color:var(--green);
  font:700 14px 'DM Sans',system-ui,sans-serif;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;
}
.synopsis-toggle:hover{opacity:.85}
.synopsis-toggle:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-radius:2px}
