:root{--color-bg: #f6f7f9;--color-surface: #ffffff;--color-surface-muted: #f1f5f9;--color-text: #111827;--color-muted: #667085;--color-border: #e4e7ec;--color-primary: #2563eb;--color-primary-soft: #eff6ff;--color-success: #16a34a;--color-success-soft: #ecfdf3;--color-warning: #d97706;--color-warning-soft: #fffaeb;--color-danger: #dc2626;--color-danger-soft: #fef3f2;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--sidebar-width: 256px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif;color:var(--color-text);background:var(--color-bg)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--color-bg)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.68}.appShell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) 1fr}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--color-border);background:var(--color-surface);padding:18px}.brandBlock{display:flex;align-items:center;gap:12px;margin-bottom:28px}.brandMark{width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;display:grid;place-items:center;font-weight:700}.brandTitle{font-size:16px;font-weight:700}.brandSub{color:var(--color-muted);font-size:12px;margin-top:2px}.navList{display:grid;gap:8px}.navItem{border:0;background:transparent;color:var(--color-muted);display:flex;align-items:center;gap:10px;width:100%;border-radius:var(--radius-md);padding:11px 12px;text-align:left}.navItem.active,.navItem:hover{background:var(--color-primary-soft);color:var(--color-primary)}.mainContent{min-width:0;padding:28px}.page{max-width:1180px;margin:0 auto}.pageHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.pageHeader h1,.summaryPanel h1{font-size:26px;line-height:1.2;margin:0}.pageHeader p,.summaryPanel p{color:var(--color-muted);margin:7px 0 0}.formPanel,.panel,.summaryPanel,.jobCard,.resultCard{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm)}.formPanel{display:grid;gap:18px;padding:20px}.fieldGroup{display:grid;gap:8px}.fieldGroup>span{font-size:14px;font-weight:650}input,select{min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 12px;background:var(--color-surface);color:var(--color-text);width:100%}input:focus,select:focus,button:focus-visible{outline:3px solid rgba(37,99,235,.18);outline-offset:2px}.segmentedGrid,.checkGrid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.choice{min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;overflow-wrap:anywhere}.choice.active{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft)}.primaryButton,.secondaryButton,.iconTextButton{min-height:44px;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;text-decoration:none;white-space:nowrap}.primaryButton{border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;font-weight:650}.secondaryButton,.iconTextButton{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.compact{width:fit-content}.toolbar{margin-bottom:16px}.searchBox{max-width:420px;display:flex;align-items:center;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:0 12px}.searchBox input{border:0;padding-left:0}.jobList{display:grid;gap:12px}.jobCard{width:100%;padding:16px;text-align:left}.jobTopLine,.detailHeader,.resultTitle,.panelTitle,.textBlockHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.jobTopLine strong{font-size:16px;overflow-wrap:anywhere}.jobMeta{display:flex;flex-wrap:wrap;gap:10px;color:var(--color-muted);font-size:13px;margin:8px 0 14px}.progressBlock{display:grid;gap:7px}.progressText{color:var(--color-muted);display:flex;justify-content:space-between;font-size:13px}.progressTrack{height:8px;border-radius:999px;position:relative;overflow:hidden;background:var(--color-surface-muted)}.progressDone,.progressFailed{position:absolute;top:0;bottom:0}.progressDone{left:0;background:var(--color-success)}.progressFailed{background:var(--color-danger)}.statusBadge{min-height:28px;display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:650;white-space:nowrap}.status-pending,.status-cancelled{color:var(--color-muted);background:var(--color-surface-muted)}.status-running,.status-selecting_product,.status-generating_prompt,.status-submitting_ai_task,.status-waiting_ai_result,.status-uploading,.status-generating_caption{color:var(--color-primary);background:var(--color-primary-soft)}.status-completed{color:var(--color-success);background:var(--color-success-soft)}.status-failed,.status-partial_failed{color:var(--color-danger);background:var(--color-danger-soft)}.detailHeader{margin-bottom:14px}.summaryPanel{display:grid;gap:16px;padding:18px;margin-bottom:18px}.resultGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.resultCard{overflow:hidden}.imageFrame{aspect-ratio:4 / 5;overflow:hidden;background:var(--color-surface-muted)}.imageFrame img{width:100%;height:100%;object-fit:cover;display:block}.imagePlaceholder{height:100%;display:grid;place-items:center;align-content:center;gap:8px;color:var(--color-muted)}.resultBody{padding:14px;display:grid;gap:12px}.captionBlocks{display:grid;gap:10px}.textBlock{background:var(--color-surface-muted);border-radius:var(--radius-md);padding:10px}.textBlockHead{margin-bottom:6px;font-size:13px;font-weight:650}.textBlockHead button{width:32px;height:32px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm)}.textBlock p{margin:0;color:var(--color-muted);font-size:13px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.cardActions{display:flex;flex-wrap:wrap;gap:8px}.errorText{color:var(--color-danger);background:var(--color-danger-soft);border-radius:var(--radius-md);padding:8px;margin:0;font-size:13px;overflow-wrap:anywhere}.settingsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.panel{padding:16px}.widePanel{grid-column:1 / -1}.panelTitle{justify-content:flex-start;margin-bottom:12px}.panelTitle h2{font-size:17px;margin:0}.settingRows,.modelList{display:grid;gap:10px;margin-bottom:14px}.settingRow{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--color-border)}.settingRow span,.mutedText,.modelRow span,.modelRow p{color:var(--color-muted)}.settingRow strong{text-align:right;overflow-wrap:anywhere}.modelRow{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px;display:grid;gap:5px}.modelRow span,.modelRow p{font-size:13px;margin:0;overflow-wrap:anywhere}.toastStack{position:fixed;right:18px;top:18px;z-index:50;display:grid;gap:10px;width:min(380px,calc(100vw - 32px))}.toast{min-height:44px;border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);background:var(--color-surface);display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:14px}.toast-success{color:var(--color-success)}.toast-error{color:var(--color-danger)}.toast-warning{color:var(--color-warning)}.toast-info{color:var(--color-primary)}.emptyState,.skeletonCard{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.emptyState{min-height:240px;display:grid;place-items:center;align-content:center;gap:12px;color:var(--color-muted);text-align:center;padding:24px}.cardGrid{display:grid;gap:12px}.skeletonCard{padding:16px;display:grid;gap:12px}.skeletonLine{height:14px;border-radius:999px;background:linear-gradient(90deg,#eef2f7,#f8fafc,#eef2f7)}.skeletonLine.wide{width:72%}.skeletonLine.short{width:36%}.spin{animation:spin .8s linear infinite}.mobileNav{display:none}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 860px){.appShell{display:block}.sidebar{display:none}.mainContent{padding:18px 14px 86px}.pageHeader{display:grid}.pageHeader h1,.summaryPanel h1{font-size:22px}.settingsGrid,.resultGrid{grid-template-columns:1fr}.mobileNav{position:fixed;left:0;right:0;bottom:0;z-index:10;height:64px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--color-border);background:#fffffff5}.mobileNav button{border:0;background:transparent;color:var(--color-muted);display:grid;place-items:center;align-content:center;gap:2px;font-size:12px}.mobileNav button.active{color:var(--color-primary)}.toastStack{top:auto;bottom:78px;left:12px;right:12px;width:auto}.jobTopLine,.resultTitle{align-items:flex-start;flex-direction:column}}@media (max-width: 520px){.segmentedGrid,.checkGrid{grid-template-columns:1fr}.formPanel,.panel,.summaryPanel{padding:14px}.detailHeader{display:grid;grid-template-columns:1fr 1fr}.primaryButton,.secondaryButton,.iconTextButton{width:100%}}
