/* ============================================================
   Meridian Press — Author dashboard 2.0
   Multi-step book production wizard, matching the reference flow:
   Book Information -> Book Content Design (specs + editor + cover)
   -> Distribution & Pricing -> Blurb and Metadata
   ============================================================ */

.ad-shell{
  display:grid;
  grid-template-columns:240px 1fr;
  min-height:calc(100vh - 0px);
}

/* ---------- left rail: wizard steps ---------- */
.ad-rail{
  border-right:1px solid var(--rule-dark);
  background:var(--paper-dim);
  padding:1.4em 0;
  display:flex;
  flex-direction:column;
}
.ad-rail-brand{
  font-family:var(--display);
  font-size:1.1rem;
  padding:0 1.2em 1.2em;
  border-bottom:1px solid var(--rule-dark);
  margin-bottom:1em;
}
.ad-rail-brand a{ text-decoration:none; color:var(--ink); }
.ad-step{
  display:flex;
  align-items:flex-start;
  gap:0.7em;
  padding:0.9em 1.2em;
  cursor:pointer;
  border-left:3px solid transparent;
}
.ad-step:hover{ background:var(--paper); }
.ad-step.active{
  border-left-color:var(--brick);
  background:var(--paper);
}
.ad-step-num{
  width:22px; height:22px;
  border-radius:50%;
  border:1.5px solid var(--rule-dark);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--ui); font-size:0.72rem; font-weight:700;
  color:var(--walnut-dim);
  flex-shrink:0;
  margin-top:0.1em;
}
.ad-step.active .ad-step-num{ border-color:var(--brick); color:var(--brick); }
.ad-step.done .ad-step-num{
  background:var(--ink); border-color:var(--ink); color:var(--paper);
}
.ad-step-label{ font-family:var(--ui); font-size:0.88rem; font-weight:600; color:var(--ink); }
.ad-step-status{ font-family:var(--ui); font-size:0.72rem; color:var(--walnut-dim); margin-top:0.15em; }
.ad-step.active .ad-step-status{ color:var(--brick); }
.ad-step.done .ad-step-status{ color:var(--ink-soft); }

/* ---------- main content area ---------- */
.ad-main{ min-width:0; display:flex; flex-direction:column; }
.ad-page{ flex:1; padding:2.4em 3em; max-width:960px; }
.ad-page h1{ font-size:1.7rem; margin-bottom:0.3em; }
.ad-page .ad-sub{ font-family:var(--ui); font-size:0.92rem; color:var(--walnut-dim); margin-bottom:2em; }

/* form fields, sharing look with the rest of the site */
.ad-field{ margin-bottom:1.6em; }
.ad-field label.ad-label{
  display:block;
  font-family:var(--ui); font-size:0.85rem; font-weight:700;
  color:var(--ink); margin-bottom:0.3em;
}
.ad-field .ad-hint{ font-family:var(--ui); font-size:0.8rem; color:var(--walnut-dim); margin-bottom:0.6em; }
.ad-field input[type="text"], .ad-field select, .ad-field textarea{
  width:100%;
  font-family:var(--ui); font-size:0.92rem;
  padding:0.7em 0.9em;
  border:1px solid var(--rule-dark);
  background:var(--paper); color:var(--ink);
}

.ad-pill-group{ display:flex; flex-wrap:wrap; gap:0.6em; }
.ad-pill{
  font-family:var(--ui); font-size:0.85rem; font-weight:600;
  padding:0.6em 1.1em;
  border:1.5px solid var(--rule-dark);
  cursor:pointer;
  background:var(--paper);
  color:var(--ink-soft);
}
.ad-pill.selected{ border-color:var(--ink); color:var(--ink); background:var(--paper-dim); }

.ad-option-card{
  border:1.5px solid var(--rule-dark);
  padding:1.1em 1.3em;
  margin-bottom:0.8em;
  cursor:pointer;
}
.ad-option-card.selected{ border-color:var(--ink); background:var(--paper-dim); }
.ad-option-card .oc-title{ font-weight:700; font-size:0.95rem; margin-bottom:0.3em; }
.ad-option-card .oc-desc{ font-family:var(--ui); font-size:0.82rem; color:var(--walnut-dim); }

.ad-actions{ display:flex; gap:1em; margin-top:2em; }

