:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f2ea;--surface:#fffdf8;--surface-soft:#f8f4eb;--surface-strong:#262019;--text:#262019;--text-soft:#5d5546;--muted:#7a7160;--border:#e5ddcb;--border-strong:#cfc5ac;--accent:#8a6134;--accent-deep:#6c4a24;--accent-soft:#f0e7d3;--primary:#2b251b;--primary-hover:#423a2a;--primary-text:#f7f3e9;--spine:#c9a86a;--danger:#a4423a;--danger-soft:#f6e9e4;--success:#33714f;--success-soft:#e8f0e6;--warning:#8f631c;--warning-soft:#f6eed9;--shadow-sm:0 1px 2px #3c30190d, 0 6px 18px #3c30190f;--shadow-md:0 10px 34px #3c30191f;--sans:"Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", system-ui, sans-serif;--manuscript-font:"Noto Serif KR", "Noto Serif CJK KR", "Nanum Myeongjo", "AppleMyungjo", "Batang", ui-serif, serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16130e;--surface:#1e1a13;--surface-soft:#242017;--surface-strong:#0e0b07;--text:#ece5d6;--text-soft:#c4bba7;--muted:#948a75;--border:#37301f;--border-strong:#4d4430;--accent:#c9a86a;--accent-deep:#dcbe82;--accent-soft:#322a1a;--primary:#c9a86a;--primary-hover:#d9bc7f;--primary-text:#211a0e;--spine:#c9a86a;--danger:#d98079;--danger-soft:#3a211d;--success:#85b995;--success-soft:#1e2f24;--warning:#d3a659;--warning-soft:#37290f;--shadow-sm:0 1px 2px #00000040, 0 6px 18px #0003;--shadow-md:0 12px 36px #00000052}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth;min-width:320px}body{background:var(--bg);color:var(--text);font-family:var(--sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}button,input,textarea{font:inherit}button,input,textarea,a{-webkit-tap-highlight-color:transparent}button{background:var(--primary);min-height:40px;color:var(--primary-text);cursor:pointer;border:1px solid #0000;border-radius:8px;padding:.55rem 1rem;font-weight:600;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}button:hover:not(:disabled){background:var(--primary-hover)}button:disabled{cursor:not-allowed;opacity:.5}input,textarea{border:1px solid var(--border);background:var(--surface);width:100%;min-width:0;color:var(--text);border-radius:8px;padding:.7rem .8rem;transition:border-color .15s,box-shadow .15s,background .15s}input::placeholder,textarea::placeholder{color:color-mix(in srgb, var(--muted) 75%, transparent)}input:focus,textarea:focus,button:focus-visible,a:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}input:disabled,textarea:disabled{color:var(--muted);background:var(--surface-soft)}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{z-index:30;border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0}.app-header-inner,.app-footer-inner{width:min(100% - 3rem,1080px);margin:0 auto}.app-header-inner{justify-content:space-between;align-items:center;gap:1rem;min-height:64px;display:flex}.brand{color:var(--text);align-items:center;gap:.7rem;text-decoration:none;display:inline-flex}.brand:focus-visible{border-radius:8px}.brand-mark{background:var(--surface-strong);border-radius:2px 6px 6px 2px;flex:none;place-items:center;width:26px;height:32px;display:grid;box-shadow:inset 2px 0 #ffffff24}.brand-mark span{background:var(--spine);border:0;width:2px;height:16px}.brand-copy{flex-direction:column;line-height:1.2;display:flex}.brand-copy strong{font-family:var(--manuscript-font);letter-spacing:.01em;font-size:1rem;font-weight:600}.brand-copy small{color:var(--muted);letter-spacing:.12em;margin-top:.1rem;font-size:.66rem;font-weight:500}.header-actions{align-items:center;gap:.6rem;display:flex}button.theme-toggle{border-color:var(--border-strong);background:var(--surface);width:38px;min-height:38px;color:var(--text-soft);padding:0;font-size:1rem;line-height:1}button.theme-toggle:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}.auth-menu{justify-content:flex-end;align-items:center;gap:.75rem;min-width:7rem;display:flex}.auth-menu-link{color:var(--accent-deep);white-space:nowrap;font-size:.82rem;font-weight:600}.auth-nickname{max-width:13rem;color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:500;overflow:hidden}.app-main{flex:1;width:min(100% - 3rem,1080px);margin:0 auto;padding:clamp(1.75rem,4vw,3.5rem) 0 5rem}.app-footer{border-top:1px solid var(--border);background:var(--bg)}.app-footer-inner{min-height:64px;color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;font-size:.75rem;display:flex}.footer-status{align-items:center;gap:.5rem;display:inline-flex}.footer-status i,.chapter-editor-heading i{background:var(--success);width:6px;height:6px;box-shadow:0 0 0 3px color-mix(in srgb, var(--success) 15%, transparent);border-radius:50%}.eyebrow{color:var(--accent);letter-spacing:.16em;margin:0 0 .5rem;font-size:.68rem;font-weight:600;line-height:1.3}.muted,.empty{color:var(--muted)}.state-panel{border:1px solid var(--border);background:var(--surface);max-width:560px;box-shadow:var(--shadow-sm);text-align:center;border-radius:12px;margin:7vh auto;padding:clamp(1.5rem,4vw,2.5rem)}.state-panel h1{font-family:var(--manuscript-font);margin:0 0 .65rem;font-size:clamp(1.3rem,3vw,1.7rem);font-weight:600}.state-panel p{color:var(--text-soft);margin:0 0 1.3rem}.auth-panel{border:1px solid var(--border);background:var(--surface);width:min(100%,560px);box-shadow:var(--shadow-sm);border-radius:12px;margin:2vh auto;padding:clamp(1.5rem,4vw,2.5rem)}.auth-panel h1{font-family:var(--manuscript-font);margin:0;font-size:clamp(1.5rem,4vw,2rem)}.auth-description{color:var(--text-soft);margin:.6rem 0 1.5rem}.auth-form{gap:.9rem;display:grid}.auth-form>label{gap:.35rem;font-size:.88rem;font-weight:600;display:grid}.auth-form>.auth-checkbox{align-items:flex-start;gap:.5rem;font-weight:400;display:flex}.auth-checkbox input{width:auto;accent-color:var(--accent);margin-top:.35rem}.auth-form button{width:100%}.auth-switch{color:var(--text-soft);margin:1.3rem 0 0;font-size:.88rem}.auth-switch a{color:var(--accent-deep);font-weight:600}.auth-notice,.auth-error{border-radius:8px;padding:.75rem .9rem;font-size:.88rem}.auth-notice{background:var(--success-soft);color:var(--success)}.auth-error{background:var(--danger-soft);color:var(--danger)}.auth-actions{flex-wrap:wrap;gap:.7rem;display:flex}.auth-primary-link{background:var(--primary);color:var(--primary-text);border-radius:8px;align-items:center;padding:.55rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}.button-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:.55rem;display:flex}.link-button{min-height:auto;color:var(--accent);font:inherit;background:0 0;border:0;padding:0}.modal-backdrop{z-index:100;background:#14110c8c;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.export-dialog{border:1px solid var(--border-strong);background:var(--surface);border-radius:12px;width:min(460px,100%);max-height:calc(100vh - 2rem);padding:1.4rem 1.4rem 1.2rem;overflow-y:auto;box-shadow:0 20px 60px #00000040}.export-dialog h2{font-family:var(--manuscript-font);margin:0 0 1.1rem;font-size:1.35rem}.export-dialog fieldset{border:1px solid var(--border);border-radius:8px;min-width:0;margin:0 0 .85rem;padding:.55rem .9rem .8rem}.export-dialog legend{color:var(--text-soft);padding:0 .35rem;font-size:.8rem;font-weight:600}.export-dialog label{cursor:pointer;align-items:center;gap:.45rem;margin:.2rem 1.2rem .2rem 0;display:inline-flex}.export-dialog input[type=radio],.export-dialog input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer;flex:none;margin:0;padding:0}.export-dialog input[type=radio]:focus,.export-dialog input[type=checkbox]:focus{box-shadow:none}.export-dialog input[type=radio]:focus-visible,.export-dialog input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.export-chapters{border-top:1px solid var(--border);margin-top:.7rem;padding-top:.8rem}.export-dialog .export-search{color:var(--text-soft);cursor:auto;gap:.3rem;margin:0 0 .8rem;font-size:.76rem;display:grid}.export-dialog .export-search input{padding:.5rem .7rem;font-size:.9rem}.export-range{color:var(--text-soft);gap:.3rem;margin-bottom:.9rem;font-size:.76rem;display:grid}.export-range-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:.5rem;display:grid}.export-dialog .export-range-fields label{cursor:auto;gap:.25rem;margin:0;display:grid}.export-range-fields input{height:38px;padding:0 .6rem;font-size:.9rem}.export-range-fields button{white-space:nowrap;height:38px;min-height:38px;padding:0 .75rem;font-size:.8rem}.export-chapter-actions{color:var(--text-soft);flex-wrap:wrap;align-items:center;gap:.35rem .75rem;font-size:.8rem;display:flex}.export-chapter-actions>span{margin-right:auto}.export-chapter-actions .text-button{color:var(--accent-deep);font-size:.8rem}.export-chapter-list{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;max-height:220px;margin-top:.5rem;padding:.25rem;overflow-y:auto}.export-dialog .export-chapter-option{border-radius:6px;align-items:center;gap:.6rem;margin:0;padding:.4rem .5rem;font-size:.9rem;display:flex}.export-dialog .export-chapter-option:hover{background:var(--accent-soft)}.export-chapter-option span{overflow-wrap:anywhere;min-width:0}.export-no-results{color:var(--text-soft);margin:0;padding:.8rem .5rem;font-size:.76rem}.export-dialog .export-documents{margin:.2rem 0 .3rem .2rem;display:flex}.export-source{color:var(--text-soft);margin:.3rem 0 1rem .2rem;font-size:.82rem}.export-source strong{color:var(--text)}.export-dialog .button-row{border-top:1px solid var(--border);justify-content:flex-end;padding-top:1rem}.button-link{background:var(--primary);min-height:40px;color:var(--primary-text);border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:.55rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}button.secondary,.button-link.secondary{border-color:var(--border-strong);background:var(--surface);color:var(--text)}button.secondary:hover:not(:disabled),.button-link.secondary:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}button.danger{border-color:color-mix(in srgb, var(--danger) 40%, var(--border));color:var(--danger);background:0 0}button.danger:hover:not(:disabled){border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}button.small{border-radius:6px;min-height:32px;padding:.25rem .5rem}.notice{border:1px solid var(--border);background:var(--surface);border-left-width:3px;border-radius:8px;margin:0 0 1rem;padding:.85rem 1rem}.notice p{margin:0 0 .65rem}.notice p:last-child{margin-bottom:0}.notice.success{border-left-color:var(--success);background:var(--success-soft)}.notice.warning{border-left-color:var(--warning);background:var(--warning-soft)}.notice.error{border-left-color:var(--danger);background:var(--danger-soft)}.library-page{gap:clamp(2rem,4.5vw,3.5rem);display:grid}.library-hero{border-bottom:3px double var(--border-strong);justify-content:space-between;align-items:flex-end;gap:2rem;padding:clamp(.75rem,3vw,2rem) 0 clamp(1.5rem,3vw,2.25rem);display:flex}.library-hero-copy{min-width:0}.library-hero h1{font-family:var(--manuscript-font);letter-spacing:-.015em;margin:0;font-size:clamp(2rem,5vw,3.1rem);font-weight:700;line-height:1.2}.library-intro{max-width:32rem;color:var(--text-soft);margin:.9rem 0 0;font-size:clamp(.9rem,1.5vw,1rem)}.library-summary{flex:none;display:flex}.library-summary span{text-align:center;flex-direction:column;gap:.3rem;min-width:6.5rem;display:flex}.library-summary span+span{border-left:1px solid var(--border);margin-left:1.75rem;padding-left:1.75rem}.library-summary strong{font-family:var(--manuscript-font);font-size:1.9rem;font-weight:600;line-height:1}.library-summary small{color:var(--muted);letter-spacing:.08em;font-size:.72rem}.create-page{gap:1.25rem;display:grid}.create-page-heading{border-bottom:3px double var(--border-strong);padding-bottom:1.4rem}.create-page-heading h1{font-family:var(--manuscript-font);letter-spacing:-.015em;margin:0;font-size:clamp(1.7rem,4vw,2.4rem);font-weight:700;line-height:1.25}.create-page-intro{max-width:34rem;color:var(--text-soft);margin:.75rem 0 0;font-size:.92rem}.create-page-grid{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:clamp(1.25rem,3vw,2.25rem);display:grid}.create-cover-panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:12px;gap:.7rem;padding:1rem;display:grid}.create-cover-preview{aspect-ratio:2/3;border:1px solid var(--border-strong);background:var(--surface-soft);border-radius:4px 10px 10px 4px;width:100%;position:relative;overflow:hidden;box-shadow:6px 7px 16px #3c301924}.create-cover-preview:after{content:"";pointer-events:none;background:#0000001f;width:5px;position:absolute;inset:0 auto 0 0}.create-cover-preview img{object-fit:cover;width:100%;height:100%;display:block}.create-cover-preview>span{color:#f0e5cd;outline-offset:-8px;background:linear-gradient(160deg,#3a2f1e,#241b10);outline:1px solid #d8be8a66;flex-direction:column;justify-content:center;align-items:center;gap:.8rem;display:flex;position:absolute;inset:0}.create-cover-preview i{color:var(--spine);font-family:var(--manuscript-font);font-size:2.4rem;font-style:normal;font-weight:600;line-height:1}.create-cover-preview b{color:#f0e5cd8c;letter-spacing:.16em;font-size:.62rem;font-weight:500}.create-detail-fields{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:12px;gap:1rem;padding:clamp(1.25rem,3vw,1.75rem);display:grid}.create-detail-fields label{min-width:0;color:var(--text-soft);gap:.45rem;font-size:.8rem;font-weight:600;display:grid}.create-detail-fields label small{color:var(--muted);margin-left:.25rem;font-weight:400}.create-detail-fields textarea{resize:vertical}.tag-preview{flex-wrap:wrap;gap:.35rem;margin-top:-.35rem;display:flex}.create-page-actions{flex-wrap:wrap;align-items:center;gap:.55rem;padding-top:.35rem;display:flex}.create-page-actions button[type=submit]{min-width:9rem}.library-collection{gap:1.4rem;display:grid}.library-section-heading{border-bottom:1px solid var(--border-strong);justify-content:space-between;align-items:end;gap:1rem;padding-bottom:.9rem;display:flex}.library-section-heading .eyebrow{margin-bottom:.25rem}.library-section-heading h2{font-family:var(--manuscript-font);letter-spacing:-.01em;margin:0;font-size:clamp(1.45rem,3vw,1.9rem);font-weight:600}.library-section-heading>span{color:var(--muted);letter-spacing:.12em;font-size:.7rem}.library-heading-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.trash-heading{justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.trash-list{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.trash-item{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.trash-item-copy{align-items:center;gap:.75rem;min-width:0;display:flex}.trash-item-type{border:1px solid var(--border-strong);background:var(--surface-soft);color:var(--text-soft);border-radius:4px;flex:none;padding:.2rem .5rem;font-size:.66rem;font-weight:600}.trash-item-copy strong{overflow-wrap:anywhere;font-weight:600;display:block;overflow:hidden}.trash-item-copy small{color:var(--muted);font-size:.72rem}.trash-item-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.75rem;margin-left:auto;font-size:.72rem;display:flex}.trash-item-actions{gap:.4rem;display:flex}@media (width<=600px){.trash-heading{flex-direction:column;align-items:stretch}.trash-heading>button{width:fit-content}.trash-item-meta{justify-content:space-between;width:100%;margin-left:0}}.novel-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem;margin:0;padding:0;list-style:none;display:grid}.novel-card{border:1px solid var(--border);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);border-radius:12px;transition:border-color .18s,box-shadow .18s;position:relative;overflow:hidden}.novel-card:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));box-shadow:var(--shadow-md)}.novel-link{min-width:0;color:inherit;padding:1.1rem 1.15rem 1rem;text-decoration:none;display:block}.novel-link:focus-visible{border-radius:10px}.novel-card-topline,.novel-card-footer{color:var(--muted);letter-spacing:.1em;justify-content:space-between;align-items:center;gap:.75rem;font-size:.66rem;display:flex}.novel-card-main{grid-template-columns:112px minmax(0,1fr);align-items:start;gap:1.1rem;min-height:176px;margin:.85rem 0 1rem;display:grid}.novel-cover{aspect-ratio:2/3;border:1px solid var(--border-strong);background:var(--surface-soft);border-radius:3px 8px 8px 3px;width:112px;margin:0;position:relative;overflow:hidden;box-shadow:5px 6px 14px #3c301924}.novel-cover:after{content:"";pointer-events:none;background:#0000001f;width:4px;position:absolute;inset:0 auto 0 0}.novel-cover img{object-fit:cover;width:100%;height:100%;display:block}.novel-cover-placeholder{color:#f0e5cd;outline-offset:-7px;background:linear-gradient(160deg,#3a2f1e,#241b10);outline:1px solid #d8be8a66;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1rem .75rem;display:flex;position:absolute;inset:0}.novel-cover-placeholder i{color:var(--spine);font-family:var(--manuscript-font);font-size:1.6rem;font-style:normal;font-weight:600;line-height:1}.novel-cover-placeholder b{color:#f0e5cd8c;letter-spacing:.14em;font-size:.66rem;font-weight:500}.novel-cover figcaption{z-index:2;border:1px solid var(--border-strong);background:var(--surface);color:var(--accent-deep);border-radius:4px;padding:.16rem .4rem;font-size:.6rem;font-weight:600;position:absolute;bottom:.45rem;right:.4rem}.novel-card-copy{min-width:0;padding-top:.15rem}.novel-tags{flex-wrap:wrap;gap:.35rem;margin-bottom:.65rem;display:flex}.novel-tags span,.tag-preview span{background:var(--accent-soft);color:var(--accent-deep);letter-spacing:.03em;border-radius:4px;padding:.2rem .45rem;font-size:.62rem;font-weight:600}.tag-preview span{font-size:.7rem}.novel-card-copy h2{overflow-wrap:anywhere;font-family:var(--manuscript-font);letter-spacing:-.01em;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 .5rem;font-size:clamp(1.05rem,2.2vw,1.25rem);font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.novel-card-subtitle{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:-.2rem 0 .5rem;font-size:.76rem;overflow:hidden}.synopsis{overflow-wrap:anywhere;color:var(--text-soft);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.82rem;line-height:1.65;display:-webkit-box;overflow:hidden}.novel-card-footer{border-top:1px solid var(--border);letter-spacing:0;min-height:38px;padding-top:.85rem;font-size:.74rem}.novel-card-open{color:var(--accent);font-weight:600}.novel-card-open b{margin-left:.2rem}.novel-delete{z-index:2;opacity:0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);min-height:27px;padding:.18rem .45rem;font-size:.68rem;position:absolute;top:.68rem;right:.75rem;background:color-mix(in srgb, var(--surface) 88%, transparent)!important;border-color:#0000!important}.novel-card:hover .novel-delete,.novel-delete:focus-visible{opacity:1}.empty-state{border:1px dashed var(--border-strong);background:var(--surface-soft);text-align:left;border-radius:12px;justify-content:center;align-items:center;gap:1.5rem;min-height:220px;padding:2rem;display:flex}.empty-state h3{font-family:var(--manuscript-font);margin:0 0 .35rem;font-size:1.2rem;font-weight:600}.empty-state p{color:var(--muted);margin:0}.empty-state .empty-state-action{margin-top:.9rem}.empty-book{perspective:140px;width:78px;height:60px;display:flex}.empty-book span{border:1px solid var(--accent);background:var(--accent-soft);width:50%}.empty-book span:first-child{transform-origin:100%;border-radius:6px 0 0 6px;transform:rotateY(-18deg)}.empty-book span:last-child{transform-origin:0;border-radius:0 6px 6px 0;transform:rotateY(18deg)}.novel-workspace{gap:1.5rem;display:grid}.novel-workspace-header{border-bottom:3px double var(--border-strong);gap:.75rem;padding-bottom:1.2rem;display:grid}.novel-workspace-heading,.chapter-board-heading{justify-content:space-between;align-items:end;gap:1rem;display:flex}.novel-workspace-heading .eyebrow,.chapter-board-heading .eyebrow{margin:0 0 .3rem}.novel-workspace-links,.chapter-board-actions{flex-wrap:wrap;align-items:center;gap:.7rem;display:flex}.novel-workspace-links{padding-bottom:.2rem}.novel-workspace .novel-chapter-count{color:var(--text-soft);margin:.45rem 0 0;font-size:.8rem}.chapter-board-wrap{gap:.85rem;display:grid}.chapter-board{border:1px solid var(--border);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);border-radius:12px;padding:clamp(1rem,3vw,2rem)}.chapter-board-heading h2{font-family:var(--manuscript-font);margin:0;font-size:clamp(1.3rem,2.5vw,1.7rem)}.chapter-board-heading p:last-child{color:var(--text-soft);margin:.25rem 0 0;font-size:.82rem}.chapter-board-search{max-width:380px;color:var(--text-soft);gap:.35rem;margin:1.5rem 0 .85rem;font-size:.78rem;font-weight:600;display:grid}.chapter-board-list{border-top:1px solid var(--border);margin:.7rem 0 0;padding:0;list-style:none}.chapter-board-row{border-bottom:1px solid var(--border)}.chapter-board-row.dragging{opacity:.45}.chapter-board-row.drop-before{box-shadow:inset 0 3px var(--accent)}.chapter-board-row.drop-after{box-shadow:inset 0 -3px var(--accent)}.chapter-row-normal{align-items:center;gap:.5rem;display:flex}button.chapter-board-open{min-width:0;min-height:82px;color:var(--text);text-align:left;background:0 0;border:0;flex:1;grid-template-columns:3rem minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:.85rem .4rem;display:grid}button.chapter-board-open:hover:not(:disabled){background:var(--accent-soft)}.chapter-row-number{color:var(--muted);text-align:center;font-size:.78rem;font-weight:700}.chapter-row-copy{gap:.15rem;min-width:0;display:grid}.chapter-row-copy strong,.chapter-row-copy>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chapter-row-copy strong{font-size:.95rem}.chapter-row-copy>span,.chapter-row-date{color:var(--text-soft);font-size:.76rem;font-weight:400}.chapter-row-date{white-space:nowrap}.chapter-row-delete{flex:none}.chapter-board-empty{color:var(--text-soft);text-align:center;padding:3rem 1rem}.chapter-search-documents{margin-top:1.5rem}.chapter-search-documents h3{align-items:baseline;gap:.5rem;margin:0;font-size:.95rem;display:flex}.chapter-search-documents h3 span,.chapter-search-status{color:var(--text-soft);font-size:.8rem}.chapter-row-copy mark{background:var(--accent-soft);color:inherit;border-radius:2px}.content-history{padding:1.5rem}.content-history-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.content-history-heading h2{margin:0}.content-history-actions{flex-wrap:wrap;gap:.5rem;display:flex}.content-history-list{gap:.5rem;max-height:18rem;padding:0;list-style:none;display:grid;overflow:auto}.content-history-list button{text-align:left;justify-content:space-between;gap:1rem;width:100%;display:flex}.content-history-list button.active{border-color:var(--accent)}.content-history-list span{color:var(--text-soft);font-size:.8rem}.content-history-preview pre{border:1px solid var(--border);white-space:pre-wrap;overflow-wrap:anywhere;max-height:28rem;font-family:var(--manuscript-font);border-radius:.5rem;padding:1rem;overflow:auto}.content-history-compare{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}@media (width<=700px){.content-history-heading{flex-direction:column;align-items:flex-start}.content-history-compare{grid-template-columns:1fr}}.chapter-reorder-toolbar{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;margin-top:1.5rem;padding:.85rem;display:flex}.chapter-reorder-toolbar p{color:var(--text-soft);margin:0;font-size:.78rem}.chapter-board-list.reordering .chapter-board-row{cursor:grab}.chapter-board-list.reordering .chapter-board-row:active{cursor:grabbing}.chapter-row-reorder{grid-template-columns:2rem 2.5rem minmax(0,1fr) auto;align-items:center;gap:.35rem;min-height:60px;padding:.5rem;display:grid}.chapter-row-reorder strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.chapter-drag-handle{color:var(--muted);text-align:center;-webkit-user-select:none;user-select:none;font-size:1.2rem}.chapter-editor-nav{justify-content:space-between;align-items:center;gap:.7rem;display:flex}.editor-layout{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:clamp(1.25rem,2.5vw,2.25rem);display:grid}.chapter-panel,.editor-panel{min-width:0}.chapter-panel{position:sticky;top:84px}.chapter-panel-content{scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin;flex-direction:column;gap:.9rem;max-height:calc(100dvh - 110px);padding-right:.25rem;display:flex;overflow-y:auto}.mobile-panel-toggle{display:none}.back-link{width:fit-content;color:var(--muted);font-size:.8rem;font-weight:500;text-decoration:none}.back-link:hover{color:var(--accent)}.novel-heading{border-bottom:3px double var(--border-strong);padding:.3rem 0 .85rem}.novel-heading .eyebrow{margin-bottom:.35rem}.novel-title{overflow-wrap:anywhere;font-family:var(--manuscript-font);letter-spacing:-.01em;margin:0;font-size:1.35rem;font-weight:600;line-height:1.4}.novel-subtitle{color:var(--text-soft);margin:.3rem 0 0;font-size:.8rem}.novel-chapter-count{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.novel-heading-links{gap:.6rem;display:inline-flex}.novel-info-link{color:var(--accent);font-weight:600;text-decoration:none}.novel-info-link:hover{text-underline-offset:2px;text-decoration:underline}.novel-heading>p:last-child{color:var(--muted);margin:.45rem 0 0;font-size:.72rem}.cover-file-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:-.2rem 0 0;font-size:.68rem;overflow:hidden}.cover-secondary-actions{grid-template-columns:1fr 1fr;gap:.35rem;display:grid}.panel-section-heading{color:var(--text);letter-spacing:.05em;justify-content:space-between;align-items:center;gap:.5rem;font-size:.72rem;font-weight:700;display:flex}.panel-section-heading span:last-child{color:var(--accent);font-size:.62rem;font-weight:600}.cover-upload-button{background:var(--primary);min-height:34px;color:var(--primary-text);cursor:pointer;text-align:center;border-radius:6px;grid-column:1/-1;justify-content:center;align-items:center;padding:.4rem .55rem;font-size:.7rem;font-weight:600;display:inline-flex}.cover-upload-button:hover{background:var(--primary-hover)}.cover-upload-button:focus-within{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent)}.cover-upload-button input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.cover-upload-button:has(input:disabled){cursor:not-allowed;opacity:.5}button.cover-action-button{min-height:31px;padding:.3rem .45rem;font-size:.65rem}button.cover-remove-button{min-height:31px;color:var(--danger);font-size:.65rem}.cover-help{border-top:1px solid var(--border);color:var(--muted);text-align:center;grid-column:1/-1;margin:0;padding-top:.6rem;font-size:.62rem}.cover-history{border-top:1px solid var(--border);gap:.5rem;padding-top:.5rem;display:grid}.cover-history>strong{font-size:.72rem}.cover-history>span{color:var(--muted);font-size:.65rem}.cover-history-item{align-items:center;gap:.35rem;min-width:0;display:flex}.cover-history-item img{object-fit:cover;border-radius:3px;flex:none;width:32px;height:44px}.cover-history-item>div{flex:1;gap:.12rem;min-width:0;display:grid}.cover-history-item span{text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;overflow:hidden}.cover-history-item small{color:var(--muted);font-size:.55rem}.cover-history-item button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:4px;padding:.25rem .35rem;font-size:.58rem}.cover-history-item button:disabled{opacity:.5;cursor:default}.meta-form-message{margin:0;font-size:.7rem}.meta-form-message.error{color:var(--danger)}.meta-form-message.success{color:var(--success)}.meta-conflict{border:1px solid color-mix(in srgb, var(--danger) 50%, var(--border));background:var(--danger-soft);border-radius:8px;gap:.45rem;padding:.65rem;font-size:.7rem;display:grid}.meta-conflict p{white-space:pre-wrap;overflow-wrap:anywhere;max-height:6rem;margin:0;overflow:auto}.add-chapter-button{justify-content:space-between;align-items:center;width:100%;display:flex}.chapter-section-heading{border-bottom:1px solid var(--border);margin-top:.15rem;padding-bottom:.55rem}.doc-template-menu{grid-template-columns:1fr 1fr;gap:.35rem;display:grid}button.doc-template-button{min-height:34px;padding:.3rem .4rem;font-size:.72rem}.doc-content{min-height:58dvh;line-height:1.85}.doc-actions{flex-wrap:wrap;align-items:center;gap:.55rem;padding-top:.2rem;display:flex}.doc-updated-at{color:var(--muted);font-size:.72rem}.doc-sections{gap:.9rem;display:grid}.doc-section{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:10px;gap:.5rem;padding:.85rem;display:grid}.doc-section-heading{align-items:center;gap:.5rem;display:flex}.doc-section-heading>span{color:var(--accent);font-size:.8rem}.doc-section-heading input{border:0;border-bottom:1px solid var(--border);background:0 0;border-radius:0;padding:.3rem 0;font-size:.9rem;font-weight:600}.doc-section-heading input:focus{border-bottom-color:var(--accent);box-shadow:none}button.doc-section-remove{color:var(--muted);flex:none;font-size:.72rem}button.doc-section-remove:hover:not(:disabled){color:var(--danger)}.doc-section textarea{resize:vertical;min-height:5.5rem;font-family:var(--manuscript-font);font-size:.92rem;line-height:1.8}button.add-section-button{width:fit-content}.doc-entry-groups{gap:1.1rem;display:grid}.doc-entry-preface{color:var(--text-soft);white-space:pre-wrap;margin:0;font-size:.85rem}.doc-entry-group{gap:.5rem;display:grid}.doc-entry-group .panel-section-heading{border-bottom:1px solid var(--border);padding-bottom:.45rem}.doc-entry-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}button.doc-entry-open{border-color:var(--border);background:var(--surface);width:100%;min-height:48px;color:var(--text);text-align:left;justify-content:space-between;align-items:center;gap:.6rem;display:flex}button.doc-entry-open:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}button.doc-entry-open strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}button.doc-entry-open span{color:var(--accent)}.doc-entry-editor{gap:.9rem;display:grid}.doc-entry-back{width:fit-content;color:var(--muted);font-size:.8rem}.doc-entry-meta{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:.75rem;display:grid}.doc-entry-meta label{color:var(--text-soft);gap:.4rem;font-size:.78rem;font-weight:600;display:grid}@media (width<=600px){.doc-entry-list,.doc-entry-meta{grid-template-columns:1fr}}.chapter-list{flex-direction:column;gap:.35rem;margin:0;padding:0 0 .5rem;list-style:none;display:flex}.chapter-list li{align-items:center;gap:.3rem;min-width:0;display:flex}button.chapter{min-width:0;color:var(--text-soft);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border-color:#0000;flex:1;font-size:.8rem;font-weight:500;position:relative;overflow:hidden}button.chapter:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-deep)}button.chapter.active{background:var(--accent-soft);color:var(--accent-deep);box-shadow:inset 2px 0 var(--accent);font-weight:600}.chapter-order-controls{gap:.2rem;display:flex}button.chapter-order-button{min-width:28px;min-height:30px;color:var(--muted);background:0 0;border-color:#0000;padding:.2rem;font-size:.72rem}.chapter-list button.danger.small{border-color:#0000;min-width:28px;min-height:30px}.editor-panel{flex-direction:column;gap:.85rem;display:flex}.chapter-editor-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding-bottom:.75rem;display:flex}.chapter-editor-heading .eyebrow{margin:0}.chapter-editor-heading>span{color:var(--muted);letter-spacing:.1em;align-items:center;gap:.5rem;font-size:.66rem;display:inline-flex}.chapter-title{border:0;border-bottom:1px solid var(--border-strong);font-family:var(--manuscript-font);letter-spacing:-.01em;background:0 0;border-radius:0;padding:.6rem 0 .8rem;font-size:clamp(1.4rem,3vw,1.9rem);font-weight:600}.chapter-title:focus{border-bottom-color:var(--accent);box-shadow:none}.manuscript-toolbar{border:1px solid var(--border);background:var(--surface);border-radius:10px;overflow:hidden}.manuscript-toolbar-row{scrollbar-width:thin;align-items:center;gap:.35rem;padding:.5rem;display:flex;overflow-x:auto}.manuscript-toolbar-label{color:var(--muted);letter-spacing:.06em;flex:none;margin-inline:.2rem .35rem;font-size:.7rem;font-weight:600}button.manuscript-symbol,button.smart-quote-toggle{border-color:var(--border);background:var(--surface-soft);min-width:2.5rem;min-height:35px;color:var(--text);font-family:var(--manuscript-font);white-space:nowrap;flex:none;padding:.3rem .58rem;font-size:.85rem;font-weight:500}button.manuscript-symbol:hover:not(:disabled),button.smart-quote-toggle:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}button.smart-quote-toggle{font-family:var(--sans);margin-left:auto;font-size:.7rem}button.header-symbol-toggle{white-space:nowrap;margin-left:.35rem;font-size:.75rem}button.header-symbol-toggle[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}.header-symbol-row{border-top:1px solid var(--border);background:var(--surface-soft)}button.smart-quote-toggle[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep)}.manuscript-toolbar-help{border-top:1px solid var(--border);background:var(--surface-soft);color:var(--muted);margin:0;padding:.48rem .75rem;font-size:.68rem}.chapter-content{resize:vertical;width:100%;min-height:63dvh;caret-color:var(--accent);font-family:var(--manuscript-font);letter-spacing:.01em;tab-size:4;border-radius:10px;padding:clamp(1.5rem,4vw,3rem);font-size:clamp(1rem,1.5vw,1.08rem);line-height:2.05}.chapter-content:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent)}.editor-details{border-top:1px solid var(--border);gap:.65rem;padding:.8rem .2rem 0;display:grid}.manuscript-stats{color:var(--muted);flex-wrap:wrap;gap:.3rem 1rem;font-size:.72rem;display:flex}.manuscript-stats strong{color:var(--text);font-weight:600}.editor-status{color:var(--muted);justify-content:space-between;gap:1rem;font-size:.72rem;display:flex}.save-error{color:var(--danger);text-align:right}button.text-button{min-height:0;color:inherit;text-underline-offset:2px;background:0 0;border:0;border-radius:0;padding:0;font-weight:600;text-decoration:underline}button.text-button:hover:not(:disabled){color:var(--accent);background:0 0}@media (width<=1020px){.novel-list{grid-template-columns:1fr}.novel-card-main{min-height:165px}.create-page-grid{grid-template-columns:200px minmax(0,1fr)}}@media (width<=800px){.app-main,.app-header-inner,.app-footer-inner{width:min(100% - 2rem,1080px)}.library-hero{flex-direction:column;align-items:flex-start;gap:1.5rem}.library-summary{width:100%}.library-summary span{text-align:left;flex:1}.create-page-grid{grid-template-columns:1fr}.create-cover-preview{width:min(200px,62%)}.editor-layout{grid-template-columns:1fr;gap:.8rem}.chapter-panel{z-index:20;background:color-mix(in srgb, var(--bg) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding-block:.4rem;position:sticky;top:65px}.mobile-panel-toggle{border-color:var(--border);background:var(--surface);width:100%;min-height:48px;color:var(--text);box-shadow:var(--shadow-sm);text-align:left;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.65rem .8rem;display:grid}.mobile-panel-toggle:hover:not(:disabled){background:var(--surface)}.mobile-panel-label{color:var(--accent);white-space:nowrap;font-size:.74rem;font-weight:600}.mobile-panel-current{min-width:0;color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.mobile-panel-chevron{transition:transform .16s}.chapter-panel.mobile-open .mobile-panel-chevron{transform:rotate(180deg)}.chapter-panel-content{display:none}.chapter-panel.mobile-open .chapter-panel-content{overscroll-behavior:contain;border:1px solid var(--border);background:var(--surface);max-height:calc(100dvh - 132px);box-shadow:var(--shadow-md);border-radius:10px;margin-top:.5rem;padding:1rem;display:flex;overflow-y:auto}.editor-panel{scroll-margin-top:130px}.chapter-list button,.back-link{min-height:44px}.back-link{align-items:center;display:inline-flex}button.chapter-order-button,.chapter-list button.danger.small{min-width:44px}}@media (width<=600px){.app-header-inner,.app-footer-inner,.app-main{width:min(100% - 1.25rem,1080px)}.app-header-inner{flex-wrap:wrap;min-height:56px;padding-block:.6rem}.header-actions{flex:1 0 auto;justify-content:flex-end}.brand-mark{width:23px;height:28px}.brand-copy strong{font-size:.9rem}.brand-copy small,.auth-nickname{display:none}.auth-menu{min-width:auto}.auth-menu button{min-height:40px;padding-inline:.7rem;font-size:.78rem}.app-main{padding-top:1.35rem}.app-footer-inner{flex-direction:column;justify-content:center;align-items:flex-start;gap:.3rem;padding-block:1rem}.library-page{gap:1.75rem}.library-hero{gap:1.25rem;padding-top:.25rem}.library-hero h1{font-size:clamp(1.7rem,8vw,2.3rem)}.library-summary span+span{margin-left:1.25rem;padding-left:1.25rem}.create-page-actions button[type=submit]{flex:1;min-height:46px}.library-section-heading{flex-direction:column;align-items:flex-start;gap:.35rem}.novel-link{padding:1rem}.novel-card-topline span:first-child{padding-right:4.3rem}.novel-card-main{grid-template-columns:96px minmax(0,1fr);gap:.9rem;min-height:146px}.novel-cover{width:96px}.novel-card-copy h2{font-size:1.05rem}.synopsis{-webkit-line-clamp:3;font-size:.78rem}.novel-delete{opacity:1}.empty-state{text-align:center;flex-direction:column}.chapter-panel{top:57px}.manuscript-toolbar-row{padding:.4rem}.manuscript-toolbar-label,.manuscript-toolbar-help{display:none}button.manuscript-symbol,button.smart-quote-toggle{min-width:44px;min-height:44px}button.smart-quote-toggle{margin-left:0}.chapter-content{min-height:58dvh;padding:1.15rem;font-size:1rem;line-height:1.95}.editor-status{flex-direction:column;align-items:flex-start}.save-error{text-align:left}}@media (width<=390px){.novel-card-main{grid-template-columns:86px minmax(0,1fr)}.novel-cover{width:86px}.novel-tags span:nth-child(n+3){display:none}.novel-card-footer{flex-direction:column;align-items:flex-start}}@media (width<=800px){.novel-workspace-heading,.chapter-board-heading{flex-direction:column;align-items:flex-start}.novel-workspace-links{width:100%}}@media (width<=600px){.chapter-board-actions{width:100%}.chapter-board-actions button{flex:1}button.chapter-board-open{grid-template-columns:2rem minmax(0,1fr);gap:.4rem;min-height:76px;padding:.7rem .2rem}.chapter-row-date{display:none}.chapter-row-copy>span{font-size:.7rem}.chapter-row-reorder{grid-template-columns:1.4rem 2rem minmax(0,1fr) auto;gap:.15rem;padding:.4rem .1rem}.chapter-row-reorder strong{font-size:.78rem}.chapter-row-reorder button.chapter-order-button{min-width:36px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
