/* Ebook Library Manager V8.3 · Writing studio and chapter reader. Uses the Nova tokens, so it follows themes and RTL. */
.ws-card{background:var(--nv-surface);border:1px solid var(--nv-line);border-radius:18px;padding:clamp(16px,2.4vw,24px)}
.ws-status{white-space:nowrap}
.ws-status-published{background:var(--nv-ok-soft);color:var(--nv-ok)}
.ws-status-rejected{background:var(--nv-bad-soft);color:var(--nv-bad)}

/* Home */
.ws-home{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:28px;align-items:start}
.ws-new{display:grid;gap:14px}
.nova .ws-new h2,.nova .ws-books h2{font-size:var(--nv-fs-panel);margin:0}
.ws-new label{display:grid;gap:6px;font-size:14px;color:var(--nv-ink-2)}
.ws-new strong{color:var(--nv-ink);font-weight:600}
.ws-books{display:grid;gap:12px}
.ws-book{display:flex;justify-content:space-between;align-items:center;gap:14px;text-decoration:none;color:inherit;padding:14px 18px}
.ws-book:hover{border-color:var(--nv-accent)}
.ws-book-info{display:grid;gap:3px;min-width:0}
.ws-book-info strong{overflow-wrap:anywhere}
.ws-book-info small{color:var(--nv-muted)}

/* Studio */
.nova .ws-studio{padding-top:24px}
.ws-top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.ws-top-title{min-width:0}
.ws-top-title a{font-size:14px;color:var(--nv-muted);text-decoration:none}
.nova .ws-top-title h1{margin:4px 0 0;font-size:clamp(22px,2.4vw,30px);overflow-wrap:anywhere}
.ws-top-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ws-total{font-size:14px;color:var(--nv-muted)}
.ws-locked{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 18px;margin-bottom:18px;border-radius:14px;background:color-mix(in oklab,var(--nv-gold) 14%,var(--nv-surface));border:1px solid color-mix(in oklab,var(--nv-gold) 40%,var(--nv-line))}
.ws-locked p{margin:2px 0 0;font-size:14px;color:var(--nv-ink-2)}
.ws-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:22px;align-items:start}
.ws-side{position:sticky;top:130px;background:var(--nv-surface);border:1px solid var(--nv-line);border-radius:18px;padding:14px}
.nova .ws-side h2{font-size:15px;margin:2px 6px 10px}
.ws-chapters{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:2px;max-height:min(56vh,560px);overflow:auto}
.ws-chapters li{position:relative;display:flex;align-items:center;border-radius:10px}
.ws-chapters li.is-current{background:color-mix(in oklab,var(--nv-accent) 12%,transparent)}
.ws-chapters a{flex:1;min-width:0;display:flex;justify-content:space-between;gap:8px;padding:9px 10px;font-size:14px;color:var(--nv-ink);text-decoration:none;overflow-wrap:anywhere}
.ws-chapters small{color:var(--nv-muted);flex:none}
.ws-chapter-tools{display:none;gap:1px;padding-inline-end:4px}
.ws-chapters li:hover .ws-chapter-tools,.ws-chapters li:focus-within .ws-chapter-tools,.ws-chapters li.is-current .ws-chapter-tools{display:flex}
.ws-chapters li:hover small,.ws-chapters li:focus-within small,.ws-chapters li.is-current small{display:none}
.ws-chapter-tools form{display:contents}
.nova .ws-chapter-tools button{min-height:0;width:24px;height:24px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--nv-muted);cursor:pointer;font-size:14px;line-height:1}
.nova .ws-chapter-tools button:hover:not(:disabled){background:var(--nv-surface-3);color:var(--nv-ink)}
.nova .ws-chapter-tools button:disabled{opacity:.3;cursor:default}
.nova .ws-add{width:100%}
.ws-main{display:grid;gap:18px;min-width:0}
.ws-editor-card{background:var(--nv-surface);border:1px solid var(--nv-line);border-radius:18px;min-width:0}
.ws-toolbar{position:sticky;top:122px;z-index:4;display:flex;flex-wrap:wrap;align-items:center;gap:3px;padding:8px 10px;background:var(--nv-surface);border-bottom:1px solid var(--nv-line);border-radius:18px 18px 0 0}
.nova .ws-toolbar button{min-width:34px;height:34px;padding:0 7px;border:0;border-radius:8px;background:transparent;color:var(--nv-ink-2);font:600 14px var(--nv-font);cursor:pointer}
.nova .ws-toolbar button:hover{background:var(--nv-surface-2);color:var(--nv-ink)}
.ws-sep{width:1px;height:20px;background:var(--nv-line);margin:0 4px}
.ws-state{margin-inline-start:auto;padding-inline:6px;font-size:13px;color:var(--nv-muted)}
.ws-state[data-kind="ok"]{color:var(--nv-ok)}
.ws-state[data-kind="bad"]{color:var(--nv-bad);font-weight:600}
.nova .ws-title{display:block;width:calc(100% - 2*clamp(18px,4vw,48px));max-width:720px;margin:clamp(18px,3vw,32px) auto 0;padding:0;border:0!important;box-shadow:none!important;background:transparent;font:700 clamp(24px,3vw,32px)/1.25 var(--nv-display);color:var(--nv-ink)}
.nv-rtl .ws-title,.nv-rtl .ws-text h2,.nv-rtl .ws-page h2{font-family:"Noto Kufi Arabic",var(--nv-font)}
.ws-page{max-width:720px;min-height:52vh;margin:14px auto 0;padding:0 clamp(18px,4vw,0px) 24px;width:calc(100% - 2*clamp(0px,4vw,48px));outline:none;font:400 18px/1.8 var(--nv-display);color:var(--nv-ink);overflow-wrap:anywhere}
.ws-page.is-empty::before{content:attr(data-placeholder);color:var(--nv-muted);pointer-events:none;position:absolute}
.ws-foot{padding:10px 18px;border-top:1px solid var(--nv-line);font-size:13px;color:var(--nv-muted)}
.ws-details summary{cursor:pointer;font-weight:600}
.ws-details form{margin-top:16px}
.ws-submit{display:grid;gap:10px;justify-items:start}
.nova .ws-submit h2{margin:0;font-size:var(--nv-fs-panel)}
.nova .ws-submit p{margin:0}
.nova .ws-submit .pub-checkbox{display:flex;gap:10px;align-items:flex-start;width:100%;padding:12px 14px;border:1px solid var(--nv-line);border-radius:12px;background:var(--nv-surface-2)}

