:root{color:#252725;font-synthesis:none;text-rendering:optimizelegibility;--ink:#252725;--muted:#737873;--line:#d9ddd8;--paper:#f8f9f7;--white:#fff;--green:#1e684a;--green-dark:#15503a;--amber:#b97923;background:#e9ece9;font-family:Manrope,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}
#root{min-height:100vh}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{color:#fff;border-bottom:3px solid var(--amber);background:#1f2421;grid-template-columns:240px 1fr auto;align-items:center;min-height:58px;padding:0 18px;display:grid}.brand-mark{align-items:center;gap:9px;display:flex}.brand-mark strong{letter-spacing:0;font-family:Newsreader,serif;font-size:21px}.status-line{color:#c9ceca;white-space:nowrap;text-overflow:ellipsis;justify-self:center;align-items:center;gap:8px;min-width:0;font-size:12px;display:flex;overflow:hidden}.status-dot{background:#72bd91;border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 0 3px #72bd911f}.error-dot{background:#ec806f;box-shadow:0 0 0 3px #ec806f1f}.top-actions{gap:7px;display:flex}.current-user{color:#c9ceca;text-overflow:ellipsis;white-space:nowrap;align-self:center;max-width:130px;font-size:10px;overflow:hidden}.logout-button{width:34px;padding:0}.session-loading{min-height:100vh;color:var(--green);justify-content:center;align-items:center;gap:10px;font-size:12px;display:flex}.workspace{flex:1;grid-template-columns:minmax(245px,285px) minmax(360px,1fr) minmax(300px,355px);min-height:0;display:grid}.panel{background:var(--paper);border-right:1px solid var(--line);min-width:0;padding:22px}.chapters-panel{background:var(--white);flex-direction:column;padding:0;display:flex}.metadata-panel{border-right:0;overflow-y:auto}.panel-heading{align-items:center;gap:11px;margin-bottom:23px;display:flex}.panel-heading h2{letter-spacing:0;margin:0;font-size:15px;line-height:1.2}.panel-heading p{color:var(--muted);margin:3px 0 0;font-size:11px}.step-number{color:#4c524e;border:1px solid #aeb5af;flex:none;place-items:center;width:27px;height:27px;font-family:DM Mono,monospace;font-size:11px;display:grid}label{color:#505550;margin-bottom:15px;font-size:11px;font-weight:700;display:block}.optional{float:right;color:#929792;font-weight:400}input,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #ccd2cc;border-radius:3px;outline:none;margin-top:6px;padding:9px 10px;font-size:12px;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;line-height:1.5}input:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 2px #1e684a1a}.input-with-icon{position:relative}.input-with-icon svg{color:#808681;pointer-events:none;position:absolute;top:15px;left:9px}.input-with-icon input{padding-left:32px}.privacy-note{color:#7e847f;margin:-5px 0 15px;font-size:10px;line-height:1.5}.saved-repositories{margin:-5px 0 20px}.saved-title{color:#7d837e;text-transform:uppercase;margin-bottom:7px;font-size:9px;font-weight:700;display:block}.saved-header{justify-content:space-between;align-items:center;display:flex}.saved-header>span:last-child{min-width:19px;color:var(--green);text-align:center;background:#e4ece6;border-radius:10px;padding:2px 5px;font-size:9px;font-weight:700}.saved-list{max-height:190px;overflow-y:auto}.saved-row{background:#fff;border:1px solid #d7dcd7;border-bottom:0;grid-template-columns:minmax(0,1fr) 30px;display:grid}.saved-row:last-child{border-bottom:1px solid #d7dcd7}.saved-open,.saved-remove{color:#555c57;background:0 0;border:0}.saved-open{text-align:left;align-items:center;gap:8px;min-width:0;padding:8px;display:flex}.saved-open:hover{color:var(--green);background:#f0f7f3}.saved-open span{min-width:0}.saved-open strong,.saved-open small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.saved-open strong{font-size:10px}.saved-open small{color:#929792;margin-top:2px;font-size:8px}.saved-remove{place-items:center;padding:0;display:grid}.saved-remove:hover{color:#a74435;background:#fff0ed}.add-repository{width:100%;color:var(--green);background:#f0f7f3;border:1px solid #c8d9cf;border-top:0;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:10px;font-weight:700;display:flex}.add-repository:hover{background:#e5f1e9}.primary{background:var(--green);color:#fff;border:0;border-radius:3px;justify-content:center;align-items:center;gap:8px;min-height:34px;padding:8px 13px;font-size:11px;font-weight:700;display:inline-flex}.primary:hover:not(:disabled){background:var(--green-dark)}.secondary{color:#3d5044;background:0 0;border:1px solid #aeb8b0;border-radius:3px;justify-content:center;align-items:center;gap:8px;min-height:34px;padding:8px 13px;font-size:11px;font-weight:700;display:inline-flex}.topbar .secondary{color:#dce5df;border-color:#597064}.secondary:hover:not(:disabled){border-color:var(--green);color:var(--green);background:#edf5f0}.topbar .secondary:hover:not(:disabled){color:#fff;background:#2b3931}.full{width:100%}.repo-summary{color:var(--green);background:#f0f7f3;border:1px solid #c8d9cf;align-items:flex-start;gap:9px;margin-top:18px;padding:12px;display:flex}.repo-summary div{min-width:0}.repo-summary strong,.repo-summary span{text-overflow:ellipsis;display:block;overflow:hidden}.repo-summary strong{font-size:11px}.repo-summary span{color:#68776d;margin-top:3px;font-size:10px}.chapters-heading{border-bottom:1px solid var(--line);min-height:74px;margin:0;padding:17px 20px}.chapters-heading .text-button{color:var(--green);background:0 0;border:0;margin-left:auto;font-size:10px;font-weight:700}.chapter-list{max-height:56vh;overflow-y:auto}.chapter-row{cursor:pointer;border-bottom:1px solid #eceeeb;grid-template-columns:18px 18px minmax(0,1fr) 25px;align-items:center;gap:9px;min-height:57px;padding:8px 13px;display:grid}.chapter-row:hover{background:#f8faf8}.chapter-row.active{box-shadow:inset 3px 0 var(--green);background:#f1f6f2}.grip{color:#adb2ad}.chapter-row input[type=checkbox]{width:14px;height:14px;accent-color:var(--green);margin:0}.chapter-name{min-width:0}.chapter-name input{box-shadow:none;color:#2d302d;background:0 0;border:0;margin:0;padding:0;font-size:12px;font-weight:700}.chapter-name span{color:#8b908b;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-family:DM Mono,monospace;font-size:9px;display:block;overflow:hidden}.reorder{flex-direction:column;display:flex}.reorder button{color:#7f857f;background:0 0;border:0;height:18px;padding:0}.chapter-preview{border-top:1px solid var(--line);background:#fbfbf9;flex:1;padding:24px clamp(24px,6vw,74px);overflow:hidden}.chapter-preview>span{color:#939993;text-transform:uppercase;font-family:DM Mono,monospace;font-size:9px}.chapter-preview h3{letter-spacing:0;margin:15px 0 9px;font-family:Newsreader,serif;font-size:25px}.preview-content{color:#555a56;max-width:680px;font-family:Georgia,serif;font-size:13px;line-height:1.75}.preview-content p{margin:0 0 1em}.preview-content img{max-width:100%;height:auto;margin:18px auto;display:block}.preview-content h2,.preview-content h3{font-family:Newsreader,serif}.preview-status,.preview-error{font-size:11px}.preview-status{color:var(--muted)}.preview-error{color:#a74435}.empty-state{color:#a1a6a1;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:260px;display:flex}.empty-state strong{color:#666c67;margin-top:12px;font-size:12px}.empty-state span{margin-top:5px;font-size:10px}.cover-picker{cursor:pointer;background:#eef1ed;border:1px dashed #aeb6ae;place-items:center;height:180px;margin-bottom:19px;display:grid;position:relative;overflow:hidden}.metadata-save-note{color:var(--green);text-align:right;margin:-14px 0 14px;font-size:9px}.cover-picker:hover{border-color:var(--green)}.cover-picker img{object-fit:contain;background:#dfe3df;width:100%;height:100%}.cover-picker span{color:#788079;flex-direction:column;align-items:center;gap:7px;display:flex}.cover-picker strong{color:#49504a;font-size:11px}.cover-picker small{font-size:9px;font-weight:400}.cover-picker input{opacity:0;width:1px;height:1px;position:absolute}.form-grid{grid-template-columns:1fr 1fr;gap:0 10px;display:grid}.form-grid .wide{grid-column:1/-1}.bottom-export{margin-top:4px}.export-actions{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.mobile-tabs{display:none}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:900px){.topbar{grid-template-columns:1fr auto;height:auto;padding-top:10px}.status-line{grid-area:2/1/auto/-1;justify-self:stretch;padding:7px 0 10px}.export-top{min-height:32px}.current-user{display:none}.mobile-tabs{border-bottom:1px solid var(--line);background:#f7f8f6;grid-template-columns:repeat(3,1fr);display:grid}.mobile-tabs button{color:#747a75;background:0 0;border:0;border-bottom:2px solid #0000;justify-content:center;align-items:center;gap:6px;height:43px;font-size:10px;font-weight:700;display:flex}.mobile-tabs button.active{border-bottom-color:var(--green);color:var(--green)}.workspace{display:block}.panel{border:0;min-height:calc(100vh - 128px);display:none}.panel.mobile-active{display:block}.chapters-panel.mobile-active{display:flex}.chapter-list{max-height:48vh}}@media (max-width:480px){.topbar{padding:10px 12px}.export-top{width:34px;padding:0;font-size:0}.panel{padding:17px}.chapters-panel{padding:0}.chapter-preview{padding:20px}}
.auth-page{background:linear-gradient(135deg,#edf2ed,#f8f6ef);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{border:1px solid #d4d9d3;border-top:3px solid var(--amber);background:var(--white);border-radius:5px;width:min(100%,410px);padding:36px;box-shadow:0 18px 50px #1f24211f}.auth-brand{color:var(--green);justify-content:center;align-items:center;gap:10px;display:flex}.auth-brand strong{font-family:Newsreader,serif;font-size:25px}.auth-card h1{color:var(--ink);text-align:center;margin:24px 0 6px;font-size:22px}.auth-subtitle{color:var(--muted);text-align:center;margin:0 0 24px;font-size:12px}.auth-tabs{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;margin-bottom:24px;display:grid}.auth-tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:10px;font-size:11px;font-weight:700}.auth-tabs button.active{border-bottom-color:var(--green);color:var(--green)}.auth-input{position:relative}.auth-input svg{z-index:1;color:#838a84;position:absolute;top:16px;left:10px}.auth-input input{padding-left:34px}.password-help{color:var(--muted);margin:-7px 0 14px;font-size:10px;display:block}.auth-error{color:#9e3f31;background:#fff2ef;border:1px solid #efc4bc;margin:0 0 14px;padding:10px;font-size:11px}.auth-submit{width:100%;min-height:40px}@media (max-width:480px){.auth-page{padding:14px}.auth-card{padding:27px 22px}}
