/* Series workspace: flat surfaces, direct links, and compact information hierarchy. */
.mv-series { min-width:0; display:flex; flex-direction:column; gap:12px; }
.mv-series :where(h1,h2,p,dl,dd) { margin:0; }
.mv-series-breadcrumb { display:flex; align-items:center; gap:7px; min-width:0; font-size:10px; color:var(--muted-foreground); }
.mv-series-breadcrumb > :last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mv-series-breadcrumb a { flex-shrink:0; }
.mv-series-breadcrumb a:hover,.mv-series-byline a:hover { color:var(--primary); }
.mv-series-intro { display:grid; grid-template-columns:78px minmax(0,1fr); align-items:start; column-gap:14px; row-gap:8px; padding:0 0 12px; border-bottom:1px solid var(--border); }
main button.mv-series-cover { width:78px; height:112px; min-height:112px; padding:0; border:1px solid var(--border); border-radius:5px; overflow:hidden; background:var(--muted); cursor:zoom-in; }
.mv-series-cover img { width:100%; height:100%; object-fit:cover; }
.mv-series-identity { min-width:0; display:flex; flex-direction:column; gap:6px; }
.mv-series-titleline { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.mv-series-titleline h1 { font-size:23px; font-weight:750; line-height:1.25; letter-spacing:-.035em; }
.mv-series-status { color:var(--primary); background:color-mix(in srgb,var(--primary) 8%,transparent); font-size:9px; padding:3px 6px; border-radius:4px; white-space:nowrap; }
.mv-series-adult { color:#b42a50; font-size:9px; font-weight:700; }
.mv-series-byline { display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; font-size:11px; line-height:1.6; color:var(--muted-foreground); }
.mv-series-byline > :first-child { color:var(--foreground); font-weight:550; }
.mv-series-byline > a { color:var(--primary); font-size:10px; }
.mv-series-metrics { display:flex; flex-wrap:wrap; gap:5px 17px; font-size:10px; line-height:1.7; }
.mv-series-metrics > div { display:flex; gap:5px; align-items:baseline; }
.mv-series-metrics dt { color:var(--muted-foreground); }
.mv-series-metrics dd { font-weight:650; }
.mv-series-metrics > div:first-child dd { color:var(--primary); }
.mv-series-summary { display:flex; gap:12px; align-items:baseline; }
.mv-series-summary p { min-width:0; font-size:11px; line-height:1.7; color:var(--muted-foreground); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
main .mv-series-summary button { min-height:24px; padding:0; background:transparent; border:0; flex-shrink:0; color:var(--primary); font-size:10px; cursor:pointer; }
.mv-series .mv-story-actions { display:flex; flex-wrap:wrap; gap:5px; margin:0!important; padding:0; }
.mv-series .mv-story-actions > :where(a,button),.mv-series .mv-story-actions > div > button { min-height:29px!important; padding:5px 9px; border-radius:5px; font-size:10px; box-shadow:none; }
.mv-series .mv-story-actions > a:first-child,.mv-series .mv-story-actions > div { min-width:0; flex:0 1 auto; }
.mv-series-context { grid-column:2; display:flex; flex-wrap:wrap; gap:6px 16px; align-items:center; font-size:9px; color:var(--muted-foreground); }
.mv-series-genres { display:flex; flex-wrap:wrap; gap:7px; }
.mv-series-genres a { color:var(--primary); font-weight:600; }
.mv-series-warning { font-size:9px; color:var(--muted-foreground); }
.mv-series-shelf { font-size:9px; margin-left:auto; }
.mv-series-workspace { display:grid; grid-template-columns:minmax(0,1fr) 258px; gap:22px; align-items:start; }
.mv-series-main { min-width:0; }
.mv-series-tabs { display:flex; gap:20px; border-bottom:1px solid var(--border); margin-bottom:10px; }
main .mv-series-tabs button { display:flex; align-items:center; gap:6px; min-height:34px; padding:0 0 8px; border:0; border-bottom:2px solid transparent; border-radius:0; background:transparent; color:var(--muted-foreground); font-size:12px; font-weight:600; cursor:pointer; }
main .mv-series-tabs button[aria-selected='true'] { color:var(--primary); border-bottom-color:var(--primary); }
.mv-series-tabs button > span { padding:0 5px; border-radius:4px; background:var(--muted); font-size:9px; }
.mv-series-panel[hidden] { display:none!important; }
.mv-series-panel:focus-visible { outline:2px solid var(--primary); outline-offset:4px; }
.mv-series-panel > .mv-story-chapters,.mv-series-panel > .mv-story-synopsis { padding:0; background:transparent; border:0; border-radius:0; box-shadow:none; }
.mv-series-panel > .mv-story-chapters > * + * { margin-top:8px!important; }
.mv-series-panel .mv-story-chapters button,.mv-series-panel .mv-story-chapters input,.mv-series-panel .mv-story-chapters select { border-radius:5px; }
.mv-series-panel .mv-story-chapters [id^='chapter-'] > a > div,.mv-series-panel .mv-story-chapters [id^='chapter-'] > button > div { min-height:31px; padding-block:5px; }
.mv-series-panel .mv-story-extra { margin-top:10px; }
.mv-series-panel .mv-story-synopsis .whitespace-pre-line { font-size:12px; line-height:1.8; }
.mv-series-aside { min-width:0; border-left:1px solid var(--border); padding-left:16px; display:flex; flex-direction:column; gap:18px; }
.mv-series-section-title { display:flex; justify-content:space-between; align-items:center; gap:8px; margin:0 0 4px; min-height:30px; }
.mv-series-section-title h2,.mv-series-related h2 { font-size:12px; line-height:1.5; font-weight:700; letter-spacing:-.01em; }
.mv-series-section-title > :last-child { color:var(--muted-foreground); font-size:9px; }
.mv-series-section-title > a:last-child { color:var(--primary); }
.mv-series-collection,.mv-series-recommendation { display:flex; align-items:center; gap:9px; padding:8px 0; border-bottom:1px solid var(--border); min-width:0; }
.mv-series-collection img,.mv-series-recommendation img { width:27px; height:37px; object-fit:cover; border-radius:3px; flex-shrink:0; }
.mv-series-collection > div,.mv-series-recommendation > div { min-width:0; flex:1; }
.mv-series-collection strong,.mv-series-recommendation strong { font-size:11px; line-height:1.45; font-weight:600; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.mv-series-collection > div > span,.mv-series-recommendation > div > span { display:block; font-size:9px; color:var(--muted-foreground); margin-top:3px; }
.mv-series-collection > span { color:var(--primary); font-size:12px; }
.mv-series-collection:hover strong,.mv-series-recommendation:hover strong { color:var(--primary); }
.mv-series-related { margin-top:16px; border-top:1px solid var(--border); padding-top:12px; }
.mv-series-related > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; }
.mv-series-related a { display:flex; align-items:center; gap:8px; padding:9px 0; border-bottom:1px solid var(--border); font-size:11px; min-width:0; }
.mv-series-related a > span:first-child { color:var(--muted-foreground); font-size:9px; width:66px; flex-shrink:0; }
.mv-series-related a > strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:550; }
.mv-series-related a > span:last-child { color:var(--primary); margin-left:auto; }
.mv-series-discussion > section { padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.mv-series-discussion :where(.p-3,.p-3\.5,.p-4) { padding:10px; border-radius:6px; }
.mv-series-discussion textarea { min-height:64px; }
/* A flat cover strip replaces every legacy 3D carousel. */
.mv-flat-books { display:flex; align-items:center; justify-content:flex-start; gap:7px; min-width:0; max-width:100%; overflow-x:auto; padding:3px 0; scrollbar-width:thin; }
.mv-flat-books > a { width:48px; height:68px; flex:0 0 48px; border:1px solid var(--border); border-radius:4px; overflow:hidden; }
.mv-flat-books > a img { width:100%; height:100%; object-fit:cover; }
.mv-flat-books > a:hover { outline:1px solid var(--primary); outline-offset:1px; }
.mv-flat-books-sm > a { width:33px; height:47px; flex-basis:33px; }
.mv-flat-books-lg > a { width:58px; height:82px; flex-basis:58px; }
.mv-flat-empty { font-size:11px; color:var(--muted-foreground); padding:12px 0; }
main .mv-flat-books button { min-width:28px; min-height:28px; padding:4px; border-radius:4px; background:var(--muted); color:var(--primary); font-size:10px; }
.mv-flat-books [hidden] { display:none!important; }
/* Single collection thumbnails keep small cards flat as well. */
.mv-library-covers img,.mv-index-mini-covers img { transform:none; position:static; top:auto; left:auto; box-shadow:none; }
.mv-library-covers img:not(:first-child),.mv-index-mini-covers img:not(:first-child) { display:none; }
.mv-library-covers img { width:48px; height:72px; }
.mv-index-mini-covers img { width:42px; height:60px; }
@media(max-width:999px) {
 .mv-series-workspace { grid-template-columns:minmax(0,1fr) 220px; gap:16px; }
 .mv-series-aside { padding-left:12px; }
 .mv-series-titleline h1 { font-size:21px; }
 .mv-series-summary { flex-wrap:wrap; gap:0; }
}
@media(max-width:759px) {
 .mv-series-workspace { grid-template-columns:minmax(0,1fr); gap:18px; }
 .mv-series-aside { border-left:0; border-top:1px solid var(--border); padding:10px 0 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
 .mv-series-titleline h1 { font-size:20px; }
 .mv-series-breadcrumb { font-size:9px; }
 .mv-series-intro { grid-template-columns:66px minmax(0,1fr); gap:9px 11px; }
 main button.mv-series-cover { width:66px; height:94px; min-height:94px; }
 .mv-series-byline { font-size:10px; gap:2px 8px; }
 .mv-series-byline > [lang] { display:none; }
 .mv-series-metrics { gap:3px 12px; font-size:10px; }
 .mv-series-summary { grid-column:1/-1; }
 .mv-series-identity .mv-series-summary { display:none; }
 .mv-series .mv-story-actions { padding-top:3px; }
 .mv-series-context { grid-column:1/-1; gap:5px 12px; }
 .mv-series-shelf { display:none; }
 .mv-series-tabs { gap:20px; }
 .mv-series-related > div { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:479px) {
 .mv-series { gap:10px; }
 .mv-series-titleline { gap:5px 7px; }
 .mv-series-titleline h1 { font-size:18px; }
 .mv-series-metrics { gap:2px 10px; }
 .mv-series-aside { grid-template-columns:minmax(0,1fr); }
 .mv-series-recommendations > div:last-child { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 12px; }
 .mv-series-recommendation strong { font-size:10px; }
 .mv-series .mv-series-metrics > div:last-child { display:none; }
}
@media(pointer:coarse) {
 .mv-series .mv-story-actions > :where(a,button),.mv-series .mv-story-actions > div > button { min-height:34px!important; }
 main .mv-series-tabs button { min-height:40px; }
}

.mv-series-panel .mv-story-synopsis-more { display:none!important; }
/* The overview has its own restrained type scale. */
.mv-story-page .mv-series-titleline h1 { font-size:23px; line-height:1.25; }
@media(max-width:999px) { .mv-story-page .mv-series-titleline h1 { font-size:21px; } }
@media(max-width:759px) { .mv-story-page .mv-series-titleline h1 { font-size:20px; } }
@media(max-width:479px) { .mv-story-page .mv-series-titleline h1 { font-size:18px; } }

/* ==========================================================================
   FLOATING QUICK READING NAVIGATION DOCK (Cherrymist Inspired)
   Desktop: Fixed bottom-4, centered pill max-w-[560px], pointer-events-none container
   Mobile: Fixed inset-x-3 bottom-3 z-50, rounded-full, backdrop-blur-xl, safe-area-inset
   ========================================================================== */

/* 1. Desktop Dock Wrapper */
.mv-story-quick-nav-desktop {
  display: block !important;
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 1rem !important; /* bottom-4 */
  z-index: 40 !important;
  pointer-events: none !important;
  animation: mvFadeIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) both !important;
}

@media (max-width: 767px) {
  .mv-story-quick-nav-desktop {
    display: none !important;
  }
}

/* 2. Mobile Dock Wrapper */
.mv-story-quick-nav-mobile {
  display: block !important;
  position: fixed !important;
  left: 0.75rem !important; /* inset-x-3 */
  right: 0.75rem !important;
  bottom: 0.75rem !important; /* bottom-3 */
  z-index: 50 !important;
  animation: mvFadeIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) both !important;
  padding-bottom: max(0px, calc(env(safe-area-inset-bottom) - 0.75rem)) !important;
}

@media (min-width: 768px) {
  .mv-story-quick-nav-mobile {
    display: none !important;
  }
}

/* 3. The Pill Card */
.mv-quick-nav-pill {
  width: 100% !important;
  max-width: 560px !important;
  margin-inline: auto !important;
  pointer-events: auto !important;
  border-radius: 9999px !important;
  backdrop-filter: blur(20px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  border: 1px solid color-mix(in srgb, var(--border) 60%, transparent) !important;
  background: color-mix(in srgb, var(--card) 85%, transparent) !important;
  box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.38), 0 0 0 1px color-mix(in srgb, var(--primary) 12%, transparent) !important;
  display: flex !important;
  align-items: center !important;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.mv-story-quick-nav-desktop .mv-quick-nav-pill {
  height: 64px !important;
  padding-inline: 12px !important;
}

.mv-story-quick-nav-mobile .mv-quick-nav-pill {
  height: 68px !important;
  padding-inline: 10px !important;
}

/* Inner elements container */
.mv-quick-nav-row {
  position: relative !important;
  width: 100% !important;
  height: 44px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

@media (min-width: 768px) {
  .mv-quick-nav-row {
    gap: 10px !important;
  }
}

/* 4. Circular Progress Indicator (44x44) */
.mv-quick-nav-progress {
  position: relative !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  flex-shrink: 0 !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 9999px !important;
  text-decoration: none !important;
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.mv-quick-nav-progress:hover {
  transform: scale(1.06) !important;
}

.mv-quick-nav-progress:active {
  transform: scale(0.94) !important;
}

.mv-quick-nav-progress svg {
  transform: rotate(-90deg) !important;
  width: 44px !important;
  height: 44px !important;
}

.mv-quick-nav-progress .stroke-muted {
  stroke: color-mix(in srgb, var(--muted-foreground) 25%, transparent) !important;
}

.mv-quick-nav-progress .stroke-primary {
  stroke: var(--primary) !important;
  transition: stroke-dashoffset 0.5s ease-out !important;
}

.mv-quick-nav-progress span {
  position: absolute !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--primary) !important;
  letter-spacing: -0.02em !important;
}

/* 5. Primary Start / Continue Reading Button */
.mv-quick-nav-cta {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  height: 44px !important;
  min-height: 44px !important;
  border-radius: 9999px !important;
  background: var(--primary) !important;
  color: var(--primary-foreground, #0d0f14) !important;
  font-size: 13.5px !important;
  font-weight: 650 !important;
  padding: 0 16px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  box-shadow: 0 4px 14px -3px color-mix(in srgb, var(--primary) 50%, transparent) !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.mv-quick-nav-cta:hover {
  background: color-mix(in srgb, var(--primary) 92%, #fff) !important;
  transform: scale(1.02) !important;
  box-shadow: 0 6px 20px -3px color-mix(in srgb, var(--primary) 65%, transparent) !important;
}

.mv-quick-nav-cta:active {
  transform: scale(0.98) !important;
}

.mv-quick-nav-cta svg {
  width: 16px !important;
  height: 16px !important;
  flex-shrink: 0 !important;
}

/* 6. Notification / Track Bell Button */
.mv-quick-nav-track {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  flex-shrink: 0 !important;
  border-radius: 9999px !important;
  border: 1px solid color-mix(in srgb, var(--border) 70%, transparent) !important;
  background: color-mix(in srgb, var(--card) 60%, transparent) !important;
  color: var(--foreground) !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  cursor: pointer !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.mv-quick-nav-track:hover {
  background: color-mix(in srgb, var(--card) 85%, transparent) !important;
  border-color: color-mix(in srgb, var(--primary) 50%, transparent) !important;
  transform: scale(1.02) !important;
}

.mv-quick-nav-track:active {
  transform: scale(0.98) !important;
}

.mv-quick-nav-track[aria-pressed="true"],
.mv-quick-nav-track.is-tracked {
  border-color: color-mix(in srgb, var(--primary) 55%, transparent) !important;
  background: color-mix(in srgb, var(--primary) 15%, transparent) !important;
  color: var(--primary) !important;
  box-shadow: 0 0 12px color-mix(in srgb, var(--primary) 25%, transparent) !important;
}

.mv-quick-nav-track svg {
  width: 16px !important;
  height: 16px !important;
}

/* 7. Library / Shelf Button */
.mv-quick-nav-library {
  height: 44px !important;
  min-height: 44px !important;
  flex-shrink: 0 !important;
  border-radius: 9999px !important;
  border: 1px solid color-mix(in srgb, var(--border) 70%, transparent) !important;
  background: color-mix(in srgb, var(--card) 60%, transparent) !important;
  color: var(--foreground) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  padding: 0 13px !important;
  cursor: pointer !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.mv-quick-nav-library:hover {
  background: color-mix(in srgb, var(--card) 85%, transparent) !important;
  border-color: color-mix(in srgb, var(--primary) 50%, transparent) !important;
  transform: scale(1.02) !important;
}

.mv-quick-nav-library:active {
  transform: scale(0.98) !important;
}

.mv-quick-nav-library.is-saved {
  border-color: color-mix(in srgb, var(--primary) 40%, transparent) !important;
  background: color-mix(in srgb, var(--primary) 14%, transparent) !important;
  color: var(--primary) !important;
}

.mv-quick-nav-library svg {
  width: 16px !important;
  height: 16px !important;
  flex-shrink: 0 !important;
}

/* 8. Hide global mobile bottom nav on story detail pages to avoid obstruction */
body:has(.mv-story-quick-nav) nav[aria-label="Mobile"],
.mv-story-page-active nav[aria-label="Mobile"] {
  display: none !important;
}

/* Story page bottom padding clearance */
.mv-story-page,
.mv-series {
  padding-bottom: 96px !important;
}

@media (max-width: 767px) {
  .mv-story-page,
  .mv-series {
    padding-bottom: 110px !important;
  }
  .mv-quick-nav-cta {
    font-size: 12px !important;
    padding: 0 10px !important;
    gap: 5px !important;
  }
  .mv-quick-nav-cta svg {
    width: 14px !important;
    height: 14px !important;
  }
  .mv-quick-nav-track {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
  }
  .mv-quick-nav-library {
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 10px !important;
    gap: 4px !important;
  }
  .mv-quick-nav-progress {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
  }
}

@media (max-width: 360px) {
  .mv-quick-nav-pill {
    padding-inline: 6px !important;
  }
  .mv-quick-nav-row {
    gap: 5px !important;
  }
  .mv-quick-nav-progress {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
  }
  .mv-quick-nav-progress svg {
    width: 38px !important;
    height: 38px !important;
  }
  .mv-quick-nav-progress circle {
    cx: 19 !important;
    cy: 19 !important;
    r: 17.5 !important;
  }
  .mv-quick-nav-cta {
    font-size: 11.5px !important;
    padding: 0 8px !important;
  }
  .mv-quick-nav-track {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
  }
  .mv-quick-nav-library {
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 8px !important;
  }
}

@keyframes mvFadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

