*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f0f2f5;--card:#fff;--primary:#1677ff;--primary-light:#e6f4ff;--text:#1a1a1a;--text-secondary:#666;--border:#e8e8e8;--radius:12px;--shadow:0 2px 8px #0000000f;--header-h:52px;--tab-h:60px}html,body,#root{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.app{flex-direction:column;max-width:500px;height:100%;margin:0 auto;display:flex}.header{height:var(--header-h);color:#fff;background:linear-gradient(135deg,#1677ff 0%,#69b1ff 100%);flex-shrink:0;align-items:center;padding:0 16px;display:flex}.header h1{letter-spacing:.5px;font-size:18px;font-weight:600}.main{padding:12px 12px calc(var(--tab-h) + 12px);-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.tab-bar{height:var(--tab-h);border-top:1px solid var(--border);background:var(--card);padding-bottom:env(safe-area-inset-bottom,0);flex-shrink:0;display:flex}.tab-item{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:11px;transition:color .2s;display:flex;position:relative}.tab-item.active{color:var(--primary)}.tab-icon{font-size:22px}.tab-dot{background:#ff4d4f;border-radius:50%;width:6px;height:6px;position:absolute;top:8px;right:calc(50% - 20px)}.submit-page{flex-direction:column;gap:12px;display:flex}.section-title{color:var(--text-secondary);padding-left:4px;font-size:14px;font-weight:600}.type-pills{flex-wrap:wrap;gap:8px;display:flex}.type-pill{border:1.5px solid var(--border);border-radius:var(--radius);background:var(--card);cursor:pointer;white-space:nowrap;flex:1;min-width:0;padding:10px 6px;font-size:13px;font-weight:500;transition:all .2s}.type-pill.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary)}.prompt-input{border:1.5px solid var(--border);border-radius:var(--radius);resize:vertical;width:100%;padding:12px;font-family:inherit;font-size:15px;line-height:1.6;transition:border-color .2s}.prompt-input:focus{border-color:var(--primary);outline:none}.xianxia-select{border:1.5px solid var(--primary);border-radius:var(--radius);background:var(--primary-light);width:100%;color:var(--text);cursor:pointer;appearance:auto;padding:10px 12px;font-family:inherit;font-size:14px}.xianxia-select:focus{border-color:var(--primary);outline:none}.url-input{border:1.5px solid var(--border);border-radius:var(--radius);width:100%;padding:10px 12px;font-size:14px;transition:border-color .2s}.url-input:focus{border-color:var(--primary);outline:none}.message{border-radius:var(--radius);padding:10px 14px;font-size:14px;font-weight:500}.message.success{color:#389e0d;background:#f6ffed}.message.error{color:#cf1322;background:#fff2f0}.message.info{background:var(--primary-light);color:var(--primary)}.submit-btn{border-radius:var(--radius);color:#fff;cursor:pointer;-webkit-appearance:none;background:linear-gradient(135deg,#1677ff 0%,#69b1ff 100%);border:none;width:100%;padding:14px;font-size:17px;font-weight:600;transition:opacity .2s,transform .1s}.submit-btn:active{transform:scale(.98)}.submit-btn:disabled{opacity:.6}.queue-page{flex-direction:column;gap:12px;display:flex}.stats-row{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.stat-card{background:var(--card);border-radius:var(--radius);text-align:center;border-top:3px solid var(--border);box-shadow:var(--shadow);padding:12px 4px}.stat-num{color:var(--text);font-size:22px;font-weight:700}.stat-label{color:var(--text-secondary);margin-top:2px;font-size:11px}.progress-bar-wrap{background:#e8e8e8;border-radius:3px;height:6px;overflow:hidden}.progress-bar{background:linear-gradient(90deg,#1677ff,#52c41a);border-radius:3px;height:100%;transition:width .5s}.job-list{flex-direction:column;gap:8px;display:flex}.empty{text-align:center;color:var(--text-secondary);padding:32px 16px;font-size:15px}.job-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;padding:12px 14px;transition:transform .15s}.job-card:active{transform:scale(.99)}.job-card-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.job-type-badge{color:var(--text-secondary);font-size:12px}.job-status-badge{color:#fff;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500}.job-card-prompt{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}.job-card-time{color:#999;margin-top:6px;font-size:11px}.job-detail{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.detail-fail{color:#cf1322;background:#fff2f0;border-radius:8px;padding:8px 12px;font-size:13px}.detail-media{margin-top:8px}.detail-label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:600}.detail-media img,.detail-media video{object-fit:contain;background:#000;border-radius:8px;width:100%;max-height:300px}.detail-polling{color:var(--primary);background:var(--primary-light);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding:10px;font-size:13px;display:flex}.manual-query-btn{white-space:nowrap;color:#fff;cursor:pointer;background:#1677ff;border:none;border-radius:6px;flex:none;padding:6px 12px;font-size:12px;font-weight:500;transition:opacity .2s}.manual-query-btn:disabled{opacity:.5;cursor:not-allowed}.main::-webkit-scrollbar{width:0}.detail-retry{flex-direction:column;gap:8px;margin-top:8px;display:flex}.retry-edit{border:1.5px solid var(--border);resize:vertical;border-radius:8px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color .2s}.retry-edit:focus{border-color:var(--primary);outline:none}.retry-url{padding:8px 12px;font-size:13px}.retry-actions{gap:8px;display:flex}.retry-btn{cursor:pointer;-webkit-appearance:none;border:none;border-radius:8px;flex:1;padding:10px 8px;font-size:13px;font-weight:600;transition:opacity .2s,transform .1s}.retry-btn:active{transform:scale(.97)}.retry-btn:disabled{opacity:.5;cursor:not-allowed}.retry-overwrite{background:var(--primary);color:#fff}.retry-new{color:#fff;background:#52c41a}.retry-delete{color:#ff4d4f;background:#fff;border:1.5px solid #ffccc7}.image-count-row{justify-content:space-between;align-items:center;display:flex}.count-controls{align-items:center;gap:12px;display:flex}.count-btn{border:1.5px solid var(--border);background:var(--card);cursor:pointer;width:36px;height:36px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;font-size:18px;font-weight:600;transition:all .15s;display:flex}.count-btn:active{background:var(--primary-light);border-color:var(--primary)}.count-num{text-align:center;min-width:24px;color:var(--text);font-size:18px;font-weight:700}.pose-section{margin-bottom:16px}.pose-grid{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.pose-chip{border:1.5px solid var(--border);background:var(--card);cursor:pointer;color:var(--text-secondary);white-space:nowrap;border-radius:20px;padding:6px 12px;font-size:13px;transition:all .15s}.pose-chip:hover{border-color:var(--primary);color:var(--primary)}.pose-chip.pose-selected{background:var(--primary-light);border-color:var(--primary);color:var(--primary);font-weight:600}.image-gallery{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.image-gallery img{aspect-ratio:1;object-fit:cover;background:#000;border-radius:6px;width:100%}.lightbox{z-index:9999;cursor:pointer;background:#000000e6;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;cursor:default;border-radius:4px;max-width:95vw;max-height:95vh}.lightbox-close{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;cursor:pointer;z-index:1;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;transition:background .2s;display:flex;position:absolute;top:16px;right:16px}.lightbox-close:hover{background:#ffffff4d}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
