:root{color-scheme:var(--color-scheme);--color-scheme: dark;--app-bg: #080b10;--app-bg-gradient: linear-gradient(180deg, rgba(12, 15, 20, .96), #080b10);--grid-line: rgba(114, 137, 160, .13);--command-glass: rgba(18, 23, 31, .84);--command-glass-strong: rgba(20, 26, 35, .96);--glass-border: rgba(144, 166, 184, .24);--surface: #111821;--surface-2: #17202b;--surface-3: #1d2935;--surface-soft: rgba(255, 255, 255, .045);--border: #2c3a48;--border-strong: #46586a;--text: #edf4f7;--text-soft: #c9d6dd;--muted: #8d9aa6;--faint: #66737f;--accent: #3ed7e3;--accent-strong: #76f0f7;--accent-muted: rgba(62, 215, 227, .14);--accent-ring: rgba(118, 240, 247, .72);--success: #75d88f;--success-muted: rgba(117, 216, 143, .15);--warning: #e7b65f;--warning-muted: rgba(231, 182, 95, .16);--danger: #ff9cae;--reader: #121a24;--reader-text: #e9f1f5;--reader-muted: #a9b7c2;--reader-line: #334353;--reader-panel: rgba(255, 255, 255, .045);--reader-accent: #76f0f7;--reader-font-scale: 1;--reader-line-height: 1.85;--reader-shadow: 0 22px 48px rgba(0, 0, 0, .35), inset 10px 0 18px rgba(8, 13, 20, .22);--reading-controls-height: 62px;--control-bg: #0c1118;--control-bg-hover: rgba(255, 255, 255, .07);--code-bg: #081018;--code-border: #202936;--code-text: #d8e6f2;--focus-ring: rgba(118, 240, 247, .72);--primary-border: rgba(62, 215, 227, .56);--primary-bg: linear-gradient(180deg, rgba(62, 215, 227, .28), rgba(62, 215, 227, .16));--shadow: 0 18px 42px rgba(0, 0, 0, .36);--radius: 8px;--radius-command: 12px;--font-ui: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "SFMono-Regular", "SF Mono", Consolas, "Liberation Mono", Menlo, monospace}*{box-sizing:border-box}html{min-width:320px;background:var(--app-bg)}body{min-width:320px;min-height:100vh;margin:0;overflow:hidden;background:var(--app-bg-gradient),var(--app-bg);color:var(--text);font-family:var(--font-ui);letter-spacing:0}button,input,select,textarea{font:inherit;letter-spacing:0}button{border:0;color:inherit}button:disabled{cursor:not-allowed;opacity:.48}svg{width:1em;height:1em;stroke-width:2}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{color-scheme:var(--color-scheme);display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px;width:100%;height:100vh;padding:10px;background:linear-gradient(90deg,var(--grid-line) 0 1px,transparent 1px) 0 0 / 72px 72px,linear-gradient(0deg,rgba(104,126,148,.08) 0 1px,transparent 1px) 0 0 / 72px 72px,var(--app-bg-gradient),var(--app-bg)}.command-surface{border:1px solid var(--glass-border);background:linear-gradient(180deg,#ffffff13,#ffffff06),var(--command-glass);box-shadow:var(--shadow);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%)}.content-surface,.panel-surface{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:0 1px #ffffff0a inset}.panel-surface{background:var(--surface-2)}.top-bar{position:relative;z-index:50;display:grid;grid-template-columns:minmax(190px,1fr) auto;align-items:center;gap:10px;min-height:58px;padding:8px 10px;border-radius:var(--radius-command)}.brand-mark{display:inline-flex;align-items:center;min-width:0;gap:10px;padding:0;background:transparent;text-align:left;cursor:pointer}.brand-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border:1px solid var(--primary-border);border-radius:8px;background:var(--accent-muted);color:var(--accent-strong)}.brand-copy strong,.brand-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-copy strong{font-size:.98rem;font-weight:760}.brand-copy small{margin-top:2px;color:var(--muted);font-size:.72rem}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.account-menu-wrap{position:relative}.account-trigger{display:inline-flex;align-items:center;justify-content:center;gap:7px;max-width:220px;min-height:36px;padding:0 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-soft);color:var(--text-soft);cursor:pointer;white-space:nowrap}.account-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis}.account-trigger strong{color:var(--accent-strong);font-size:.78rem}.account-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:42;display:grid;gap:6px;width:min(240px,calc(100vw - 28px));padding:8px;border-radius:12px}.account-summary{display:grid;gap:2px;padding:8px 9px}.account-summary strong,.account-summary span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-summary span{color:var(--muted);font-size:.76rem}.account-popover button,.account-role-chip{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;min-height:36px;padding:0 9px;border-radius:8px;color:var(--text-soft);text-align:left}.account-popover button{min-height:40px;background:transparent;cursor:pointer}.account-popover button:hover,.account-popover button:focus-visible{background:var(--accent-muted);color:var(--accent-strong)}.account-role-chip{color:var(--muted);font-size:.82rem}.theme-menu-wrap{position:relative}.theme-trigger{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-soft);color:var(--text-soft);cursor:pointer;white-space:nowrap}.theme-trigger strong{color:var(--accent-strong);font-size:.78rem}.theme-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:40;display:grid;gap:12px;width:min(360px,calc(100vw - 28px));padding:12px;border-radius:12px}.theme-options{display:grid;gap:6px}.theme-option{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;min-height:48px;padding:7px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-soft);cursor:pointer;text-align:left}.theme-option[aria-checked=true]{border-color:var(--primary-border);background:var(--accent-muted);color:var(--accent-strong)}.theme-option strong,.theme-option small{display:block;min-width:0}.theme-option small{margin-top:2px;color:var(--muted);font-size:.72rem}.theme-swatch{width:34px;height:34px;border:1px solid var(--border-strong);border-radius:8px;box-shadow:inset 0 0 0 1px #ffffff14}.theme-custom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.theme-custom-grid label,.theme-range-row{display:grid;gap:6px;min-width:0}.theme-custom-grid label span,.theme-range-row span{color:var(--muted);font-size:.72rem;font-weight:760}.theme-custom-grid input[type=color]{min-height:34px;padding:3px;cursor:pointer}.theme-range-row input{accent-color:var(--accent)}.studio-status{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 11px;border:1px solid rgba(117,216,143,.24);border-radius:8px;background:#75d88f17;color:var(--text-soft);font-size:.82rem;white-space:nowrap}.studio-status.is-error,.studio-status.is-offline{border-color:#ff9cae47;background:#ff9cae14}.studio-status strong{color:var(--success)}.studio-status.is-error strong,.studio-status.is-offline strong{color:var(--danger)}.state-dot{width:9px;height:9px;flex:0 0 auto;border-radius:999px}.state-dot--ready,.state-dot--live{background:var(--success);box-shadow:0 0 0 4px #75d88f1f}.state-dot--offline,.state-dot--error{background:var(--danger);box-shadow:0 0 0 4px #ff9cae1f}.state-dot--draft{background:var(--warning);box-shadow:0 0 0 4px #e7b65f1f}.workspace{position:relative;min-width:0;min-height:0;overflow:auto;outline:none}.app-view{display:grid;align-content:start;gap:18px;width:min(1480px,100%);min-height:100%;margin:0 auto;padding-bottom:96px}.app-shell[data-view=reader] .workspace{overflow:hidden}.app-shell[data-view=reader] .app-view{height:100%;min-height:0;padding-bottom:0}.books-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:14px;align-items:start}.books-sidebar{position:sticky;top:0;display:grid;align-content:start;gap:16px;min-height:calc(100vh - 92px);padding:14px}.sidebar-title{display:grid;gap:3px;padding:4px 2px 2px}.sidebar-title strong{font-size:1.05rem}.sidebar-nav{display:grid;gap:5px}.sidebar-nav-button{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:38px;padding:0 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-soft);cursor:pointer;text-align:left}.sidebar-nav-button:hover,.sidebar-nav-button:focus-visible,.sidebar-nav-button.active{border-color:var(--primary-border);background:var(--accent-muted);color:var(--accent-strong)}.sidebar-nav-button small{color:var(--faint);font-family:var(--font-mono);font-size:.7rem}.sidebar-create{width:100%;margin-top:4px}.books-main,.recent-section,.shelf-section,.outline-panel{display:grid;align-content:start;gap:18px;min-width:0}.library-header,.section-heading,.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.library-header h1{margin:0;font-size:2rem;line-height:1.08}.section-heading h2,.panel-header h2{margin:0;font-size:1.1rem}.eyebrow{margin:0 0 4px;color:var(--accent);font-size:.73rem;font-weight:780}.recent-row{display:grid;grid-auto-columns:minmax(260px,390px);grid-auto-flow:column;gap:12px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory}.recent-book{display:grid;grid-template-columns:132px minmax(0,1fr);min-height:172px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);scroll-snap-align:start}.book-cover,.book-cover-tile{position:relative;display:grid;align-content:end;gap:9px;min-width:0;padding:18px;overflow:hidden;border-right:1px solid rgba(255,255,255,.16);background:linear-gradient(135deg,rgba(255,255,255,.2),transparent 42%),linear-gradient(180deg,#07080b14,#07080b66);cursor:pointer;text-align:left}.book-cover:before,.book-cover-tile:before{content:"";position:absolute;inset:0 auto 0 18px;width:1px;background:#ffffff40}.book-accent-cyan .book-cover,.book-accent-cyan .book-cover-tile{background-color:#16606a}.book-accent-green .book-cover,.book-accent-green .book-cover-tile{background-color:#315f3b}.book-accent-amber .book-cover,.book-accent-amber .book-cover-tile{background-color:#75592b}.book-accent-rose .book-cover,.book-accent-rose .book-cover-tile{background-color:#6d3f51}.book-cover strong,.book-cover small,.book-cover-tile strong,.book-title-button{position:relative;display:block;min-width:0;overflow-wrap:anywhere}.book-cover strong,.book-cover-tile strong{color:#fff;line-height:1.18}.book-cover small{color:#ffffffc2;font-family:var(--font-mono);font-size:.74rem}.book-status,.book-cover-tile span{position:absolute;top:12px;right:12px;min-height:26px;padding:4px 8px;border:1px solid rgba(255,255,255,.18);border-radius:7px;background:#0003;color:#ffffffdb;font-size:.72rem;font-weight:760}.recent-summary{display:grid;align-content:center;gap:11px;min-width:0;padding:16px}.recent-meta,.book-card-body small,.wire-note{color:var(--faint);font-family:var(--font-mono);font-size:.72rem}.recent-summary h3{margin:0;font-size:1rem;line-height:1.35}.book-progress{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;color:var(--accent-strong);font-family:var(--font-mono);font-size:.78rem;font-weight:780}.progress-track{height:8px;overflow:hidden;border-radius:999px;background:var(--control-bg)}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--success))}.collection-strip{display:flex;flex-wrap:wrap;gap:7px}.collection-chip{min-height:32px;padding:0 11px;border:1px solid var(--border);border-radius:999px;background:#ffffff06;color:var(--text-soft);cursor:pointer}.collection-chip.is-active{border-color:var(--primary-border);background:var(--accent-muted);color:var(--accent-strong)}.shelf-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:18px}.book-card{display:grid;gap:9px;min-width:0}.book-card.is-selected .book-cover-tile{outline:2px solid var(--accent-ring);outline-offset:2px}.book-cover-tile{width:100%;min-height:220px;border:1px solid rgba(255,255,255,.18);border-radius:8px;box-shadow:0 16px 24px #00000042}.book-card-body{display:grid;gap:5px;min-width:0;padding:0 2px}.book-title-button{padding:0;background:transparent;color:var(--text);cursor:pointer;font-weight:760;line-height:1.3;text-align:left}.book-card-body p{display:none}.screen-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:52px;padding:7px 8px;border-radius:var(--radius-command)}.toolbar-title,.outline-confidence,.section-title{display:inline-flex;align-items:center;gap:8px;min-width:0;color:var(--text-soft)}.generation-grid{display:grid;grid-template-columns:minmax(420px,1fr) minmax(300px,380px);gap:14px;align-items:start;width:min(1120px,100%);margin:0 auto}.generation-progress-grid{display:grid;grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);gap:14px;align-items:start}.builder-panel,.runtime-panel,.prompt-panel{padding:18px}.screen-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:var(--muted);font-family:var(--font-mono);font-size:.73rem}.builder-panel h1{max-width:640px;margin:0;font-size:2rem;line-height:1.1}.builder-panel{display:grid;gap:12px}.builder-summary{margin:0;color:var(--muted);font-size:.88rem;line-height:1.5}.form-section{display:grid;gap:9px;padding-top:2px}.form-section+.form-section{padding-top:12px;border-top:1px solid var(--border)}.form-section-title{color:var(--faint);font-family:var(--font-mono);font-size:.72rem;font-weight:780;text-transform:uppercase}.field-hint{margin:-3px 0 2px;color:var(--muted);font-size:.76rem;line-height:1.45}.model-input-row{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:8px;align-items:center}.model-refresh-button{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:40px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-soft);color:var(--text-soft);cursor:pointer}.model-refresh-button:disabled{cursor:wait;opacity:.68}label{color:var(--text-soft);font-size:.82rem;font-weight:760}input,select,textarea{width:100%;min-width:0;min-height:40px;border:1px solid var(--border-strong);border-radius:8px;background:var(--control-bg);color:var(--text)}input,select{padding:0 11px}.prompt-panel{display:grid;gap:12px}.custom-prompt-textarea{min-height:220px;padding:11px;resize:vertical;line-height:1.55}.action-cluster{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.outline-confidence{min-height:30px;padding:0 9px;border:1px solid rgba(117,216,143,.26);border-radius:8px;background:var(--success-muted);color:var(--success);font-family:var(--font-mono);font-size:.75rem}.outline-preview{display:grid;gap:10px}.outline-part{display:grid;gap:12px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.outline-part h3{margin:0;font-size:1rem}.outline-part p{margin:6px 0 0;color:var(--muted);font-size:.84rem;line-height:1.5}.outline-part ol,.toc-part ol{display:grid;gap:6px;margin:0;padding:0;list-style:none}.outline-part button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:10px;border:1px solid rgba(144,166,184,.14);border-radius:8px;background:var(--surface-2);color:var(--text-soft);cursor:pointer;text-align:left}.outline-part button:disabled,.outline-part button.is-pending{cursor:not-allowed;opacity:.62}.outline-part small{color:var(--faint);font-family:var(--font-mono);font-size:.72rem;white-space:nowrap}.section-title{font-size:.8rem;font-weight:780}.section-title svg{color:var(--accent)}.run-status-card{display:grid;gap:10px;margin:14px 0;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.run-status-card.is-running,.run-status-card.is-queued{border-color:#e7b65f47;background:linear-gradient(180deg,#e7b65f14,#e7b65f06),var(--surface)}.run-status-card.is-waiting{border-color:#e7b65f6b;background:var(--warning-muted)}.run-status-card.is-complete{border-color:#75d88f4d;background:var(--success-muted)}.run-status-card.is-failed{border-color:#ff9cae5c;background:#ff9cae1f}.run-status-main{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center}.run-status-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--border);border-radius:8px;color:var(--accent-strong)}.run-status-main strong,.run-status-main small{display:block;min-width:0;overflow-wrap:anywhere}.run-status-main strong{color:var(--text);font-size:.88rem}.run-status-main small{margin-top:3px;color:var(--muted);font-size:.75rem;line-height:1.4}.run-status-card .run-progress{margin:0}.run-status-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.run-status-meta span{min-width:0;padding:6px 7px;border:1px solid rgba(144,166,184,.14);border-radius:7px;background:#ffffff08;color:var(--text-soft);font-family:var(--font-mono);font-size:.68rem;overflow-wrap:anywhere}.run-status-warning,.runtime-hint{margin:0;color:var(--muted);font-size:.75rem;line-height:1.45}.step-list{display:grid;gap:9px;margin:14px 0}.step-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.step-marker{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--border);border-radius:8px;color:var(--muted)}.step-item strong,.step-item small{display:block;min-width:0;overflow-wrap:anywhere}.step-item strong{font-size:.86rem}.step-item small{margin-top:3px;color:var(--muted);font-size:.75rem;line-height:1.35}.step-item.is-complete .step-marker{border-color:#75d88f52;background:var(--success-muted);color:var(--success)}.step-item.is-active .step-marker{border-color:#e7b65f5c;background:var(--warning-muted);color:var(--warning)}.step-item.is-failed .step-marker{border-color:#ff9cae5c;background:#ff9cae24;color:var(--danger)}.chapter-job-list{display:grid;gap:7px;margin:0 0 14px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.chapter-job-list__header,.chapter-job{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}.chapter-job-list__header{color:var(--text-soft);font-family:var(--font-mono);font-size:.72rem}.chapter-job-list__header strong{color:var(--accent-strong);font-weight:760}.chapter-job{grid-template-columns:auto minmax(0,1fr) auto;color:var(--text-soft);font-size:.76rem}.chapter-job .state-dot{background:var(--warning)}.chapter-job.is-complete .state-dot{background:var(--success)}.chapter-job.is-failed .state-dot{background:var(--danger)}.chapter-job span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chapter-job small{color:var(--muted);font-family:var(--font-mono)}.metric-list{display:grid;gap:9px;margin:0}.run-progress{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin:0 0 14px;color:var(--accent-strong);font-family:var(--font-mono);font-size:.76rem;font-weight:780}.activity-log{display:grid;gap:8px;margin:0 0 14px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.activity-log__header{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text-soft);font-family:var(--font-mono);font-size:.72rem}.activity-log__header strong{color:var(--accent-strong);font-weight:760}.activity-log ol{display:grid;gap:6px;margin:0;padding:0;list-style:none}.activity-log li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 8px;align-items:center;min-width:0;color:var(--text-soft);font-size:.76rem}.activity-log li>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-kind{padding:3px 6px;border-radius:6px;background:var(--accent-muted);color:var(--accent-strong);font-family:var(--font-mono);font-size:.67rem}.activity-log small{grid-column:2;color:var(--muted);font-family:var(--font-mono);font-size:.68rem;overflow-wrap:anywhere}.metric-list div{display:flex;justify-content:space-between;gap:12px;padding-top:9px;border-top:1px solid rgba(144,166,184,.14)}.metric-list dt{color:var(--muted);font-size:.78rem}.metric-list dd{margin:0;font-family:var(--font-mono);font-size:.78rem;font-weight:760}.reader-view{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:12px;height:100%;min-height:0}.reader-shell{display:grid;grid-template-columns:minmax(210px,250px) minmax(0,700px) minmax(230px,280px);grid-template-rows:minmax(0,1fr);gap:14px;align-items:stretch;justify-content:center;min-height:0;overflow:auto;scroll-padding-block:16px}.reader-toc,.mentor-panel{position:sticky;top:0;display:grid;gap:14px;height:100%;min-height:0;max-height:100%;overflow:hidden;padding:14px}.reader-toc{grid-template-rows:auto minmax(0,1fr)}.mentor-panel{grid-template-rows:auto minmax(0,1fr) auto}.book-page{align-self:start}.toc-list{display:grid;align-content:start;gap:16px;min-height:0;overflow:auto;overscroll-behavior:contain}.toc-part h3{margin:0 0 8px;font-size:.85rem}.toc-part button{display:grid;grid-template-columns:42px minmax(0,1fr);gap:9px;width:100%;padding:9px;border:1px solid transparent;border-radius:8px;background:#ffffff06;color:var(--text-soft);cursor:pointer;text-align:left}.toc-part button.is-active{border-color:var(--primary-border);background:var(--accent-muted)}.chapter-number{display:grid;place-items:center;width:38px;height:34px;border:1px solid var(--border);border-radius:7px;color:var(--accent-strong);font-family:var(--font-mono);font-size:.76rem}.toc-part strong,.toc-part small{display:block;min-width:0;overflow-wrap:anywhere}.toc-files{display:grid;gap:2px;margin-top:6px}.toc-files small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal}.toc-part strong{color:var(--text);font-size:.84rem}.toc-part small{margin-top:3px;color:var(--faint);font-family:var(--font-mono);font-size:.72rem}.book-page{min-width:0;padding:clamp(36px,4.5vw,52px) clamp(32px,5vw,60px) 34px;border:1px solid var(--reader-line);border-radius:8px;background:linear-gradient(90deg,color-mix(in srgb,var(--reader-accent) 12%,transparent),transparent 42px),var(--reader);color:var(--reader-text);box-shadow:var(--reader-shadow)}.book-page>:not(.code-panel):not(.evidence-panel){width:100%;max-width:74ch;margin-right:auto;margin-left:auto}.page-head{display:grid;gap:10px;padding-bottom:24px;border-bottom:1px solid var(--reader-line)}.page-head .screen-kicker{color:var(--reader-muted)}.chapter-number-label{margin:0;color:var(--reader-accent);font-family:var(--font-mono);font-size:.8rem;font-weight:780}.book-page h1{margin:0;font-size:2.2rem;line-height:1.1}.page-head>p:last-child{max-width:680px;margin:0;color:var(--reader-muted);font-size:1rem;line-height:1.7}.goal-block,.chapter-section,.chapter-brief,.flow-panel,.evidence-panel,.recap-panel,.checkpoint-panel{margin-top:22px}.goal-block,.chapter-brief,.flow-panel,.evidence-panel,.recap-panel,.checkpoint-panel{padding:16px;border:1px solid var(--reader-line);border-radius:8px;background:var(--reader-panel)}.goal-block .section-title,.flow-panel .section-title,.evidence-panel .section-title,.recap-panel .section-title,.checkpoint-panel .section-title{color:var(--reader-text)}.chapter-brief{display:grid;gap:10px}.chapter-brief h2{margin:3px 0 0;font-size:1.05rem;line-height:1.4}.chapter-brief p,.flow-panel p,.evidence-table p,.recap-panel li{margin:0;color:var(--reader-muted);line-height:1.6}.goal-block ol{display:grid;gap:7px;margin:12px 0 0;padding-left:20px;color:var(--reader-muted);line-height:1.6}.chapter-section h2{margin:0;font-size:calc(1.25rem * var(--reader-font-scale));line-height:1.35}.chapter-section .section-body{display:grid;gap:.88em;margin-top:10px}.chapter-section .section-body p{margin:0;color:var(--reader-text);font-size:calc(1.055rem * var(--reader-font-scale));line-height:var(--reader-line-height)}.chapter-section .eyebrow{color:var(--reader-accent)}.code-panel{margin-top:24px;overflow:hidden;border:1px solid var(--code-border);border-radius:8px;background:var(--code-bg)}.code-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:0 14px;border-bottom:1px solid var(--code-border);color:var(--code-text);font-family:var(--font-mono);font-size:.78rem}.code-toolbar>div{display:flex;align-items:center;min-width:0;gap:8px}.code-toolbar>div span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-toolbar>span{flex:0 0 auto;white-space:nowrap}pre{margin:0;overflow:auto;padding:16px;color:var(--code-text);font:.86rem/1.65 var(--font-mono);-moz-tab-size:2;tab-size:2}.code-panel pre{max-height:420px}.anchor-stack{display:grid;gap:0}.code-anchor{display:grid;gap:10px;padding:14px;border-top:1px solid var(--code-border);color:var(--code-text)}.code-anchor:first-child{border-top:0}.code-anchor>div{display:grid;gap:3px}.code-anchor strong{font-family:var(--font-mono);font-size:.86rem}.code-anchor>div span,.code-anchor p{margin:0;color:color-mix(in srgb,var(--code-text) 74%,transparent);font-size:.86rem;line-height:1.55}.code-anchor pre{max-height:260px;border:1px solid var(--code-border);border-radius:8px}.highlighted-code{padding:0;max-width:100%}.code-lines{display:block;min-width:max-content;padding:12px 0}.code-line{display:grid;grid-template-columns:minmax(0,1fr);min-height:1.65em}.code-line.has-line-number{grid-template-columns:minmax(3.4rem,auto) minmax(0,1fr)}.line-number{padding:0 10px;border-right:1px solid color-mix(in srgb,var(--code-border) 84%,transparent);color:color-mix(in srgb,var(--code-text) 38%,transparent);text-align:right;-webkit-user-select:none;user-select:none}.line-content{display:block;padding:0 16px;white-space:pre}.code-line.has-line-number .line-content{padding-left:12px}.code-line:hover .line-number{color:color-mix(in srgb,var(--code-text) 58%,transparent)}.syntax-token--comment{color:color-mix(in srgb,var(--code-text) 48%,transparent);font-style:italic}.syntax-token--keyword{color:#8bdcff;font-weight:700}.syntax-token--type,.syntax-token--function{color:#b9d7ff}.syntax-token--string{color:var(--success)}.syntax-token--number,.syntax-token--literal{color:var(--warning)}.syntax-token--property{color:#a6e7ee}.syntax-token--operator{color:color-mix(in srgb,var(--code-text) 62%,transparent)}.flow-chart-shell{margin-top:12px;max-height:min(620px,70vh);overflow:auto;border:1px solid var(--reader-line);border-radius:8px;background:color-mix(in srgb,var(--reader-panel) 70%,var(--reader))}.flow-chart{display:block;height:auto;max-width:none;margin:0 auto}.flow-chart--vertical{width:min(100%,560px)}.flow-chart--horizontal{width:auto}.flow-chart marker path{fill:var(--reader-accent)}.flow-edge-layer path{fill:none;stroke:var(--reader-accent);stroke-linecap:round;stroke-width:2.4}.flow-edge-label{fill:var(--reader-muted);font:.72rem var(--font-mono)}.flow-node rect{fill:color-mix(in srgb,var(--reader) 86%,var(--surface-2));stroke:var(--reader-line);stroke-width:1.5}.flow-node:first-child rect{stroke:var(--reader-accent)}.flow-node text{fill:var(--reader-text);font:.82rem var(--font-mono)}.flow-diagram{margin-top:12px;max-height:260px;border:1px solid var(--reader-line);border-radius:8px;background:color-mix(in srgb,var(--reader-panel) 78%,var(--reader));color:var(--reader-text)}.evidence-table{display:grid;gap:10px;margin-top:12px}.evidence-table article{display:grid;gap:4px;padding:12px;border:1px solid var(--reader-line);border-radius:8px;background:color-mix(in srgb,var(--reader-panel) 82%,var(--reader))}.evidence-table strong{font-family:var(--font-mono);font-size:.84rem}.evidence-table span,.evidence-table small{color:var(--reader-muted);font-size:.82rem}.recap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.recap-grid article{min-width:0}.recap-grid strong{display:block;margin-bottom:8px;color:var(--reader-text)}.recap-grid ul{display:grid;gap:6px;margin:0;padding-left:18px}.glossary-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.glossary-list span{padding:5px 8px;border:1px solid var(--reader-line);border-radius:999px;color:var(--reader-text);font-size:.78rem}code{font-family:var(--font-mono)}.checkpoint-list{display:grid;gap:8px;margin-top:12px}.checkpoint-item{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:9px;color:var(--reader-muted);line-height:1.5}.checkpoint-item input{width:16px;height:16px;min-height:0;margin-top:3px;accent-color:var(--reader-accent)}.page-foot{display:flex;justify-content:space-between;gap:12px;margin-top:30px;padding-top:16px;border-top:1px solid var(--reader-line);color:var(--reader-muted);font-family:var(--font-mono);font-size:.78rem}.file-chip-stack{display:flex;flex-wrap:wrap;gap:7px}.file-chip-stack span{display:inline-flex;align-items:center;max-width:100%;gap:6px;min-height:30px;padding:0 8px;overflow:hidden;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text-soft);font-family:var(--font-mono);font-size:.72rem;text-overflow:ellipsis}.mentor-notes,.note-stack{display:grid;align-content:start;gap:8px}.mentor-notes{min-height:0;overflow:auto;overscroll-behavior:contain}.mentor-note{padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.mentor-note strong{font-size:.86rem}.mentor-note p{margin:7px 0 0;color:var(--text-soft);font-size:.82rem;line-height:1.6}.mentor-note--prompt{border-color:var(--primary-border);background:var(--accent-muted)}.chat-form{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:8px}.chat-form button,.icon-button{display:inline-grid;place-items:center;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-soft);color:var(--accent-strong);cursor:pointer}.icon-button{width:34px;height:34px}.chat-form button{width:40px;height:40px}.reading-controls{position:relative;z-index:20;display:grid;grid-template-columns:auto auto minmax(180px,1fr) auto auto auto auto;align-items:center;gap:8px;min-height:var(--reading-controls-height);width:min(1120px,calc(100% - 20px));margin:0 auto;padding:10px;border-radius:var(--radius-command)}.reader-settings-wrap{position:relative;min-width:0}.reader-settings-menu{position:absolute;right:0;bottom:calc(100% + 8px);z-index:34;display:grid;gap:4px;min-width:156px;padding:8px;border-radius:8px}.reader-settings-menu button,.reader-settings-menu span{min-height:34px;padding:0 10px;border-radius:7px;color:var(--text-soft);font-size:.82rem;text-align:left}.reader-settings-menu button{background:transparent;cursor:pointer}.reader-settings-menu button[aria-checked=true]{background:var(--accent-muted);color:var(--accent-strong)}.reader-settings-menu span{display:inline-flex;align-items:center;color:var(--faint)}.reading-progress{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;color:var(--accent-strong);font-family:var(--font-mono);font-size:.78rem;font-weight:780}.text-button,.primary-action,.secondary-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 12px;border:1px solid var(--border-strong);border-radius:8px;cursor:pointer;white-space:nowrap}.text-button{background:var(--surface-soft);color:var(--text-soft)}.primary-action{border-color:var(--primary-border);background:var(--primary-bg);color:var(--accent-strong);font-weight:760}.secondary-action{background:var(--surface-soft);color:var(--text-soft);font-weight:720}.mobile-only,.mobile-panel-trigger,.mobile-library-nav{display:none}.mobile-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:28;background:#00000085}.mobile-backdrop[hidden]{display:none!important}.app-shell[data-focus=true] .reader-shell{grid-template-columns:minmax(0,900px)}.app-shell[data-focus=true] .reader-toc,.app-shell[data-focus=true] .mentor-panel,.app-shell[data-focus=true] .mobile-panel-trigger{display:none!important}.app-shell[data-focus=true] .book-page{padding-inline:clamp(24px,7vw,76px)}.empty-state,.app-error{display:grid;place-items:center;gap:10px;min-height:220px;padding:24px;color:var(--text-soft)}.form-error{margin:0;color:var(--danger);font-size:.84rem;line-height:1.5}.auth-shell{display:grid;place-items:center;min-width:320px;min-height:100vh;padding:20px;background:linear-gradient(90deg,var(--grid-line) 0 1px,transparent 1px) 0 0 / 72px 72px,linear-gradient(0deg,rgba(104,126,148,.08) 0 1px,transparent 1px) 0 0 / 72px 72px,var(--app-bg-gradient),var(--app-bg)}.auth-card,.auth-loading-card{width:min(420px,100%);border-radius:12px}.auth-card{display:grid;gap:22px;padding:18px}.auth-brand{display:flex;align-items:center;gap:10px;min-width:0}.auth-brand>div{display:grid;gap:2px;min-width:0}.auth-brand strong{font-size:1rem}.auth-brand span:not(.brand-icon){color:var(--muted);font-size:.8rem}.auth-form{display:grid;gap:13px}.auth-heading{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:start}.auth-heading>svg{display:grid;place-items:center;width:34px;height:34px;padding:7px;border:1px solid var(--primary-border);border-radius:8px;background:var(--accent-muted);color:var(--accent-strong)}.auth-heading h1{margin:0;font-size:1.44rem;line-height:1.12}.auth-heading p{margin:5px 0 0;color:var(--muted);font-size:.86rem;line-height:1.45}.auth-form label,.admin-create-panel label,.admin-account-card label{display:grid;gap:6px}.auth-submit{width:100%}.admin-users-view{display:grid;gap:14px}.admin-grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:14px;align-items:start}.admin-create-panel,.admin-list-panel{display:grid;align-content:start;gap:13px;padding:16px}.admin-create-panel h1,.admin-list-panel h2{margin:0;font-size:1.08rem}.account-count{min-height:28px;padding:5px 8px;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-family:var(--font-mono);font-size:.74rem}.admin-account-list{display:grid;gap:10px}.admin-account-card{display:grid;grid-template-columns:minmax(160px,1.1fr) repeat(3,minmax(130px,.8fr)) auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.admin-account-title{display:grid;gap:4px;min-width:0}.admin-account-title strong{min-width:0;overflow-wrap:anywhere}.admin-account-title span{color:var(--muted);font-size:.78rem}.admin-account-card .form-error{grid-column:1 / -1}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.brand-mark:focus-visible,.account-trigger:focus-visible,.sidebar-nav-button:focus-visible,.mobile-nav-button:focus-visible,.theme-trigger:focus-visible,.theme-option:focus-visible,.book-cover:focus-visible,.book-cover-tile:focus-visible,.book-title-button:focus-visible,.flow-chart-shell:focus-visible,.flow-diagram:focus-visible,.highlighted-code:focus-visible,.text-button:focus-visible,.primary-action:focus-visible,.secondary-action:focus-visible,.icon-button:focus-visible,.toc-part button:focus-visible,.outline-part button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media(max-width:1280px){.generation-grid{grid-template-columns:minmax(360px,1fr) minmax(280px,360px)}.generation-progress-grid{grid-template-columns:minmax(280px,.86fr) minmax(0,1.14fr)}.generation-grid>.prompt-panel{grid-column:2}}@media(max-width:1180px){.reader-shell{grid-template-columns:minmax(210px,250px) minmax(0,720px)}.mentor-panel{display:none}.mentor-panel-trigger{display:inline-flex}.app-shell[data-mobile-panel=mentor] .mentor-panel{position:fixed;top:auto;right:10px;bottom:calc(var(--reading-controls-height) + env(safe-area-inset-bottom) + 16px);left:10px;z-index:30;display:grid;max-height:min(76vh,620px);overflow:hidden;border-radius:14px;background:linear-gradient(180deg,#ffffff13,#ffffff06),var(--command-glass-strong);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%)}.app-shell[data-mobile-panel=mentor] .mentor-panel .mobile-only{display:inline-grid}}@media(max-width:1024px){.reader-shell{grid-template-columns:minmax(0,1fr)}.reader-toc,.mentor-panel{display:none}.app-shell[data-mobile-panel=toc] .reader-toc,.app-shell[data-mobile-panel=mentor] .mentor-panel{position:fixed;top:auto;right:8px;bottom:calc(var(--reading-controls-height) + env(safe-area-inset-bottom) + 14px);left:8px;z-index:30;display:grid;max-height:min(76vh,620px);overflow:hidden;border-radius:14px;background:linear-gradient(180deg,#ffffff13,#ffffff06),var(--command-glass-strong);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%)}.mobile-panel-trigger{display:inline-flex}.mobile-only{display:inline-grid}.reader-view{padding-bottom:0}.book-page{width:min(100%,760px);justify-self:center}}@media(max-width:900px){:root{--reading-controls-height: 96px}body{overflow:auto}.app-shell{height:auto;min-height:100vh;padding:8px}.app-shell[data-view=reader]{height:100dvh;min-height:100dvh;overflow:hidden}.workspace{overflow:visible}.app-shell[data-view=reader] .workspace{overflow:hidden}.app-shell[data-view=reader] .app-view{height:100%;min-height:0;padding-bottom:0}.books-layout,.generation-grid,.generation-progress-grid,.admin-grid,.reader-shell,.admin-account-card{grid-template-columns:minmax(0,1fr)}.books-sidebar{display:none}.library-header h1{font-size:1.72rem}.recent-row{grid-auto-columns:minmax(250px,86vw)}.recent-book{grid-template-columns:116px minmax(0,1fr)}.shelf-row{grid-template-columns:repeat(2,minmax(0,1fr))}.runtime-panel,.generation-grid>.prompt-panel,.mentor-panel{grid-column:auto}.book-page{padding:28px 24px 24px}.book-page h1{font-size:1.72rem}.recap-grid{grid-template-columns:minmax(0,1fr)}.primary-action,.secondary-action,.text-button{width:100%}.reading-controls{position:relative;right:auto;bottom:auto;left:auto;width:auto;grid-template-columns:repeat(6,minmax(0,1fr));margin:0;padding-bottom:max(10px,env(safe-area-inset-bottom))}.reading-progress{grid-column:1 / -1;grid-row:1}.reading-controls .text-button,.reading-controls .primary-action,.reader-settings-wrap{min-width:0;width:100%}.reading-controls .text-button,.reading-controls .primary-action{padding:0 8px}.reading-controls .text-button span,.reading-controls .primary-action span{display:none}.mobile-library-nav{position:fixed;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));left:8px;z-index:24;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:7px;border-radius:var(--radius-command)}.mobile-library-nav.is-two-up{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell[data-view=reader] .mobile-library-nav{display:none}.mobile-nav-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:38px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}.mobile-nav-button.active{border-color:var(--primary-border);background:var(--accent-muted);color:var(--accent-strong)}.library-view,.generation-view{padding-bottom:calc(88px + env(safe-area-inset-bottom))}}@media(max-width:560px){.app-shell{gap:8px;padding:6px}.top-bar{grid-template-columns:minmax(0,1fr) auto;padding-inline:6px}.brand-mark{overflow:hidden}.brand-copy small{display:none}.top-actions{gap:4px}.screen-toolbar{grid-template-columns:40px minmax(0,1fr) 40px;gap:6px}.screen-toolbar>.text-button,.screen-toolbar>.primary-action{width:40px;padding:0}.screen-toolbar>.text-button span,.screen-toolbar>.primary-action span{display:none}.screen-toolbar .toolbar-title{justify-self:center;overflow:hidden}.screen-toolbar .toolbar-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-status span:not(.state-dot),.studio-status strong,.account-trigger span,.account-trigger strong,.theme-trigger span,.theme-trigger strong{display:none}.studio-status,.account-trigger,.theme-trigger{width:36px;padding:0}.theme-popover,.account-popover{max-height:calc(100dvh - 82px - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}.builder-panel,.runtime-panel,.prompt-panel,.outline-part,.reader-toc,.mentor-panel{padding:12px}.builder-panel h1{font-size:1.42rem}.custom-prompt-textarea{min-height:160px}.run-status-meta,.activity-log li{grid-template-columns:minmax(0,1fr)}.activity-log small{grid-column:auto}.book-cover-tile{min-height:180px}.book-page{padding:22px 16px}.book-page h1{font-size:1.42rem}.page-head>p:last-child,.chapter-section p{font-size:.92rem}pre{padding:12px;font-size:.78rem}.outline-part button{grid-template-columns:minmax(0,1fr)}.outline-part small{white-space:normal}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.command-surface,.app-shell[data-mobile-panel=toc] .reader-toc,.app-shell[data-mobile-panel=mentor] .mentor-panel{background:var(--command-glass-strong);backdrop-filter:none;-webkit-backdrop-filter:none}}
