:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;--canvas:#f6f7f9;--surface:#fff;--surface-muted:#f1f3f5;--text:#202329;--muted:#6b717b;--faint:#969ca6;--line:#e0e3e8;--line-strong:#cdd2d9;--accent:#ef4d32;--accent-hover:#da3e25;--accent-soft:#fff3f0;--success:#1a9b55;--danger:#d93b2b;--focus:#336de7;--panel-radius:14px;--control-radius:10px;background:var(--canvas);color:var(--text);font-family:Geist,SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--canvas)}body{background:var(--canvas);min-width:320px;min-height:100dvh;margin:0}body.preview-open{overflow:hidden}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{min-height:100dvh}.app-header{z-index:10;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;height:64px;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;width:min(100%,1344px);height:100%;margin:0 auto;padding:0 32px;display:flex}.wordmark{color:var(--text);letter-spacing:-.07em;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:25px;font-weight:700;line-height:1;text-decoration:none}.wordmark:first-letter{color:var(--accent)}.header-actions{align-items:center;height:100%;display:flex}.worker-state,.queue-state{min-height:40px;color:var(--muted);border-right:1px solid var(--line);white-space:nowrap;align-items:center;gap:8px;padding:0 20px;font-size:13px;display:flex}.worker-state i{background:var(--danger);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #d93b2b17}.worker-state.online i{background:var(--success);box-shadow:0 0 0 4px #1a9b5517}.worker-state.online span{color:#35754f}.queue-state strong{color:#454a52;font-weight:650}.logout-button{color:#454a52;cursor:pointer;background:0 0;border:0;justify-content:flex-end;align-items:center;gap:8px;min-width:78px;min-height:44px;padding:0 0 0 20px;font-size:13px;display:flex}.logout-button:hover{color:var(--accent)}.logout-button svg{width:19px}main{width:min(100%,1344px);margin:0 auto;padding:24px 32px 72px}.creation-grid{grid-template-columns:minmax(0,1.16fr) minmax(320px,.84fr);align-items:stretch;gap:16px;display:grid}.composer,.preset-panel{border:1px solid var(--line);border-radius:var(--panel-radius);background:var(--surface);min-width:0;box-shadow:0 8px 30px #3037420a}.panel-heading{justify-content:space-between;align-items:flex-start;min-height:66px;padding:18px 20px 12px;display:flex}.panel-heading h1,.panel-heading h2{letter-spacing:-.025em;margin:0;font-size:21px;font-weight:680;line-height:1.25}.panel-heading p{color:var(--muted);margin:5px 0 0;font-size:12px;line-height:1.45}.selected-presets{flex-wrap:wrap;gap:8px;padding:0 20px 14px;display:flex}.selected-presets button{background:var(--accent-soft);color:#b73521;cursor:pointer;border:1px solid #f0a394;border-radius:8px;align-items:center;gap:9px;min-height:34px;padding:0 10px 0 12px;font-size:13px;display:inline-flex}.selected-presets button:hover{border-color:var(--accent)}.prompt-field{margin:0 20px;position:relative}.prompt-field>label{color:#454a52;margin-bottom:8px;font-size:13px;font-weight:600;display:block}.prompt-field textarea{resize:vertical;border:1px solid var(--line-strong);border-radius:var(--control-radius);background:var(--surface);width:100%;height:148px;min-height:132px;color:var(--text);outline:0;padding:15px 16px 34px;font-size:16px;line-height:1.55;display:block}.prompt-field textarea::placeholder{color:#9aa0a9;opacity:1}.prompt-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #ef4d321a}.prompt-field>span{color:var(--faint);font-size:11px;position:absolute;bottom:10px;right:12px}.size-fieldset{border:0;min-width:0;margin:17px 20px 0;padding:0}.size-fieldset legend{color:#454a52;margin-bottom:9px;font-size:13px;font-weight:600}.size-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.size-option{border:1px solid var(--line-strong);border-radius:var(--control-radius);background:var(--surface);min-width:0;min-height:64px;color:var(--muted);cursor:pointer;justify-content:center;align-items:center;gap:9px;padding:8px 10px;transition:border-color .15s,background-color .15s,transform .15s;display:flex}.size-option:hover{border-color:#aeb4bd}.size-option:active{transform:translateY(1px)}.size-option.selected{border-color:var(--accent);background:var(--accent-soft);color:#b73521}.size-option input{opacity:0;pointer-events:none;position:absolute}.size-option svg{flex:none;width:24px;height:24px}.size-option>span{flex-direction:column;gap:2px;min-width:0;font-size:11px;line-height:1.2;display:flex}.size-option strong{color:var(--text);font-size:12px;font-weight:650}.size-option.selected strong{color:#a52f1e}.size-option.custom>span{text-align:center}.custom-size-fields{border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface-muted);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:10px;margin-top:10px;padding:12px;display:grid}.custom-size-fields>span{color:var(--muted);padding-bottom:11px}.custom-size-fields label span{color:var(--muted);margin-bottom:6px;font-size:11px;display:block}.custom-size-fields input{border:1px solid var(--line-strong);background:var(--surface);width:100%;height:40px;color:var(--text);border-radius:8px;outline:0;padding:0 11px;font-size:14px}.custom-size-fields input:focus{border-color:var(--accent)}.size-help{color:var(--faint);margin:8px 0 0;font-size:11px;line-height:1.45}.composer-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;margin-top:18px;padding:16px 20px 20px;display:flex}.quantity-control{align-items:center;gap:10px;min-width:0;display:flex}.quantity-control>span{color:#454a52;white-space:nowrap;font-size:13px;font-weight:600}.quantity-control>div{border:1px solid var(--line-strong);background:var(--surface);border-radius:9px;grid-template-columns:40px 48px 40px;height:42px;display:grid;overflow:hidden}.quantity-control button,.quantity-control output{background:0 0;border:0;place-items:center;font-size:16px;display:grid}.quantity-control button{cursor:pointer}.quantity-control button:hover:not(:disabled){background:var(--surface-muted)}.quantity-control button:disabled{color:#c1c6cd;cursor:not-allowed}.quantity-control output{border-inline:1px solid var(--line);font-weight:650}.quantity-control small{color:var(--faint);font-size:11px}.primary-button{border:1px solid var(--accent);border-radius:var(--control-radius);background:var(--accent);color:#fff;cursor:pointer;font-weight:650;transition:background-color .15s,transform .15s,box-shadow .15s}.primary-button:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 8px 18px #da3e252e}.primary-button:active:not(:disabled){transform:translateY(1px)}.primary-button:disabled{cursor:not-allowed;opacity:.58}.generate-button{white-space:nowrap;justify-content:center;align-items:center;gap:9px;min-width:190px;height:46px;padding:0 18px;font-size:14px;display:flex}.generate-button svg{width:19px}.composer-error{color:#b62f20;background:#fff0ed;border-radius:8px;margin:-6px 20px 18px;padding:10px 12px;font-size:12px}.preset-panel{min-height:100%;overflow:hidden}.preset-heading>span{background:var(--surface-muted);min-height:26px;color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;padding:0 9px;font-size:11px;display:inline-flex}.preset-tabs{background:var(--surface-muted);border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;margin:0 20px 12px;padding:3px;display:grid}.preset-tabs button{min-height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:0 10px;font-size:12px;font-weight:600}.preset-tabs button.selected{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #2d333c17}.preset-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 20px 16px;display:grid}.preset-card{border:1px solid var(--line);background:var(--surface);border-radius:11px;min-width:0;transition:border-color .15s,transform .15s,box-shadow .15s;overflow:hidden}.preset-card:hover{border-color:#bcc1c9;transform:translateY(-1px)}.preset-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px #ef4d3217}.preset-select{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:block}.preset-image-wrap{aspect-ratio:3/2;background:#eceff3;width:100%;display:block;position:relative;overflow:hidden}.preset-image-wrap img{object-fit:cover;width:100%;height:100%;transition:transform .22s;display:block}.preset-card:hover .preset-image-wrap img{transform:scale(1.025)}.preset-check{color:#fff;background:#202329c7;border:1px solid #ffffffb8;border-radius:50%;place-items:center;width:27px;height:27px;font-size:16px;line-height:1;display:grid;position:absolute;bottom:8px;right:8px;box-shadow:0 3px 10px #00000029}.preset-card.selected .preset-check{background:var(--accent)}.recommended-badge{color:#b73521;background:#ffffffeb;border-radius:6px;align-items:center;min-height:24px;padding:0 8px;font-size:10px;font-weight:700;display:flex;position:absolute;top:8px;left:8px;box-shadow:0 2px 8px #00000017}.preset-copy{flex-direction:column;gap:5px;min-height:89px;padding:12px 12px 9px;display:flex}.preset-copy strong{color:var(--text);font-size:13px;line-height:1.3}.preset-copy>span{color:var(--muted);font-size:11px;line-height:1.5}.preset-card>a{border-top:1px solid var(--line);min-height:34px;color:var(--faint);align-items:center;margin:0 12px;font-size:10px;text-decoration:none;display:flex}.preset-card>a:hover{color:var(--accent)}.preset-selection-summary{flex-wrap:wrap;gap:6px;padding:0 20px 16px;display:flex}.preset-selection-summary span{background:var(--accent-soft);color:#b73521;border-radius:6px;padding:5px 8px;font-size:10px}.gallery{margin-top:30px}.section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:20px;min-height:62px;padding-bottom:12px;display:flex}.section-heading h2{letter-spacing:-.025em;margin:0;font-size:22px;line-height:1.2}.section-heading p{color:var(--muted);margin:5px 0 0;font-size:12px}.section-heading>span{color:var(--muted);white-space:nowrap;font-size:12px}.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:14px;margin-top:16px;display:grid}.gallery-item{border:1px solid var(--line);border-radius:var(--panel-radius);background:var(--surface);grid-template-rows:auto minmax(118px,1fr) 52px;min-width:0;height:100%;display:grid;overflow:hidden;box-shadow:0 8px 26px #3037420a}.gallery-item.status-generating,.gallery-item.status-uploading{border-color:#f2b4a9}.gallery-item.status-failed{border-color:#e4aaa3}.media-frame{aspect-ratio:4/3;border:0;border-bottom:1px solid var(--line);background:#eceff3;width:100%;position:relative;overflow:hidden}button.media-frame{cursor:zoom-in;padding:0}.image-mosaic{gap:2px;display:grid}.image-mosaic.count-1{grid-template-columns:1fr}.image-mosaic.count-2{grid-template-columns:repeat(2,1fr)}.image-mosaic.count-3,.image-mosaic.count-4{grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(2,1fr)}.image-mosaic.count-3 img:first-of-type{grid-row:1/3}.media-frame img{object-fit:cover;width:100%;min-width:0;height:100%;min-height:0;display:block}.preview-hint{color:#fff;opacity:0;background:#202329d1;border-radius:7px;align-items:center;min-height:28px;padding:0 9px;font-size:11px;transition:opacity .15s,transform .15s;display:flex;position:absolute;bottom:10px;right:10px;transform:translateY(4px)}.media-frame:hover .preview-hint,.media-frame:focus-visible .preview-hint{opacity:1;transform:translateY(0)}.more-images{color:#fff;background:#202329ad;place-items:center;width:50%;height:50%;font-size:23px;font-weight:650;display:grid;position:absolute;inset:auto 0 0 auto}.progress-state{color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:9px;display:flex}.progress-state>span{color:var(--muted);font-size:13px}.progress-state>strong{font-size:25px;font-weight:650;line-height:1}.progress-state>small{width:80%;color:var(--faint);text-align:center;font-size:11px;line-height:1.35}.status-failed .progress-state>strong{border:1px solid var(--danger);width:36px;height:36px;color:var(--danger);border-radius:50%;place-items:center;display:grid}.progress-track{background:#d9dde3;border-radius:2px;width:min(62%,180px);height:4px;overflow:hidden}.progress-track i{background:var(--accent);height:100%;transition:width .5s;display:block}.item-copy{min-width:0;padding:14px 14px 12px}.item-copy>p{color:#2c3036;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.45;display:-webkit-box;overflow:hidden}.job-preset-tags{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.job-preset-tags span{background:var(--accent-soft);color:#b73521;border-radius:5px;padding:3px 6px;font-size:10px;line-height:1.2}.item-meta{color:var(--faint);flex-wrap:wrap;gap:5px 10px;margin-top:9px;font-size:11px;display:flex}.status-text{margin-top:8px;font-size:12px;display:block}.status-text.completed{color:var(--success)}.status-text.failed{color:var(--danger)}.status-text.generating,.status-text.uploading{color:var(--accent)}.status-text.queued{color:#5e6e8b}.job-error{color:#b24a40;overflow-wrap:anywhere;margin-top:8px;font-size:11px;line-height:1.4}.item-action{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:16px;min-height:52px;padding:0 14px;display:flex}.item-action a,.item-action button{color:#454a52;cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;min-height:38px;padding:0;font-size:12px;text-decoration:none;display:flex}.item-action a:hover,.item-action button:hover{color:var(--accent)}.item-action svg{width:18px}.working-label{max-width:100%;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.empty-state{border-bottom:1px solid var(--line);min-height:260px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state p{color:#454a52;margin:0 0 7px;font-size:16px}.empty-state span{font-size:12px}.lightbox{z-index:100;background:#191d23c7;place-items:center;padding:3vh 3vw;display:grid;position:fixed;inset:0}.lightbox-panel{background:var(--surface);border-radius:16px;grid-template-rows:58px minmax(0,1fr) auto;width:min(1180px,94vw);height:min(900px,94dvh);display:grid;overflow:hidden;box-shadow:0 30px 90px #00000047}.lightbox-panel>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:0 18px;display:flex}.lightbox-panel>header>div{align-items:baseline;gap:10px;display:flex}.lightbox-panel>header strong{font-size:15px}.lightbox-panel>header span{color:var(--muted);font-size:12px}.lightbox-panel>header button,.lightbox-nav button{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:8px;min-height:38px;padding:0 12px;font-size:12px}.lightbox-panel>header button:hover,.lightbox-nav button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.lightbox-nav button:disabled{color:#b9bec6;cursor:not-allowed}.lightbox-stage{background:#eef0f3;place-items:center;min-height:0;padding:18px;display:grid}.lightbox-stage img{object-fit:contain;max-width:100%;max-height:100%;display:block;box-shadow:0 12px 35px #252b341f}.lightbox-panel>footer{border-top:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-height:76px;padding:10px 18px;display:grid}.lightbox-nav{gap:8px;display:flex}.lightbox-thumbnails{justify-content:center;gap:6px;min-width:0;padding:2px;display:flex;overflow-x:auto}.lightbox-thumbnails button{cursor:pointer;background:#e7eaee;border:2px solid #0000;border-radius:7px;flex:none;width:54px;height:42px;padding:0;overflow:hidden}.lightbox-thumbnails button.selected{border-color:var(--accent)}.lightbox-thumbnails img{object-fit:cover;width:100%;height:100%;display:block}.download-current{background:var(--accent);color:#fff;white-space:nowrap;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:0 14px;font-size:12px;text-decoration:none;display:flex}.download-current:hover{background:var(--accent-hover)}.download-current svg{width:18px}.login-page{place-items:center;min-height:100dvh;padding:28px;display:grid}.login-form{border:1px solid var(--line);border-radius:var(--panel-radius);background:var(--surface);width:min(100%,440px);padding:32px;box-shadow:0 18px 60px #30374214}.login-form h1{letter-spacing:-.04em;margin:34px 0 10px;font-size:30px;font-weight:680;line-height:1.15}.login-form>p{color:var(--muted);margin:0 0 30px;font-size:14px}.login-form label{color:#454a52;margin-bottom:8px;font-size:13px;font-weight:600;display:block}.login-form input{border:1px solid var(--line-strong);background:var(--surface);width:100%;height:48px;color:var(--text);border-radius:9px;outline:0;padding:0 13px;font-size:16px}.login-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #ef4d321a}.login-button{width:100%;height:48px;margin-top:16px;font-size:14px}.form-error{color:var(--danger);margin-top:10px;font-size:12px}.boot-screen{place-items:center;min-height:100dvh;display:grid}.boot-screen span{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.size-option:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}@media (width<=1120px){.creation-grid{grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr)}.size-options{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=840px){.header-inner,main{padding-inline:20px}.creation-grid{grid-template-columns:1fr}.preset-panel{grid-row:1}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.app-header{height:60px}.header-inner{padding-inline:16px}.wordmark{font-size:24px}.worker-state{border-right:0;padding:0 12px}.worker-state span{font-size:0}.worker-state span:after{content:"离线";font-size:13px}.worker-state.online span:after{content:"在线"}.queue-state{border-left:1px solid var(--line);padding:0 12px}.queue-state span{display:none}.logout-button{width:44px;min-width:44px;padding:0}.logout-button span{display:none}main{padding:16px 14px 50px}.creation-grid{gap:14px}.panel-heading{min-height:60px;padding:16px 14px 10px}.panel-heading h1,.panel-heading h2{font-size:20px}.prompt-field{margin-inline:14px}.prompt-field textarea{height:132px;min-height:120px;font-size:15px}.size-fieldset{margin:16px 14px 0}.size-options{grid-template-columns:repeat(2,minmax(0,1fr))}.size-option{min-height:58px}.composer-footer{flex-direction:column;align-items:stretch;padding:14px}.quantity-control{justify-content:space-between}.generate-button{width:100%;height:48px}.composer-error,.preset-tabs{margin-inline:14px}.preset-cards{scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 14px 14px;display:flex;overflow-x:auto}.preset-cards::-webkit-scrollbar{display:none}.preset-card{scroll-snap-align:start;flex:none;width:min(76vw,274px)}.preset-selection-summary{padding:0 14px 14px}.gallery{margin-top:26px}.section-heading{min-height:58px}.section-heading h2{font-size:21px}.section-heading p{display:none}.gallery-grid{grid-template-columns:1fr;gap:14px}.gallery-item{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) 74px}.media-frame{aspect-ratio:4/3;grid-column:1/-1}.item-copy{grid-column:1;min-height:110px;padding:13px}.item-action{border-top:0;border-left:1px solid var(--line);flex-direction:column;grid-area:2/2;justify-content:center;gap:3px;min-height:110px;padding:0 8px}.item-action a,.item-action button{text-align:center;justify-content:center;min-height:36px}.item-action svg{display:none}.preview-hint{opacity:1;transform:none}.lightbox{padding:0}.lightbox-panel{border-radius:0;grid-template-rows:56px minmax(0,1fr) auto;width:100%;height:100dvh}.lightbox-stage{padding:10px}.lightbox-panel>footer{grid-template-columns:1fr auto;padding:10px}.lightbox-nav{grid-column:1}.lightbox-thumbnails{grid-area:1/1/auto/-1;justify-content:flex-start}.download-current{grid-area:2/2}.login-page{padding:16px}.login-form{padding:24px 20px}.login-form h1{margin-top:28px;font-size:27px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
