: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{position:relative}.library.drag-over{border-color:var(--accent);box-shadow:var(--shadow-panel), var(--accent-glow)}.library.drag-over:after{content:"释放上传到 Workspace";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:flex-start;gap:12px;padding:20px 18px 10px;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:28px;font-weight:700;line-height:1}.account-menu{align-items:center;gap:8px;max-width:100%;margin-top:7px;display:flex}.account-email{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.account-logout{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--muted);cursor:pointer;font:inherit;transition:all var(--t) var(--ease);flex:none;padding:4px 11px;font-size:11px}.account-logout:hover{border-color:var(--accent-2);color:var(--accent-2);background:var(--accent-2-soft)}.account-logout:disabled{cursor:wait;opacity:.58}.topbar-actions{gap:8px;display:flex}.icon-button{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);width:38px;height:38px;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:#0003;grid-template-columns:1fr 1fr;gap:4px;margin:0 18px 12px;padding:4px;display:grid}.library-tab{border-radius:var(--r-sm);min-height:34px;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{min-height:18px;color:var(--accent);overflow-wrap:anywhere;padding:0 18px 10px;font-size:12px}.upload-status.error{color:var(--accent-2)}.source-filters{border:1px solid var(--line-soft);border-radius:var(--r-md);background:#0003;gap:4px;margin:0 18px 12px;padding:4px;display:flex}.source-filter{border-radius:var(--r-sm);min-width:0;color:var(--muted);cursor:pointer;font:inherit;min-height:30px;transition:all var(--t) var(--ease);background:0 0;border:1px solid #0000;flex:1;padding:0 6px;font-size:12px;font-weight:600}.source-filter:hover{color:var(--ink)}.source-filter.active{border-color:var(--accent-soft-2);background:var(--accent-soft);color:var(--accent);box-shadow:var(--shadow-sm)}.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}.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);color:var(--muted);background:linear-gradient(#ffffff08,#0000);justify-content:space-between;align-items:center;padding:15px 18px;font-size:13px;display:flex}.preview-head-actions{align-items:center;gap:10px;display:flex}.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}: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)}.preview-mode-badge{color:var(--accent-ink);border:1px solid var(--accent);border-radius:var(--r-pill);background:var(--accent-soft);padding:3px 8px;font-size:11px;font-weight:700}.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;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:auto minmax(0,1fr);height:100%;min-height:0;display:grid}.edit-toolbar{border-bottom:1px solid var(--line);background:linear-gradient(#ffffff08,#0000);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;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);padding:6px 12px;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{font-weight:700;border-color:var(--accent)!important;background:var(--accent)!important;color:var(--accent-on)!important}.edit-toolbar-spacer{flex:1;min-width:8px}.edit-toolbar-field{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.edit-toolbar-field input[type=range]{width:88px}.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{color:var(--accent-2);padding:0 14px 8px;font-size: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-stack{touch-action:none;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}.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:"点击重新选择";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}.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}.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)!important;margin-top:8px!important;font-size:12px!important}.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 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(0,1fr) 340px;grid-template-columns:260px minmax(320px,1fr);gap:14px}.resize-handle{display:none}.library,.stage,.chat{margin:0}.chat{grid-column:1/-1}}@media (max-width:760px){.shell{grid-template-rows:320px 420px 420px;grid-template-columns:1fr;height:auto;min-height:100vh}.image-picker-sections{grid-template-columns:1fr}.image-picker-modal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
