@font-face{font-family:"Noto Sans Thai";src:url("fonts/NotoSansThai.ttf") format("truetype");font-display:swap}:root{font-family:"Noto Sans Thai",Tahoma,system-ui,sans-serif;color:#202137;background:#f5f5f8;font-size:14px;--accent:#4f46b8;--line:#dddde7}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{background:#fff;color:#39394e;border:1px solid var(--line);border-radius:6px;padding:9px 13px;cursor:pointer;min-height:40px}button:hover{background:#efedf9}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--accent);border-color:var(--accent);color:white}.primary:hover{background:#403798}.danger{color:#a72f45}a{color:inherit;text-decoration:none}header{height:66px;border-bottom:1px solid var(--line);background:white;padding:0 28px;display:flex;align-items:center;gap:24px}.brand{color:var(--accent);font-size:20px}#account{margin-left:auto;font-size:13px}
header .header-link{color:#5f5e72}header .header-current{color:#353452}header .header-link:hover{color:var(--accent)}.logout-link{color:#8f2940;font-size:13px;white-space:nowrap}.logout-link:hover{color:#b42342;text-decoration:underline}.muted{color:#6c6d7f;font-size:13px}main{max-width:1450px;margin:auto;padding:28px}h1{font-size:24px;margin:0}h2{font-size:16px;margin:0}p{line-height:1.7}label{display:grid;gap:7px;font-size:13px}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:5px;background:white;padding:10px;color:inherit}textarea{resize:vertical}button:focus-visible,input:focus,textarea:focus,select:focus{outline:2px solid #8176dd;outline-offset:2px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.search{max-width:430px;margin-bottom:24px}.project-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.project-card{text-align:left;padding:22px;min-height:160px;display:flex;flex-direction:column;align-items:flex-start;gap:13px}.project-card strong{font-size:18px;overflow-wrap:anywhere}.project-card p{margin:0;overflow-wrap:anywhere}.project-card small{margin-top:auto;color:#76758a}.empty{text-align:center;padding:70px 20px;border:1px dashed var(--line);color:#77768a;background:#fff;grid-column:1/-1}.workspace-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:20px}.workspace-bar strong{margin-right:auto;overflow-wrap:anywhere}#save-status{font-size:12px;color:#66647c}#save-status.dirty{color:#935c14}.studio{display:grid;grid-template-columns:260px minmax(0,1fr);border:1px solid var(--line);background:white;min-height:70vh}aside{border-right:1px solid var(--line);padding:18px}aside .section-head{gap:6px}aside button{padding:6px 9px}.chapter{border-top:1px solid var(--line);padding:14px 0}.chapter-head{display:flex;align-items:center;gap:5px}.chapter-head strong{flex:1;overflow-wrap:anywhere}.chapter-head button{font-size:12px;padding:4px;min-width:30px}.page-link{display:block;width:100%;text-align:left;border:0;margin-top:5px;padding-left:17px;overflow-wrap:anywhere}.page-link.active{background:#eeecfb;color:#4136ac}.editor{padding:24px;min-width:0}.editor .section-head label{flex:1}.actions{display:flex;gap:8px}.page-tools{display:flex;align-items:end;gap:14px;margin-bottom:24px;flex-wrap:wrap}.page-tools label{min-width:185px}.panel-card{border:1px solid var(--line);margin-bottom:18px;border-radius:6px;overflow:hidden}.panel-header{display:flex;align-items:center;gap:7px;padding:9px 14px;background:#f8f8fb;border-bottom:1px solid var(--line)}.panel-header strong{margin-right:auto}.panel-body{padding:16px;display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px}.image-area{display:flex;flex-direction:column;gap:8px}.image-area img{width:100%;height:170px;object-fit:contain;background:#f1f1f6}.image-placeholder{height:140px;background:#f5f4f9;display:grid;place-items:center;color:#777}.image-area input{font-size:11px;padding:5px}.fields{display:grid;gap:12px}.fields textarea{min-height:70px}dialog{border:1px solid var(--line);border-radius:9px;padding:24px;width:min(540px,94vw);max-height:92vh}dialog::backdrop{background:#20203380}dialog label{margin-bottom:18px}.dialog-actions{display:flex;justify-content:space-between;gap:12px;margin-top:24px}#notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:14px 20px;background:#29263f;color:white;border-radius:6px;z-index:99;max-width:90vw}#reader{width:min(950px,96vw);background:#ececf2}.reader-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.reader-toolbar h2{margin-right:auto}.reading-page{background:white;margin:0 auto 24px;padding:24px;max-width:720px;break-after:page}.reading-page h3{font-size:14px;margin:0 0 14px}.comic-grid{height:880px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr)}.comic-grid.single{grid-template-columns:1fr}.comic-grid.three .comic-panel:first-child{grid-column:1/-1}.comic-panel{border:2px solid #292735;min-height:0;overflow:hidden;display:flex;flex-direction:column;background:#fafafa}.comic-panel img{width:100%;min-height:0;flex:1;object-fit:contain}.comic-panel .blank{flex:1;display:grid;place-items:center;color:#a5a3ae;font-size:12px}.dialogue{padding:10px;background:white;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;border-top:1px solid #ddd;max-height:40%;overflow:hidden}[hidden]{display:none!important}@media(max-width:760px){header{padding:0 15px;gap:12px}header>.muted{display:none}main{padding:16px}.studio{grid-template-columns:1fr}aside{border-right:0;border-bottom:1px solid var(--line);max-height:280px;overflow:auto}.editor{padding:15px}.section-head{flex-wrap:wrap}.panel-body{grid-template-columns:1fr}.image-area{max-width:100%}.image-area img{height:180px}.actions{flex-wrap:wrap}.comic-grid{height:115vw}.reading-page{padding:12px}.dialogue{font-size:11px;padding:5px}.workspace-bar{gap:7px}.workspace-bar strong{width:65%}.page-tools .muted{width:100%}}@media print{@page{size:A4 portrait;margin:8mm}body{background:white}body>header,body>main,body>noscript{display:none!important}#reader{display:block!important;position:static;width:100%;max-width:none;max-height:none;overflow:visible;border:0;padding:0;background:white}#reader::backdrop,.reader-toolbar{display:none!important}.reading-page{width:100%;max-width:none;height:277mm;margin:0;padding:0;break-after:page}.reading-page:last-child{break-after:auto}.comic-grid{height:258mm}.dialogue{font-size:12pt}}

/* Custom layouts share the PNG interior's coordinates, never mobile reflow. */
.comic-grid.lettered{display:block;position:relative;width:100%;height:auto;aspect-ratio:1120/1570;background:white}
.comic-grid.lettered .comic-panel{position:absolute;min-width:0;background:white;border:0}
.comic-grid.lettered .comic-panel>svg{display:block;width:100%;height:100%;flex:1;min-height:0}
.comic-grid.lettered .comic-panel img{flex:1 1 0;object-fit:contain}
.comic-grid.lettered .dialogue{flex-shrink:0}
#composition{max-width:480px;margin:0 auto 24px}
#composition .reading-page{padding:12px;border:1px solid var(--line)}
.proportions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.proportions label,.proportions select{min-width:0}
@media print{.comic-grid.lettered{width:184mm;max-width:100%;height:auto;margin:auto}}

/* V2 task-first forms */
#task-tabs{display:flex;gap:.4rem;flex-wrap:wrap;border-bottom:1px solid #dcdce8;padding:12px 0;margin-bottom:16px}#task-tabs [aria-pressed=true]{background:#4338ca;color:white;border-color:#4338ca}.task-form{max-width:850px;padding:16px;background:white}.task-form>label{margin-bottom:16px}.character-card,.world-list,.history-row{border-top:1px solid #dedee8;margin-top:20px;padding:16px 0}.character-card label{margin-bottom:12px}.list-row{display:flex;align-items:center;gap:8px}.list-row label{flex:1;min-width:0}.chapter-select{text-align:left;flex:1;min-width:0;overflow-wrap:anywhere}#chapter-script{margin-bottom:20px}.full-page-image{display:block;width:100%;height:auto}.full-page-thumb{display:block;max-width:100%;max-height:300px}#full-page{border:1px solid #ddd;padding:12px;margin:16px 0}.unresolved{padding:8px;background:#fff8e7}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.8rem;max-height:360px;overflow:auto}.import-label{max-width:420px;margin:12px 0}#import-dialog{width:min(850px,94vw)}[hidden]{display:none!important}@media(max-width:600px){.task-form{padding:8px}.workspace-bar{gap:6px}.workspace-bar button{font-size:.83rem}#task-tabs button{flex:1;padding:9px 7px}.character-card{padding:12px 0}}

/* Canonical in-page WYSIWYG surface. */
#composition{max-width:760px;margin:0 auto 18px}#composition .reading-page{padding:12px;border:1px solid var(--line);background:#fff}.wysiwyg-toolbar{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:16px auto 10px;max-width:900px}.wysiwyg-editing .comic-grid{touch-action:none;user-select:none}.comic-grid.lettered .comic-panel,.comic-grid.lettered .comic-panel>svg{overflow:visible}.comic-grid.lettered .comic-panel.has-gutter-bleed{z-index:1}.wysiwyg-editing .comic-panel{cursor:pointer}.wysiwyg-selected{outline:4px solid #4f46b8;outline-offset:-2px;z-index:2}.panel-handle{position:absolute;z-index:8;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:2px solid white;border-radius:50%;background:#4f46b8;color:white;box-shadow:0 1px 6px #0008;touch-action:none}.panel-move{left:-18px;top:50%;transform:translateY(-50%);cursor:move}.panel-resize{right:3px;bottom:3px;cursor:nwse-resize}.wysiwyg-editing .speech-balloon{cursor:move;touch-action:none}.wysiwyg-balloon-selected>*:first-child{stroke:#4f46b8;stroke-width:5}.wysiwyg-bubble-hit{cursor:nwse-resize;touch-action:none}.wysiwyg-bubble-handle{fill:none;stroke:#4f46b8;stroke-width:2;pointer-events:none}#wysiwyg-inspector{max-width:760px;margin:0 auto 22px;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fff}#wysiwyg-inspector h3{margin-top:0}.wysiwyg-dialogue-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(110px,auto) auto;align-items:start;gap:8px;margin:8px 0}.wysiwyg-dialogue-row textarea{min-width:0;resize:vertical}.wysiwyg-dialogue-row .active,#wysiwyg-inspector button.active{background:#4f46b8;color:#fff}.wysiwyg-help{text-align:center}.wysiwyg-editing+.reading-page{touch-action:none}
@media(max-width:650px){#composition .reading-page{padding:5px}#composition .reading-page>h3{font-size:12px;margin:3px 0}.panel-handle{width:38px;min-width:38px;height:38px;min-height:38px}.wysiwyg-dialogue-row{grid-template-columns:1fr auto}.wysiwyg-dialogue-row textarea{grid-column:1/-1;grid-row:2}.wysiwyg-dialogue-row .wysiwyg-bleed{grid-column:1/-1;grid-row:3;min-height:40px}.wysiwyg-toolbar button{padding:7px 9px;min-height:38px}#wysiwyg-inspector{padding:10px}.wysiwyg-editing .comic-grid{touch-action:none}}

/* Versioned private character sheets and stable panel cast. */
.character-sheets{margin:20px 0;padding:14px;border:1px solid var(--line);border-radius:8px;background:#f8f8fb;min-width:0}.sheet-heading,.sheet-version-title,.sheet-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.sheet-heading>div{font-weight:700}.sheet-version{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:7px;background:#fff;min-width:0}.sheet-version[data-primary=true]{border-color:#4f46b8;box-shadow:inset 3px 0 #4f46b8}.approved-badge{padding:4px 8px;border-radius:999px;background:#e9e7ff;color:#39308f;font-size:12px}.sheet-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin:12px 0}.sheet-reference{border:1px solid var(--line);border-radius:6px;overflow:hidden;min-width:0}.sheet-reference img,.sheet-unresolved{display:block;width:100%;height:150px}.sheet-reference img{object-fit:contain;background:#fff}.sheet-unresolved{display:grid;place-items:center;padding:12px;text-align:center;background:#f1f1f5;color:#6c6d7f}.sheet-reference-controls{display:grid;gap:8px;padding:9px}.sheet-uploader{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(220px,1.4fr);gap:10px;align-items:end;padding:12px;border:1px dashed #c9c8d8;border-radius:6px}.sheet-actions{justify-content:flex-end;margin-top:12px}.panel-cast{border:1px solid var(--line);border-radius:6px;margin:0 0 12px;padding:10px;min-width:0}.panel-cast legend{padding:0 5px}.panel-cast-options{display:flex;gap:7px;flex-wrap:wrap}.panel-cast-option{display:flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid var(--line);border-radius:999px;max-width:100%}.panel-cast-option input{width:auto;flex:0 0 auto}.panel-cast-option span{overflow-wrap:anywhere}
@media(max-width:700px){.character-sheets,.sheet-version{padding:9px}.sheet-uploader{grid-template-columns:1fr}.sheet-gallery{grid-template-columns:1fr}.sheet-reference-controls{min-width:0}.sheet-reference-controls input,.sheet-reference-controls select,.sheet-uploader input,.sheet-uploader select{min-width:0;max-width:100%}}

/* Character Sheet v2: fixed production categories and scale chart. */
.production-fields{margin:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0}.production-fields>summary{font-weight:700;color:#3730a3;cursor:pointer;margin-bottom:14px}.production-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.structured-list{margin:14px 0}.structured-list-head,.structured-row,.scale-chart-heading,.sheet-category-head,.legacy-sheet-row,.sheet-progress{display:flex;align-items:center;gap:10px}.structured-list-head{justify-content:space-between}.structured-list-head h4{margin:0}.structured-row{margin:7px 0}.structured-row input{min-width:0}.structured-row button{flex:0 0 auto}.scale-chart{margin:18px 0 24px;border-top:3px solid #4338ca;background:#f7f7ff;padding:14px;min-width:0}.scale-chart-heading{justify-content:space-between;flex-wrap:wrap}.scale-stage{height:300px;display:flex;align-items:flex-end;gap:14px;overflow-x:auto;border-bottom:2px solid #34344a;padding:28px 8px 0;margin-top:12px}.scale-person{height:100%;min-width:94px;display:flex;flex-direction:column;align-items:center;text-align:center}.scale-value,.scale-name{flex:0 0 auto}.scale-value{font-size:12px;color:#4f46b8}.scale-figure-slot{flex:1 1 auto;min-height:0;width:100%;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.scale-silhouette{height:var(--scale-height);width:42px;min-height:24px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;flex:0 0 auto;color:#7773a8}.scale-head{width:18px;height:18px;min-height:18px;border-radius:50%;background:currentColor}.scale-body{width:32px;min-height:6px;flex:1;background:currentColor;clip-path:polygon(28% 0,72% 0,100% 100%,62% 100%,50% 62%,38% 100%,0 100%)}.scale-name{max-width:94px;overflow-wrap:anywhere;font-size:12px}.sheet-category{margin-top:18px;border-top:2px solid #d8d6f2;padding-top:12px}.sheet-category-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto}.sheet-category-head>div{font-weight:700;color:#3730a3}.legacy-sheets{border-left:3px solid #9b96cf;padding:4px 12px;margin:14px 0}.legacy-sheets h4{margin:4px 0}.legacy-sheet-row{justify-content:space-between;border-top:1px solid var(--line);padding:8px 0}.sheet-version[data-approved=true]{border-color:#4f46b8;box-shadow:inset 3px 0 #4f46b8}.sheet-status{font-size:12px;padding:3px 8px;border:1px solid var(--line)}.status-review{color:#895d00;background:#fff8dd}.status-approved{color:#2f257f;background:#e9e7ff}.sheet-progress{justify-content:space-between;border-top:1px solid var(--line);padding-top:10px}.sheet-checklist{border:0;border-left:3px solid #d8d6f2;margin:10px 0;padding:6px 12px}.sheet-checklist legend{font-weight:700}.check-row{display:flex;align-items:center;gap:8px;margin:6px 0!important}.check-row input{width:auto}.missing-items{color:#8a3447;margin:8px 0 0;font-size:12px}.sheet-category .sheet-empty{padding:8px 0;margin:0}
@media(max-width:700px){.production-grid{grid-template-columns:1fr}.sheet-category-head{grid-template-columns:1fr}.sheet-category-head button{justify-self:start}.scale-chart{padding:10px}.scale-stage{height:240px;gap:8px}.scale-person{min-width:72px}.scale-figure,.scale-silhouette{width:58px}.legacy-sheet-row{align-items:flex-start;flex-direction:column}.structured-row button{padding:7px 9px}}

/* Scalable character master-detail workspace. */
#task-characters{max-width:none;padding:0;background:transparent}.character-master-detail{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;min-width:0}.character-master{position:sticky;top:12px;width:360px;min-width:280px;max-width:min(46vw,560px);max-height:calc(100vh - 24px);overflow:auto;resize:horizontal;border:1px solid var(--line);background:#fff}.character-master-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-bottom:1px solid var(--line)}.character-list-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;border-bottom:1px solid var(--line)}.character-list-tools label{min-width:0}.character-scale-button{width:calc(100% - 24px);margin:0 12px 12px}.character-list{border-top:1px solid var(--line)}.character-list-row{width:100%;min-height:80px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;background:#fff}.character-list-row:hover{background:#f5f4ff}.character-list-row[aria-current=true]{background:#eeecff;box-shadow:inset 4px 0 #4f46b8}.character-avatar{width:44px;height:44px;border:1px solid #d8d6ee;border-radius:4px;display:grid;place-items:center;object-fit:cover;background:#efeff5;color:#4338ca;font-weight:700;font-size:18px}.character-row-main{display:grid;gap:7px;min-width:0}.character-row-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.character-row-title strong,.character-row-title small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-row-title small{flex:0 1 auto}.character-category-badges{display:flex;gap:4px;flex-wrap:wrap}.character-category-badge,.category-summary{border:1px solid #d7d7e3;border-radius:3px;padding:2px 5px;font-size:10px;line-height:1.4;background:#f5f5f8;color:#656579}.character-category-badge.status-review,.category-summary.status-review{background:#fff8df;border-color:#e7d58b;color:#745c00}.character-category-badge.status-approved,.category-summary.status-approved{background:#e9f6ef;border-color:#acd3bd;color:#21643e}.character-total-progress{font-size:12px;color:#4338ca}.character-no-results{padding:28px 16px;text-align:center;color:#6c6d7f}.character-detail{min-width:0;border:1px solid var(--line);background:#fff}.character-card{border:0;margin:0;padding:20px}.character-detail-heading{display:flex;align-items:center;gap:12px;border-bottom:2px solid #4f46b8;margin:-4px 0 18px;padding-bottom:12px}.character-detail-heading h3{margin:0;overflow-wrap:anywhere}.character-detail-back{display:none}.sheet-category{margin-top:12px;border:1px solid var(--line);padding:0;background:#fff}.sheet-category[open]{border-color:#c8c5e8}.sheet-category-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;cursor:pointer;list-style-position:inside;background:#f7f7fa}.sheet-category-head>div{display:inline;font-weight:700;color:#3730a3}.sheet-add-version{margin:12px}.sheet-category>.sheet-version,.sheet-category>.sheet-empty{margin-left:12px;margin-right:12px}.scale-dialog{width:min(900px,94vw);max-width:94vw}.scale-dialog .scale-chart{margin:0}.scale-dialog-content{min-width:0}
@media(max-width:700px){main{padding:12px}.character-master-detail{display:block}.character-master{position:static;width:100%;min-width:0;max-width:none;max-height:none;resize:none}.character-detail{display:none}.character-master-detail.mobile-detail .character-master{display:none}.character-master-detail.mobile-detail .character-detail{display:block;width:100%}.character-card{padding:12px}.character-detail-back{display:inline-flex;min-height:44px}.character-master-heading button,.character-scale-button,.character-list-row,.character-list-tools input,.character-list-tools select,.sheet-category-head,.sheet-add-version{min-height:44px}.character-list-tools{grid-template-columns:1fr 1fr}.character-list-row{grid-template-columns:44px minmax(0,1fr) auto;padding:10px 8px}.character-row-title{display:grid;gap:2px}.character-category-badge{font-size:9px}.sheet-category-head{grid-template-columns:minmax(0,1fr) auto}.sheet-category-head small{grid-column:1/-1}.character-sheets{margin-left:0;margin-right:0}.scale-dialog{width:calc(100vw - 16px);max-width:calc(100vw - 16px);padding:10px}}
@media(max-width:360px){.character-list-tools{grid-template-columns:1fr}.character-list-row{grid-template-columns:40px minmax(0,1fr) auto}.character-avatar{width:40px;height:40px}.character-category-badges{gap:2px}.character-category-badge{padding:1px 3px}}

/* Character navigation refinements after visual QA. */
.character-master{top:12px;max-height:calc(100vh - 24px);border-right:4px solid #d8d6f2;cursor:default}
.character-list-tools{grid-template-columns:1fr}.character-more-filters>summary{display:none}.character-more-filter-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}.character-result-count{padding:0 12px 10px;color:#6c6d7f;font-size:12px}.character-row-title{display:grid;grid-template-columns:max-content minmax(0,1fr)}.character-row-title strong{max-width:150px}.character-row-title small{text-align:right}.character-detail-heading{position:static;background:#fff;padding:10px 0;margin-top:-10px}.character-detail-heading h3{flex:1}.character-detail-save{margin-left:auto}.sheet-category-head{grid-template-columns:auto minmax(0,1fr) auto 24px;list-style:none;min-height:48px}.sheet-category-head::-webkit-details-marker{display:none}.category-chevron{display:grid;place-items:center;width:24px;height:24px;border:1px solid #cbc9dc;color:#4338ca;font-size:16px;line-height:1}.character-category-badge{font-size:11px}
@media(max-width:700px){.workspace-bar{display:flex;flex-wrap:nowrap;align-items:center;overflow-x:auto;gap:6px;padding-bottom:6px}.workspace-bar>*{flex:0 0 auto}.workspace-bar #project-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-bar button{min-height:44px}.character-master{border-right:1px solid var(--line)}.character-list-tools{padding:10px}.character-more-filters>summary{display:flex;align-items:center;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:5px;cursor:pointer;color:#4338ca;background:#fff}.character-more-filter-body{grid-template-columns:1fr 1fr}.character-result-count{padding-bottom:8px}.character-category-badge{font-size:11px;line-height:1.5;padding:2px 5px;color:#4b4b61;background:#f0f0f5}.character-detail-heading{top:0}.character-detail-save{min-height:44px}.sheet-category-head{grid-template-columns:minmax(0,1fr) auto 24px}.sheet-category-head small{grid-column:1/-1}.category-chevron{grid-column:3;grid-row:1}}
@media(max-width:360px){.character-more-filter-body{grid-template-columns:1fr}.character-list-tools{display:grid}.character-category-badge{font-size:10px;padding:2px 4px}}
@media(max-width:760px){header>#account{display:none}header>.logout-link{margin-left:auto}}
@media(max-width:380px){header>.header-current{display:none}}
/* Page desk: the real page on the left, the selected panel's tools on the right. */
.desk{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:18px;align-items:start;margin-bottom:18px}
.desk #composition{max-width:none;margin:0}
.desk #wysiwyg-inspector{position:sticky;top:10px;max-height:calc(100vh - 20px);overflow:auto;margin:0;max-width:none}
#wysiwyg-inspector h4{margin:14px 0 4px}
.wysiwyg-editing .panel-overlay{cursor:move;touch-action:none}
.wysiwyg-overlay-selected{filter:drop-shadow(0 0 2px #4f46b8) drop-shadow(0 0 2px #4f46b8)}
.wy-overlay-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0;padding:6px;border:1px solid var(--line);border-radius:6px}
.wy-overlay-row.active{border-color:#4f46b8;background:#f3f2fc}
.wy-overlay-row textarea{flex:1 1 100%;min-width:0;resize:vertical}
.wy-overlay-row input[type=number]{width:62px}
.wy-overlay-row select{max-width:110px}
.wy-tail{display:flex;align-items:center;gap:2px;font-size:13px}
.wy-add-row,.wy-image{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0}
.wy-upload{display:inline-flex;align-items:center;padding:6px 10px;border:1px dashed #4f46b8;border-radius:6px;cursor:pointer;color:#4f46b8}
.wy-upload input{display:none}
.wy-story{margin:8px 0;padding:6px 10px;background:#f7f7fb;border-radius:6px;font-size:13px}
.wy-story p{margin:4px 0;white-space:pre-wrap}
.wy-story-dialogue{color:#3c3a55}
.wy-delete-panel{margin-top:14px}
.workflow-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;margin:0 0 10px;border:1px solid var(--line);border-radius:8px;background:#fff}
.workflow-steps{display:flex;flex-wrap:wrap;gap:4px;list-style:none;margin:0;padding:0}
.workflow-steps li{font-size:12px;padding:3px 8px;border-radius:999px;background:#eceaf3;color:#5d5a6e}
.workflow-steps li.step-approved{background:#dff3e4;color:#1d6b35}
.workflow-steps li.step-awaiting_approval{background:#fff1cc;color:#7a5600}
.workflow-steps li.current{outline:2px solid #4f46b8}
.workflow-now{font-weight:600}
.workflow-link{margin-left:auto;font-size:13px}
#desk-forms[aria-pressed=true]{background:#4f46b8;color:#fff}
@media(max-width:1100px){.desk{grid-template-columns:1fr}.desk #wysiwyg-inspector{position:static;max-height:none}}
/* Desk first: page title/tools, then the real page; chapter script, full-page image and panel forms follow it. */
.editor{display:flex;flex-direction:column}
.editor>#chapter-script{order:2;margin-top:18px}
#page-editor:not([hidden]){display:flex;flex-direction:column}
#page-editor>#full-page{order:3}
#page-editor>#panels{order:4}
/* Desk: ComfyUI candidates of the selected panel. */
.desk-candidates{margin:14px 0;padding-top:8px;border-top:1px solid var(--line)}
.candidate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.candidate{margin:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fafafe}
.candidate.in-use{border:2px solid #1d6b35}
.candidate img{display:block;width:100%;height:120px;object-fit:cover;background:#eee}
.candidate-placeholder{height:120px;display:grid;place-items:center;color:#5d5a6e;font-size:13px;background:repeating-linear-gradient(45deg,#f1f0f7,#f1f0f7 8px,#e8e6f2 8px,#e8e6f2 16px)}
.candidate-running .candidate-placeholder{color:#4f46b8;font-weight:600}
.candidate figcaption{padding:6px;font-size:12px}
.candidate-note{margin:4px 0;padding:4px 6px;background:#fff6d6;border-radius:4px;white-space:pre-wrap}
.candidate-error{margin:4px 0;color:#a3261f;font-size:12px}
.candidate-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.candidate-actions button{padding:4px 8px;min-height:30px;font-size:12px}
.candidate-badge{font-size:12px;font-weight:600;color:#1d6b35}
.candidate-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px}
.candidate-form label{flex:1 1 100%;font-size:13px}
.candidate-form textarea{flex:1 1 100%;resize:vertical}
/* Continuity: crop of the source panel image, locked to the target panel's shape. */
.char-state{margin-top:12px;padding:8px;border:1px dashed #b4531f;border-radius:6px}
.char-state summary{cursor:pointer;font-weight:600;color:#b4531f}
.char-state-row{display:grid;gap:4px;margin:8px 0;padding:6px;border:1px solid var(--line);border-radius:6px;opacity:.65}
.char-state-row.active{opacity:1;border-color:#b4531f}
.char-state-row textarea,.char-state-row input,.char-state-row select{width:100%}
.char-state-range{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:4px;align-items:center}
.continuity{margin-top:12px;padding:8px;border:1px dashed #4f46b8;border-radius:6px}
.continuity summary{cursor:pointer;font-weight:600;color:#4f46b8}
.continuity select,.continuity textarea{width:100%;margin:6px 0}
.crop-frame{position:relative;margin:6px 0;line-height:0;user-select:none;overflow:hidden}
.crop-frame img{width:100%;display:block}
.crop-rect{position:absolute;border:2px solid #fff;outline:2px solid #4f46b8;box-shadow:0 0 0 999px #0007;cursor:move;touch-action:none}
.crop-size{display:block;font-size:12px}
/* Fix one thing in a candidate (edit from that image). */
.candidate-fix{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.candidate-fix textarea{flex:1 1 100%;min-width:0;font-size:12px;resize:vertical}