/* ---------- content design sub-tabs (specs / write / cover) ---------- */
.ad-subtabs{
  display:flex; gap:0; margin-bottom:2em;
  border-bottom:1px solid var(--rule-dark);
}
.ad-subtab{
  font-family:var(--ui); font-size:0.85rem; font-weight:600;
  padding:0.8em 1.4em;
  color:var(--walnut-dim);
  cursor:pointer;
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
}
.ad-subtab.active{ color:var(--ink); border-bottom-color:var(--brick); }
.ad-subtab.locked{ color:var(--rule-dark); cursor:not-allowed; }
.ad-subpane{ display:none; }
.ad-subpane.active{ display:block; }

/* ---------- template gallery (interior + cover) ---------- */
.ad-template-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));
  gap:1em;
}
.ad-template-card{ cursor:pointer; text-align:center; }
.ad-template-thumb{
  border:1.5px solid var(--rule-dark);
  aspect-ratio:0.72/1;
  background:var(--paper);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:0.6em;
  margin-bottom:0.5em;
}
.ad-template-card.selected .ad-template-thumb{ border-color:var(--ink); border-width:2px; }
.ad-template-thumb .tt-line{ height:3px; background:var(--rule); width:80%; margin:2px 0; }
.ad-template-thumb .tt-line.short{ width:50%; }
.ad-template-name{ font-family:var(--ui); font-size:0.78rem; font-weight:600; color:var(--ink-soft); }

/* ---------- manuscript editor (embedded) ---------- */
.ad-editor-shell{
  display:grid;
  grid-template-columns:220px minmax(360px, 1fr);
  gap:0;
  border:1px solid var(--rule-dark);
  height:75vh;
  min-height:560px;
}
/* Continuous mode hides #msNav (display:none) entirely, which removes it
   as a grid item — but the grid's two-column template stays in effect,
   so the one remaining item (.ms-editor-col) falls into the grid's
   FIRST (220px) track by default instead of stretching across, leaving
   a narrow, cut-off editor with blank space to its right. .no-nav is
   toggled onto this element by js/author-dashboard.js (switchMode(),
   alongside msNav.style.display) whenever the nav column isn't shown,
   so the editor always gets the full width it actually has. */
.ad-editor-shell.no-nav{ grid-template-columns:1fr; }
@media (max-width: 1400px){
  .ad-editor-shell{ grid-template-columns:200px minmax(320px, 1fr); }
}
@media (max-width: 1180px){
  .ad-editor-shell{ grid-template-columns:1fr; height:auto; }
  .ad-editor-shell .ms-editor-col{ min-height:70vh; }
}
.ad-structure-toggle{
  display:flex; gap:0; border:1px solid var(--rule-dark); margin-bottom:1.2em; width:fit-content;
}
.ad-structure-toggle button{
  font-family:var(--ui); font-size:0.8rem; font-weight:600;
  padding:0.5em 1em; background:var(--paper); border:none; cursor:pointer; color:var(--ink-soft);
}
.ad-structure-toggle button.active{ background:var(--ink); color:var(--paper); }
.ad-structure-toggle button + button{ border-left:1px solid var(--rule-dark); }

.ms-nav{
  border-right:1px solid var(--rule-dark);
  background:var(--paper-dim);
  overflow-y:auto;
  padding:1em 0;
}
.ms-nav-section{
  font-family:var(--ui); font-size:0.7rem; text-transform:uppercase; letter-spacing:0.05em;
  color:var(--walnut-dim); padding:0.8em 1em 0.4em;
  display:flex; justify-content:space-between; align-items:center;
}
.ms-nav-section button{
  background:none; border:none; cursor:pointer; color:var(--brick);
  font-family:var(--ui); font-size:0.85rem; font-weight:700;
}
.ms-nav-item{
  font-family:var(--ui); font-size:0.84rem;
  padding:0.55em 1em;
  cursor:pointer;
  color:var(--ink-soft);
  display:flex; justify-content:space-between; align-items:center;
}
.ms-nav-item:hover{ background:var(--paper); }
.ms-nav-item.active{ background:var(--ink); color:var(--paper); }
.ms-nav-item .ms-del{
  background:none; border:none; cursor:pointer; color:inherit; opacity:0.5; font-size:0.8rem;
}
.ms-nav-item .ms-del:hover{ opacity:1; }
.ms-nav-empty{
  font-family:var(--ui); font-size:0.78rem; color:var(--walnut-dim);
  padding:0.6em 1em; font-style:italic;
}

