:root{--ink:#f2e6ea;--ink-soft:#f2e6eacc;--muted:#f2e6ea99;--faint:#f2e6ea66;--paper:#13121d;--panel:#1b1a26;--panel-2:#21202b;--surface:#302f3b80;--surface-2:#2a2933;--line:#f2e6ea1f;--line-soft:#f2e6ea0f;--line-strong:#f2e6ea29;--accent:#ff80c8;--accent-ink:#e461ae;--accent-on:#3c0029;--accent-soft:#ff80c81a;--accent-soft-2:#ff80c833;--accent-glow:0 0 14px #ff80c852;--sky:#87ceff;--purple:#cfbcff;--accent-2:#f35c80;--accent-2-soft:#f35c801f;--ok:#5fd39a;--r-lg:16px;--r-md:12px;--r-sm:8px;--r-xs:6px;--r-pill:999px;--shadow-panel:0 24px 80px #00000073, inset 0 1px 0 #ffffff0d;--shadow-sm:0 2px 8px #00000059;--shadow-md:0 12px 30px -8px #00000080;--shadow-pop:0 28px 80px #000000a6, inset 0 1px 0 #ffffff12;--ring-active:0 0 0 1px var(--accent-soft-2), var(--accent-glow);--ease:cubic-bezier(.2, .65, .2, 1);--t:.16s;--font-sans:"Inter Variable", "Inter", "Noto Sans SC", "Microsoft YaHei", system-ui, -apple-system, "Segoe UI", sans-serif;--font-title:"Chiron GoRound TC", var(--font-sans);--left-panel-width:320px;--right-panel-width:420px;--resize-handle-width:8px}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--r-pill);background-clip:padding-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--faint)}body{min-height:100vh;color:var(--ink);background:radial-gradient(1100px 720px at 8% -12%, #ff80c81a, transparent 58%), radial-gradient(1000px 700px at 100% -6%, #87ceff12, transparent 56%), radial-gradient(900px 900px at 50% 120%, #cfbcff0f, transparent 60%), var(--paper);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}:where(button,a,input,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{grid-template-columns:var(--left-panel-width) var(--resize-handle-width) minmax(360px, 1fr) var(--resize-handle-width) var(--right-panel-width);height:100vh;padding:16px;display:grid}.shell>.library{grid-area:1/1;min-width:0}.shell>.resize-handle-left{grid-area:1/2}.shell>.stage{grid-area:1/3;min-width:0}.shell>.resize-handle-right{grid-area:1/4}.shell>.chat{grid-area:1/5;min-width:0}.library,.stage,.chat{border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg, var(--panel), var(--panel-2));min-height:0;box-shadow:var(--shadow-panel);overflow:hidden}.library{margin-right:6px}.stage{margin:0 6px}.chat{margin-left:6px}.library,.chat{flex-direction:column;display:flex}.library{z-index:30;position:relative;overflow:visible}.stage,.chat{z-index:1;position:relative}.library.drag-over{border-color:var(--accent);box-shadow:var(--shadow-panel), var(--accent-glow)}.library.drag-over:after{content:attr(data-drop-label);z-index:20;border:1px dashed var(--accent);border-radius:calc(var(--r-lg) - 4px);color:var(--accent);letter-spacing:.04em;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#13121dc2;place-items:center;font-size:13px;font-weight:800;display:grid;position:absolute;inset:10px}.resize-handle{z-index:4;cursor:col-resize;touch-action:none;min-height:0;position:relative}.resize-handle:before{content:"";border-radius:var(--r-pill);background:var(--line-strong);transition:background var(--t) var(--ease), inset var(--t) var(--ease);position:absolute;inset:42% 2px}.resize-handle:hover:before,body.resizing-panels .resize-handle:before{background:var(--accent);inset:34% 1px}body.resizing-panels{cursor:col-resize;-webkit-user-select:none;user-select:none}.topbar{justify-content:space-between;align-items:center;gap:16px;padding:18px 18px 14px;display:flex}.brand-block{align-items:center;min-width:0;display:flex}h1{font-family:var(--font-title);letter-spacing:-.01em;background:linear-gradient(120deg, #ffb3dd, var(--accent) 45%, var(--purple));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:26px;font-weight:700;line-height:1}.settings-menu{min-width:0;position:relative}.settings-trigger:hover svg{transform:rotate(45deg)}.settings-trigger svg{transition:transform .26s var(--ease)}.settings-panel{z-index:120;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-2);min-width:220px;max-width:280px;box-shadow:var(--shadow-pop);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:settings-pop .14s var(--ease);gap:12px;padding:12px;display:grid;position:absolute;top:calc(100% + 8px);left:0}@keyframes settings-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.settings-panel-email{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid var(--line);padding-bottom:10px;font-size:12px;overflow:hidden}.settings-panel-group{gap:7px;display:grid}.settings-panel-label{color:var(--faint);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:700}.settings-lang{border:1px solid var(--line-soft);border-radius:var(--r-sm);background:#0003;gap:4px;padding:4px;display:flex}.settings-lang-option{border-radius:var(--r-xs);color:var(--muted);cursor:pointer;font:inherit;transition:all var(--t) var(--ease);background:0 0;border:1px solid #0000;flex:1;padding:6px 8px;font-size:12px;font-weight:600}.settings-lang-option:hover{color:var(--ink)}.settings-lang-option.active{border-color:var(--accent-soft-2);background:var(--accent-soft);color:var(--accent);box-shadow:var(--shadow-sm)}.settings-logout{border:1px solid var(--line);border-radius:var(--r-sm);width:100%;color:var(--accent-2);cursor:pointer;font:inherit;transition:all var(--t) var(--ease);background:0 0;padding:9px 10px;font-size:12px;font-weight:600}.settings-logout:hover{border-color:var(--accent-2);background:var(--accent-2-soft)}.settings-logout:disabled{cursor:wait;opacity:.58}.topbar-actions{gap:8px;padding-top:1px;display:flex}.icon-button{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);width:36px;height:36px;color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--t) var(--ease), border-color var(--t) var(--ease), color var(--t) var(--ease), background var(--t) var(--ease);place-items:center;font-size:18px;display:inline-grid}.icon-button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.icon-button:active{transform:translateY(0)}.upload-button{font-weight:700;position:relative}.upload-button input{cursor:pointer;opacity:0;position:absolute;inset:0}.hidden-file-input{display:none}.library-tabs{border:1px solid var(--line-soft);border-radius:var(--r-md);background:#05040866;grid-template-columns:1fr 1fr;gap:4px;margin:0 18px 12px;padding:3px;display:grid}.library-tab{border-radius:var(--r-sm);min-height:36px;color:var(--muted);cursor:pointer;font:inherit;letter-spacing:.02em;transition:all var(--t) var(--ease);background:0 0;border:1px solid #0000;font-size:12px;font-weight:600}.library-tab:hover{color:var(--ink)}.library-tab.active{border-color:var(--line);background:var(--surface-2);color:var(--ink);box-shadow:var(--shadow-sm)}.upload-status{color:var(--accent);overflow-wrap:anywhere;padding:0 18px 10px;font-size:12px}.upload-status.error{color:var(--accent-2)}.filter-row{grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:8px;margin:0 18px 12px;display:grid}.source-filters{align-items:center;gap:6px;min-width:0;display:flex}.source-filter{border:1px solid var(--line-soft);border-radius:var(--r-pill);min-width:0;color:var(--muted);cursor:pointer;font:inherit;min-height:24px;transition:all var(--t) var(--ease);background:0 0;padding:0 10px;font-size:11px;font-weight:600}.source-filter:hover{color:var(--ink);border-color:var(--line-strong)}.source-filter.active{border-color:var(--accent-soft-2);background:var(--accent-soft);color:var(--accent)}.refresh-inline-button{border:1px solid var(--line-soft);border-radius:var(--r-sm);width:34px;height:34px;color:var(--muted);cursor:pointer;transition:transform var(--t) var(--ease), border-color var(--t) var(--ease), color var(--t) var(--ease), background var(--t) var(--ease);background:#0002;place-items:center;font-size:15px;display:inline-grid}.refresh-inline-button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.refresh-inline-button:active{transform:translateY(0)}.image-grid{align-items:flex-start;gap:12px;padding:2px 16px 16px;display:flex;overflow:auto}.masonry-column{flex-direction:column;flex:1 1 0;gap:12px;min-width:0;display:flex}.thumb{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);cursor:pointer;text-align:left;box-shadow:var(--shadow-sm);transition:transform var(--t) var(--ease), border-color var(--t) var(--ease), box-shadow var(--t) var(--ease);grid-template-rows:auto auto;gap:7px;padding:7px;display:grid;position:relative}.thumb:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.thumb.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:var(--ring-active)}.thumb img,.image-picker-modal-button img{--chk:#d5d0da;background-color:#f4f2f5;background-image:linear-gradient(45deg, var(--chk) 25%, transparent 25%), linear-gradient(-45deg, var(--chk) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--chk) 75%), linear-gradient(-45deg, transparent 75%, var(--chk) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px}.thumb img{border-radius:var(--r-xs);width:100%;height:auto;display:block}.thumb span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.thumb.active span{color:var(--accent);font-weight:700}.upload-tile{border:1px dashed var(--line);border-radius:var(--r-md);width:100%;min-height:132px;color:var(--muted);cursor:pointer;text-align:center;transition:transform var(--t) var(--ease), border-color var(--t) var(--ease), background var(--t) var(--ease), color var(--t) var(--ease);background:linear-gradient(135deg,#ff73be1f,#0000 48%),#ffffff08;place-items:center;gap:8px;padding:18px 14px;font-size:12px;font-weight:650;display:grid;position:relative}.upload-tile.empty{flex:1;min-height:190px}.upload-tile:hover{border-color:var(--accent);background:linear-gradient(135deg, #ff73be2e, transparent 52%), var(--accent-soft);color:var(--ink);transform:translateY(-1px)}.upload-tile input{opacity:0;cursor:pointer;position:absolute;inset:0}.upload-tile-mark{border:1px solid var(--accent-soft-2);border-radius:var(--r-sm);background:var(--surface-2);width:42px;height:42px;color:var(--accent);box-shadow:var(--shadow-sm);place-items:center;font-size:24px;line-height:1;display:grid}.folder-thumb{grid-template-rows:auto auto auto}.folder-thumb-visual{aspect-ratio:1;border:1px solid var(--line);border-radius:var(--r-xs);background:radial-gradient(circle at 35% 24%,#ffffffdb,#0000 34%),linear-gradient(160deg,#87ceff24,#ff80c81c);place-items:center;padding:14%;display:grid;overflow:hidden}.folder-thumb-visual svg{filter:drop-shadow(0 10px 14px #00000057);width:100%;height:100%;display:block}.folder-shadow{fill:#0003;transform:translateY(3px)}.folder-tab{fill:#f3c95c;stroke:#241f1447;stroke-width:2px}.folder-body{fill:#e8b548;stroke:#241f1447;stroke-width:2px}.output-folder .folder-tab{fill:#f4a77a}.output-folder .folder-body{fill:#df8b5f}.folder-photo{fill:#ffffffd6;stroke:#1b1a2670;stroke-width:2px}.photo-one{transform-origin:44px 74px;transform:rotate(-6deg)}.photo-two{transform-origin:72px 75px;transform:rotate(5deg)}.folder-photo-mark{fill:var(--accent-ink);opacity:.76}.folder-thumb-name{color:var(--ink);font-weight:800}.folder-thumb-meta{font-size:10px}.empty-library{border:1px dashed var(--line-strong);border-radius:var(--r-md);color:var(--muted);text-align:center;flex:1;padding:24px 18px;font-size:13px}.image-context-menu{z-index:50;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-2);min-width:158px;box-shadow:var(--shadow-pop);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:6px;position:fixed}.image-context-menu button{border-radius:var(--r-sm);width:100%;color:var(--ink);cursor:pointer;font:inherit;text-align:left;transition:background var(--t) var(--ease), color var(--t) var(--ease);background:0 0;border:0;padding:9px 10px;font-size:12px;display:block}.image-context-menu button:hover{background:var(--accent-soft);color:var(--accent)}.image-context-menu button.danger{color:var(--accent-2)}.image-context-menu button.danger:hover{background:var(--accent-2-soft)}.stage{grid-template-rows:minmax(0,1fr) auto;display:grid}.preview{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.preview-head{border-bottom:1px solid var(--line);min-height:59px;color:var(--muted);background:linear-gradient(#ffffff08,#0000);justify-content:space-between;align-items:center;gap:12px;padding:0 18px;font-size:13px;display:flex}.preview-head.editing{padding:0 12px 0 18px}.preview-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.preview-head-actions{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.preview-head.editing .preview-head-actions{flex:1}.preview-edit-btn{border:1px solid var(--accent);border-radius:var(--r-pill);background:linear-gradient(180deg, #ff9bd6, var(--accent));color:var(--accent-on);font:inherit;letter-spacing:.03em;cursor:pointer;transition:all var(--t) var(--ease);box-shadow:0 0 0 1px #ffffff1f inset, 0 8px 22px #ff80c833, var(--shadow-sm);padding:7px 15px;font-size:12px;font-weight:800}.preview-edit-btn:before{content:"✎";margin-right:6px;font-size:13px;line-height:1}.preview-edit-btn.local-edit:before{content:"◖"}:is(.preview-edit-btn:hover,.preview-edit-btn:focus-visible){color:var(--accent-on);background:linear-gradient(180deg, #ffb3dd, var(--accent-ink));box-shadow:0 0 0 1px #ffffff29 inset, 0 10px 30px #ff80c84d, var(--shadow-md);border-color:#ffb3dd;outline:none;transform:translateY(-1px)}.preview-edit-btn:active{transform:translateY(0)}.status-dot{background:var(--ok);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 3px #5fd39a2e,0 0 10px #5fd39a80}.preview-viewport{touch-action:none;min-height:0;box-shadow:inset 0 0 0 1px var(--line), inset 0 8px 30px #00000040;background-color:#f4f2f5;background-image:linear-gradient(45deg,#d5d0da 25%,#0000 25%),linear-gradient(-45deg,#d5d0da 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#d5d0da 75%),linear-gradient(-45deg,#0000 75%,#d5d0da 75%);background-position:0 0,0 9px,9px -9px,-9px 0;background-size:18px 18px;place-items:center;display:grid;position:relative;overflow:hidden}.preview-viewport.grab{cursor:grab}.preview-viewport.grabbing{cursor:grabbing}#activeImage{object-fit:contain;object-position:center;transform-origin:50%;will-change:transform;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;min-height:0}.image-editor{grid-template-rows:minmax(0,1fr);height:100%;min-height:0;display:grid}.edit-toolbar-host{flex:1;min-width:0}.edit-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-width:0;display:grid}.edit-toolbar-tools{flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:6px;min-width:0;display:flex}.edit-toolbar-actions{justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:flex}.edit-toolbar button{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink-soft);font:inherit;cursor:pointer;transition:all var(--t) var(--ease);box-shadow:var(--shadow-sm);flex:none;padding:6px 10px;font-size:12px}:is(.edit-toolbar button:hover:not(:disabled),.edit-toolbar button:focus-visible:not(:disabled)){border-color:var(--accent);color:var(--accent);background:var(--accent-soft);outline:none}.edit-toolbar button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:700}.edit-toolbar button:disabled{opacity:.55;cursor:not-allowed}.edit-toolbar-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-on);font-weight:700}.edit-toolbar-field{color:var(--muted);flex:none;align-items:center;gap:6px;font-size:12px;display:inline-flex}.edit-toolbar-field input[type=range]{width:76px}.color-field{gap:8px}.color-picker-control{border:1px solid var(--line);border-radius:var(--r-sm);width:40px;height:30px;box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff12;transition:border-color var(--t) var(--ease), box-shadow var(--t) var(--ease), transform var(--t) var(--ease);background:#00000040;place-items:center;display:inline-grid;position:relative}.color-picker-control:hover,.color-picker-control:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft-2), var(--accent-glow), var(--shadow-sm);transform:translateY(-1px)}.color-picker-swatch{border-radius:var(--r-xs);border:1px solid #ffffff80;width:26px;height:18px;box-shadow:inset 0 0 0 1px #0003,0 0 10px}.color-picker-control input[type=color]{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.color-picker-control input[type=color]:disabled{cursor:not-allowed}.edit-toolbar-error{z-index:4;border:1px solid var(--accent-2);border-radius:var(--r-sm);max-width:calc(100% - 24px);color:var(--accent-2);box-shadow:var(--shadow-sm);background:#230a16e0;padding:8px 10px;font-size:12px;position:absolute;top:12px;left:12px}.editor-canvas-wrap{touch-action:none;height:100%;min-height:0;box-shadow:inset 0 0 0 1px var(--line), inset 0 8px 30px #00000040;background-color:#f4f2f5;background-image:linear-gradient(45deg,#d5d0da 25%,#0000 25%),linear-gradient(-45deg,#d5d0da 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#d5d0da 75%),linear-gradient(-45deg,#0000 75%,#d5d0da 75%);background-position:0 0,0 9px,9px -9px,-9px 0;background-size:18px 18px;place-items:center;display:grid;position:relative;overflow:hidden}.editor-canvas-wrap.brush{cursor:crosshair}.editor-canvas-wrap.eraser{cursor:cell}.editor-canvas-wrap.bucket{cursor:copy}.editor-canvas-wrap.grab{cursor:grab}.editor-canvas-wrap.grabbing{cursor:grabbing}.editor-stack{touch-action:none;transform-origin:50%;will-change:transform;max-width:100%;max-height:100%;position:relative}.editor-stack-loading{pointer-events:none}.editor-canvas{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.editor-canvas.overlay{position:absolute;inset:0}.editor-loading{z-index:3;border-radius:var(--r-sm);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#000000a6;padding:8px 12px;font-size:12px;position:absolute}.services{border-top:1px solid var(--line);background:linear-gradient(#0000,#ffffff08);flex-wrap:wrap;gap:8px;padding:14px;display:flex}.services-loading{color:var(--muted);font-size:12px;line-height:32px}.service-pill{border:1px solid var(--line);border-radius:var(--r-pill);color:var(--ink-soft);cursor:pointer;font:inherit;background:var(--surface-2);box-shadow:var(--shadow-sm);transition:all var(--t) var(--ease);padding:7px 13px;font-size:12px}:is(.service-pill:hover,.service-pill:focus-visible){border-color:var(--accent);color:var(--accent);background:var(--accent-soft);box-shadow:var(--accent-glow);outline:none;transform:translateY(-1px)}.service-pill:active{transform:translateY(0)}.service-pill:disabled{cursor:wait;opacity:.58}.chat-head{border-bottom:1px solid var(--line);background:linear-gradient(#ffffff08,#0000);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.chat-head span{letter-spacing:.01em;font-size:13px;font-weight:700}.chat-head-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.chat-tool-button{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-2);color:var(--muted);cursor:pointer;font:inherit;transition:all var(--t) var(--ease);padding:7px 12px;font-size:12px}.chat-tool-button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.chat-tool-button.danger{color:var(--accent-2)}.chat-tool-button.danger:hover{border-color:var(--accent-2);background:var(--accent-2-soft)}.chat-tool-button:disabled{cursor:wait;opacity:.58}.messages{flex-direction:column;flex:1;gap:12px;min-height:0;padding:18px 16px;display:flex;overflow:auto}.ephemeral-notice{border:1px solid var(--line);border-radius:var(--r-pill);width:fit-content;max-width:82%;color:var(--ink);text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000a6;margin:8px auto 14px;padding:7px 13px;font-size:12px;transition:opacity .18s,transform .18s}.ephemeral-notice.leaving{opacity:0;transform:translateY(4px)}.message{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);width:fit-content;max-width:min(88%,720px);box-shadow:var(--shadow-sm);padding:11px 14px}.message.user{border-color:var(--accent-soft-2);border-right:3px solid var(--accent);background:var(--accent-soft);align-self:flex-end}.message.assistant{border-left:3px solid var(--purple);background:var(--surface-2);align-self:flex-start}.message.thinking{border-left-color:var(--line-strong);background:#ffffff08}.message:has(.confirm-card){max-width:100%}.message.thinking .message-content{color:var(--muted)}.typing-dot{background:var(--accent);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:8px;animation:1s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:.28;transform:scale(.82)}50%{opacity:1;transform:scale(1)}}.message strong{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:12px;display:block}.message.user strong{text-align:right;color:var(--accent)}.message.assistant strong{color:var(--purple)}.message-content{color:var(--ink);overflow-wrap:anywhere;font-size:14px;line-height:1.6}.message-content p{margin:0}.message-content h3,.message-content h4,.message-content h5{color:var(--ink);margin:8px 0 4px;font-size:13px;font-weight:700}.message-content p+p,.message-content ul+p,.message-content ol+p,.message-content pre+p,.message-content p+ul,.message-content p+ol,.message-content p+pre{margin-top:10px}.message-content ul,.message-content ol{margin:6px 0 0;padding-left:20px}.message-content li+li{margin-top:4px}.message-content pre{border:1px solid var(--line);border-radius:var(--r-sm);white-space:pre-wrap;background:#00000040;max-width:100%;margin:8px 0 0;padding:11px 12px;overflow:auto}.message-content a{color:var(--sky);text-underline-offset:2px;text-decoration-thickness:1px}.message code{color:var(--accent);overflow-wrap:anywhere}.queue-card{border:1px solid var(--line);border-radius:var(--r-sm);background:#0003;gap:4px;min-width:min(280px,100%);padding:12px 14px;display:grid}.queue-card b{color:var(--ink);font-size:14px}.queue-card span{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.queue-card.running{border-color:var(--accent);box-shadow:var(--accent-glow)}.queue-card.failed{border-color:var(--accent-2);background:var(--accent-2-soft)}.choices{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.choice{border:1px solid var(--accent-soft-2);border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent);cursor:pointer;font:inherit;transition:all var(--t) var(--ease);padding:8px 11px;font-size:12px}.choice:hover{background:var(--accent);color:var(--accent-on);transform:translateY(-1px)}.primary-choice{background:var(--accent);color:var(--accent-on);border-color:var(--accent);box-shadow:var(--accent-glow)}.primary-choice:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.confirm-card{border:1px solid var(--line);border-radius:var(--r-md);background:#0003;margin-top:10px;padding:12px}.confirm-card.updating{opacity:.72}.confirm-meta{overflow-wrap:anywhere;margin-bottom:6px;font-size:12px}.image-controls{gap:10px;margin:10px 0 12px;display:grid}.image-selector{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);padding:10px}.image-selector-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:12px;display:flex}.image-current{border:1px solid var(--line);border-radius:var(--r-sm);width:100%;min-height:54px;color:var(--muted);cursor:pointer;font:inherit;text-align:left;transition:border-color var(--t) var(--ease), color var(--t) var(--ease);background:#0003;grid-template-columns:54px minmax(0,1fr);align-items:center;padding:0;display:grid;overflow:hidden}.image-current:after{content:attr(data-reselect-label);padding:0 10px;font-size:12px;display:block}:is(.image-current:hover,.image-current:focus-visible){border-color:var(--accent);color:var(--accent);outline:none}.image-current img{object-fit:cover;background:#f4f2f5;width:54px;height:54px}.image-placeholder{width:54px;height:54px;color:var(--muted);overflow-wrap:anywhere;background:#ffffff0f;place-items:center;padding:4px;font-size:11px;display:grid}.image-picker-modal{z-index:80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#09080fa8;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.image-picker-dialog{border:1px solid var(--line-strong);border-radius:var(--r-lg);background:linear-gradient(180deg, var(--panel), var(--panel-2));width:min(920px,100%);max-height:min(760px,100vh - 44px);box-shadow:var(--shadow-pop);grid-template-rows:auto auto minmax(0,1fr);display:grid;overflow:hidden}.image-picker-dialog-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 18px;display:flex}.image-picker-dialog-head b{margin-bottom:4px;font-size:15px;display:block}.image-picker-dialog-head span,.image-picker-section-head span,.image-picker-modal-error,.image-picker-modal-empty{color:var(--muted);font-size:12px}.image-picker-close{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);width:32px;height:32px;color:var(--ink);cursor:pointer;font:inherit;transition:all var(--t) var(--ease);place-items:center;font-size:18px;display:grid}:is(.image-picker-close:hover,.image-picker-close:focus-visible){border-color:var(--accent);color:var(--accent);outline:none}.image-picker-modal-error{min-height:18px;color:var(--accent-2);padding:8px 18px 0}.image-picker-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-height:0;padding:14px 18px 18px;display:grid;overflow:auto}.image-picker-section{border:1px solid var(--line);border-radius:var(--r-md);background:#00000026;grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.image-picker-section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 12px;font-size:12px;display:flex}.image-picker-modal-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:9px;min-height:0;padding:11px;display:grid;overflow:auto}.image-picker-modal-button,.image-picker-upload-tile{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);min-width:0;color:var(--muted);cursor:pointer;font:inherit;text-align:left;transition:all var(--t) var(--ease);grid-template-rows:auto auto;gap:5px;padding:6px;font-size:11px;display:grid}.image-picker-upload-tile{aspect-ratio:1;border-style:dashed;border-color:var(--line-strong);color:var(--accent);text-align:center;background:#ffffff0a;place-items:center}.image-picker-upload-plus{border-radius:var(--r-sm);border:1px solid;place-items:center;width:42px;height:42px;font-size:28px;font-weight:700;display:grid}:is(.image-picker-modal-button:hover,.image-picker-modal-button:focus-visible,.image-picker-upload-tile:hover,.image-picker-upload-tile:focus-visible){border-color:var(--accent);color:var(--accent);outline:none;transform:translateY(-1px)}.image-picker-modal-button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--ink);box-shadow:var(--ring-active)}.image-picker-modal-button img{aspect-ratio:1;object-fit:contain;border-radius:var(--r-xs);width:100%}.image-picker-modal-button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.image-picker-modal-button:disabled,.image-picker-upload-tile:disabled,.image-picker-close:disabled,.image-picker-modal.updating{cursor:wait;opacity:.68}.image-picker-modal-empty{border:1px dashed var(--line-strong);border-radius:var(--r-sm);text-align:center;grid-column:1/-1;padding:20px 10px}.folder-picker-dialog{grid-template-rows:auto auto auto minmax(0,1fr);width:min(720px,100%)}.folder-picker-actions{padding:12px 18px 0}.folder-upload-tile{width:148px;min-height:112px;display:inline-grid}.folder-picker-list{align-content:start;gap:8px;min-height:0;padding:12px 18px 18px;display:grid;overflow:auto}.folder-picker-row{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);min-height:42px;color:var(--ink);cursor:pointer;font:inherit;text-align:left;transition:all var(--t) var(--ease);justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}:is(.folder-picker-row:hover,.folder-picker-row:focus-visible){border-color:var(--accent);color:var(--accent);outline:none}.folder-picker-row.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);box-shadow:var(--ring-active)}.folder-picker-row code{color:currentColor;overflow-wrap:anywhere}.folder-picker-row span{color:var(--muted);flex:none;font-size:12px}.folder-viewer-dialog{grid-template-rows:auto minmax(0,1fr);width:min(920px,100%)}.folder-viewer-head-actions{align-items:center;gap:8px;display:flex}.folder-viewer-download{flex:none;margin:0}.folder-viewer-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));align-content:start;gap:10px;min-height:0;padding:14px 18px 18px;display:grid;overflow:auto}.folder-viewer-image{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);min-width:0;color:var(--muted);transition:all var(--t) var(--ease);grid-template-rows:auto auto;gap:6px;padding:6px;font-size:11px;text-decoration:none;display:grid}:is(.folder-viewer-image:hover,.folder-viewer-image:focus-visible){border-color:var(--accent);color:var(--accent);outline:none;transform:translateY(-1px)}.folder-viewer-image img{aspect-ratio:1;object-fit:contain;border-radius:var(--r-xs);background:#f4f2f5;width:100%}.folder-viewer-image span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.param-controls{gap:10px;margin:12px 0;display:grid}.param-control{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);padding:10px}.param-control-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:12px;font-weight:700;display:flex}.param-options{flex-wrap:wrap;gap:7px;display:flex}.param-option{border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);cursor:pointer;font:inherit;transition:all var(--t) var(--ease);background:#ffffff0a;padding:7px 10px;font-size:12px}.param-option:hover{border-color:var(--accent);color:var(--accent)}.param-option.active{border-color:var(--accent);background:var(--accent);color:var(--accent-on);box-shadow:var(--accent-glow)}.param-option:disabled{cursor:wait;opacity:.6}.param-input{border:1px solid var(--line);border-radius:var(--r-sm);width:100%;min-width:0;color:var(--ink);font:inherit;transition:border-color var(--t) var(--ease), box-shadow var(--t) var(--ease);background:#00000040;outline:none;padding:8px 10px;font-size:12px;line-height:1.45}.param-input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft-2), var(--accent-glow)}.param-input:disabled{cursor:wait;opacity:.6}.param-textarea{resize:vertical;max-height:140px}.param-slider-wrap{gap:8px;display:grid}.param-slider-value{color:var(--ink);min-height:18px;font-size:12px;font-weight:700}.param-slider{width:100%;min-width:0;accent-color:var(--accent);cursor:pointer}.param-slider:disabled{cursor:wait;opacity:.6}.param-slider-scale{color:var(--muted);justify-content:space-between;gap:10px;font-size:11px;display:flex}.param-slider-hint{color:var(--muted);font-size:12px;line-height:1.45}.advanced-info{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.advanced-info summary{cursor:pointer;font-size:12px;font-weight:700}.advanced-hint,.param-detail{color:var(--muted);overflow-wrap:anywhere;margin-top:10px;font-size:12px}.param-detail{border-top:1px solid var(--line);padding-top:8px}.param-detail p{color:var(--muted);margin-top:6px;font-size:12px}.option-descriptions{gap:6px;margin:8px 0 0;padding:0;list-style:none;display:grid}.option-descriptions li{border-left:2px solid var(--accent-soft-2);gap:3px;padding-left:8px;display:grid}.option-descriptions span{color:var(--muted);line-height:1.4}.param-error{color:var(--accent-2);min-height:16px;font-size:12px}.hint{color:var(--muted);margin-top:8px;font-size:12px}.composer{border-top:1px solid var(--line);background:linear-gradient(#0000,#ffffff08);grid-template-columns:minmax(0,1fr) 78px;align-items:end;gap:10px;padding:14px;display:grid}.composer textarea{border:1px solid var(--line);border-radius:var(--r-sm);min-width:0;max-height:32vh;color:var(--ink);font:inherit;resize:none;transition:border-color var(--t) var(--ease), box-shadow var(--t) var(--ease);background:#00000040;outline:none;padding:12px;line-height:1.45;overflow-y:auto}.composer textarea::placeholder{color:var(--faint)}.composer textarea:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft-2), var(--accent-glow)}.composer button{border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--accent);color:var(--accent-on);cursor:pointer;font:inherit;letter-spacing:.03em;box-shadow:var(--accent-glow);transition:transform var(--t) var(--ease), background var(--t) var(--ease), box-shadow var(--t) var(--ease);padding:12px 0;font-weight:700}.composer button:hover{background:var(--accent-ink);border-color:var(--accent-ink);transform:translateY(-1px)}.composer button:active{transform:translateY(0)}.composer textarea:disabled,.composer button:disabled{cursor:wait;opacity:.58}.login-shell{place-items:center;min-height:100vh;display:grid}.login-card{border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg, var(--panel), var(--panel-2));width:min(380px,100vw - 32px);box-shadow:var(--shadow-panel);padding:40px 36px}.login-card-compact{text-align:center}.login-card-compact p{margin-bottom:0}.login-card h1{margin-bottom:8px;font-size:34px}.login-card p{color:var(--muted);margin:0 0 28px;font-size:14px}.login-field{gap:6px;margin-bottom:16px;display:grid}.login-field label{letter-spacing:.02em;font-size:12px;font-weight:700}.login-field input{border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);font:inherit;transition:border-color var(--t) var(--ease), box-shadow var(--t) var(--ease);background:#00000040;outline:none;padding:11px 12px}.login-field input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft-2), var(--accent-glow)}.login-submit{border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--accent);width:100%;color:var(--accent-on);cursor:pointer;font:inherit;letter-spacing:.03em;box-shadow:var(--accent-glow);transition:transform var(--t) var(--ease), background var(--t) var(--ease);margin-top:8px;padding:13px;font-weight:700}.login-submit:hover:not(:disabled){background:var(--accent-ink);border-color:var(--accent-ink);transform:translateY(-1px)}.login-submit:disabled{opacity:.6;cursor:wait}.login-error{color:var(--accent-2);margin-top:12px;font-size:13px}.login-toggle{color:var(--sky);cursor:pointer;font:inherit;background:0 0;border:none;margin-top:16px;padding:0;font-size:13px}.login-toggle:hover{text-underline-offset:2px;text-decoration:underline}@media (max-width:1100px){.shell{grid-template-rows:minmax(340px,1fr) clamp(300px,40dvh,360px);grid-template-columns:260px minmax(320px,1fr);gap:14px;height:auto;min-height:100dvh}.shell>.library{grid-area:1/1}.shell>.stage{grid-area:1/2}.shell>.chat{grid-area:2/1/auto/-1}.resize-handle{display:none}.library,.stage,.chat{margin:0}}@media (max-width:760px){body{overflow-x:hidden}.shell{height:auto;min-height:100dvh;padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr);align-content:start;gap:10px}.shell>.library{grid-area:1/1;height:clamp(380px,56dvh,500px)}.shell>.chat{grid-area:2/1;height:clamp(520px,78dvh,720px)}.shell>.stage{grid-area:3/1;height:auto;min-height:clamp(520px,75dvh,680px)}.library,.stage,.chat{border-radius:var(--r-md)}.topbar{gap:10px;padding:14px 12px 12px}h1{font-size:24px}.settings-panel{width:min(280px,100vw - 32px);left:auto;right:0}.library-tabs{margin:0 12px 10px}.filter-row{grid-template-columns:minmax(0,1fr) 44px;margin:0 12px 10px}.source-filters{gap:4px}.source-filter{flex:1 1 0;min-height:40px;padding:0 6px}.image-grid{flex:1;gap:8px;min-height:0;padding:2px 10px 12px}.masonry-column{gap:8px}.thumb{gap:6px;padding:6px}.preview-head{flex-wrap:wrap;align-items:flex-start;gap:8px;min-height:0;padding:10px 12px}.preview-title{flex:100%}.preview-head-actions{overscroll-behavior-inline:contain;scrollbar-width:none;justify-content:flex-start;width:100%;padding-bottom:2px;overflow-x:auto}.preview-head-actions::-webkit-scrollbar{display:none}.edit-toolbar-tools::-webkit-scrollbar{display:none}.chat-head-actions::-webkit-scrollbar{display:none}.preview-head.editing{padding:8px 10px}.preview-head.editing .preview-head-actions,.edit-toolbar-host{width:100%}.edit-toolbar{grid-template-columns:minmax(0,1fr);gap:6px}.edit-toolbar-tools{overscroll-behavior-inline:contain;scrollbar-width:none;padding-bottom:4px;overflow-x:auto}.edit-toolbar-tools button{min-height:40px}.edit-toolbar-actions{justify-content:stretch}.edit-toolbar-actions button{flex:1 1 0;min-height:44px}.edit-toolbar-field input[type=range]{width:92px}.services{gap:7px;max-height:none;padding:10px;overflow:visible}.chat-head{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:10px;padding:12px;display:grid}.chat-head-actions{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;display:grid}.chat-tool-button{width:100%}.messages{gap:10px;padding:12px}.message{max-width:94%;padding:10px 11px}.confirm-card{padding:10px}.choices,.param-options{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.image-selector-head{flex-wrap:wrap}.composer{grid-template-columns:minmax(0,1fr) 72px;gap:8px;padding:10px}.composer textarea,.composer button{min-height:44px}.icon-button,.library-tab,.refresh-inline-button,.preview-edit-btn,.chat-tool-button,.service-pill,.choice,.param-option,.image-picker-close{touch-action:manipulation;min-height:44px}.icon-button,.refresh-inline-button,.image-picker-close{width:44px;height:44px}.image-picker-modal{padding:max(6px, env(safe-area-inset-top)) max(6px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left));place-items:stretch stretch}.image-picker-dialog{border-radius:var(--r-md);width:100%;height:100%;max-height:none}.image-picker-dialog-head{gap:12px;padding:12px}.image-picker-modal-error{padding:8px 12px 0}.image-picker-sections{grid-template-columns:1fr;align-content:start;gap:10px;padding:10px}.image-picker-section{min-height:clamp(240px,38dvh,360px)}.image-picker-modal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px}.folder-picker-actions{padding:10px 12px 0}.folder-upload-tile{width:100%;min-height:96px}.folder-picker-list,.folder-viewer-grid{padding:10px 12px 12px}.folder-viewer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.folder-viewer-head-actions{flex-wrap:wrap;justify-content:flex-end}}@media (max-width:420px){.composer{grid-template-columns:minmax(0,1fr)}.composer button{width:100%}}
