:root{--bg:#0f1012;--panel:#17191d;--panel-strong:#202329;--line:#343841;--line-soft:#262a31;--text:#f5f6f8;--muted:#aeb5c1;--muted-2:#7d8795;--accent:#35c486;--accent-strong:#19a86c;--blue:#6aa8ff;--amber:#f2b84b;--danger:#ff6f6f;--shadow:rgba(0,0,0,0.34);--page-glow:rgba(255,255,255,0.035);--button-bg:#23262d;--button-hover-bg:#2a2e36;--button-hover-border:#4a505c;--primary-text:#06140e;--primary-hover:#45d997;--control-bg:#111419;--control-active:#2a2f37;--upload-bg:#13161a;--upload-gradient:rgba(53,196,134,0.1);--upload-active-bg:#17241e;--upload-border:#596172;--preview-bg:#0c0d0f;--checker-bg:#9aa1ad;--checker-square:#777f8d;--badge-bg:rgba(15,16,18,0.78);--badge-border:rgba(255,255,255,0.16);--error-text:#ffc2c2;--progress-bg:#282d35}[data-theme=light]{--bg:#f3f5f7;--panel:#ffffff;--panel-strong:#f8fafc;--line:#cbd3df;--line-soft:#e0e5ed;--text:#111827;--muted:#526071;--muted-2:#778397;--accent:#0f9f68;--accent-strong:#08794e;--blue:#2563eb;--amber:#b7791f;--danger:#d83b3b;--shadow:rgba(17,24,39,0.12);--page-glow:rgba(15,159,104,0.08);--button-bg:#ffffff;--button-hover-bg:#f2f6fa;--button-hover-border:#aab6c5;--primary-text:#ffffff;--primary-hover:#0b8f5d;--control-bg:#eef2f6;--control-active:#ffffff;--upload-bg:#fbfcfd;--upload-gradient:rgba(15,159,104,0.1);--upload-active-bg:#eefbf5;--upload-border:#a3adba;--preview-bg:#e9edf3;--checker-bg:#cdd3dd;--checker-square:#aeb7c4;--badge-bg:rgba(255,255,255,0.86);--badge-border:rgba(17,24,39,0.14);--error-text:#9f2424;--progress-bg:#d8dee8}html[data-app-ready=false] body{visibility:hidden}*{box-sizing:border-box}body,html{width:100%;min-height:100%;margin:0;background:linear-gradient(180deg,var(--page-glow),transparent 28%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{border:1px solid var(--line);background:var(--button-bg);color:var(--text);border-radius:8px;min-height:42px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}button:hover:not(:disabled){border-color:var(--button-hover-border);background:var(--button-hover-bg)}button:disabled{opacity:.48;cursor:not-allowed}button[data-variant=primary]{border-color:var(--accent);background:var(--accent);color:var(--primary-text);font-weight:750}button[data-variant=primary]:hover:not(:disabled){background:var(--primary-hover)}.experience-shell{width:100%;height:100dvh;min-height:0;display:grid;grid-template-columns:minmax(420px,520px) minmax(0,1fr);grid-gap:18px;gap:18px;padding:18px;overflow:hidden}.intro-panel,.work-panel{min-width:0;border:1px solid var(--line-soft);background:color-mix(in srgb,var(--panel) 94%,transparent);box-shadow:0 18px 50px var(--shadow)}.intro-panel{border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}.brand-mark{display:inline-flex;align-items:center;gap:12px;min-width:0;color:var(--accent);font-size:18px;line-height:1.1;font-weight:850}.brand-mark span{color:var(--text);max-width:18em}.intro-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.top-controls{display:flex;align-items:center;gap:6px;justify-content:flex-end;flex:0 0 auto}.menu-control,.top-controls{position:relative}.icon-menu-trigger{width:36px;min-height:36px;padding:0;border-color:var(--line-soft);background:var(--control-bg);color:var(--muted)}.icon-menu-trigger:hover:not(:disabled),.icon-menu-trigger[aria-expanded=true]{color:var(--text);border-color:var(--button-hover-border);background:var(--control-active)}.control-menu{position:absolute;z-index:20;top:calc(100% + 8px);right:0;width:max-content;min-width:148px;max-width:min(260px,calc(100vw - 24px));padding:6px;border:1px solid var(--line-soft);border-radius:8px;background:var(--panel);box-shadow:0 12px 30px var(--shadow);overflow:hidden}.control-menu button{width:100%;min-height:34px;padding:0 8px;border:0;border-radius:6px;background:transparent;color:var(--text);justify-content:flex-start;gap:8px;font-size:13px;white-space:nowrap;min-width:0}.control-menu button span{min-width:0;overflow:hidden;text-overflow:ellipsis}.control-menu button:hover{background:var(--control-active)}.control-menu button svg:last-child{margin-left:auto;color:var(--accent)}.theme-menu{width:196px;min-width:196px}.model-select{display:grid;grid-gap:8px;gap:8px;position:relative;min-width:0}.model-select>span{color:var(--muted-2);font-size:12px;font-weight:700}.model-select-trigger{width:100%;min-height:40px;border:1px solid var(--line-soft);border-radius:8px;background:var(--control-bg);color:var(--text);padding:0 12px;justify-content:space-between;gap:10px;min-width:0}.model-select-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-select-trigger svg{flex:0 0 auto;color:var(--muted)}.model-select-trigger[aria-expanded=true]{border-color:var(--button-hover-border);background:var(--control-active)}.model-options{position:absolute;z-index:20;top:calc(100% - 18px);left:0;width:100%;max-height:min(280px,calc(100dvh - 160px));overflow:auto;padding:6px;border:1px solid var(--line-soft);border-radius:8px;background:var(--panel);box-shadow:0 12px 30px var(--shadow)}.model-options button{width:100%;min-height:50px;padding:8px 9px;border:0;border-radius:6px;background:transparent;color:var(--text);justify-content:flex-start;gap:10px;min-width:0}.model-options button:hover,.model-options button[data-active=true]{background:var(--control-active)}.model-options button>span{display:grid;grid-gap:3px;gap:3px;min-width:0;text-align:left}.model-options small,.model-options strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-options strong{font-size:13px}.model-options small{color:var(--muted);font-size:12px;line-height:1.25}.model-options svg{flex:0 0 auto;margin-left:auto;color:var(--accent)}.model-select small{color:var(--muted);font-size:12px;line-height:1.4}.intro-copy h1{margin:0;width:100%;max-width:none;font-size:30px;line-height:1.12;letter-spacing:0}html[lang=zh] .intro-copy h1{word-break:keep-all;overflow-wrap:normal}html[lang=en] .intro-panel{gap:14px}html[lang=en] .upload-card{min-height:150px;padding:18px}.upload-card{border:1px dashed var(--upload-border);border-radius:10px;min-height:158px;padding:20px;background:linear-gradient(135deg,var(--upload-gradient),transparent 52%),var(--upload-bg);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;cursor:pointer}.upload-card[data-dragging=true]{border-color:var(--accent);background:var(--upload-active-bg)}.upload-card input{display:none}.upload-card strong{font-size:18px}.upload-card span:last-child{color:var(--muted);line-height:1.45}.upload-icon{width:48px;height:48px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.work-panel{border-radius:14px;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.work-header{min-height:72px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 18px;background:var(--panel)}.work-header>div:first-child{min-width:0}.work-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto}.work-header span{display:block;color:var(--muted-2);font-size:12px;margin-bottom:4px}.work-header strong{display:block;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-frame{position:relative;min-height:0;overflow:hidden;background:var(--preview-bg);overscroll-behavior:contain}.pixi-stage{overscroll-behavior:contain;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:var(--checker-bg);background-image:linear-gradient(45deg,var(--checker-square) 25%,transparent 25%),linear-gradient(-45deg,var(--checker-square) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--checker-square) 75%),linear-gradient(-45deg,transparent 75%,var(--checker-square) 75%);background-size:28px 28px;background-position:0 0,0 14px,14px -14px,-14px 0}.edit-overlay,.pixi-stage,.pixi-stage canvas{position:absolute;inset:0}.edit-overlay{z-index:2;width:100%;height:100%;touch-action:none;cursor:crosshair}.edit-overlay[data-tool=pan]{cursor:-webkit-grab;cursor:grab}.edit-toolbar{min-height:48px;border-bottom:1px solid var(--line-soft);background:var(--panel);display:grid;grid-template-columns:auto minmax(160px,1fr) auto auto auto;align-items:center;grid-gap:10px;gap:10px;padding:9px 14px}.mode-indicator{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:0 10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--control-bg);color:var(--muted);font-size:12px}.mode-indicator span{width:7px;height:7px;border-radius:999px;background:var(--muted)}.mode-indicator strong{color:var(--text);font-size:12px;font-weight:650;white-space:nowrap}.mode-indicator[data-mode=edit] span{background:var(--accent)}.edit-tool-group{display:inline-flex;align-items:center;gap:4px;padding:3px;border:1px solid var(--line-soft);border-radius:8px;background:var(--control-bg)}.edit-tool-group[data-group=view]{gap:2px}.edit-tool-group button{width:32px;min-height:30px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted)}.edit-tool-group button:hover:not(:disabled),.edit-tool-group button[data-active=true]{background:var(--control-active);color:var(--text)}.zoom-value{min-width:48px;padding:0 4px;color:var(--muted);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:center}.edit-tool-group button[aria-label="Add area"][data-active=true],.edit-tool-group button[aria-label="区域添加"][data-active=true],.edit-tool-group button[aria-label="添加"][data-active=true],.edit-tool-group button[aria-label=Add][data-active=true]{color:var(--accent)}.edit-tool-group button[aria-label="Remove area"][data-active=true],.edit-tool-group button[aria-label="删除"][data-active=true],.edit-tool-group button[aria-label="区域删除"][data-active=true],.edit-tool-group button[aria-label=Remove][data-active=true]{color:var(--danger)}.edit-tool-group button[aria-label="裁剪"][data-active=true],.edit-tool-group button[aria-label=Crop][data-active=true]{color:var(--blue)}.brush-control{min-width:0;display:grid;grid-template-columns:auto minmax(72px,1fr) 48px;align-items:center;grid-gap:8px;gap:8px;color:var(--muted);font-size:12px}.brush-control input{width:100%;accent-color:var(--accent)}.brush-control input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:18px;border-radius:999px;--brush-fill:33%;--brush-active:var(--accent);--brush-track:color-mix(in srgb,var(--muted) 22%,var(--panel-strong));background:transparent}.brush-control:has(input:disabled){color:color-mix(in srgb,var(--muted) 64%,var(--panel-strong))}.brush-control input[type=range]:disabled{--brush-active:color-mix(in srgb,var(--muted) 48%,var(--panel-strong));--brush-track:color-mix(in srgb,var(--muted) 14%,var(--panel-strong));cursor:not-allowed}.brush-control input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(to right,var(--brush-active) 0 var(--brush-fill),var(--brush-track) var(--brush-fill) 100%);border:1px solid color-mix(in srgb,var(--muted) 24%,transparent)}.brush-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;margin-top:-6px;border:2px solid var(--panel);border-radius:999px;background:var(--brush-active);box-shadow:0 1px 3px var(--shadow)}.brush-control input[type=range]:disabled::-webkit-slider-runnable-track{border-color:color-mix(in srgb,var(--muted) 16%,transparent)}.brush-control input[type=range]:disabled::-webkit-slider-thumb{border-color:color-mix(in srgb,var(--panel) 78%,var(--muted));box-shadow:none}.brush-control input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:color-mix(in srgb,var(--muted) 22%,var(--panel-strong));border:1px solid color-mix(in srgb,var(--muted) 24%,transparent)}.brush-control input[type=range]::-moz-range-progress{height:6px;border-radius:999px;background:var(--brush-active)}.brush-control input[type=range]::-moz-range-thumb{width:14px;height:14px;border:2px solid var(--panel);border-radius:999px;background:var(--brush-active);box-shadow:0 1px 3px var(--shadow)}.brush-control input[type=range]:disabled::-moz-range-track{border-color:color-mix(in srgb,var(--muted) 16%,transparent)}.brush-control input[type=range]:disabled::-moz-range-thumb{border-color:color-mix(in srgb,var(--panel) 78%,var(--muted));box-shadow:none}.background-picker{position:relative}.background-trigger{position:relative;width:36px;min-height:36px;padding:0;border-color:var(--line-soft);background:var(--control-bg);color:var(--muted)}.background-trigger:hover:not(:disabled),.background-trigger[aria-expanded=true]{color:var(--text);border-color:var(--button-hover-border);background:var(--control-active)}.background-trigger:disabled{opacity:1;border-color:var(--line-soft);background:var(--control-bg);color:color-mix(in srgb,var(--muted) 48%,var(--panel-strong))}.background-trigger-indicator{position:absolute;right:5px;bottom:5px;width:9px;height:9px;border:1.5px solid var(--panel);border-radius:50%;background:var(--selected-background);box-shadow:0 0 0 1px color-mix(in srgb,var(--text) 34%,transparent);opacity:0;transform:scale(.68);transition:opacity .14s ease,transform .14s ease}.background-trigger[data-has-selection=true] .background-trigger-indicator{opacity:1;transform:scale(1)}.background-popover{position:absolute;z-index:20;top:calc(100% + 8px);right:0;width:188px;padding:10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--panel);box-shadow:0 12px 30px var(--shadow)}.background-swatch-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:7px;gap:7px}.background-swatch-grid button{width:22px;min-height:22px;padding:0;border-radius:6px;border-color:var(--line);background:linear-gradient(45deg,#cfd5df 25%,transparent 25%),linear-gradient(-45deg,#cfd5df 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#cfd5df 75%),linear-gradient(-45deg,transparent 75%,#cfd5df 75%),var(--swatch);background-size:10px 10px;background-position:0 0,0 5px,5px -5px,-5px 0,0 0}.background-swatch-grid button:not([style*=transparent]){background:var(--swatch)}.background-swatch-grid button[data-active=true]{outline:2px solid var(--accent);outline-offset:1px}.custom-color-control{margin-top:10px;display:grid;grid-template-columns:1fr 38px;align-items:center;grid-gap:8px;gap:8px;color:var(--muted);font-size:12px}.custom-color-control input{width:38px;height:30px;padding:0;border:1px solid var(--line-soft);border-radius:6px;background:transparent}.preview-empty{position:absolute;inset:0;display:grid;place-items:center;align-content:center;grid-gap:10px;gap:10px;text-align:center;color:var(--text);padding:24px;pointer-events:none}.preview-empty svg{color:var(--accent)}.preview-empty strong{font-size:18px}.preview-empty span{max-width:34em;color:var(--muted);font-size:14px;line-height:1.5}.processing-badge{top:16px;left:16px;min-height:34px;padding:0 12px;gap:8px;border-radius:8px;color:var(--text);font-size:13px}.crop-floating-actions,.processing-badge{position:absolute;display:inline-flex;align-items:center;border:1px solid var(--badge-border);background:var(--badge-bg)}.crop-floating-actions{z-index:4;gap:6px;padding:5px;border-radius:8px;box-shadow:0 12px 30px var(--shadow);pointer-events:auto}.crop-floating-actions button{width:30px;min-height:28px;padding:0;border-radius:6px}.process-panel{min-height:0;border:1px solid var(--line-soft);border-radius:10px;padding:14px;background:var(--panel-strong)}.process-panel[data-tone=error]{border-color:color-mix(in srgb,var(--danger) 42%,transparent)}.status-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.status-head span{display:block;color:var(--muted-2);font-size:12px;margin-bottom:3px}.status-head strong{font-size:16px}.status-head svg{color:var(--accent)}.process-panel[data-tone=error] .status-head svg{color:var(--danger)}.error-message,.status-message{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.45;overflow-wrap:anywhere}.error-message{color:var(--error-text)}.steps{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;margin-top:12px}.step-item,.steps{display:grid;gap:8px}.step-item{min-width:0;min-height:40px;border:1px solid var(--line-soft);border-radius:8px;background:var(--panel);padding:8px 9px;grid-template-columns:20px minmax(0,1fr);grid-gap:8px;align-items:center}.step-item[data-state=done]{border-color:color-mix(in srgb,var(--accent) 44%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.step-item[data-state=active]{border-color:color-mix(in srgb,var(--blue) 52%,transparent);background:color-mix(in srgb,var(--blue) 10%,transparent)}.step-item[data-state=error]{border-color:color-mix(in srgb,var(--danger) 52%,transparent)}.step-dot{width:20px;height:20px;border-radius:999px;border:1px solid var(--button-hover-border);display:grid;place-items:center;color:var(--muted-2)}.step-item[data-state=done] .step-dot{border-color:var(--accent);color:var(--accent)}.step-item[data-state=active] .step-dot{border-color:var(--blue);color:var(--blue)}.step-item[data-state=error] .step-dot{border-color:var(--danger);color:var(--danger)}.step-item strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;margin:0}.retry-button{width:100%;margin-top:12px}.spin{display:inline-block;animation:spin .9s linear infinite;transform-box:fill-box;transform-origin:center}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:1040px){.experience-shell{height:auto;min-height:100dvh;grid-template-columns:1fr;overflow:visible}.intro-copy h1{max-width:none;font-size:30px}}@media (max-width:720px){.experience-shell{padding:10px;gap:10px}.intro-panel{padding:18px}.intro-top{align-items:flex-start;flex-direction:column;gap:14px}.top-controls{justify-content:flex-start;flex-basis:auto}.control-menu{left:0;right:auto;max-width:calc(100vw - 36px)}.model-options{max-height:min(260px,calc(100dvh - 140px))}.intro-copy h1{font-size:26px}.work-panel{grid-template-rows:auto auto minmax(300px,52dvh)}.work-header{align-items:stretch;flex-direction:column;justify-content:center;padding:14px}.work-header-actions{width:100%;display:grid;grid-template-columns:1fr;grid-gap:8px;gap:8px}.work-header-actions>button[data-variant=primary]{width:100%}.preview-frame{min-height:300px}.edit-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:7px 8px}.edit-tool-group,.mode-indicator{gap:2px;padding:2px}.mode-indicator{gap:7px;justify-content:center;min-height:32px;padding:0 10px}.edit-tool-group button{width:28px;min-height:28px}.edit-tool-group[data-group=paint]{flex:1 1 auto}.edit-tool-group[data-group=paint] button{flex:1 1}.edit-tool-group[data-group=view]{flex:0 0 auto}.zoom-value{min-width:42px}.background-trigger{width:32px;min-height:32px}.brush-control{order:10;flex:1 1 100%;grid-template-columns:auto minmax(0,1fr) 42px;gap:7px;padding:0 4px}.steps{grid-template-columns:1fr;gap:8px;margin-top:12px}.step-item{min-height:64px;padding:10px;grid-template-columns:20px minmax(0,1fr)}.step-dot{width:20px;height:20px}.error-message,.status-message{font-size:13px}}