:root{--bg: #f6f4ef;--panel: #ffffff;--line: #d9d4c7;--text: #25221c;--muted: #7a7466;--accent: #7b3f1d;--warn: #b3261e;--warn-bg: #fdecea;color-scheme:light;font-family:system-ui,sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #1b1915;--panel: #25221c;--line: #3a362d;--text: #ece8dc;--muted: #9b9484;--accent: #e0a070;--warn: #d6463b;--warn-bg: #3a1f1c;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text)}.projects{max-width:640px;margin:0 auto;padding:48px 16px}.projects h1{margin:0 0 24px;font-size:1.5rem}.projects-moved{margin:0 0 24px;padding:10px 14px;border:1px solid var(--warn);border-radius:6px;background:var(--warn-bg);color:var(--warn);font-size:.9rem}.projects-moved a{color:inherit;font-weight:600}.projects button,.topbar .link{font:inherit;font-size:.85rem;padding:4px 12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:inherit;cursor:pointer}.projects button:hover:not(:disabled),.topbar .link:hover{background:var(--bg)}.projects button:disabled{opacity:.4;cursor:default}.projects button.danger{border-color:var(--warn);color:var(--warn)}.projects input[type=text]{flex:1;font:inherit;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:inherit}.projects-new,.projects-rename{display:flex;gap:8px;margin-bottom:16px}.topbar .save-status+.link{margin-left:8px}.projects-rename{margin:0;flex:1}.projects-error{margin:0 0 16px;padding:8px 12px;border-radius:6px;background:var(--warn-bg);color:var(--warn)}.projects-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.projects-list li{display:flex;align-items:center;gap:8px;padding:8px 12px}.projects-list li+li{border-top:1px solid var(--line)}.projects-list li>button.projects-open{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:0;background:none;padding:4px 0;font-size:1rem}.projects-list li>button.projects-open:hover{background:none;color:var(--accent)}.projects-confirm{display:flex;align-items:center;gap:8px;flex:1}.projects-confirm>span{flex:1}.topbar .link{color:var(--accent)}.backup-reminder{grid-area:banner;display:flex;align-items:center;gap:8px;padding:6px 16px;background:var(--panel);border-bottom:1px solid var(--line);font-size:.85rem}.backup-reminder p{flex:1;margin:0}.backup-reminder button{font:inherit;font-size:.8rem;padding:3px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:inherit;cursor:pointer}.backup-reminder button:first-of-type{border-color:var(--accent);color:var(--accent)}.backup-reminder button:disabled{opacity:.5;cursor:default}.topbar .link:disabled{opacity:.5;cursor:default}.save-status{margin-left:auto;font-size:.8rem;color:var(--muted)}.save-status[data-state=error]{color:var(--warn)}.empty-project{padding:24px}.shell{display:grid;grid-template-columns:220px minmax(320px,1fr) minmax(320px,1fr);grid-template-rows:auto auto 1fr;grid-template-areas:"top top top" "banner banner banner" "side editor preview";height:100%;min-width:960px}.topbar{grid-area:top;display:flex;gap:12px;align-items:baseline;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel)}.hint{color:var(--muted);font-size:.8rem}.side{grid-area:side;display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line);background:var(--panel)}.sidebar{flex:1 1 50%;min-height:0;background:var(--panel);overflow:auto;padding:12px 8px}.images{flex:1 1 40%;min-height:0;overflow:auto;border-top:1px solid var(--line);padding:12px 8px}.images h2{margin:0;padding:0 8px 8px;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.images .chapter-add{width:auto;padding:2px 6px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:inherit;font-size:.75rem;line-height:1;cursor:pointer}.images ul{list-style:none;margin:0;padding:0}.images li{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:8px;padding:4px 8px;font-size:.8rem}.images img,.images .image-placeholder{width:40px;height:40px;object-fit:cover;border-radius:4px;background:var(--bg)}.images .image-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.images .image-insert{width:auto;padding:2px 6px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:inherit;font-size:.7rem;cursor:pointer}.images .image-actions{display:flex;gap:2px}.images .image-size{color:var(--muted);font-size:.7rem}.images .hint{padding:0 8px}.image-problems{padding:4px 8px;margin:0 0 8px;border-radius:6px;background:var(--warn-bg);color:var(--warn);font-size:.8rem}.image-problems p{margin:0 0 4px}.drop-overlay{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#00000073;color:#fff;font-size:1.2rem;pointer-events:none}.sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:0 8px 8px}.sidebar-head h2{padding:0}.sidebar h2,.pane>header h2{margin:0;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.sidebar h2{padding:0 8px 8px}.sidebar ol{list-style:none;margin:0;padding:0}.sidebar li{display:flex;align-items:center;border-radius:6px;border-top:2px solid transparent}.sidebar li.drop-target{border-top-color:var(--accent)}.sidebar li[draggable=true]{cursor:grab}.sidebar .chapter-open{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar .chapter-actions{display:none;flex:none;gap:2px}.sidebar li:hover .chapter-actions,.sidebar li:focus-within .chapter-actions{display:flex}.sidebar .chapter-actions button,.sidebar .chapter-add{width:auto;padding:2px 6px;border:1px solid var(--line);background:var(--panel);font-size:.75rem;line-height:1}.sidebar .chapter-actions button:disabled{opacity:.3;cursor:default}.sidebar .chapter-pages{flex:none;margin-right:4px;font-size:.7rem;color:var(--muted);white-space:nowrap}.sidebar .chapter-pages[data-stale=true]{padding:0 4px;border-radius:4px;background:var(--warn-bg);color:var(--warn)}.sidebar li:hover .chapter-pages,.sidebar li:focus-within .chapter-pages{display:none}.stale-pages{margin:0;padding:6px 16px;background:var(--warn-bg);color:var(--warn);font-size:.8rem;border-bottom:1px solid var(--line)}.sidebar .chapter-badge{flex:none;margin-right:4px;padding:0 4px;border:1px solid var(--line);border-radius:4px;font-size:.65rem;color:var(--muted)}.sidebar li:hover .chapter-badge,.sidebar li:focus-within .chapter-badge{display:none}.sidebar .chapter-actions button[aria-pressed=true]{background:var(--accent);color:var(--panel);border-color:var(--accent)}.sidebar .chapter-rename{flex:1}.sidebar .chapter-rename input{width:100%;font:inherit;padding:6px 8px;border:1px solid var(--accent);border-radius:6px;background:var(--panel);color:inherit}.sidebar .chapter-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 8px;font-size:.8rem}.sidebar .chapter-confirm span{flex-basis:100%}.sidebar .chapter-confirm button{width:auto;padding:2px 8px;border:1px solid var(--line);background:var(--panel);font-size:.75rem}.sidebar .chapter-confirm .danger{border-color:var(--warn);color:var(--warn)}.sidebar .hint{padding:0 8px}.sidebar button{width:100%;text-align:left;padding:8px;border:0;border-radius:6px;background:none;color:inherit;font:inherit;cursor:pointer}.sidebar button:hover{background:var(--bg)}.sidebar button[aria-current=true]{background:var(--bg);color:var(--accent);font-weight:600}.pane{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line)}.pane>header{display:flex;gap:12px;align-items:baseline;padding:10px 16px;border-bottom:1px solid var(--line)}.editor{grid-area:editor}.preview{grid-area:preview;border-right:0;overflow:hidden}.preview-host{position:relative;flex:1;min-height:0}.editor>textarea[hidden],.editor-body[hidden]{display:none}.editor>textarea{flex:1;resize:none;border:0;padding:16px;background:var(--panel);color:inherit;font:.9rem/1.5 ui-monospace,monospace;outline:none}.error{margin:16px;color:#b3261e}.rosetta-pagebreak{border-top:2px dashed var(--form-line);text-align:center;color:var(--form-muted);font-size:.75rem}.rosetta-pagebreak:after{content:"page break"}.rosetta-layout{border-top:2px dashed var(--form-accent);text-align:center;color:var(--form-accent);font-size:.75rem}.rosetta-layout:after{content:"new page · layout"}.rosetta-layout[data-template]:after{content:"new page · " attr(data-template) " layout"}.tabs{display:flex;gap:4px}.tabs button{border:0;border-radius:6px;padding:2px 10px;background:none;color:var(--muted);font:inherit;font-size:.85rem;cursor:pointer}.tabs button[aria-selected=true]{background:var(--bg);color:var(--accent);font-weight:600}.editor-body{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--panel)}.rosetta-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 12px;border-bottom:1px solid var(--line)}.rosetta-toolbar button{min-width:28px;padding:3px 7px;border:1px solid transparent;border-radius:5px;background:none;color:inherit;font:inherit;font-size:.8rem;cursor:pointer}.rosetta-toolbar button:hover:not(:disabled){background:var(--bg)}.rosetta-toolbar button[aria-pressed=true]{background:var(--bg);border-color:var(--line);color:var(--accent);font-weight:700}.rosetta-toolbar button:disabled{opacity:.35;cursor:default}.rosetta-toolbar button[hidden]{display:none}.rosetta-toolbar-separator{width:1px;align-self:stretch;margin:2px 6px;background:var(--line)}.visual-editor{flex:1;overflow:auto;scrollbar-gutter:stable;background:var(--panel)}.rosetta-editor{--form-bg: var(--color-page);--form-panel: var(--color-table-stripe);--form-text: var(--color-text);--form-muted: var(--color-muted);--form-line: var(--color-rule);--form-accent: var(--color-accent);color-scheme:light;zoom:var(--editor-zoom, 1);min-height:100%;padding:40px 24px 16px;outline:none}.rosetta-editor .selectedCell{background:color-mix(in srgb,var(--form-accent) 20%,transparent)}.rosetta-editor td>p,.rosetta-editor th>p{margin:0}.rosetta-editor th,.rosetta-editor td{min-width:60px}.rosetta-editor :is(ul,ol):not([data-tight=false])>li>p{margin:0}.rosetta-editor li>:last-child{margin-bottom:0}.rosetta-editor.rosetta-document tbody tr:nth-child(2n){background-color:transparent}.rosetta-editor.rosetta-document tbody tr:nth-child(odd):not(:first-child){background-color:var(--color-table-stripe)}.rosetta-component{position:relative}.rosetta-component.has-layout-warning{outline:2px solid var(--warn);outline-offset:2px}.rosetta-component.has-layout-warning:before{content:"⚠ " attr(data-layout-warning);display:block;padding:4px 10px;background:var(--warn);color:#fff;font:.8rem system-ui,sans-serif}.layout-warnings{margin:0;padding:8px 16px 8px 32px;background:var(--warn-bg);color:var(--warn);font-size:.8rem;border-bottom:1px solid var(--line)}.rosetta-component.is-selected{outline:2px solid var(--form-accent);outline-offset:2px}.rosetta-component-atom{cursor:pointer}.rosetta-component-rendered:empty:before{content:"…";color:var(--form-muted)}.rosetta-component-container:hover{outline:1px dashed var(--form-line);outline-offset:2px}.rosetta-component-body{display:contents}.rosetta-component-body>:last-child{margin-bottom:0}.rosetta-component-header{display:none;position:absolute;left:0;right:0;bottom:100%;z-index:2;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:4px 10px;background:var(--form-panel);border:1px solid var(--form-line);border-radius:6px 6px 0 0;color:var(--form-text);font:.8rem system-ui,sans-serif;font-style:normal}.rosetta-component-container:hover>.rosetta-component-header,.rosetta-component-header:focus-within{display:flex}.rosetta-component-name{font:.75rem ui-monospace,monospace;color:var(--form-muted)}.rosetta-inline-control{font:inherit;letter-spacing:inherit;color:inherit;background:transparent;border:0;border-bottom:1px dotted var(--form-line);border-radius:0;padding:0;margin:0 0 -1px;field-sizing:content;min-width:2ch;max-width:100%;outline:none}textarea.rosetta-inline-control{display:inline-block;vertical-align:top;resize:none;overflow:hidden}input[type=checkbox].rosetta-inline-control{field-sizing:auto;min-width:0;accent-color:var(--form-accent)}select.rosetta-inline-control{field-sizing:auto;min-width:0}.rosetta-inline-control[type=number]{appearance:textfield}.rosetta-inline-control[type=number]::-webkit-inner-spin-button,.rosetta-inline-control[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.rosetta-inline-control::placeholder{color:var(--form-muted);font-style:italic;opacity:.8}.rosetta-inline-control:focus{border-bottom:1px solid var(--form-accent);background:color-mix(in srgb,var(--form-accent) 8%,transparent)}.rosetta-inline-control.is-missing{border-bottom:2px solid var(--warn)}.rosetta-inline-item{position:relative}.rosetta-inline-remove,.rosetta-inline-add{font:.75rem system-ui,sans-serif;color:var(--form-muted);background:var(--form-bg);border:1px solid var(--form-line);border-radius:4px;padding:0 6px;cursor:pointer}.rosetta-inline-remove{position:absolute;top:0;right:0;opacity:0}.rosetta-inline-item:hover>.rosetta-inline-remove,.rosetta-inline-remove:focus-visible{opacity:1}.rosetta-inline-add{margin-top:4px}.rosetta-inline-remove:hover,.rosetta-inline-add:hover{background:var(--form-panel);color:var(--form-text)}.rosetta-inline-header{display:flex}.rosetta-form{display:flex;flex-direction:column;gap:8px;cursor:default;font-size:.85rem;color:var(--form-text)}.rosetta-form-inline{flex-direction:row;flex-wrap:wrap;gap:8px 12px}.rosetta-form-inline .rosetta-form-section{border:0;padding:0;margin:0;display:contents}.rosetta-form-inline legend{display:none}.rosetta-form-section{border:0;border-top:1px solid var(--form-line);padding:6px 0 0;margin:0;display:flex;flex-direction:column;gap:8px}.rosetta-form-section>legend{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--form-muted);padding:0 6px 0 0}.rosetta-form-field{display:flex;flex-direction:column;gap:2px}.rosetta-form-inline .rosetta-form-field,.rosetta-form-boolean{flex-direction:row;align-items:center;gap:6px}.rosetta-form label{color:var(--form-muted);font-size:.75rem}.rosetta-form input[type=text],.rosetta-form input[type=number],.rosetta-form select,.rosetta-form textarea{font:inherit;padding:3px 6px;border:1px solid var(--form-line);border-radius:4px;background:var(--form-bg);color:var(--form-text)}.rosetta-form:not(.rosetta-form-inline) .rosetta-form-field>:is(input[type=text],input[type=number],select,textarea){width:100%;min-width:0}.rosetta-form input::placeholder,.rosetta-form textarea::placeholder{color:var(--form-muted);opacity:1}.rosetta-form :is(input,select,textarea):focus-visible,.rosetta-form button:focus-visible{outline:2px solid var(--form-accent);outline-offset:1px}.rosetta-form :is(input,select,textarea,button):disabled{background:var(--form-panel);color:var(--form-muted);cursor:not-allowed}.rosetta-form input[type=checkbox]{accent-color:var(--form-accent)}.rosetta-form textarea{resize:vertical}.rosetta-form-list,.rosetta-form-object{display:flex;flex-direction:column;gap:6px;padding-left:10px;border-left:2px solid var(--form-line)}.rosetta-form-item{display:flex;gap:6px;align-items:flex-start}.rosetta-form-item>.rosetta-form-field{flex:1}.rosetta-form button{align-self:flex-start;font:inherit;font-size:.75rem;padding:2px 8px;border:1px solid var(--form-line);border-radius:4px;background:var(--form-bg);color:var(--form-text);cursor:pointer}.rosetta-form button:hover:not(:disabled){background:var(--form-panel)}.rosetta-toolbar select{max-width:12rem;font:inherit;font-size:.8rem;padding:2px 4px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:inherit}
