:root{--bg:#0f1115;--bg-soft:#151920;--card:#1a1f28;--card-hover:#20262f;--border:#2a313d;--border-strong:#3a4350;--text:#e8eaf0;--text-2:#b8c0d0;--muted:#8a91a0;--brand:#d8a34a;--brand-hover:#c9923a;--brand-soft:#d8a34a29;--brand-border:#d8a34a73;--brand-ink:#171006;--accent:#4f8cff;--accent-soft:#4f8cff29;--accent-border:#4f8cff66;--ok:#3ecf8e;--ok-soft:#3ecf8e33;--ok-border:#3ecf8e66;--danger:#ff5d5d;--danger-soft:#ff5d5d29;--danger-border:#ff5d5d66;--warn:#ff9f0a;--warn-soft:#ff9f0a29;--warn-border:#ff9f0a73;--radius-s:8px;--radius:12px;--radius-l:16px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-6:24px;--s-8:32px;--fs-11:11px;--fs-12:12px;--fs-13:13px;--fs-15:15px;--fs-17:17px;--fs-20:20px}.icon{vertical-align:-2px;flex-shrink:0}button .icon,a .icon,.pill .icon,.badge .icon{vertical-align:-2px}.icon-spin{animation:.8s linear infinite icon-spin}@keyframes icon-spin{to{transform:rotate(360deg)}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Segoe UI,Microsoft YaHei,sans-serif;font-size:var(--fs-13);margin:0;padding:0}#root{min-height:100vh}button,a.ghost,a.primary{font:inherit;color:inherit;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-s);cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:7px 14px;text-decoration:none;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}button:hover:not(:disabled),a.ghost:hover,a.primary:hover{background:var(--card-hover);border-color:var(--border-strong)}button:disabled{opacity:.45;cursor:not-allowed}button.primary,a.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}button.primary:hover:not(:disabled),a.primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}button.ghost,a.ghost{background:0 0}input[type=text],textarea,select{font:inherit;color:var(--text);background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius-s);outline:none;width:100%;padding:8px 10px}input[type=text]:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:64px}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;background:#0f1115eb;align-items:center;gap:12px;padding:14px 24px;display:flex;position:sticky;top:0}.topbar .logo{font-size:var(--fs-17);letter-spacing:1px;font-weight:700}.topbar .spacer{flex:1}.crumb{color:var(--muted);font-size:var(--fs-13)}.subheader{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;padding:10px 16px;display:flex}.topbar-avatar{object-fit:cover;border-radius:8px;flex-shrink:0;width:40px;height:40px}.notice-line{color:var(--ok);font-size:var(--fs-13);margin:0 0 12px}.error-bar{color:#ffb4b4;z-index:100;width:max-content;max-width:640px;font-size:var(--fs-13);background:#3a1a1e;border:1px solid #6b2b32;border-radius:10px;align-items:center;gap:6px;padding:10px 18px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000080}.page{max-width:1400px;margin:0 auto;padding:20px 24px 60px}.page-title{font-size:var(--fs-20);margin:4px 0 16px;font-weight:700}.muted{color:var(--muted)}.spin{border:2px solid var(--muted);vertical-align:-2px;border-top-color:#0000;border-radius:50%;width:14px;height:14px;margin-right:6px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.profiles-layout{align-items:flex-start;gap:20px;display:flex}.profile-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.person-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:12px;padding:16px;transition:border-color .15s,transform .15s;display:flex}.person-card.clickable{cursor:pointer}.person-card.clickable:hover{border-color:var(--accent);transform:translateY(-2px)}.avatar{aspect-ratio:3/4;object-fit:cover;background:var(--bg-soft);border-radius:10px;width:100%}.avatar-fallback{aspect-ratio:3/4;background:var(--bg-soft);border:1px dashed var(--border);width:100%;color:var(--muted);border-radius:10px;justify-content:center;align-items:center;display:flex}.person-name{font-size:var(--fs-15);font-weight:600}.person-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.person-actions{justify-content:flex-end;display:flex}button.danger{color:var(--danger);border-color:var(--danger-border)}button.danger:hover:not(:disabled){border-color:var(--danger)}button.danger.armed{background:var(--danger);border-color:var(--danger);color:#fff}button.danger.armed:hover:not(:disabled){background:#e64f4f;border-color:#e64f4f}button.neutral-armed{border-color:var(--border-strong);color:var(--text-2);background:#8a91a047}.pill{font-size:var(--fs-12);border:1px solid var(--border);color:var(--muted);background:var(--bg-soft);border-radius:999px;padding:2px 9px}.pill.ok{color:var(--ok);border-color:var(--ok-border)}.pill.busy{color:var(--accent);border-color:var(--accent-border)}.pill.bad{color:var(--danger);border-color:var(--danger-border)}.new-profile{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;flex-shrink:0;gap:10px;width:320px;padding:16px;display:flex;position:sticky;top:76px}.new-profile h3{font-size:var(--fs-15);margin:0 0 2px}.file-label{border:1px dashed var(--border);text-align:center;color:var(--muted);cursor:pointer;border-radius:8px;padding:14px;display:block}.file-label:hover{border-color:var(--accent);color:var(--text)}.upload-previews{flex-wrap:wrap;gap:8px;display:flex}.upload-previews img{object-fit:cover;border-radius:8px;width:56px;height:56px}.progress-line{font-size:var(--fs-13);color:var(--accent)}.workspace-layout{align-items:flex-start;gap:20px;display:flex}.wall-col{flex:1;min-width:0}.side-col{flex-direction:column;flex-shrink:0;gap:16px;width:340px;display:flex;position:sticky;top:76px}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.panel h3{font-size:var(--fs-15);margin:0 0 10px}.scene-list{flex-direction:column;gap:10px;max-height:420px;display:flex;overflow-y:auto}.scene-item{align-items:flex-start;gap:10px;display:flex}.scene-thumb{object-fit:cover;background:var(--bg-soft);border-radius:8px;flex-shrink:0;width:72px;height:72px}.scene-item .body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.scene-item .name{font-size:var(--fs-13);font-weight:600}.scene-item textarea{min-height:52px;font-size:var(--fs-12)}.row-actions{justify-content:flex-end;gap:8px;display:flex}.checkbox-row{font-size:var(--fs-13);cursor:pointer;align-items:center;gap:8px;padding:3px 0;display:flex}.checkbox-row input{accent-color:var(--accent)}.wall-group{margin-bottom:26px}.wall-group>h4{font-size:var(--fs-13);color:var(--muted);margin:0 0 10px;font-weight:600}.thumb-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;display:grid}.thumb-card{border:1px solid var(--border);cursor:pointer;background:var(--bg-soft);border-radius:10px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.thumb-card img{aspect-ratio:3/4;object-fit:cover;width:100%;display:block}.thumb-card:hover{border-color:var(--accent)}.badge{color:#dce3f2;font-size:var(--fs-11);background:#000000b8;border:1px solid #ffffff24;border-radius:999px;padding:2px 8px;position:absolute;bottom:6px;right:6px}.iterate-layout{flex-direction:column;gap:18px;display:flex}.iterate-main{align-items:flex-start;gap:20px;display:flex}.big-image-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);flex:1;justify-content:center;min-width:0;padding:12px;display:flex}.big-image-wrap img{object-fit:contain;border-radius:8px;max-width:100%;max-height:68vh}.iterate-side{flex-direction:column;flex-shrink:0;gap:14px;width:380px;display:flex}.radio-row{font-size:var(--fs-13);flex-wrap:wrap;gap:14px;display:flex}.radio-row label{cursor:pointer;align-items:center;gap:5px;display:flex}.radio-row input{accent-color:var(--accent)}.field{flex-direction:column;gap:6px;display:flex}.field>span.label{font-size:var(--fs-12);color:var(--muted)}.chain-strip{gap:10px;padding:4px 2px;display:flex;overflow-x:auto}.chain-item{border:2px solid var(--border);background:var(--bg-soft);border-radius:8px;flex-shrink:0;width:96px;padding:0;overflow:hidden}.chain-item img{aspect-ratio:3/4;object-fit:cover;width:100%;display:block}.chain-item.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.chain-item:hover:not(.active){border-color:var(--border-strong)}.chain-meta{font-size:var(--fs-11);color:var(--muted);padding:4px 2px}.empty-hint{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--muted);padding:30px}.live-debug{gap:14px;max-width:960px;margin:0 auto;display:grid}.live-debug .panel{background:var(--card);border:1px solid var(--border);border-radius:12px;gap:10px;padding:14px 16px;display:grid}.live-debug h2{font-size:var(--fs-15);color:var(--brand);margin:0}.live-debug .path-input{box-sizing:border-box;border:1px solid var(--border);background:var(--bg-soft);width:100%;color:var(--text);font-size:var(--fs-13);border-radius:8px;padding:8px 10px}.live-debug .live-preview{border-radius:8px;max-width:320px}.live-debug .prompt-tools{flex-wrap:wrap;gap:8px;display:flex}.live-debug .prompt-tools select,.live-debug .prompt-tools button{border:1px solid var(--border);background:var(--bg-soft);color:var(--text);font-size:var(--fs-12);border-radius:8px;padding:6px 10px}.live-debug textarea{box-sizing:border-box;border:1px solid var(--border);background:var(--card);width:100%;color:var(--text);font-size:var(--fs-13);resize:vertical;border-radius:8px;padding:10px 12px;line-height:1.6}.live-debug .preset-save{gap:8px;display:flex}.live-debug .preset-save input{border:1px solid var(--border);background:var(--bg-soft);color:var(--text);font-size:var(--fs-12);border-radius:8px;flex:1;padding:6px 10px}.live-debug .preset-save button{border:1px solid var(--border);background:var(--bg-soft);color:var(--text);font-size:var(--fs-12);border-radius:8px;padding:6px 12px}.live-debug .preset-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.live-debug .preset-list li{gap:4px;display:flex}.live-debug .preset-list button{border:1px solid var(--border);background:var(--bg-soft);color:var(--text);font-size:var(--fs-11);border-radius:999px;padding:4px 10px}.live-debug .params{gap:16px;display:flex}.live-debug .params label{font-size:var(--fs-13);color:var(--muted);align-items:center;gap:6px;display:flex}.live-debug .params select{border:1px solid var(--border);background:var(--bg-soft);color:var(--text);font-size:var(--fs-12);border-radius:8px;padding:6px 10px}.live-debug .primary{background:var(--brand);color:var(--brand-ink);font-size:var(--fs-15);border:none;border-radius:10px;width:fit-content;padding:10px 18px;font-weight:600}.live-debug .primary:disabled{opacity:.5}.live-debug .hint{font-size:var(--fs-12);color:var(--muted);margin:0}.live-debug .error-text{color:var(--danger);font-size:var(--fs-12);margin:0}.live-debug .empty{color:var(--muted);font-size:var(--fs-13)}.live-debug .result{gap:10px;display:grid}.live-debug .result img,.live-debug .result video{border-radius:10px;max-width:360px}.live-debug .downloads{gap:12px;display:flex}.live-debug .downloads a{color:var(--accent);font-size:var(--fs-12)}.live-debug .live-history{gap:12px;margin:0;padding:0;list-style:none;display:grid}.live-debug .live-history li{border:1px solid var(--border);border-radius:10px;gap:8px;padding:10px 12px;display:grid}.live-debug .live-history li.active{border-color:var(--brand)}.live-debug .job-head{font-size:var(--fs-12);align-items:center;gap:10px;display:flex}.live-debug .job-head .status-done{color:var(--ok)}.live-debug .job-head .status-running{color:var(--accent)}.live-debug .job-head .status-failed{color:var(--danger)}.live-debug .job-head .recipe{color:var(--muted)}.live-debug .job-head button{border:1px solid var(--border);background:var(--bg-soft);color:var(--text);font-size:var(--fs-11);border-radius:8px;margin-left:auto;padding:4px 10px}.live-debug .job-prompt{font-size:var(--fs-12);color:var(--muted);white-space:pre-wrap;word-break:break-all;margin:0;line-height:1.6}.live-debug .job-media{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.live-debug .job-media img,.live-debug .job-media video{border-radius:8px;width:160px}.live-debug .job-media a{color:var(--accent);font-size:var(--fs-11)}.ghost.is-active{color:var(--brand)}.scene-debug{gap:16px;display:grid}.scene-debug .panel{background:var(--card);border:1px solid var(--border);border-radius:12px;gap:10px;padding:14px 16px;display:grid}.scene-debug .panel h3{font-size:var(--fs-15);margin:0}.scene-debug .muted{color:var(--muted);font-size:var(--fs-12)}.scene-hero{align-items:flex-start;gap:16px;display:flex}.scene-base-big{border:1px solid var(--border);background:var(--bg-soft);object-fit:cover;border-radius:10px;flex-shrink:0;width:320px;max-width:42%}.scene-meta{flex:1;justify-items:start;gap:8px;min-width:0;display:grid}.scene-name{font-size:var(--fs-17);cursor:pointer;border-bottom:1px dashed var(--border);font-weight:700}.prompt-editor{box-sizing:border-box;background:var(--bg-soft);border:1px solid var(--border);width:100%;min-height:96px;color:var(--text);line-height:1.6}.prompt-bar{justify-content:flex-end;align-items:center;gap:10px;display:flex}.saved-tip{color:var(--ok);font-size:var(--fs-12)}.gen-bar{flex-wrap:wrap;align-items:flex-end;gap:18px;display:flex}.gen-bar .field select{width:auto;min-width:90px}.gen-bar .direction-field{flex:1;min-width:220px}.gen-button{min-width:120px}.job-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.job-row{border:1px solid var(--border);background:var(--bg-soft);border-radius:10px;gap:8px;padding:10px 12px;display:grid}.job-head{font-size:var(--fs-12);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.job-head .spacer{flex:1}.job-head .ghost{font-size:var(--fs-12);padding:4px 10px}.job-meta{color:var(--muted)}.job-direction{white-space:normal;overflow-wrap:anywhere;flex:auto;min-width:0}.job-status{font-size:var(--fs-12);border:1px solid var(--border);color:var(--muted);background:var(--card);border-radius:999px;padding:2px 9px}.job-status.running{color:var(--brand);border-color:var(--brand-border);animation:1.2s ease-in-out infinite job-pulse}.job-status.done{color:var(--ok);border-color:var(--ok-border)}.job-status.failed{color:var(--danger);border-color:var(--danger-border)}@keyframes job-pulse{50%{opacity:.45}}.job-error{color:var(--danger);font-size:var(--fs-12);margin:0}.hist-item{gap:4px;min-width:0;display:grid}.hist-file{font-size:var(--fs-11);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scene-debug-link{font-size:var(--fs-12);padding:4px 10px}.sg-layout{align-items:flex-start;gap:20px;display:flex}.sg-sidebar{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-shrink:0;gap:10px;width:250px;padding:14px;display:grid;position:sticky;top:76px}.sg-sidebar h3{font-size:var(--fs-15);color:var(--text);margin:0}.sg-group-list{gap:4px;max-height:52vh;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.sg-group-item{width:100%;color:var(--text);text-align:left;font-size:var(--fs-13);background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex}.sg-group-item:hover{background:var(--bg-soft)}.sg-group-item.is-active{background:var(--accent-soft);border-color:var(--accent)}.sg-group-item .sg-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sg-count{font-size:var(--fs-12);color:var(--muted)}.sg-new-group{gap:8px;display:flex}.sg-new-group input{flex:1;min-width:0}.sg-main{flex:1;gap:16px;min-width:0;display:grid}.sg-head{gap:12px;display:grid}.sg-head-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sg-head .spacer{flex:1}.sg-title{font-size:var(--fs-17);align-items:baseline;gap:8px;margin:0;display:flex}.sg-rename-row{gap:8px;max-width:460px;display:flex}.sg-gen-bar{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:14px;padding-top:12px;display:flex}.sg-gen-bar>.label{font-size:var(--fs-12);color:var(--muted)}.sg-gen-bar select{width:auto;min-width:160px}.sg-upload{gap:10px;display:grid}.sg-upload-list{gap:8px;display:grid}.sg-upload-item{border:1px solid var(--border);background:var(--bg-soft);border-radius:8px;align-items:center;gap:10px;padding:8px;display:flex}.sg-upload-item img{object-fit:cover;border-radius:6px;flex-shrink:0;width:44px;height:44px}.sg-upload-bad{border:1px dashed var(--danger);width:44px;height:44px;color:var(--danger);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sg-upload-meta{flex:1;gap:4px;min-width:0;display:grid}.sg-upload-meta .file-name{font-size:var(--fs-12);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sg-upload-meta .error-text{color:var(--danger);font-size:var(--fs-12)}.sg-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.sg-card{background:var(--card);border:1px solid var(--border);border-radius:12px;align-content:start;display:grid;overflow:hidden}.sg-card>img{aspect-ratio:3/4;object-fit:cover;background:var(--bg-soft);width:100%;display:block}.sg-card-body{gap:8px;padding:10px 12px 12px;display:grid}.sg-card-name{font-size:var(--fs-13);cursor:pointer;border-bottom:1px dashed var(--border);text-overflow:ellipsis;white-space:nowrap;width:fit-content;max-width:100%;font-weight:600;overflow:hidden}.sg-card textarea{min-height:56px;font-size:var(--fs-12)}.sg-card select{font-size:var(--fs-12)}.sg-card-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.sg-card-actions .primary,.sg-card-actions .ghost{font-size:var(--fs-12);padding:5px 10px}.delete-confirm{align-items:center;gap:6px;display:inline-flex}.delete-confirm .hint{font-size:var(--fs-12);color:var(--muted)}.lightbox{z-index:60;background:#000000b8;justify-content:center;align-items:center;padding:32px;display:flex;position:fixed;inset:0}.lightbox-body{background:var(--card);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:10px;max-width:min(920px,92vw);max-height:90vh;padding:18px;display:flex;overflow:auto}.lightbox-body img{object-fit:contain;border-radius:10px;width:100%;max-height:60vh}.lightbox-meta{font-size:var(--fs-12);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.lightbox-file{overflow-wrap:anywhere}.lightbox-prompt{font-size:var(--fs-12);color:var(--muted);white-space:pre-wrap;word-break:break-all;max-height:16vh;margin:0;line-height:1.6;overflow:auto}.quick-layout{grid-template-columns:minmax(360px,5fr) minmax(320px,4fr);align-items:start;gap:16px;display:grid}@media (width<=980px){.quick-layout{grid-template-columns:1fr}}.quick-drop{border:1.5px dashed var(--border);text-align:center;cursor:pointer;border-radius:10px;margin-bottom:12px;padding:22px 14px;transition:border-color .15s,background .15s}.quick-drop:hover,.quick-drop.is-over{border-color:var(--accent);background:var(--card-hover)}.quick-refs{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.quick-ref{border:1px solid var(--border);border-radius:8px;width:84px;height:84px;position:relative;overflow:hidden}.quick-ref img{object-fit:cover;width:100%;height:100%}.quick-ref-x{font-size:var(--fs-11);color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:6px;padding:0 5px;line-height:18px;position:absolute;top:2px;right:2px}.quick-result-img{border-radius:10px;width:100%}.quick-recs{flex-direction:column;gap:8px;display:flex}.quick-rec{border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:10px 12px}.quick-rec:hover,.quick-rec.is-expanded{border-color:var(--border-strong);background:var(--card-hover)}.quick-rec-head{align-items:center;gap:10px;display:flex}.quick-rec-thumb{object-fit:cover;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;display:flex}.quick-rec-failed{color:var(--danger);border:1px solid var(--border);font-size:20px}.quick-rec-running{border:1px dashed var(--border)}.quick-rec-main{flex:1;min-width:0}.quick-rec-prompt{font-size:var(--fs-13);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;line-height:1.5;display:-webkit-box;overflow:hidden}.quick-rec-meta{font-size:var(--fs-12)}.quick-rec.is-expanded .quick-rec-prompt{white-space:pre-wrap;word-break:break-all;display:block}.quick-rec-body{flex-direction:column;gap:8px;margin-top:10px;display:flex}.quick-ref-bad{text-align:center;font-size:var(--fs-11);color:var(--muted);pointer-events:none;background:#00000080;justify-content:center;align-items:center;line-height:1.4;display:flex;position:absolute;inset:0}.model-cards{margin-bottom:18px}.model-cards-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.model-cards-head h3{font-size:var(--fs-15);margin:0}.model-cards-head .spacer{flex:1}.model-cards-hint{font-size:var(--fs-12)}.model-card-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px;display:grid}.model-card{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;flex-direction:column;display:flex;overflow:hidden}.model-card.is-confirmed{border-color:var(--ok-border)}.model-card.is-rejected .thumb-card img{opacity:.45;filter:grayscale(.85)}.model-card.is-failed{border-color:var(--danger-border)}.model-card .thumb-card{border:none;border-radius:0}.model-card-placeholder{aspect-ratio:3/4;color:var(--muted);font-size:var(--fs-12);background:var(--bg);justify-content:center;align-items:center;display:flex}.model-card-body{gap:8px;padding:8px 10px 10px;display:grid}.model-card-name{font-size:var(--fs-12);justify-content:space-between;gap:6px;font-weight:600;display:flex}.model-card-error{font-size:var(--fs-11);color:var(--danger);overflow-wrap:anywhere;margin:0;line-height:1.5}.model-card-actions{flex-wrap:wrap;gap:6px;display:flex}.model-card-actions button{font-size:var(--fs-12);padding:4px 9px}.model-card-overlay{font-size:var(--fs-12);color:#fff;background:#0000008c;justify-content:center;align-items:center;gap:4px;display:flex;position:absolute;inset:0}.badge.card-badge-confirmed{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-border)}.badge.card-badge-rejected{color:var(--muted);border-color:var(--border-strong);background:#8a91a033}.trips-panel{margin-bottom:18px}.trips-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.trips-head h3{font-size:var(--fs-15);margin:0}.trips-head .spacer{flex:1}.trips-hint{font-size:var(--fs-12)}.trips-empty{font-size:var(--fs-13);padding:18px}.trip-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}.trip-card{border:1px solid var(--border);background:var(--bg-soft);border-radius:10px}.trip-card.is-expanded{border-color:var(--border-strong)}.trip-card.is-cancelled,.trip-card.is-failed{opacity:.88}.trip-row{align-items:center;gap:12px;padding:10px 12px;display:flex}.trip-cover{background:var(--bg);border:1px solid var(--border);border-radius:8px;flex-shrink:0;width:64px;height:64px;padding:0;overflow:hidden}.trip-cover img{object-fit:cover;width:100%;height:100%;display:block}.trip-cover-empty{width:100%;height:100%;font-size:var(--fs-11);color:var(--muted);justify-content:center;align-items:center;display:flex}.trip-main{flex-direction:column;flex:1;align-items:flex-start;gap:6px;min-width:0;display:flex}.trip-title{font-size:var(--fs-15);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;max-width:100%;padding:0;font-weight:600;overflow:hidden}.trip-title:hover{color:var(--accent);background:0 0}.trip-meta{font-size:var(--fs-12);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.trip-status-queued,.trip-status-running{color:var(--accent);border-color:var(--accent-border)}.trip-status-done{color:var(--ok);border-color:var(--ok-border)}.trip-status-cancelled{color:var(--muted);border-color:var(--border-strong);opacity:.85}.trip-status-failed{color:var(--danger);border-color:var(--danger-border)}.trip-outfit{border:1px dashed var(--border);background:var(--bg);border-radius:8px;flex-shrink:0;width:44px;height:44px;padding:0;overflow:hidden}.trip-outfit img{object-fit:cover;width:100%;height:100%;display:block}.trip-outfit:hover{border-color:var(--accent)}.trip-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.trip-actions .ghost{font-size:var(--fs-12);padding:5px 10px}.trip-detail{border-top:1px solid var(--border);padding:10px 12px 12px}.trip-detail-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.trip-detail-bar .spacer{flex:1}.trip-detail-hint{font-size:var(--fs-12);margin:0}.trip-discarded-count{font-size:var(--fs-12)}.trip-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.trip-cell{background:var(--card);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;padding:8px;display:flex}.trip-cell.is-discarded .trip-thumb{opacity:.45;filter:grayscale(.85)}.trip-cell-filtered{justify-content:center;align-items:center;min-height:90px}.trip-thumb{border:1px solid var(--border);background:var(--bg);border-radius:8px;width:100%;padding:0;position:relative;overflow:hidden}.trip-thumb img{aspect-ratio:3/4;object-fit:cover;width:100%;display:block}.trip-thumb:hover{border-color:var(--accent)}.trip-badge-kept{background:var(--ok-soft);color:var(--ok);border-color:var(--ok-border)}.trip-badge-discarded{color:var(--muted);border-color:var(--border-strong);background:#8a91a033}.trip-cell-name{font-size:var(--fs-11);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.trip-cell-actions{gap:6px;display:flex}.trip-cell-actions button{font-size:var(--fs-12);flex:1;padding:4px 6px}.trip-chips{flex-wrap:wrap;gap:5px;display:flex}.trip-chip{font-size:var(--fs-11);border-radius:999px;padding:3px 8px}.trip-chip-menu{flex-wrap:wrap;gap:5px;display:flex}.trip-custom{gap:6px;width:100%;display:flex}.trip-custom input{min-width:0;font-size:var(--fs-12);flex:1;padding:5px 8px}.trip-custom button{font-size:var(--fs-12);padding:4px 10px}.outfit-picker{align-items:stretch;gap:8px;display:flex}.outfit-picker .file-label{flex:1}.outfit-from-photo{width:auto;max-width:170px;font-size:var(--fs-12)}.outfit-picked-hint{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.outfit-clear{font-size:var(--fs-11);padding:2px 8px}.kept-actions{align-items:center;gap:8px;display:flex}.kept-state{font-size:var(--fs-12)}.sg-kit-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.kit-editor{gap:10px;display:grid}.kit-editor-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.kit-editor-head h3{font-size:var(--fs-15);margin:0}.kit-editor-head .spacer{flex:1}.kit-editor-body{border-top:1px solid var(--border);gap:12px;padding-top:12px;display:grid}.kit-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.kit-row.kit-col{flex-direction:column;align-items:flex-start}.kit-row>.label{font-size:var(--fs-12);color:var(--muted)}.kit-field{flex-direction:column;gap:6px;min-width:0;display:flex}.kit-field>.label{font-size:var(--fs-12);color:var(--muted)}.kit-hint{font-size:var(--fs-12)}.kit-samples{flex-wrap:wrap;gap:8px;display:flex}.kit-sample{gap:4px;width:96px;display:grid}.kit-sample img{object-fit:cover;background:var(--bg-soft);border-radius:8px;width:96px;height:96px;display:block}.kit-sample button{font-size:var(--fs-11);padding:3px 6px}.kit-sample-add{text-align:center;border:1px dashed var(--border);width:auto;min-width:96px;min-height:96px;font-size:var(--fs-12);color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:8px;display:flex}.kit-sample-add:hover{border-color:var(--accent);color:var(--text)}.kit-sample-thumb{object-fit:cover;background:var(--bg-soft);border-radius:6px;width:64px;height:64px}.kit-outfit{align-items:center;gap:8px;display:flex}.kit-outfit img{object-fit:cover;background:var(--bg-soft);border-radius:6px;width:64px;height:64px}.kit-tags{flex-wrap:wrap;gap:8px;display:flex}.kit-tag{border:1px solid var(--border);font-size:var(--fs-12);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.kit-tag.is-disabled{opacity:.55}.lib-tabs{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.lib-tabs .ghost.is-active{border-color:var(--accent);color:var(--accent)}.lib-tabs-hint{font-size:var(--fs-12);max-width:560px}.lib-list{gap:12px;display:grid}.lib-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);gap:10px;padding:12px 14px;display:grid}.lib-card.is-disabled{opacity:.72}.lib-card.is-default{border-color:#3ecf8e73}.lib-card-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lib-card-head .spacer{flex:1}.lib-card-body{gap:6px;display:grid}.lib-line{font-size:var(--fs-13);flex-wrap:wrap;align-items:baseline;gap:6px;margin:0;display:flex}.lib-line .label{font-size:var(--fs-12);color:var(--muted)}.lib-line .pill{font-size:var(--fs-11)}.lib-prompt{font-size:var(--fs-12);color:var(--muted)}.lib-form{gap:10px;display:grid}.lib-form-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.lib-form-row .kit-field{flex:1;min-width:180px}.lib-advanced summary{cursor:pointer;font-size:var(--fs-12)}.lib-advanced[open]{gap:10px;display:grid}.trip-progress{color:var(--accent);border-color:var(--accent-border);max-width:100%}.trip-error-hint{font-size:var(--fs-12)}.trip-badge-seq{color:var(--accent);border-color:var(--accent-border);background:#4f8cff33}.trip-cell.is-dragging{opacity:.5}.trip-cell.is-filled{cursor:grab}.trip-cell.is-pending-slot,.trip-cell.is-missing-slot{cursor:default}.trip-slot{aspect-ratio:3/4;border:1px solid var(--border);background:var(--bg-soft);border-radius:8px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.trip-slot img{object-fit:cover;filter:brightness(.35);width:100%;height:100%;display:block}.trip-slot-shade{background:#0006;position:absolute;inset:0}.trip-slot-name{font-size:var(--fs-11);color:#ffffffd9;text-overflow:ellipsis;white-space:nowrap;text-align:left;position:absolute;bottom:6px;left:6px;right:6px;overflow:hidden}.trip-slot-badge{font-size:var(--fs-11);color:#fffc;background:#0000008c;border-radius:999px;padding:1px 6px;position:absolute;top:6px;left:6px}.trip-slot.is-breathing{animation:2.4s ease-in-out infinite trip-breathe}@keyframes trip-breathe{50%{opacity:.62}}.trip-slot.is-missing{color:var(--muted);font-size:var(--fs-12);cursor:pointer;background:var(--bg-soft);border-style:dashed;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.trip-slot.is-missing:hover{border-color:var(--accent);color:var(--text)}.trip-slot.is-missing[disabled]{cursor:not-allowed;opacity:.6}.trip-slot.is-broken{border-style:dashed}.trip-slot-broken{font-size:var(--fs-12);color:var(--muted);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.trip-thumb img{animation:.25s ease-out trip-reveal}@keyframes trip-reveal{0%{opacity:0}to{opacity:1}}.page-foot{margin-top:var(--s-6);font-size:var(--fs-11);color:var(--muted);text-align:right}.cta-sticky{bottom:var(--s-3);z-index:5;position:sticky}.cta-sticky.primary{box-shadow:0 6px 20px #d8a34a47}.hint-info{color:var(--muted);cursor:help;background:0 0;border:none;align-items:center;padding:0;display:inline-flex}.hint-info:hover{color:var(--text-2);background:0 0;border:none}.status-strip{align-items:center;gap:var(--s-3);font-size:var(--fs-12);color:var(--text-2);flex-wrap:wrap;display:inline-flex}.status-strip .stat{color:var(--muted);align-items:center;gap:4px;display:inline-flex}.status-strip .stat.is-ok{color:var(--ok)}.status-strip .stat.is-busy{color:var(--accent)}.status-strip .stat.is-bad{color:var(--danger)}.trip-chip{align-items:center;gap:4px;display:inline-flex}.trip-chip.is-active{border-color:var(--brand);color:var(--brand)}.pill .icon{margin-right:0}.seq-handle{color:var(--muted);cursor:grab}
