/* Environment changes presentation only. The manuscript is never transformed. */
.environment-intro{color:var(--muted);margin:0 0 22px;font-size:16px}
.environment-choices{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.environment-choice{padding:0;text-align:left;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:var(--surface-soft);color:var(--text)}
.environment-choice:hover,.environment-choice[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.environment-thumbnail{height:152px;display:flex;gap:7px;padding:20px;background:#10202f}
.default-choice .environment-thumbnail i{background:#1e3447;border:1px solid #49607366;border-radius:4px;width:20%}.default-choice .environment-thumbnail i:nth-child(2){width:60%;background:linear-gradient(#273c4a 30%,#172837 30%)}
.train-choice .environment-thumbnail{background:url('./environments/train/src/night_base.png') center/cover}
.environment-choice-copy{display:flex;flex-direction:column;gap:8px;padding:17px}.environment-choice-copy strong{font-size:18px}.environment-choice-copy small{color:var(--muted);font-size:13px;line-height:1.7}.environment-choice-copy>span{display:flex;align-items:center;justify-content:space-between;color:var(--accent);margin-top:9px;font-size:13px}
.environment-settings{display:grid;gap:19px}.environment-settings fieldset{border:0;margin:0;padding:0}.environment-settings legend{margin-bottom:12px}.environment-weather{display:flex;gap:8px}.environment-weather .button{flex:1}.environment-weather [aria-pressed=true]{background:var(--accent-wash);color:var(--accent);border-color:var(--accent)}
.environment-switches{display:grid;gap:13px;border-block:1px solid var(--line);padding:17px 0}.environment-switches label{display:flex;justify-content:space-between;align-items:center}.environment-switches input{width:19px;height:19px;accent-color:var(--accent)}
.environment-range>span{display:flex;justify-content:space-between;gap:12px;margin-bottom:9px}.environment-range output{font-variant-numeric:tabular-nums;color:var(--muted)}.environment-range input{width:100%;padding:0;accent-color:var(--accent);height:20px}.environment-tip{font-size:12px;color:var(--muted);margin:0;line-height:1.7}.environment-tip:empty{display:none}
.writing-environment-scene{position:fixed;inset:0;width:100%;height:100dvh;border:0;z-index:1;pointer-events:none;background:#101c28}
.environment-active{padding-left:0!important;height:100dvh;overflow:hidden;position:relative;z-index:2;display:block!important;background:transparent!important;min-height:100dvh;--text:#e9eff1;--muted:#b9c9cf;--faint:#9baeb7;--accent:#e7c992;--accent-wash:#e7c99214;--line:#b7d3e12b;--surface:#172b39;--surface-soft:#152734;--paper:#142734}
.environment-active>.global-rail,.environment-active .topbar,.environment-active .preview-footer{display:none}
.environment-active .app-frame{margin:0;background:transparent;min-width:0}.environment-active .page-content{background:transparent;padding:0}.environment-active .workbench-view{height:100dvh;min-height:0}
.environment-active .workbench-top{padding:14px 26px;min-height:74px;flex-wrap:wrap;border:0;background:linear-gradient(#06131bce,#06131b00);position:relative;z-index:5;gap:8px}
.environment-active .workspace-tabs,.environment-active .workbench-actions>.primary,.environment-active .workbench-actions>.muted-tag{display:none}
.environment-heading{display:flex;align-items:center;gap:22px}.environment-name{font-size:15px;letter-spacing:.08em;color:#e6ded0}.environment-name i{font-style:normal;opacity:.5;margin:0 10px}.environment-back>.icon{transform:rotate(180deg)}
.environment-active .button.quiet{background:#10232ca8;border:1px solid #c2d7e22b;color:#e4edef;backdrop-filter:blur(14px);font-size:13px}.environment-active .button.quiet:hover{background:#294553}.environment-active .workbench-actions{margin-left:auto;gap:8px;flex-wrap:wrap}
.environment-active .workbench-layout{display:flex!important;align-items:flex-start;justify-content:center;padding:10px 24px 24px;position:relative;overflow:hidden}
.environment-active .manuscript-panel{position:relative;width:min(var(--environment-width,720px),100%);height:min(var(--environment-height,70dvh),calc(100dvh - 150px));flex-shrink:0;border:1px solid #b3d5e340;border-radius:17px;background:rgba(12,31,43,var(--environment-frost,.75));backdrop-filter:blur(18px) saturate(.85);box-shadow:0 25px 85px #020b1280,inset 0 1px #d7f0ff14;overflow:hidden;transition:background .15s}
.environment-active .editor-toolbar{min-height:49px;padding:7px 18px}.environment-active .manuscript-label{font-size:13px}.environment-active .editor-toolbar .muted-tag,.environment-active .editor-dot{display:none}.environment-active .editor-toolbar .icon-button{width:30px;height:30px}
.environment-active .manuscript{padding:28px clamp(24px,3vw,48px) 40px}.environment-active .manuscript h1{font-size:calc(var(--reading-font-size)*1.35)}.environment-active .manuscript-meta{margin-bottom:27px}.environment-active .editor-footer{font-size:11px;min-height:32px}.environment-active .editor-footer>span:last-child{display:none}
.environment-active .chapters-panel,.environment-active .workbench-layout>.manager-panel{position:fixed;z-index:12;top:90px;bottom:36px;height:auto;width:min(330px,calc(100vw - 32px));border:1px solid var(--line);border-radius:13px;background:#12232ff5;box-shadow:0 20px 60px #0008;overflow:hidden;backdrop-filter:blur(20px)}
.environment-active .chapters-panel{left:18px}.environment-active .workbench-layout>.manager-panel{right:18px}.environment-active .manager-resizer{display:none}.environment-active .manager-orb{z-index:15;background:#16303c;color:var(--accent);border-color:#d5c09466}
.environment-active .preview-dialog{background:#132633;color:var(--text);border-color:var(--line)}
@media(max-width:700px){.environment-choices{grid-template-columns:1fr}.environment-thumbnail{height:125px}.environment-active .workbench-top{padding:10px 12px;gap:9px;min-height:108px}.environment-heading{width:100%;justify-content:space-between;gap:8px}.environment-name{font-size:12px}.environment-active .workbench-actions{width:100%;justify-content:flex-end}.environment-active .workbench-actions .button{font-size:12px;padding:7px 10px}.environment-active .workbench-layout{padding:5px 12px 14px}.environment-active .manuscript-panel{height:min(var(--environment-height,70dvh),calc(100dvh - 140px));border-radius:12px}.environment-active .manuscript{padding:24px 22px 36px}.environment-active .chapters-panel,.environment-active .workbench-layout>.manager-panel{top:122px;bottom:18px}.environment-active .environment-name{display:block}.environment-weather{gap:5px}}
@media(prefers-reduced-motion:reduce){.environment-active .manuscript-panel{transition:none}}

/* V17: reusable custom backgrounds and a freely placed manuscript window. */
.custom-choice{display:block}.custom-choice .environment-thumbnail{height:152px;min-height:140px;background:radial-gradient(ellipse at 20% 30%,#799ba658,transparent 70%),linear-gradient(135deg,#233546,#0c1b2b)}.custom-choice .environment-thumbnail::after{content:'＋';font-size:42px;color:#bad2de;align-self:center;margin:auto;font-weight:200}
.custom-environment-backdrop{object-fit:cover;object-position:center;background:radial-gradient(ellipse at 20% 25%,#335162 0%,transparent 55%),radial-gradient(ellipse at 90% 80%,#463e3b,transparent 60%),#111e2c}
.custom-environment-backdrop:is(img,video){inset:auto;object-fit:contain;background:transparent;max-width:none;max-height:none;mask-image:linear-gradient(to right,transparent,#000 18px,#000 calc(100% - 18px),transparent),linear-gradient(to bottom,transparent,#000 18px,#000 calc(100% - 18px),transparent);mask-composite:intersect}
.custom-environment-soft{background:#101c28}
.environment-active .workbench-layout{display:block!important;padding:0!important}.environment-active .manuscript-panel{position:absolute;max-width:none;max-height:none;transition:background .15s}
.environment-drag-handle{border:0;background:transparent;color:var(--muted);padding:7px 8px;cursor:grab;touch-action:none;user-select:none;border-radius:5px;white-space:nowrap}.environment-drag-handle:hover{background:#b8d6e414;color:var(--text)}.environment-drag-handle>span{font-size:20px;opacity:.6;margin-left:6px}.window-adjusting,.window-adjusting *{user-select:none!important}.window-adjusting .environment-drag-handle{cursor:grabbing}
.environment-resize{position:absolute;z-index:4;border:0;background:transparent;padding:0;touch-action:none;color:#c5d7df;opacity:.6}.environment-resize:hover,.environment-resize:focus-visible{background:#bcdbe522;opacity:1}.resize-n,.resize-s{left:18px;right:18px;height:7px;cursor:ns-resize}.resize-n{top:0}.resize-s{bottom:0}.resize-e,.resize-w{top:18px;bottom:18px;width:7px;cursor:ew-resize}.resize-e{right:0}.resize-w{left:0}.resize-nw,.resize-ne,.resize-sw,.resize-se{width:18px;height:18px}.resize-nw{left:0;top:0;cursor:nwse-resize}.resize-ne{right:0;top:0;cursor:nesw-resize}.resize-sw{left:0;bottom:0;cursor:nesw-resize}.resize-se{right:1px;bottom:1px;cursor:nwse-resize;font-size:14px;line-height:18px}
.environment-active .editor-toolbar>div:first-child{min-width:0;flex-shrink:1}.environment-active .editor-toolbar .environment-drag-handle{font-size:13px}.environment-active .editor-toolbar{gap:3px}.environment-active .editor-toolbar>div{gap:3px}
.custom-media-section{padding-bottom:18px;border-bottom:1px solid var(--line)}.custom-media-heading{display:flex;gap:12px;margin-bottom:14px}.custom-media-heading>.icon{color:var(--accent);margin-top:5px}.custom-media-heading h3{font-size:16px;margin:0 0 4px}.custom-media-heading p{font-size:13px;color:var(--muted);margin:0}.custom-media-buttons{display:flex;gap:10px}.custom-media-file{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:10px}.custom-media-file>span{overflow-wrap:anywhere;min-width:0;font-size:13px;color:var(--muted)}.custom-media-file>.button{flex-shrink:0;font-size:12px}.custom-media-section>small{font-size:11px;color:var(--faint)}.custom-window-tip{display:flex;gap:16px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px}.custom-window-tip p{font-size:12px;color:var(--muted);margin:0;line-height:1.8}.custom-window-tip>.button{flex-shrink:0;font-size:12px}.custom-environment-settings input[hidden]{display:none!important}
@media(max-width:700px){.custom-choice{display:block;grid-column:auto}.custom-choice .environment-thumbnail{min-height:90px;height:90px}.environment-active .workbench-top{min-height:110px}.environment-active .workbench-actions{justify-content:space-between;gap:4px}.environment-active .workbench-actions .button{padding-inline:7px;font-size:11px}.environment-active .workbench-actions .button>.icon{display:none}.environment-active .editor-toolbar{padding-inline:9px}.environment-active .editor-toolbar .environment-drag-handle{font-size:12px}.custom-window-tip{align-items:start;flex-direction:column}.environment-active .manuscript{padding-inline:20px}}

.custom-environment-save{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px}
