:root{color-scheme:dark;--bg: #0b0a14;--bg-2: #131225;--fg: #f5f3ff;--muted: #9b97b8;--dim: #5f5a82;--accent: #8b5cf6;--accent-2: #3b82f6;--danger: #ef4444;--safe-top: env(safe-area-inset-top, 0);--safe-bottom: env(safe-area-inset-bottom, 0)}*{box-sizing:border-box}select,input,textarea,button{color-scheme:dark}option{background-color:var(--bg-2);color:var(--fg)}html,body{margin:0;height:100%;background:radial-gradient(ellipse at top,#1a1633 0%,var(--bg) 60%);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,SF Pro Text,sans-serif;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;user-select:none}#app{min-height:100dvh;display:block}.view{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;padding:calc(var(--safe-top) + 12px) 20px calc(var(--safe-bottom) + 16px)}.view[hidden]{display:none!important}.view-library{grid-template-rows:auto 1fr}.view-auth{display:flex!important;align-items:center;justify-content:center;grid-template-rows:none;padding:24px}.auth-card{width:100%;max-width:380px;display:grid;gap:14px;padding:28px 24px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:16px}.auth-card .brand{margin:0;font-size:28px}.auth-tagline{margin:-8px 0 8px;color:var(--muted);font-size:13px}.auth-tabs{display:flex;gap:4px;background:#ffffff0a;padding:4px;border-radius:10px}.auth-tab{flex:1;background:transparent;border:0;color:var(--muted);font:inherit;font-size:13px;font-weight:500;padding:8px 12px;border-radius:7px;cursor:pointer}.auth-tab[data-active=true]{background:#8b5cf62e;color:var(--fg)}#auth-form{display:grid;gap:12px}#auth-form label{display:grid;gap:5px;font-size:12px;color:var(--muted)}#auth-form input{background:#0a0a14;border:1px solid #2a2540;color:var(--fg);border-radius:10px;padding:10px 12px;font:inherit;font-size:14px}.auth-error{font-size:13px;color:#fca5a5;background:#ef444414;border:1px solid rgba(239,68,68,.3);padding:8px 10px;border-radius:8px}.view-settings{grid-template-rows:auto 1fr}.settings-form{display:grid;gap:20px;padding:12px 4px 80px;overflow-y:auto}.settings-section{display:grid;gap:10px;padding:14px 16px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:12px}.settings-section h3{margin:0;font-size:14px;font-weight:600;color:var(--fg)}.settings-hint{margin:0;font-size:12px;color:var(--muted);line-height:1.45}.settings-hint a{color:#c4b5fd}.settings-row{display:flex;justify-content:space-between;align-items:center}.settings-label{font-size:12px;color:var(--muted)}.settings-value{font-size:13px;color:var(--fg)}.settings-form input[type=password],.settings-form input[type=text]{background:#0a0a14;border:1px solid #2a2540;color:var(--fg);border-radius:10px;padding:10px 12px;font:inherit;font-size:13px;width:100%}.settings-form label{display:grid;gap:5px;font-size:11px;color:var(--muted)}.settings-radio{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid rgba(255,255,255,.06);border-radius:10px;cursor:pointer}.settings-radio input{margin-top:3px}.settings-radio strong{display:block;font-size:13px;color:var(--fg)}.settings-radio small{display:block;font-size:11px;color:var(--dim);margin-top:2px}.settings-radio:has(input:checked){background:#8b5cf614;border-color:#8b5cf666}.settings-status{font-size:11px;color:var(--dim)}.settings-actions{display:flex;align-items:center;gap:12px;padding-top:4px}.settings-saved{font-size:12px;color:#86efac}.icon-only-btn{margin-right:8px;width:36px;height:36px;border-radius:999px;background:#ffffff0d;border:0;color:var(--muted);cursor:pointer;display:grid;place-items:center}.icon-only-btn:hover{background:#ffffff1a;color:var(--fg)}.topbar{display:flex;align-items:baseline;gap:12px;padding:4px 4px 16px}.brand{margin:0;font-size:22px;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,#c4b5fd,#93c5fd);-webkit-background-clip:text;background-clip:text;color:transparent}.brand .dot{color:var(--accent);-webkit-text-fill-color:var(--accent)}.book-title{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.upload-btn{margin-left:auto;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border:0;font:inherit;font-size:13px;font-weight:500;padding:8px 14px;border-radius:999px;cursor:pointer;box-shadow:0 4px 14px #8b5cf659}.link-back{background:none;border:0;color:var(--muted);font:inherit;font-size:14px;cursor:pointer;padding:0}.link-back:hover{color:var(--fg)}.library-empty{text-align:center;padding:60px 20px;color:var(--muted)}.library-empty p{margin:0 0 8px}.library-empty .dim{color:var(--dim);font-size:13px;line-height:1.6}.library-empty code{background:#ffffff12;padding:1px 6px;border-radius:4px;font-size:12px}.book-list{list-style:none;margin:0;padding:8px 0 80px;display:flex;flex-direction:column;gap:8px}.book-card{position:relative;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:10px;transition:background .15s ease;overflow:hidden}.book-card:hover{background:#ffffff12}.book-ready{cursor:default}.book-generating{opacity:.85}.book-failed{border-color:#ef444466}.book-main{width:100%;text-align:left;background:transparent;border:0;color:inherit;font:inherit;cursor:pointer;padding:8px 70px 8px 12px;display:grid;gap:1px;line-height:1.25}.book-main:disabled{cursor:default}.book-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.book-card-title{font-size:14px;font-weight:500;color:var(--fg);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-card-position{font-size:10px;color:#c4b5fd;white-space:nowrap;flex-shrink:0;font-variant-numeric:tabular-nums}.book-card-meta{font-size:10px;color:var(--muted);line-height:1.3}.book-status{letter-spacing:.02em}.book-card-meta .dim{color:var(--dim)}.reading-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:#ffffff0a;overflow:hidden}.reading-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .2s ease}.book-progress{margin-top:3px}.book-progress-bar{height:2px;background:#ffffff12;border-radius:1px;overflow:hidden}.book-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .4s ease}.book-progress-text{font-size:10px;color:var(--dim);margin-top:2px;font-variant-numeric:tabular-nums}.book-error{margin-top:6px;font-size:12px;color:#fca5a5}.book-edit{position:absolute;top:50%;right:38px;transform:translateY(-50%);background:transparent;border:0;color:var(--dim);cursor:pointer;width:28px;height:28px;display:grid;place-items:center;border-radius:8px}.book-edit:hover{color:#c4b5fd;background:#8b5cf61f}.book-delete{position:absolute;top:50%;right:6px;transform:translateY(-50%);background:transparent;border:0;color:var(--dim);cursor:pointer;width:28px;height:28px;display:grid;place-items:center;border-radius:8px}.book-delete:hover{color:#ef4444;background:#ef44441a}.progress{display:grid;gap:4px}.progress-bar{height:3px;background:#ffffff12;border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .2s linear;width:0%}.time-row{display:flex;justify-content:space-between;font-size:11px;color:var(--dim);font-variant-numeric:tabular-nums}.dialog{border:0;border-radius:18px;padding:0;width:min(420px,calc(100% - 32px));background:#141225;color:var(--fg);box-shadow:0 24px 60px #0009}.dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}.dialog form{display:grid;gap:16px;padding:22px}.dialog h2{margin:0;font-size:18px}.dialog label{display:grid;gap:6px;font-size:12px;color:var(--muted)}.dialog input[type=text],.dialog select,.dialog input[type=file]{background:#0a0a14;border:1px solid #2a2540;color:var(--fg);border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;width:100%}.dialog input[type=file]{padding:8px;cursor:pointer}.dialog small{color:var(--dim)}.dialog-actions{display:flex;gap:10px;justify-content:flex-end}.dialog-actions button{padding:9px 16px;border-radius:10px;border:0;background:#2a2540;color:var(--fg);font:inherit;cursor:pointer}.dialog-actions .primary{background:linear-gradient(135deg,var(--accent),var(--accent-2))}.dialog-actions button:disabled{opacity:.6;cursor:wait}.view-editor{grid-template-rows:auto auto 1fr auto;gap:12px}.view-reader{display:flex;flex-direction:column;height:100dvh;max-height:100dvh;overflow:hidden;padding-bottom:0}.view-reader .passage{flex:1;min-height:0;overflow-y:auto;justify-content:flex-start;padding-bottom:280px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.view-reader .controls{position:fixed;left:0;right:0;bottom:0;padding:14px 20px calc(var(--safe-bottom) + 12px);background:linear-gradient(to bottom,#0b0a1400,#0b0a14a6 22%,#0b0a14eb 60%);backdrop-filter:blur(20px) saturate(170%);-webkit-backdrop-filter:blur(20px) saturate(170%);z-index:50}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 4px 12px;border-bottom:1px solid rgba(255,255,255,.06)}.editor-summary{font-size:13px;color:var(--muted)}.editor-toolbar-actions{display:flex;gap:8px}.btn{border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:var(--fg);padding:8px 14px;border-radius:999px;font:inherit;font-size:13px;cursor:pointer}.btn:hover{background:#ffffff14}.btn:disabled{opacity:.6;cursor:wait}.btn-primary{border-color:transparent;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 3px 12px #8b5cf64d}.btn-danger{color:#fca5a5;border-color:#ef44444d;background:#ef444412}.btn-danger:hover{background:#ef444426}.chapter-field-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.chapter-load-btn{background:transparent;border:0;color:var(--muted);font:inherit;font-size:11px;cursor:pointer;padding:2px 6px;border-radius:6px}.chapter-load-btn:hover{background:#ffffff0f;color:var(--fg)}.chapter-list{list-style:none;margin:0;padding:0 0 12px;display:flex;flex-direction:column;gap:6px;overflow-y:auto}.chapter-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.07);border-radius:10px;overflow:hidden;transition:background .15s ease}.chapter-card.chapter-ready{border-color:#22c55e40}.chapter-card.chapter-generating{border-color:#8b5cf659}.chapter-card.chapter-partial{border-color:#eab3084d}.chapter-card.chapter-failed{border-color:#ef44444d}.chapter-row{display:flex;align-items:stretch}.chapter-reorder{background:transparent;border:0;color:var(--dim);font-size:12px;line-height:1;padding:0 6px;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:22px}.chapter-reorder:hover:not(:disabled){background:#ffffff0f;color:var(--fg)}.chapter-reorder:disabled{opacity:.25;cursor:default}.chapter-reorder+.chapter-reorder{border-left:1px solid rgba(255,255,255,.04)}.chapter-header{flex:1;display:flex;align-items:center;gap:8px;width:100%;background:transparent;border:0;color:var(--fg);font:inherit;font-size:13px;padding:7px 12px;text-align:left;cursor:pointer;line-height:1.25}.chapter-header:hover{background:#ffffff08}.chapter-level{font-family:ui-monospace,SF Mono,Consolas,monospace;color:var(--dim);font-size:10px;width:18px;flex-shrink:0}.chapter-header-title{flex:1;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chapter-status-badge{flex-shrink:0}.chapter-segment-progress{flex-shrink:0;font-size:11px;color:var(--dim);font-variant-numeric:tabular-nums;margin-right:4px}.chapter-segment-progress:empty{display:none}.chapter-caret{color:var(--dim);font-size:10px;flex-shrink:0}.badge{font-size:10px;padding:2px 7px;border-radius:999px;font-weight:500;letter-spacing:.02em;white-space:nowrap}.badge-editing{background:#94a3b826;color:#cbd5e1}.badge-generating{background:#8b5cf633;color:#c4b5fd}.badge-ready{background:#22c55e2e;color:#86efac}.badge-partial{background:#eab3082e;color:#fde68a}.badge-failed{background:#ef44442e;color:#fca5a5}.chapter-body{padding:4px 14px 16px;display:grid;gap:12px;border-top:1px solid rgba(255,255,255,.04)}.chapter-field{display:grid;gap:6px;font-size:12px;color:var(--muted)}.chapter-field input,.chapter-field textarea{background:#0a0a14;border:1px solid #2a2540;color:var(--fg);border-radius:10px;padding:10px 12px;font:inherit;font-size:14px;width:100%;resize:vertical}.chapter-field textarea{font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:13px;line-height:1.55;min-height:120px}.chapter-stats{font-size:11px;color:var(--dim);font-variant-numeric:tabular-nums}.chapter-md-hint{font-size:10px;color:var(--dim);line-height:1.45;padding:2px 4px}.md-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:1px;padding:4px;background:#ffffff08;border:1px solid #2a2540;border-bottom:0;border-radius:10px 10px 0 0}.md-btn{background:transparent;border:0;color:var(--muted);font:inherit;font-size:12px;font-weight:500;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;padding:4px 8px;border-radius:5px;cursor:pointer;min-width:28px;line-height:1}.md-btn:hover{background:#ffffff14;color:var(--fg)}.md-btn:active{background:#ffffff1f}.md-btn b,.md-btn i{font-style:inherit;font-weight:inherit}.md-btn b{font-weight:700}.md-btn i{font-style:italic}.md-sep{width:1px;align-self:stretch;margin:2px 4px;background:#ffffff1a}.chapter-field .md-toolbar+textarea{border-radius:0 0 10px 10px;border-top:0}.chapter-error{font-size:12px;color:#fca5a5;background:#ef444414;padding:8px 10px;border-radius:8px}.chapter-actions{display:flex;gap:8px;flex-wrap:wrap}.editor-hint{font-size:11px;color:var(--dim);line-height:1.5;margin:0;padding:0 4px}.editor-hint strong{color:var(--muted)}.chapter-switcher{display:flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}.ch-nav{width:28px;height:28px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:var(--fg);font:inherit;font-size:16px;line-height:1;cursor:pointer;display:grid;place-items:center}.ch-nav:hover:not(:disabled){background:#ffffff14}.ch-nav:disabled{color:var(--dim);opacity:.5;cursor:not-allowed}.ch-label{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:50px;text-align:center}.voice-row{display:flex;gap:8px;align-items:stretch}.voice-row select{flex:1}.voice-preview{width:40px;height:40px;border-radius:10px;border:1px solid #2a2540;background:#0a0a14;color:var(--fg);cursor:pointer;display:grid;place-items:center;position:relative;flex-shrink:0}.voice-preview:hover{background:#15122a;border-color:#3a3055}.voice-preview svg{display:none}.voice-preview[data-state=idle] .voice-preview-play{display:block}.voice-preview[data-state=playing] .voice-preview-stop{display:block;color:var(--accent)}.voice-preview[data-state=loading] .voice-preview-spinner{display:block}.voice-preview-spinner{display:none;width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.15);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.passage{display:flex;flex-direction:column;justify-content:center;gap:14px;min-height:0;overflow:hidden;padding:8px 4px}.passage-prev,.passage-next{margin:0;font-size:15px;line-height:1.55;color:var(--dim);max-height:4em;overflow:hidden;text-overflow:ellipsis}.passage-current{margin:0;font-size:22px;line-height:1.45;letter-spacing:-.005em;color:var(--fg);font-weight:500;white-space:pre-line}.word{transition:background .15s ease-out,color .15s ease-out;border-radius:6px;padding:2px 0;-webkit-box-decoration-break:clone;box-decoration-break:clone}.word-read{color:var(--dim)}.word-active{background:linear-gradient(135deg,#8b5cf62e,#3b82f624);color:#f5f3ff;box-shadow:inset 0 -2px #8b5cf68c}.passage-current strong{font-weight:700;color:#f5f3ff}.passage-current em{font-style:italic}.passage-current s{text-decoration:line-through;color:var(--muted)}.passage-current code{font-family:ui-monospace,SF Mono,Consolas,monospace;background:#ffffff0f;padding:1px 5px;border-radius:4px;font-size:.85em}.passage-current a{color:#c4b5fd;text-decoration:underline;text-underline-offset:2px}.passage-current[data-block-type=heading]{font-size:28px;line-height:1.25;font-weight:700;letter-spacing:-.015em}.passage-current[data-block-type=quote]{border-left:3px solid rgba(139,92,246,.6);padding-left:14px;font-style:italic;color:#ddd6fe}.passage-current[data-block-type=list] .word{display:block;position:relative;padding-left:22px;margin:3px 0}.passage-current[data-block-type=list] .word:before{content:"•";position:absolute;left:4px;top:0;color:var(--muted);font-weight:700}.controls{display:grid;gap:12px;padding-top:12px}.status{text-align:center;font-size:12px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-variant-numeric:tabular-nums}.control-row{display:flex;align-items:center;justify-content:center;gap:16px}.control-row.secondary{gap:14px}.ctl{width:56px;height:56px;border-radius:50%;border:0;background:#ffffff0f;color:var(--fg);display:grid;place-items:center;cursor:pointer;transition:transform .1s ease,background .15s ease}.ctl:active{transform:scale(.94)}.ctl:hover{background:#ffffff1a}.ctl-primary{width:76px;height:76px;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 8px 28px #8b5cf673;color:#fff}.ctl-primary:hover{background:linear-gradient(135deg,var(--accent),var(--accent-2))}.ctl-chapter{width:44px;height:44px;background:#ffffff0a;color:var(--muted)}.ctl-chapter:hover:not(:disabled){background:#ffffff14;color:var(--fg)}.ctl-chapter:disabled{opacity:.35;cursor:not-allowed}.speed{background:#ffffff0f;color:var(--fg);border:0;height:36px;min-width:60px;padding:0 14px;border-radius:18px;cursor:pointer;font:inherit;font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.speed:hover{background:#ffffff1a}.library-tabs{display:flex;gap:8px;padding:4px 16px 12px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:8px}.library-tab{background:transparent;border:0;color:var(--dim);font:inherit;font-size:14px;font-weight:500;padding:8px 12px;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}.library-tab[data-active=true]{color:var(--fg);border-bottom-color:var(--accent, #8b7df9)}.library-tab:hover{color:var(--fg)}.book-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.book-badge{display:inline-block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:4px;background:#ffffff14;color:var(--dim)}.book-badge-published{background:#8b7df92e;color:#b8aeff}.book-badge-library{background:#5fc78a2e;color:#98e3b3}.book-card.book-from-library .book-main{opacity:.95}.book-publish{background:transparent;border:0;color:var(--dim);padding:6px;cursor:pointer;border-radius:4px}.book-publish:hover{background:#ffffff14;color:var(--fg)}.book-publish[data-published=true]{color:#b8aeff}.catalog-list{list-style:none;margin:0;padding:0 16px}.catalog-card{display:flex;align-items:center;gap:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:12px 14px;margin-bottom:10px}.catalog-card-main{flex:1;min-width:0}.catalog-card-title{font-size:15px;font-weight:600;color:var(--fg);margin-bottom:2px}.catalog-card-author{font-size:12px;color:var(--dim);margin-bottom:4px}.catalog-card-meta{font-size:12px;color:var(--dim);display:flex;gap:6px}.catalog-action{white-space:nowrap}.catalog-action:disabled{opacity:.6;cursor:default}.catalog-empty{text-align:center;padding:40px 24px;color:var(--dim)}.role-pill{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 7px;border-radius:999px;vertical-align:middle}.role-admin{background:#8b7df938;color:#b8aeff}.dialog-wide{max-width:640px;width:100%}.dialog-hint{margin:4px 0 12px;color:var(--dim);font-size:13px;line-height:1.45}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.form-grid-tight{gap:8px;margin-bottom:0}.form-cell{display:flex;flex-direction:column;gap:4px}.form-cell>span{font-size:12px;color:var(--dim)}.form-cell-full{grid-column:1 / -1}.form-cell input[type=text],.form-cell input[type=number],.form-cell select,.form-cell textarea{background:#ffffff0a;border:1px solid rgba(255,255,255,.1);color:var(--fg);border-radius:6px;padding:8px 10px;font:inherit;font-size:14px}.form-cell textarea{resize:vertical}.form-cell input:disabled,.form-cell select:disabled,.form-cell textarea:disabled{opacity:.6;cursor:not-allowed}.form-cell fieldset{border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:10px 12px}.form-cell legend{padding:0 6px;font-size:12px;color:var(--dim)}.form-hint{display:block;color:var(--dim);font-size:11px;margin-top:4px}.settings-row.inline{display:grid;grid-template-columns:auto 72px 110px 1fr;align-items:center;column-gap:8px;margin:4px 0}.settings-row.inline>input[type=checkbox]{justify-self:start}.settings-row.inline>span{white-space:nowrap}.settings-row.inline input[type=number]{width:100%;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);color:var(--fg);border-radius:6px;padding:6px 8px;font:inherit;font-size:14px}.book-card-row{display:flex;gap:12px;align-items:flex-start}.book-card-cover{width:56px;height:80px;object-fit:cover;border-radius:4px;background:#ffffff0d;flex-shrink:0}.book-card-cover-placeholder{display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--dim)}.book-card-body{flex:1;min-width:0}.book-card-author{font-size:12px;color:var(--dim);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-badge-pending{background:#eab3082e;color:#fde68a}.catalog-card{display:flex;gap:14px;align-items:flex-start}.catalog-card-cover{width:88px;height:132px;object-fit:cover;border-radius:6px;background:#ffffff0d;flex-shrink:0}.catalog-card-cover-placeholder{display:flex;align-items:center;justify-content:center;font-size:36px;color:var(--dim)}.catalog-card-desc{margin:6px 0;font-size:13px;color:var(--fg);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.catalog-card-prices{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}.catalog-card-publisher{font-size:11px;margin-top:4px}.price-tag{display:inline-block;font-size:11px;font-weight:600;padding:3px 8px;border-radius:12px}.price-rent{background:#22c55e2e;color:#86efac}.price-buy{background:#8b7df938;color:#b8aeff}.editor-catalog-pill{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:999px;margin-left:8px;vertical-align:middle}.editor-catalog-pill[data-state=published]{background:#8b7df938;color:#b8aeff}.editor-catalog-pill[data-state=pending]{background:#eab3082e;color:#fde68a}.editor-catalog-pill[data-state=adopted]{background:#5fc78a2e;color:#98e3b3}.book-details{display:grid;grid-template-columns:160px 1fr;gap:16px;padding:16px;border-bottom:1px solid rgba(255,255,255,.08)}.book-details-cover{display:flex;flex-direction:column;align-items:center;gap:8px}.book-details-cover img{width:140px;height:200px;object-fit:cover;border-radius:6px;background:#ffffff0d}.book-cover-actions{display:flex;flex-direction:column;gap:6px;align-items:stretch;width:140px}.book-cover-placeholder{width:140px;height:200px;display:flex;align-items:center;justify-content:center;color:var(--dim);background:#ffffff0a;border:1px dashed rgba(255,255,255,.15);border-radius:6px;font-size:13px}.book-cover-placeholder[hidden]{display:none}.book-details-fields{display:flex;flex-direction:column;gap:10px}.book-details-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}.book-details-publish-hint{font-size:12px;color:var(--dim)}@media(max-width:640px){.book-details{grid-template-columns:1fr}.book-details-cover{align-items:flex-start}.form-grid{grid-template-columns:1fr}}.mic-transcript{text-align:center;font-size:12px;color:var(--dim);font-style:italic;min-height:1.2em;padding:0 16px}.mic-transcript:not(:empty){color:var(--fg)}.mic-hearing{text-align:center;font-size:12px;color:var(--dim);min-height:1.4em;padding:2px 16px;font-family:ui-monospace,SF Mono,Consolas,monospace;letter-spacing:.2px}.mic-hearing[data-verdict=interim]{color:#888;font-style:italic}.mic-hearing[data-verdict=final]{color:#cbd5e1}.mic-hearing[data-verdict=accepted]{color:#4ade80}.mic-hearing[data-verdict=dropped-no-wake]{color:#f87171}.mic-hearing[data-verdict=dropped-echo]{color:#c084fc}.meter{position:relative;height:4px;background:#ffffff0f;border-radius:2px;overflow:hidden;margin:0 16px}.meter-fill{position:absolute;inset:0 auto 0 0;width:0%;background:linear-gradient(90deg,#22c55e,#eab308 60%,#ef4444);transition:width 60ms linear}.meter-mark{position:absolute;top:-2px;bottom:-2px;width:2px}.meter-floor{background:#7dd3fccc}.ctl-mic{width:44px;height:44px;background:#ffffff0a;color:var(--dim, #94a3b8);position:relative;border-radius:50%;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center}.ctl-mic .mic-icon-live,.ctl-mic .mic-icon-muted{display:none}.ctl-mic[data-state=off] .mic-icon-live,.ctl-mic[data-state=armed] .mic-icon-live,.ctl-mic[data-state=on] .mic-icon-live,.ctl-mic[data-state=muted] .mic-icon-muted{display:block}.ctl-mic[data-state=armed]{background:#60a5fa2e;color:#93c5fd;box-shadow:0 0 0 2px #60a5fa40 inset}.ctl-mic[data-state=on]{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 14px #ef444466;animation:mic-pulse 1.8s ease-in-out infinite}.ctl-mic[data-state=muted]{background:#94a3b81f;color:#94a3b8}@keyframes mic-pulse{0%,to{box-shadow:0 4px 14px #ef444466}50%{box-shadow:0 4px 18px #ef4444a6}}.hint{text-align:center;font-size:11px;color:var(--dim);padding:4px 16px;line-height:1.4}
