body[data-page="chat"] .shell{grid-template-columns:minmax(0,1fr)}body[data-page="chat"] .sidebar{display:none}body[data-page="chat"] .workspace{grid-column:1;width:100%;margin:0}body[data-page="chat"] .topbar{position:relative;z-index:20;background:#171a19}body[data-page="chat"] .main{max-width:none}
.novel-layout{--stage-accent:#e5c99c;--stage-ink:#3e322e;--stage-paper:#fff9edef;--stage-line:#cda77f88;height:calc(100dvh - 76px);grid-template-columns:minmax(0,1fr);position:relative;isolation:isolate;background:#272526;overflow:hidden}.novel-layout[data-theme="romance"]{--stage-accent:#eaa2b5;--stage-ink:#503441;--stage-paper:#fff7f9ef;--stage-line:#dba3b188}.novel-layout[data-theme="noir"]{--stage-accent:#d09585;--stage-ink:#efdfd3;--stage-paper:#20222eee;--stage-line:#ac716280}.novel-layout[data-theme="survival"]{--stage-accent:#e9b770;--stage-ink:#e8e4d6;--stage-paper:#252d28f2;--stage-line:#a5a88380}.novel-layout[data-theme="cosmic"]{--stage-accent:#86d7ed;--stage-ink:#d9ecf6;--stage-paper:#16263aee;--stage-line:#7bd4df77}.novel-layout[data-theme="fantasy"]{--stage-accent:#d6b8ed;--stage-ink:#443352;--stage-paper:#f9f1ffed;--stage-line:#bca0ce99}
.novel-layout .message-column{position:relative;background:transparent;min-height:0}.novel-page-background{position:absolute;inset:0;z-index:-3;background-size:cover;background-position:center;transition:background-image .45s ease}.novel-page-background:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#070d1638,transparent 42%,#0b101244)}.novel-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.novel-atmosphere i{position:absolute;width:6px;height:6px;box-shadow:0 0 28px 10px var(--stage-accent);border-radius:50%;opacity:.3;left:12%;top:34%;animation:novel-float 9s ease-in-out infinite}.novel-atmosphere i:nth-child(2){left:82%;top:24%;animation-delay:-4s}.novel-atmosphere i:nth-child(3){left:71%;top:66%;animation-delay:-6s}@keyframes novel-float{50%{transform:translate(18px,-28px);opacity:.1}}
.novel-layout .scene-banner{height:84px;min-height:84px;background:linear-gradient(180deg,#111827bd,#11182715);padding:18px 5%;border:0}.novel-layout .scene-banner>img{display:none}.novel-layout .scene-title h2{color:#fff5e9;font-size:22px;letter-spacing:2px;text-shadow:0 1px 8px #10131c}.novel-layout .scene-meta{color:#eee6dc}.novel-layout .scene-tools .icon-button{color:#eee;background:#11182755}.novel-layout .mobile-back{display:inline-flex;color:#fff}.novel-layout .scene-tools .dossier-open{display:inline-flex}.novel-layout #message-scroll{display:none}.novel-layout .dossier{display:none}.novel-layout .dossier.drawer-open{display:block;position:absolute;inset:0 0 0 auto;width:min(380px,94vw);z-index:61;background:#1c2429f5;backdrop-filter:blur(14px);overflow:auto}.novel-layout .dossier-backdrop.open{display:block;position:absolute;inset:0;z-index:60;background:#10172188}.novel-layout .dossier-header .drawer-close{display:inline-flex!important}
.novel-stage{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-end;padding:0 9% 0}.novel-kicker{position:absolute;top:10px;left:5%;color:#fff4dc;letter-spacing:3px;font-family:Georgia,"Songti SC",SimSun,serif;font-size:17px;text-shadow:0 1px 7px #111827}.novel-kicker span{display:block;letter-spacing:2px;font-size:10px;margin-top:9px;opacity:.65}.novel-resources{position:absolute;top:4px;right:5%;display:flex;gap:10px}.novel-resources>span{padding:9px 15px;background:#161f2c60;border:1px solid #ffffff25;border-radius:25px;display:flex;align-items:center;gap:12px;backdrop-filter:blur(12px);color:#fff4e4}.novel-resources small{font-size:11px}.novel-resources b{font-size:17px;font-weight:500;color:var(--stage-accent)}.novel-scene-view{position:absolute;right:5%;top:64px;display:flex;align-items:center;gap:6px;font-size:11px;color:white;background:#17243360;border-radius:18px;padding:7px 12px}.novel-scene-view:disabled{opacity:.3}.novel-actor-layer{position:absolute;inset:0 0 145px;pointer-events:none;display:flex;align-items:flex-end;justify-content:center}.novel-actor{height:100%;width:min(68%,660px);padding:0;border:0;background:transparent;pointer-events:auto;cursor:zoom-in;animation:actor-arrives .5s ease both;align-self:flex-end;display:flex;align-items:flex-end;justify-content:center}.novel-actor.left{margin-right:24%}.novel-actor.right{margin-left:24%}.novel-actor img{max-height:100%;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 8px 20px #0f151735)}@keyframes actor-arrives{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.novel-reading-card{position:relative;z-index:3;color:var(--stage-ink);background:var(--stage-paper);border:1px solid var(--stage-line);padding:28px 34px 13px;border-radius:20px 20px 8px 20px;box-shadow:0 12px 45px #0b0f252b;backdrop-filter:blur(16px);max-width:1120px;width:100%;margin:0 auto}.novel-reading-card[data-kind="dialogue"]:before{content:"";position:absolute;top:-11px;left:50%;width:20px;height:20px;background:var(--stage-paper);border-left:1px solid var(--stage-line);border-top:1px solid var(--stage-line);transform:rotate(45deg)}.novel-speaker{position:absolute;top:-19px;left:24px;display:flex;align-items:center;gap:12px;background:var(--stage-accent);color:#322639;min-width:155px;padding:8px 22px;border-radius:6px 22px 22px 6px;box-shadow:0 3px 9px #22102e15}.novel-speaker strong{font-size:16px;letter-spacing:2px}.novel-speaker span{font-size:10px;opacity:.7}.novel-narrator{font-size:10px;letter-spacing:4px;opacity:.55;margin-bottom:8px}.novel-copy{font:17px/1.9 "Microsoft YaHei","PingFang SC",sans-serif;max-height:28dvh;overflow:auto;scrollbar-width:thin;white-space:pre-wrap}.novel-reading-controls{display:flex;align-items:center;justify-content:space-between;margin-top:15px;border-top:1px solid var(--stage-line);padding-top:9px;gap:15px}.novel-reading-controls button{display:flex;align-items:center;gap:7px;font-size:11px;padding:5px 0;color:inherit}.novel-reading-controls button:disabled{opacity:.25}.novel-reading-controls span{font-size:10px;opacity:.4}.novel-foot{min-height:42px;display:flex;align-items:center;gap:15px;font-size:10px;color:white;text-shadow:0 1px 6px #121827;padding:6px 1px;position:relative;z-index:4}.novel-image-status{flex:1;line-height:1.5}.novel-foot button{flex:none;font-size:10px;color:inherit;padding:5px 0}.novel-retry{color:var(--stage-accent)!important}
.novel-layout .composer{position:relative;z-index:5;background:linear-gradient(180deg,#131b2115,#121920b8);padding:8px 9% 14px;border:0;flex:none}.novel-layout .composer-box{background:#15202be8;border:1px solid #c9d2d944;border-radius:16px;backdrop-filter:blur(12px);max-width:1120px;margin:auto}.novel-layout .composer textarea{color:#f6f0df;min-height:50px;max-height:110px;padding:12px 60px 12px 18px;font-size:14px}.novel-layout .composer textarea::placeholder{color:#d5d3cd9c}.novel-layout .send-button{background:var(--stage-accent);border-radius:50%;color:#292734;bottom:9px}.novel-layout .composer-bottom{color:#f0e3c8b5;max-width:1120px;margin:8px auto 0;font-size:9px}.novel-layout .novel-show-log .novel-stage{display:none}.novel-layout .novel-show-log #message-scroll{display:block;background:#16202bed}.novel-layout .novel-show-log:before{content:"剧情回看 · 关闭后回到当前演出";position:absolute;right:5%;top:23px;color:#dfe0c8;font-size:11px;pointer-events:none}.novel-layout .novel-show-log .scene-title{cursor:pointer}
.novel-layout[data-theme="court"] .novel-reading-card{border-radius:3px;box-shadow:inset 0 0 0 5px #be9b5c17,0 12px 40px #10152a35}.novel-layout[data-theme="court"] .novel-copy{font-family:"Songti SC",SimSun,serif;font-size:19px;line-height:1.85}.novel-layout[data-theme="court"] .novel-speaker{border-radius:2px;background:#6a3935;color:#fae8c1}.novel-layout[data-theme="cosmic"] .novel-reading-card{border-radius:3px 24px 3px 3px;box-shadow:inset 0 2px 0 #80d7ec66,0 8px 40px #0b123255}.novel-layout[data-theme="survival"] .novel-reading-card{border-radius:3px;border-left:4px solid var(--stage-accent)}.novel-layout[data-theme="noir"] .novel-reading-card{border-radius:6px;box-shadow:0 10px 40px #05050c60}.novel-layout[data-theme="romance"] .novel-reading-card{border-radius:25px 25px 7px 25px}.novel-layout[data-theme="romance"] .novel-copy{letter-spacing:.6px}
.image-lightbox{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:66px 20px 20px;background:#11151af7;border:0;color:#eee;z-index:2000}.image-lightbox::backdrop{background:#0a0e12eb}.image-lightbox>img{display:block;width:100%;height:100%;object-fit:contain;background-image:linear-gradient(45deg,#ffffff05 25%,transparent 25%),linear-gradient(-45deg,#ffffff05 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ffffff05 75%),linear-gradient(-45deg,transparent 75%,#ffffff05 75%);background-size:24px 24px}.image-lightbox-bar{position:absolute;inset:0 20px auto;height:66px;display:flex;align-items:center;gap:15px}.image-lightbox-bar strong{margin-right:auto}.image-lightbox-bar .button{font-size:12px}.visual-editor{margin-top:28px;padding-top:24px;border-top:1px solid #ffffff18}.visual-editor h2{margin-bottom:15px}.visual-editor .notice p{margin-top:8px}
@media(max-width:720px){body[data-page="chat"] .topbar{height:54px;grid-template-rows:54px;padding:0 14px}body[data-page="chat"] .topbar .site-nav{display:none}body[data-page="chat"] .topbar .top-actions{height:54px}body[data-page="chat"] .mobile-brand{font-size:16px}body[data-page="chat"] .mobile-brand img{width:27px;height:27px}.novel-layout{height:calc(100dvh - 54px)}.novel-layout .scene-banner{min-height:74px;height:74px;padding:12px 14px;gap:8px}.novel-layout .scene-title h2{font-size:16px;letter-spacing:1px}.novel-layout .scene-meta{font-size:9px}.novel-stage{padding:0 13px}.novel-kicker{top:0;left:16px;font-size:13px;letter-spacing:2px}.novel-kicker span{font-size:8px;margin-top:6px}.novel-resources{right:14px;gap:5px;top:0;max-width:55%;flex-wrap:wrap;justify-content:flex-end}.novel-resources>span{padding:5px 8px;gap:5px}.novel-resources small{font-size:8px}.novel-resources b{font-size:12px}.novel-scene-view{right:14px;top:69px;font-size:9px;padding:5px 8px}.novel-actor-layer{bottom:148px;inset-inline:0}.novel-actor{width:98%;max-width:520px}.novel-actor.left,.novel-actor.right{margin:0}.novel-reading-card{padding:23px 17px 9px;border-radius:15px 15px 5px 15px}.novel-copy{font-size:15px;line-height:1.8;max-height:24dvh}.novel-layout[data-theme="court"] .novel-copy{font-size:17px}.novel-speaker{left:13px;top:-16px;min-width:124px;padding:6px 17px}.novel-speaker strong{font-size:14px}.novel-reading-controls{margin-top:10px;padding-top:5px}.novel-reading-controls button{font-size:10px;min-height:30px}.novel-foot{min-height:43px;gap:10px;font-size:8px;align-items:center}.novel-foot button{font-size:9px;max-width:64px;line-height:1.5}.novel-image-status{font-size:8px;max-width:65%;overflow-wrap:anywhere}.novel-layout .composer{padding:5px 13px calc(9px + env(safe-area-inset-bottom))}.novel-layout .composer textarea{font-size:16px;min-height:48px;padding:10px 53px 10px 13px}.novel-layout .composer-bottom{font-size:8px;margin-top:5px}.novel-layout .scene-tools .hide-small{display:none}.image-lightbox{padding:63px 0 0}.image-lightbox-bar{inset-inline:12px;gap:8px}.image-lightbox-bar strong{font-size:13px}.image-lightbox-bar .button{padding:8px 10px;font-size:11px}}
@media(max-width:720px){body[data-page="chat"] .main.chat-mode .novel-layout{height:calc(100dvh - 54px)}body[data-page="chat"] .mobile-menu{display:none}}
.novel-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.novel-gallery button{display:flex;flex-direction:column;gap:8px;min-width:0;cursor:zoom-in;text-align:left}.novel-gallery img{height:170px;width:100%;object-fit:contain;background:#111a22;border-radius:10px}.novel-gallery span{font-size:12px;overflow-wrap:anywhere}.novel-gallery>p{grid-column:1/-1}@media(max-width:720px){.novel-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.novel-gallery img{height:145px}.novel-foot{gap:9px}.novel-image-status{max-width:40%}}
.novel-image-errors{position:absolute;inset:105px 6% auto;display:flex;justify-content:center;align-items:flex-start;gap:16px;z-index:6;pointer-events:none}.novel-image-error{pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:9px;background:#19212bef;border:1px solid #efd1b355;color:#eee7dd;backdrop-filter:blur(18px);padding:22px 18px;border-radius:16px;width:260px;max-height:39dvh;overflow:auto;text-align:center;box-shadow:0 8px 35px #11182733}.novel-image-error strong{font-size:15px}.novel-image-error small{font-size:11px;color:#e0b795}.novel-image-error p{font-size:11px;line-height:1.6;overflow-wrap:anywhere}.novel-image-error .button{margin-top:3px;font-size:12px;background:var(--stage-accent);border-color:transparent;color:#302634}.novel-error-settings{font-size:11px;color:#dcd8c6;text-decoration:underline;text-underline-offset:3px}.novel-error-symbol{opacity:.55}.novel-image-errors:empty{display:none}@media(max-width:720px){.novel-image-errors{inset:88px 13px auto;gap:9px}.novel-image-error{min-width:0;width:240px;padding:14px 11px;gap:7px;max-height:35dvh}.novel-image-error strong{font-size:13px}.novel-image-error p{font-size:10px}.novel-image-error .button{min-height:36px;padding:7px 12px}.novel-image-errors:has(.novel-image-error:nth-child(2)) .novel-error-symbol{display:none}}
@media(prefers-reduced-motion:reduce){.novel-atmosphere i,.novel-actor{animation:none}.novel-page-background{transition:none}}

/* 远程标识只补充发言方式，不改变玩家地点、完整立绘或原图下载。 */
.novel-visual.remote-contact>.novel-kicker{display:none}
.novel-visual>.novel-remote-label{position:absolute;inset:8px auto auto 12px;width:max-content;max-width:calc(100% - 104px);z-index:3;display:flex;align-items:center;padding:5px 9px;border:1px solid #d5e4e572;border-radius:10px;background:#192b3be8;backdrop-filter:blur(8px);color:#f0f5ec;text-align:left;pointer-events:none}
.novel-remote-label strong{font-size:12px;line-height:1.4;font-weight:650}
.novel-entry .novel-contact-badge{display:block;width:max-content;max-width:100%;font-size:10px;line-height:1.5;font-weight:500;color:var(--stage-ink);padding:2px 7px;border:1px solid var(--stage-line);border-radius:8px}
@media(max-width:720px){.novel-visual>.novel-remote-label{inset:6px auto auto 10px;max-width:calc(100% - 94px);padding:3px 7px}.novel-remote-label strong{font-size:10px}}
