.project-bar{display:flex;align-items:center;gap:8px;padding:9px 15px;background:#182725;border-bottom:1px solid #36534c}.project-bar[hidden],.project-options[hidden]{display:none}.project-bar label{display:flex;align-items:center;gap:8px;flex:1;min-width:100px;color:#8ccec1;font-size:calc(11px * var(--ui-density, 1));white-space:nowrap}.project-bar input{padding:calc(5px * var(--ui-density, 1)) calc(8px * var(--ui-density, 1));font-size:calc(12px * var(--ui-density, 1))}.project-bar button{padding:calc(5px * var(--ui-density, 1)) calc(8px * var(--ui-density, 1));font-size:calc(11px * var(--ui-density, 1))}.project-bar span{font-size:calc(10px * var(--ui-density, 1));color:#8eb8a9;white-space:nowrap}.project-options{padding:14px 0;margin-bottom:18px;border-top:1px solid #36534c;border-bottom:1px solid #36534c}.project-options h3{font-size:calc(13px * var(--ui-density, 1));color:#b0d8c9;margin:0 0 10px}.project-options .field{margin-bottom:12px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:10px 0}.project-grid label{display:block;min-width:0;font-size:calc(11px * var(--ui-density, 1));color:#aabac0}.project-grid input,.project-grid select{display:block;width:100%;margin-top:6px;height:calc(36px * var(--ui-density, 1));padding:calc(5px * var(--ui-density, 1)) calc(8px * var(--ui-density, 1))}.project-grid input[type=color]{padding:calc(4px * var(--ui-density, 1))}.project-options>button{display:block;width:100%;margin:9px 0}.project-options .tip{margin:7px 0 12px;font-size:calc(10px * var(--ui-density, 1))}.ai-repair{color:#ade9d9;border-color:#548f7b;background:#294a3f}#aiRepairInstruction{margin-top:7px}#projectTextOptions .field>select{margin-top:6px}@media(max-width:1050px){.project-bar{flex-wrap:wrap}.project-bar label{flex-basis:100%}}
.paint-tools{display:flex;gap:5px;flex-wrap:wrap;margin:9px 0}.paint-tools button{font-size:calc(10px * var(--ui-density, 1));flex:1;padding:calc(6px * var(--ui-density, 1))}.paint-tools button.active{color:#a8e6d6;background:#30584c;border-color:#74bba7}.paint-tools span{font-size:calc(10px * var(--ui-density, 1));color:#9bcbbb}.project-options>.check{font-size:calc(10px * var(--ui-density, 1));margin-bottom:9px}#batchRepairState{flex-basis:100%;color:#a8cdbf}#batchRepairState[hidden]{display:none}.project-bar{flex-wrap:wrap}.project-bar label{flex-basis:200px}#annotationPromptEditor textarea{font-size:calc(11px * var(--ui-density, 1));line-height:1.7}#aiRepairInstruction{font-size:calc(11px * var(--ui-density, 1));line-height:1.7}
.quality-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 15px;border-bottom:1px solid #344940;background:#182220;font-size:calc(10px * var(--ui-density, 1));color:#a3c7b7}.quality-bar[hidden],.layer-project-controls[hidden]{display:none}.quality-bar>span{flex:1}.quality-bar button{font-size:calc(10px * var(--ui-density, 1));padding:calc(4px * var(--ui-density, 1)) calc(7px * var(--ui-density, 1))}.quality-bar input,.layer-project-controls input{width:auto}.quality-bar label{display:flex;gap:4px;align-items:center}.compare-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:calc(10px * var(--ui-density, 1));width:100%}.compare-tools label{display:flex;align-items:center;gap:5px;color:#9cbeb3}.compare-tools select{width:auto;margin:0;padding:calc(4px * var(--ui-density, 1)) calc(6px * var(--ui-density, 1));font-size:calc(10px * var(--ui-density, 1))}.compare-tools button{margin-left:auto}.stage.cutout-stage.alpha-dark{background:#111a23}.stage.cutout-stage.alpha-light{background:#f3f3f0}.layer-project-controls{display:flex;gap:calc(18px * var(--ui-density, 1));font-size:calc(11px * var(--ui-density, 1));margin:8px 0 16px;color:#b1c8bf}.layer-project-controls label{display:flex;align-items:center;gap:calc(5px * var(--ui-density, 1))}
.fill-preview-options{padding:0;border:0;border-radius:0;margin:0;background:transparent}.fill-preview-options h3{margin-top:0}.fill-preview-options label{display:block;font-size:calc(11px * var(--ui-density, 1));margin:9px 0}.fill-preview-options input[type=checkbox]{width:auto}.fill-preview-options input[type=range]{width:100%;padding:0;accent-color:#83dac1}.fill-preview-options output{float:right;color:#9ce8d0}.fill-preview-options select{margin-top:6px}.element-chat{width:min(640px,94vw);max-height:90dvh;overflow:auto}.element-chat>label{display:block;padding:0 22px}.element-chat>label textarea{margin-top:8px;width:100%}.element-chat>.tip{margin:12px 22px}.element-chat-history{max-height:280px;overflow:auto;margin:0 22px 16px;display:grid;gap:10px}.chat-message{padding:10px 12px;background:#263732;border-radius:8px}.chat-message.user{background:#26323e}.chat-message small{color:#99cbbc}.chat-message p{white-space:pre-wrap;margin:5px 0 0;overflow-wrap:anywhere}body.large-preview #selectionBar{display:none}
.layer-project-controls{flex-wrap:wrap}.layer-order-buttons{display:flex;gap:calc(6px * var(--ui-density, 1));width:100%}.layer-order-buttons button{flex:1;font-size:calc(10px * var(--ui-density, 1));padding:calc(6px * var(--ui-density, 1))}.text-alignment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:10px 0}.text-alignment-grid button{padding:calc(6px * var(--ui-density, 1));font-size:calc(16px * var(--ui-density, 1));line-height:1}.text-alignment-grid .active{background:#30584b;border-color:#7fd1b7;color:#aff1da}.layer[draggable=true]{cursor:grab;position:relative}.layer.dragging{opacity:.45}.layer.drop-before{box-shadow:inset 0 3px #91e6cc}.layer.drop-after{box-shadow:inset 0 -3px #91e6cc}#assetSizeState{color:#b0e4ce;overflow-wrap:anywhere}

#projectExportDialog{max-width:650px;width:92vw}#projectExportDialog select{width:100%;margin-top:10px}.export-description{color:#bbd6cb;line-height:1.9;font-size:calc(13px * var(--ui-density, 1))}#engineExportStatus{color:#9de1c6;font-size:calc(12px * var(--ui-density, 1));line-height:1.8}#engineExportError{color:#ffc4b4;font-size:calc(12px * var(--ui-density, 1));line-height:1.8}#engineExportError[hidden]{display:none}

#floatingChatLauncher{position:fixed;right:18px;bottom:48px;z-index:150;box-shadow:0 6px 24px #0005;border-color:var(--accent);color:var(--accent);padding:10px 18px;border-radius:24px}
#elementChatDialog.floating-element-chat{position:fixed;inset:auto auto 76px 50%;transform:translateX(-50%);margin:0;width:min(480px,calc(100vw - 28px));max-width:none;height:min(600px,calc(100dvh - 150px));max-height:none;padding:0;border:1px solid #435b73;border-radius:14px;background:#1b2735;color:var(--text);box-shadow:0 18px 64px #0008;z-index:149;overflow:hidden}
#elementChatDialog.floating-element-chat[open]{display:flex;flex-direction:column}
.floating-element-chat .dialog-top{padding:16px 18px 10px;flex-shrink:0;border-bottom:1px solid var(--line)}
.floating-element-chat .dialog-top h2{margin:0 0 10px;font-size:calc(16px * var(--ui-density, 1))}.floating-element-chat #closeElementChat{float:right;padding:0;width:28px;height:28px;font-size:calc(22px * var(--ui-density, 1))}
.floating-element-chat #chatSelectionNames{margin:0;display:flex;gap:5px;flex-wrap:wrap;max-height:76px;overflow:auto;font-size:calc(11px * var(--ui-density, 1));color:var(--muted)}
.chat-context-actions{display:flex;gap:8px;margin-top:10px}.chat-context-actions button,.chat-context-chip{font-size:calc(11px * var(--ui-density, 1));padding:calc(4px * var(--ui-density, 1)) calc(8px * var(--ui-density, 1))}.chat-context-chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.floating-element-chat .element-chat-history{flex:1;min-height:0;max-height:none;margin:0;padding:14px 18px;display:block}.floating-element-chat .chat-message{margin-bottom:10px;font-size:calc(12px * var(--ui-density, 1))}
.floating-element-chat>label{flex-shrink:0;padding:0 18px;font-size:calc(11px * var(--ui-density, 1));margin:5px 0}.floating-element-chat select{width:100%;margin-top:5px}.floating-element-chat textarea{box-sizing:border-box;height:calc(76px * var(--ui-density, 1));max-height:120px;min-height:calc(58px * var(--ui-density, 1));resize:vertical}
.floating-element-chat>.tip{flex-shrink:0;margin:6px 18px;font-size:calc(11px * var(--ui-density, 1));max-height:42px;overflow:auto}.floating-element-chat .dialog-actions{flex-shrink:0;padding:10px 18px;margin:0;justify-content:flex-end;border-top:1px solid var(--line)}
@media(max-width:640px){#elementChatDialog.floating-element-chat{left:50%;right:auto;bottom:76px;height:min(580px,calc(100dvh - 120px))}#floatingChatLauncher{right:12px;bottom:42px}}

@media(max-height:650px){.floating-element-chat .dialog-top{padding:10px 14px 6px}.floating-element-chat .dialog-top h2{margin-bottom:6px}.floating-element-chat #chatSelectionNames{max-height:42px}.floating-element-chat .chat-context-actions{margin-top:6px}.floating-element-chat textarea{height:calc(60px * var(--ui-density, 1))}.floating-element-chat>label{margin:3px 0}.floating-element-chat select{padding-top:calc(6px * var(--ui-density, 1));padding-bottom:calc(6px * var(--ui-density, 1))}.floating-element-chat .dialog-actions{padding-top:7px;padding-bottom:7px}}

.layer-menu button[hidden]{display:none}.layer-menu{z-index:180}

.canvas-footer{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;min-height:34px;height:auto}
.canvas-footer #canvasHint{grid-column:1;grid-row:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.canvas-footer #pointerPos{grid-column:3;grid-row:1;min-width:0;text-align:right;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.canvas-footer #floatingChatLauncher{grid-column:2;grid-row:1;position:static;transform:none;inset:auto;margin:0;padding:1px 10px;min-height:22px;font-size:calc(11px * var(--ui-density, 1));line-height:calc(18px * var(--ui-density, 1));border-radius:5px;box-shadow:none;z-index:auto}

/* Composer layout keeps the model and send controls inside the input area. */
.floating-element-chat .dialog-top{padding:calc(12px * var(--ui-density, 1)) calc(16px * var(--ui-density, 1));border-bottom:0}.floating-element-chat .dialog-top h2{margin:0;font-size:calc(14px * var(--ui-density, 1));line-height:calc(28px * var(--ui-density, 1))}
.floating-element-chat .chat-composer{flex-shrink:0;margin:8px 12px 12px;padding:10px;border:1px solid #415166;border-radius:18px;background:#222e3e}
.floating-element-chat .chat-composer #chatSelectionNames{margin:0 0 8px;max-height:68px}.floating-element-chat .chat-composer #chatSelectionNames:empty{display:none}
.floating-element-chat .chat-composer textarea{display:block;width:100%;height:calc(86px * var(--ui-density, 1));min-height:calc(58px * var(--ui-density, 1));max-height:150px;padding:calc(6px * var(--ui-density, 1));border:0;outline:none;background:transparent;resize:vertical;font-size:calc(13px * var(--ui-density, 1));box-shadow:none}
.floating-element-chat .chat-composer textarea:focus-visible{outline:0}
.chat-composer-footer{display:flex;gap:8px;align-items:center;padding-top:6px}.chat-composer-footer .chat-context-actions{display:flex;gap:4px;margin:0}.chat-composer-footer .chat-context-actions button{border:0;background:transparent;padding:calc(4px * var(--ui-density, 1)) calc(6px * var(--ui-density, 1))}.chat-composer-footer .chat-context-actions>button:first-child{font-size:calc(20px * var(--ui-density, 1));width:calc(30px * var(--ui-density, 1));height:calc(30px * var(--ui-density, 1));padding:0}.chat-composer-footer .chat-context-actions>button:last-child{font-size:calc(10px * var(--ui-density, 1))}
.floating-element-chat .chat-composer-footer select{flex:1;min-width:0;width:auto;margin:0;border:0;background:transparent;padding:calc(6px * var(--ui-density, 1)) calc(2px * var(--ui-density, 1));font-size:calc(11px * var(--ui-density, 1));text-overflow:ellipsis}
.floating-element-chat #sendElementChat{flex-shrink:0;width:32px;height:32px;padding:0;border-radius:50%;font-size:calc(21px * var(--ui-density, 1));line-height:1}
.floating-element-chat #elementChatStatus{margin:0 18px;font-size:calc(11px * var(--ui-density, 1))}.floating-element-chat #elementChatStatus:empty{display:none}
@media(max-height:650px){.floating-element-chat .chat-composer textarea{height:calc(62px * var(--ui-density, 1))}.floating-element-chat .chat-composer{margin-top:4px}}

#elementChatDialog.floating-element-chat.chat-empty{height:auto;max-height:calc(100dvh - 150px)}.floating-element-chat .element-chat-history:empty{display:none}

.chat-generated-image{display:block;max-width:100%;height:auto;margin-top:10px;border-radius:8px}
.chat-image-actions{display:flex;gap:8px;margin-top:8px}.chat-image-actions button{padding:calc(4px * var(--ui-density, 1)) calc(10px * var(--ui-density, 1));font-size:calc(11px * var(--ui-density, 1));border-radius:calc(7px * var(--ui-density, 1));background:#2c3f54;color:#d9e4ef;border:1px solid #3d5067;cursor:pointer}.chat-image-actions button:hover:not(:disabled){background:#374d66}.chat-image-actions button:disabled{opacity:.45;cursor:not-allowed}

#projectsPanelDialog{width:min(1100px,94vw);max-width:94vw}
#projectsPanelDialog .dialog-top p.tip{max-width:none}
.projects-panel-list{display:flex;flex-direction:column;gap:10px;max-height:68vh;overflow:auto;min-width:0;padding:2px}
.projects-panel-item{display:flex;gap:14px;align-items:center;padding:12px 14px;border:1px solid #33465d;border-radius:10px;background:#1c2938}
.projects-panel-item.current{border-color:var(--accent,#5aa7c7)}
.projects-panel-item img{width:150px;height:92px;object-fit:contain;border-radius:6px;flex-shrink:0;padding:5px;box-sizing:border-box;background:repeating-conic-gradient(#18242f 0% 25%,#0f1922 0% 50%) 0 0/14px 14px;border:1px solid #2b3d50}
.projects-panel-info{flex:1;min-width:0}.projects-panel-info strong{display:block;font-size:calc(14px * var(--ui-density, 1));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.projects-panel-info small{color:var(--muted,#8fa5b8)}
.projects-panel-title{display:flex;gap:8px;align-items:center;min-width:0}
.projects-panel-title strong{flex:1;min-width:0}
.projects-panel-actions{display:flex;gap:8px;flex-shrink:0}
#projectsPanelNote{margin:0 0 10px;padding:8px 12px;border-radius:8px;background:#1e2c3a;border:1px solid #33506a;color:#a9c2d6}
.projects-panel-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.projects-panel-toolbar .tip{margin:0;flex:1}
#newProjectDialog{width:min(760px,94vw);max-width:94vw}
#kitLibraryDialog{width:min(1080px,94vw);max-width:94vw}
.kit-library-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0 8px}
.kit-library-toolbar label{display:flex;align-items:center;gap:6px;font-size:calc(12px * var(--ui-density, 1))}
.kit-library-toolbar button{white-space:nowrap}
.kit-toolbar-gap{flex:1}
.kit-gen{border:1px solid #33465d;border-radius:10px;background:#1b2938;padding:10px 12px;margin-bottom:12px}
.kit-gen-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:10px 14px;align-items:start}
.kit-gen-style,.kit-gen-model{display:flex;flex-direction:column;gap:6px;min-width:0}
.kit-gen-style label,.kit-gen-model label{display:flex;flex-direction:column;gap:6px;font-size:calc(12px * var(--ui-density, 1))}
.kit-gen textarea{width:100%;resize:vertical;min-height:calc(76px * var(--ui-density, 1));font:inherit}
.kit-gen select{max-width:100%}
.kit-gen-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.kit-gen-actions #kitPickSummary{margin-right:auto}
.kit-progress{margin:10px 0 0}
.kit-progress progress{width:100%;height:6px;accent-color:var(--accent,#5aa7c7)}

/* 元素选择：只显示名称，胶囊一个接一个铺满一行再换行，点一下就是勾选/取消。 */
.kit-chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 2px 6px;border-top:1px solid #2b3d50;max-height:40vh;overflow:auto}
.kit-chips>p{margin:0}
.kit-chip{position:relative;font-size:calc(11px * var(--ui-density, 1));line-height:1.5;padding:4px 10px;border-radius:999px;border:1px solid #33465d;background:#18242f;color:#8fa5b8;cursor:pointer;white-space:nowrap}
.kit-chip:hover{border-color:#4a6a86;color:#cfe0ef}
.kit-chip.checked{border-color:#5aa7c7;background:#1b3040;color:#e6f3ff}
.kit-chip.generated::after{content:'';position:absolute;top:3px;right:4px;width:4px;height:4px;border-radius:50%;background:#7fd18a}

/* 图集画布尺寸 + 每张格数 + 输出摘要。 */
.kit-gen-sheet{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:10px}
.kit-gen-sheet label{display:flex;align-items:center;gap:6px;font-size:calc(12px * var(--ui-density, 1))}
.kit-gen-sheet [hidden]{display:none!important}
.kit-output{font-size:calc(11px * var(--ui-density, 1));color:#d7e8f5;background:#1b3040;border:1px solid #3d5b74;border-radius:999px;padding:2px 10px;white-space:nowrap}

/* 图集大图预览：一张一行卡片，宽度按比例缩。 */
.kit-sheets{border:1px solid #33465d;border-radius:10px;background:#1b2938;padding:10px 12px;margin-bottom:12px}
.kit-sheets header{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.kit-sheets h3{margin:0;font-size:calc(12px * var(--ui-density, 1));color:#cfe0ef}
.kit-sheet-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:8px}
.kit-sheet-card{border:1px solid #2b3d50;border-radius:8px;overflow:hidden;background:#16212c}
.kit-sheet-open{display:block;width:100%;padding:0;border:0;background:repeating-conic-gradient(#18242f 0% 25%,#0f1922 0% 50%) 0 0/14px 14px;cursor:zoom-in}
.kit-sheet-open:hover{outline:1px solid #5aa7c7;outline-offset:-1px}
.kit-sheet-card img{display:block;width:100%;height:auto}
.kit-sheet-card p{margin:0;padding:6px 8px;font-size:calc(10px * var(--ui-density, 1));line-height:1.6;color:#8fa5b8;display:flex;justify-content:space-between;gap:8px}
.kit-sheet-card p a{color:#7fb9d6;text-decoration:none;white-space:nowrap}
.kit-sheet-card p span{display:flex;gap:8px;align-items:center;flex-shrink:0}
.kit-sheet-redraw{font-size:calc(10px * var(--ui-density, 1));padding:1px 7px;border-radius:5px;line-height:1.5}


.floating-element-chat.chat-empty .element-chat-history{display:none}.chat-drag-handle{cursor:grab;touch-action:none}.chat-dragging .chat-drag-handle{cursor:grabbing}.chat-dragging{user-select:none}
.chat-task-card{margin:10px 0;padding:12px;background:#233143;border:1px solid #3d5067;border-radius:12px;font-size:calc(12px * var(--ui-density, 1))}.chat-task-card>strong{display:block}.chat-task-card>small{display:block;color:var(--muted);margin-top:5px}.chat-task-card p{margin:8px 0;white-space:pre-wrap;overflow-wrap:anywhere}.chat-task-card .chat-task-prompt{padding:8px;background:#192634;border-radius:7px;max-height:100px;overflow:auto}.chat-task-card progress{display:block;width:100%;height:5px;margin:10px 0;accent-color:var(--accent)}.chat-task-card details{margin:10px 0}.chat-task-card summary{cursor:pointer;color:var(--muted)}.chat-task-card ol{max-height:170px;overflow:auto;padding-left:20px;font-size:calc(11px * var(--ui-density, 1));color:#acbfd0}.chat-task-card li{margin:5px 0}.chat-task-card[data-state=failed]{border-color:#a55a65}.chat-task-card[data-state=review]{border-color:#a88b4b}.chat-task-card>button{padding:calc(4px * var(--ui-density, 1)) calc(9px * var(--ui-density, 1));font-size:calc(11px * var(--ui-density, 1))}
.chat-sent{margin:9px 0 0;padding:9px;border:1px solid #33465d;border-radius:9px;background:#192634;display:flex;gap:9px;align-items:flex-start}
.chat-sent-media{flex:0 0 88px;display:flex;flex-direction:column;gap:6px}
.chat-sent-media:empty{display:none}
.chat-sent-media img{display:block;width:88px;max-height:80px;object-fit:contain;border-radius:6px;background:#101b26}
.chat-sent figcaption{flex:1;min-width:0}
.chat-sent .chat-sent-label{display:block;margin-bottom:5px;font-size:calc(10px * var(--ui-density, 1));letter-spacing:.04em;color:#93a9c0}
.chat-sent .chat-sent-text{margin:0;max-height:64px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:calc(11px * var(--ui-density, 1));line-height:1.55;color:#cddbe9}
.chat-task-references,.chat-task-files{display:flex;flex-wrap:wrap;gap:5px}.chat-task-references:empty{display:none}.chat-task-references{margin-bottom:7px;max-height:64px;overflow:auto}.chat-file-chip,.chat-task-files span{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:4px 7px;font-size:calc(10px * var(--ui-density, 1));border:1px solid #45566c;border-radius:6px;color:#b8cbdd}

.floating-element-chat .chat-composer-footer #elementChatModel{flex:0 1 180px;width:180px;max-width:180px;min-width:110px;height:30px;padding:4px 8px;color:#edf4ff;background:#263448;border:1px solid #495d76;border-radius:8px;font-size:calc(12px * var(--ui-density, 1));opacity:1;color-scheme:dark}
#elementChatModel option,#elementChatModel optgroup{background:#202d3e;color:#f1f5fa;font-size:calc(12px * var(--ui-density, 1))}
.floating-element-chat .chat-composer-footer .chat-context-actions>button:last-child{width:calc(26px * var(--ui-density, 1));height:calc(28px * var(--ui-density, 1));padding:0;font-size:calc(16px * var(--ui-density, 1))}
.floating-element-chat #sendElementChat{margin-left:auto;display:grid;place-items:center;width:34px;height:34px;border:1px solid #b5efe5;background:#a2e9dc;color:#103b38;box-shadow:0 2px 8px #0003;transition:background .15s,box-shadow .15s,transform .15s}
.floating-element-chat #sendElementChat:hover:not(:disabled){background:#c3f7ec;box-shadow:0 3px 12px #68dac344;transform:translateY(-1px)}
.floating-element-chat #sendElementChat:active:not(:disabled){transform:translateY(0)}.floating-element-chat #sendElementChat:disabled{background:#36465a;color:#9eb1c7;border-color:#465a72;box-shadow:none;opacity:1}
#sendElementChat[data-sending=true] svg{animation:chat-send-spin 1s linear infinite}@keyframes chat-send-spin{to{transform:rotate(360deg)}}
.floating-element-chat .chat-clear-context{float:right;display:grid;place-items:center;width:28px;height:28px;padding:0;margin-right:7px;border:0;background:transparent;color:#a8b9cd}.floating-element-chat .chat-clear-context:hover{background:#344559;color:#edf5ff}
@media(prefers-reduced-motion:reduce){#sendElementChat[data-sending=true] svg{animation:none}.floating-element-chat #sendElementChat{transition:none}}
#previewControls #floatingChatLauncher{position:static;inset:auto;margin:0;padding:5px 10px;font-size:calc(12px * var(--ui-density, 1));line-height:normal;border-radius:6px;box-shadow:none;z-index:auto}
#headerChatLauncher{color:var(--accent);border-color:var(--accent)}
#headerChatLauncher[hidden]{display:none}
.chat-task-stop{margin-top:8px;padding:4px 10px;font-size:calc(11px * var(--ui-density, 1));border-radius:7px;background:#3a2a2c;color:#ffb3b3;border:1px solid #a55a65;cursor:pointer}
.chat-task-stop:hover:not(:disabled){background:#4a3336}

/* AI 对话框：标题栏操作与引用按钮统一成图标按钮 */
#elementChatDialog .dialog-top{position:relative;padding-right:78px}
.chat-dialog-actions{position:absolute;top:2px;right:0;display:flex;align-items:center;gap:6px}
.chat-icon-button,.chat-dialog-actions .chat-clear-context,#elementChatDialog #closeElementChat{float:none;display:grid;place-items:center;width:calc(30px * var(--ui-density, 1));height:calc(30px * var(--ui-density, 1));min-width:calc(30px * var(--ui-density, 1));padding:0;margin:0;border:1px solid transparent;border-radius:calc(9px * var(--ui-density, 1));background:transparent;color:#a8b9cd;font-size:0;line-height:0;transition:background .15s ease,color .15s ease,border-color .15s ease}
.chat-icon-button:hover,.chat-dialog-actions .chat-clear-context:hover,#elementChatDialog #closeElementChat:hover{background:#344559;border-color:#47596f;color:#edf5ff}
.chat-icon-button:focus-visible,.chat-dialog-actions .chat-clear-context:focus-visible,#elementChatDialog #closeElementChat:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.chat-icon-button:disabled,.chat-dialog-actions .chat-clear-context:disabled{opacity:.4;cursor:default;background:transparent;border-color:transparent}
.chat-icon-button svg{pointer-events:none}
.chat-context-actions{gap:3px;margin:0}
#elementChatDialog .chat-context-actions>button.chat-icon-button{width:calc(30px * var(--ui-density, 1));height:calc(30px * var(--ui-density, 1));padding:0;font-size:0;border-radius:calc(9px * var(--ui-density, 1))}
#elementChatDialog .chat-context-actions>button.chat-icon-button:hover{background:#344559;border-color:#47596f;color:#edf5ff}
.chat-task-retry{margin-top:8px;margin-left:8px;padding:4px 12px;font-size:calc(11px * var(--ui-density, 1));border-radius:7px;background:#1f3b3d;color:#b8f1eb;border:1px solid #4d8f8a;cursor:pointer;font-weight:600}
.chat-task-retry:hover:not(:disabled){background:#2a5053;border-color:#63b0a8}
.chat-task-retry:disabled{opacity:.55;cursor:default}

/* 对话面板生图参数：底栏触发按钮 + 弹出分段选择面板 */
.chat-composer{position:relative}
.chat-gen-trigger{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:calc(11px * var(--ui-density, 1));color:#c7d5e3;background:#263448;border:1px solid #495d76;border-radius:8px;cursor:pointer;white-space:nowrap;flex-shrink:0}
.chat-gen-trigger:hover{border-color:#6f89a8;color:#e8f1f8}
.chat-gen-trigger[hidden]{display:none}
.chat-gen-summary{max-width:calc(150px * var(--ui-density, 1));overflow:hidden;text-overflow:ellipsis}
.chat-gen-caret{font-size:calc(9px * var(--ui-density, 1));color:#8ba0b8}
/* 面板是 dialog 的子节点，用 absolute 而不是 fixed：dialog 居中用的 transform 会让
   子元素的 fixed 退化成「相对 dialog」定位，导致面板飞出屏幕被 overflow:hidden 裁掉。 */
.chat-gen-params{position:absolute;z-index:1000;display:flex;flex-direction:column;gap:9px;width:max-content;max-width:min(420px,calc(100% - 16px));max-height:calc(100% - 16px);overflow:auto;padding:12px 14px;background:#1d2a38;border:1px solid #3a4f66;border-radius:12px;box-shadow:0 8px 28px #000a}
.chat-gen-params[hidden]{display:none}
.chat-gen-group{display:flex;align-items:center;gap:12px}
.chat-gen-label{flex:0 0 30px;font-size:calc(11px * var(--ui-density, 1));color:#9fb4c9}
.chat-gen-chips{display:flex;gap:6px;flex-wrap:wrap}
.chat-gen-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;font-size:calc(11px * var(--ui-density, 1));color:#c7d5e3;background:#263448;border:1px solid #495d76;border-radius:8px;cursor:pointer}
.chat-gen-chip:hover:not(.active){border-color:#6f89a8;color:#e8f1f8}
.chat-gen-chip.active{color:#0f3a34;background:#a2e9dc;border-color:#b5efe5;font-weight:600}
.chat-gen-chip .ratio-icon{display:inline-block;background:currentColor;opacity:.75;border-radius:2px}

/* 图集面板「只看未修复」开关 */
.atlas-sprite-selection .dialog-actions button.active{color:#a8e6d6;background:#30584c;border-color:#74bba7;font-weight:600}
/* 失败重试：当前对话（默认）与新对话并排 */
.chat-task-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;align-items:center}
.chat-task-actions .chat-task-retry{margin:0}
.chat-task-retry-new{background:#243443;border-color:#51708a;color:#d4e6f5}

/* AI 对话模式切换：讨论 / 项目助手 */
.chat-mode-toggle{display:inline-flex;flex:0 0 auto;align-self:center;border:1px solid #495d76;border-radius:8px;overflow:hidden;background:#263448}
.chat-mode-button{padding:5px 12px;border:0;background:transparent;color:#9fb4c9;font-size:calc(11px * var(--ui-density, 1));cursor:pointer;white-space:nowrap}
.chat-mode-button:hover{color:#e8f1f8}
.chat-mode-button.active{color:#0f3a34;background:#a2e9dc;font-weight:600}
/* 项目助手执行结果与待确认任务 */
.chat-assistant-result{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center}
.chat-assistant-chip{display:inline-flex;align-items:center;padding:3px 10px;font-size:calc(11px * var(--ui-density, 1));color:#bde8d8;background:#22423a;border:1px solid #3f6d5c;border-radius:8px}
.chat-assistant-chip.chat-assistant-failed{color:#f2c3c3;background:#4a2b2b;border-color:#7d4a4a}
.chat-assistant-job{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;font-size:calc(11px * var(--ui-density, 1));color:#0f3a34;background:#a2e9dc;border:1px solid #b5efe5;border-radius:8px;cursor:pointer;font-weight:600}
.chat-assistant-job:hover{filter:brightness(1.08)}
.chat-assistant-job:disabled{opacity:.55;cursor:default}
.chat-task-retry-new:hover:not(:disabled){background:#2d4356;border-color:#6f96b3}

/* ================= AI 对话面板精修：收敛圆角 · 层次化表面 · 控制台质感 ================= */
/* 圆角节奏统一为 10/8/6/4，去掉胶囊感；表面用背景微差与 hairline 分层，不用粗边框。 */
#elementChatDialog.floating-element-chat{border-radius:10px;border:1px solid #3a4c60;background:linear-gradient(180deg,#1d2836 0%,#19232f 100%);box-shadow:inset 0 1px 0 #ffffff0f,0 2px 10px #00000059,0 24px 56px -12px #000000b3}
.floating-element-chat .dialog-top{border-bottom:1px solid #ffffff0a;background:linear-gradient(180deg,#24324700,#1c273500);position:relative}
.floating-element-chat .dialog-top::after{content:'';position:absolute;left:16px;right:16px;bottom:0;height:1px;background:linear-gradient(90deg,#68dac300,#68dac326 30%,#68dac326 70%,#68dac300)}
.floating-element-chat .dialog-top h2{font-weight:600;letter-spacing:.02em;color:#eaf1f8}
.floating-element-chat .chat-composer{border-radius:10px;border-color:#39485c;background:#131c26;box-shadow:inset 0 1px 3px #00000040;transition:border-color .15s ease,box-shadow .15s ease}
.floating-element-chat .chat-composer:focus-within{border-color:#4d7a6e;box-shadow:inset 0 1px 3px #00000040,0 0 0 1px #68dac32e}
.floating-element-chat .chat-message{border-radius:8px;border:1px solid #ffffff08;background:#202c3a}
.floating-element-chat .chat-message.assistant{border-left:2px solid #68dac3;border-radius:4px 8px 8px 4px;background:#1e2a36}
.floating-element-chat .chat-message.user{background:#263448;border-radius:8px 4px 8px 8px;margin-left:0;border:1px solid #ffffff06}
.floating-element-chat .chat-message small{letter-spacing:.03em}
.chat-task-card{border-radius:8px;border-color:#33445a;background:#1f2c3c;box-shadow:0 1px 4px #0000002e}
.chat-task-card .chat-task-prompt,.chat-sent{border-radius:6px}
.chat-sent-media img{border-radius:5px}
.chat-icon-button,.chat-dialog-actions .chat-clear-context,#elementChatDialog #closeElementChat{border-radius:7px}
#elementChatDialog .chat-context-actions>button.chat-icon-button{border-radius:7px}
.chat-task-stop,.chat-task-retry{border-radius:6px}
.chat-image-actions button{border-radius:6px}
.chat-generated-image{border-radius:6px}
.chat-file-chip,.chat-task-files span{border-radius:5px}
.chat-mode-toggle{border-radius:7px;overflow:hidden;background:#1a2531;border-color:#39485c}
.chat-mode-button{padding:4px 11px}
.chat-mode-button.active{background:#68dac3}
.chat-assistant-chip{border-radius:6px}
.chat-assistant-job{border-radius:6px}
.floating-element-chat .chat-composer-footer #elementChatModel{border-radius:7px;border-color:#39485c;background:#1d2938}
.floating-element-chat #sendElementChat{border-radius:8px}
.floating-element-chat .chat-gen-trigger{border-radius:7px}
.floating-element-chat .chat-gen-params{border-radius:9px;border-color:#39485c;background:#1d2938;box-shadow:0 8px 28px #00000073}
.chat-gen-chip{border-radius:6px}
.chat-context-chip{border-radius:6px}
/* 消息区滚动条与内边距节奏 */
.floating-element-chat .element-chat-history{padding:12px 14px;scrollbar-width:thin;scrollbar-color:#39485c transparent}
.floating-element-chat .element-chat-history::-webkit-scrollbar{width:8px}
.floating-element-chat .element-chat-history::-webkit-scrollbar-thumb{background:#33445a;border-radius:4px;border:2px solid transparent;background-clip:content-box}
.floating-element-chat .element-chat-history::-webkit-scrollbar-thumb:hover{background-color:#4a6180}
.floating-element-chat .chat-composer #chatSelectionNames{scrollbar-width:thin}
/* 发送按钮：方形圆角，弱化玩具感 */
.floating-element-chat #sendElementChat{box-shadow:0 1px 4px #00000038}
.floating-element-chat #sendElementChat:hover:not(:disabled){box-shadow:0 2px 10px #68dac340;transform:none}
.floating-element-chat #sendElementChat:active:not(:disabled){transform:none}

#nodeAnchorControls{margin:0;padding:0}#nodeAnchorControls summary{cursor:pointer;font-size:12px;margin:6px 0;color:var(--muted)}#nodeAnchorControls .tip{font-size:11px;line-height:1.5;margin-bottom:0}
body #sourceBoundsFields[hidden]{display:none!important}
body #worldPositionFields[hidden]{display:none!important}
#worldPositionFields{display:grid;grid-template-columns:62px repeat(2,minmax(0,1fr));gap:6px;align-items:center;margin-bottom:8px;color:var(--muted);font-size:12px}
#worldPositionFields>label{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:2px;min-width:0;margin:0}
#worldPositionFields input{width:100%;margin:0;color:var(--muted);appearance:textfield}
#worldPositionFields input::-webkit-inner-spin-button{appearance:none;margin:0}

.anchor-preset-row{display:grid;grid-template-columns:45% 1fr;gap:4px;align-items:center;font-size:12px;margin-bottom:6px}.anchor-preset-row>span{color:var(--muted)}body button#anchorPresetButton{display:flex;align-items:center;gap:5px;width:100%;height:25px!important;min-height:25px!important;max-height:25px!important;padding:0 4px!important;text-align:left}#anchorPresetButton svg{width:22px;height:22px;flex:none}#anchorPresetButton>span:last-child{margin-left:auto}.anchor-icon-parent{fill:none;stroke:#758797;stroke-width:1.2}.anchor-icon-axis{fill:none;stroke:#758797;opacity:.4;stroke-dasharray:2 2}.anchor-icon-range{fill:#f3b87418;stroke:#f3b874;stroke-width:1.5}.anchor-icon-marker{fill:#f3b874;stroke:#251c0d;stroke-width:.6}.anchor-icon-pivot{fill:#7ae9d0;stroke:#173b36;stroke-width:.6}.anchor-preset-grid{display:grid;grid-template-columns:repeat(4,40px);grid-auto-rows:40px;gap:8px 4px;margin:6px 0 10px;padding:8px;border:1px solid var(--line);background:var(--panel,#18222c)}body #anchorPresetGrid button{display:flex;align-items:center;justify-content:center;padding:0!important;width:40px!important;min-width:40px!important;max-width:40px!important;height:40px!important;min-height:40px!important;max-height:40px!important;box-sizing:border-box;overflow:hidden}.anchor-preset-grid svg{width:32px;height:32px;flex:none}.anchor-preset-grid button[aria-pressed=true]{border-color:#f3b874;background:#5a482b}.anchor-preset-grid button:focus-visible{outline:2px solid #7ae9d0;outline-offset:1px}

/* Use the same inline caption/value layout as the geometry properties. */
#anchorPositionFields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;margin:8px 0}
#nodeAnchorControls :is(#anchorPositionFields,#anchorCustomFields) label{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:2px;min-width:0;margin:0;padding:0;border:0;background:transparent;color:var(--muted)}
#nodeAnchorControls :is(#anchorPositionFields,#anchorCustomFields) label>span{white-space:nowrap;line-height:20px}
#anchorCustomFields{display:grid;gap:6px;padding:2px 0 6px}
#anchorCustomFields .anchor-vector-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:center;min-width:0}
#nodeAnchorControls :is(#anchorPositionFields,#anchorCustomFields) input{width:100%;margin:0}
#nodeAnchorControls summary{padding:4px 0}
#nodeAnchorControls .tip{margin-top:8px}
/* Compact illustrated text alignment picker. */
.text-alignment-control{width:max-content;max-width:100%;margin:12px 0}
.text-alignment-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;color:var(--muted);font-size:11px}
#textAlignmentValue{color:var(--accent)}
body #projectTextOptions .text-alignment-grid{display:grid;grid-template-columns:repeat(3,40px);grid-auto-rows:40px;gap:4px;margin:0}
body #projectTextOptions .text-alignment-grid button{display:flex;align-items:center;justify-content:center;width:40px!important;height:40px!important;min-height:40px!important;max-height:40px!important;padding:0!important;border-radius:4px!important;background:var(--panel,#191f23);color:var(--muted);transition:background .12s,border-color .12s,color .12s}
.text-alignment-grid svg{display:block;width:28px;height:28px;pointer-events:none}
.text-alignment-frame{fill:none;stroke:currentColor;stroke-width:1;opacity:.3}
.text-alignment-lines{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
body #projectTextOptions .text-alignment-grid button:hover{background:#293a40;border-color:#71838b;color:var(--text)}
body #projectTextOptions .text-alignment-grid button.active{background:#27463f;border-color:var(--accent);color:var(--accent)}
body #projectTextOptions .text-alignment-grid button.active .text-alignment-frame{opacity:.65}
body #projectTextOptions .text-alignment-grid button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.hierarchy-link-setting{padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.hierarchy-link-setting p{margin:6px 0 0;color:var(--muted);font-size:11px;line-height:1.6}
.inspector-section>summary>.component-enabled-toggle{--toggle-size:12px;flex:none;margin-right:6px!important;vertical-align:middle;cursor:pointer}
.inspector-section.component-disabled>summary{color:var(--muted)}
.inspector-section.component-disabled>.inspector-section-body{opacity:.6}
