:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;--background:#090b0c;--surface:#111416;--surface-raised:#15181a;--text:#f2f0eb;--muted:#989a98;--faint:#666966;--line:#3b3e3d;--line-soft:#242726;--accent:#ff3b25;--accent-hover:#ff503d;--success:#65d27a;--danger:#ff4d39;--radius:8px;background:var(--background);color:var(--text);font-family:Inter,SF Pro Text,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--background)}body{background:var(--background);min-width:320px;min-height:100vh;margin:0}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:100vh}.app-header{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;height:68px;padding:0 clamp(24px,3.1vw,48px);display:flex}.wordmark{color:var(--text);letter-spacing:-.06em;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:27px;font-weight:650;line-height:1;text-decoration:none}.header-actions{align-items:stretch;height:100%;display:flex}.worker-state{border-right:1px solid var(--line-soft);color:var(--muted);align-items:center;gap:9px;padding:0 26px;font-size:13px;display:flex}.worker-state i{background:var(--danger);border-radius:50%;width:8px;height:8px}.worker-state.online i{background:var(--success)}.worker-state.online span{color:#b7d8bd}.logout-button{cursor:pointer;color:#d7d5d0;background:0 0;border:0;align-items:center;gap:10px;padding:0 0 0 26px;font-size:13px;display:flex}.logout-button:hover{color:#fff}.logout-button svg{width:21px}main{padding:32px clamp(24px,3.1vw,48px) 72px}.composer{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.composer textarea{resize:vertical;width:100%;height:226px;min-height:222px;color:var(--text);letter-spacing:-.035em;background:0 0;border:0;outline:none;padding:38px 30px;font-size:clamp(29px,3.2vw,50px);font-weight:380;line-height:1.26;display:block}.composer textarea::placeholder{color:#979997;opacity:.86}.composer textarea:focus-visible{box-shadow:inset 0 0 0 1px var(--accent)}.composer-controls{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:24px;min-height:96px;padding:18px 22px 18px 30px;display:flex}.ratio-fieldset{border:0;align-items:center;gap:25px;margin:0;padding:0;display:flex}.ratio-fieldset legend{float:left;color:#d7d4ce;margin-right:4px;font-size:13px;line-height:58px}.ratio-options{gap:14px;display:flex}.ratio-option{border:1px solid var(--line);color:#cfcdc7;cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:12px;min-width:126px;height:58px;padding:0 22px;font-size:14px;transition:border-color .15s,color .15s,background .15s;display:flex}.ratio-option:hover{border-color:#6a6d69}.ratio-option.selected{color:var(--accent);border-color:var(--accent);background:#1a1210}.ratio-option input{opacity:0;pointer-events:none;position:absolute}.ratio-option svg{width:25px;height:25px}.primary-button{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:5px;font-weight:650;transition:background .15s,transform .15s}.primary-button:hover:not(:disabled){background:var(--accent-hover)}.primary-button:active:not(:disabled){transform:translateY(1px)}.primary-button:disabled{cursor:wait;opacity:.6}.generate-button{justify-content:center;align-items:center;gap:12px;width:258px;height:60px;font-size:17px;display:flex}.generate-button svg{width:23px}.composer-error{color:#ff8a79;border-top:1px solid #51251f;padding:12px 30px;font-size:13px}.gallery{margin-top:34px}.section-heading{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:flex-start;min-height:50px;display:flex}.section-heading h2{letter-spacing:-.025em;margin:0;font-size:23px;line-height:1.2}.section-heading span{color:var(--faint);font-size:12px}.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:22px;margin-top:24px;display:grid}.gallery-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:0;overflow:hidden}.gallery-item.status-generating,.gallery-item.status-uploading,.gallery-item.status-failed{border-color:#783327}.media-frame{aspect-ratio:1;background:#101315;position:relative;overflow:hidden}.media-frame.ratio-landscape{aspect-ratio:16/10}.media-frame.ratio-portrait{aspect-ratio:4/5}.media-frame img{object-fit:cover;width:100%;height:100%;display:block}.progress-state{color:#e4e1db;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.progress-state>span{color:var(--muted);font-size:14px}.progress-state>strong{font-size:24px;font-weight:450}.status-failed .progress-state>strong{width:34px;height:34px;color:var(--danger);border:1px solid var(--danger);border-radius:50%;place-items:center;display:grid}.progress-track{background:#3b3e40;border-radius:2px;width:min(64%,210px);height:4px;overflow:hidden}.progress-track i{background:var(--accent);height:100%;transition:width .5s;display:block}.item-copy{min-height:112px;padding:18px 18px 15px}.item-copy p{color:#ece9e3;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:42px;margin:0;font-size:15px;line-height:1.45;display:-webkit-box;overflow:hidden}.item-meta{color:var(--muted);gap:12px;margin-top:11px;font-size:12px;display:flex}.item-meta time:after{content:"·";color:#555957;margin-left:12px}.status-text.completed{color:var(--success)}.status-text.failed{color:var(--danger)}.status-text.generating,.status-text.uploading{color:#ff7a68}.job-error{color:#d7887d;overflow-wrap:anywhere;margin-top:10px;font-size:11px;line-height:1.4}.item-action{border-top:1px solid var(--line);justify-content:center;align-items:center;min-height:61px;margin:0 18px;display:flex}.item-action a,.item-action button{color:#e4e1db;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;font-size:13px;text-decoration:none;display:flex}.item-action a:hover,.item-action button:hover{color:#fff}.item-action svg{width:20px}.working-label{color:var(--muted);font-size:12px}.empty-state{min-height:280px;color:var(--muted);border-bottom:1px solid var(--line-soft);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state p{color:#d6d4ce;margin:0 0 8px;font-size:18px}.empty-state span{font-size:13px}.login-page{place-items:center;min-height:100vh;padding:28px;display:grid}.login-form{border-top:1px solid var(--line);width:min(100%,540px);padding-top:28px}.login-form h1{letter-spacing:-.055em;margin:64px 0 16px;font-size:clamp(38px,7vw,62px);font-weight:470;line-height:1.02}.login-form>p{color:var(--muted);margin:0 0 52px;font-size:15px}.login-form label{color:#c5c3be;margin-bottom:10px;font-size:13px;display:block}.login-form input{border:1px solid var(--line);background:var(--surface);width:100%;height:58px;color:var(--text);border-radius:4px;outline:0;padding:0 16px;font-size:18px}.login-form input:focus{border-color:var(--accent)}.login-button{width:100%;height:58px;margin-top:18px;font-size:16px}.form-error{color:#ff8a79;margin-top:12px;font-size:13px}.boot-screen{place-items:center;min-height:100vh;display:grid}.boot-screen span{border:1px 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-offset:3px;outline:2px solid #f3b6ad}.ratio-option:has(input:focus-visible){outline-offset:3px;outline:2px solid #f3b6ad}@media (width<=1120px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.composer-controls{align-items:flex-end}.ratio-fieldset{flex-direction:column;align-items:flex-start;gap:8px}.ratio-fieldset legend{line-height:1.2}}@media (width<=680px){.app-header{height:78px;padding:0 18px}.wordmark{font-size:25px}.worker-state{border:0;padding:0 15px 0 0}.worker-state span{font-size:0}.worker-state span:after{content:"在线";font-size:14px}.worker-state.offline span:after{content:"离线"}.logout-button{justify-content:flex-end;width:44px;height:44px;padding:0}.logout-button span{display:none}main{padding:24px 18px 56px}.composer textarea{height:250px;min-height:250px;padding:24px 22px;font-size:25px;line-height:1.32}.composer-controls{border-top:1px solid var(--line-soft);padding:18px;display:block}.ratio-fieldset{display:block}.ratio-fieldset legend{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.ratio-options{gap:9px;width:100%}.ratio-option{flex:1;gap:5px;min-width:0;height:64px;padding:0 5px;font-size:13px}.ratio-option span{white-space:nowrap}.ratio-option svg{flex:none;width:20px}.generate-button{width:100%;height:62px;margin-top:14px}.composer-error{padding:12px 18px}.gallery{margin-top:44px}.section-heading{min-height:47px}.section-heading h2{font-size:26px}.gallery-grid{grid-template-columns:1fr;gap:20px}.gallery-item{grid-template-columns:1fr 62px;display:grid}.media-frame,.media-frame.ratio-landscape,.media-frame.ratio-portrait{aspect-ratio:16/8.5;grid-column:1/-1}.item-copy{grid-column:1;min-width:0;min-height:98px;padding:16px 14px 14px}.item-copy p{-webkit-line-clamp:1;min-height:23px;font-size:15px}.item-action{border-top:0;border-left:1px solid var(--line);grid-area:2/2;min-height:98px;margin:0}.item-action span{display:none}.item-action .working-label{border:1px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;padding:0;font-size:0;animation:.9s linear infinite spin;display:block}.empty-state{min-height:220px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