.ms-editor-col{ display:flex; flex-direction:column; min-width:0; }
.ms-toolbar{
  display:flex; align-items:center; gap:0.3rem; flex-wrap:wrap;
  padding:0.6em 1em; border-bottom:1px solid var(--rule-dark); background:var(--paper);
}
.ms-toolbar button{
  font-family:var(--ui); font-size:0.82rem; padding:0.4em 0.65em;
  border:1px solid transparent; background:transparent; cursor:pointer; color:var(--ink-soft);
}
.ms-toolbar button:hover{ background:var(--paper-dim); color:var(--ink); }
.ms-toolbar button.active{ background:var(--paper-dim); color:var(--brick); border-color:var(--rule-dark); }
.ms-toolbar .tb-sep{ width:1px; height:22px; background:var(--rule-dark); margin:0 0.5em; flex-shrink:0; }
.ms-toolbar-rich{ row-gap:0.5em; }
.ms-tb-group{ display:flex; align-items:center; gap:0.15rem; }
.ms-toolbar button i{ font-size:16px; line-height:1; }
.ms-toolbar select{
  font-family:var(--ui); font-size:0.8rem;
  padding:0.35em 0.4em; border:1px solid var(--rule-dark); background:var(--paper); color:var(--ink);
  cursor:pointer;
}
.ms-font-select{ width:140px; }
.ms-size-select{ width:64px; }
.ms-block-select{ width:130px; }
.ms-color-btn{
  position:relative; display:flex; align-items:center; justify-content:center;
  width:32px; height:32px; cursor:pointer; color:var(--ink-soft);
  border:1px solid transparent;
}
.ms-color-btn:hover{ background:var(--paper-dim); color:var(--ink); }
.ms-color-btn i{ font-size:16px; pointer-events:none; }
.ms-color-btn input[type="color"]{
  position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; padding:0; border:none;
}
.ms-find-bar{
  display:flex; align-items:center; gap:0.5em; flex-wrap:wrap;
  padding:0.6em 1em; border-bottom:1px solid var(--rule-dark); background:var(--paper-dim);
}
.ms-find-bar input[type="text"]{
  font-family:var(--ui); font-size:0.82rem;
  padding:0.4em 0.6em; border:1px solid var(--rule-dark); background:var(--paper); color:var(--ink);
  width:160px;
}
.ms-find-close{
  margin-left:auto; background:none; border:none; cursor:pointer; color:var(--walnut-dim);
  font-size:1rem; padding:0.2em 0.4em;
}
.ms-find-close:hover{ color:var(--brick); }
.ms-find-match{ background:#FDE68A; }
.ms-scroll{ overflow-y:auto; padding:2em; background:var(--paper-dim); flex:1; }
.ms-page-title{ font-family:var(--ui); font-size:0.75rem; color:var(--walnut-dim); margin-bottom:0.6em; text-transform:uppercase; letter-spacing:0.04em; }
.ms-body{
  background:var(--paper);
  box-shadow:0 1px 3px rgba(28,43,51,0.12);
  padding:2.4em;
  font-family:var(--display);
  color:var(--ink);
  outline:none;
  min-height:60vh;
}
.ms-body h1{ font-size:1.6em; margin:0 0 0.5em; }
.ms-body h2{ font-size:1.3em; margin:1em 0 0.5em; }
.ms-body h3{ font-size:1.1em; margin:1em 0 0.5em; }
.ms-body p{ margin:0 0 1em; }
.ms-body blockquote{
  margin:0 0 1em; padding:0.4em 1em; border-left:3px solid var(--rule-dark);
  color:var(--walnut); font-style:italic;
}
.ms-body pre{
  margin:0 0 1em; padding:0.8em 1em; background:var(--paper-dim);
  font-family:'Courier New', monospace; font-size:0.9em; white-space:pre-wrap; overflow-x:auto;
}
.ms-body hr{ border:none; border-top:1px solid var(--rule-dark); margin:1.5em 0; }
.ms-body a{ color:var(--brick); text-decoration:underline; }
.ms-body table{ border-collapse:collapse; width:100%; margin:0 0 1em; }
.ms-body table td, .ms-body table th{ border:1px solid var(--rule-dark); padding:0.5em 0.7em; text-align:left; }
.ms-body table th{ background:var(--paper-dim); font-weight:600; }
.ms-body ul, .ms-body ol{ margin:0 0 1em 1.4em; }

.ms-stats{
  border-top:1px solid var(--rule-dark);
  padding:0.5em 1em;
  font-family:var(--ui); font-size:0.76rem; color:var(--walnut-dim);
  background:var(--paper);
  display:flex; justify-content:space-between;
}

.ad-props{ border-left:1px solid var(--rule-dark); padding:1.2em; overflow-y:auto; background:var(--paper); }
.ad-props h4{
  font-family:var(--ui); font-size:0.72rem; text-transform:uppercase; letter-spacing:0.05em;
  color:var(--walnut-dim); margin:1.2em 0 0.6em;
}
.ad-props h4:first-child{ margin-top:0; }

@media (max-width: 1080px){
  .ad-shell{ grid-template-columns:1fr; }
  .ad-rail{ border-right:none; border-bottom:1px solid var(--rule-dark); flex-direction:row; overflow-x:auto; }
  .ad-editor-shell{ grid-template-columns:1fr; height:auto; }
}

/* ---------- distribution & pricing tiers ---------- */
.dp-benefits-row{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.4em;
  margin-bottom:2em;
  padding-bottom:1.6em;
  border-bottom:1px solid var(--rule-dark);
}
.dp-benefit{ display:flex; gap:0.8em; }
.dp-benefit .dp-icon{
  width:34px; height:34px; flex-shrink:0;
  border-radius:50%;
  background:var(--paper-dim);
  display:flex; align-items:center; justify-content:center;
  font-size:1rem;
}
.dp-benefit .dp-b-title{ font-family:var(--ui); font-weight:700; font-size:0.85rem; margin-bottom:0.15em; }
.dp-benefit .dp-b-desc{ font-family:var(--ui); font-size:0.78rem; color:var(--walnut-dim); line-height:1.4; }

.dp-tiers{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.2em;
  align-items:start;
}
.dp-tier{
  border:1.5px solid var(--rule-dark);
  display:flex; flex-direction:column;
}
.dp-tier.recommended{ border-color:var(--ink); border-width:2px; }
.dp-tier-badge{
  text-align:center;
  font-family:var(--ui); font-size:0.7rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em;
  padding:0.4em; background:var(--ink); color:var(--paper);
}
.dp-tier-header{
  padding:1.1em 1.2em;
  border-bottom:1px solid var(--rule);
  display:flex; gap:0.7em; align-items:flex-start;
}
.dp-tier-header .dp-th-icon{ font-size:1.3rem; }
.dp-tier-header .dp-th-title{ font-weight:700; font-size:0.88rem; }
.dp-tier-header .dp-th-sub{ font-family:var(--ui); font-size:0.76rem; color:var(--walnut-dim); margin-top:0.15em; }

.dp-tier-scope{
  text-align:center;
  font-family:var(--ui); font-size:0.78rem; font-weight:700; color:var(--brick);
  padding:0.7em 0.6em 0.3em;
}

.dp-tier-price-box{
  margin:0.6em 1em 1em;
  border:1px solid var(--rule-dark);
  padding:0.9em 1em;
  text-align:center;
}
.dp-tier-save{
  display:inline-block;
  background:var(--ink); color:var(--paper);
  font-family:var(--ui); font-size:0.68rem; font-weight:700;
  padding:0.15em 0.6em; border-radius:2px; margin-bottom:0.5em;
}
.dp-tier-timer{ font-family:var(--ui); font-size:0.68rem; color:var(--walnut-dim); margin-left:0.5em; }
.dp-tier-was{ font-family:var(--ui); font-size:0.85rem; color:var(--walnut-dim); text-decoration:line-through; }
.dp-tier-now{ font-family:var(--display); font-size:1.5rem; margin-left:0.4em; }
.dp-tier-gst{ font-family:var(--ui); font-size:0.72rem; color:var(--walnut-dim); }
.dp-tier-emi{ font-family:var(--ui); font-size:0.74rem; color:var(--ink-soft); border-top:1px dashed var(--rule); margin-top:0.6em; padding-top:0.5em; }

.dp-tier-select{
  margin:0 1em 0.4em;
  font-family:var(--ui); font-size:0.85rem; font-weight:700;
  padding:0.7em; text-align:center;
  background:var(--ink); color:var(--paper);
  border:none; cursor:pointer;
}
.dp-tier.recommended .dp-tier-select{ background:var(--brick); }
.dp-tier-select:hover{ opacity:0.9; }
.dp-tier-fineprint{ text-align:center; font-family:var(--ui); font-size:0.68rem; color:var(--walnut-dim); margin-bottom:1em; }

.dp-tier-body{ padding:0 1.2em 1.2em; font-family:var(--ui); font-size:0.8rem; color:var(--ink-soft); flex:1; }
.dp-tier-desc{ font-size:0.78rem; color:var(--walnut-dim); margin-bottom:1em; line-height:1.5; }
.dp-tier-section-label{
  font-size:0.68rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em;
  color:var(--walnut-dim); margin:1em 0 0.4em; border-bottom:1px solid var(--rule); padding-bottom:0.3em;
}
.dp-tier-feature{ display:flex; gap:0.4em; padding:0.25em 0; font-size:0.8rem; }
.dp-tier-feature .dp-check{ color:var(--ink); flex-shrink:0; }
.dp-tier-countries{ display:flex; flex-wrap:wrap; gap:0.4em 0.7em; margin:0.4em 0; font-size:0.78rem; }

.dp-custom-banner{
  margin-top:2em; padding:1.4em 1.6em;
  border:1px dashed var(--rule-dark);
  display:flex; justify-content:space-between; align-items:center; gap:1em; flex-wrap:wrap;
}
.dp-custom-banner .dp-cb-title{ font-family:var(--display); font-size:1.1rem; color:var(--brick); }
.dp-custom-banner .dp-cb-desc{ font-family:var(--ui); font-size:0.8rem; color:var(--walnut-dim); }

@media (max-width: 980px){
  .dp-tiers, .dp-benefits-row{ grid-template-columns:1fr; }
}

/* ---------- sales & royalties ---------- */
.sr-summary-row{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:1em; margin-bottom:2em;
}
.sr-summary-card{
  border:1px solid var(--rule-dark); padding:1.1em 1.2em;
}
.sr-summary-card.highlight{ border-color:var(--ink); border-width:2px; background:var(--paper-dim); }
.sr-summary-label{ font-family:var(--ui); font-size:0.74rem; color:var(--walnut-dim); text-transform:uppercase; letter-spacing:0.03em; margin-bottom:0.4em; }
.sr-summary-value{ font-family:var(--display); font-size:1.5rem; color:var(--ink); }

.sr-two-col{ display:grid; grid-template-columns:1.4fr 1fr; gap:2em; margin-bottom:1em; }
.sr-section-title{ font-family:var(--ui); font-size:0.85rem; font-weight:700; text-transform:uppercase; letter-spacing:0.03em; color:var(--ink-soft); margin-bottom:0.8em; }

.sr-chart{
  display:flex; align-items:flex-end; gap:0.8em; height:160px;
  border-bottom:1px solid var(--rule-dark); padding-bottom:0;
}
.sr-chart-bar-wrap{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; }
.sr-chart-bar{ width:70%; background:var(--ink); transition:height 0.4s ease; min-height:2px; }
.sr-chart-value{ font-family:var(--ui); font-size:0.68rem; color:var(--walnut-dim); margin-bottom:0.3em; }
.sr-chart-label{ font-family:var(--ui); font-size:0.7rem; color:var(--walnut-dim); margin-top:0.5em; }

.sr-title-row{
  display:flex; justify-content:space-between; align-items:center;
  padding:0.6em 0; border-bottom:1px solid var(--rule);
  font-family:var(--ui); font-size:0.82rem;
}
.sr-title-row:last-child{ border-bottom:none; }
.sr-title-name{ color:var(--ink); font-weight:600; }
.sr-title-copies{ color:var(--walnut-dim); font-size:0.76rem; }
.sr-title-earnings{ color:var(--ink); font-weight:700; }

.sr-table{ width:100%; border-collapse:collapse; font-family:var(--ui); font-size:0.82rem; margin-bottom:1em; }
.sr-table th{
  text-align:left; padding:0.6em 0.8em; border-bottom:1.5px solid var(--rule-dark);
  color:var(--walnut-dim); font-size:0.72rem; text-transform:uppercase; letter-spacing:0.03em;
}
.sr-table td{ padding:0.6em 0.8em; border-bottom:1px solid var(--rule); color:var(--ink-soft); }
.sr-table tr:last-child td{ border-bottom:none; }

.sr-payout-box{
  display:flex; justify-content:space-between; align-items:center; gap:1.5em; flex-wrap:wrap;
  border:1px dashed var(--rule-dark); padding:1.4em 1.6em; margin-top:1em;
}

.payout-status{
  font-family:var(--ui); font-size:0.7rem; font-weight:700; text-transform:uppercase;
  padding:0.2em 0.6em; letter-spacing:0.03em;
}
.payout-status.requested{ background:var(--rule); color:var(--ink-soft); }
.payout-status.processing{ background:#C9A24B; color:var(--ink); }
.payout-status.paid{ background:var(--forest); color:var(--paper); }

@media (max-width: 900px){
  .sr-summary-row{ grid-template-columns:1fr 1fr; }
  .sr-two-col{ grid-template-columns:1fr; }
}

/* ---------- author bookshelf animation ---------- */
.ad-bookshelf-wrap{ margin-bottom:2.4em; }
.ad-bookshelf-label{
  font-family:var(--ui); font-size:0.72rem; text-transform:uppercase; letter-spacing:0.05em;
  color:var(--walnut-dim); margin-bottom:0.8em;
}
.ad-bookshelf{
  display:flex; align-items:flex-end; gap:6px;
  min-height:180px; padding:0 0.5em;
}
.ad-shelf-board{
  height:14px;
  background:linear-gradient(to bottom, #A5825C, #7A5F42);
  border-radius:0 0 3px 3px;
  box-shadow:0 4px 8px -2px rgba(0,0,0,0.3);
  margin:0 0.5em;
}
.ad-spine{
  width:34px;
  border-radius:2px 2px 0 0;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-end;
  padding:0.6em 0.3em;
  box-shadow:inset -3px 0 6px rgba(0,0,0,0.15), 0 3px 6px rgba(0,0,0,0.2);
  cursor:pointer;
  position:relative;
  opacity:0; transform:translateY(30px);
  animation:spineRise 0.5s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
  transition:transform 0.2s ease, box-shadow 0.2s ease;
}
.ad-spine:hover{
  transform:translateY(-10px) !important;
  box-shadow:inset -3px 0 6px rgba(0,0,0,0.15), 0 10px 16px rgba(0,0,0,0.28);
  z-index:2;
}
.ad-spine.draft{
  border:1.5px dashed rgba(250,247,240,0.5);
}
.ad-spine-title{
  writing-mode:vertical-rl; transform:rotate(180deg);
  font-family:'Fraunces', serif; font-size:0.68rem; font-weight:700;
  color:#FAF7F0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  max-height:120px;
}
.ad-spine-tooltip{
  position:absolute; bottom:100%; left:50%; transform:translateX(-50%);
  background:var(--ink); color:var(--paper);
  font-family:var(--ui); font-size:0.72rem; white-space:nowrap;
  padding:0.4em 0.7em; border-radius:3px; margin-bottom:8px;
  opacity:0; pointer-events:none; transition:opacity 0.15s ease;
}
.ad-spine:hover .ad-spine-tooltip{ opacity:1; }
.ad-bookshelf-empty{
  font-family:var(--ui); font-size:0.82rem; color:var(--walnut-dim); font-style:italic;
  padding:1em 0;
}

@keyframes spineRise{
  to{ opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion: reduce){
  .ad-spine{ animation:none; opacity:1; transform:none; }
}

/* ---------- editor full-viewport overlay ---------- */
.ad-editor-fullscreen{
  position:fixed;
  inset:0;
  z-index:500;
  background:var(--paper);
  display:flex;
  flex-direction:column;
  padding:1.2em 1.6em;
  overflow-y:auto;
}
.ad-editor-fullscreen-bar{
  display:flex;
  align-items:center;
  gap:0.8em;
  margin-bottom:1.2em;
  flex-shrink:0;
}
.ad-editor-fullscreen-bar .spacer{ flex:1; }
.ad-editor-fullscreen .ad-structure-toggle{ flex-shrink:0; }
.ad-editor-fullscreen .ad-editor-shell{
  flex:1;
  height:auto;
  min-height:0;
}
body.ad-editor-open{ overflow:hidden; }

