.vue-flow{z-index:0;direction:ltr;width:100%;height:100%;position:relative;overflow:hidden}.vue-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4;overflow:clip}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1px;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-textbg{fill:#fff}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.vue-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{pointer-events:none;min-width:5px;min-height:5px;position:absolute}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{bottom:0;left:50%;transform:translate(-50%,50%)}.vue-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.vue-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.vue-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{z-index:5;margin:15px;position:absolute}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10px}}*,:before,:after,::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.block{display:block}.hidden{display:none}.h1{height:.25rem}.h2{height:.5rem}.tab{tab-size:4}.ease{transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--space-0:0px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-xs:4px;--radius-control:8px;--radius-card:12px;--radius-panel:16px;--radius-round:999px;--control-sm:32px;--control-md:36px;--control-lg:40px;--icon-inline:14px;--icon-control:16px;--icon-heading:20px;--icon-large:32px;--icon-display:40px;--font-xs:11px;--font-sm:12px;--font-md:13px;--font-lg:14px;--font-title:18px;--font-heading:24px;--font-display:32px;--line-tight:1.25;--line-normal:1.5;--line-relaxed:1.75;--weight-medium:500;--weight-strong:600;--tracking-label:.12em;--surface-canvas:#111;--surface-page:#171717;--surface-panel:#222;--surface-raised:#292929;--surface-control:#303030;--surface-hover:#3a3a3a;--surface-selected:#454545;--surface-input:#1c1c1c;--text-primary:#e8e8e8;--text-secondary:#b5b5b5;--text-muted:#919191;--text-inverse:#202020;--text-danger:#e8a099;--border-subtle:#343434;--border-default:#454545;--border-strong:#707070;--border-selected:#b5b5b5;--action-primary:#e2e2e2;--action-primary-hover:#fff;--focus-color:#b5b5b5;--canvas-dot:#303030;--canvas-edge:#a0a0a0;--canvas-selection:#c1c1c11a;--surface-scrim:#0009;--surface-image-label:#202020cc;--shadow-card:0 4px 16px #00000026;--shadow-panel:0 12px 32px #00000040;--shadow-overlay:0 16px 48px #0006;--opacity-disabled:.45;--border-width:1px;--focus-width:2px;--focus-inset:-2px;--motion-fast:.16s;--layer-canvas:0;--layer-composer:10;--layer-chrome:20;--layer-scrim:30;--layer-sidebar:40;--layer-notice:50;--workspace-gutter:var(--space-4);--workspace-top:64px;--workspace-bottom:112px;--sidebar-width:320px;--floating-gap:var(--space-3);--composer-width:560px;--popover-width:320px;--dialog-width:440px;--image-node-width:280px;--generation-node-width:224px;--node-preview-height:112px;--reference-size:40px;--handle-size:10px;--library-width:1280px;--library-card-min:240px;--library-art-height:160px}@media (width<=1200px){:root{--sidebar-width:280px}}@media (width<=700px){:root{--workspace-gutter:var(--space-2);--workspace-top:60px;--workspace-bottom:144px}}:root{color:var(--text-primary);background:var(--surface-canvas);font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;font-size:var(--font-md);line-height:var(--line-normal);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}body{margin:0}button,input,textarea,select{font:inherit;color:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}a{color:inherit;text-decoration:none}input,textarea,select{background:0 0;border:0;min-width:0}input::placeholder,textarea::placeholder{color:var(--text-muted)}:where(button,a,input,textarea,select):focus-visible{outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-inset)}button:not(:disabled):hover{color:var(--text-primary)}button svg,a svg,label>svg{flex-shrink:0}img{max-width:100%}.icon-inline{width:var(--icon-inline);height:var(--icon-inline)}.icon-control{width:var(--icon-control);height:var(--icon-control)}.icon-heading{width:var(--icon-heading);height:var(--icon-heading)}.icon-large{width:var(--icon-large);height:var(--icon-large)}.icon-display{width:var(--icon-display);height:var(--icon-display)}.icon-button{width:var(--control-sm);height:var(--control-sm);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-raised);color:var(--text-secondary);transition:background var(--motion-fast);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-button:hover:not(:disabled){background:var(--surface-hover)}.panel-surface{border:var(--border-width) solid var(--border-default);border-radius:var(--radius-panel);background:var(--surface-panel);box-shadow:var(--shadow-panel)}.field{width:100%;min-height:var(--control-md);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-input);font-size:var(--font-md)}.primary-button,.secondary-button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-lg);padding:var(--space-2) var(--space-4);border:var(--border-width) solid transparent;border-radius:var(--radius-control);font-size:var(--font-md);display:inline-flex}.primary-button{color:var(--text-inverse);background:var(--action-primary);font-weight:var(--weight-strong)}.primary-button:hover:not(:disabled){color:var(--text-inverse);background:var(--action-primary-hover)}.secondary-button{border-color:var(--border-default);background:var(--surface-raised)}.muted{color:var(--text-muted)}.loading-ring{animation:1.3s linear infinite rotate}@keyframes rotate{to{transform:rotate(360deg)}}.eyebrow{color:var(--text-muted);font-size:var(--font-xs);letter-spacing:var(--tracking-label);font-weight:var(--weight-strong)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.account-controls{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.account-controls form{margin:0}.account-avatar{width:var(--icon-control);height:var(--icon-control);border-radius:var(--radius-round);object-fit:cover}.account-initial{background:var(--surface-raised);justify-content:center;align-items:center;display:inline-flex}.canvas-workspace{--canvas-left:0px;isolation:isolate;background:var(--surface-canvas);height:100dvh;position:relative;overflow:hidden}.canvas-workspace.sidebar-open{--canvas-left:calc(var(--sidebar-width) + var(--workspace-gutter) * 2)}.canvas-stage{inset:var(--workspace-top) 0 var(--workspace-bottom) var(--canvas-left);isolation:isolate;z-index:var(--layer-canvas);position:absolute}.canvas-navigation{top:var(--workspace-gutter);left:var(--workspace-gutter);right:var(--workspace-gutter);z-index:var(--layer-chrome);align-items:center;gap:var(--space-2);pointer-events:none;display:flex;position:absolute}.canvas-navigation>*{pointer-events:auto}.nav-control{width:var(--control-md);height:var(--control-md);background:var(--surface-panel);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-control);flex-shrink:0;place-items:center;display:grid}.settings-control{order:6;margin-left:auto}.canvas-navigation:has(.signin-button) .settings-control{margin-left:0}.canvas-title{min-width:0;height:var(--control-md);align-items:center;gap:var(--space-2);background:var(--surface-panel);border:var(--border-width) solid var(--border-default);padding:0 var(--space-3);border-radius:var(--radius-control);display:flex}.canvas-title input{width:10em;font-size:var(--font-sm);font-weight:var(--weight-strong)}.canvas-title:focus-within{outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-inset)}.canvas-title input:focus-visible{outline:none}.canvas-title>span{width:var(--space-6);height:var(--space-6);background:var(--surface-hover);border-radius:var(--radius-round);font-size:var(--font-xs);place-items:center;display:grid}.save-indicator{font-size:var(--font-xs);color:var(--text-muted);padding:0 var(--space-2);white-space:nowrap}.save-error,.save-conflict{color:var(--text-danger)}.signin-button{align-items:center;gap:var(--space-2);min-height:var(--control-md);padding:var(--space-2) var(--space-3);background:var(--surface-raised);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-control);font-size:var(--font-sm);flex-shrink:0;margin-left:auto;display:flex}.toolbar-dock{bottom:var(--workspace-gutter);left:var(--workspace-gutter);right:var(--workspace-gutter);z-index:var(--layer-chrome);justify-content:space-between;align-items:center;gap:var(--space-3);pointer-events:none;display:flex;position:absolute}.canvas-toolbar{gap:var(--space-1);padding:var(--space-1);border:var(--border-width) solid var(--border-default);background:var(--surface-panel);border-radius:var(--radius-card);box-shadow:var(--shadow-card);pointer-events:auto;align-items:center;display:flex}.canvas-toolbar button{justify-content:center;align-items:center;gap:var(--space-2);min-width:var(--control-sm);height:var(--control-sm);padding:0 var(--space-2);border-radius:var(--radius-control);font-size:var(--font-sm);display:flex}.canvas-toolbar button:hover:not(:disabled){background:var(--surface-hover)}.canvas-toolbar button.active{background:var(--surface-selected)}.canvas-toolbar button.add-node-button{color:var(--text-inverse);background:var(--action-primary)}.canvas-toolbar button.add-node-button:hover{background:var(--action-primary-hover)}.canvas-toolbar .zoom-value{font-weight:var(--weight-strong);font-variant-numeric:tabular-nums}.canvas-empty{padding:var(--space-6);pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.canvas-empty>div{max-width:var(--dialog-width);text-align:center;pointer-events:auto}.empty-symbol{font-size:var(--space-12);color:var(--text-secondary)}.canvas-empty h1{font-weight:var(--weight-medium);font-size:var(--font-heading);margin:var(--space-4) 0}.canvas-empty p{color:var(--text-muted);font-size:var(--font-md);margin:var(--space-4) 0 var(--space-6)}.empty-hint{color:var(--text-muted);font-size:var(--font-xs);margin-top:var(--space-6);display:block}.workspace-notices{z-index:var(--layer-notice);top:var(--workspace-top);left:max(var(--workspace-gutter), var(--canvas-left));right:var(--workspace-gutter);align-items:center;gap:var(--space-2);pointer-events:none;flex-direction:column;display:flex;position:absolute}.workspace-notice{gap:var(--space-3);max-width:100%;padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--border-strong);background:var(--surface-raised);border-radius:var(--radius-card);font-size:var(--font-sm);box-shadow:var(--shadow-panel);pointer-events:auto;overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;display:flex}.workspace-notice>span{flex:1;min-width:0}.workspace-notice button{min-height:var(--control-sm);white-space:nowrap}.editor-dialog{width:min(var(--dialog-width), calc(100% - var(--workspace-gutter) * 2));max-height:calc(100dvh - var(--workspace-gutter) * 2);padding:var(--space-6);color:var(--text-primary);overscroll-behavior:contain;margin:auto;overflow-y:auto}.editor-dialog::backdrop{background:var(--surface-scrim);-webkit-backdrop-filter:blur(var(--space-2));backdrop-filter:blur(var(--space-2))}.editor-dialog header{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.editor-dialog h2{font-size:var(--font-title);margin:0}.editor-dialog p{font-size:var(--font-md);line-height:var(--line-relaxed);overflow-wrap:anywhere}.editor-dialog small{color:var(--text-muted);display:block}.editor-dialog dl{gap:var(--space-4);font-size:var(--font-sm);border-top:var(--border-width) solid var(--border-default);padding-top:var(--space-6);margin:var(--space-6) 0 0;grid-template-columns:1fr 1fr;display:grid}.editor-dialog dd{text-align:right;color:var(--text-secondary);margin:0}.sidebar-scrim{display:none}@media (width<=1000px){.save-indicator{display:none}}@media (width<=700px){.canvas-workspace.sidebar-open{--canvas-left:0px}.canvas-title{padding:0 var(--space-2);flex:1}.canvas-title input{width:100%}.canvas-title>span{display:none}.signin-button{font-size:var(--font-xs);padding:var(--space-2)}.toolbar-dock{justify-content:center;gap:var(--space-2);flex-wrap:wrap}.toolbar-left button span{display:none}.canvas-toolbar button{padding:0 var(--space-1)}.canvas-empty{padding:var(--space-4)}.canvas-empty h1{font-size:var(--font-title)}.sidebar-scrim{z-index:var(--layer-scrim);background:var(--surface-scrim);display:block;position:absolute;inset:0}}.node-caption{bottom:calc(100% + var(--space-2));gap:var(--space-1);font-size:var(--font-xs);color:var(--text-secondary);white-space:nowrap;align-items:center;max-width:100%;display:flex;position:absolute}.node-caption span{text-overflow:ellipsis;overflow:hidden}.node-caption svg{flex-shrink:0}.image-node{width:var(--image-node-width);position:relative}.image-node-content{border:var(--border-width) solid var(--border-default);border-radius:var(--radius-card);background:var(--surface-panel);box-shadow:var(--shadow-card);position:relative;overflow:hidden}.image-node-content>img{width:100%;display:block}.node-selected .image-node-content{outline:var(--focus-width) solid var(--border-selected);outline-offset:var(--focus-inset)}.node-tag{top:var(--space-2);left:var(--space-2);border-radius:var(--radius-xs);padding:var(--space-1) var(--space-2);font-size:var(--font-xs);background:var(--surface-image-label);color:var(--text-primary);position:absolute}.node-download{top:var(--space-2);right:var(--space-2);gap:var(--space-1);min-height:var(--control-sm);background:var(--surface-image-label);padding:var(--space-1) var(--space-2);border-radius:var(--radius-control);color:var(--text-primary);font-size:var(--font-xs);opacity:0;transition:opacity var(--motion-fast);align-items:center;display:flex;position:absolute}.image-node:hover .node-download,.image-node:focus-within .node-download,.image-node.node-selected .node-download{opacity:1}.generation-node{width:var(--generation-node-width);background:var(--surface-panel);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-card);box-shadow:var(--shadow-card);position:relative}.generation-node.node-selected{border-color:var(--border-selected)}.generation-preview{height:var(--node-preview-height);justify-content:center;align-items:center;gap:var(--space-3);color:var(--text-muted);flex-direction:column;display:flex;position:relative}.generation-suggestions{padding:var(--space-3) var(--space-4) var(--space-4);border-top:var(--border-width) solid var(--border-subtle);font-size:var(--font-sm);color:var(--text-muted)}.suggestion-grid{gap:var(--space-2);margin-top:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.suggestion-grid button{justify-content:center;align-items:center;gap:var(--space-1);min-height:var(--control-sm);background:var(--surface-raised);border:var(--border-width) solid var(--border-subtle);padding:var(--space-1);border-radius:var(--radius-control);font-size:var(--font-xs);white-space:nowrap;display:flex}.node-upload{gap:var(--space-1);top:var(--space-2);right:var(--space-2);background:var(--surface-control);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-control);min-height:var(--control-sm);padding:var(--space-1) var(--space-2);font-size:var(--font-xs);align-items:center;display:flex;position:absolute}.job-state{font-size:var(--font-sm);color:var(--text-secondary)}.node-error{color:var(--text-danger);line-height:var(--line-normal);font-size:var(--font-xs);overflow-wrap:anywhere;margin:0}.vue-flow__handle{width:var(--handle-size);height:var(--handle-size);background:var(--surface-selected);border:var(--border-width) solid var(--border-selected);opacity:var(--opacity-disabled)}.vue-flow__node:hover .vue-flow__handle,.vue-flow__node.selected .vue-flow__handle{opacity:1}.vue-flow__edge.selected .vue-flow__edge-path{stroke:var(--text-primary)}.vue-flow__selection{background:var(--canvas-selection);border:var(--border-width) solid var(--border-selected)}.node-action-menu{bottom:calc(var(--workspace-gutter) + var(--control-sm) + var(--space-5));right:var(--workspace-gutter);z-index:var(--layer-chrome);align-items:center;gap:var(--space-2);max-width:calc(100% - var(--workspace-gutter) * 2);padding:var(--space-1) var(--space-2);background:var(--surface-panel);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-control);font-size:var(--font-xs);box-shadow:var(--shadow-card);display:flex;position:absolute}.node-action-menu span{white-space:nowrap;text-overflow:ellipsis;max-width:12em;color:var(--text-secondary);overflow:hidden}.node-action-menu button{width:var(--control-sm);height:var(--control-sm);border-radius:var(--radius-control);flex-shrink:0;place-items:center;display:grid}@media (width<=700px){.node-action-menu{bottom:calc(var(--workspace-gutter) + var(--control-sm) * 2 + var(--space-8))}}@media (hover:none){.node-download{opacity:1}}.canvas-sidebar{z-index:var(--layer-sidebar);left:var(--workspace-gutter);top:var(--workspace-top);bottom:var(--workspace-bottom);width:var(--sidebar-width);flex-direction:column;display:flex;position:absolute;overflow:hidden}.sidebar-heading{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:var(--border-width) solid var(--border-subtle);flex-shrink:0;display:flex}.sidebar-heading span{letter-spacing:var(--tracking-label);font-size:var(--font-xs);font-weight:var(--weight-strong);color:var(--text-muted);display:block}.sidebar-heading h2{font-size:var(--font-lg);margin:var(--space-1) 0 0;font-weight:var(--weight-strong)}.asset-filters{padding:var(--space-3);border-bottom:var(--border-width) solid var(--border-subtle);flex-shrink:0}.asset-search{align-items:center;gap:var(--space-2);min-height:var(--control-md);background:var(--surface-input);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-control);padding:var(--space-2);color:var(--text-muted);display:flex}.asset-search:focus-within{outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-inset)}.asset-search input{width:100%;font-size:var(--font-sm);outline:none}.segmented{gap:var(--space-1);padding:var(--space-1);margin-top:var(--space-2);border-radius:var(--radius-control);background:var(--surface-raised);display:flex}.segmented button{min-height:var(--control-sm);padding:var(--space-1) var(--space-2);font-size:var(--font-sm);border-radius:var(--radius-xs);font-weight:var(--weight-medium);color:var(--text-secondary);flex:1}.segmented button.active{color:var(--text-primary);background:var(--surface-selected)}.asset-grid{gap:var(--space-4) var(--space-2);min-height:0;padding:var(--space-3);overscroll-behavior:contain;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;display:grid;overflow-y:auto}.asset-grid>*,.asset-tile{min-width:0}.asset-thumbnail{border-radius:var(--radius-control);border:var(--border-width) solid var(--border-default);width:100%;display:block;position:relative;overflow:hidden}.asset-thumbnail img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.asset-thumbnail span{top:var(--space-1);left:var(--space-1);font-size:var(--font-xs);padding:var(--space-1);background:var(--surface-image-label);border-radius:var(--radius-xs);color:var(--text-primary);position:absolute}.asset-tile p{font-size:var(--font-xs);margin:var(--space-2) 0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.asset-actions{gap:var(--space-1);display:flex}.asset-actions button{border:var(--border-width) solid var(--border-default);background:var(--surface-raised);border-radius:var(--radius-control);width:var(--control-sm);height:var(--control-sm);color:var(--text-secondary);place-items:center;display:grid}.sidebar-footer{align-items:center;gap:var(--space-2);padding:var(--space-3);border-top:var(--border-width) solid var(--border-subtle);font-size:var(--font-xs);color:var(--text-muted);flex-shrink:0;margin-top:auto;display:flex}.sidebar-footer>span:last-child{letter-spacing:var(--tracking-label);margin-left:auto}.live-dot{width:var(--space-1);height:var(--space-1);background:var(--text-muted);border-radius:var(--radius-round);flex-shrink:0}.panel-empty{padding:var(--space-8) var(--space-4);text-align:center;font-size:var(--font-sm);color:var(--text-secondary);overflow-y:auto}.panel-empty>span{font-size:var(--font-xs);color:var(--text-muted);margin-top:var(--space-2);display:block}.panel-empty button{align-items:center;gap:var(--space-2);margin-top:var(--space-5);background:var(--surface-control);min-height:var(--control-md);padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);display:inline-flex}.generation-panel-anchor{z-index:var(--layer-composer);width:min(var(--composer-width), calc(100% - var(--floating-gap) * 2));max-height:calc(100% - var(--floating-gap) * 2);border-radius:var(--radius-panel);position:absolute;overflow:clip;container-type:inline-size}.generation-panel{gap:var(--space-3);width:100%;padding:var(--space-4);max-height:inherit;overscroll-behavior:contain;flex-direction:column;display:flex;overflow-y:auto}.prompt-heading{justify-content:space-between;align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:var(--font-md);display:flex}.prompt-heading>span{align-items:center;gap:var(--space-2);display:flex}.prompt-spark{font-size:var(--font-title)}.generation-panel textarea{resize:none;width:100%;height:calc(var(--control-lg) * 2);padding:var(--space-3);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-control);background:var(--surface-input);font-size:var(--font-md);line-height:var(--line-relaxed);flex-shrink:0;display:block}.generation-controls{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.control-pill{min-width:0;min-height:var(--control-sm);gap:var(--space-1);padding:var(--space-1) var(--space-2);border:var(--border-width) solid var(--border-default);background:var(--surface-control);border-radius:var(--radius-control);font-size:var(--font-xs);white-space:nowrap;justify-content:center;align-items:center;display:flex}.control-pill:focus-visible{outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-inset)}.model-select{max-width:12em}.popover-select-value{text-overflow:ellipsis;min-width:0;overflow:hidden}.popover-select-trigger:hover:not(:disabled){background:var(--surface-hover)}.popover-select-trigger[aria-expanded=true] .select-chevron{transform:rotate(180deg)}.select-popover{width:max-content;min-width:calc(var(--control-lg) * 3);max-width:min(var(--popover-width), calc(100vw - var(--floating-gap) * 2));padding:var(--space-1);border-radius:var(--radius-card);color:var(--text-primary);background:var(--surface-raised);box-shadow:var(--shadow-overlay);overscroll-behavior:contain;margin:0;position:fixed;inset:auto;overflow-y:auto}.select-option{justify-content:space-between;align-items:center;gap:var(--space-4);width:100%;min-height:var(--control-md);padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);text-align:left;font-size:var(--font-sm);display:flex}.select-option:hover:not(:disabled),.select-option:focus-visible{background:var(--surface-hover)}.select-option[aria-selected=true]{background:var(--surface-control)}.select-option-text{gap:var(--space-1);overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.select-option-text small{color:var(--text-muted);font-size:var(--font-xs)}.control-active{background:var(--surface-selected);border-color:var(--border-selected)}.send-button{width:var(--control-sm);height:var(--control-sm);border-radius:var(--radius-control);background:var(--action-primary);color:var(--text-inverse);flex-shrink:0;place-items:center;margin-left:auto;display:grid}.send-button:hover:not(:disabled){background:var(--action-primary-hover);color:var(--text-inverse)}.toggle-off{padding:var(--border-width);width:var(--space-5);height:var(--space-3);border-radius:var(--radius-round);background:var(--border-strong);align-items:center;display:flex}.toggle-off:before{content:"";background:var(--text-secondary);border-radius:var(--radius-round);width:var(--handle-size);height:var(--handle-size)}.generation-hint{justify-content:space-between;align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--font-xs);flex-wrap:wrap;display:flex}.generation-hint button{align-items:center;gap:var(--space-1);min-height:var(--control-sm);display:inline-flex}.generation-error{color:var(--text-danger);font-size:var(--font-sm);line-height:var(--line-normal);overflow-wrap:anywhere;margin:0}.parameter-popover{width:min(var(--popover-width), calc(100vw - var(--floating-gap) * 2));max-height:calc(100dvh - var(--floating-gap) * 2);padding:var(--space-4);color:var(--text-primary);background:var(--surface-raised);box-shadow:var(--shadow-overlay);overscroll-behavior:contain;margin:0;position:fixed;inset:auto;overflow-y:auto}.parameter-popover>header{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);font-size:var(--font-md);font-weight:var(--weight-strong);display:flex}.parameter-popover fieldset{min-width:0;margin:0 0 var(--space-4);border:0;padding:0}.parameter-popover fieldset:last-child{margin:0}.parameter-popover legend{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--space-2);padding:0}.option-row{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.option-row button,.ratio-grid button{min-height:var(--control-md);border:var(--border-width) solid var(--border-default);background:var(--surface-control);border-radius:var(--radius-control);font-size:var(--font-sm);padding:var(--space-2) var(--space-1);color:var(--text-secondary)}.parameter-popover button.selected{border-color:var(--border-selected);background:var(--surface-selected);color:var(--text-primary)}.ratio-grid{gap:var(--space-2);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.ratio-grid button{justify-content:center;align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.ratio-symbol{max-width:var(--space-5);max-height:var(--space-4);height:var(--space-4);border:var(--border-width) solid currentColor;border-radius:var(--radius-xs);display:block}.reference-strip{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.reference-strip>div{width:var(--reference-size);height:var(--reference-size);border-radius:var(--radius-control);flex-shrink:0;position:relative;overflow:hidden}.reference-strip img{object-fit:cover;width:100%;height:100%;display:block}.reference-strip>div>span{bottom:0;text-align:center;font-size:var(--font-xs);background:var(--surface-image-label);position:absolute;inset-inline:0}.reference-strip>span{min-width:10em;font-size:var(--font-xs);color:var(--text-muted);flex:1}.history-list{min-height:0;padding:var(--space-3);overscroll-behavior:contain;overflow-y:auto}.history-item{padding:var(--space-3);background:var(--surface-raised);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-card);margin-bottom:var(--space-3);font-size:var(--font-sm)}.history-item>div{gap:var(--space-2);flex-wrap:wrap;justify-content:space-between;display:flex}.history-item time{color:var(--text-muted);font-size:var(--font-xs)}.history-item p{line-height:var(--line-normal);overflow-wrap:anywhere}.history-item small{color:var(--text-danger);margin-bottom:var(--space-2);display:block}.history-item button{min-height:var(--control-sm);border:var(--border-width) solid var(--border-default);border-radius:var(--radius-control);padding:var(--space-1) var(--space-2);margin:var(--space-1) var(--space-1) 0 0;font-size:var(--font-xs)}.status-succeeded{color:var(--text-primary)}.status-failed{color:var(--text-danger)}@container (width<=550px){.optional-control{display:none}}@container (width<=390px){.generation-panel{padding:var(--space-3);gap:var(--space-2)}.parameter-trigger{order:4;width:100%}.generation-hint>span{width:100%}}@media (width<=700px){.canvas-sidebar{width:min(var(--sidebar-width), calc(100% - var(--workspace-gutter) * 2));bottom:var(--workspace-gutter);box-shadow:var(--shadow-overlay)}}.library-page{background:var(--surface-page);min-height:100dvh}.library-navigation{min-height:calc(var(--control-lg) + var(--space-10));max-width:var(--library-width);padding:var(--space-5) var(--space-8);justify-content:space-between;align-items:center;gap:var(--space-4);border-bottom:var(--border-width) solid var(--border-subtle);margin:auto;display:flex}.brand{font-size:var(--font-heading);letter-spacing:var(--tracking-label);font-weight:var(--weight-strong);white-space:nowrap}.brand span{font-size:var(--font-xs);margin-left:var(--space-3);color:var(--text-muted)}.library-content{max-width:var(--library-width);margin:var(--space-16) auto;padding:0 var(--space-8)}.library-title{margin:var(--space-4) 0 var(--space-10);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.library-title h1{font-size:var(--font-display);font-weight:var(--weight-medium);margin:0}.library-title h1 span{font-size:var(--font-lg);color:var(--text-muted);margin-left:var(--space-2)}.library-title p{color:var(--text-muted);font-size:var(--font-md);margin-top:var(--space-4)}.canvas-library-grid{grid-template-columns:repeat(auto-fill, minmax(min(100%, var(--library-card-min)), 1fr));gap:var(--space-5);display:grid}.new-canvas-card{min-height:var(--library-card-min);border:var(--border-width) dashed var(--border-strong);border-radius:var(--radius-card);background:var(--surface-panel);justify-content:center;align-items:center;gap:var(--space-4);color:var(--text-secondary);font-size:var(--font-md);flex-direction:column;display:flex}.canvas-library-card{border:var(--border-width) solid var(--border-default);border-radius:var(--radius-card);background:var(--surface-panel);min-width:0;position:relative;overflow:hidden}.canvas-library-card a{padding:var(--space-3);display:block}.canvas-card-art{height:var(--library-art-height);background:radial-gradient(var(--canvas-dot) var(--border-width), transparent var(--border-width)), var(--surface-canvas);background-size:var(--space-4) var(--space-4);border-radius:var(--radius-control);color:var(--text-muted);place-items:center;display:grid}.canvas-library-card h2{font-size:var(--font-lg);font-weight:var(--weight-medium);margin:var(--space-4) 0 var(--space-2);overflow-wrap:anywhere}.canvas-library-card a>span{padding-right:var(--control-lg);font-size:var(--font-xs);color:var(--text-muted);display:block}.delete-canvas{bottom:var(--space-2);right:var(--space-2);width:var(--control-sm);height:var(--control-sm);border-radius:var(--radius-control);color:var(--text-muted);place-items:center;display:grid;position:absolute}.delete-confirm{place-content:center;gap:var(--space-3);padding:var(--space-5);background:var(--surface-raised);font-size:var(--font-md);flex-wrap:wrap;display:flex;position:absolute;inset:0}.delete-confirm p{text-align:center;width:100%}.delete-confirm button{min-height:var(--control-md);padding:var(--space-2) var(--space-3);background:var(--surface-selected);border-radius:var(--radius-control)}.library-footer{justify-content:space-between;gap:var(--space-3);color:var(--text-muted);font-size:var(--font-xs);margin-top:var(--space-8);border-top:var(--border-width) solid var(--border-subtle);padding-top:var(--space-5);flex-wrap:wrap;display:flex}.login-card{width:min(var(--composer-width), calc(100% - var(--space-8)));margin:var(--space-16) auto;text-align:center;padding-block:var(--space-10)}.login-card h1{font-size:clamp(var(--font-heading), 5vw, var(--space-12));font-weight:var(--weight-medium);letter-spacing:var(--tracking-label);margin:var(--space-6) 0 var(--space-4)}.login-card p{color:var(--text-secondary);font-size:var(--font-md);line-height:var(--line-relaxed);margin-bottom:var(--space-8)}.login-card small{color:var(--text-muted);font-size:var(--font-xs);margin-top:var(--space-5);display:block}.library-error{color:var(--text-danger);text-align:center;font-size:var(--font-sm);padding:var(--space-4);overflow-wrap:anywhere}@media (width<=700px){.library-navigation{padding:var(--space-4);gap:var(--space-2)}.brand span{margin-left:var(--space-1)}.library-content{margin-top:var(--space-8);padding:0 var(--space-4)}.library-title{align-items:flex-start}.library-title h1{font-size:var(--font-heading)}.library-title .primary-button{white-space:nowrap}}
