:root{--bg: #18181b;--bg-elevated: #27272a;--bg-sidebar: #1e1e21;--border: #333338;--text: #e4e4e7;--text-muted: #a1a1aa;--accent: #a11d2a;--danger: #c45c5c;--radius: 8px;font-family:Inter,system-ui,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;height:100%}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--border);background:var(--bg-elevated);border-radius:var(--radius);padding:.35rem .65rem}button:hover{border-color:#555}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.danger{color:var(--danger)}button.block{width:100%;margin-top:.4rem}button:disabled{opacity:.4;cursor:default}.boot{display:grid;place-items:center;height:100%;color:var(--text-muted)}.error-strip{background:#3d2222;color:#f0c0c0;padding:.4rem 1rem}.notice-strip{background:#223d2a;color:#c0f0c8;padding:.4rem 1rem}.plus-badge{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--accent);border-radius:999px;padding:.15rem .5rem}.library-bar,.toolbar{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-sidebar)}.brand{display:flex;align-items:center;gap:.5rem;color:inherit;text-decoration:none;font-weight:600}.library-user{margin-left:auto;display:flex;gap:.75rem;align-items:center;color:var(--text-muted)}.library-user a,.primary-link{color:var(--text)}.library-main{max-width:640px;margin:2rem auto;padding:0 1rem}.new-book{display:flex;flex-direction:column;gap:.85rem;margin:1rem 0 1.75rem}.new-book input[type=text]{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .65rem}.storage-choices{border:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.storage-choices legend{font-size:12px;color:var(--text-muted);margin-bottom:.35rem}.choice{display:flex;gap:.65rem;align-items:flex-start;padding:.65rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);cursor:pointer}.choice.active{border-color:var(--accent)}.choice input{margin-top:.2rem}.choice span{display:flex;flex-direction:column;gap:.15rem;font-size:13px;color:var(--text-muted);line-height:1.4}.choice strong{color:var(--text);font-size:14px;font-weight:600}.storage-hint{margin:0;font-size:13px;color:var(--text-muted);line-height:1.45}.storage-hint a,button.linkish{color:var(--text);background:none;border:none;padding:0;text-decoration:underline;font:inherit}.book-list{list-style:none;padding:0;margin:0}.book-list li{display:flex;gap:.5rem;align-items:center;border-bottom:1px solid var(--border);padding:.6rem 0}.book-open{flex:1;text-align:left;background:none;border:none;display:flex;flex-direction:column;gap:.2rem}.book-open span{color:var(--text-muted);font-size:12px}.empty{color:var(--text-muted)}.modal-backdrop{position:fixed;inset:0;background:#0000008c;display:grid;place-items:center;padding:1rem;z-index:1100}.modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:1.25rem;max-width:420px;width:100%}.modal label{display:flex;flex-direction:column;gap:.3rem;margin:.75rem 0;font-size:12px;color:var(--text-muted)}.modal input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.45rem .55rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.export-modal .modal-actions{flex-wrap:wrap}.export-modal{max-width:440px;max-height:min(80vh,640px);display:flex;flex-direction:column}.export-modal h2{margin:0 0 .35rem;font-size:1.15rem}.export-hint{font-size:12px;color:var(--text-muted);margin:.35rem 0 0}.export-presets{display:flex;flex-wrap:wrap;gap:.35rem;margin:.75rem 0 .5rem}.export-presets button{font-size:12px;padding:.25rem .5rem}.export-presets button.active{border-color:var(--accent);background:#a11d2a40}.export-list{overflow:auto;border:1px solid var(--border);border-radius:var(--radius);padding:.25rem;margin:.5rem 0 0;max-height:40vh}.export-run{border-left:2px solid var(--accent);margin:.15rem 0;padding-left:.15rem}.export-modal .export-item{display:flex;flex-direction:row;align-items:center;gap:.45rem;margin:0;padding:.45rem .5rem;font-size:13px;color:var(--text)}.export-modal .export-item.glued{padding-left:1.35rem}.export-modal .export-item input{width:auto;margin:0;accent-color:var(--accent)}.export-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.export-kind{font-size:11px;color:var(--text-muted)}.shell,.library{height:100%;display:flex;flex-direction:column}.book-title{flex:1;min-width:8rem;background:transparent;border:none;font-family:Literata,Georgia,serif;font-size:1.1rem}.storage-pill{font-size:11px;color:var(--text-muted)}.save-stamp{font-size:11px;color:var(--text-muted);white-space:nowrap}.sprint-badge{font-weight:600;font-size:12px}.workspace{flex:1;display:grid;grid-template-columns:220px 1fr 200px;min-height:0}.sidebar,.stats{background:var(--bg-sidebar);border-right:1px solid var(--border);padding:.75rem;overflow:auto}.stats{border-right:none;border-left:1px solid var(--border)}.sidebar-header,.stats h2,.stats h3{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 .6rem}.stats h3{margin-top:1.2rem}.sidebar-toolbar{display:flex;gap:.35rem;margin-bottom:.5rem}.sidebar-toolbar button{flex:1;font-size:12px}.sidebar ul{list-style:none;margin:0;padding:0;-webkit-user-select:none;user-select:none}.sidebar li{display:flex;align-items:center;border-radius:var(--radius)}.sidebar li.active{background:var(--bg-elevated)}.sidebar li.glued{background:#a11d2a1a;box-shadow:inset 2px 0 0 var(--accent);border-radius:0}.sidebar li.glued-start{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.sidebar li.glued-end{border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius)}.sidebar li.selected{background:#a11d2a29;box-shadow:inset 2px 0 0 var(--accent)}.sidebar li.active.glued{background:#a11d2a33}.sidebar li.active.selected{background:#a11d2a47}.item-label{flex:1;border:none;background:none;text-align:left;padding:.4rem .3rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-type{opacity:.5;margin-right:.3rem}.item-drag{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:1.85rem;align-self:stretch;border:none;background:none;color:var(--text-muted);cursor:grab;touch-action:none;padding:0}.item-drag:active,.sidebar ul.reordering .item-drag{cursor:grabbing}.grip{width:10px;height:12px;background:radial-gradient(circle,currentColor 1.05px,transparent 1.15px);background-size:5px 4px;opacity:.55}.sidebar li.dragging{opacity:.4}.sidebar li.drop-line{height:2px;padding:0;margin:.1rem .35rem;background:var(--accent);border-radius:1px;pointer-events:none;box-shadow:none}.sidebar-foot{font-size:11px;color:var(--text-muted);margin-top:.75rem}.sidebar-select-actions{display:flex;gap:.35rem;margin-top:.5rem}.sidebar-select-actions button{flex:1;font-size:12px}.editor-pane{display:flex;flex-direction:column;min-width:0;background:#141312}.editor-meta{padding:.4rem 1rem;font-size:12px;color:var(--text-muted);border-bottom:1px solid var(--border);display:flex;gap:.5rem}.editor-stack{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;padding:1.5rem 2rem 3rem;max-width:42rem;width:100%;margin:0 auto}.editor-stack.has-glue{padding-left:3.25rem}.glue-mark{position:relative;flex:0 0 1.65rem;margin:.15rem 0;pointer-events:none;-webkit-user-select:none;user-select:none}.glue-mark span{position:absolute;left:-1.85rem;top:50%;transform:translateY(-50%);color:var(--text-muted);opacity:.55;font-size:1.05rem;line-height:1}.editor{flex:1;border:none;background:transparent;resize:none;padding:0;width:100%;margin:0;font-family:Literata,Georgia,serif;font-size:18px;line-height:1.65;outline:none;transition:color .5s ease}.editor-stack .editor{flex:0 0 auto;overflow:hidden}.editor-stack .editor.editor-fill{flex:1 1 auto;min-height:12rem;overflow:auto}.stat-row{display:flex;justify-content:space-between;margin-bottom:.35rem}.stat-row.muted{color:var(--text-muted);font-size:12px}.stat-row strong{font-family:Literata,Georgia,serif;font-size:1.4rem}.progress-bar{height:4px;background:var(--border);border-radius:2px;margin:.5rem 0 .3rem}.progress-fill{height:100%;background:var(--accent)}.progress-label{font-size:11px;color:var(--text-muted);margin:0}.hint{font-size:12px;color:var(--text-muted);line-height:1.45;margin:0 0 .5rem}.hint a{color:var(--text)}.recorder{margin:.4rem 0 .6rem}.recorder-live{font-family:Literata,Georgia,serif;font-size:1.15rem;color:var(--danger);text-align:center;margin:.35rem 0 .5rem}.recorder-actions{display:grid;grid-template-columns:1fr 1fr;gap:.3rem;margin-top:.35rem}.recorder-actions .block{margin-top:0}.recorder-modal{max-width:760px}.recorder-modal h2{margin:0 0 .5rem;font-size:1.15rem}.wave{width:100%;height:160px;display:block;border:1px solid var(--border);border-radius:var(--radius);cursor:ew-resize;touch-action:none;margin:.6rem 0 .35rem}.wave-live{height:110px;cursor:default}.recorder-times{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);margin-bottom:.5rem}.paper-preview{margin:.75rem 0;max-height:50vh;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.paper-preview img{display:block;width:100%;height:auto}.recorder .field{margin-bottom:.55rem}.sprint-timer{font-family:Literata,Georgia,serif;font-size:2rem;text-align:center}.sprint-durs{display:grid;grid-template-columns:1fr 1fr;gap:.3rem}.sprint-durs button.active{background:var(--accent);border-color:var(--accent);color:#fff}.field{display:flex;flex-direction:column;gap:.25rem;font-size:12px;color:var(--text-muted)}.field input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.35rem .5rem}.auth-error{color:#f0c0c0}.context-menu{position:fixed;z-index:1000;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:.25rem;min-width:180px}.context-menu button{display:block;width:100%;text-align:left;border:none;background:transparent;padding:.4rem .65rem;border-radius:4px;font-size:13px}.context-menu button:hover{background:#ffffff0f}.context-menu hr{border:none;border-top:1px solid var(--border);margin:.25rem 0}
