:root{--bg:#16171c;--stage:#1b1c22;--surface:#202127;--surface-2:#2a2b33;--surface-3:#33343d;--border:#2f3038;--text:#e7e8ee;--text-dim:#a2a4b0;--text-faint:#6e707c;--accent:#2fc3b0;--accent-strong:#1fa594;--accent-ink:#06231f;--accent-soft:#2fc3b024;--danger:#ff6b6b;--radius:8px;--radius-sm:6px;--rail-w:56px;--panel-w:272px;--top-h:52px;--bottom-h:46px;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,Segoe UI,-apple-system,sans-serif;font-size:13px}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon{flex:none;display:inline-flex}.app{grid-template-columns:var(--rail-w) var(--panel-w) minmax(0, 1fr);grid-template-rows:var(--top-h) minmax(0, 1fr) auto var(--bottom-h);grid-template-areas:"top top top""rail panel stage""rail panel strip""rail panel bottom";height:100vh;display:grid}.topbar{background:var(--surface);border-bottom:1px solid var(--border);grid-area:top;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 14px;display:grid}.brand{letter-spacing:.01em;align-items:center;gap:10px;font-weight:600;display:flex}.brand .icon{color:var(--accent)}.top-actions{gap:6px;display:flex}.rail{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;grid-area:rail;align-items:center;gap:6px;padding-top:10px;display:flex}.rail-btn{border-radius:var(--radius);width:48px;color:var(--text-dim);background:0 0;border:0;place-items:center;gap:3px;padding:7px 0 5px;display:grid}.rail-btn.is-active{background:var(--accent-soft);color:var(--accent)}.panel{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;grid-area:panel;min-height:0;display:flex}.panel-head{flex:none;align-items:center;gap:6px;height:52px;padding:0 12px 0 16px;display:flex}.panel-head .icon-btn{margin-left:-8px}.panel-head h2{margin:0;font-size:15px;font-weight:600}.panel-body{flex:1;padding:0 12px 16px;overflow-y:auto}.tool-body{padding:4px 16px 16px}.panel-foot{border-top:1px solid var(--border);gap:8px;padding:12px 16px;display:flex}.panel-foot .btn{flex:1;justify-content:center}.panel-note{color:var(--text-faint);padding:4px 6px}.tool-section+.tool-section{margin-top:10px}.section-toggle{width:100%;color:var(--text-dim);background:0 0;border:0;justify-content:space-between;align-items:center;padding:8px 6px;font-size:12px;font-weight:600;display:flex}.section-toggle .icon{transition:transform .15s;transform:rotate(180deg)}.is-collapsed .section-toggle .icon{transform:none}.is-collapsed .tool-list{display:none}.tool-list{flex-direction:column;gap:4px;display:flex}.tool-item{border-radius:var(--radius-sm);background:var(--surface-2);text-align:left;border:0;align-items:center;gap:10px;width:100%;height:36px;padding:0 12px;transition:background .12s;display:flex}.tool-item .icon{color:var(--text-dim)}.tool-item:not(:disabled):hover{background:var(--surface-3)}.tool-item:not(:disabled):hover .icon{color:var(--accent)}.tool-item:disabled{opacity:.45}.field-label{color:var(--text-dim);margin:14px 0 8px;font-size:12px;font-weight:600}.chip-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.chip{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);height:30px;font-size:12px}.chip:hover{border-color:var(--surface-3);background:var(--surface-3)}.chip.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.size-row{align-items:center;gap:6px;display:flex}.num{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);flex:1;align-items:center;min-width:0;height:32px;padding-left:8px;display:flex}.num span{color:var(--text-faint);font-size:11px}.num input{font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;width:100%;min-width:0;height:100%;padding:0 6px}.num:focus-within{border-color:var(--accent)}.times,.unit{color:var(--text-faint)}.action-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.action{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);flex-direction:column;align-items:center;gap:8px;padding:16px 8px;font-size:12px;display:flex}.action .icon svg{width:22px;height:22px}.action:hover{border-color:var(--accent);color:var(--accent)}.slider{margin:14px 0 18px}.slider-head{color:var(--text-dim);justify-content:space-between;margin-bottom:8px;display:flex}.slider-head output{color:var(--text-faint);font-variant-numeric:tabular-nums}.slider.is-changed .slider-head output{color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}.link-btn{color:var(--accent);background:0 0;border:0;padding:0}.link-btn:hover{text-decoration:underline}.hint{color:var(--text-faint);font-size:12px;line-height:1.5}.btn{border-radius:var(--radius-sm);white-space:nowrap;border:1px solid #0000;align-items:center;gap:8px;height:32px;padding:0 14px;font-weight:500;display:inline-flex}.btn-ghost{background:var(--surface-2);border-color:var(--border)}.btn-ghost:not(:disabled):hover{background:var(--surface-3)}.btn-primary{background:var(--accent);color:var(--accent-ink);font-weight:600}.btn-primary:not(:disabled):hover{background:var(--accent-strong)}.btn:disabled{opacity:.45}.icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-dim);background:0 0;border:0;place-items:center;display:inline-grid}.icon-btn:not(:disabled):hover{background:var(--surface-2);color:var(--text)}.icon-btn:disabled{opacity:.35}.icon-btn.lock{flex:none}.icon-btn.lock.is-active{color:var(--accent)}.stage{background:var(--stage);grid-area:stage;min-width:0;min-height:0;position:relative}.viewport{cursor:grab;touch-action:none;padding:32px;display:flex;position:absolute;inset:0;overflow:auto}.viewport.is-panning{cursor:grabbing}.canvas-wrap{background-color:#3a3b44;background-image:linear-gradient(45deg,#2c2d35 25%,#0000 25%),linear-gradient(-45deg,#2c2d35 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#2c2d35 75%),linear-gradient(-45deg,#0000 75%,#2c2d35 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;flex:none;margin:auto;position:relative;box-shadow:0 6px 30px #00000073}#view{display:block}#view.is-pixelated{image-rendering:pixelated}.crop-layer{touch-action:none;position:absolute;inset:0}.crop-shade{pointer-events:none;background:#0a0a0e9e;position:absolute}.crop-box{cursor:move;border:1px solid #fff;position:absolute;box-shadow:0 0 0 1px #00000080}.crop-grid{pointer-events:none;background-image:linear-gradient(90deg,#ffffff59 1px,#0000 1px),linear-gradient(#ffffff59 1px,#0000 1px);background-position:-1px -1px;background-size:33.333% 33.333%;position:absolute;inset:0}.crop-handle{border:2px solid var(--accent);background:#fff;border-radius:3px;width:14px;height:14px;margin:-7px 0 0 -7px;position:absolute}.crop-handle[data-h=nw]{cursor:nwse-resize;top:0;left:0}.crop-handle[data-h=n]{cursor:ns-resize;top:0;left:50%}.crop-handle[data-h=ne]{cursor:nesw-resize;top:0;left:100%}.crop-handle[data-h=e]{cursor:ew-resize;top:50%;left:100%}.crop-handle[data-h=se]{cursor:nwse-resize;top:100%;left:100%}.crop-handle[data-h=s]{cursor:ns-resize;top:100%;left:50%}.crop-handle[data-h=sw]{cursor:nesw-resize;top:100%;left:0}.crop-handle[data-h=w]{cursor:ew-resize;top:50%;left:0}.empty{place-items:center;padding:24px;display:grid;position:absolute;inset:0}.empty-card{border:1.5px dashed var(--surface-3);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:6px;width:min(460px,100%);padding:48px 32px;display:flex}.empty-card h1{margin:10px 0 0;font-size:18px;font-weight:600}.empty-card p{color:var(--text-faint);margin:4px 0}.empty-icon svg{width:36px;height:36px;color:var(--accent)}.empty-card .formats{letter-spacing:.02em;margin-top:16px;font-size:11px}.drop-hint{z-index:5;border:2px dashed var(--accent);color:var(--accent);pointer-events:none;background:#16171cd1;border-radius:14px;place-items:center;font-size:18px;font-weight:600;display:grid;position:absolute;inset:12px}.busy{z-index:6;color:var(--text-dim);background:#16171cb3;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.spinner{border:3px solid var(--surface-3);border-top-color:var(--accent);border-radius:50%;width:30px;height:30px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.bottombar{background:var(--surface);border-top:1px solid var(--border);grid-area:bottom;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:0 10px 0 16px;display:grid}.info{white-space:nowrap;min-width:0;color:var(--text-dim);font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:12px;display:flex;overflow:hidden}.info strong{color:var(--text);font-weight:500}.info .sep{background:var(--text-faint);border-radius:50%;width:3px;height:3px}.info .file{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.zoom{align-items:center;gap:2px;display:flex}.zoom input{width:140px;margin:0 6px}.zoom-value{text-align:right;width:48px;color:var(--text-dim);font-variant-numeric:tabular-nums}.history{justify-content:flex-end;gap:2px;display:flex}.dialog{border:1px solid var(--border);background:var(--surface);width:min(400px,100vw - 32px);color:var(--text);border-radius:12px;padding:0;box-shadow:0 20px 60px #00000080}.dialog::backdrop{background:#08080c99}.dialog form{flex-direction:column;gap:14px;padding:20px;display:flex}.dialog h2{margin:0 0 4px;font-size:16px}.field{color:var(--text-dim);flex-direction:column;gap:6px;font-size:12px;display:flex}.field span{justify-content:space-between;display:flex}.field input[type=text],.field select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);height:34px;color:var(--text);padding:0 10px;font-size:13px}.field-inline{flex-direction:row;justify-content:space-between;align-items:center}.field input[type=color]{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:44px;height:28px;padding:0 2px}.dialog .hint{margin:0}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.toasts{right:16px;bottom:calc(var(--bottom-h) + 12px);z-index:20;pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed}.toast{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);max-width:420px;padding:10px 14px;line-height:1.45;transition:opacity .3s,transform .3s;animation:.18s ease-out toast-in;box-shadow:0 8px 24px #0006}.toast-error{background:#3a2427;border-color:#ff6b6b8c}.toast.is-leaving{opacity:0;transform:translateY(6px)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}@media (max-width:760px){:root{--panel-w:220px;--rail-w:0px}.rail,.brand span:last-child,.zoom input{display:none}}.rail-btn:not(.is-active):hover{background:var(--surface-2);color:var(--text)}.rail-label{font-size:10px;font-weight:500}.export-group{border-left:1px solid var(--border);align-items:center;gap:4px;margin-left:10px;padding-left:12px;display:flex}.export-group select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);height:32px;color:var(--text);padding:0 8px;font-size:13px}.strip{background:var(--surface);border-top:1px solid var(--border);grid-area:strip;min-width:0}.strip-head{align-items:center;gap:14px;height:30px;padding:0 14px;font-size:12px;display:flex}.strip-count{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.strip-tip{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;margin-left:auto;overflow:hidden}.link-danger{color:var(--danger)}.strip:not(.has-multi) #strip-none,.strip:not(.has-multi) #strip-remove{display:none}.strip-list{scrollbar-width:thin;gap:8px;padding:2px 14px 12px;display:flex;overflow-x:auto}.thumb{border-radius:var(--radius);background:var(--bg);cursor:pointer;border:2px solid #0000;flex:none;place-items:center;width:96px;height:72px;padding:0;display:grid;position:relative;overflow:hidden}.thumb.is-selected{border-color:#2fc3b073}.thumb.is-active{border-color:var(--accent)}.thumb-name{color:#fff;text-overflow:ellipsis;white-space:nowrap;background:linear-gradient(#0000,#000000bf);padding:10px 5px 3px;font-size:10px;position:absolute;inset:auto 0 0;overflow:hidden}.thumb-badge{color:#fff;background:#000000a6;border-radius:3px;padding:1px 4px;font-size:9px;font-weight:600;position:absolute;top:4px;right:4px}.thumb-check{opacity:0;background:#0000008c;border-radius:4px;place-items:center;width:20px;height:20px;transition:opacity .12s;display:grid;position:absolute;top:3px;left:3px}.thumb-check input{accent-color:var(--accent);cursor:pointer;margin:0}.thumb-btn{color:#fff;opacity:0;background:#000000b3;border:0;border-radius:5px;place-items:center;width:24px;height:24px;padding:0;transition:opacity .12s;display:grid;position:absolute;bottom:18px}.thumb-btn svg{width:14px;height:14px}.thumb-dl{right:30px}.thumb-x{right:4px}.thumb-btn:hover{background:var(--accent);color:var(--accent-ink)}.thumb-x:hover{background:var(--danger);color:#fff}.thumb:hover .thumb-check,.thumb:hover .thumb-btn,.thumb.is-selected .thumb-check,.strip.has-multi .thumb-check{opacity:1}.thumb-add{border:1.5px dashed var(--surface-3);color:var(--text-faint)}.thumb-add:hover{border-color:var(--accent);color:var(--accent)}.bulk-toggle{border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--text);cursor:pointer;align-items:center;gap:8px;margin:0 16px 6px;padding:9px 12px;display:flex}.bulk-toggle input{accent-color:var(--accent);margin:0}.bulk-toggle strong{color:var(--accent)}.panel-banner{border-radius:var(--radius-sm);background:var(--accent-soft);margin:0 6px 10px;padding:9px 12px;line-height:1.45}.panel-foot{flex-wrap:wrap}.panel-foot [data-act=next]{flex-basis:100%;order:3}.btn-block{justify-content:center;width:100%}.chip-grid-3{grid-template-columns:repeat(3,1fr);margin-top:4px}.field-note{color:var(--text-faint);margin-left:6px;font-weight:400}.field-radios{border:0;margin:0;padding:0}.field-radios legend{margin-bottom:6px;padding:0}.field-radios label{color:var(--text);align-items:center;gap:8px;padding:3px 0;font-size:13px;display:flex}.field-radios input{accent-color:var(--accent)}.layer-sources{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.layer-source{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);height:64px;padding:2px;position:relative}.layer-source:hover{border-color:var(--accent)}.layer-list{flex-direction:column;gap:3px;margin:0 0 6px;padding:0;list-style:none;display:flex}.layer-row{border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;border:1px solid #0000;align-items:center;gap:8px;height:44px;padding:0 4px;display:flex}.layer-row.is-selected{border-color:var(--accent);background:var(--accent-soft)}.layer-row.is-hidden .layer-thumb,.layer-row.is-hidden .layer-name{opacity:.4}.layer-row.is-bg{cursor:default;color:var(--text-dim)}.layer-row .icon-btn{flex:none;width:28px;height:28px}.eye-spacer{flex:none;width:28px}.layer-thumb{background:var(--bg);border-radius:4px;flex:none;width:40px;height:32px;position:relative;overflow:hidden}.layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.layers-overlay{touch-action:none;position:absolute;inset:0}.layer-box{outline:1.5px solid var(--accent);cursor:move;position:absolute;box-shadow:0 0 0 1px #00000073}.layer-handle{border:2px solid var(--accent);background:#fff;border-radius:3px;width:12px;height:12px;margin:-6px 0 0 -6px;position:absolute}.layer-handle[data-h=nw]{cursor:nwse-resize;top:0;left:0}.layer-handle[data-h=ne]{cursor:nesw-resize;top:0;left:100%}.layer-handle[data-h=se]{cursor:nwse-resize;top:100%;left:100%}.layer-handle[data-h=sw]{cursor:nesw-resize;top:100%;left:0}.layer-rotate{border:2px solid var(--accent);cursor:grab;background:#fff;border-radius:50%;width:14px;height:14px;margin-left:-7px;position:absolute;top:-30px;left:50%}.layer-rotate:after{content:"";background:var(--accent);width:1.5px;height:16px;margin-left:-.75px;position:absolute;top:12px;left:50%}@media (max-width:1100px){.strip-tip{display:none}}.toasts{top:calc(var(--top-h) + 12px);bottom:auto}.instant-toggle{height:32px;color:var(--text-dim);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:flex}.instant-toggle input{accent-color:var(--accent);margin:0}.thumb.is-converted .thumb-badge{background:var(--accent);color:var(--accent-ink)}.scale-row{align-items:center;gap:10px;margin-bottom:8px;display:flex}.scale-row input[type=range]{flex:1;min-width:0}.num-pct{flex:none;width:84px;padding:0 8px 0 0}.num-pct input{text-align:right}.size-estimate{border-radius:var(--radius-sm);background:var(--bg);font-variant-numeric:tabular-nums;flex-direction:column;gap:4px;margin-top:14px;padding:10px 12px;display:flex}.size-estimate:empty{display:none}.estimate-label{color:var(--text-faint);font-size:11px}.estimate-value strong{color:var(--text);font-weight:600}.estimate-delta{color:var(--accent);margin-left:6px;font-size:12px}.thumb[draggable=true]{cursor:grab}.thumb.is-dragging{opacity:.35}.thumb.drop-before{box-shadow:-6px 0 0 -2px var(--accent)}.thumb.drop-after{box-shadow:6px 0 0 -2px var(--accent)}.quality-inline{height:32px;color:var(--text-dim);align-items:center;gap:6px;padding:0 4px 0 8px;font-size:12px;display:flex}.quality-inline input{width:96px}.quality-inline output{width:24px;color:var(--text);font-variant-numeric:tabular-nums;text-align:right}.thumb>canvas,.layer-source>canvas,.layer-thumb>canvas{object-fit:scale-down;width:100%;height:100%;position:absolute;inset:0}.layer-source>canvas{width:calc(100% - 6px);height:calc(100% - 6px);inset:3px}.brand{white-space:nowrap}@media (max-width:1180px){.brand span:last-child{display:none}}.layer-ai-row{gap:6px;margin:4px 0 8px;display:grid}.layer-ai{min-width:0}.upscale-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:12px;display:grid}.upscale-choice{flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:0;height:auto;padding:10px 6px;display:flex}.upscale-choice strong{font-size:18px;font-weight:600}.upscale-choice[data-factor="1"] strong{font-size:14px;line-height:25px}.upscale-choice span{color:var(--text-faint);font-variant-numeric:tabular-nums;text-align:center;overflow-wrap:anywhere;font-size:10.5px}.upscale-state{min-height:13px;color:var(--accent);font-size:10.5px;font-style:normal}.upscale-choice:disabled{opacity:.4;cursor:not-allowed}.hint-warn{color:var(--danger,#f87171)}.brush-layer{cursor:none;touch-action:none;position:absolute;inset:0;overflow:hidden}.brush-layer.is-pan{cursor:grab}.brush-display{opacity:.45;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.brush-ring{pointer-events:none;border:1.5px solid #fffffff2;border-radius:50%;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0000008c,inset 0 0 0 1px #00000059}#view{position:relative}.ghost{opacity:.28;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.chip-grid-2{grid-template-columns:repeat(2,1fr)}.check-row{color:var(--text-dim);accent-color:var(--accent);align-items:center;gap:8px;margin:10px 0 2px;font-size:12.5px;display:flex}.ai-signin{border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);gap:8px;margin-bottom:6px;padding:10px 12px 12px;display:grid}.ai-signin .field-label{color:var(--text);align-items:center;gap:6px;margin:0;display:flex}.text-input,.ai-prompt{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;min-width:0;color:var(--text);font:inherit;outline:none;padding:8px 10px;font-size:13px}.text-input{height:34px;padding:0 10px}.ai-prompt{resize:vertical;min-height:84px;line-height:1.45}.text-input:focus,.ai-prompt:focus{border-color:var(--accent)}.ai-area{margin-top:8px}.ai-paint-modes{margin-bottom:4px}.ai-refs{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:8px;display:grid}.ai-ref,.ai-ref-add{aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);position:relative;overflow:hidden}.ai-ref img{object-fit:contain;width:100%;height:100%}.ai-ref-remove{color:#fff;background:#000000b3;border-radius:50%;width:18px;height:18px;font-size:13px;line-height:18px;position:absolute;top:2px;right:2px}.ai-ref-add{color:var(--text-dim);border-style:dashed;font-size:22px}.ai-ref-add:hover{border-color:var(--accent);color:var(--accent)}.ai-ref-doc{margin-bottom:4px}.ai-results{flex-wrap:wrap;gap:6px;display:flex}.ai-results .chip{min-width:40px;padding:0 10px}.ai-model{margin-top:14px}.dialog-gen{width:min(460px,100vw - 32px);max-height:calc(100vh - 32px)}.dialog-gen form{gap:8px}.dialog-gen h2{align-items:center;gap:8px;display:flex}.dialog-gen .field-label{margin-top:6px}.dialog-gen input[type=range]{width:100%}.gen-shape{flex-direction:column;align-items:center;gap:3px;height:auto;padding:8px 4px 7px;line-height:1.1;display:flex}.gen-shape small{color:var(--text-faint);font-size:11px;font-weight:400}.ratio-slot{justify-content:center;align-items:center;width:28px;height:28px;display:flex}.ratio-box{opacity:.8;border:1.5px solid;border-radius:3px}