/* Text shared by the editor and the reader */
.ws-page :is(p,ul,ol,blockquote),.ws-text :is(p,ul,ol,blockquote){margin:0 0 1em}
.nova .ws-page h2,.nova .ws-text h2{font:700 1.45em/1.3 var(--nv-display);margin:1.4em 0 .5em}
.nova .ws-page h3,.nova .ws-text h3{font:600 1.2em/1.35 var(--nv-display);margin:1.2em 0 .4em}
.ws-page blockquote,.ws-text blockquote{border-inline-start:3px solid var(--nv-accent);padding-inline-start:1em;color:var(--nv-ink-2);font-style:italic}
.ws-page hr,.ws-text hr{border:0;text-align:center;margin:2em 0}
.ws-page hr::after,.ws-text hr::after{content:"⁂";color:var(--nv-muted)}

/* Reader */
.ws-reader{--ws-size:19px;max-width:760px;margin:0 auto;padding:18px 20px 56px}
.ws-preview{padding:9px 14px;margin-bottom:14px;border-radius:10px;font-size:14px;background:color-mix(in oklab,var(--nv-gold) 16%,var(--nv-surface));color:var(--nv-ink)}
.ws-reader-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--nv-line)}
.ws-reader-head>a{color:var(--nv-muted);text-decoration:none;font-size:14px;overflow-wrap:anywhere;min-width:0}
.ws-reader-tools{display:flex;align-items:center;gap:6px;position:relative}
.nova .ws-reader-tools button,.ws-toc summary{height:36px;min-width:40px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--nv-line);border-radius:10px;background:var(--nv-surface);color:var(--nv-ink);font:600 13px var(--nv-font);cursor:pointer;list-style:none}
.ws-toc summary::-webkit-details-marker{display:none}
.ws-toc ol{position:absolute;inset-inline-end:0;top:44px;z-index:20;width:min(320px,calc(100vw - 40px));max-height:60vh;overflow:auto;margin:0;padding:8px 8px 8px 34px;background:var(--nv-surface);border:1px solid var(--nv-line);border-radius:14px;box-shadow:var(--nv-shadow-lg)}
[dir=rtl] .ws-toc ol{padding:8px 34px 8px 8px}
.ws-toc li{padding:5px 0}
.ws-toc li.is-current a{color:var(--nv-accent);font-weight:600}
.ws-toc a{color:var(--nv-ink);text-decoration:none;overflow-wrap:anywhere}
.ws-reader-body{padding-top:clamp(28px,5vw,52px)}
.nova .ws-kicker{margin:0 0 8px;color:var(--nv-muted);font-size:14px}
.nova .ws-reader-body h1{margin:0 0 28px;font:700 clamp(28px,4vw,40px)/1.2 var(--nv-display);overflow-wrap:anywhere}
.nv-rtl .ws-reader-body h1{font-family:"Noto Kufi Arabic",var(--nv-font)}
.ws-text{font:400 var(--ws-size)/1.85 var(--nv-display);color:var(--nv-ink);overflow-wrap:anywhere}
.ws-reader-nav{display:flex;justify-content:space-between;gap:12px;margin-top:40px;padding-top:20px;border-top:1px solid var(--nv-line)}
.nv-toc{margin:0;padding-inline-start:22px;display:grid;gap:6px}
.nv-toc a{color:var(--nv-ink);overflow-wrap:anywhere}

@media (max-width:900px){
  .ws-home,.ws-layout{grid-template-columns:minmax(0,1fr)}
  .ws-side{position:static}
  .ws-chapters{max-height:220px}
  .ws-toolbar{top:0;position:static}
  .ws-page{min-height:44vh;font-size:17px}
}
@media print{.ws-reader-head,.ws-reader-nav,.nv-ai-fab{display:none!important}}

/* Arabic text in any book uses Noto Kufi; Latin text keeps the book serif. */
.ws-page,.ws-text,.nova .ws-title,.nova .ws-reader-body h1{font-family:var(--nv-display),"Noto Kufi Arabic",serif}
.ws-text :is(p,li,blockquote),.ws-page :is(p,li,blockquote){unicode-bidi:plaintext}

/* V8.4: downloads */
.ws-downloads{display:grid;gap:10px}
.nova .ws-downloads h2{margin:0;font-size:var(--nv-fs-panel)}
.ws-download-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.nova .ws-download-form .pub-checkbox{display:flex;gap:10px;align-items:flex-start;flex:1 1 280px;padding:12px 14px;border:1px solid var(--nv-line);border-radius:12px;background:var(--nv-surface-2)}
.nova .ws-download-links{margin:0;font-size:14px}
.ws-tool-link{height:36px;padding:0 10px;display:inline-flex;align-items:center;border:1px solid var(--nv-line);border-radius:10px;background:var(--nv-surface);color:var(--nv-ink);font:600 13px var(--nv-font);text-decoration:none}
