.image-preview-dialog-backdrop{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:24px;background:#000000c2}.image-preview-dialog{width:min(1640px,100%);height:min(1080px,calc(100dvh - 48px));min-height:0;display:flex;flex-direction:column;overflow:hidden;color:#f1f5f9;background:#131923;border:1px solid #445066;border-radius:14px;box-shadow:0 24px 80px #0000007f}.image-preview-dialog button{flex:0 0 auto;min-height:34px;padding:6px 12px;color:#f1f5f9;background:#273247;border:1px solid #50617d;border-radius:7px;font:inherit;font-size:13px;cursor:pointer}.image-preview-dialog button:hover:not(:disabled){background:#394b68}.image-preview-dialog button:disabled{opacity:.4;cursor:default}.image-preview-dialog button:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}.image-preview-dialog-header,.image-preview-dialog-toolbar{display:flex;align-items:center;gap:10px;flex:0 0 auto;padding:12px 18px}.image-preview-dialog-header h2{margin:0;font-size:17px}.image-preview-dialog-header>span{color:#cbd5e1;font-variant-numeric:tabular-nums}.image-preview-dialog-header>button{margin-left:auto}.image-preview-dialog-toolbar{flex-wrap:wrap;border-top:1px solid #344054;border-bottom:1px solid #344054;padding-block:9px}.image-preview-dialog-toolbar output{min-width:45px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums}.image-preview-dialog-toolbar-divider{height:24px;width:1px;background:#50617d}.image-preview-dialog-toolbar-spacer{flex:1}.image-preview-dialog-stage{position:relative;flex:1 1 0;min-height:0;overflow:hidden;background:#080c13;touch-action:none}.image-preview-dialog-stage.is-ready{cursor:grab}.image-preview-dialog-stage.is-ready:active{cursor:grabbing}.image-preview-dialog-stage>img{position:absolute;left:50%;top:50%;max-width:none;max-height:none;object-fit:initial;transform-origin:center;-webkit-user-select:none;user-select:none;pointer-events:none}.image-preview-dialog-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:16px;color:#cbd5e1}.image-preview-dialog-footer{flex:0 0 auto;padding:12px 18px;border-top:1px solid #344054;font-size:12px;color:#b8c4d6}.image-preview-dialog-footer p{margin:0 0 6px;max-height:3em;overflow:auto;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:#f1f5f9}.image-preview-dialog-footer>span{overflow-wrap:anywhere}@media(max-height:900px){.image-preview-dialog{height:calc(100dvh - 32px)}.image-preview-dialog-header,.image-preview-dialog-footer{padding-block:10px}.image-preview-dialog-toolbar{padding-block:8px}}@media(max-height:700px){.image-preview-dialog-backdrop{padding:12px}.image-preview-dialog{height:calc(100dvh - 24px)}.image-preview-dialog-header,.image-preview-dialog-footer{padding-block:8px}.image-preview-dialog-toolbar{padding-block:6px}.image-preview-dialog-footer p{max-height:2.5em}}.material-selector{min-width:0}.material-selector-grid{display:grid;grid-template-columns:repeat(auto-fill,132px);align-items:start;justify-content:start;gap:10px;max-height:300px;overflow-y:auto;padding:2px}.material-selector-option{position:relative;display:grid;width:132px;min-width:0;overflow:hidden;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--field)}.material-selector-select{display:grid;grid-template-rows:100px auto;width:100%;min-width:0;padding:0;border:0;color:var(--text);background:transparent;text-align:left;cursor:pointer}.material-selector-option:hover,.material-selector-option.selected{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.material-selector-select:disabled{cursor:default}.material-selector-option:has(.material-selector-select:disabled):not(.selected){cursor:not-allowed;opacity:.45}.material-selector-select:disabled:not(:has(+.material-selector-remove)){opacity:.45}.material-selector-option .material-thumbnail{width:100%;height:100px;min-height:100px;aspect-ratio:auto}.material-selector-option .material-thumbnail img{width:100%;height:100%;object-fit:cover}.material-selector-option-copy{display:block;min-width:0;padding:7px 8px}.material-selector-option-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600}.material-selector-unavailable{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:12px;color:#fff;background:#0f172ad1;font-size:11px;line-height:1.45;text-align:center}.material-selector-tag{position:absolute;left:6px;bottom:34px;max-width:calc(100% - 42px);overflow:hidden;padding:3px 7px;border-radius:999px;color:#fff;background:var(--brand);font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.material-selector-remove{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:999px;color:#fff;background:#ef4444e5;cursor:pointer;z-index:2}.material-selector-remove:hover:not(:disabled){background:#dc2626}.material-selector-delete{position:absolute;right:6px;bottom:6px;display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid rgb(248 113 113 / 55%);border-radius:50%;color:#fecaca;background:#7f1d1de0;cursor:pointer;z-index:3}.material-selector-delete:hover:not(:disabled){color:#fff;background:#b91c1c}.material-selector-delete:disabled{cursor:not-allowed;opacity:.55}.material-selector-remove:disabled{cursor:not-allowed;opacity:.55}.material-selector-check{position:absolute;top:6px;left:6px;padding:3px;box-sizing:content-box;border-radius:999px;color:var(--brand-contrast, #fff);background:var(--brand)}.material-selector-loading-more{display:flex;align-items:center;justify-content:center;gap:6px;min-height:30px;color:var(--text-muted, #94a3b8);font-size:12px}.material-selector-state{display:flex;align-items:center;justify-content:center;gap:8px;min-height:100px;color:var(--text-muted, #94a3b8);font-size:13px}.material-selector-error{color:var(--danger, #ef4444)}@media(max-width:620px){.material-selector-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:260px}.material-selector-option{width:100%;grid-template-rows:96px auto}.material-selector-option .material-thumbnail{height:96px;min-height:96px}}.material-library-page{display:grid;gap:16px;min-width:0}.material-library-toolbar,.material-library-panel{border:1px solid var(--border, rgba(148, 163, 184, .28));background:var(--panel, rgba(15, 23, 42, .78))}.material-library-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;padding:14px}.material-library-upload,.material-library-remote,.material-library-panel-header,.material-library-card-title,.material-picker-footer{display:flex;align-items:center}.material-library-upload{gap:10px}.material-library-upload>span,.material-library-card-body>span,.material-library-card-body small,.material-picker-option-copy small{color:var(--muted, #94a3b8);font-size:12px}.material-library-remote{justify-content:flex-end;gap:8px;min-width:0}.material-library-remote input{width:min(100%,260px)}.material-library-panel{padding:18px}.material-library-panel-header{justify-content:space-between;gap:16px;margin-bottom:16px}.material-library-panel-header h2{margin:0;font-size:18px}.material-library-panel-header p{margin:6px 0 0;color:var(--muted, #94a3b8);font-size:13px}.material-search{display:flex;align-items:center;gap:8px;min-width:min(100%,250px);border:1px solid var(--border, rgba(148, 163, 184, .28));padding:0 10px;color:var(--muted, #94a3b8)}.material-search input{width:100%;min-width:0;border:0;background:transparent;outline:0}.material-picker-feedback{min-width:0;max-height:5em;overflow:auto;margin:0;padding:9px 11px;color:var(--text);background:var(--panel-soft);border:1px solid var(--border);border-radius:var(--radius-control);font-size:13px;line-height:1.45;overflow-wrap:anywhere}.material-picker-feedback[role=alert]{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.material-picker-feedback[role=status]{color:var(--success);background:color-mix(in srgb,var(--success) 9%,var(--panel));border-color:color-mix(in srgb,var(--success) 28%,var(--border))}.material-library-state,.material-library-empty,.material-picker-state{display:grid;place-items:center;gap:10px;min-height:230px;text-align:center;color:var(--muted, #94a3b8)}.material-library-empty strong{color:inherit}.material-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.material-library-card,.material-picker-option{position:relative;min-width:0;overflow:hidden;border:1px solid var(--border, rgba(148, 163, 184, .28));background:var(--card, rgba(15, 23, 42, .54))}.material-thumbnail{display:grid;place-items:center;aspect-ratio:1 / .76;overflow:hidden;background:#0f172a9e;color:var(--muted, #94a3b8)}.material-thumbnail img{width:100%;height:100%;object-fit:cover}.material-library-card-body{display:grid;gap:4px;padding:9px}.material-library-card-title{justify-content:space-between;gap:6px}.material-library-card-title strong,.material-picker-option-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.material-delete-button{flex:0 0 auto;color:#fca5a5}.material-picker-dialog{display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:12px;width:min(900px,calc(100vw - 32px));height:min(760px,calc(100dvh - 48px));max-height:min(760px,calc(100dvh - 48px));min-height:0;overflow:hidden;padding:18px;color:var(--text);border:1px solid rgb(255 255 255 / 92%);background:#fafbfffa;box-shadow:0 24px 70px #1c1f4347}:root[data-theme=dark] .material-picker-dialog{border-color:var(--border-strong);background:var(--panel);box-shadow:0 24px 70px #0000008c}.material-picker-overlay{z-index:40;background:#1e203aad}:root[data-theme=dark] .material-picker-overlay{background:#000000b8}.material-picker-dialog .dialog-header{margin:0}.material-picker-dialog .dialog-header span{display:block;margin-top:4px;color:var(--muted, #94a3b8);font-size:13px}.material-picker-tools{display:grid;gap:10px}.material-picker-search,.material-picker-actions{display:flex;align-items:center;gap:8px;min-width:0}.material-picker-search{border:1px solid var(--border, rgba(148, 163, 184, .28));padding:0 10px;color:var(--muted, #94a3b8)}.material-picker-search input{width:100%;min-width:0;border:0;background:transparent;outline:0}.material-picker-actions{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(130px,.72fr) auto;align-items:center;flex-wrap:nowrap}.material-picker-actions input{width:100%;min-width:0;flex:none}.material-picker-actions button{flex:0 0 auto;white-space:nowrap}.material-picker-footer-actions{display:flex;gap:8px}.material-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start;gap:10px;min-height:0;overflow:auto;padding-right:2px}.material-picker-option{appearance:none;padding:0;color:inherit;text-align:left;cursor:pointer}.material-picker-option:hover:not(:disabled),.material-picker-option.selected{border-color:var(--accent, #38bdf8)}.material-picker-option:disabled{cursor:not-allowed;opacity:.42}.material-picker-option-copy{display:grid;gap:4px;padding:8px}.material-picker-check{position:absolute;top:8px;right:8px;padding:4px;box-sizing:content-box;color:#082f49;background:#67e8f9}.material-picker-dialog .material-selector-grid{min-height:0;max-height:none;overflow-y:auto}.material-picker-dialog .material-selector-option{border-radius:8px}.material-picker-dialog .material-selector-option .material-thumbnail{border-radius:7px 7px 0 0}.material-picker-footer{display:grid;gap:10px;min-width:0;max-height:none;overflow:visible;padding-top:12px;border-top:1px solid var(--border, rgba(148, 163, 184, .28));color:var(--muted, #94a3b8);font-size:13px}.material-picker-selection-summary{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}.material-picker-selected-tray{display:flex;gap:8px;min-width:0;overflow-x:auto;padding-bottom:2px}.material-picker-selected-item{position:relative;flex:0 0 auto;width:44px;height:44px;overflow:hidden;border:1px solid var(--border-strong, rgba(148, 163, 184, .42));border-radius:6px}.material-picker-selected-item .material-thumbnail{width:100%;height:100%}.material-picker-selected-item button{position:absolute;top:2px;right:2px;display:grid;place-items:center;width:18px;height:18px;padding:0;color:#fff;background:#000000b3;border-radius:50%}.material-picker-footer-actions{display:flex;justify-content:flex-end;gap:8px}@media(max-width:620px){.material-picker-dialog{width:min(100vw - 16px,900px);max-height:calc(100dvh - 16px);padding:12px}.material-picker-actions{display:grid;grid-template-columns:1fr;align-items:stretch}.material-picker-actions input,.material-picker-actions button{width:100%;min-width:0}.material-picker-footer-actions{display:grid;grid-template-columns:1fr 1fr}}@media(max-width:760px){.material-library-toolbar{grid-template-columns:1fr}.material-library-remote,.material-library-panel-header{align-items:stretch;flex-direction:column}.material-library-remote input,.material-search{width:auto}}.brand-button{position:relative;width:100%;min-height:var(--action-height);padding:14px 28px;font-size:16px;font-weight:600;color:var(--brand-contrast);background:#6366f1;border:none;border-radius:999px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 12px 28px #6366f13d;overflow:hidden}.brand-button:hover:not(:disabled){transform:translateY(-2px);background:#5558df;box-shadow:0 15px 34px #6366f14d;filter:none}.brand-button:active:not(:disabled){transform:translateY(0)}.brand-button:disabled{cursor:not-allowed;opacity:.7}.brand-button-loading{cursor:wait}.brand-button-spinner{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center}.spinner-ring{width:100%;height:100%;animation:spin-flow 1.5s linear infinite;filter:drop-shadow(0 0 4px rgba(255,255,255,.6))}@keyframes spin-flow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner-ring circle{stroke:var(--text);animation:dash-flow 1.5s ease-in-out infinite}@keyframes dash-flow{0%,to{stroke-dashoffset:0}50%{stroke-dashoffset:-50}}.brand-button-text{position:relative;z-index:1;white-space:nowrap}.brand-button-loading:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{left:-100%}to{left:100%}}.logo-watermark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0;display:flex;align-items:center;justify-content:center}.logo-watermark img{object-fit:contain;filter:grayscale(20%);transition:opacity .3s ease}.logo-watermark~*{position:relative;z-index:1}.themed-select{position:relative;min-width:0}.themed-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;height:var(--control-height, 38px);padding:0 10px;color:var(--text);background:var(--field);border:1px solid var(--border-strong);border-radius:var(--radius-control, 8px);outline:none;text-align:left;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.themed-select-trigger>span{min-width:0;overflow:hidden;color:inherit;text-overflow:ellipsis;white-space:nowrap}.themed-select-trigger>svg{flex:0 0 auto;color:var(--text-muted);transition:transform .14s ease}.themed-select-trigger[aria-expanded=true]>svg{transform:rotate(180deg)}.themed-select-trigger:hover:not(:disabled){background:var(--field-hover)}.themed-select-trigger:focus-visible,.themed-select-trigger[aria-expanded=true]{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus)}.themed-select-trigger:disabled{cursor:not-allowed;opacity:.56}.themed-select-menu{position:fixed;z-index:10000;display:grid;gap:2px;overflow-y:auto;padding:5px;color:var(--text);background:var(--panel-strong);border:1px solid var(--border-strong);border-radius:var(--radius-control, 8px);box-shadow:0 14px 32px var(--shadow);outline:none}.themed-select-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:34px;padding:7px 9px;color:var(--text-default);background:transparent;border:0;border-radius:5px;text-align:left}.themed-select-option>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.themed-select-option>svg{flex:0 0 auto;color:var(--brand-text)}.themed-select-option:hover:not(:disabled),.themed-select-option.active{background:var(--field-hover)}.themed-select-option[aria-selected=true]{color:var(--brand-text);background:color-mix(in srgb,var(--brand) 18%,var(--field))}.themed-select-option:disabled{cursor:not-allowed;opacity:.45}:root[data-theme=dark] .themed-select-menu{background:#0d1117;border-color:#30363d}:root[data-theme=dark] .themed-select-option:hover:not(:disabled),:root[data-theme=dark] .themed-select-option.active{background:#161b22}:root[data-theme=dark] .themed-select-option[aria-selected=true]{background:#388bfd26}.simple-param-grid .themed-select-trigger,.commerce-param-grid .themed-select-trigger{height:30px;padding:0;background:transparent;border:0;box-shadow:none}.advanced-param-grid .themed-select-trigger{background:#ffffff7a;border-color:#ffffffdb;border-radius:999px}:root[data-theme=dark] .advanced-param-grid .themed-select-trigger{background:var(--field);border-color:var(--border-strong);border-radius:var(--radius-control, 8px)}.node-param-grid .themed-select-trigger{height:var(--control-height, 38px)}.img2img-setting-field .themed-select-trigger{height:auto;min-height:42px;padding:10px 12px;border-color:var(--border)}.fhl-login-container{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg);overflow:auto;z-index:9999;padding:20px 0}.fhl-login-background{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.fhl-grid-overlay{position:absolute;inset:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:50px 50px;animation:fhl-grid-move 20s linear infinite}@keyframes fhl-grid-move{0%{transform:translate(0)}to{transform:translate(50px,50px)}}.fhl-glow-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.3;animation:fhl-float 8s ease-in-out infinite}.fhl-glow-1{width:400px;height:400px;background:radial-gradient(circle,var(--brand) 0%,transparent 70%);top:-10%;left:-10%;animation-delay:0s}.fhl-glow-2{width:300px;height:300px;background:radial-gradient(circle,#8b5cf6 0%,transparent 70%);bottom:-5%;right:-5%;animation-delay:2s}.fhl-glow-3{width:350px;height:350px;background:radial-gradient(circle,#06b6d4 0%,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:4s}@keyframes fhl-float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}.fhl-login-box{position:relative;z-index:10;width:100%;max-width:440px;background:var(--panel);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:20px;border:1px solid var(--border);box-shadow:0 8px 32px #0006,0 0 0 1px var(--field-hover),inset 0 1px #ffffff0d;padding:48px 40px;animation:fhl-slide-up .6s ease-out;margin:20px}@keyframes fhl-slide-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.fhl-login-header{text-align:center;margin-bottom:32px}.fhl-logo{font-size:28px;font-weight:700;color:var(--text);margin:0 0 8px;display:flex;align-items:center;justify-content:center;gap:12px}.fhl-logo-icon{font-size:36px;filter:drop-shadow(0 0 8px rgba(59,130,246,.6))}.fhl-subtitle{font-size:14px;color:var(--text-muted);margin:0}.fhl-tabs{display:flex;gap:8px;background:var(--panel-soft);border-radius:12px;padding:6px;margin-bottom:24px}.fhl-tab{flex:1;padding:12px 20px;font-size:14px;font-weight:500;color:var(--text-muted);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease}.fhl-tab:hover:not(:disabled){color:var(--text);background:var(--field-hover)}.fhl-tab-active{color:var(--text);background:linear-gradient(135deg,var(--brand) 0%,var(--brand-deep) 100%);box-shadow:0 4px 12px var(--shadow)}.fhl-tab:disabled{cursor:not-allowed;opacity:.5}.fhl-alert{padding:16px 20px;border-radius:12px;margin-bottom:20px;display:flex;align-items:center;gap:10px;font-size:14px;animation:fhl-fade-in .3s ease}@keyframes fhl-fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.fhl-alert-error{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger)}.fhl-alert-success{background:#22c55e26;border:1px solid rgba(34,197,94,.3);color:#86efac}.fhl-alert-icon{display:inline-flex;flex:0 0 auto}.fhl-form{display:flex;flex-direction:column;gap:20px}.fhl-form-group{display:flex;flex-direction:column;gap:8px}.fhl-label{font-size:14px;font-weight:500;color:var(--text)}.fhl-input{width:100%;padding:12px 16px;font-size:14px;color:var(--text);background:var(--panel-soft);border:1px solid var(--border);border-radius:8px;outline:none;transition:all .3s ease;box-sizing:border-box}.fhl-input::placeholder{color:var(--text-muted)}.fhl-input:focus{border-color:var(--brand);background:var(--panel-soft);box-shadow:0 0 0 3px var(--field-hover)}.fhl-input:disabled{opacity:.5;cursor:not-allowed}.fhl-field-hint{color:var(--text-muted);font-size:12px;line-height:18px}.fhl-field-error{color:var(--danger);font-size:12px;line-height:18px}.fhl-input.fhl-input-error{border-color:var(--danger-border)}.fhl-input.fhl-input-error:focus{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 18%,transparent)}.fhl-code-row{display:grid;grid-template-columns:minmax(0,1fr) 124px;gap:8px;align-items:stretch}.fhl-code-button{width:124px;min-width:124px;margin-top:0;padding:0 12px;white-space:nowrap}.fhl-password-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:18px}.fhl-password-status-slot{display:flex;justify-content:flex-end;min-height:18px}.fhl-password-status{display:flex;align-items:center;gap:6px;min-height:18px;color:#fbbf24;font-size:12px;line-height:18px;white-space:nowrap;animation:fhl-fade-in .18s ease}.fhl-password-status svg{flex-shrink:0}.fhl-password-input-wrap{position:relative}.fhl-password-input-wrap .fhl-input{padding-right:44px}.fhl-password-toggle{position:absolute;top:0;right:0;display:grid;place-items:center;width:40px;height:100%;padding:0;color:var(--text-muted);background:transparent;border:0;border-radius:var(--radius-control)}.fhl-password-toggle:hover:not(:disabled){color:var(--text)}.fhl-password-toggle:focus-visible{color:var(--text);outline:2px solid var(--brand);outline-offset:-4px}.fhl-password-toggle:disabled{cursor:not-allowed}.fhl-button{width:100%;padding:12px 24px;font-size:14px;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}.fhl-button-primary{color:var(--text);background:linear-gradient(135deg,var(--brand) 0%,var(--brand-deep) 100%);box-shadow:0 4px 12px var(--border-strong)}.fhl-button-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--brand-deep) 0%,var(--brand-deep) 100%);box-shadow:0 8px 20px var(--shadow);transform:translateY(-2px)}.fhl-button-primary:active:not(:disabled){transform:translateY(0)}.fhl-button:disabled{cursor:not-allowed;opacity:.6}.fhl-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--text);border-radius:50%;animation:fhl-spin .8s linear infinite}@keyframes fhl-spin{to{transform:rotate(360deg)}}.fhl-footer{margin-top:32px;padding-top:24px;border-top:1px solid var(--field-hover);text-align:center;font-size:13px;color:var(--text-muted)}.fhl-footer p{margin:4px 0}.fhl-footer-note{font-size:12px;color:var(--text-muted)}@media(max-width:640px){.fhl-login-box{padding:24px 20px;margin:12px;max-width:100%}.fhl-logo{font-size:22px;margin-bottom:6px}.fhl-logo-icon{font-size:28px}.fhl-code-row{grid-template-columns:minmax(0,1fr) 112px}.fhl-code-button{width:112px;min-width:112px;padding:0 8px}.fhl-login-header{margin-bottom:24px}}.fhl-login-container{background:linear-gradient(135deg,#f8efff,#f0efff 38%,#e8f6ff)}.fhl-grid-overlay{display:none}.fhl-login-background:before,.fhl-login-background:after{position:absolute;width:min(30vw,300px);aspect-ratio:1;background:url(../logo.svg) center / contain no-repeat;content:"";opacity:.035;filter:grayscale(1) saturate(0) brightness(.72)}.fhl-login-background:before{top:8%;left:8%;transform:rotate(-12deg)}.fhl-login-background:after{right:7%;bottom:5%;transform:rotate(12deg) scaleX(-1)}.fhl-glow-orb{opacity:.2;filter:blur(110px)}.fhl-glow-1{background:#d8a9ed}.fhl-glow-2{background:#9ecfff}.fhl-glow-3{background:#f3bfd7}.fhl-login-box{background:#ffffff94;border:1px solid rgb(255 255 255 / 84%);border-radius:20px;box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(20px) saturate(145%);backdrop-filter:blur(20px) saturate(145%)}.fhl-tabs{background:#ffffff4d;border:1px solid rgb(255 255 255 / 76%);border-radius:999px}.fhl-tab{border-radius:999px}.fhl-tab-active{color:#fff;background:#6366f1;box-shadow:0 10px 22px #6366f138}.fhl-input{padding:0 2px;color:var(--text);background:transparent;border:0;border-bottom:1px solid rgb(78 75 109 / 28%);border-radius:0;box-shadow:none}.fhl-input:focus{background:#ffffff24;border:0;border-bottom:2px solid #6366f1;border-radius:0;box-shadow:0 1px #6366f1}.fhl-button,.fhl-button-primary{border-radius:999px}.fhl-button-primary{color:#fff;background:#6366f1;box-shadow:0 12px 28px #6366f13d}.fhl-button-primary:hover:not(:disabled){background:#5558df;box-shadow:0 15px 34px #6366f14d}.fhl-login-container{background:var(--bg);color:var(--text)}.fhl-login-background{opacity:.45}.fhl-glow-orb{filter:blur(96px);opacity:.18}.fhl-glow-2{background:radial-gradient(circle,var(--violet) 0%,transparent 70%)}.fhl-glow-3{background:radial-gradient(circle,var(--green) 0%,transparent 70%)}.fhl-login-box{max-width:440px;padding:40px 36px;background:var(--panel);border-color:var(--border);border-radius:var(--radius-panel);box-shadow:var(--panel-shadow)}.fhl-tabs,.fhl-alert{border-radius:var(--radius-control)}.fhl-tab-active,.fhl-button-primary{color:var(--brand-contrast);background:linear-gradient(135deg,var(--brand),var(--brand-deep));box-shadow:0 6px 16px color-mix(in srgb,var(--brand) 24%,transparent)}.fhl-input{min-height:var(--control-height);padding:0 12px;color:var(--text);background:var(--field);border-color:var(--border-strong);border-radius:var(--radius-control)}.fhl-input:focus{background:var(--panel);border-color:var(--brand);box-shadow:0 0 0 3px var(--focus)}.fhl-button{min-height:var(--action-height);border-radius:var(--radius-control)}.fhl-alert-success{color:var(--success);background:color-mix(in srgb,var(--success) 12%,transparent);border-color:color-mix(in srgb,var(--success) 28%,transparent)}.fhl-password-status{color:var(--warning)}@media(max-width:640px){.fhl-login-box{max-height:calc(100vh - 32px);margin:16px;padding:32px 24px;overflow-y:auto}}.fhl-logo{color:var(--text);font-weight:750}.fhl-subtitle,.fhl-tab{color:var(--text-muted)}.fhl-tab{font-weight:600}.fhl-tab:hover:not(:disabled){color:var(--text)}.fhl-tab-active{color:var(--brand-contrast);font-weight:700}.fhl-input::placeholder,.fhl-textarea::placeholder{color:var(--text-placeholder);opacity:1}.fhl-input,.fhl-textarea{border-color:var(--border-strong)}.fhl-input:focus,.fhl-textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus)}.fhl-forgot-link{color:var(--brand-text);text-decoration:underline;text-decoration-style:dotted}.fhl-forgot-link:hover{color:var(--brand-deep);text-decoration-style:solid}.fhl-footer,.fhl-copyright{color:var(--text-muted);font-size:12px}.fhl-label,.fhl-form-label{color:var(--label);font-weight:600}.fhl-error,.fhl-alert-error{color:var(--danger);font-weight:500}.fhl-alert-success{color:var(--success);font-weight:500}.auth-warning{position:fixed;top:12px;left:50%;z-index:70;width:min(620px,calc(100vw - 24px));padding:9px 12px;color:var(--warning);background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-control);box-shadow:var(--panel-shadow);transform:translate(-50%);pointer-events:none;font-size:13px;text-align:center}.auth-loading{display:grid;place-items:center;width:100%;height:100%;color:var(--text-muted);background:var(--bg)}.auth-loading-content{display:grid;justify-items:center;gap:12px;font-size:14px}.auth-loading-spinner{width:28px;height:28px;border:3px solid var(--border-strong);border-top-color:var(--brand);border-radius:50%;animation:auth-wrapper-spin .8s linear infinite}@keyframes auth-wrapper-spin{to{transform:rotate(360deg)}}.user-dropdown-container{position:relative}.app-account-menu{position:fixed;top:20px;right:20px;z-index:60}.user-dropdown-button{display:inline-flex;align-items:center;gap:8px;min-height:var(--action-height);padding:0 12px;color:var(--text);background:var(--field);border:1px solid var(--border-strong);border-radius:var(--radius-control);font-size:13px;font-weight:700;box-shadow:0 4px 12px var(--shadow)}.user-dropdown-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-dropdown-button:hover,.user-dropdown-button:focus-visible{background:var(--field-hover);border-color:var(--brand);outline:none;box-shadow:0 0 0 3px var(--focus)}.user-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:20;display:grid;min-width:168px;padding:4px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:var(--panel-shadow)}.user-dropdown-menu button{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:0 10px;color:var(--text);background:transparent;border:1px solid transparent;border-radius:var(--radius-control);font-size:13px;text-align:left}.user-dropdown-menu button:hover,.user-dropdown-menu button:focus-visible{background:var(--field-hover);border-color:var(--border);outline:none}.user-dropdown-menu button.danger:hover,.user-dropdown-menu button.danger:focus-visible{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}@media(max-width:680px){.app-account-menu{top:max(8px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));max-width:calc(100vw - 84px)}.user-dropdown-button{max-width:100%}}@media(max-width:860px){body:has(.app-sidebar.drawer-open) .app-account-menu{visibility:hidden;pointer-events:none}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}:root{color-scheme:light;--page-width: 1180px;--page-pad: clamp(12px, 2.1vw, 22px);--page-gap: clamp(14px, 1.8vw, 22px);--bg: #F8F9FA;--canvas: #F8F9FA;--panel: #ffffff;--panel-strong: #f4f6fa;--panel-soft: #fafbfc;--text: #1a202c;--text-muted: #5a6576;--label: #3d4a5a;--text-subtitle: #555555;--text-helper: #888888;--text-placeholder: #767676;--border: #d1d9e3;--border-strong: #b8c5d6;--brand: #8b5cf6;--brand-deep: #7c3aed;--brand-text: #8b5cf6;--blue: #3b82f6;--violet: #8b5cf6;--pink: #ec4899;--green: #10b981;--amber: #f59e0b;--danger: #ef4444;--danger-bg: #fef2f2;--danger-border: #fecaca;--shadow: rgb(0 0 0 / 6%);--overlay: rgb(0 0 0 / 50%);--field: #f3f5f8;--field-hover: #e9ecf2;--focus: rgb(139 92 246 / 18%);--brand-contrast: #ffffff;--success: #10b981;--warning: #f59e0b;--radius-control: 8px;--radius-panel: 8px;--control-height: 38px;--action-height: 40px;--panel-shadow: 0 2px 8px rgba(0, 0, 0, .06);--text-shadow-base: none;--text-shadow-strong: none;--text-shadow-title: none;--text-stroke: none;color:var(--text);background:var(--bg);font-family:Segoe UI Variable,Microsoft YaHei UI,PingFang SC,Noto Sans SC,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;text-shadow:none}:root[data-theme=dark]{color-scheme:dark;--bg: #000408;--canvas: #050a12;--panel: #0a1018;--panel-strong: #0d141f;--panel-soft: #070c14;--text: #e8f0ff;--text-muted: #8799b3;--label: #b8c5d9;--text-subtitle: rgba(255, 255, 255, .85);--text-helper: rgba(255, 255, 255, .65);--text-placeholder: rgba(255, 255, 255, .5);--border: #0a2845;--border-strong: #0f3d6b;--brand: #0A59C2;--brand-deep: #084a9f;--brand-text: #75b4ff;--blue: #0A59C2;--violet: #8c6fff;--pink: #ff3d8f;--green: #00d98e;--amber: #ffb930;--danger: #ff5247;--danger-bg: #1f0c0e;--danger-border: #5a1f22;--shadow: rgb(0 0 0 / 65%);--overlay: rgb(0 2 6 / 88%);--field: #060b13;--field-hover: #0a1018;--focus: rgb(10 89 194 / 45%);--brand-contrast: #ffffff;--success: #39e5a7;--warning: #f0bb58;--radius-control: 8px;--radius-panel: 8px;--control-height: 38px;--action-height: 40px;--panel-shadow: 0 8px 20px var(--shadow);--text-shadow-base: none;--text-shadow-strong: none;--text-shadow-title: none;--text-stroke: none}*{box-sizing:border-box}html,body,#root{width:100%;height:100%}body{margin:0;min-width:0;min-height:0;overflow:hidden;background:var(--bg)}button,input,select,textarea{font:inherit}select option,select optgroup{color:#141923;-webkit-text-fill-color:#141923;background-color:#fff}button{border:0;cursor:pointer}button:disabled,select:disabled{cursor:not-allowed;opacity:.56}.canvas-drawer{z-index:8;display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;padding:16px 12px;overflow:hidden;background:#0a0c12e8;border-right:1px solid var(--border);box-shadow:18px 0 42px #0000003d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}:root[data-theme=light] .canvas-drawer{background:#f7f9fced}.canvas-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.canvas-list{display:grid;flex:1 1 auto;align-content:start;gap:8px;min-height:0;overflow-y:auto;padding-right:4px}.canvas-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;min-width:0;padding:8px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px var(--shadow)}.canvas-item.active{border-color:var(--blue);box-shadow:0 0 0 1px #4ea7ff3d,0 8px 20px var(--shadow)}.canvas-switch{display:grid;gap:4px;width:100%;min-width:0;padding:8px;color:var(--text);background:transparent;border:0;border-radius:8px;font:inherit;text-align:left;cursor:pointer}.canvas-switch:hover{background:var(--field-hover)}.canvas-switch:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.canvas-switch-editing{cursor:default}.canvas-switch-editing:hover{background:transparent}.canvas-name-field{display:grid;min-width:0}.canvas-name-field span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.canvas-name-field input{width:100%;min-width:0;padding:0;overflow:hidden;color:var(--text);background:transparent;border:0;outline:none;font-size:13px;font-weight:800;line-height:1.25;text-overflow:ellipsis}.canvas-name-field input:focus{padding:2px 5px;background:var(--field);border-radius:8px;box-shadow:0 0 0 2px var(--focus)}.canvas-switch-editing .canvas-name-field input{padding:2px 5px;background:var(--field);border-radius:8px}.canvas-switch span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-switch span.canvas-name-text{color:var(--text);font-size:13px;font-weight:800;line-height:1.25}.canvas-switch-meta{display:flex;align-items:center;gap:8px;min-width:0}.canvas-switch span{color:var(--text-muted);font-size:11px}.canvas-generation-state{display:inline-flex;align-items:center;gap:4px;color:var(--green);font-size:10px;font-weight:850;text-transform:uppercase}.canvas-switch .canvas-generation-state{color:var(--green);font-size:10px}.canvas-actions{display:grid;gap:5px;align-content:center}.canvas-actions button{display:inline-grid;place-items:center;width:26px;height:26px;color:var(--text-muted);background:var(--panel-strong);border:1px solid var(--border);border-radius:8px}.canvas-actions button:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.workflow-stage{position:relative;min-width:0;min-height:0;overflow:hidden}.app-workspace.workflow-workspace{display:block;gap:0;height:100%;min-height:0;padding:0;overflow:hidden}.app-workspace.workflow-workspace .workflow-stage{width:100%;height:100%;min-height:100%}.workflow-canvas-panel{position:absolute;inset:0 0 0 auto;z-index:7;width:320px;padding:12px;overflow:hidden;border-right:0;border-left:1px solid var(--border);border-radius:0;transition:width .18s ease,padding .18s ease,box-shadow .18s ease}.workflow-canvas-panel.drawer-collapsed{align-items:center;width:64px;padding:12px 8px}.workflow-canvas-drawer-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:42px;min-height:42px;color:var(--text);background:var(--field);border:1px solid var(--border);border-radius:8px;font-size:12px;font-weight:850}.workflow-canvas-drawer-toggle:hover,.workflow-canvas-drawer-toggle:focus-visible{background:var(--field-hover);border-color:var(--border-strong);box-shadow:0 0 0 3px var(--focus);outline:none}.workflow-canvas-panel.drawer-open .workflow-canvas-drawer-toggle{position:absolute;top:12px;right:12px}.workflow-canvas-panel.drawer-open .workflow-canvas-drawer-toggle span{display:none}.workflow-canvas-panel.drawer-collapsed .workflow-canvas-drawer-toggle{flex-direction:column;height:58px;margin:0 auto;font-size:10px}.workflow-canvas-drawer-content{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:12px;min-height:0}.workflow-canvas-panel.drawer-collapsed .workflow-canvas-drawer-content{display:none}.workflow-canvas-panel .canvas-drawer-header{min-height:42px;padding-right:50px}.workflow-canvas-panel .canvas-title-bar{position:static;width:100%;min-width:0;transform:none}.workflow-canvas-panel .canvas-list{display:grid;align-content:start;gap:8px;overflow-x:hidden;overflow-y:auto}.workflow-canvas-panel .canvas-item{min-height:74px;align-items:center}.workflow-stage>.react-flow{height:100%;transition:width .18s ease}.workflow-canvas-panel.drawer-open+.react-flow{width:calc(100% - 320px)!important}.workflow-canvas-panel.drawer-collapsed+.react-flow{width:calc(100% - 64px)!important}.react-flow{background:linear-gradient(rgb(255 255 255 / 3%) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / 3%) 1px,transparent 1px);background-size:64px 64px}:root[data-theme=light] .react-flow{background:linear-gradient(rgb(16 24 40 / 6%) 1px,transparent 1px),linear-gradient(90deg,rgb(16 24 40 / 6%) 1px,transparent 1px);background-size:64px 64px}.react-flow__attribution{display:none}.react-flow__handle{width:12px;height:12px;background:var(--pink);border:2px solid var(--panel);box-shadow:0 0 18px var(--pink)}.react-flow__handle-left{left:-7px}.react-flow__handle-right{right:-7px}.node-port-row{position:relative;z-index:3;display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;min-height:24px;padding:0 8px;color:var(--text);background:#0f121adb;border:1px solid var(--border-strong);border-radius:999px;box-shadow:0 8px 20px #0000003d;font-size:11px;font-weight:800;line-height:1;white-space:nowrap}.node-port-row-source{justify-self:end;margin:-2px 4px 10px auto;color:#d7ecff;border-color:#4ea7ff8a}.node-port-row-target{color:#ffe1f0;border-color:#ff4aa28a}.node-port-row .react-flow__handle{position:static;flex:0 0 auto;transform:none}.node-port-row-target .react-flow__handle{order:0;margin-left:-15px}.node-port-row-source .react-flow__handle{order:2;margin-right:-22px}.node-input-stack{display:grid;justify-items:start;gap:8px;margin:0}.node-port-grid{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:start;gap:12px;min-height:56px;margin:0 4px 10px}.prompt-port-grid{grid-template-columns:minmax(0,1fr);gap:8px}.prompt-reference-port-list{display:grid;gap:6px;margin:0 4px 10px}.node-port-grid .node-port-row-source{align-self:start;margin-top:0;margin-bottom:0}.react-flow__edge-path{stroke-width:2.25}.edge-blue .react-flow__edge-path{stroke:var(--blue);filter:drop-shadow(0 0 8px var(--blue))}.edge-violet .react-flow__edge-path{stroke:var(--violet);filter:drop-shadow(0 0 8px var(--violet))}.edge-pink .react-flow__edge-path{stroke:var(--pink);filter:drop-shadow(0 0 10px var(--pink))}.edge-green .react-flow__edge-path{stroke:var(--green);filter:drop-shadow(0 0 8px var(--green))}.react-flow__controls,.react-flow__minimap{overflow:hidden;background:#0d1017d6;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 20px var(--shadow)}:root[data-theme=light] .react-flow__controls,:root[data-theme=light] .react-flow__minimap{background:#ffffffe0}.react-flow__controls button{color:var(--text);background:transparent;border-bottom:1px solid var(--border)}.react-flow__controls button:hover{background:var(--field-hover)}.canvas-title-bar{position:absolute;top:18px;left:50%;z-index:6;display:flex;align-items:center;gap:8px;width:min(360px,34vw);min-width:220px;padding:10px 12px;color:var(--text);background:#0f121ad1;border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 20px var(--shadow);transform:translate(-50%);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto}:root[data-theme=light] .canvas-title-bar{background:#ffffffd1}.canvas-title-bar input{width:100%;min-width:0;padding:0;overflow:hidden;color:var(--text);background:transparent;border:0;outline:none;font-size:15px;font-weight:850;line-height:1.25;text-align:center;text-overflow:ellipsis}.canvas-title-bar input:focus{padding:2px 6px;background:var(--field);border-radius:8px;box-shadow:0 0 0 2px var(--focus)}.github-repo-link{display:inline-flex;align-items:center;justify-content:flex-start;gap:7px;flex:0 0 auto;align-self:flex-start;max-width:100%;min-height:32px;padding:7px 10px;overflow:hidden;color:var(--text);background:#0f121ad1;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 20px var(--shadow);font-size:12px;font-weight:850;text-decoration:none;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.github-repo-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.github-repo-link:hover{border-color:#4ea7ff85;box-shadow:0 0 0 1px #4ea7ff2e,0 8px 20px var(--shadow)}:root[data-theme=light] .github-repo-link{background:#ffffffd6}.brand-mark{display:grid;place-items:center;width:38px;height:38px;color:#071016;background:linear-gradient(135deg,var(--blue),var(--green));border-radius:8px;box-shadow:0 0 24px #4ea7ff57}.gallery-dock h2{margin:0;color:var(--text);font-size:18px;line-height:1.1;letter-spacing:0}.gallery-dock p{margin:4px 0 0;color:var(--text-muted);font-size:12px}.status-pill{max-width:min(520px,46vw);padding:10px 13px;overflow:hidden;color:var(--text);background:#0f121abd;border:1px solid var(--border);border-radius:999px;box-shadow:0 8px 20px var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.portal-shell{width:100vw;height:100vh;min-width:0;min-height:0;overflow:hidden;background:var(--bg);position:relative}.portal-shell:before{content:none}.portal-shell:after{content:none}:root[data-theme=dark] .portal-shell:before{content:"";position:fixed;inset:0;background-image:radial-gradient(circle at 20% 30%,rgba(10,89,194,.08) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(10,89,194,.06) 0%,transparent 50%),radial-gradient(circle at 40% 80%,rgba(10,89,194,.07) 0%,transparent 50%);pointer-events:none;z-index:0}:root[data-theme=dark] .portal-shell:after{content:"";position:fixed;inset:0;background-image:radial-gradient(1px 1px at 20% 30%,rgba(10,89,194,.3),transparent),radial-gradient(1px 1px at 60% 70%,rgba(10,89,194,.3),transparent),radial-gradient(1px 1px at 50% 50%,rgba(10,89,194,.25),transparent),radial-gradient(1px 1px at 80% 10%,rgba(10,89,194,.3),transparent),radial-gradient(1px 1px at 90% 60%,rgba(10,89,194,.25),transparent),radial-gradient(1px 1px at 33% 50%,rgba(10,89,194,.25),transparent),radial-gradient(1px 1px at 15% 80%,rgba(10,89,194,.3),transparent),radial-gradient(1px 1px at 70% 35%,rgba(10,89,194,.25),transparent);background-size:200% 200%;background-position:0% 0%;animation:particles-float 20s ease-in-out infinite;pointer-events:none;z-index:0;opacity:.5}@keyframes particles-float{0%,to{background-position:0% 0%}50%{background-position:100% 100%}}.portal-stage{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);align-content:start;gap:var(--page-gap);width:100%;height:100%;min-width:0;min-height:0;padding:var(--page-pad);overflow-y:auto;z-index:1}.workflow-portal-stage{z-index:61}.app-workspace-shell{grid-template-columns:160px minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:0;padding:0;overflow:hidden}.app-status-banner{position:fixed;top:14px;left:50%;z-index:47;display:inline-flex;align-items:center;gap:8px;width:min(520px,calc(100vw - 180px));min-height:38px;padding:8px 12px;color:var(--text-muted);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-control);box-shadow:var(--panel-shadow);transform:translate(-50%);font-size:13px;pointer-events:none}@media(max-width:680px){.app-status-banner{top:58px;width:calc(100vw - 24px)}}.app-notice{position:fixed;top:14px;left:50%;z-index:50;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:min(560px,calc(100vw - 32px));min-height:48px;padding:10px 12px;color:var(--text);background:#0f121aeb;border:1px solid rgb(240 187 88 / 34%);border-radius:12px;box-shadow:0 18px 46px var(--shadow);transform:translate(-50%);animation:notice-enter .18s ease-out;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}:root[data-theme=light] .app-notice{background:#fffffff0}.app-notice>svg{color:var(--amber)}.app-notice div{display:grid;gap:2px;min-width:0}.app-notice strong,.app-notice span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-notice strong{font-size:13px;line-height:1.25}.app-notice span{color:var(--text-muted);font-size:12px;line-height:1.35;overflow:visible;text-overflow:clip;white-space:normal}.app-notice button{display:grid;place-items:center;width:28px;height:28px;color:var(--text-muted);background:var(--field);border:1px solid var(--border);border-radius:8px}.app-notice button:hover,.app-notice button:focus-visible{color:var(--text);background:var(--field-hover);border-color:var(--border-strong);outline:none}@keyframes notice-enter{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes portal-toast-enter{0%{opacity:0;transform:translate(calc(-50vw + 50% + 22px)) translateY(-8px) scale(.98)}to{opacity:1;transform:translate(0) translateY(0) scale(1)}}.app-sidebar{grid-column:1;grid-row:1;z-index:14;display:flex;flex-direction:column;gap:14px;min-width:0;min-height:0;padding:16px 12px;background:#fff;border-right:1px solid var(--border);box-shadow:4px 0 12px #0000000a}:root[data-theme=dark] .app-sidebar{background:#0a0c12e0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:16px 0 40px #00000038}.sidebar-drawer-toggle,.sidebar-scrim{display:none}.sidebar-scrim{grid-column:1 / -1;grid-row:1}.app-sidebar-brand{grid-template-columns:minmax(0,1fr);justify-items:center;gap:8px;min-height:auto;padding:0;text-align:center}.app-sidebar-brand>span:not(.brand-mark){display:none}.app-sidebar-brand .brand-mark{width:44px;height:44px}.app-sidebar-nav{display:grid;align-content:start;justify-self:stretch;gap:8px;overflow:visible;padding:0;background:transparent;border:0;border-radius:0}.app-sidebar-nav button{flex-direction:column;gap:6px;width:100%;min-height:56px;padding:10px 12px;white-space:normal;font-size:13px;text-align:center}.app-sidebar-footer{display:grid;gap:8px;min-width:0;margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.sidebar-theme-switcher{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;background:var(--field);border:1px solid var(--border);border-radius:12px}.sidebar-theme-switcher button,.sidebar-github-link{display:inline-grid;place-items:center;min-height:30px;color:var(--text-muted);background:transparent;border:1px solid transparent;border-radius:8px}.sidebar-theme-switcher button:hover,.sidebar-theme-switcher button:focus-visible,.sidebar-theme-switcher button.active,.sidebar-github-link:hover,.sidebar-github-link:focus-visible{color:var(--text);background:var(--field-hover);border-color:var(--border-strong);outline:none}.sidebar-github-link{grid-template-columns:auto auto;gap:5px;text-decoration:none}.app-workspace{grid-column:2;grid-row:1;display:grid;grid-template-rows:auto minmax(0,1fr);align-content:start;gap:var(--page-gap);min-width:0;min-height:0;padding:var(--page-pad);overflow-y:auto}.workspace-topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:min(var(--page-width),100%);min-height:48px;margin:0 auto;padding:12px 0 8px;border-bottom:1px solid var(--border)}.workspace-title{display:grid;gap:6px;min-width:0}.workspace-title h1{margin:0;overflow:hidden;color:var(--text);font-size:clamp(24px,3vw,34px);line-height:1.08;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.workspace-title p{max-width:720px;margin:0;overflow:hidden;color:var(--text-muted);font-size:14px;line-height:1.55;text-overflow:ellipsis;white-space:nowrap}.user-dropdown-wrapper{position:relative}.user-badge{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#121824;border:1px solid rgba(10,89,194,.3);border-radius:20px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.user-badge:hover{border-color:#0a59c2;background:#0a59c21a;box-shadow:0 4px 12px var(--shadow)}.user-badge-icon{font-size:16px}.user-badge-name{letter-spacing:.5px}.user-dropdown-menu{position:absolute;top:110%;right:0;min-width:160px;background:#121824;border:1px solid #0A59C2;border-radius:8px;box-shadow:0 8px 20px var(--shadow);overflow:hidden;z-index:50}.user-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:transparent;border:none;color:#e2e8f0;font-size:14px;font-weight:500;text-align:left;cursor:pointer;transition:all .2s;border-bottom:1px solid rgba(255,255,255,.05)}.user-dropdown-item:last-child{border-bottom:none}.user-dropdown-item:hover{background:#0a59c226;color:#0a59c2}.user-dropdown-item.logout:hover{background:#ef444426;color:#fca5a5}.portal-topbar{position:sticky;top:0;z-index:12;display:grid;grid-template-areas:"brand status nav";grid-template-columns:minmax(220px,.9fr) minmax(260px,1.05fr) auto;align-items:center;gap:10px;min-width:0;width:min(var(--page-width),100%);margin:0 auto;padding:8px;background:#0a0c12b8;border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 42px var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}:root[data-theme=light] .portal-topbar{background:#ffffffc7}.portal-topbar .portal-brand{grid-area:brand}.portal-brand{display:inline-grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;justify-self:start;max-width:100%;min-height:48px;padding:4px 10px 4px 4px;color:var(--text);background:transparent;border:0;text-align:left}.portal-brand .brand-mark{width:42px;height:42px}.portal-brand strong,.portal-brand small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-brand strong{font-size:16px;line-height:1.2}.portal-brand small{margin-top:3px;color:var(--text-muted);font-size:12px;font-weight:700}.portal-topbar .portal-nav{grid-area:nav}.portal-nav{display:inline-flex;align-items:center;gap:6px;justify-self:end;max-width:100%;min-width:0;overflow-x:auto;scrollbar-width:none;padding:4px;background:var(--field);border:1px solid var(--border);border-radius:12px}.portal-nav::-webkit-scrollbar{display:none}.portal-nav button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:0 12px;color:var(--text-muted);background:var(--panel-soft);border:1px solid var(--border);border-radius:8px;font-size:13px;font-weight:800;white-space:nowrap}.portal-brand:focus-visible,.portal-nav button:focus-visible,.workbench-actions button:focus-visible{border-color:var(--blue);box-shadow:0 0 0 3px var(--focus);outline:none}.portal-nav button:hover,.portal-nav button.active,.portal-nav button:focus-visible{color:var(--text);background:var(--panel);border-color:var(--border-strong)}:root[data-theme=light] .portal-nav button:hover,:root[data-theme=light] .portal-nav button.active{background:var(--panel);border-color:var(--border-strong);box-shadow:0 2px 6px #0052d91a,0 0 0 1px #0052d914}.portal-nav.app-sidebar-nav{display:grid;align-content:start;justify-self:stretch;gap:8px;max-width:none;overflow:visible;padding:0;background:transparent;border:0;border-radius:0}.portal-nav.app-sidebar-nav button{flex-direction:column;gap:6px;width:100%;min-height:58px;padding:8px 4px;white-space:normal}.sidebar-nav-group{position:relative;min-width:0}.sidebar-submenu-trigger{position:relative}.sidebar-submenu-trigger:after{position:absolute;top:50%;right:8px;width:5px;height:5px;border-top:1.5px solid currentcolor;border-right:1.5px solid currentcolor;content:"";opacity:.58;transform:translateY(-50%) rotate(45deg)}.sidebar-submenu{position:absolute;top:50%;left:calc(100% + 10px);z-index:45;display:grid;gap:6px;min-width:128px;padding:8px;visibility:hidden;background:var(--panel);border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 18px 42px #00000038;opacity:0;pointer-events:none;transform:translate3d(-4px,-50%,0);transition:opacity .14s ease,transform .14s ease,visibility .14s ease}.sidebar-submenu:before{position:absolute;top:0;right:100%;width:10px;height:100%;content:""}.sidebar-nav-group:hover .sidebar-submenu,.sidebar-nav-group:focus-within .sidebar-submenu{visibility:visible;opacity:1;pointer-events:auto;transform:translate3d(0,-50%,0)}.portal-nav.app-sidebar-nav .sidebar-submenu button{flex-direction:row;align-items:center;justify-content:flex-start;min-height:36px;padding:0 12px;color:var(--muted);font-size:13px;font-weight:700;white-space:nowrap;opacity:1}.portal-nav.app-sidebar-nav .sidebar-submenu button:disabled{cursor:default;opacity:1}.launchpad,.advanced-page,.commerce-page,.console-page,.gallery-page{display:grid;align-content:start;gap:18px;width:min(var(--page-width),100%);margin:0 auto}.launchpad{container-type:inline-size}.launchpad-copy,.workbench-head,.page-heading{display:grid;gap:10px;min-width:0;padding-top:8px}.workbench-head{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px}.workbench-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}.launchpad h1,.workbench-head h1,.page-heading h1{margin:0;color:var(--text);font-size:clamp(28px,4vw,42px);line-height:1.08;letter-spacing:0}.page-heading h1{font-size:clamp(24px,3vw,34px)}.launchpad p,.workbench-head p,.page-heading p{max-width:720px;margin:0;color:var(--text-muted);font-size:15px;line-height:1.6}.two-column-layout{display:grid;grid-template-columns:70% 30%;gap:20px;align-items:start}.generation-input-column{display:flex;flex-direction:column;gap:16px;min-width:0}@media(max-width:1200px){.two-column-layout{grid-template-columns:1fr}}.workbench-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(12px,1.45cqw,16px);align-items:start}.workbench-composer,.advanced-composer{gap:16px}.paired-generation{display:grid;gap:14px;min-width:0;padding-top:16px;border-top:1px solid var(--border)}.paired-generation-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.paired-generation-heading h2{margin:5px 0 3px;color:var(--text);font-size:16px;line-height:1.35}.paired-generation-heading p{margin:0;color:var(--text-subtitle);font-size:12px;line-height:1.5}.paired-generation-eyebrow{display:inline-flex;align-items:center;gap:6px;color:var(--brand-text);font-size:12px;font-weight:700}.paired-generation-count{flex:0 0 auto;padding:5px 9px;color:var(--label);background:var(--field);border:1px solid var(--border);border-radius:999px;font-size:12px;font-variant-numeric:tabular-nums}.paired-generation-heading-actions{display:grid;justify-items:end;gap:8px;flex:0 0 auto}.paired-generation-add,.paired-generation-remove-group{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:6px 10px;color:var(--brand-text);background:var(--panel-strong);border:1px solid var(--border-strong);border-radius:6px;font-size:12px}.paired-generation-add:hover:not(:disabled),.paired-generation-remove-group:hover:not(:disabled){border-color:var(--blue)}.paired-generation-list{display:grid;gap:12px}.paired-generation-row{display:grid;gap:8px;min-width:0}.paired-generation-row-heading{display:flex;align-items:center;gap:8px;min-height:30px}.paired-generation-index{color:var(--text);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}.paired-generation-status{color:var(--text-muted);font-size:11px}.paired-generation-status.is-ready{color:var(--success)}.paired-generation-remove-group{width:30px;min-height:30px;margin-left:auto;padding:0;color:var(--text-muted);background:transparent;border-color:transparent}.paired-generation-editor{display:grid;min-width:0;padding:10px;background:var(--field);border:1px solid var(--border-strong);border-radius:8px;transition:border-color .16s ease,box-shadow .16s ease}.paired-generation-editor:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px var(--focus)}.paired-generation-attachments{display:flex;align-items:center;flex-wrap:wrap;gap:7px;min-width:0;padding-bottom:9px}.paired-generation-thumbnail{position:relative;width:54px;height:54px;flex:0 0 auto}.paired-generation-thumbnail img{width:100%;height:100%;object-fit:cover;background:var(--panel-strong);border:1px solid var(--border-strong);border-radius:6px}.paired-generation-thumbnail button{position:absolute;top:-5px;right:-5px;display:grid;width:18px;height:18px;padding:0;color:var(--text);background:var(--panel-strong);border:1px solid var(--border-strong);border-radius:50%;place-items:center}.paired-generation-attach{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:54px;padding:7px 10px;color:var(--brand-text);background:var(--panel-strong);border:1px dashed var(--border-strong);border-radius:6px;font-size:12px}.paired-generation-attach:hover:not(:disabled){border-color:var(--blue)}.paired-generation-reference-count{align-self:center;color:var(--text-muted);font-size:11px}.paired-generation-prompt{display:grid;min-width:0;padding-top:8px;border-top:1px solid var(--border)}.paired-generation-prompt textarea{width:100%;min-width:0;min-height:76px;padding:2px 0;color:var(--text);background:transparent;border:0;border-radius:0;outline:none;resize:vertical;font-size:13px;line-height:1.5}.paired-generation-prompt textarea::placeholder{color:var(--text-muted)}.paired-generation-prompt textarea:focus{box-shadow:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.paired-generation-error{margin:0;color:var(--danger);font-size:12px}.paired-generation-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.paired-generation-api-note{color:var(--text-muted);font-size:12px}.paired-generation-actions{display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.paired-generation-reset{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:7px 10px;color:var(--label);background:transparent;border:1px solid var(--border);border-radius:6px;font-size:12px}.paired-generation-submit{min-height:36px;padding:7px 13px;color:var(--text-muted);background:var(--panel-strong);border:1px solid var(--border);border-radius:6px;font-size:12px;font-weight:650;transition:color .14s ease,background-color .14s ease,border-color .14s ease,box-shadow .14s ease}.paired-generation-submit.is-ready{color:#fff;background:var(--blue);border-color:var(--blue);box-shadow:0 2px 5px #184e772e;cursor:pointer}.paired-generation-submit.is-ready:hover{background:var(--brand);border-color:var(--brand);box-shadow:0 3px 8px #184e7742}.paired-generation-submit.is-ready:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.paired-generation-submit:disabled{color:var(--text-muted);background:var(--panel-strong);border-color:var(--border);box-shadow:none;cursor:not-allowed;opacity:.68}.paired-generation-status.is-complete{color:var(--success)}.paired-generation-status:not(.is-ready,.is-complete){color:var(--text-muted)}.generation-results-panel{display:grid;gap:12px;min-width:0;padding-top:14px;border-top:1px solid var(--border)}.generation-results-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.generation-results-header>div{display:flex;align-items:center;gap:8px;min-width:0}.generation-results-header svg{flex:0 0 auto;color:var(--brand)}.generation-results-header h2{margin:0;color:var(--text);font-size:16px;line-height:1.3}.generation-results-header>div>span,.generation-results-progress{color:var(--text-muted);font-size:12px}.generation-results-progress{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.generation-results-empty{display:flex;align-items:center;gap:10px;min-height:0;padding:12px 14px;color:var(--text-muted);background:var(--field);border:1px dashed var(--border-strong);border-radius:8px;text-align:left}.generation-results-empty svg{flex:0 0 auto;margin:0;color:var(--brand)}.generation-results-empty strong{color:var(--text);font-size:14px}.generation-results-empty span{margin:0 0 0 auto;font-size:12px}.generation-results-panel .gallery-strip{grid-template-columns:repeat(4,minmax(0,1fr));justify-content:stretch}.generation-results-panel .gallery-tile-preview{display:grid;aspect-ratio:4 / 3;place-items:center}.generation-results-panel .gallery-strip img{width:100%;height:100%;object-fit:cover}@media(max-width:640px){.generation-results-panel .gallery-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.generation-results-empty{display:grid;grid-template-columns:auto minmax(0,1fr)}.generation-results-empty span{grid-column:2;margin:-5px 0 0}}.commerce-composer{gap:16px}.workbench-composer .simple-prompt{min-height:clamp(220px,34vh,300px)}.advanced-composer .simple-prompt{min-height:clamp(240px,32vh,320px)}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.field-label-row label{color:var(--label);font-size:12px;font-weight:650}.compact-action{min-height:30px;padding:0 10px;font-size:12px;white-space:nowrap}.advanced-negative-prompt{width:100%;min-width:0;min-height:72px;resize:vertical;padding:10px;color:var(--text);background:var(--field);border:1px solid var(--border-strong);border-radius:8px;outline:none;line-height:1.55;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.advanced-negative-prompt:focus{background:var(--panel);border-color:var(--blue);box-shadow:0 0 0 3px var(--focus)}.advanced-sketch-board{display:grid;gap:10px;min-width:0;padding:12px;background:var(--field);border:1px solid var(--border);border-radius:8px}.advanced-sketch-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.advanced-sketch-header div{display:grid;gap:3px;min-width:0}.advanced-sketch-header strong,.advanced-sketch-result strong{color:var(--text);font-size:13px}.advanced-sketch-header span{color:var(--text-muted);font-size:12px;line-height:1.5}.advanced-sketch-canvas{display:block;width:100%;aspect-ratio:16 / 9;background:#fff;border:1px solid var(--border-strong);border-radius:8px;cursor:crosshair;touch-action:none}.advanced-sketch-canvas:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.advanced-sketch-result{display:grid;gap:5px;padding:10px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.advanced-sketch-result p{margin:0;color:var(--text-muted);font-size:12px;line-height:1.6}.advanced-style-board{display:grid;grid-template-columns:minmax(0,.92fr) minmax(240px,1.08fr);gap:12px;min-width:0;padding:12px;background:var(--field);border:1px solid var(--border);border-radius:8px}.advanced-style-controls{display:grid;align-content:start;gap:10px;min-width:0}.advanced-style-preview{display:grid;grid-template-columns:minmax(128px,180px) minmax(0,1fr);gap:12px;min-width:0;align-items:stretch}.advanced-style-image-frame{display:grid;place-items:center;overflow:hidden;min-height:138px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.advanced-style-image-frame img{width:100%;height:100%;object-fit:cover}.advanced-style-image-frame div{display:grid;place-items:center;gap:8px;color:var(--text-muted);font-size:10px;font-weight:850;letter-spacing:.14em}.advanced-style-meta{display:grid;align-content:start;gap:10px;min-width:0;padding:10px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.advanced-style-meta strong{color:var(--text);font-size:13px;line-height:1.5}.advanced-style-keywords{display:flex;flex-wrap:wrap;gap:6px}.advanced-style-keywords span{padding:4px 7px;color:var(--text-muted);background:var(--field);border:1px solid var(--border);border-radius:999px;font-size:11px}.commerce-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.commerce-upload{display:grid;align-content:start;gap:12px;min-width:0;min-height:212px;padding:14px;background:var(--field);border:1px dashed var(--border-strong);border-radius:8px}.commerce-upload.filled{background:var(--panel-soft);border-style:solid}.commerce-kind-field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:12px;background:linear-gradient(135deg,#4ea7ff24,#41d39b1f),var(--panel-soft);border:1px solid rgb(78 167 255 / 34%);border-radius:8px;box-shadow:inset 0 0 0 1px #41d39b1a}.commerce-kind-copy{display:grid;gap:4px;min-width:0}.commerce-kind-copy strong{color:var(--text);font-size:14px}.commerce-kind-copy span{color:var(--text-muted);font-size:12px;line-height:1.55}.commerce-kind-toggle{display:inline-grid;grid-template-columns:repeat(2,minmax(86px,1fr));gap:6px;min-width:0;padding:5px;background:#ffffff12;border:1px solid rgb(78 167 255 / 42%);border-radius:8px;box-shadow:0 10px 24px #1d75d024}.commerce-kind-toggle button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:0 12px;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:8px;font-size:13px;font-weight:800}.commerce-kind-toggle button:hover:not(.active){border-color:var(--border-strong);background:var(--field-hover)}.commerce-kind-toggle button.active{color:#061014;background:linear-gradient(135deg,var(--blue),var(--green));border-color:transparent;box-shadow:0 10px 22px #1d75d042}.commerce-upload-copy{display:grid;gap:4px;min-width:0}.commerce-upload-copy strong{color:var(--text);font-size:14px}.commerce-upload-copy span{color:var(--text-muted);font-size:12px;line-height:1.55}.commerce-upload-preview{display:grid;grid-template-columns:82px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:8px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.commerce-upload-preview-list{display:grid;gap:8px;min-width:0}.commerce-upload-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.commerce-material-open{justify-self:start}.commerce-upload-selection-hint{color:var(--text-muted);font-size:12px;line-height:1.45}.commerce-upload-preview img{width:82px;height:64px;object-fit:cover;background:var(--field);border:1px solid var(--border);border-radius:8px}.commerce-upload-preview div{display:grid;gap:4px;min-width:0}.commerce-upload-preview strong,.commerce-upload-preview span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.commerce-upload-preview strong{color:var(--text);font-size:13px}.commerce-upload-preview span{color:var(--text-muted);font-size:12px}.commerce-upload-preview .ghost{width:32px;height:32px;color:var(--muted);border:1px solid var(--border);border-radius:8px}.commerce-category-field{display:grid;gap:12px;min-width:0;padding:14px;background:var(--panel-soft);border:1px solid var(--border);border-radius:8px}.commerce-category-heading{display:grid;gap:4px;min-width:0}.commerce-category-heading strong{color:var(--text);font-size:14px}.commerce-category-heading span{color:var(--text-muted);font-size:12px;line-height:1.55}.commerce-category-mode{display:inline-grid;grid-template-columns:repeat(2,minmax(96px,1fr));gap:6px;justify-self:start;min-width:0;padding:4px;background:var(--field);border:1px solid var(--border);border-radius:8px}.commerce-category-mode button{min-height:32px;padding:0 12px;color:var(--text-muted);background:transparent;border:1px solid var(--border);border-radius:8px;font-size:13px;font-weight:800}.commerce-category-mode button:hover:not(.active){background:var(--field-hover);border-color:var(--border-strong)}.commerce-category-mode button.active{color:var(--text);background:var(--panel);border-color:var(--border-strong)}.commerce-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.commerce-custom-category input{width:100%}.commerce-file-action{justify-self:start;cursor:pointer}.commerce-file-action.disabled{cursor:default;opacity:.68;pointer-events:none}.commerce-file-action input{display:none}.commerce-description{min-height:118px;padding:14px;color:var(--text);background:var(--field);border:1px solid var(--border-strong);border-radius:8px;outline:none;resize:vertical;line-height:1.65}.commerce-description:focus{background:var(--panel);border-color:var(--blue);box-shadow:0 0 0 3px var(--focus)}.workbench-rail{display:grid;gap:14px;min-width:0}.gallery-page-heading{grid-template-columns:minmax(0,1fr) auto;align-items:end}.gallery-workspace{grid-template-rows:minmax(0,1fr);background:transparent}.gallery-page{width:min(1480px,100%);padding-bottom:24px}.gallery-page-panel{position:relative;align-content:start;gap:18px}.gallery-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px;min-width:0;margin-bottom:22px;padding:10px 2px 0}.gallery-hero-copy{display:grid;gap:8px;min-width:0}.gallery-hero h2{margin:0;color:var(--text);font-size:34px;line-height:1.08;letter-spacing:0}.gallery-hero p{max-width:680px;margin:0;color:var(--text-muted);font-size:14px;line-height:1.65}.gallery-hero-stats{display:grid;grid-template-columns:repeat(2,minmax(112px,1fr));gap:8px}.gallery-hero-stats div{display:grid;gap:3px;min-width:0;padding:11px 12px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 28px var(--shadow)}.gallery-hero-stats strong,.gallery-hero-stats span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-hero-stats strong{color:var(--text);font-size:18px;line-height:1.2}.gallery-hero-stats span{color:var(--text-muted);font-size:11px}.gallery-page .gallery-strip{display:grid;width:100%;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.gallery-page-empty{gap:12px;min-height:380px;background:var(--field);border-color:var(--border-strong)}.launchpad-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}.launch-card{display:grid;grid-template-columns:42px minmax(0,1fr);align-content:stretch;align-items:start;gap:14px;min-height:154px;padding:18px;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--panel-shadow);text-align:left;transition:all .2s ease}.launch-card:hover{border-color:var(--brand);box-shadow:0 4px 16px #8b5cf626;transform:translateY(-2px)}.launch-card.primary{border-color:var(--brand);background:linear-gradient(135deg,#8b5cf60d,#8b5cf605),var(--panel)}.launch-card-icon{display:grid;place-items:center;width:42px;height:42px;color:#fff;background:var(--brand);border-radius:8px}.launch-card-icon svg{color:#fff}:root[data-theme=dark] .launch-card{background:linear-gradient(180deg,#ffffff0f,#ffffff05),var(--panel);box-shadow:0 8px 20px var(--shadow)}:root[data-theme=dark] .launch-card:hover{border-color:#4ea7ff8a;box-shadow:0 8px 20px var(--shadow)}:root[data-theme=dark] .launch-card.primary{border-color:#41d39b7a;background:linear-gradient(180deg,#ffffff0f,#ffffff05),var(--panel)}:root[data-theme=dark] .launch-card-icon{color:#061014;background:linear-gradient(135deg,var(--green),var(--blue))}:root[data-theme=dark] .launch-card-icon svg{color:#061014}.launch-card-copy{display:grid;align-content:start;gap:8px;min-width:0}.launch-card strong{font-size:20px;line-height:1.2}.launch-card-copy span{color:var(--text-muted);font-size:13px;line-height:1.55}.portal-panel{display:grid;gap:14px;min-width:0;padding:20px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--panel-shadow)}:root[data-theme=dark] .portal-panel{background:linear-gradient(180deg,#ffffff0d,#ffffff05),var(--panel);box-shadow:0 8px 20px var(--shadow)}.recent-panel{max-width:none}.console-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}.console-side{display:grid;gap:14px;min-width:0}.simple-prompt{min-height:260px;padding:14px;color:var(--text);background:var(--field);border:1px solid var(--border);border-radius:8px;outline:none;resize:vertical;line-height:1.65;box-shadow:none;transition:all .25s ease}.simple-prompt:focus{background:var(--panel);border-color:var(--brand);box-shadow:0 0 0 3px var(--focus)}:root[data-theme=dark] .simple-prompt{box-shadow:inset 0 1px 4px #0006,0 0 0 1px #0a59c214}:root[data-theme=dark] .simple-prompt:focus{box-shadow:inset 0 1px 4px #0000004d,0 0 0 3px var(--focus),0 0 12px #0a59c240,0 0 24px #0a59c21a}.simple-param-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.advanced-param-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.size-field{min-width:0}.size-preset-grid{display:grid;grid-template-columns:minmax(80px,.65fr) minmax(0,1.5fr);gap:8px}.size-preset-grid label{display:grid;gap:5px;min-width:0}.custom-size-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.custom-size-grid label{display:grid;gap:5px;min-width:0}.custom-size-grid span{color:var(--text-muted);font-size:11px}.custom-size-grid input{min-width:0;height:34px;padding:0 10px}.simple-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px}.simple-optimize-action{min-height:40px}.primary-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 18px;color:#fff;background:var(--brand);border:1px solid var(--brand);border-radius:8px;font-size:14px;font-weight:750;transition:all .2s ease}.primary-action:hover:not(:disabled){background:var(--brand-deep);border-color:var(--brand-deep);box-shadow:0 4px 12px #8b5cf64d}.primary-action:disabled{opacity:.5;cursor:not-allowed}:root[data-theme=dark] .primary-action{color:#061014;background:linear-gradient(135deg,var(--green),var(--blue));border:1px solid transparent}:root[data-theme=dark] .primary-action:hover:not(:disabled){filter:brightness(1.04);box-shadow:none}.control-dock{z-index:8;display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;padding:16px;overflow-y:auto;background:#fff;border-left:1px solid var(--border);box-shadow:-4px 0 12px #0000000a}:root[data-theme=dark] .control-dock{background:#0a0c12e0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:-18px 0 42px #00000047}.dock-action-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;flex:0 0 auto}.dock-panel,.flow-node{background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--panel-shadow)}:root[data-theme=dark] .dock-panel,:root[data-theme=dark] .flow-node{background:linear-gradient(180deg,#ffffff0d,#ffffff05),var(--panel);box-shadow:0 8px 20px var(--shadow)}.dock-panel{display:grid;gap:14px;padding:15px}.compact-panel{gap:12px}.connection-config-block{display:grid;gap:11px;padding:12px;background:#ffffff08;border:1px solid var(--border);border-radius:8px}:root[data-theme=light] .connection-config-block{background:#0f172a08}.connection-config-title{display:flex;align-items:center;gap:7px;color:var(--text);font-size:13px;font-weight:800}.connection-config-title svg{color:var(--violet)}.connection-config-title small{margin-left:auto;color:var(--text-muted);font-size:11px;font-weight:700}.section-title,.node-title{display:flex;align-items:center;gap:8px;color:var(--text);font-size:14px;font-weight:700}.node-title{justify-content:space-between;margin-bottom:12px}.node-title>div{display:inline-flex;align-items:center;gap:8px}.node-title small{color:var(--text-muted);font-size:10px;font-weight:800;text-transform:uppercase}.node-delete{display:inline-grid;place-items:center;width:22px;height:22px;color:var(--text-muted);background:#ffffff0d;border:1px solid var(--border);border-radius:8px}.node-title-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:22px;min-width:0;padding:0 8px;color:var(--violet);background:#a684ff1f;border:1px solid rgb(166 132 255 / 34%);border-radius:8px;font-size:11px;font-weight:850;line-height:1;white-space:nowrap}.node-title-action svg{flex:0 0 auto}.node-title-action:hover:not(:disabled){color:var(--text);background:#a684ff38;border-color:#a684ff94}.node-title-action:disabled{color:var(--text-muted);background:#ffffff0a;border-color:var(--border);opacity:.72}.node-delete:hover{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.field{display:grid;gap:7px;min-width:0}.api-key-list{display:grid;gap:8px}.api-key-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}.api-key-row input{min-width:0}.secret-field-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}.secret-field-row>.api-key-icon:last-child{grid-column:3}.api-key-icon,.api-key-remove{display:inline-grid;width:38px;height:38px;place-items:center;color:var(--muted);background:transparent;border:1px solid var(--border-strong);border-radius:8px;cursor:pointer}.api-key-icon:hover{color:var(--text);border-color:var(--blue);background:var(--field-hover)}.api-key-remove:hover{color:var(--danger);border-color:var(--danger-border);background:var(--danger-bg)}.api-key-add{justify-self:start;display:inline-flex;align-items:center;gap:6px}.field-row{display:grid;gap:10px;min-width:0}.field-row.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.field span,.checkbox-row,.node-param-grid label span,.prompt-optimization-select span{color:var(--label);font-size:12px;font-weight:650}.field input,.field select,.node-param-grid select,.prompt-optimization-select select,.node-textarea{width:100%;min-width:0;color:var(--text);background:var(--field);border:1px solid var(--border-strong);border-radius:8px;outline:none;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.field input,.field select,.node-param-grid select,.prompt-optimization-select select{height:38px;padding:0 10px}.field input:focus,.field select:focus,.node-param-grid select:focus,.prompt-optimization-select select:focus,.node-textarea:focus,.theme-switcher button:focus-visible,.shop-link:focus-visible,.icon-button:focus-visible,.file-action:focus-within{background:var(--panel);border-color:var(--blue);box-shadow:0 0 0 3px var(--focus);outline:none}.checkbox-row{display:flex;align-items:center;gap:8px}.checkbox-row input{width:16px;height:16px;accent-color:var(--pink)}.button-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.secondary,.ghost,.shop-link,.top-link,.theme-switcher button,.file-action,.node-file-button,.node-action-bar button,.output-actions button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:36px;padding:0 12px;color:var(--text);background:var(--field);border:1px solid var(--border-strong);border-radius:8px;font-size:13px;font-weight:750;text-align:center;white-space:normal}.secondary:hover:not(:disabled),.ghost:hover:not(:disabled),.theme-switcher button:hover:not(:disabled),.node-file-button:hover:not(:disabled),.output-actions button:hover,.node-action-bar button:hover:not(:disabled){background:var(--field-hover)}.ghost{background:transparent}.danger{color:var(--danger)}.destructive-button{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.destructive-button:hover:not(:disabled){color:var(--danger);background:var(--danger-bg);border-color:var(--danger)}.file-action{cursor:pointer}.file-action input,.node-file-button input{display:none}.top-link{min-height:40px;padding:0 13px;background:#0f121ac7;box-shadow:0 8px 20px var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.console-link{color:var(--text);background:#0f121ac7}:root[data-theme=light] .top-link,:root[data-theme=light] .console-link{background:#ffffffd1}.shop-link{color:#061014;background:linear-gradient(135deg,var(--green),var(--blue));border-color:transparent}.top-link.shop-link,:root[data-theme=light] .top-link.shop-link{background:linear-gradient(135deg,var(--green),var(--blue))}.theme-switcher{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;background:var(--field);border:1px solid var(--border);border-radius:12px}.theme-switcher button{min-height:31px;padding:0 8px;color:var(--text-muted);background:var(--panel-soft);border:1px solid var(--border)}.theme-switcher button:hover:not(.active){border-color:var(--border-strong);background:var(--field-hover)}.theme-switcher button.active{color:var(--text);background:var(--panel);border-color:var(--border-strong);box-shadow:0 2px 6px var(--shadow)}:root[data-theme=light] .theme-switcher{box-shadow:inset 0 1px 2px #0052d90f,0 0 0 1px #0052d914}:root[data-theme=light] .theme-switcher button.active{box-shadow:0 1px 3px #0052d926,0 0 0 1px #0052d91a}.dock-panel p{margin:0;color:var(--text-muted);font-size:12px;line-height:1.5}.gallery-dock-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.gallery-empty{display:grid;place-items:center;min-height:108px;color:var(--text-muted);background:var(--field);border:1px dashed var(--border-strong);border-radius:8px;font-size:13px}.gallery-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.gallery-strip article{position:relative;display:grid;grid-template-rows:auto 108px;width:100%;min-width:0;overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 20px var(--shadow)}:root[data-theme=light] .gallery-strip article{border-color:var(--border-strong)}.gallery-strip article>button{display:block;width:100%;aspect-ratio:4 / 3;min-height:0;padding:0;overflow:hidden;background:var(--panel);border:0;border-radius:0;cursor:zoom-in}.gallery-strip img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;background:var(--panel)}.gallery-tile-preview.is-error{display:grid;aspect-ratio:4 / 3;place-items:center;cursor:pointer}.gallery-image-error{display:grid;place-items:center;gap:6px;width:100%;min-width:0;padding:18px 12px;color:var(--text-muted);text-align:center}.gallery-image-error svg{color:var(--text-muted)}.gallery-image-error b,.gallery-image-error small{display:block;max-width:100%;overflow-wrap:anywhere}.gallery-image-error b{color:var(--text);font-size:13px}.gallery-image-error small{color:var(--text-muted);font-size:11px}.gallery-tile-info{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:10px 12px;background:var(--panel);border-top:1px solid var(--border)}.gallery-tile-copy{display:grid;grid-template-rows:auto auto 1fr;gap:3px;min-width:0;overflow:hidden}.gallery-strip strong,.gallery-strip span,.gallery-strip p{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-strip strong{color:var(--text);font-size:13px;line-height:1.25}.gallery-strip span{color:var(--text-muted);font-size:11px;line-height:15px}.gallery-strip p{display:-webkit-box;max-width:100%;margin:2px 0 0;color:var(--text-muted);font-size:12px;line-height:17px;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;overflow:hidden}.gallery-strip nav{display:flex;flex:0 0 auto;gap:5px}.gallery-strip nav button,.node-icon-button,.icon-button,.error-toast button{display:inline-grid;place-items:center;width:30px;height:30px;color:var(--text);background:#0f121abd;border:1px solid rgb(255 255 255 / 12%);border-radius:8px}.gallery-strip nav button{color:#11161e;background:#f8fbffeb;border-color:#ffffffb3;box-shadow:0 8px 22px #00000052}.gallery-strip nav button:hover,.gallery-strip nav button:focus-visible{color:#f3f9ff;color:oklch(.98 .012 250);background:var(--blue);border-color:#ffffff8f;outline:none}.flow-node{position:relative;width:400px;min-height:170px;padding:16px;color:var(--text);border-color:var(--border-strong);cursor:grab;-webkit-user-select:none;user-select:none}.flow-node:active{cursor:grabbing}.flow-node .nodrag{cursor:auto}.flow-node:before{position:absolute;inset:-1px;z-index:-1;border-radius:inherit;content:"";opacity:.64;filter:blur(12px)}.flow-node-blue{border-color:var(--blue)}.flow-node-blue:before{background:var(--blue)}.flow-node-violet{border-color:var(--violet)}.flow-node-violet:before{background:var(--violet)}.flow-node-pink{width:600px;border-color:var(--pink)}.flow-node-pink:before{background:var(--pink)}.flow-node-green{width:360px;border-color:var(--green)}.flow-node-green:before{background:var(--green)}.asset-drop{position:relative;display:grid;place-items:center;gap:10px;min-height:230px;padding:16px;color:var(--text-muted);background:linear-gradient(45deg,rgb(255 255 255 / 4%) 25%,transparent 25%),linear-gradient(-45deg,rgb(255 255 255 / 4%) 25%,transparent 25%),var(--field);background-position:0 0,0 10px;background-size:20px 20px;border:1px dashed var(--border-strong);border-radius:8px;text-align:center}.asset-drop-filled{align-items:stretch;justify-items:stretch;gap:0;padding:0;overflow:hidden;border-style:solid}.asset-drop strong{color:var(--text);font-size:13px}.asset-drop span{font-size:12px}.asset-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:8px;width:100%;min-height:230px}.asset-drop-filled .asset-preview-grid{height:100%;gap:0}.asset-preview-count-1{grid-template-columns:minmax(0,1fr)}.asset-preview-count-2,.asset-preview-count-3,.asset-preview-count-4,.asset-preview-count-5,.asset-preview-count-6,.asset-preview-count-7,.asset-preview-count-8{grid-template-columns:repeat(2,minmax(0,1fr))}.asset-preview-grid article{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:8px}.asset-drop-filled .asset-preview-grid article{border:0;border-radius:0}.asset-preview-grid img{display:block;width:100%;height:100%;min-height:0;object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.asset-preview-grid .node-icon-button{position:absolute;right:5px;top:5px;z-index:4;width:25px;height:25px}:root[data-theme=light] .asset-preview-grid .node-icon-button{color:var(--danger);background:#ffffffdb;border-color:#b23b3533;box-shadow:0 10px 22px #232a3724,0 0 0 1px #ffffffb8 inset;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}:root[data-theme=light] .asset-preview-grid .node-icon-button:hover{color:#8f2b26;background:#fff0eff0;border-color:#b23b3557}.asset-drop-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.asset-drop-filled .asset-drop-actions{position:absolute;left:50%;bottom:16px;z-index:4;transform:translate(-50%);width:max-content;max-width:calc(100% - 24px)}.image-title-field{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:5px;width:min(82%,240px);margin:0 auto 12px;padding:7px 9px;color:var(--text);background:var(--field);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 18px #0000004d}.image-title-field span{color:var(--blue);font-size:12px;font-weight:900}.image-title-field-generate span{color:var(--pink)}.image-title-field input{min-width:0;height:24px;padding:0;color:var(--text);background:transparent;border:0;outline:none;font-size:12px;font-weight:850;user-select:text;-webkit-user-select:text}.image-title-field.title-conflict{border-color:var(--danger-border);box-shadow:0 0 0 1px var(--danger-border),0 8px 18px #0000004d}.node-file-button{width:fit-content;color:var(--text);background:#ffffff14}.asset-drop-filled .asset-drop-actions .node-file-button{background:#0f121ab8;border-color:#ffffff38;box-shadow:0 12px 26px #0000004d;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}:root[data-theme=light] .asset-drop-filled .asset-drop-actions .node-file-button{color:var(--blue);background:#ffffffdb;border-color:#1d75d038;box-shadow:0 12px 26px #232a3729,0 0 0 1px #ffffffb3 inset}:root[data-theme=light] .asset-drop-filled .asset-drop-actions .node-file-button:hover:not(:disabled){color:#0f4f98;background:#eef4ffeb;border-color:#1d75d061}.node-file-button:disabled{color:var(--text-muted);background:var(--field);border-color:var(--border);opacity:.68}.node-textarea{min-height:244px;padding:14px;resize:none;line-height:1.6}.prompt-editor{position:relative;min-height:244px}.prompt-textarea{position:relative;min-height:244px;color:var(--text);background:var(--field);caret-color:var(--text)}.prompt-textarea:focus{color:var(--text)}.prompt-textarea::placeholder{color:var(--text-muted)}.prompt-reference-summary{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;color:var(--text-muted);font-size:12px;line-height:1.5}.prompt-reference-summary span{padding:2px 5px;color:#061014;background:var(--green);border-radius:8px;font-weight:850}.prompt-reference-summary .missing{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border)}.prompt-mention-menu{position:absolute;left:10px;right:10px;bottom:10px;z-index:5;display:grid;gap:4px;max-height:152px;padding:6px;overflow-y:auto;background:#0f121aeb;border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 16px 34px #0000005c;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.prompt-mention-menu button,.prompt-mention-empty{min-height:30px;padding:0 9px;color:var(--text);background:transparent;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:800;text-align:left}.prompt-mention-menu button{display:flex;align-items:center;gap:4px}.prompt-mention-menu button span{color:var(--green);font-weight:900}.prompt-mention-menu button.active,.prompt-mention-menu button:hover{background:#39e5a724;border-color:#39e5a75c}.prompt-mention-empty{display:grid;place-items:center start;color:var(--text-muted)}.prompt-optimization-select{display:grid;gap:7px;margin:0 0 10px}.style-port-grid{grid-template-columns:minmax(0,1fr);justify-items:end}.style-node-body{display:grid;gap:10px}.style-node-body label{display:grid;gap:6px}.style-preview-frame{display:grid;place-items:center;height:180px;overflow:hidden;color:var(--text-muted);background:var(--field);border:1px solid var(--border);border-radius:8px}.style-preview-frame img{width:100%;height:100%;object-fit:cover}.style-preview-frame div{display:grid;place-items:center;gap:8px}.style-preview-frame span{font-size:12px;font-weight:900;letter-spacing:.18em}.style-node-meta{display:grid;gap:7px;min-width:0}.style-node-meta strong{min-width:0;overflow:hidden;color:var(--text);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.style-node-meta div{display:flex;flex-wrap:wrap;gap:5px}.style-node-meta span{max-width:100%;padding:3px 6px;overflow:hidden;color:#061014;background:var(--blue);border-radius:8px;font-size:11px;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.style-node-empty{margin:0;color:var(--text-muted);font-size:12px;line-height:1.5}.generation-preview,.output-frame{display:grid;place-items:center;overflow:hidden;color:var(--text-muted);background:radial-gradient(circle at 50% 40%,rgb(255 74 162 / 12%),transparent 38%),var(--field);border:1px solid var(--border);border-radius:8px}.node-preview-button{width:100%;height:100%;padding:0;overflow:hidden;background:transparent}.node-preview-button img{width:100%;height:100%;object-fit:contain}.generation-preview{height:190px;margin-bottom:12px}.generation-preview span,.output-frame span{margin-top:8px;font-size:12px;font-weight:900;letter-spacing:.28em}.node-param-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.flow-node-pink .node-param-grid{grid-template-columns:minmax(112px,1fr) minmax(90px,.7fr) minmax(210px,1.55fr)}.node-param-grid label{display:grid;gap:6px;min-width:0}.node-action-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:10px;background:var(--field);border:1px solid var(--border);border-radius:8px}.node-action-bar div{display:grid;gap:3px;min-width:0}.node-action-bar strong,.node-action-bar span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-action-bar strong{color:var(--text);font-size:13px}.node-action-bar span{color:var(--text-muted);font-size:11px}.node-action-bar button{flex:0 0 auto;color:#061014;background:linear-gradient(135deg,var(--pink),var(--amber));border-color:transparent}.output-frame{height:245px}.output-frame button{width:100%;height:100%;padding:0;background:transparent}.output-frame img{width:100%;height:100%;object-fit:contain}.output-actions{display:flex;gap:8px;margin-top:12px}.output-actions button{flex:1 1 0}.error-toast{position:absolute;left:18px;bottom:18px;z-index:9;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;width:min(520px,calc(100% - 36px));padding:12px;color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:12px;box-shadow:0 8px 20px var(--shadow)}.portal-error{position:fixed;inset:14px 22px auto auto;z-index:48;width:min(560px,calc(100vw - 188px));min-height:50px;color:var(--danger);background:#2c1517eb;border-color:#ff6b6361;border-radius:12px;box-shadow:0 18px 46px var(--shadow);animation:portal-toast-enter .26s cubic-bezier(.2,.82,.2,1);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.success-toast{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;color:var(--green);background:#0e362aeb;border-color:#41d39b61}:root[data-theme=light] .success-toast{background:#e8fff7f5;border-color:#1ca17047}.success-toast>svg{grid-row:1 / span 2;grid-column:1}.success-toast strong,.success-toast span{grid-column:2}.success-toast .toast-action{grid-row:1 / span 2;grid-column:3;width:auto;min-width:96px;padding:0 12px;color:#061014;background:linear-gradient(135deg,var(--green),var(--blue));border-color:transparent;font-weight:850}.success-toast .toast-action:hover,.success-toast .toast-action:focus-visible{filter:brightness(1.04);outline:none;box-shadow:0 0 0 3px var(--focus)}:root[data-theme=light] .portal-error{background:#fff0eff0}.pane-menu{position:fixed;z-index:20;display:grid;gap:6px;width:190px;padding:8px;color:var(--text);background:#14171df5;border:1px solid var(--border-strong);border-radius:12px;box-shadow:0 18px 54px #00000061;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}:root[data-theme=light] .pane-menu{color:var(--text);background:#fffffff0;border-color:var(--border);box-shadow:0 18px 44px #232a3724,0 0 0 1px #ffffffb8 inset}.pane-menu strong{padding:5px 7px 7px;color:var(--text-muted);font-size:12px}.pane-menu button{display:flex;align-items:center;min-height:32px;padding:0 9px;color:var(--text);background:transparent;border:1px solid transparent;border-radius:8px;font-size:13px;font-weight:700;text-align:left}.pane-menu button:hover{background:var(--field-hover);border-color:var(--border)}:root[data-theme=light] .pane-menu button:hover{background:#eef4ff;border-color:#1d75d038}.react-flow__edgelabel-renderer{z-index:30}.react-flow__edge-blueprint .react-flow__edge-path,.react-flow__edge-blueprint .react-flow__edge-interaction{pointer-events:none}.edge-label{position:absolute;z-index:10;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--text);background:#0f121af0;border:1px solid var(--border-strong);border-radius:999px;box-shadow:0 10px 28px #00000057;pointer-events:all}.edge-label-selected,.edge-label:hover{border-color:var(--text-muted)}.edge-label button{display:inline-grid;place-items:center;width:100%;height:100%;color:var(--text-muted);background:transparent;border:1px solid transparent;border-radius:999px;cursor:pointer;touch-action:none}.edge-label button:hover{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}.error-toast strong,.error-toast span{min-width:0;overflow-wrap:anywhere}.error-toast strong{font-size:13px}.error-toast span{color:var(--text);font-size:12px}.error-toast button{grid-row:1 / span 2;grid-column:2;color:var(--danger)}.success-toast .toast-action{grid-column:3;color:#061014}.modal-overlay,.preview-overlay{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:24px;background:var(--overlay)}.secret-reveal-dialog{display:grid;gap:16px;width:min(420px,100%);padding:18px;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 18px 54px #00000052}.secret-reveal-error{color:var(--danger);font-size:12px;line-height:1.5}.secret-reveal-actions{display:flex;justify-content:flex-end;gap:8px}.secret-reveal-actions button{min-height:36px;padding:0 14px}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dialog-header>div{display:grid;gap:4px;min-width:0}.dialog-header strong{color:var(--text);font-size:16px}.dialog-header span{margin:0;color:var(--text-muted);font-size:12px;line-height:1.5}.gallery-reference-dialog{display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px;width:min(780px,100%);max-height:min(760px,calc(100vh - 48px));padding:14px;overflow:hidden;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 54px #00000052}.gallery-reference-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;min-height:0;overflow-y:auto;padding-right:4px}.gallery-reference-option{position:relative;display:grid;grid-template-rows:132px auto;min-width:0;padding:0;overflow:hidden;color:var(--text);background:var(--field);border:1px solid var(--border);border-radius:8px;text-align:left}.gallery-reference-option:hover:not(:disabled),.gallery-reference-option:focus-visible{background:var(--field-hover);border-color:var(--blue);outline:none}.gallery-reference-option img{display:block;width:100%;height:132px;object-fit:cover}.gallery-reference-unavailable{display:grid;height:132px;place-items:center;align-content:center;gap:7px;color:var(--text-muted);background:var(--field-hover)}.gallery-reference-unavailable svg{position:static;color:var(--text-muted);background:transparent;border-radius:0;box-shadow:none}.gallery-reference-unavailable span{font-size:11px}.gallery-reference-option>span{display:grid;gap:3px;min-width:0;padding:9px}.gallery-reference-option strong,.gallery-reference-option small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-reference-option strong{color:var(--text);font-size:12px}.gallery-reference-option small{color:var(--text-muted);font-size:11px}.gallery-reference-option svg{position:absolute;right:8px;top:8px;color:#061014;background:var(--blue);border-radius:999px;box-shadow:0 8px 18px #0000003d}.gallery-reference-empty{display:grid;place-items:center;align-content:center;gap:8px;min-height:260px;color:var(--text-muted);background:var(--field);border:1px dashed var(--border);border-radius:8px;text-align:center}.gallery-reference-empty strong{color:var(--text);font-size:14px}.gallery-reference-empty span{font-size:12px}.preview-dialog{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;width:min(920px,100%);height:min(820px,calc(100vh - 48px));max-height:calc(100vh - 48px);padding:14px;overflow:hidden;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 54px #00000052}.preview-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.preview-header div{display:grid;gap:3px;min-width:0}.preview-header strong{color:var(--text);font-size:14px;overflow-wrap:anywhere}.preview-header span,.preview-caption p{margin:0;color:var(--text-muted);font-size:12px;line-height:1.45}.preview-frame{position:relative;display:grid;place-items:center;min-height:0;height:100%;min-width:0;overflow:hidden;background:var(--field);border:1px solid var(--border);border-radius:8px}.preview-frame img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;object-position:center}.preview-caption{max-height:min(22vh,170px);min-height:52px;overflow:auto;padding:10px 2px 0;border-top:1px solid var(--border)}.preview-caption p{overflow-wrap:anywhere}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:1120px){.flow-node{width:360px}.flow-node-pink{width:580px}.launchpad-grid,.console-layout{grid-template-columns:1fr}.console-layout .portal-panel:first-child,.console-layout .gallery-dock{grid-row:auto}}@media(max-width:1080px){.portal-topbar{grid-template-areas:"brand nav";grid-template-columns:minmax(0,1fr) auto}.portal-nav{justify-self:end}}@media(max-width:860px){body{overflow-x:hidden;overflow-y:auto}.canvas-drawer{max-height:210px;border-right:0;border-bottom:1px solid var(--border);box-shadow:0 18px 38px #0000002e}.canvas-list{flex:1 1 auto;display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding-right:0;padding-bottom:4px}.canvas-item{flex:0 0 220px}.workflow-stage{height:680px;min-height:680px}.app-workspace.workflow-workspace .workflow-stage{height:100%;min-height:0}.workflow-canvas-panel{inset:0 0 0 auto;max-height:none;border:0;border-left:1px solid var(--border);border-radius:0;box-shadow:-18px 0 42px #00000038}.workflow-canvas-panel.drawer-open{width:min(300px,calc(100vw - 88px))}.workflow-canvas-panel.drawer-open+.react-flow{width:max(88px,calc(100% - min(300px,calc(100vw - 88px))))!important}.workflow-canvas-panel.drawer-collapsed{width:64px}.control-dock{border-left:0;border-top:1px solid var(--border);box-shadow:none}.canvas-title-bar{top:116px;left:18px;width:min(360px,calc(100vw - 36px));min-width:0;transform:none}.status-pill{max-width:calc(100vw - 36px)}.portal-shell{height:100vh;min-height:0;overflow:hidden}.portal-stage{height:100vh;min-height:0}.app-workspace-shell{grid-template-columns:64px minmax(0,1fr);grid-template-rows:minmax(0,1fr);overflow-x:hidden;overflow-y:hidden}.app-sidebar{position:relative;z-index:42;gap:12px;align-items:stretch;width:64px;padding:12px 8px;border-right:1px solid var(--border);border-bottom:0;box-shadow:14px 0 34px #0003;transition:width .18s ease,box-shadow .18s ease}.app-sidebar.drawer-open{position:fixed;inset:0 auto 0 0;z-index:100;width:min(232px,calc(100vw - 44px));box-shadow:24px 0 58px #0000005c}.sidebar-drawer-toggle{display:grid;place-items:center;width:42px;height:42px;margin:0 auto;color:var(--text);background:var(--field);border:1px solid var(--border);border-radius:8px}.app-sidebar.drawer-open .sidebar-drawer-toggle{margin-right:0;margin-left:auto}.sidebar-drawer-toggle:hover,.sidebar-drawer-toggle:focus-visible{background:var(--field-hover);border-color:var(--border-strong);box-shadow:0 0 0 3px var(--focus);outline:none}.sidebar-scrim.visible{position:fixed;inset:0;z-index:90;display:block;background:#04060a57;border:0;cursor:default}.app-sidebar-brand{width:100%;min-height:42px}.app-sidebar:not(.drawer-open) .app-sidebar-brand>div{display:none!important}.app-sidebar-brand .brand-mark{width:42px;height:42px}.app-sidebar.drawer-open .app-sidebar-brand{grid-template-columns:42px minmax(0,1fr);justify-items:start;gap:12px;padding-right:8px}.app-sidebar.drawer-open .app-sidebar-brand>span:not(.brand-mark){display:block}.app-sidebar.drawer-open .app-sidebar-brand small{display:none}.app-sidebar.drawer-open .app-sidebar-brand strong{font-size:16px}.portal-nav.app-sidebar-nav{grid-template-columns:1fr;align-content:start;gap:6px;width:100%}.portal-nav.app-sidebar-nav button{flex-direction:column;gap:0;min-height:50px;padding:0;font-size:0}.portal-nav.app-sidebar-nav button svg{width:17px;height:17px}.sidebar-submenu-trigger:after{display:none}.portal-nav.app-sidebar-nav .sidebar-submenu{top:50%;left:calc(100% + 10px)}.portal-nav.app-sidebar-nav .sidebar-submenu button{flex-direction:row;justify-content:flex-start;gap:0;min-height:36px;padding:0 12px;font-size:13px}.app-sidebar.drawer-open .portal-nav.app-sidebar-nav button{flex-direction:row;justify-content:flex-start;gap:9px;min-height:42px;padding:0 10px;font-size:13px}.app-sidebar.drawer-open .sidebar-submenu-trigger:after{display:block}.app-sidebar.drawer-open .portal-nav.app-sidebar-nav .sidebar-submenu button{gap:0;min-height:36px;padding:0 12px}.app-sidebar-footer{display:grid}.app-sidebar:not(.drawer-open) .app-sidebar-footer{gap:6px;padding-top:8px}.app-sidebar:not(.drawer-open) .sidebar-theme-switcher{grid-template-columns:minmax(0,1fr);gap:2px;padding:3px}.app-sidebar:not(.drawer-open) .sidebar-theme-switcher button{min-height:28px;padding:0}.app-sidebar:not(.drawer-open) .sidebar-github-link{display:none}.app-workspace{min-height:auto;overflow-y:auto}.app-notice,.portal-error{top:12px;right:12px;left:76px;width:auto;animation:none;transform:none}.app-workspace.workflow-workspace .canvas-title-bar{top:86px;right:12px;left:auto;width:min(270px,calc(100% - 24px))}.portal-topbar{grid-template-areas:"brand" "nav";grid-template-columns:1fr;align-items:stretch}.portal-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));width:100%}.portal-nav button{padding:0 6px}.workbench-head,.gallery-page-heading,.gallery-hero{grid-template-columns:1fr;align-items:stretch}.gallery-hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-page .gallery-strip{width:100%;gap:10px}.commerce-upload-grid,.commerce-kind-field,.commerce-category-grid{grid-template-columns:1fr}.workbench-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.simple-param-grid,.advanced-param-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.advanced-style-board,.advanced-style-preview{grid-template-columns:1fr}}@media(max-width:900px){.gallery-page .gallery-strip,.gallery-strip,.generation-results-panel .gallery-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.gallery-page .gallery-strip,.gallery-strip,.generation-results-panel .gallery-strip{grid-template-columns:1fr}}@media(max-width:620px){.control-dock{padding:12px}.workspace-title h1{font-size:20px}.workspace-title p{display:none}.button-grid,.theme-switcher,.field-row.two-columns,.flow-node-pink .node-param-grid,.node-param-grid{grid-template-columns:1fr}.flow-node-pink .node-param-size-field{grid-column:auto}.gallery-page .gallery-strip{gap:10px}.gallery-tile-copy{grid-template-rows:16px 15px 34px}.preview-overlay{padding:12px}.preview-dialog{height:calc(100vh - 24px);max-height:calc(100vh - 24px);padding:12px}.preview-header{align-items:flex-start}.preview-caption{max-height:28vh}.launchpad-grid,.commerce-upload-grid,.commerce-kind-field,.commerce-category-grid,.simple-param-grid,.advanced-param-grid,.simple-actions,.gallery-page-heading,.workbench-actions,.dock-action-bar{grid-template-columns:1fr}.advanced-sketch-header{align-items:stretch;flex-direction:column}.advanced-style-image-frame{min-height:180px}.simple-actions{display:grid}.launch-card{min-height:150px}.portal-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}body{background-color:var(--bg);background-image:linear-gradient(rgb(0 82 217 / 4%) 1px,transparent 1px),linear-gradient(90deg,rgb(0 82 217 / 4%) 1px,transparent 1px),radial-gradient(circle at 18% 12%,rgb(0 82 217 / 10%),transparent 45%),radial-gradient(circle at 85% 80%,rgb(0 82 217 / 12%),transparent 50%);background-size:38px 38px,38px 38px,100% 100%,100% 100%;background-attachment:fixed}:root[data-theme=light] body{background-image:linear-gradient(rgb(0 82 217 / 5%) 1px,transparent 1px),linear-gradient(90deg,rgb(0 82 217 / 5%) 1px,transparent 1px);background-size:38px 38px,38px 38px}button,.portal-nav button,.app-sidebar-nav button,.fhl-button,.fhl-tab,a,input,select,.launch-card,.brand-mark{transition:all .2s ease-in-out}.brand-mark{position:relative;color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-deep));box-shadow:0 0 0 1px #0052d959,0 0 22px #0052d973}.brand-mark:after{position:absolute;inset:-4px;border:1.5px solid rgb(0 82 217 / 35%);border-radius:inherit;content:"";pointer-events:none;animation:yyt-glow-pulse 2.8s ease-in-out infinite}@keyframes yyt-glow-pulse{0%,to{opacity:.45;transform:scale(1)}50%{opacity:.9;transform:scale(1.06)}}.app-sidebar{background:linear-gradient(180deg,#0d1117f0,#0a0f1df0);border-right:1px solid rgb(0 82 217 / 14%)}.app-sidebar-brand .sidebar-logo{width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 0 10px rgb(0 82 217 / 55%))}.portal-nav.app-sidebar-nav button{position:relative;background:var(--panel-soft);border:1px solid var(--border);border-left:3px solid transparent}.portal-nav.app-sidebar-nav button:hover:not(.active){color:var(--text);background:var(--field-hover);border-color:var(--border-strong)}.portal-nav.app-sidebar-nav button.active{color:var(--text);background:var(--field-hover);border-color:var(--brand);border-left-color:var(--brand);box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 24%,transparent)}.portal-nav button.active,.portal-nav button:hover{border-color:#0052d966}.model-options-editor{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.model-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;color:var(--text);background:#0052d924;border:1px solid rgb(0 82 217 / 35%);border-radius:8px;font-size:12px;font-weight:700}.model-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;color:var(--text-muted);background:transparent;border:0;border-radius:4px;font-size:14px;line-height:1;cursor:pointer}.model-chip-remove:hover{color:#fff;background:var(--brand)}.model-add-row{display:flex;gap:8px}.model-add-row input{flex:1;min-width:0}:root[data-theme=light] .portal-stage:before{content:"";position:fixed;inset:0;background-image:linear-gradient(90deg,transparent 0%,rgba(0,82,217,.03) 50%,transparent 100%),linear-gradient(0deg,transparent 0%,rgba(0,82,217,.03) 50%,transparent 100%);background-size:100px 100%,100% 100px;background-position:0 0,0 0;animation:tech-lines-light 15s linear infinite;pointer-events:none;z-index:0}@keyframes tech-lines-light{0%{background-position:0 0,0 0}to{background-position:100px 0,0 100px}}.portal-topbar,.portal-panel,.dock-panel,.flow-node,.gallery-reference-dialog,.preview-dialog,.pane-menu,.app-notice,.error-toast{border-radius:var(--radius-panel)}.portal-panel,.dock-panel,.flow-node,.gallery-reference-dialog,.preview-dialog{box-shadow:var(--panel-shadow)}.field input,.field select,.node-param-grid select,.prompt-optimization-select select{height:var(--control-height);border-radius:var(--radius-control)}.primary-action,.secondary,.ghost,.shop-link,.top-link,.file-action,.node-file-button,.node-action-bar button,.output-actions button{min-height:var(--action-height);border-radius:var(--radius-control)}.primary-action{color:var(--brand-contrast);background:linear-gradient(135deg,var(--brand),var(--brand-deep));box-shadow:0 6px 16px color-mix(in srgb,var(--brand) 24%,transparent)}.primary-action:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 8px 20px color-mix(in srgb,var(--brand) 32%,transparent)}.sidebar-theme-switcher,.portal-nav{border-radius:var(--radius-panel)}.user-badge{color:var(--text);background:var(--field);border-color:var(--border-strong);border-radius:var(--radius-control)}.user-badge:hover{color:var(--text);background:var(--field-hover);border-color:var(--brand)}.user-dropdown-menu{color:var(--text);background:var(--panel);border-color:var(--border);border-radius:var(--radius-panel);box-shadow:var(--panel-shadow)}.user-dropdown-item{color:var(--text);border-bottom-color:var(--border)}.user-dropdown-item:hover{color:var(--text);background:var(--field-hover)}:root,:root[data-theme=light]{color-scheme:light;--bg: #eef1ff;--canvas: rgb(255 255 255 / 34%);--panel: rgb(255 255 255 / 58%);--panel-strong: rgb(255 255 255 / 72%);--panel-soft: rgb(255 255 255 / 38%);--text: #27263a;--text-muted: #74738a;--label: #4b4a63;--border: rgb(255 255 255 / 78%);--border-strong: rgb(99 102 241 / 24%);--brand: #6366f1;--brand-deep: #5558df;--brand-text: #4f46e5;--blue: #6366f1;--violet: #8b5cf6;--pink: #e879a9;--green: #3aa89b;--amber: #c88a38;--danger: #c94964;--danger-bg: rgb(255 239 244 / 72%);--danger-border: rgb(201 73 100 / 24%);--shadow: rgb(76 71 126 / 15%);--overlay: rgb(37 35 67 / 48%);--field: rgb(255 255 255 / 16%);--field-hover: rgb(255 255 255 / 48%);--focus: rgb(99 102 241 / 18%);--brand-contrast: #ffffff;--success: #248f77;--warning: #a66d20;--radius-control: 999px;--radius-panel: 20px;--control-height: 40px;--action-height: 44px;--panel-shadow: 0 24px 70px rgb(91 84 148 / 15%), 0 4px 18px rgb(91 84 148 / 8%), inset 0 1px 0 rgb(255 255 255 / 72%)}body,:root[data-theme=light] body{background-color:#eef1ff;background-image:linear-gradient(135deg,#f8efff,#f0efff 38%,#e8f6ff);background-size:100% 100%;background-attachment:fixed}.workflow-portal-shell,.portal-shell:has(.workflow-canvas-panel){position:relative;z-index:61}.portal-shell{isolation:isolate;background:transparent}:root[data-theme=light] .portal-shell:before{position:fixed;inset:-12%;z-index:-2;content:"";background:radial-gradient(ellipse 28% 34% at 12% 22%,rgb(230 174 239 / 42%),transparent 72%),radial-gradient(ellipse 34% 26% at 86% 18%,rgb(148 214 255 / 44%),transparent 72%),radial-gradient(ellipse 30% 38% at 76% 88%,rgb(255 194 221 / 30%),transparent 72%),radial-gradient(ellipse 30% 30% at 30% 82%,rgb(166 198 255 / 30%),transparent 74%);filter:blur(44px);pointer-events:none;transform:translateZ(0)}.portal-shell:after,:root[data-theme=light] .portal-shell:after,:root[data-theme=dark] .portal-shell:after,:root[data-theme=light] .portal-stage:before,:root[data-theme=dark] .portal-stage:before{display:none}.glass-ambient{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.ambient-rabbit{position:absolute;display:block;width:clamp(150px,18vw,290px);height:auto;opacity:.045;filter:grayscale(1) saturate(0) brightness(.72);transform-origin:center;animation:ambient-rabbit-float 13s ease-in-out infinite}.ambient-rabbit-one{top:10%;left:16%;transform:rotate(-12deg)}.ambient-rabbit-two{right:5%;bottom:5%;width:clamp(190px,22vw,340px);opacity:.038;animation-delay:-4s;transform:rotate(10deg) scaleX(-1)}.ambient-rabbit-three{top:46%;left:50%;width:clamp(120px,14vw,220px);opacity:.028;animation-delay:-8s;transform:rotate(5deg)}@keyframes ambient-rabbit-float{0%,to{translate:0 0}50%{translate:0 -14px}}.app-workspace-shell{background:transparent}.app-sidebar,:root[data-theme=light] .app-sidebar,:root[data-theme=dark] .app-sidebar{background:#ffffff5c;border-right:1px solid rgb(255 255 255 / 72%);box-shadow:14px 0 42px #5d579417;-webkit-backdrop-filter:blur(28px) saturate(145%);backdrop-filter:blur(28px) saturate(145%)}.app-sidebar-brand>img{width:56px;height:56px;object-fit:contain;overflow:hidden;border:0;border-radius:0;box-shadow:none}.portal-nav.app-sidebar-nav button{color:var(--text-muted);border:1px solid transparent;border-left:1px solid transparent;border-radius:16px}.portal-nav.app-sidebar-nav button:hover{color:var(--text);background:#ffffff75;border-color:#ffffffc2}.portal-nav.app-sidebar-nav button.active{color:var(--brand-text);background:#ffffffad;border-color:#ffffffe0;box-shadow:0 10px 25px #6366f11f,inset 0 0 0 1px #6366f114}.sidebar-theme-switcher{background:#ffffff47;border-color:#ffffffb8;border-radius:999px}.sidebar-theme-switcher button{border-radius:50%}.sidebar-theme-switcher button.active{color:var(--brand-text);background:#ffffffd1;border-color:#fffffff0;box-shadow:0 5px 14px #6366f124}.portal-panel,:root[data-theme=light] .portal-panel,:root[data-theme=dark] .portal-panel,.dock-panel,.flow-node,.gallery-reference-dialog,.preview-dialog,.gallery-page-panel,.app-notice,.error-toast,.pane-menu{background:#ffffff94;border:1px solid rgb(255 255 255 / 82%);border-radius:20px;box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(20px) saturate(145%);backdrop-filter:blur(20px) saturate(145%)}.portal-panel{padding:clamp(20px,2.4vw,30px)}.workspace-title h1,.section-title,.portal-panel h2{color:#2d2b45}.section-title svg{color:var(--brand)}.field input,.node-textarea,.simple-prompt,.advanced-negative-prompt,.commerce-description,.canvas-name-field input,.image-title-field input{color:var(--text);background:transparent;border:0;border-bottom:1px solid rgb(78 75 109 / 28%);border-radius:0;box-shadow:none;outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.field input:focus,.node-textarea:focus,.simple-prompt:focus,.advanced-negative-prompt:focus,.commerce-description:focus,.canvas-name-field input:focus,.image-title-field input:focus{color:var(--text);background:#ffffff29;border:0;border-bottom:2px solid var(--brand);border-radius:0;box-shadow:0 1px 0 var(--brand);outline:none}.simple-prompt,.advanced-negative-prompt,.commerce-description,.node-textarea{padding:14px 4px}.field select,.node-param-grid select,.prompt-optimization-select select{color:var(--text);background-color:#ffffff7a;border:1px solid rgb(255 255 255 / 86%);border-radius:999px;box-shadow:0 7px 18px #4c477e12,inset 0 0 0 1px #6366f10f}.field select:hover,.node-param-grid select:hover,.prompt-optimization-select select:hover{background-color:#ffffffb8;border-color:#6366f133}.field select:focus,.node-param-grid select:focus,.prompt-optimization-select select:focus{background-color:#ffffffd1;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus)}.simple-param-grid,.commerce-param-grid{gap:0;padding:7px;background:#ffffff47;border:1px solid rgb(255 255 255 / 76%);border-radius:999px;box-shadow:0 12px 30px #4e488214,inset 0 1px #ffffffad}.simple-param-grid>.field,.commerce-param-grid>.field{position:relative;justify-content:center;padding:4px 14px}.simple-param-grid>.field:not(:last-child):after,.commerce-param-grid>.field:not(:last-child):after{position:absolute;top:18%;right:0;width:1px;height:64%;background:#58537c24;content:""}.simple-param-grid .field select,.commerce-param-grid .field select{height:30px;padding:0 28px 0 0;background-color:transparent;border:0;box-shadow:none}.simple-param-grid .field select:focus,.commerce-param-grid .field select:focus{background-color:transparent;box-shadow:none}.advanced-param-grid .field{padding:8px 10px 10px;background:#ffffff4d;border:1px solid rgb(255 255 255 / 74%);border-radius:18px;box-shadow:0 8px 22px #4e488212}.primary-action,.brand-button,.fhl-button-primary,.img2img-btn.btn-primary,.img2img-upload-btn,.img2img-upload-btn-main{color:#fff;background:#6366f1;border:1px solid #6366f1;border-radius:999px;box-shadow:0 12px 28px #6366f13d}.primary-action:hover:not(:disabled),.brand-button:hover:not(:disabled),.fhl-button-primary:hover:not(:disabled),.img2img-btn.btn-primary:hover:not(:disabled),.img2img-upload-btn:hover,.img2img-upload-btn-main:hover{color:#fff;background:#5558df;border-color:#5558df;box-shadow:0 15px 34px #6366f14d;filter:none}.secondary,.ghost,.file-action,.node-file-button,.node-action-bar button,.output-actions button,.user-dropdown-button,.user-badge{background:#ffffff70;border-color:#ffffffd1;border-radius:999px;box-shadow:0 8px 20px #4c477e14}.secondary:hover:not(:disabled),.ghost:hover:not(:disabled),.file-action:hover,.node-file-button:hover:not(:disabled),.user-dropdown-button:hover,.user-badge:hover{color:var(--brand-text);background:#ffffffb8;border-color:#6366f13d}.advanced-sketch-board,.advanced-style-board,.advanced-style-meta,.commerce-upload,.commerce-category-field,.connection-config-block,.model-chip,.status-pill{background:#ffffff52;border-color:#ffffffb8;box-shadow:inset 0 1px #ffffffa3}.commerce-kind-field{background:#ffffff57;border-color:#ffffffc2;box-shadow:inset 0 1px #ffffffad}.commerce-kind-toggle,.commerce-category-mode{padding:5px;background:#ffffff5c;border-color:#fffc;border-radius:999px}.commerce-kind-toggle button,.commerce-category-mode button{border-radius:999px}.commerce-kind-toggle button.active,.commerce-category-mode button.active{color:#fff;background:#6366f1;border-color:#6366f1;box-shadow:0 8px 18px #6366f138}.user-dropdown-menu{background:#ffffffc7;border-color:#ffffffe0;border-radius:16px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}@media(max-width:880px){.simple-param-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.simple-param-grid,.commerce-param-grid{border-radius:20px}.simple-param-grid>.field:nth-child(2):after,.commerce-param-grid>.field:nth-child(2):after{display:none}.ambient-rabbit-three{display:none}}@media(max-width:600px){.portal-panel{padding:18px}.simple-param-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.simple-param-grid,.commerce-param-grid{gap:6px;padding:8px}.simple-param-grid>.field,.commerce-param-grid>.field{padding:5px 10px;background:#ffffff47;border-radius:14px}.simple-param-grid>.field:after,.commerce-param-grid>.field:after{display:none}.ambient-rabbit-two{opacity:.026}}:root[data-theme=dark] body{background-color:var(--bg);background-image:none}:root[data-theme=dark] .portal-shell:before{display:none}:root[data-theme=dark] .app-sidebar{background:var(--canvas);border-right-color:var(--border);box-shadow:10px 0 28px #0000003d;-webkit-backdrop-filter:none;backdrop-filter:none}:root[data-theme=dark] .app-sidebar-brand img[alt=风火轮AI]{border-color:var(--border);box-shadow:0 8px 18px #00000052}:root[data-theme=dark] .portal-nav.app-sidebar-nav button{border-radius:var(--radius-panel)}:root[data-theme=dark] .portal-nav.app-sidebar-nav button:hover{color:var(--text);background:var(--field-hover);border-color:var(--border)}:root[data-theme=dark] .portal-nav.app-sidebar-nav button.active{color:var(--text);background:#172235;border-color:#29466f;border-left-color:var(--brand);box-shadow:inset 3px 0 0 var(--brand)}:root[data-theme=dark] .sidebar-theme-switcher{background:var(--field);border-color:var(--border);border-radius:var(--radius-panel)}:root[data-theme=dark] .sidebar-theme-switcher button.active{color:var(--brand-text);background:var(--field-hover);border-color:var(--border-strong);box-shadow:0 4px 12px #0000004d}:root[data-theme=dark] .portal-panel,:root[data-theme=dark] .dock-panel,:root[data-theme=dark] .flow-node,:root[data-theme=dark] .gallery-reference-dialog,:root[data-theme=dark] .preview-dialog,:root[data-theme=dark] .gallery-page-panel,:root[data-theme=dark] .app-notice,:root[data-theme=dark] .error-toast,:root[data-theme=dark] .pane-menu{background:var(--panel);border-color:var(--border);border-radius:var(--radius-panel);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:none;backdrop-filter:none}:root[data-theme=dark] .workspace-title h1,:root[data-theme=dark] .section-title,:root[data-theme=dark] .portal-panel h2{color:var(--text)}:root[data-theme=dark] .field input,:root[data-theme=dark] .node-textarea,:root[data-theme=dark] .simple-prompt,:root[data-theme=dark] .advanced-negative-prompt,:root[data-theme=dark] .commerce-description,:root[data-theme=dark] .canvas-name-field input,:root[data-theme=dark] .image-title-field input{color:var(--text);border-bottom-color:var(--border-strong)}:root[data-theme=dark] .field input:focus,:root[data-theme=dark] .node-textarea:focus,:root[data-theme=dark] .simple-prompt:focus,:root[data-theme=dark] .advanced-negative-prompt:focus,:root[data-theme=dark] .commerce-description:focus,:root[data-theme=dark] .canvas-name-field input:focus,:root[data-theme=dark] .image-title-field input:focus{background:var(--panel-soft);border-bottom-color:var(--brand)}:root[data-theme=dark] .field select,:root[data-theme=dark] .node-param-grid select,:root[data-theme=dark] .prompt-optimization-select select{color:var(--text);background-color:var(--field);border-color:var(--border-strong);box-shadow:none}:root[data-theme=dark] .field select:hover,:root[data-theme=dark] .node-param-grid select:hover,:root[data-theme=dark] .prompt-optimization-select select:hover{background-color:var(--field-hover);border-color:var(--border-strong)}:root[data-theme=dark] .field select:focus,:root[data-theme=dark] .node-param-grid select:focus,:root[data-theme=dark] .prompt-optimization-select select:focus{background-color:var(--field-hover);border-color:var(--brand);box-shadow:0 0 0 3px var(--focus)}:root[data-theme=dark] .simple-param-grid,:root[data-theme=dark] .commerce-param-grid{background:var(--panel-soft);border-color:var(--border);border-radius:10px;box-shadow:inset 0 1px #ffffff08}:root[data-theme=dark] .simple-param-grid>.field:not(:last-child):after,:root[data-theme=dark] .commerce-param-grid>.field:not(:last-child):after{background:var(--border)}:root[data-theme=dark] .simple-param-grid .field select,:root[data-theme=dark] .commerce-param-grid .field select,:root[data-theme=dark] .simple-param-grid .field select:hover,:root[data-theme=dark] .commerce-param-grid .field select:hover,:root[data-theme=dark] .simple-param-grid .field select:focus,:root[data-theme=dark] .commerce-param-grid .field select:focus{background-color:transparent;border-color:transparent;box-shadow:none}:root[data-theme=dark] .advanced-param-grid .field{background:var(--panel-soft);border-color:var(--border);border-radius:10px;box-shadow:none}:root[data-theme=dark] .advanced-sketch-board,:root[data-theme=dark] .advanced-style-board,:root[data-theme=dark] .advanced-style-meta,:root[data-theme=dark] .commerce-upload,:root[data-theme=dark] .commerce-category-field,:root[data-theme=dark] .connection-config-block,:root[data-theme=dark] .model-chip,:root[data-theme=dark] .status-pill,:root[data-theme=dark] .commerce-kind-field{background:var(--panel-soft);border-color:var(--border);box-shadow:inset 0 1px #ffffff08}:root[data-theme=dark] .commerce-kind-toggle,:root[data-theme=dark] .commerce-category-mode{background:var(--field);border-color:var(--border);border-radius:10px}:root[data-theme=dark] .commerce-kind-toggle button,:root[data-theme=dark] .commerce-category-mode button{border-radius:7px}:root[data-theme=dark] .commerce-kind-toggle button.active,:root[data-theme=dark] .commerce-category-mode button.active{color:var(--brand-contrast);background:var(--brand);border-color:var(--brand);box-shadow:0 6px 16px #2563eb38}:root[data-theme=dark] .primary-action,:root[data-theme=dark] .brand-button,:root[data-theme=dark] .fhl-button-primary,:root[data-theme=dark] .img2img-btn.btn-primary,:root[data-theme=dark] .img2img-upload-btn,:root[data-theme=dark] .img2img-upload-btn-main{color:var(--brand-contrast);background:var(--brand);border-color:var(--brand);border-radius:var(--radius-control);box-shadow:0 8px 20px #2563eb3d}:root[data-theme=dark] .primary-action:hover:not(:disabled),:root[data-theme=dark] .brand-button:hover:not(:disabled),:root[data-theme=dark] .fhl-button-primary:hover:not(:disabled),:root[data-theme=dark] .img2img-btn.btn-primary:hover:not(:disabled),:root[data-theme=dark] .img2img-upload-btn:hover,:root[data-theme=dark] .img2img-upload-btn-main:hover{color:var(--brand-contrast);background:var(--brand-deep);border-color:var(--brand-deep);box-shadow:0 10px 24px #2563eb4d}:root[data-theme=dark] .secondary,:root[data-theme=dark] .ghost,:root[data-theme=dark] .file-action,:root[data-theme=dark] .node-file-button,:root[data-theme=dark] .node-action-bar button,:root[data-theme=dark] .output-actions button,:root[data-theme=dark] .user-dropdown-button,:root[data-theme=dark] .user-badge{color:var(--text);background:var(--field);border-color:var(--border-strong);border-radius:var(--radius-control);box-shadow:none}:root[data-theme=dark] .secondary:hover:not(:disabled),:root[data-theme=dark] .ghost:hover:not(:disabled),:root[data-theme=dark] .file-action:hover,:root[data-theme=dark] .node-file-button:hover:not(:disabled),:root[data-theme=dark] .user-dropdown-button:hover,:root[data-theme=dark] .user-badge:hover{color:var(--brand-text);background:var(--field-hover);border-color:var(--brand)}:root[data-theme=dark] .user-dropdown-menu{color:var(--text);background:var(--panel-strong);border-color:var(--border-strong);-webkit-backdrop-filter:none;backdrop-filter:none}:root[data-theme=dark] .user-dropdown-item{color:var(--text);border-bottom-color:var(--border)}:root[data-theme=dark] .user-dropdown-item:hover{color:var(--text);background:var(--field-hover)}@media(max-width:600px){:root[data-theme=dark] .simple-param-grid>.field,:root[data-theme=dark] .commerce-param-grid>.field{background:var(--field)}}@media(max-width:680px){.portal-shell,.portal-stage{height:100dvh;min-height:100dvh}.app-workspace-shell{grid-template-columns:minmax(0,1fr)}.app-sidebar{position:fixed;inset:max(8px,env(safe-area-inset-top)) auto auto max(8px,env(safe-area-inset-left));z-index:42;width:52px;height:52px;min-height:52px;padding:5px;overflow:hidden;background:var(--canvas);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:0 8px 20px var(--shadow)}.app-sidebar:not(.drawer-open) .app-sidebar-brand,.app-sidebar:not(.drawer-open) .portal-nav.app-sidebar-nav,.app-sidebar:not(.drawer-open) .app-sidebar-footer{display:none!important}.sidebar-drawer-toggle{width:40px;height:40px;min-height:40px}.app-sidebar.drawer-open{inset:0 auto 0 0;width:min(280px,calc(100vw - 44px));height:100dvh;min-height:100dvh;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));overflow-y:auto;border-top:0;border-bottom:0;border-left:0;border-radius:0}.app-sidebar.drawer-open .app-sidebar-brand,.app-sidebar.drawer-open .portal-nav.app-sidebar-nav,.app-sidebar.drawer-open .app-sidebar-footer{display:grid}.app-sidebar.drawer-open .app-sidebar-brand{display:flex}.app-sidebar.drawer-open .app-sidebar-footer{margin-top:auto}.app-workspace{grid-column:1;width:100%;padding:max(76px,calc(env(safe-area-inset-top) + 68px)) max(12px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.app-workspace.workflow-workspace{padding:0}.app-notice,.portal-error{top:max(76px,calc(env(safe-area-inset-top) + 68px));right:12px;left:12px;width:auto}.workflow-canvas-panel.drawer-open{width:min(280px,calc(100vw - 56px))}.workflow-canvas-panel.drawer-open+.react-flow{width:max(56px,calc(100% - min(280px,calc(100vw - 56px))))!important}}@media(max-width:620px){.workspace-topbar{gap:8px;padding:0}.workspace-title h1{overflow:visible;font-size:22px;line-height:1.25;text-overflow:clip;white-space:normal}.portal-panel{gap:12px;padding:14px}.launchpad,.advanced-page,.commerce-page,.console-page,.gallery-page,.img2img-container{gap:14px}.simple-prompt{min-height:190px}.workbench-composer .simple-prompt{min-height:180px}.workbench-composer .simple-param-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.workbench-composer .simple-param-grid>.field{min-height:72px;padding:10px 12px;background:var(--field);border:1px solid var(--border);border-radius:8px}.workbench-composer .simple-param-grid>.field:after{display:none}.workbench-composer .simple-param-grid>.field:first-child,.workbench-composer .simple-param-grid>.size-field{grid-column:1 / -1}.workbench-composer .simple-param-grid>.size-field{min-height:0;padding:0;background:transparent;border:0}.workbench-composer .size-preset-grid,.workbench-composer .custom-size-grid{grid-template-columns:minmax(92px,.72fr) minmax(0,1.28fr);gap:10px;margin-top:0}.workbench-composer .size-preset-grid label,.workbench-composer .custom-size-grid label{min-height:72px;padding:10px 12px;background:var(--field);border:1px solid var(--border);border-radius:8px}.workbench-composer .simple-param-grid .field select{height:34px;min-height:34px;padding-right:28px}.workbench-composer .simple-actions{gap:8px}.workbench-composer .simple-actions>button,.workbench-composer .simple-actions>.brand-button{min-height:46px}.advanced-negative-prompt,.commerce-description{min-height:104px}.field-label-row,.generation-results-header{align-items:flex-start;flex-direction:column}.field-label-row .compact-action,.generation-results-progress{align-self:flex-start}.commerce-upload{min-height:0;padding:12px}.commerce-kind-field,.commerce-category-field{gap:10px;padding:12px}.commerce-kind-toggle,.commerce-category-mode{justify-self:stretch;width:100%}.commerce-kind-toggle button,.commerce-category-mode button,.simple-actions>button,.simple-actions>.brand-button,.workbench-actions>button,.workbench-actions>.brand-button,.button-grid>button,.button-grid>.file-action{min-height:44px}.simple-actions>button,.simple-actions>.brand-button{width:100%}.gallery-hero{gap:12px;margin-bottom:14px;padding-top:0}.gallery-hero h2{font-size:26px}.gallery-hero-stats div{padding:10px}.gallery-page-empty{min-height:280px}.gallery-strip nav button{width:36px;height:36px}.modal-overlay,.preview-overlay{padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}.gallery-reference-dialog,.preview-dialog{width:100%;max-height:calc(100dvh - 24px);padding:12px}.preview-dialog{height:calc(100dvh - 24px)}.gallery-reference-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-reference-option,.gallery-reference-option img,.gallery-reference-unavailable{min-height:0;height:auto}.gallery-reference-option{grid-template-rows:minmax(110px,1fr) auto}.gallery-reference-option img,.gallery-reference-unavailable{height:110px}}@media(max-width:359px){.app-workspace{padding-right:10px;padding-left:10px}.gallery-hero-stats,.commerce-kind-toggle,.commerce-category-mode,.size-preset-grid,.custom-size-grid{grid-template-columns:1fr}}.paired-generation-container{display:grid;grid-template-columns:1fr 320px;gap:24px;align-items:start}@media(max-width:920px){.paired-generation-container{grid-template-columns:1fr}}.generation-task-monitor{position:sticky;top:16px;display:flex;flex-direction:column;gap:12px;max-width:320px;min-width:260px;padding:16px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:var(--panel-shadow)}:root[data-theme=dark] .generation-task-monitor{background:linear-gradient(180deg,#ffffff0d,#ffffff05),var(--panel);box-shadow:0 8px 20px var(--shadow)}.monitor-header{display:flex;align-items:center;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--border);color:var(--text);font-size:14px;font-weight:650}.monitor-header h3{margin:0;font-size:14px;font-weight:650}.monitor-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.monitor-summary-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;background:var(--panel-strong);border:1px solid var(--border);border-radius:6px}.monitor-summary-count{font-size:20px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.monitor-summary-label{color:var(--text-muted);font-size:11px;font-weight:500}.monitor-tasks{display:flex;flex-direction:column;gap:8px;max-height:480px;overflow-y:auto;padding:2px}.monitor-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:120px;color:var(--text-muted)}.monitor-empty p{margin:0;font-size:13px}.monitor-task{display:flex;flex-direction:column;gap:6px;padding:10px;color:var(--text);background:var(--panel-strong);border:1px solid var(--border);border-radius:6px;text-align:left;cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease}.monitor-task:hover:not(:disabled){border-color:var(--border-strong)}.monitor-task.is-active{border-color:var(--brand);background:linear-gradient(135deg,var(--panel-strong),var(--field))}.monitor-task.is-complete{border-color:var(--success);background:linear-gradient(135deg,var(--panel-strong),rgba(57,229,167,.05))}.monitor-task.has-error{border-color:var(--danger);background:linear-gradient(135deg,var(--panel-strong),var(--danger-bg))}.monitor-task-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.monitor-task-index{color:var(--text-muted);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.monitor-task-status{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600}.monitor-spin{animation:monitor-rotate 1.2s linear infinite}@keyframes monitor-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.monitor-task-prompt{margin:0;overflow:hidden;color:var(--text);font-size:12px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.monitor-task-error{margin:0;color:var(--danger);font-size:11px;line-height:1.3}@media(max-width:920px){.generation-task-monitor{position:static;max-width:none}}.page-subtitle,.section-subtitle,.form-section p,.field-description,.helper-text{color:var(--text-subtitle)}.field-hint,.input-hint,.form-hint,.example-text{color:var(--text-helper)}input::placeholder,textarea::placeholder,select::placeholder{color:var(--text-placeholder);opacity:1}select,select option,[role=combobox],[role=listbox]{color:var(--text)}.gallery-item .file-name,.gallery-item .image-title{color:var(--text);font-weight:600}.gallery-item .file-meta,.gallery-item .image-time,.gallery-item .image-description{color:var(--text-subtitle)}:root{--brand-gradient: linear-gradient(135deg, #4F46E5 0%, #7C3AED 50%, #A855F7 100%);--brand-primary: #4F46E5;--brand-mid: #7C3AED;--brand-light: #A855F7;--deep-base: #1E1B4B;--main-text: #1E1B4B;--glass-card-bg: rgba(255, 255, 255, .65);--glass-card-border: rgba(255, 255, 255, .8);--page-light-bg: #F8FAFC;--secondary-text: #94A3B8;--accent-cyan: #22D3EE;--radius-card: 16px;--radius-button: 12px;--radius-input: 10px;--radius-pill: 999px;--font-chinese: "Source Han Sans SC", "Noto Sans CJK SC", "PingFang SC", "HarmonyOS Sans SC", "OPPO Sans", "AlibabaPuHuiTi", "Microsoft YaHei", sans-serif;--font-mono: "Roboto Mono", "SF Mono", "Consolas", "Monaco", "Courier New", monospace;--font-size-page-title: 22px;--font-size-card-title: 16px;--font-size-body: 14px;--font-size-caption: 12px;--font-size-number: 13px;--font-weight-page-title: 600;--font-weight-card-title: 500;--font-weight-body: 400;--font-weight-caption: 400;--font-weight-number: 400;--glass-shadow: 0 8px 24px rgba(30, 27, 75, .08);--glass-border-width: 1px;--bg-gradient-angle: 45deg}.portal-shell.redesign-theme{background:linear-gradient(var(--bg-gradient-angle),#4F46E5 0%,#7C3AED 50%,#A855F7 100%);position:relative}.portal-shell.redesign-theme:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.15) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(167,139,250,.2) 0%,transparent 50%),radial-gradient(circle at 40% 80%,rgba(96,165,250,.18) 0%,transparent 50%);pointer-events:none;z-index:0;filter:blur(60px)}.portal-shell.redesign-theme:after{content:"";position:fixed;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.03) 50%,transparent 100%);background-size:200% 100%;animation:flow-lines 8s ease-in-out infinite alternate;pointer-events:none;z-index:0;opacity:.6}@keyframes flow-lines{0%{background-position:0% 50%}to{background-position:100% 50%}}.redesign-theme{font-family:var(--font-chinese);font-size:var(--font-size-body);font-weight:var(--font-weight-body)}.redesign-theme .portal-header-title,.redesign-theme h1{font-size:var(--font-size-page-title);font-weight:var(--font-weight-page-title);font-family:var(--font-chinese)}.redesign-theme .section-title,.redesign-theme .portal-panel>h2,.redesign-theme .field-label-row>label{font-size:var(--font-size-card-title);font-weight:var(--font-weight-card-title);font-family:var(--font-chinese)}.redesign-theme .field>span,.redesign-theme ::placeholder,.redesign-theme .text-secondary{font-size:var(--font-size-caption);font-weight:var(--font-weight-caption);font-family:var(--font-chinese)}.redesign-theme select,.redesign-theme .param-value,.redesign-theme .stat-number,.redesign-theme .model-name,.redesign-theme code,.redesign-theme .mono{font-family:var(--font-mono);font-size:var(--font-size-number);font-weight:var(--font-weight-number)}.redesign-theme button{font-family:var(--font-chinese);font-size:var(--font-size-body);font-weight:var(--font-weight-body)}.glass-card{background:var(--glass-card-bg);border:var(--glass-border-width) solid var(--glass-card-border);border-radius:var(--radius-card);box-shadow:var(--glass-shadow);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:transform .15s ease,box-shadow .15s ease}.glass-card:hover{transform:translateY(-2px);box-shadow:0 12px 32px #1e1b4b1f}.btn-primary-redesign{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 20px;color:#fff;background:var(--brand-gradient);background-size:200% 100%;background-position:0% 50%;border:none;border-radius:var(--radius-button);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #4f46e54d}.btn-primary-redesign:hover:not(:disabled){background-position:100% 50%;box-shadow:0 6px 20px #4f46e566;transform:translateY(-1px)}.btn-primary-redesign:active{transform:translateY(0)}.btn-primary-redesign:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary-redesign.generating{position:relative;color:transparent;pointer-events:none}.btn-primary-redesign.generating:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:btn-spin .8s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn-secondary-redesign{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 18px;color:var(--brand-primary);background:#ffffff80;border:1px solid var(--brand-primary);border-radius:var(--radius-button);font-size:14px;font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .15s ease}.btn-secondary-redesign:hover:not(:disabled){background:#ffffffb3;border-color:var(--brand-mid)}.btn-pill-redesign{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 14px;color:var(--deep-base);background:#fff9;border:1px solid rgba(79,70,229,.2);border-radius:var(--radius-pill);font-size:13px;font-weight:500;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .15s ease}.btn-pill-redesign:hover:not(:disabled){background:#fffc;border-color:var(--brand-primary)}.btn-pill-redesign.active{color:#fff;background:var(--brand-gradient);border-color:transparent}.input-redesign{width:100%;min-height:40px;padding:10px 14px;color:var(--main-text);background:#ffffffb3;border:1px solid rgba(148,163,184,.3);border-radius:var(--radius-input);font-size:14px;line-height:1.5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s ease;outline:none}.input-redesign:focus{background:#ffffffe6;border-color:var(--brand-primary);box-shadow:0 0 0 3px #4f46e526}.input-redesign::placeholder{color:var(--secondary-text)}.app-sidebar.redesign-theme{background:linear-gradient(180deg,#1e1b4bf2,#1e1b4bfa);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-right:1px solid rgba(168,85,247,.2);box-shadow:4px 0 24px #4f46e526}.app-sidebar-brand.redesign-theme{position:relative}.app-sidebar-brand.redesign-theme .brand-mark{position:relative;z-index:2}.app-sidebar-brand.redesign-theme:before{content:"";position:absolute;top:50%;left:50%;width:52px;height:52px;transform:translate(-50%,-50%);background:linear-gradient(135deg,#4f46e5,#a855f7);border-radius:10px;filter:blur(8px);opacity:.6;z-index:0}.app-sidebar-nav.redesign-theme button{position:relative;color:#ffffffb3;background:transparent;border:1px solid transparent;transition:all .2s ease}.app-sidebar-nav.redesign-theme button:hover{color:#fffffff2;background:#ffffff14}.app-sidebar-nav.redesign-theme button.active{color:var(--brand-light);background:#ffffff26;border-color:#a855f74d;box-shadow:0 4px 12px #a855f733}.workspace-topbar.redesign-theme{background:var(--glass-card-bg);border:var(--glass-border-width) solid var(--glass-card-border);border-radius:var(--radius-card);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:12px 16px}.two-column-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.generation-input-column{display:grid;gap:16px}.local-gallery-panel{display:grid;gap:12px;padding:16px;background:var(--glass-card-bg);border:var(--glass-border-width) solid var(--glass-card-border);border-radius:var(--radius-card);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);max-height:800px;overflow-y:auto}.local-gallery-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid rgba(148,163,184,.2)}.local-gallery-panel-title{color:var(--main-text);font-size:var(--font-size-card-title);font-weight:var(--font-weight-card-title);margin:0}.local-gallery-panel-subtitle{color:var(--secondary-text);font-size:var(--font-size-caption);font-weight:var(--font-weight-caption);margin:4px 0 0}.local-gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.local-gallery-item{position:relative;aspect-ratio:4 / 3;border-radius:8px;overflow:hidden;background:#ffffff80;border:1px solid rgba(148,163,184,.2)}.local-gallery-item img{width:100%;height:100%;object-fit:cover}.local-gallery-item-actions{position:absolute;top:6px;right:6px;display:flex;gap:4px;opacity:0;transition:opacity .15s ease}.local-gallery-item:hover .local-gallery-item-actions{opacity:1}.local-gallery-item-action{width:28px;height:28px;display:grid;place-items:center;background:#fff;border:1px solid rgba(148,163,184,.2);border-radius:6px;color:#475569;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #0000000d}.local-gallery-item-action:hover{background:#f8fafc;border-color:#94a3b8;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.local-gallery-item-action:active{transform:translateY(0)}.local-gallery-view-all{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:10px;color:#475569;background:#fff;border:1px solid rgba(148,163,184,.2);border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.local-gallery-view-all:hover{background:#f8fafc;border-color:#94a3b8}@media(max-width:1280px){.two-column-layout{grid-template-columns:1fr}.local-gallery-panel{max-height:400px}}:root{color-scheme:light;--bg: #f3f6f4;--canvas: #f6f8f6;--panel: #ffffff;--panel-strong: #ffffff;--panel-soft: #f8faf9;--text: #202a26;--text-default: #202a26;--text-muted: #64736c;--text-subtitle: #52625b;--text-helper: #64736c;--text-placeholder: #75847d;--label: #34423b;--muted: #64736c;--card: #ffffff;--border: #dbe4df;--border-strong: #c6d2cb;--brand: #147d6f;--brand-deep: #0f665a;--brand-text: #11695e;--brand-contrast: #ffffff;--blue: #2874a8;--violet: #7554a3;--pink: #c64d72;--green: #25815b;--success: #25815b;--amber: #a96816;--warning: #a96816;--danger: #bb3f45;--danger-bg: #fff1f0;--danger-border: #f0c6c3;--shadow: rgb(27 48 38 / 9%);--overlay: rgb(18 28 23 / 52%);--field: #ffffff;--field-hover: #f1f6f3;--focus: rgb(20 125 111 / 20%);--radius-control: 8px;--radius-panel: 10px;--radius-sm: 6px;--control-height: 40px;--action-height: 40px;--panel-shadow: 0 1px 2px rgb(21 40 30 / 4%), 0 8px 24px rgb(21 40 30 / 5%);--font-ui: Inter, "Segoe UI", "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;color:var(--text);background:var(--bg);font-family:var(--font-ui);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}:root[data-theme=dark]{color-scheme:dark;--bg: #111714;--canvas: #151d19;--panel: #1b2520;--panel-strong: #202c26;--panel-soft: #17211c;--text: #e7efea;--text-default: #e7efea;--text-muted: #a1b0a8;--text-subtitle: #bdc9c2;--text-helper: #a1b0a8;--text-placeholder: #91a198;--label: #d0dbd4;--muted: #a1b0a8;--card: #1b2520;--border: #2e3c34;--border-strong: #405248;--brand: #46bba5;--brand-deep: #35a18d;--brand-text: #70d6c2;--brand-contrast: #10231e;--blue: #72b5e0;--violet: #bea1e8;--pink: #ec91ad;--green: #6fd0a2;--success: #6fd0a2;--amber: #e5b76f;--warning: #e5b76f;--danger: #ff8580;--danger-bg: #321c1c;--danger-border: #633434;--radius-control: 8px;--radius-panel: 10px;--radius-sm: 6px;--control-height: 40px;--action-height: 40px;--shadow: rgb(0 0 0 / 36%);--overlay: rgb(0 0 0 / 72%);--field: #151e19;--field-hover: #202c26;--focus: rgb(70 187 165 / 24%);--panel-shadow: 0 10px 28px rgb(0 0 0 / 24%)}:root[data-theme=light]{color-scheme:light;--bg: #f3f6f4;--canvas: #f6f8f6;--panel: #ffffff;--panel-strong: #ffffff;--panel-soft: #f8faf9;--text: #202a26;--text-default: #202a26;--text-muted: #64736c;--text-subtitle: #52625b;--text-helper: #64736c;--text-placeholder: #75847d;--label: #34423b;--muted: #64736c;--card: #ffffff;--border: #dbe4df;--border-strong: #c6d2cb;--brand: #147d6f;--brand-deep: #0f665a;--brand-text: #11695e;--brand-contrast: #ffffff;--blue: #2874a8;--violet: #7554a3;--pink: #c64d72;--green: #25815b;--success: #25815b;--amber: #a96816;--warning: #a96816;--danger: #bb3f45;--danger-bg: #fff1f0;--danger-border: #f0c6c3;--shadow: rgb(27 48 38 / 9%);--overlay: rgb(18 28 23 / 52%);--field: #ffffff;--field-hover: #f1f6f3;--focus: rgb(20 125 111 / 20%);--radius-control: 8px;--radius-panel: 10px;--radius-sm: 6px;--control-height: 40px;--action-height: 40px;--panel-shadow: 0 1px 2px rgb(21 40 30 / 4%), 0 8px 24px rgb(21 40 30 / 5%);--font-ui: Inter, "Segoe UI", "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif}body,:root[data-theme=light] body,:root[data-theme=dark] body{color:var(--text);background:var(--bg);background-image:none}:root[data-theme] .app-shell{color:var(--text);background:transparent;font-family:var(--font-ui)}:root[data-theme] .glass-ambient,:root[data-theme] .portal-shell:before,:root[data-theme] .portal-shell:after{display:none}:root[data-theme] .app-workspace-shell:not(.workflow-portal-shell){grid-template-columns:170px minmax(0,1fr);gap:10px;padding:10px}:root[data-theme] .app-workspace-shell:not(.workflow-portal-shell) .app-sidebar{gap:10px;min-width:0;padding:10px;border:1px solid var(--border);border-radius:var(--radius-panel);color:var(--text);background:var(--panel);box-shadow:4px 0 16px #14281e0a;-webkit-backdrop-filter:none;backdrop-filter:none}:root[data-theme] .app-workspace-shell:not(.workflow-portal-shell)>.app-workspace{min-width:0;padding:10px}:root[data-theme] .app-workspace-shell:not(.workflow-portal-shell) .workspace-topbar{width:100%;margin:0 auto;padding:10px}:root[data-theme] .app-workspace-shell:not(.workflow-portal-shell) .workspace-title{min-width:0;padding:0}:root[data-theme=dark] .app-sidebar{box-shadow:4px 0 18px #0000002e}:root[data-theme] .app-sidebar .app-sidebar-brand{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-width:0;min-height:64px;padding:10px;margin:0 0 10px;color:var(--brand-text);background:transparent;border:0;border-radius:0;box-shadow:none;text-decoration:none;text-align:left}:root[data-theme] .app-sidebar .app-sidebar-brand:before,:root[data-theme] .app-sidebar .app-sidebar-brand:after{content:none;display:none}:root[data-theme] .app-sidebar .app-sidebar-brand>img{flex:0 0 56px;width:56px;height:56px;object-fit:contain;border:0;border-radius:0;box-shadow:none}:root[data-theme] .app-sidebar .app-sidebar-brand>.app-sidebar-brand-copy{display:flex;flex-direction:column;align-items:flex-start;gap:3px;line-height:1}:root[data-theme] .app-sidebar .app-sidebar-brand-name{color:var(--brand);font-size:15px;font-weight:700;white-space:nowrap}:root[data-theme] .app-sidebar .app-sidebar-brand-product{color:var(--text-muted);font-family:var(--font-ui);font-size:11px;font-weight:700;white-space:nowrap}:root[data-theme] .portal-nav.app-sidebar-nav button{min-height:40px;color:var(--text-muted);background:transparent;border:1px solid transparent;border-radius:var(--radius-control);box-shadow:none;transition:color .14s ease,background .14s ease,border-color .14s ease}:root[data-theme] .portal-nav.app-sidebar-nav button:hover:not(.active){color:var(--text);background:var(--field-hover);border-color:var(--border)}:root[data-theme] .portal-nav.app-sidebar-nav button.active{color:var(--brand-text);background:color-mix(in srgb,var(--brand) 10%,var(--panel));border-color:color-mix(in srgb,var(--brand) 24%,var(--border));box-shadow:inset 3px 0 0 var(--brand)}:root[data-theme] .sidebar-theme-switcher{padding:3px;background:var(--panel-soft);border:1px solid var(--border);border-radius:var(--radius-control)}:root[data-theme] .sidebar-theme-switcher button{border-radius:var(--radius-sm)}:root[data-theme] .sidebar-theme-switcher button.active{color:var(--brand-text);background:var(--panel);border-color:var(--border);box-shadow:0 1px 3px var(--shadow)}:root[data-theme] .portal-panel,:root[data-theme] .dock-panel,:root[data-theme] .flow-node,:root[data-theme] .gallery-reference-dialog,:root[data-theme] .gallery-page-panel,:root[data-theme] .app-notice,:root[data-theme] .error-toast,:root[data-theme] .pane-menu,:root[data-theme] .local-gallery-panel,:root[data-theme] .img2img-section,:root[data-theme] .img2img-preview-upload-section{color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:none;backdrop-filter:none}:root[data-theme] .portal-panel{padding:clamp(18px,2vw,26px)}:root[data-theme] .app-shell .portal-panel{border-radius:var(--radius-panel)}:root[data-theme] .workbench-composer,:root[data-theme] .advanced-composer,:root[data-theme] .commerce-composer{display:grid;gap:18px}:root[data-theme] .workspace-title h1,:root[data-theme] .section-title,:root[data-theme] .portal-panel h2,:root[data-theme] .local-gallery-panel-title{color:var(--text)}:root[data-theme] .section-title{gap:9px;margin:0;font-size:17px;font-weight:650}:root[data-theme] .section-title svg{color:var(--brand)}:root[data-theme] .app-shell .field input,:root[data-theme] .app-shell .field select,:root[data-theme] .app-shell .node-param-grid select,:root[data-theme] .app-shell .prompt-optimization-select select{width:100%;min-width:0;height:var(--control-height);min-height:0;padding:0 12px;color:var(--text);background:var(--field);border:1px solid var(--border-strong);border-radius:var(--radius-control);box-shadow:none;outline:none;font:inherit;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}:root[data-theme] select option,:root[data-theme] select optgroup{color:#141923;-webkit-text-fill-color:#141923;background-color:#fff;opacity:1}:root[data-theme] .app-shell .img2img-setting-field select,:root[data-theme] .app-shell .img2img-setting-field input{width:100%;min-width:0;min-height:42px;padding:10px 12px;color:var(--text);background:var(--field);border:1px solid var(--border-strong);border-radius:var(--radius-control);box-shadow:none;font:inherit}:root[data-theme] .app-shell :is(.node-textarea,.simple-prompt,.advanced-negative-prompt,.commerce-description){width:100%;min-width:0;color:var(--text);background:var(--field);border:1px solid var(--border-strong);border-radius:var(--radius-control);box-shadow:none;outline:none;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}:root[data-theme] .app-shell .field input:hover,:root[data-theme] .app-shell .field select:hover,:root[data-theme] .app-shell textarea:hover,:root[data-theme] .app-shell .img2img-setting-field select:hover,:root[data-theme] .app-shell .img2img-setting-field input:hover{border-color:var(--border-strong);background:var(--field-hover)}:root[data-theme] .app-shell .field input:focus,:root[data-theme] .app-shell .field select:focus,:root[data-theme] .app-shell textarea:focus,:root[data-theme] .app-shell .img2img-setting-field select:focus,:root[data-theme] .app-shell .img2img-setting-field input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus)}:root[data-theme] .app-shell .simple-prompt{min-height:260px;padding:14px;line-height:1.55}:root[data-theme] .app-shell .advanced-negative-prompt{min-height:72px;padding:10px;line-height:1.55}:root[data-theme] .app-shell .commerce-description{min-height:118px;padding:14px;line-height:1.55}:root[data-theme] .app-shell .node-textarea{min-height:244px;padding:14px;resize:none;line-height:1.6}:root[data-theme] .app-shell .workbench-composer .simple-prompt{min-height:clamp(220px,34vh,300px)}:root[data-theme] .app-shell .advanced-composer .simple-prompt{min-height:clamp(240px,32vh,320px)}:root[data-theme] .app-shell .image-title-field input{font:850 12px/1.2 var(--font-ui)}:root[data-theme] .app-shell .canvas-name-field input{font:800 13px/1.25 var(--font-ui)}:root[data-theme] .app-shell .img2img-setting-field .themed-select-trigger{height:auto;min-height:42px;padding:10px 12px}:root[data-theme] .app-shell .field input::placeholder,:root[data-theme] .app-shell textarea::placeholder{color:var(--text-placeholder);opacity:1}:root[data-theme] .app-shell .field,:root[data-theme] .app-shell .img2img-setting-field{gap:7px}:root[data-theme] .app-shell .field>span,:root[data-theme] .app-shell .field-label-row label,:root[data-theme] .app-shell .img2img-setting-field>span{color:var(--label);font-size:13px;font-weight:600}:root[data-theme] .app-shell .themed-select-trigger{min-height:var(--control-height);height:var(--control-height);padding:0 11px;color:var(--text);background:var(--field);border:1px solid var(--border-strong);border-radius:var(--radius-control);box-shadow:none;font:inherit}:root[data-theme] .app-shell .themed-select-trigger:hover:not(:disabled){background:var(--field-hover);border-color:var(--border-strong)}:root[data-theme] .app-shell .themed-select-trigger:focus-visible,:root[data-theme] .app-shell .themed-select-trigger[aria-expanded=true]{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus)}:root[data-theme] .themed-select-menu{color:var(--text);background:var(--panel-strong);border-color:var(--border-strong);border-radius:var(--radius-control);box-shadow:0 12px 32px var(--shadow)}:root[data-theme] .themed-select-option{color:var(--text);border-radius:var(--radius-sm)}:root[data-theme] .themed-select-option:hover:not(:disabled),:root[data-theme] .themed-select-option.active,:root[data-theme] .themed-select-option[aria-selected=true]{color:var(--brand-text);background:color-mix(in srgb,var(--brand) 12%,var(--panel))}:root[data-theme] .simple-param-grid,:root[data-theme] .commerce-param-grid{gap:10px;padding:14px;background:var(--panel-soft);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:none}:root[data-theme] .simple-param-grid>.field,:root[data-theme] .commerce-param-grid>.field{min-width:0;padding:0}:root[data-theme] .simple-param-grid>.field:after,:root[data-theme] .commerce-param-grid>.field:after{display:none}:root[data-theme] .app-shell .simple-param-grid .field select,:root[data-theme] .app-shell .commerce-param-grid .field select,:root[data-theme] .app-shell .simple-param-grid .themed-select-trigger,:root[data-theme] .app-shell .commerce-param-grid .themed-select-trigger{min-height:30px;height:30px;padding:0 10px;color:var(--text);background:var(--field);border:1px solid var(--border-strong);border-radius:var(--radius-control);box-shadow:none}:root[data-theme] .app-shell .workbench-composer .simple-param-grid .field select,:root[data-theme] .app-shell .workbench-composer .simple-param-grid .themed-select-trigger{min-height:34px;height:34px}:root[data-theme] .app-shell .custom-size-grid input{height:34px;min-height:0;padding:0 10px}:root[data-theme] .app-shell .image-title-field input{width:100%;height:24px;min-height:0;padding:0;color:var(--text);background:transparent;border:0;border-radius:0;font-size:12px}:root[data-theme] .app-shell .canvas-name-field input{width:100%;height:auto;min-height:0;padding:0;color:var(--text);background:transparent;border:0;border-radius:0;font:inherit}:root[data-theme] .app-shell .canvas-name-field input:focus,:root[data-theme] .app-shell .canvas-name-field input:focus-visible{padding:2px 5px;background:var(--field);border:0;box-shadow:0 0 0 2px var(--focus)}:root[data-theme] .advanced-param-grid{gap:12px}:root[data-theme] .advanced-param-grid .field{min-width:0;padding:12px;background:var(--panel-soft);border:1px solid var(--border);border-radius:var(--radius-control);box-shadow:none}:root[data-theme] .simple-actions,:root[data-theme] .advanced-actions,:root[data-theme] .commerce-actions{gap:10px}:root[data-theme] .app-shell :is(.primary-action,.brand-button,.btn-primary-redesign,.fhl-button-primary,.img2img-btn.btn-primary,.img2img-upload-btn,.img2img-upload-btn-main){display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--action-height);padding:0 16px;color:var(--brand-contrast);background:var(--brand);border:1px solid var(--brand);border-radius:var(--radius-control);box-shadow:none;font:600 14px/1.2 var(--font-ui);text-shadow:none;transition:background .14s ease,border-color .14s ease,transform .14s ease}:root[data-theme] .app-shell :is(.primary-action,.brand-button,.btn-primary-redesign,.fhl-button-primary,.img2img-btn.btn-primary,.img2img-upload-btn,.img2img-upload-btn-main):hover:not(:disabled){color:var(--brand-contrast);background:var(--brand-deep);border-color:var(--brand-deep);box-shadow:none;filter:none;transform:translateY(-1px)}:root[data-theme] .app-shell :is(.primary-action,.brand-button,.btn-primary-redesign,.fhl-button-primary,.img2img-btn.btn-primary,.img2img-upload-btn,.img2img-upload-btn-main):active:not(:disabled){transform:translateY(0)}:root[data-theme] .app-shell :is(.primary-action,.brand-button,.btn-primary-redesign,.fhl-button-primary,.img2img-btn.btn-primary,.img2img-upload-btn,.img2img-upload-btn-main):disabled{opacity:.55;box-shadow:none;cursor:not-allowed}:root[data-theme] .app-shell :is(.secondary,.ghost,.btn-secondary-redesign,.file-action,.node-file-button,.local-gallery-view-all,.img2img-advanced-toggle,.node-action-bar button,.output-actions button,.user-dropdown-button,.user-badge){display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 12px;color:var(--text);background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-control);box-shadow:none;font:500 13px/1.2 var(--font-ui);transition:color .14s ease,background .14s ease,border-color .14s ease}:root[data-theme] .app-shell :is(.secondary,.ghost,.btn-secondary-redesign,.file-action,.node-file-button,.local-gallery-view-all,.img2img-advanced-toggle,.node-action-bar button,.output-actions button,.user-dropdown-button,.user-badge):hover:not(:disabled){color:var(--brand-text);background:var(--field-hover);border-color:var(--brand);box-shadow:none}:root[data-theme] .app-shell .danger,:root[data-theme] .user-dropdown-menu button.danger{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border)}:root[data-theme] .app-shell .danger:hover:not(:disabled),:root[data-theme] .user-dropdown-menu button.danger:hover{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,var(--panel));border-color:var(--danger)}:root[data-theme] .app-shell .btn-primary-redesign.generating{color:transparent;pointer-events:none}:root[data-theme] .app-shell .paired-generation-count{padding:5px 9px;color:var(--text-muted);background:var(--panel-soft);border:1px solid var(--border);border-radius:var(--radius-control)}:root[data-theme] .app-shell .paired-generation-editor{background:var(--panel-soft);border-color:var(--border);border-radius:var(--radius-control)}:root[data-theme] .app-shell .paired-generation-editor:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus)}:root[data-theme] .app-shell .paired-generation-prompt textarea{min-height:76px;padding:8px;color:var(--text);background:var(--field);border:1px solid var(--border);border-radius:var(--radius-control)}:root[data-theme] .app-shell .paired-generation-attach,:root[data-theme] .app-shell .paired-generation-add,:root[data-theme] .app-shell .paired-generation-reset,:root[data-theme] .app-shell .paired-generation-submit{color:var(--text);background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-control);box-shadow:none;font:500 13px/1.2 var(--font-ui)}:root[data-theme] .app-shell .paired-generation-attach:hover:not(:disabled),:root[data-theme] .app-shell .paired-generation-add:hover:not(:disabled),:root[data-theme] .app-shell .paired-generation-reset:hover:not(:disabled){color:var(--brand-text);background:var(--field-hover);border-color:var(--brand)}:root[data-theme] .app-shell .paired-generation-submit.is-ready{color:var(--brand-contrast);background:var(--brand);border-color:var(--brand)}:root[data-theme] .app-shell .paired-generation-submit.is-ready:hover:not(:disabled){color:var(--brand-contrast);background:var(--brand-deep);border-color:var(--brand-deep)}:root[data-theme] .app-shell .paired-generation-submit:disabled{color:var(--text-muted);background:var(--panel-soft);border-color:var(--border);opacity:.65}:root[data-theme] .app-shell :is(button,input,select,textarea,a):focus-visible,:root[data-theme] .material-picker-dialog :is(button,input,select,textarea,a):focus-visible,:root[data-theme] .fhl-login-box :is(button,input,select,textarea,a):focus-visible{outline:3px solid var(--focus);outline-offset:2px}:root[data-theme] .generation-results-panel,:root[data-theme] .advanced-sketch-board,:root[data-theme] .advanced-style-board,:root[data-theme] .advanced-style-meta,:root[data-theme] .commerce-upload,:root[data-theme] .commerce-category-field,:root[data-theme] .commerce-kind-field,:root[data-theme] .connection-config-block{color:var(--text);background:var(--panel-soft);border-color:var(--border);border-radius:var(--radius-panel);box-shadow:none}:root[data-theme] .commerce-kind-toggle,:root[data-theme] .commerce-category-mode{padding:4px;background:var(--field);border:1px solid var(--border);border-radius:var(--radius-control);box-shadow:none}:root[data-theme] .commerce-kind-toggle button,:root[data-theme] .commerce-category-mode button{min-height:34px;border-radius:var(--radius-sm)}:root[data-theme] .commerce-kind-toggle button.active,:root[data-theme] .commerce-category-mode button.active{color:var(--brand-contrast);background:var(--brand);border-color:var(--brand);box-shadow:none}:root[data-theme] .local-gallery-panel{gap:14px;padding:16px}:root[data-theme] .local-gallery-panel-header{padding-bottom:12px;border-bottom:1px solid var(--border)}:root[data-theme] .local-gallery-panel-title{margin:0;font-size:15px;font-weight:650}:root[data-theme] .local-gallery-panel-subtitle{margin:4px 0 0;color:var(--text-muted);font-size:12px}:root[data-theme] .local-gallery-grid{gap:8px}:root[data-theme] .local-gallery-empty{display:grid;justify-items:center;gap:8px;padding:36px 16px;color:var(--text-muted);background:var(--panel-soft);border:1px dashed var(--border-strong);border-radius:var(--radius-control);text-align:center}:root[data-theme] .local-gallery-empty svg{color:var(--text-muted)}:root[data-theme] .local-gallery-empty strong{color:var(--text);font-size:13px;font-weight:600}:root[data-theme] .local-gallery-empty span{font-size:12px}:root[data-theme] .local-gallery-item{background:var(--panel-soft);border-color:var(--border);border-radius:var(--radius-control)}:root[data-theme] .local-gallery-item img{cursor:zoom-in}:root[data-theme] .local-gallery-item-actions{opacity:1}:root[data-theme] .local-gallery-item-action{width:30px;height:30px;color:var(--text);background:var(--panel);border-color:var(--border);border-radius:var(--radius-sm);box-shadow:0 1px 3px var(--shadow)}:root[data-theme] .local-gallery-item-action:hover{color:var(--brand-text);background:var(--field-hover);border-color:var(--brand);transform:none}:root[data-theme] .local-gallery-item-action[title=删除]{color:var(--danger)}:root[data-theme] .local-gallery-item-action[title=删除]:hover{background:var(--danger-bg);border-color:var(--danger-border)}:root[data-theme] .local-gallery-view-all{width:100%;color:var(--text);background:var(--panel)}:root[data-theme] .app-shell .img2img-section h2{color:var(--text);font-size:16px;font-weight:650}:root[data-theme] .img2img-section .section-desc{color:var(--text-muted)}:root[data-theme] .img2img-generated-preview,:root[data-theme] .img2img-preview-placeholder{background:var(--panel-soft);border-color:var(--border-strong);border-radius:var(--radius-control)}:root[data-theme] .img2img-reference-card,:root[data-theme] .img-preview-card-horizontal,:root[data-theme] .img-add-more-card{background:var(--panel-soft);border-color:var(--border);border-radius:var(--radius-control);box-shadow:none}:root[data-theme] .img2img-container:after{display:none}:root[data-theme] .material-library-toolbar,:root[data-theme] .material-library-panel,:root[data-theme] .material-library-card,:root[data-theme] .material-picker-option{color:var(--text);background:var(--panel);border-color:var(--border);border-radius:var(--radius-panel);box-shadow:var(--panel-shadow)}:root[data-theme] .material-library-toolbar,:root[data-theme] .material-library-panel{padding:16px}:root[data-theme] .material-thumbnail{background:var(--panel-soft)}:root[data-theme] .material-picker-dialog{color:var(--text);background:var(--panel);border:1px solid var(--border-strong);border-radius:12px;box-shadow:0 24px 64px var(--shadow)}:root[data-theme] .material-picker-dialog input,:root[data-theme] .material-picker-dialog textarea,:root[data-theme] .material-picker-dialog select{min-height:var(--control-height);padding:9px 11px;color:var(--text);background:var(--field);border:1px solid var(--border-strong);border-radius:var(--radius-control)}:root[data-theme] .material-picker-search,:root[data-theme] .material-search{color:var(--text-muted);background:var(--field);border:1px solid var(--border-strong);border-radius:var(--radius-control)}:root[data-theme] .material-picker-search input,:root[data-theme] .material-search input{min-height:36px;padding:7px 4px;background:transparent;border:0;box-shadow:none}:root[data-theme] .material-picker-dialog .dialog-header span,:root[data-theme] .material-picker-dialog .material-library-panel-header p{color:var(--text-muted)}:root[data-theme] .material-picker-overlay{background:var(--overlay)}:root[data-theme] .fhl-login-container{background:var(--bg)}:root[data-theme] .fhl-login-background,:root[data-theme] .fhl-grid-overlay,:root[data-theme] .fhl-glow-orb{display:none}:root[data-theme] .fhl-login-box{color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--panel-shadow);-webkit-backdrop-filter:none;backdrop-filter:none}:root[data-theme] .fhl-login-box :is(input,select){color:var(--text);background:var(--field);border:1px solid var(--border-strong);border-radius:var(--radius-control)}:root[data-theme] .fhl-login-box :is(input,select):focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus)}:root[data-theme] .app-shell .gallery-page-panel{padding:18px}:root[data-theme] .app-shell .gallery-page .gallery-strip img,:root[data-theme] .app-shell .generation-results-panel .gallery-strip img,:root[data-theme] .app-shell .local-gallery-item img,:root[data-theme] .app-shell .material-thumbnail img,:root[data-theme] .app-shell .img-preview-card-horizontal img,:root[data-theme] .app-shell .img2img-reference-card img{object-fit:contain;background:var(--panel-soft)}:root[data-theme] .app-sidebar :is(.sidebar-drawer-toggle,.sidebar-github-link){color:var(--text-muted);background:var(--panel);border-color:var(--border);border-radius:var(--radius-control);box-shadow:none}:root[data-theme] .app-sidebar :is(.sidebar-drawer-toggle,.sidebar-github-link):hover{color:var(--brand-text);background:var(--field-hover);border-color:var(--brand)}:root[data-theme] .app-shell :is(.monitor-task,.monitor-summary-item){color:var(--text);background:var(--panel-soft);border-color:var(--border);border-radius:var(--radius-control)}:root[data-theme] .app-shell .monitor-task.is-active{background:color-mix(in srgb,var(--brand) 9%,var(--panel));border-color:var(--brand)}:root[data-theme] .app-shell .monitor-task.is-complete{background:color-mix(in srgb,var(--success) 8%,var(--panel));border-color:var(--success)}:root[data-theme] .app-shell .monitor-task.has-error{background:var(--danger-bg);border-color:var(--danger-border)}:root[data-theme] .workspace-topbar{color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-panel);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:none;backdrop-filter:none}:root[data-theme] .app-shell .two-column-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;gap:18px}@media(max-width:680px){:root[data-theme] .app-workspace-shell:not(.workflow-portal-shell){grid-template-columns:minmax(0,1fr);gap:0;padding:0}:root[data-theme] .app-workspace-shell:not(.workflow-portal-shell)>.app-workspace{padding:max(76px,calc(env(safe-area-inset-top) + 68px)) max(12px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}:root[data-theme] .app-workspace-shell:not(.workflow-portal-shell) .app-sidebar:not(.drawer-open){border:1px solid var(--border);border-radius:var(--radius-panel)}:root[data-theme] .app-workspace-shell:not(.workflow-portal-shell) .app-sidebar.drawer-open{border-top:0;border-bottom:0;border-left:0;border-radius:0}}@media(max-width:1200px){:root[data-theme] .app-shell .two-column-layout{grid-template-columns:minmax(0,1fr)}:root[data-theme] .app-shell .local-gallery-panel{max-height:460px}}@media(max-width:760px){:root[data-theme] .app-shell .portal-panel{padding:16px}:root[data-theme] .app-shell .simple-param-grid,:root[data-theme] .app-shell .commerce-param-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;border-radius:var(--radius-panel)}:root[data-theme] .app-shell .advanced-param-grid{grid-template-columns:repeat(2,minmax(0,1fr))}:root[data-theme] .app-shell .simple-actions:not(.workbench-composer .simple-actions){display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}:root[data-theme] .app-shell .simple-actions:not(.workbench-composer .simple-actions)>button:first-child{grid-column:1 / -1}:root[data-theme] .app-shell .workbench-composer .simple-prompt{min-height:180px}:root[data-theme] .app-shell .workbench-composer .simple-param-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}:root[data-theme] .app-shell .workbench-composer .simple-param-grid>.field{min-height:72px;padding:10px 12px;background:var(--field);border:1px solid var(--border);border-radius:var(--radius-control)}:root[data-theme] .app-shell .workbench-composer .simple-param-grid>.field:first-child,:root[data-theme] .app-shell .workbench-composer .simple-param-grid>.size-field{grid-column:1 / -1}:root[data-theme] .app-shell .workbench-composer .simple-param-grid>.size-field{min-height:0;padding:0;background:transparent;border:0}:root[data-theme] .app-shell .workbench-composer .simple-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}:root[data-theme] .app-shell .workbench-composer .simple-actions>button:first-child{grid-column:1 / -1}:root[data-theme] .app-shell .img2img-content-wrapper{padding:12px}:root[data-theme] .app-shell .img2img-section{padding:16px}:root[data-theme] .app-shell .paired-generation-heading,:root[data-theme] .app-shell .paired-generation-footer{align-items:stretch;flex-direction:column}:root[data-theme] .app-shell .paired-generation-heading-actions{display:flex;align-items:center;justify-content:space-between}:root[data-theme] .app-shell .paired-generation-submit,:root[data-theme] .app-shell .paired-generation-add,:root[data-theme] .app-shell .paired-generation-reset{min-height:38px;padding:0 12px;color:var(--text);background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-control);box-shadow:none;font:500 13px/1.2 var(--font-ui)}:root[data-theme] .app-shell .paired-generation-submit.is-ready{color:var(--brand-contrast);background:var(--brand);border-color:var(--brand)}:root[data-theme] .app-shell .paired-generation-submit.is-ready:hover:not(:disabled){color:var(--brand-contrast);background:var(--brand-deep);border-color:var(--brand-deep)}:root[data-theme] .app-shell .paired-generation-editor{background:var(--panel-soft);border-color:var(--border);border-radius:var(--radius-control)}:root[data-theme] .app-shell .paired-generation-prompt textarea{min-height:76px;padding:8px;color:var(--text);background:var(--field);border:1px solid var(--border);border-radius:var(--radius-control)}}@media(max-width:380px){:root[data-theme] .app-shell .portal-panel{padding:12px}:root[data-theme] .app-shell .simple-param-grid:not(.workbench-composer .simple-param-grid),:root[data-theme] .app-shell .commerce-param-grid,:root[data-theme] .app-shell .advanced-param-grid{grid-template-columns:minmax(0,1fr)}:root[data-theme] .app-shell .simple-actions:not(.workbench-composer .simple-actions){grid-template-columns:minmax(0,1fr)}:root[data-theme] .app-shell .simple-actions:not(.workbench-composer .simple-actions)>button:first-child{grid-column:auto}:root[data-theme] .app-shell .workbench-composer .simple-param-grid{grid-template-columns:repeat(2,minmax(0,1fr))}:root[data-theme] .app-shell .workbench-composer .simple-param-grid>.field:first-child,:root[data-theme] .app-shell .workbench-composer .simple-param-grid>.size-field{grid-column:1 / -1}:root[data-theme] .app-shell .workbench-composer .simple-param-grid>.field:not(:first-child,.size-field){grid-column:span 1}:root[data-theme] .app-shell .workbench-composer .simple-prompt{min-height:180px}:root[data-theme] .app-shell .workbench-composer .simple-actions{grid-template-columns:minmax(0,1fr)}:root[data-theme] .app-shell .workbench-composer .simple-param-grid>.field{grid-column:1 / -1}:root[data-theme] .app-shell .workbench-composer .simple-actions>button:first-child{grid-column:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
