/* Novel Studio — monochrome editorial interface */
:root{--ns-black:#111;--ns-ink:#202020;--ns-mid:#747474;--ns-line:#dedede;--ns-paper:#f7f7f5;--ns-white:#fff}
#app-write-novel,#app-novel-detail,#app-novel-reader{background:var(--ns-paper)!important;color:var(--ns-ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Noto Sans SC",sans-serif}
#app-write-novel>.novel-studio-head,#app-novel-detail>.novel-studio-head,#nr-top-bar{height:72px!important;padding:16px 18px 12px!important;background:rgba(247,247,245,.96)!important;border:0!important;border-bottom:1px solid var(--ns-line)!important}
.ns-head-copy{min-width:0;flex:1}.ns-eyebrow{font-size:9px;letter-spacing:.22em;color:#999;font-weight:700;text-transform:uppercase}.ns-headline{font-family:"Songti SC","Noto Serif SC",serif;font-size:23px;line-height:1.1;letter-spacing:-.03em;color:#111;margin-top:3px;font-weight:700}.ns-icon-btn{width:38px;height:38px;border:1px solid #d4d4d4;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#171717;transition:.16s}.ns-icon-btn:active{transform:scale(.94);background:#eaeae7}.ns-primary{border:0;background:#111;color:#fff;border-radius:999px;padding:10px 15px;font-size:12px;font-weight:650;letter-spacing:.02em}.ns-secondary{border:1px solid #d4d4d4;background:#fff;color:#222;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:600}
#novel-list{padding:18px 16px 100px}.ns-library-tools{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:22px}.ns-import-tile{background:#fff;border:1px solid #d9d9d7;border-radius:16px;padding:16px;text-align:left;min-height:92px;box-shadow:0 1px 0 rgba(0,0,0,.02)}.ns-import-tile strong{display:block;font-size:13px;color:#171717}.ns-import-tile span{display:block;font-size:10px;color:#999;margin-top:6px;line-height:1.45}.ns-section-label{font-size:10px;letter-spacing:.16em;color:#8a8a8a;margin:0 2px 9px;font-weight:700}.ns-book-card{position:relative;background:#fff;border:1px solid #dcdcd9;border-radius:17px;padding:18px 17px 16px;margin-bottom:10px;overflow:hidden}.ns-book-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#1a1a1a}.ns-book-top{display:flex;gap:12px;align-items:flex-start}.ns-book-index{font-family:Georgia,serif;font-size:28px;color:#d2d2d0;line-height:1}.ns-book-title{font-family:"Songti SC","Noto Serif SC",serif;font-size:18px;color:#171717;line-height:1.25;font-weight:700}.ns-book-meta{font-size:10px;color:#999;margin-top:6px;letter-spacing:.04em}.ns-book-actions{margin-top:15px;padding-top:12px;border-top:1px solid #ededeb;display:flex;justify-content:space-between;align-items:center}.ns-book-read{font-size:11px;font-weight:700;letter-spacing:.05em;color:#222}.ns-book-delete{font-size:10px;color:#aaa;padding:5px}
#nd-chapters{padding:16px;background:var(--ns-paper)!important;border:0!important}.ns-chapter-card{background:#fff;border:1px solid #dcdcd9;border-radius:17px;margin-bottom:12px;overflow:hidden}.ns-chapter-head{padding:16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ececea}.ns-chapter-name{font-family:"Songti SC","Noto Serif SC",serif;font-size:16px;font-weight:700}.ns-chapter-no{font-size:9px;letter-spacing:.14em;color:#aaa;margin-bottom:3px}.ns-chapter-actions button{font-size:10px;color:#777;margin-left:12px}.ns-section-row{padding:14px 16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f0f0ee}.ns-section-row:last-child{border:0}.ns-section-row span{font-size:13px}.ns-section-row small{font-size:9px;color:#aaa}
#app-novel-reader{background:#f3f3f0!important}.ns-reader-title{font-family:"Songti SC","Noto Serif SC",serif;font-size:15px;font-weight:700}.ns-reader-sub{font-size:9px;color:#999;letter-spacing:.12em;margin-top:2px}.ns-ai-button{background:#111;color:#fff;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:650}.ns-companion-strip{display:flex;gap:8px;overflow-x:auto;padding:11px 16px;background:#f3f3f0;border-bottom:1px solid #dfdfdc;scrollbar-width:none}.ns-companion-strip::-webkit-scrollbar{display:none}.ns-companion{display:flex;align-items:center;gap:7px;border:1px solid #d8d8d5;background:#fff;border-radius:999px;padding:6px 10px 6px 6px;white-space:nowrap;font-size:10px;color:#555}.ns-companion img,.ns-avatar-fallback{width:25px;height:25px;border-radius:50%;object-fit:cover;background:#1c1c1c;color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.ns-companion.is-active{background:#1a1a1a;color:#fff;border-color:#1a1a1a}
#nr-content{padding:28px 22px 150px!important;background:#f8f8f5!important}.ns-reading-sheet{max-width:680px;margin:0 auto}.para-content{font-family:"Songti SC","Noto Serif SC",Georgia,serif!important;line-height:2.05!important;color:#282828;border-radius:8px;padding:4px 2px;margin-bottom:14px!important}.ns-comments{margin:2px 0 21px 18px;padding-left:14px;border-left:1px solid #cfcfcb}.ns-comment{background:#efefec;border:0;border-radius:4px 14px 14px 14px;padding:11px 12px;margin-top:7px;font-size:12px}.ns-comment-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.ns-comment-name{font-size:10px;font-weight:800;letter-spacing:.08em;color:#333}.ns-comment-actions button{font-size:9px;color:#8b8b8b;margin-left:10px}.ns-comment-text{color:#555;line-height:1.6}.ns-comment.user-comment{background:#1c1c1c;color:#fff}.ns-comment.user-comment .ns-comment-name,.ns-comment.user-comment .ns-comment-text{color:#fff}
#nr-plot-container{bottom:10px!important;padding:0 14px!important}.ns-compose{max-width:680px;margin:0 auto;background:#fff;border:1px solid #d1d1ce;border-radius:18px!important;box-shadow:0 12px 36px rgba(0,0,0,.1)!important;padding:10px 10px 10px 14px!important}.ns-compose textarea{font-size:12px!important}.ns-send{width:34px;height:34px;border-radius:50%;background:#111;color:#fff!important}.ns-empty{padding:66px 24px;text-align:center}.ns-empty-mark{font-family:Georgia,serif;font-size:42px;color:#d0d0cd}.ns-empty-title{font-family:"Songti SC","Noto Serif SC",serif;font-size:17px;margin-top:8px}.ns-empty-copy{font-size:11px;color:#999;line-height:1.7;margin:8px auto 0;max-width:230px}
#novel-menu-card{background:#171717!important;border:0!important;border-radius:15px!important;box-shadow:0 18px 44px rgba(0,0,0,.25)!important}.ns-menu-item{padding:13px 16px;font-size:12px;color:#eee;border-bottom:1px solid #303030}.ns-menu-item:last-child{border:0}
#novel-creator-modal,#novel-settings-modal>div,#novel-comment-modal>div,#novel-para-edit-modal>div{background:#f6f6f4!important;color:#222}.ns-modal-head{height:64px;padding:12px 16px;display:grid;grid-template-columns:70px 1fr 70px;align-items:center;border-bottom:1px solid #ddd}.ns-modal-head span{text-align:center;font-family:"Songti SC","Noto Serif SC",serif;font-size:17px;font-weight:700}.ns-modal-head button:last-child{text-align:right;font-weight:700}.ns-form-card{background:#fff;border:1px solid #dededb;border-radius:16px;overflow:hidden}.ns-field{padding:14px 15px;border-bottom:1px solid #ececea}.ns-field:last-child{border:0}.ns-field-label{font-size:9px;letter-spacing:.14em;color:#999;font-weight:700;margin-bottom:6px}.ns-field input{font-size:14px;width:100%;outline:none;background:transparent}.ns-modal-action{background:#111!important;color:#fff!important;border:0!important}.ns-select{border:1px solid #d5d5d2!important;background:#fff!important;border-radius:12px!important;color:#222!important}
@media(min-width:700px){#novel-list,#nd-chapters{max-width:760px;width:100%;margin:0 auto}.ns-library-tools{grid-template-columns:1fr 1fr}.ns-book-card{padding:21px}.ns-head-copy{max-width:680px}}

/* v2: archive-synced companion picker */
.ns-library-tools{display:block}.ns-import-tile{width:100%;min-height:76px}.ns-book-actions>span:last-child{display:flex;align-items:center;gap:9px}
.ns-picker-sheet{width:100%;max-width:520px;height:min(72vh,620px);background:#f6f6f4;border-radius:24px 24px 0 0;display:flex;flex-direction:column;overflow:hidden}.ns-picker-head{height:72px;padding:13px 16px;display:grid;grid-template-columns:60px 1fr 60px;align-items:center;border-bottom:1px solid #dcdcd9;background:#fff}.ns-picker-head>div{text-align:center}.ns-picker-head strong{display:block;font-family:"Songti SC","Noto Serif SC",serif;font-size:16px}.ns-picker-head small{display:block;font-size:9px;color:#999;margin-top:3px;letter-spacing:.05em}.ns-picker-head button{font-size:12px;color:#777;text-align:left}.ns-picker-head button:last-child{text-align:right;color:#111;font-weight:800}.ns-picker-list{flex:1;overflow-y:auto;padding:12px 14px 30px}.ns-picker-row{width:100%;display:grid;grid-template-columns:38px 1fr 28px;gap:11px;align-items:center;background:#fff;border:1px solid #dfdfdc;border-radius:14px;padding:10px 12px;margin-bottom:8px;text-align:left}.ns-picker-row img,.ns-picker-row .ns-avatar-fallback{width:38px;height:38px;border-radius:50%;object-fit:cover}.ns-picker-name{font-size:13px;font-weight:650;color:#222}.ns-picker-check{width:22px;height:22px;border:1px solid #ccc;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px}.ns-picker-row.is-selected{border-color:#222;background:#f0f0ed}.ns-picker-row.is-selected .ns-picker-check{background:#171717;border-color:#171717}
.ns-chapter-direct{cursor:pointer;transition:transform .15s,background .15s}.ns-chapter-direct:active{transform:scale(.99);background:#f5f5f3}.ns-chapter-direct .ns-chapter-head{border-bottom:0}.ns-chapter-actions{display:flex;align-items:center;gap:12px}.ns-chapter-actions span{font-size:10px;font-weight:700;color:#222}.ns-chapter-count{font-size:9px;color:#aaa;margin-top:5px}
.ns-swipe-shell{position:relative;overflow:hidden;border-radius:17px;margin-bottom:10px;background:#222}.ns-swipe-shell .ns-book-card{margin-bottom:0;transition:transform .22s cubic-bezier(.2,.8,.2,1);position:relative;z-index:2}.ns-swipe-track.is-open{transform:translateX(-78px)!important}.ns-swipe-delete{position:absolute;z-index:1;right:0;top:0;bottom:0;width:78px;background:#222;color:#fff;font-size:11px;font-weight:750;letter-spacing:.08em}.ns-comment-sticker{display:block;width:84px;height:84px;object-fit:contain;margin:8px 0 1px}
.ns-danmaku-toggle{position:sticky;z-index:20001;top:8px;margin:0 0 -38px auto;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.92);border:1px solid rgba(25,25,25,.14);color:#222;box-shadow:0 5px 18px rgba(0,0,0,.1);backdrop-filter:blur(8px)}.ns-danmaku-toggle svg{width:18px;height:18px}.ns-danmaku-toggle.is-off{color:#aaa;background:rgba(248,248,245,.88)}
.ns-paragraph-wrap{position:relative;z-index:auto;overflow:visible}.ns-paragraph-wrap .para-content{position:relative;z-index:1}.ns-danmaku-cloud{position:relative;z-index:10000;display:flex;flex-direction:column;gap:3px;width:100%;margin:-8px 0 10px;overflow:visible;pointer-events:none}.ns-danmaku-cloud.lane-left{align-items:flex-start;padding-left:2%}.ns-danmaku-cloud.lane-center{align-items:center}.ns-danmaku-cloud.lane-right{align-items:flex-end;padding-right:2%}.ns-float-danmaku{position:relative;z-index:10001;pointer-events:auto;display:inline-flex;align-items:center;gap:4px;width:max-content;max-width:88%;min-height:22px;padding:2px 5px 2px 2px;border:1px solid rgba(20,20,20,.07);border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 3px 10px rgba(0,0,0,.09);backdrop-filter:blur(8px);animation:nsDanmakuFloatIn .26s ease-out}.ns-danmaku-avatar,.ns-danmaku-avatar img,.ns-danmaku-avatar span{width:19px;height:19px;border-radius:50%}.ns-danmaku-avatar{flex:none}.ns-danmaku-avatar img{display:block;object-fit:cover}.ns-danmaku-avatar span{display:flex;align-items:center;justify-content:center;background:#222;color:#fff;font-size:8px;font-weight:750}.ns-danmaku-body{min-width:0;display:flex;align-items:center;gap:4px;line-height:1.2}.ns-danmaku-body b{flex:none;font-size:8px;color:#8a8a8a;font-weight:750}.ns-danmaku-body em{font-size:10.5px;color:#222;font-style:normal;white-space:normal}.ns-danmaku-body img{width:56px;height:56px;object-fit:contain}.ns-danmaku-more{flex:none;width:15px;height:15px;color:#aaa;font-size:10px;line-height:15px}.ns-float-danmaku:has(.ns-danmaku-body img):not(:has(.ns-danmaku-body em)){border-radius:11px;padding-right:3px}@keyframes nsDanmakuFloatIn{from{opacity:0;transform:translateY(5px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(min-width:900px){.ns-reading-sheet{max-width:680px}.ns-danmaku-cloud{width:108%;margin-left:-4%}}
#nr-content{padding-bottom:42px!important}
