:root{color-scheme:light;--bg: #eef6f8;--surface: rgba(255, 255, 255, .92);--surface-solid: #ffffff;--surface-soft: #f7fbfc;--text: #142033;--muted: #66758a;--line: rgba(20, 32, 51, .11);--line-strong: rgba(8, 145, 178, .35);--brand: #0891b2;--brand-2: #14b8a6;--accent: #e7a23a;--danger: #c2413b;--ok: #15803d;--shadow: 0 16px 50px rgba(28, 55, 78, .12)}:root[data-theme=dark]{color-scheme:dark;--bg: #0b1220;--surface: rgba(18, 28, 43, .92);--surface-solid: #121c2b;--surface-soft: #162235;--text: #eef6fb;--muted: #9fb0c5;--line: rgba(226, 244, 250, .12);--line-strong: rgba(103, 232, 249, .38);--brand: #22d3ee;--brand-2: #5eead4;--accent: #f5c56b;--danger: #f87171;--ok: #4ade80;--shadow: 0 18px 60px rgba(0, 0, 0, .38)}*{box-sizing:border-box}html,body,#root{min-height:100%}html,body{height:100%}body{margin:0;color:var(--text);background:linear-gradient(145deg,rgba(20,184,166,.13),transparent 26%),linear-gradient(315deg,rgba(231,162,58,.1),transparent 26%),var(--bg);overflow:hidden;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}button,input,textarea,select{font:inherit;letter-spacing:0}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}img{display:block;max-width:100%}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);color:var(--text);outline:none;padding:10px 11px}textarea{resize:vertical;min-height:90px;line-height:1.55}input:focus,textarea:focus,select:focus{border-color:var(--line-strong);box-shadow:0 0 0 3px #0891b21c}.app-shell{display:flex;height:100vh;height:100dvh;min-height:0;flex-direction:column;overflow:hidden;padding:12px}.surface{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.topbar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:66px;padding:8px 14px}.brand-block{display:flex;align-items:center;gap:13px;min-width:0}.brand-logo{width:44px;height:44px;object-fit:contain;flex:0 0 auto}.brand-row{display:flex;align-items:center;gap:10px;min-width:0}h1,h2,h3,p{margin:0}.brand-row h1{font-size:26px;line-height:1.1;white-space:nowrap}.brand-block p,.workspace-head p,.panel-title-row p{margin-top:3px;color:var(--muted);font-size:14px}.demo-badge{display:inline-flex;align-items:center;height:24px;border:1px solid rgba(8,145,178,.35);border-radius:8px;padding:0 8px;color:var(--brand);background:#0891b214;font-size:11px;font-weight:700}.top-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.tool-btn,.secondary-btn,.small-btn,.icon-btn,.toolbar-row button,.admin-nav button,.filter-row button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:var(--surface-solid);text-decoration:none;transition:.16s ease}.tool-btn{min-width:106px;min-height:36px;padding:0 12px;font-size:13px;font-weight:650}.tool-btn.active,.toolbar-row button.selected,.admin-nav button.selected,.filter-row button.selected{border-color:var(--line-strong);color:var(--brand);background:#0891b217}.studio-grid{flex:1 1 auto;display:grid;grid-template-columns:minmax(360px,420px) minmax(0,1fr);gap:14px;margin-top:10px;min-height:0;overflow:hidden}.left-panel{position:relative;display:flex;flex-direction:column;gap:12px;height:100%;min-height:0;padding:14px;overflow-y:auto}.workspace{height:100%;min-height:0;min-width:0;overflow-y:auto;padding:18px}.panel-title-row{position:sticky;top:-14px;z-index:5;margin:-14px -14px 0;padding:14px 14px 10px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface-solid) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.panel-title-row h2,.workspace-head h2,.section-heading h2{font-size:22px;line-height:1.2}.workspace-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.control-card{border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--surface-solid) 76%,transparent);padding:12px}.control-card h3{margin-bottom:10px;font-size:15px}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.upload-box{border:1px dashed rgba(8,145,178,.28);border-radius:8px;background:var(--surface-soft);min-height:170px}.upload-box.dragging{border-color:var(--brand);background:#0891b214}.upload-trigger{width:100%;min-height:170px;border:0;background:transparent;color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:18px;text-align:center}.upload-trigger span,.empty-state div{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:8px;color:var(--brand);background:#0891b21c}.upload-trigger em{max-width:300px;color:var(--muted);font-size:13px;line-height:1.5;font-style:normal}.uploaded-preview{display:grid;grid-template-columns:94px minmax(0,1fr) 36px;gap:10px;align-items:center;padding:10px}.uploaded-preview img{width:94px;height:94px;border-radius:8px;object-fit:cover;background:#e8eef3}.uploaded-preview b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.uploaded-preview span{display:block;margin-top:5px;color:var(--muted);font-size:12px}.uploaded-preview .upload-analyzing{display:inline-flex;align-items:center;gap:5px;color:var(--brand);font-weight:700}.analysis-status{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:9px;align-items:start;border:1px solid rgba(20,184,166,.24);border-radius:8px;background:#14b8a612;padding:10px;color:var(--brand)}.analysis-status.loading{grid-template-columns:20px minmax(0,1fr)}.analysis-status.failed{grid-template-columns:20px minmax(0,1fr);border-color:#c2413b33;background:#c2413b0f;color:var(--danger)}.analysis-status b,.analysis-status span{display:block}.analysis-status b{color:var(--text);font-size:13px}.analysis-status b em{margin-left:7px;color:var(--brand);font-size:11px;font-style:normal}.analysis-status span{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.45}.analysis-actions{display:flex;flex-direction:column;gap:6px}.analysis-actions button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:30px;padding:0 8px;color:var(--brand);font-size:11px}.analysis-status .analysis-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.analysis-tags i{border-radius:999px;background:color-mix(in srgb,var(--surface-solid) 78%,transparent);padding:3px 7px;color:var(--muted);font-size:10px;font-style:normal}.icon-btn{width:36px;height:36px;padding:0}.radio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.radio-grid button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);color:var(--text);padding:7px 9px;font-size:13px}.radio-grid button small{border-radius:999px;background:#0891b21f;padding:2px 5px;color:var(--brand);font-size:9px;font-weight:800;white-space:nowrap}.radio-grid button.selected{border-color:var(--line-strong);color:var(--brand);background:#0891b217;font-weight:700}.recommendation-box{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;margin-top:10px;border:1px solid rgba(20,184,166,.22);border-radius:8px;background:#14b8a614;padding:10px;color:var(--brand)}.recommendation-box b,.recommendation-box span{display:block}.recommendation-box span{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.45}.filter-row{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}.filter-row button{min-height:32px;padding:0 10px;font-size:12px}.view-selection-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:0 0 9px}.view-selection-actions>span{flex:1 1 130px;color:var(--muted);font-size:11px}.view-selection-actions button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:30px;padding:0 8px;font-size:11px}.view-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.view-grid button{display:grid;grid-template-rows:112px auto 1fr;min-height:176px;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);color:var(--text);padding:0;text-align:left;overflow:hidden}.view-grid button.selected{border-color:var(--line-strong);box-shadow:0 0 0 2px #0891b21f}.view-art{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:112px;color:#ffffffe0;overflow:hidden;background:linear-gradient(135deg,#0891b2db,#14b8a6b8),linear-gradient(45deg,transparent 35%,rgba(255,255,255,.22) 35% 48%,transparent 48%)}.view-art:before,.view-art:after{position:absolute;content:"";border-radius:999px;background:#ffffff57}.view-art:before{width:76px;height:22px;bottom:16px;left:26px}.view-art:after{width:34px;height:34px;top:14px;right:28px}.view-art.has-image{background:var(--surface-soft)}.view-art.has-image:before,.view-art.has-image:after{display:none}.view-art img{display:block;width:100%;height:100%;min-width:100%;min-height:100%;object-fit:cover;object-position:center}.view-top_down{background:linear-gradient(135deg,#4f8a8b,#efc36c)}.view-front_eye_level,.view-side_angle{background:linear-gradient(135deg,#5c7ca5,#b8d7d5 55%,#d98e59)}.view-bed_edge_drape,.view-pillow_focus,.view-fabric_macro{background:linear-gradient(135deg,#9e5f74,#e8b6a4 52%,#517a85)}.view-folded_stack{background:linear-gradient(135deg,#356b6f,#c9d6c1 52%,#ce9b54)}.view-interior_wide{background:linear-gradient(135deg,#2f5c7d,#88c7bc 45%,#d8b46f)}.view-grid b{display:block;padding:9px 10px 0;font-size:13px}.view-grid span:not(.view-art){display:-webkit-box;padding:5px 10px 10px;color:var(--muted);font-size:12px;line-height:1.45;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pattern-preview{position:relative;height:132px;border:1px solid rgba(8,145,178,.18);border-radius:8px;background-color:var(--surface-soft);background-repeat:repeat;overflow:hidden}.pattern-preview:after{position:absolute;inset:0;content:"";background:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:24px 24px;pointer-events:none}.pattern-preview span{position:absolute;left:10px;bottom:10px;z-index:1;border-radius:999px;background:#142033b8;color:#fff;padding:5px 9px;font-size:12px;font-weight:750}.slider-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:10px;color:var(--muted);font-size:12px}.slider-row input{border:0;background:transparent;box-shadow:none;padding:0}.scale-value{margin-top:7px;color:var(--brand);font-size:12px;font-weight:800}.sticky-actions{position:sticky;bottom:-14px;margin:0 -14px -14px;padding:12px 14px;background:linear-gradient(180deg,transparent,var(--surface) 20%)}.primary-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;border:0;border-radius:8px;color:#fff;background:linear-gradient(90deg,#14b8a6,#60a5fa);font-weight:800;text-decoration:none}.primary-btn.narrow,.secondary-btn{width:auto;min-height:38px;padding:0 13px}.secondary-btn{font-size:13px;font-weight:700}.small-btn{min-height:32px;padding:0 9px;font-size:12px}.error-box,.inline-error,.admin-message{display:flex;align-items:flex-start;gap:8px;border:1px solid rgba(194,65,59,.22);border-radius:8px;background:#c2413b14;color:var(--danger);padding:10px;font-size:13px;line-height:1.45}.empty-state{display:flex;min-height:290px;flex-direction:column;align-items:center;justify-content:center;border:1px dashed rgba(8,145,178,.25);border-radius:8px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-soft) 85%,transparent),transparent);padding:28px;text-align:center}.empty-state h3{margin-top:16px;font-size:22px}.empty-state p{max-width:520px;margin-top:10px;color:var(--muted);line-height:1.7}.empty-state span{display:block;max-width:620px;margin-top:12px;color:var(--brand);font-size:13px}.task-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,420px);align-items:start;gap:18px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:14px;margin-bottom:14px}.task-summary>div:first-child{display:grid;gap:7px;align-content:start;min-width:0}.status-pill,.mini-status{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;padding:0 9px;font-size:12px;font-weight:800}.status-InProgress,.mini-Running,.mini-Pending{color:var(--brand);background:#0891b21f}.status-Success,.mini-Success{color:var(--ok);background:#15803d1f}.status-Failed,.mini-Failed{color:var(--danger);background:#c2413b1f}.status-PartialSuccess{color:#9a650f;background:#e7a23a2e}.task-summary h3{overflow-wrap:anywhere;font-size:16px}.task-summary p{color:var(--muted);font-size:13px;line-height:1.5}.progress-block{display:grid;gap:9px;align-content:start;width:100%}.progress-line{height:10px;border-radius:999px;background:color-mix(in srgb,var(--brand) 12%,var(--surface-solid));overflow:hidden}.progress-line i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand-2),#60a5fa);transition:width .26s ease}.progress-stats{display:grid;grid-template-columns:repeat(4,minmax(86px,1fr));gap:7px}.progress-stats span{border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);padding:7px;color:var(--muted);text-align:center;font-size:12px}.result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.result-card{border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);overflow:hidden}.result-media{aspect-ratio:4 / 3;background:var(--surface-soft)}.result-preview-trigger{display:block;width:100%;height:100%;border:0;background:transparent;padding:0;overflow:hidden}.result-media img{display:block;width:100%;height:100%;object-fit:contain}.image-preview-layer{position:fixed;inset:0;z-index:140;display:grid;place-items:center;padding:18px}.image-preview-mask{position:absolute;inset:0;border:0;background:#08122094;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.image-preview-panel{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1180px,calc(100vw - 36px));height:min(820px,calc(100vh - 36px));padding:12px;overflow:hidden}.image-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:10px}.image-preview-head h2{font-size:18px}.image-preview-head span{display:block;margin-top:4px;color:var(--muted);font-size:12px}.image-preview-actions{display:flex;align-items:center;gap:8px}.image-preview-canvas{min-height:0;margin-top:12px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(45deg,rgba(100,116,139,.08) 25%,transparent 25% 75%,rgba(100,116,139,.08) 75%),linear-gradient(45deg,rgba(100,116,139,.08) 25%,transparent 25% 75%,rgba(100,116,139,.08) 75%);background-position:0 0,10px 10px;background-size:20px 20px;overflow:auto}.image-preview-canvas img{display:block;width:100%;height:100%;object-fit:contain}.result-placeholder{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted)}.result-body{padding:11px}.result-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.anchor-note{margin-top:6px;color:var(--brand);font-size:12px;font-weight:750;line-height:1.45}.result-title h3{font-size:15px}.result-body p{margin-top:6px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.result-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.history-strip{margin-top:18px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section-heading span{color:var(--muted);font-size:13px}.history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.history-card{border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);padding:8px;text-align:left}.history-card img,.history-card>span{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:4 / 3;border-radius:8px;background:var(--surface-soft);object-fit:cover;color:var(--muted)}.history-card b,.history-card em{display:block;margin-top:7px}.history-card em{color:var(--muted);font-size:12px;font-style:normal}.floating-admin{position:fixed;right:18px;bottom:18px;z-index:20;display:inline-flex;align-items:center;gap:8px;min-height:44px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface-solid);color:var(--brand);padding:0 16px;box-shadow:var(--shadow);font-weight:800}.drawer-layer{position:fixed;inset:0;z-index:100}.drawer-mask{position:absolute;inset:0;border:0;background:#08122059;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.admin-drawer{position:absolute;inset:16px 16px 16px auto;display:flex;width:min(1080px,calc(100vw - 32px));flex-direction:column;padding:14px}.small-drawer{position:absolute;top:16px;right:16px;bottom:16px;width:min(520px,calc(100vw - 32px));padding:14px}.small-drawer-body{height:calc(100% - 58px);overflow-y:auto}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.drawer-head span{color:var(--brand);font-size:12px;font-weight:800;text-transform:uppercase}.admin-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:14px;min-height:0;flex:1;padding-top:14px}.admin-nav{display:flex;flex-direction:column;gap:8px}.admin-nav button{justify-content:flex-start;width:100%;padding:0 12px;font-weight:700}.admin-content{min-height:0;overflow-y:auto;padding-right:4px}.admin-stack{display:grid;gap:12px}.admin-card{border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:12px}.admin-card-head,.admin-actions,.toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.admin-card label,.admin-stack>label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.admin-card label+label,.admin-card .two-col,.check-row{margin-top:10px}.switch input{display:none}.switch span{position:relative;display:block;width:46px;height:26px;border-radius:999px;background:#64748b59}.switch span:after{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:999px;background:#fff;content:"";transition:.16s ease}.switch input:checked+span{background:var(--brand)}.switch input:checked+span:after{transform:translate(20px)}.json-editor{min-height:460px;font-family:Cascadia Code,Consolas,monospace;font-size:12px}.preview-box{display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:12px}.preview-box pre,.log-item pre{max-height:180px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);padding:10px;color:var(--muted);white-space:pre-wrap;font-size:12px}.check-row{display:flex;flex-wrap:wrap;gap:12px}.check-row label{display:inline-flex;align-items:center;gap:8px}.check-row input,.admin-card input[type=checkbox]{width:auto}.log-list{display:grid;gap:8px}.log-item{border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:8px;background:var(--surface-soft);padding:10px}.log-error{border-left-color:var(--danger)}.log-warn{border-left-color:var(--accent)}.log-item b,.log-item span{display:block}.log-item span{margin-top:4px;color:var(--muted);font-size:12px}.admin-history-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:10px}.admin-history-row b,.admin-history-row span{display:block;overflow-wrap:anywhere}.admin-history-row span,.muted-box{color:var(--muted);font-size:12px}.muted-box{border:1px dashed var(--line);border-radius:8px;background:var(--surface-soft);padding:18px;text-align:center}.danger{color:var(--danger)}.test-ok{color:var(--ok)}.test-fail{color:var(--danger)}.subtle-scroll{scrollbar-color:rgba(100,116,139,.35) transparent}.subtle-scroll::-webkit-scrollbar{width:8px;height:8px}.subtle-scroll::-webkit-scrollbar-thumb{border-radius:999px;background:#64748b47}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1180px){.studio-grid{grid-template-columns:380px minmax(0,1fr)}.task-summary{grid-template-columns:1fr}}@media(max-width:900px){html,body{height:100%;overflow:hidden}.app-shell{height:100vh;height:100dvh;min-height:0;overflow:hidden;padding:8px}.topbar,.workspace-head{align-items:stretch;flex-direction:column}.top-actions{justify-content:stretch}.tool-btn{flex:1 1 150px}.studio-grid{grid-template-columns:1fr;grid-template-rows:minmax(248px,42%) minmax(0,1fr);overflow:hidden}.left-panel{position:relative;height:100%;min-height:0;max-height:none;overflow-y:auto}.sticky-actions{position:static;margin:0;padding:0;background:transparent}.workspace{height:100%;min-height:0;overflow-y:auto}.admin-layout{grid-template-columns:1fr}.admin-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-drawer{inset:8px;width:auto}}@media(max-width:560px){.brand-block{align-items:flex-start}.brand-logo{width:44px;height:44px}.brand-row{align-items:flex-start;flex-direction:column;gap:6px}.two-col,.radio-grid,.view-grid,.progress-stats,.admin-history-row{grid-template-columns:1fr}.floating-admin{right:12px;bottom:12px}}.admin-console{width:min(1420px,calc(100vw - 32px))}.admin-header-actions,.admin-identity,.ops-toolbar,.ops-section-head,.editor-meta,.variable-head,.test-controls,.channel-actions,.config-title,.channel-status{display:flex;align-items:center;gap:8px}.admin-header-actions{flex-wrap:wrap;justify-content:flex-end}.admin-identity{color:var(--muted);font-size:12px}.admin-login,.admin-login-state{display:flex;width:min(420px,100%);margin:auto;flex-direction:column;align-items:stretch;justify-content:center;gap:12px}.admin-login-state{min-height:360px;align-items:center;color:var(--muted)}.admin-login{min-height:480px}.admin-login-icon{display:grid;width:56px;height:56px;place-items:center;border-radius:8px;background:#0891b21a;color:var(--brand)}.admin-login h3{font-size:22px}.admin-login p,.ops-section-head p{color:var(--muted);font-size:12px;line-height:1.5}.admin-login label,.reason-field,.config-fields label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.ops-stack,.template-detail,.prompt-editor-panel,.prompt-test-panel,.version-list,.audit-list,.version-restore,.channel-family,.config-card-list,.config-fields{display:grid;gap:10px}.ops-toolbar{flex-wrap:wrap}.ops-toolbar select{width:auto;min-width:150px}.ops-section-head,.config-title{justify-content:space-between}.ops-section-head h3{font-size:16px}.ops-section-head>span,.config-title span,.channel-actions span{color:var(--muted);font-size:11px}.prompt-admin-grid{display:grid;grid-template-columns:minmax(210px,280px) minmax(0,1fr);gap:12px;min-height:620px}.template-list{display:flex;max-height:calc(100vh - 230px);flex-direction:column;gap:6px;overflow-y:auto;padding-right:4px}.template-list button{display:grid;gap:4px;min-height:72px;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);padding:9px;text-align:left}.template-list button.selected{border-color:var(--line-strong);background:#0891b214}.template-list b{font-size:13px}.template-list span{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.prompt-editor-panel,.prompt-test-panel,.version-list,.audit-list,.version-restore,.channel-family{border-top:1px solid var(--line);padding-top:12px}.editor-meta,.variable-head,.channel-actions{justify-content:space-between}.editor-meta span{color:var(--brand);font-size:12px;font-weight:750}.editor-meta select,.test-controls select{width:auto}.prompt-content-editor{min-height:260px;resize:vertical;font-family:Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.55}.variable-head>div,.version-actions,.confirm-panel>div{display:flex;gap:6px}.variable-table{display:grid;gap:6px}.variable-table>div{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:6px;align-items:center}.variable-table label{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px}.validation-box,.thinking-off{border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:9px;font-size:12px}.validation-box.valid,.thinking-off{border-color:#15803d38;color:var(--ok)}.validation-box.invalid{border-color:#c2413b3d;color:var(--danger)}.thinking-off{display:flex;align-items:center;gap:6px;overflow-wrap:anywhere}.thinking-off code{color:var(--muted);font-size:10px}.confirm-modal-layer{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:24px}.confirm-modal-mask{position:absolute;inset:0;border:0;background:#11182794;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.confirm-modal{position:relative;width:min(920px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto;border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 70px #0f172a3d;padding:20px;display:grid;gap:16px}.generation-confirm-modal{width:min(680px,calc(100vw - 32px))}.confirm-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:14px}.confirm-modal-head>div{display:grid;gap:4px}.confirm-modal-head span{color:var(--accent);font-size:12px;font-weight:700}.confirm-modal-head h2{margin:0;font-size:20px;letter-spacing:0}.confirm-modal-head p{margin:0;color:var(--muted);font-size:13px}.taxonomy-warning,.taxonomy-success{border:1px solid rgba(217,119,6,.25);background:#f59e0b12;color:var(--text);border-radius:7px;padding:10px 12px;display:flex;align-items:flex-start;gap:8px;font-size:13px}.taxonomy-warning svg,.taxonomy-success svg{flex:0 0 auto;margin-top:1px}.taxonomy-warning span,.taxonomy-success span{display:grid;gap:2px}.taxonomy-success{border-color:#15803d3d;background:#15803d0f}.taxonomy-warning.compact span{display:block}.recognition-dialog-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.recognition-dialog-grid>section,.taxonomy-picker{border:1px solid var(--line);border-radius:7px;padding:13px;display:grid;align-content:start;gap:11px}.recognition-dialog-grid h3,.taxonomy-picker h3,.generation-confirm-shots h3{margin:0;font-size:14px;letter-spacing:0}.dialog-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.taxonomy-profile-summary{display:grid;gap:7px}.taxonomy-profile-summary p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}.taxonomy-profile-summary b{color:var(--text)}.taxonomy-candidates{display:grid;gap:7px}.taxonomy-candidates button{min-height:52px;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);color:var(--text);padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left}.taxonomy-candidates button.selected{border-color:var(--accent);box-shadow:0 0 0 2px #0891b217}.taxonomy-candidates button span{display:grid;gap:3px;min-width:0}.taxonomy-candidates button b{font-size:12px;line-height:1.4}.taxonomy-candidates button small{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.taxonomy-candidates button em{color:var(--accent);font-size:12px;font-style:normal;font-weight:700}.taxonomy-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.taxonomy-picker-head label{width:min(320px,52%);min-height:34px;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);padding:0 9px;display:flex;align-items:center;gap:7px;color:var(--muted)}.taxonomy-picker-head input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:12px}.taxonomy-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.taxonomy-levels select{width:100%;min-width:0}.taxonomy-search-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:170px;overflow:auto;padding:2px}.taxonomy-search-results button{border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);padding:8px;display:grid;gap:2px;text-align:left;font-size:12px}.taxonomy-search-results button.selected{border-color:var(--accent)}.taxonomy-search-results small{color:var(--muted);font-size:10px}.taxonomy-recent{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.taxonomy-recent>span{color:var(--muted);font-size:11px}.taxonomy-recent button{border:1px solid var(--line);border-radius:5px;background:var(--surface-soft);color:var(--text);padding:5px 8px;font-size:11px}.taxonomy-selected{min-height:38px;border:1px solid rgba(8,145,178,.22);border-radius:7px;background:#0891b20d;padding:8px 10px;display:flex;align-items:center;gap:8px;font-size:12px}.taxonomy-selected span{flex:1;min-width:0}.taxonomy-selected code{color:var(--muted);font-size:10px}.confirm-modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px}.generation-confirm-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.generation-confirm-summary span{border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);padding:10px;display:grid;gap:4px}.generation-confirm-summary small{color:var(--muted);font-size:11px}.generation-confirm-summary b{font-size:13px}.generation-confirm-shots{display:grid;gap:7px}.generation-confirm-shots>div{min-height:44px;display:grid;grid-template-columns:26px minmax(120px,auto) 1fr;align-items:center;gap:9px;border-bottom:1px solid var(--line);padding:5px 0}.generation-confirm-shots>div>span{width:24px;height:24px;border-radius:50%;background:var(--surface-soft);display:grid;place-items:center;color:var(--muted);font-size:11px}.generation-confirm-shots b{font-size:12px}.generation-confirm-shots small{color:var(--muted);font-size:11px}.recognition-head>div small{color:var(--muted);font-size:11px}.recognition-head .needs-confirm{color:#b45309;background:#f59e0b14}@media(max-width:720px){.confirm-modal-layer{padding:10px}.confirm-modal{width:calc(100vw - 20px);max-height:calc(100vh - 20px);padding:14px}.recognition-dialog-grid{grid-template-columns:1fr}.taxonomy-picker-head{align-items:stretch;flex-direction:column}.taxonomy-picker-head label{width:100%}.taxonomy-levels,.taxonomy-search-results{grid-template-columns:1fr}.generation-confirm-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.generation-confirm-shots>div{grid-template-columns:26px 1fr}.generation-confirm-shots small{grid-column:2}.confirm-modal-actions{flex-wrap:wrap}}.taxonomy-admin-summary{display:grid;grid-template-columns:1.2fr repeat(4,minmax(90px,1fr));gap:8px}.taxonomy-admin-summary span{min-height:72px;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);padding:10px;display:grid;align-content:center;gap:3px}.taxonomy-admin-summary small,.taxonomy-admin-summary em{color:var(--muted);font-size:10px;font-style:normal}.taxonomy-admin-summary b{font-size:15px}.taxonomy-version-toolbar{display:grid;grid-template-columns:minmax(170px,1fr) minmax(220px,1.4fr) auto auto;align-items:end;gap:8px}.taxonomy-version-toolbar>label{display:grid;gap:5px;font-size:11px;color:var(--muted)}.taxonomy-editor-grid{display:grid;grid-template-columns:minmax(290px,.9fr) minmax(360px,1.1fr);gap:12px;min-height:560px}.taxonomy-tree-panel,.taxonomy-category-editor,.taxonomy-import,.taxonomy-history{border:1px solid var(--line);border-radius:7px;background:var(--surface);padding:12px}.taxonomy-search{min-height:36px;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);padding:0 9px;display:flex;align-items:center;gap:7px;color:var(--muted)}.taxonomy-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--text)}.taxonomy-search span{font-size:10px}.taxonomy-category-list{max-height:510px;overflow:auto;display:grid;gap:3px;padding-top:8px}.taxonomy-category-list button{min-height:46px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);padding:5px 7px;display:flex;align-items:center;gap:4px;text-align:left}.taxonomy-category-list button:hover{background:var(--surface-soft)}.taxonomy-category-list button.selected{border-color:#0891b247;background:#0891b20f}.taxonomy-category-list button>i{flex:0 0 auto}.taxonomy-category-list button>span{flex:1;min-width:0;display:grid;gap:2px}.taxonomy-category-list b{font-size:12px}.taxonomy-category-list small{color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.taxonomy-category-list em{max-width:100px;color:var(--muted);font-size:9px;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.taxonomy-category-editor{display:grid;align-content:start;gap:10px}.taxonomy-category-editor>label{display:grid;gap:5px;color:var(--muted);font-size:11px}.taxonomy-category-editor textarea{width:100%;resize:vertical}.taxonomy-json-editor{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.5}.taxonomy-editor-help{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.taxonomy-import{display:grid;gap:9px}.taxonomy-import textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.taxonomy-history{display:grid;gap:5px}.taxonomy-history>div:not(.ops-section-head):not(.confirm-panel){min-height:38px;display:grid;grid-template-columns:90px 70px 150px 1fr auto;align-items:center;gap:8px;border-bottom:1px solid var(--line);font-size:11px}.taxonomy-history>div em{color:var(--accent);font-style:normal}.taxonomy-history>div span{color:var(--muted)}.taxonomy-history details{margin-top:8px}.taxonomy-history details article{display:grid;gap:5px;border-top:1px solid var(--line);padding:8px 0}.taxonomy-history details pre{max-height:160px;overflow:auto;background:var(--surface-soft);padding:8px;font-size:10px;white-space:pre-wrap}@media(max-width:1000px){.taxonomy-admin-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.taxonomy-version-toolbar{grid-template-columns:1fr 1fr}.taxonomy-editor-grid{grid-template-columns:1fr}}.test-controls{flex-wrap:wrap}.test-controls input[type=file]{flex:1 1 240px}.test-result-grid{display:grid;grid-template-columns:minmax(180px,300px) minmax(0,1fr);gap:10px}.test-result-grid img{width:100%;aspect-ratio:1;border:1px solid var(--line);border-radius:8px;object-fit:contain}.test-result-grid pre,.version-body pre{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:9px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;line-height:1.5}.test-result-grid h4,.version-body h4{margin:8px 0 5px;font-size:12px}.test-result-grid p{margin-top:4px;font-size:11px}.log-warn{color:#9a650f}.log-error{color:var(--danger)}.log-info{color:var(--ok)}.version-list details{border:1px solid var(--line);border-radius:8px;background:var(--surface-solid)}.version-list summary{display:grid;grid-template-columns:auto auto 110px minmax(0,1fr);gap:8px;align-items:center;padding:9px;cursor:pointer;font-size:11px;list-style:none}.version-body{border-top:1px solid var(--line);padding:10px}.version-actions{justify-content:flex-end}.version-status{display:inline-flex;width:fit-content;border-radius:999px;padding:2px 6px;font-size:9px;font-style:normal;font-weight:800}.version-status.status-published{color:var(--ok);background:#15803d1f}.version-status.status-draft{color:#9a650f;background:#e7a23a29}.version-status.status-offline{color:var(--muted);background:#64748b21}.version-status.status-rollback{color:var(--brand);background:#0891b21f}.diff-view{color:var(--muted)}.confirm-panel{display:grid;gap:8px;border:1px solid rgba(194,65,59,.22);border-radius:8px;background:#c2413b0f;padding:10px}.confirm-panel p{color:var(--muted);font-size:11px}.confirm-panel>div{justify-content:flex-end}.audit-list>div:not(.ops-section-head){display:grid;grid-template-columns:18px 80px 90px minmax(0,1fr) 110px;gap:6px;align-items:center;border-bottom:1px solid var(--line);padding:7px 0;color:var(--muted);font-size:10px}.config-card-list{gap:8px}.config-row-card{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;align-items:start;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:10px}.config-row-card>svg{margin-top:7px;color:var(--muted);cursor:grab}.config-title>div:first-child{display:grid;gap:3px}.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.channel-status,.channel-actions{justify-content:space-between}.channel-status em{color:var(--muted);font-size:10px;font-style:normal}.version-restore>div:not(.ops-section-head,.confirm-panel){display:grid;grid-template-columns:50px 110px 90px minmax(0,1fr) auto;gap:7px;align-items:center;border-bottom:1px solid var(--line);padding:7px 0;color:var(--muted);font-size:10px}.admin-message.neutral{border-color:#0891b233;background:#0891b20f;color:var(--text)}@media(max-width:980px){.prompt-admin-grid,.test-result-grid{grid-template-columns:1fr}.template-list{max-height:240px}.three-col{grid-template-columns:1fr}}@media(max-width:720px){.admin-console{inset:8px;width:calc(100vw - 16px)}.admin-console .admin-layout{grid-template-columns:1fr}.admin-console .admin-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.variable-table>div,.version-list summary,.audit-list>div:not(.ops-section-head),.version-restore>div:not(.ops-section-head,.confirm-panel){grid-template-columns:1fr}}.product-studio-grid{grid-template-columns:minmax(430px,470px) minmax(0,1fr)}.product-flow-panel{gap:10px;padding-bottom:0}.flow-card{display:grid;gap:10px}.flow-card>h3{display:flex;align-items:center;gap:8px;margin:0}.flow-card>h3>span{display:grid;width:23px;height:23px;place-items:center;border-radius:50%;background:var(--text);color:var(--surface-solid);font-size:11px}.reference-upload-stack{display:grid;grid-template-columns:1fr;gap:8px;padding-bottom:2px;align-items:stretch}.reference-upload-stack>input{display:none}.reference-upload-card{position:relative;display:grid;min-width:0;grid-template-rows:24px minmax(0,1fr);gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);padding:10px 12px 12px}.reference-upload-title{display:flex;min-height:22px;align-items:center;justify-content:space-between;gap:6px}.reference-upload-title b{overflow:hidden;color:var(--text);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.reference-upload-title em{flex:0 0 auto;border-radius:999px;background:#0891b21a;padding:3px 6px;color:var(--brand);font-size:10px;font-style:normal;font-weight:800}.reference-upload-card .upload-trigger{height:100%;min-height:142px;border-radius:7px;padding:14px}.reference-upload-card.compact .upload-trigger{min-height:142px}.reference-upload-card .upload-trigger span{width:42px;height:42px}.reference-upload-card .upload-trigger b{font-size:12px;line-height:1.25}.reference-upload-card .upload-trigger em{display:-webkit-box;overflow:hidden;font-size:10.5px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.product-uploaded{display:grid;grid-template-columns:90px minmax(0,1fr) 34px;gap:10px;align-items:center;padding:8px}.reference-upload-card .product-uploaded{grid-template-columns:96px minmax(0,1fr) 30px;grid-template-rows:auto;gap:10px;padding:0}.product-uploaded>img{width:90px;height:76px;border:1px solid var(--line);border-radius:6px;object-fit:cover}.reference-upload-card .product-uploaded>img{grid-column:auto;width:96px;height:82px}.product-uploaded>div{display:grid;gap:5px;min-width:0}.product-uploaded b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.product-uploaded span,.product-uploaded small,.product-uploaded button{color:var(--muted);font-size:11px}.reference-upload-card .product-uploaded small{display:none}.product-uploaded button{display:inline-flex;width:fit-content;align-items:center;gap:4px;border:0;background:transparent;color:var(--brand);padding:0}.reference-upload-card .product-uploaded>.icon-btn{width:28px;height:28px;padding:0;color:var(--brand)}.recognition-running,.recognition-empty{display:flex;align-items:center;gap:8px;border:1px solid rgba(8,145,178,.18);border-radius:7px;background:#0891b20d;padding:9px;color:var(--muted);font-size:12px}.recognition-running span{display:grid;gap:2px}.recognition-card{display:grid;gap:9px}.recognition-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.recognition-head>div{display:grid;gap:3px}.recognition-head b{font-size:16px}.recognition-head span,.recognition-provider{color:var(--muted);font-size:11px}.recognition-head em{display:inline-flex;align-items:center;gap:4px;border-radius:999px;background:#1987541a;padding:5px 7px;color:var(--ok);font-size:11px;font-style:normal}.recognition-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.recognition-facts>span{display:grid;gap:2px;min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--surface-soft);padding:7px;font-size:12px;overflow-wrap:anywhere}.recognition-facts small{color:var(--muted);font-size:11px}.recognition-card>p{color:var(--muted);font-size:12px;line-height:1.5}.risk-note{display:flex;align-items:flex-start;gap:6px;border:1px solid rgba(194,125,15,.25);border-radius:7px;background:#c27d0f12;padding:8px;color:#93600d;font-size:11px;line-height:1.45}.recognition-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.recognition-editor label,.setting-grid label,.advanced-settings label{display:grid;gap:4px;color:var(--muted);font-size:11px;font-weight:700}.recognition-editor input,.recognition-editor select,.setting-grid select,.advanced-settings select{min-width:0}.recognition-actions{display:flex;flex-wrap:wrap;gap:6px}.recognition-actions button,.shot-count-line button{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:6px;background:var(--surface-solid);padding:6px 8px;color:var(--text);font-size:11px}.mode-card-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.mode-card-list>button{position:relative;display:block;min-height:108px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:0;text-align:left}.mode-card-list>button:hover,.mode-card-list>button:focus-visible{z-index:4;border-color:#0891b294;box-shadow:0 10px 24px #0f172a24}.mode-card-list>button.selected{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand),0 10px 24px #0891b229}.mode-card-list>button>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .18s ease}.mode-card-list>button:hover>img,.mode-card-list>button:focus-visible>img{transform:scale(1.03)}.mode-gradient{position:absolute;inset:0;background:linear-gradient(180deg,#0f172a0a,#0f172a57 42%,#0f172ad6)}.mode-copy{position:absolute;left:8px;right:8px;bottom:8px;display:grid;gap:2px;color:#fff;min-width:0}.mode-card-list b{overflow:hidden;color:#fff;font-size:12px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.mode-card-list small{display:-webkit-box;overflow:hidden;color:#ffffffd1;font-size:10.5px;line-height:1.28;-webkit-box-orient:vertical;-webkit-line-clamp:2}.mode-check{position:absolute;top:7px;right:7px;display:grid;width:20px;height:20px;place-items:center;border-radius:999px;background:var(--brand);color:#fff;box-shadow:0 5px 14px #0891b247}.mode-hover-detail{position:absolute;inset:7px;display:grid;align-content:end;border-radius:6px;background:linear-gradient(180deg,#0f172a38,#0f172adb);color:#fff;font-size:11px;font-style:normal;line-height:1.45;opacity:0;padding:8px;pointer-events:none;transform:translateY(4px);transition:opacity .16s ease,transform .16s ease,visibility .16s ease;visibility:hidden}.mode-card-list>button:hover .mode-hover-detail,.mode-card-list>button:focus-visible .mode-hover-detail{opacity:1;transform:translateY(0);visibility:visible}.lock-summary{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px}.lock-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.lock-grid label{display:flex;min-height:38px;align-items:center;gap:7px;border:1px solid var(--line);border-radius:6px;background:var(--surface-solid);padding:7px;font-size:11px;cursor:pointer}.lock-grid label.checked{border-color:#0891b273;background:#0891b20f}.lock-grid input{position:absolute;opacity:0;pointer-events:none}.lock-grid label>span{display:grid;width:17px;height:17px;place-items:center;border:1px solid var(--line-strong);border-radius:4px;color:transparent}.lock-grid label.checked>span{border-color:var(--brand);background:var(--brand);color:#fff}.target-mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:4px}.target-mode-tabs button{min-height:34px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:12px;font-weight:800}.target-mode-tabs button.selected{background:var(--surface-solid);color:var(--brand);box-shadow:0 5px 14px #0f172a14}.shot-count-line{display:flex;justify-content:space-between;gap:8px;align-items:center}.shot-count-line b{font-size:12px}.shot-count-line button{border:0;padding:4px;color:var(--muted)}.shot-count-actions{display:flex;flex:0 0 auto;align-items:center;gap:7px}.shot-tabs{display:flex;gap:5px;overflow-x:auto;padding-bottom:2px}.shot-tabs button{flex:0 0 auto;border:1px solid var(--line);border-radius:6px;background:var(--surface-solid);padding:7px 9px;color:var(--muted);font-size:11px}.shot-tabs button.selected{border-color:var(--brand);color:var(--brand)}.product-shot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.product-shot-grid>button{position:relative;display:grid;min-width:0;gap:7px;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);padding:7px;text-align:left;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.product-shot-grid>button:hover,.product-shot-grid>button:focus-visible{border-color:#0891b273;box-shadow:0 10px 22px #0f172a1a}.product-shot-grid>button.selected{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand),0 10px 22px #0891b21f}.shot-copy{display:grid;gap:3px;min-height:48px;min-width:0}.product-shot-grid b{overflow:hidden;color:var(--text);font-size:12px;line-height:1.28;text-overflow:ellipsis;white-space:nowrap}.product-shot-grid small{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:11px;line-height:1.42;-webkit-box-orient:vertical;-webkit-line-clamp:2}.shot-photo{position:relative;display:grid;width:100%;aspect-ratio:16 / 11;place-items:center;overflow:hidden;border-radius:6px;background:var(--surface-soft);color:var(--muted)}.shot-photo img{width:100%;height:100%;object-fit:cover}.shot-photo em,.shot-photo i{position:absolute;top:5px;display:grid;height:20px;place-items:center;border-radius:4px;font-size:10px;font-style:normal}.shot-photo em{left:5px;background:#ffffffeb;padding:0 6px;color:#17624a}.shot-photo i{right:5px;width:20px;background:var(--brand);color:#fff}.custom-angle-shot{border-style:dashed!important;background:linear-gradient(180deg,rgba(8,145,178,.05),var(--surface-solid))!important}.custom-angle-shot.has-reference{border-style:solid!important;border-color:#0891b285!important}.custom-angle-placeholder{display:grid;width:100%;height:100%;place-items:center;background:linear-gradient(135deg,#0891b21a,#6366f10f);color:var(--brand)}.shot-fold-toggle{display:inline-flex;min-height:34px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:7px;background:var(--surface-solid);color:var(--muted);font-size:11px;font-weight:800}.shot-fold-toggle:hover,.shot-fold-toggle:focus-visible{border-color:#0891b26b;color:var(--brand)}.shot-hover-detail{position:absolute;left:7px;right:7px;bottom:7px;z-index:6;display:grid;gap:4px;border:1px solid rgba(8,145,178,.22);border-radius:7px;background:#fffffff5;box-shadow:0 16px 34px #0f172a29;padding:9px;color:var(--text);opacity:0;pointer-events:none;transform:translateY(5px);transition:opacity .16s ease,transform .16s ease,visibility .16s ease;visibility:hidden}[data-theme=dark] .shot-hover-detail{background:#141f2af5}.product-shot-grid>button:hover .shot-hover-detail,.product-shot-grid>button:focus-visible .shot-hover-detail{opacity:1;transform:translateY(0);visibility:visible}.shot-hover-detail b{white-space:normal}.shot-hover-detail small{display:block;-webkit-line-clamp:initial;color:var(--muted);font-size:10.5px;line-height:1.45}.advanced-camera-panel{display:grid;gap:10px}.advanced-camera-note,.custom-angle-help{display:flex;align-items:flex-start;gap:7px;border:1px solid rgba(8,145,178,.2);border-radius:7px;background:#0891b20f;padding:9px;color:var(--muted);font-size:11px;line-height:1.5}.advanced-camera-note b,.custom-angle-help b{color:var(--text)}.custom-angle-help{display:grid;gap:3px}.jimeng-angle-card{display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);padding:10px;box-shadow:0 16px 36px #0f172a14}.jimeng-angle-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.jimeng-angle-head b{color:var(--text);font-size:12px}.jimeng-angle-head button{display:inline-flex;align-items:center;gap:3px;border:0;background:transparent;color:var(--muted);font-size:10.5px;font-weight:800}.jimeng-angle-head button:hover{color:var(--brand)}.jimeng-angle-body{display:grid;grid-template-columns:minmax(174px,.95fr) minmax(0,1fr);gap:12px}.angle-orbit-stage{position:relative;display:grid;min-height:232px;place-items:center;border-radius:8px;background:#f5f5f5;cursor:grab;overflow:hidden;isolation:isolate;touch-action:none;-webkit-user-select:none;user-select:none}.angle-orbit-stage:active{cursor:grabbing}.angle-orbit{position:absolute;inset:8px 0;pointer-events:none}.orbit-scene-canvas{display:block;width:100%;height:100%;pointer-events:none}.orbit-arrow{position:absolute;z-index:5;display:grid;width:26px;height:26px;place-items:center;border:0;border-radius:50%;background:transparent;color:#a0a8b4;font-size:22px;line-height:1}.orbit-arrow:hover{color:var(--brand)}.orbit-top{top:27px;left:50%;transform:translate(-50%)}.orbit-bottom{bottom:27px;left:50%;transform:translate(-50%)}.orbit-left{left:11px;top:50%;transform:translateY(-50%)}.orbit-right{right:11px;top:50%;transform:translateY(-50%)}.angle-control-panel{display:grid;align-content:start;gap:10px;min-width:0}.camera-position-title{color:var(--text);font-size:11.5px;font-weight:900}.camera-position-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.camera-position-grid button{display:inline-flex;min-width:0;min-height:29px;align-items:center;justify-content:center;gap:3px;border:1px solid var(--line);border-radius:7px;background:var(--surface-solid);padding:0 3px;color:var(--muted);font-size:11px;font-weight:800;line-height:1;white-space:nowrap}.camera-position-grid button span{color:#b4bcc8;font-size:12px}.camera-position-grid button.selected{border-color:#cbd5e1eb;background:#eef0f3;color:#334155}.camera-position-grid button:hover{border-color:#cbd5e1eb;background:#f4f5f7;color:#334155}.angle-slider{display:grid;gap:5px}.angle-slider span{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px}.angle-slider b{color:var(--text);font-size:11px}.angle-slider em{color:var(--text);font-style:normal;font-weight:800}.angle-slider input{width:100%;height:6px;accent-color:#111827}.angle-bottom-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:2px}.angle-wide-switch{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:10.5px;font-weight:800;cursor:pointer}.angle-wide-switch input{position:absolute;opacity:0;pointer-events:none}.angle-wide-switch i{position:relative;width:31px;height:18px;border-radius:999px;background:var(--line-strong);transition:background .16s ease}.angle-wide-switch i:after{position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:999px;background:#fff;content:"";transition:transform .16s ease}.angle-wide-switch input:checked+i{background:#111827}.angle-wide-switch input:checked+i:after{transform:translate(13px)}.angle-state-line{color:var(--muted);font-size:10.5px;line-height:1.4}.camera-risk-notice{display:flex;align-items:flex-start;gap:7px;border-radius:7px;padding:9px;font-size:11px;line-height:1.45}.camera-risk-notice span{display:grid;gap:2px}.camera-risk-notice b{color:var(--text)}.camera-risk-notice.risk-low{border:1px solid rgba(21,128,61,.22);background:#15803d14;color:var(--ok)}.camera-risk-notice.risk-medium{border:1px solid rgba(194,125,15,.25);background:#c27d0f14;color:#93600d}.camera-risk-notice.risk-high{border:1px solid rgba(190,49,68,.24);background:#be314414;color:var(--danger)}.generation-camera-summary{display:grid;gap:8px}.generation-camera-summary h3{margin:0;font-size:13px}.generation-camera-summary p{color:var(--muted);font-size:12px;line-height:1.5}.setting-group{display:grid;gap:6px}.setting-group>b{font-size:11px}.output-count-summary>div{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(8,145,178,.22);border-radius:7px;background:#0891b20f;padding:10px 12px}.output-count-summary strong{color:var(--brand);font-size:18px;line-height:1}.output-count-summary span{color:var(--muted);font-size:11px;line-height:1.45;text-align:right}.segmented{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.segmented button{border:1px solid var(--line);border-radius:6px;background:var(--surface-solid);padding:8px 4px;color:var(--muted);font-size:11px}.segmented button.selected{border-color:var(--brand);background:#0891b212;color:var(--brand)}.setting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.advanced-settings{border-top:1px solid var(--line);padding-top:7px}.advanced-settings summary{cursor:pointer;color:var(--muted);font-size:11px}.advanced-settings label{margin-top:7px}.product-sticky-actions{position:static;z-index:5;display:grid;gap:7px;margin:0;border-top:1px solid var(--line);background:var(--surface-solid);box-shadow:none}.product-sticky-actions>span{color:var(--muted);font-size:11px;text-align:center}.product-workspace{display:grid;align-content:start;gap:14px;overflow-y:auto}.product-empty-state{display:grid;min-height:300px;place-items:center;align-content:center;gap:9px;color:var(--muted);text-align:center}.product-empty-state h3{color:var(--text);font-size:20px}.generation-plan{display:grid;gap:12px;border-bottom:1px solid var(--line);padding-bottom:15px}.generation-plan.compact-plan{gap:8px;border-bottom:0;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.compact-plan-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center}.compact-plan-row>div{display:grid;gap:2px;min-width:0}.compact-plan-row span{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:0}.compact-plan-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:12px}.compact-plan-row em{color:var(--muted);font-size:11px;font-style:normal;white-space:nowrap}.compact-plan-row .secondary-btn{min-height:30px;padding:6px 9px;font-size:11px}.compact-plan-details{border-top:1px solid var(--line);padding-top:8px}.compact-plan-details summary{cursor:pointer;color:var(--muted);font-size:11px;font-weight:800}.compact-plan-details .plan-shot-list{margin-top:8px}.generation-plan .section-heading{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.generation-plan .section-heading>div{display:grid;gap:3px}.generation-plan .section-heading span{color:var(--muted);font-size:11px}.plan-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;overflow:hidden}.plan-overview>div{display:grid;gap:5px;min-width:0;border-right:1px solid var(--line);padding:10px}.plan-overview>div:last-child{border-right:0}.plan-overview small{color:var(--muted);font-size:11px}.plan-overview b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.plan-shot-list{display:flex;flex-wrap:wrap;gap:5px}.plan-shot-list span{border:1px solid var(--line);border-radius:5px;background:var(--surface-soft);padding:5px 7px;font-size:11px}.route-line,.plan-ready{display:flex;align-items:flex-start;gap:7px;border:1px solid rgba(8,145,178,.18);border-radius:7px;background:#0891b20d;padding:9px;color:var(--muted);font-size:11px;line-height:1.5}.route-line span{display:grid;gap:2px}.route-line b{color:var(--text)}.plan-conflicts{display:grid;gap:6px}.plan-conflicts p{display:flex;gap:6px;align-items:flex-start;border-radius:6px;padding:8px;font-size:10px}.plan-conflicts p.error{background:#be314414;color:var(--danger)}.plan-conflicts p.warning{background:#c27d0f14;color:#93600d}.compiled-preview{border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);padding:9px}.compiled-preview summary{cursor:pointer;font-size:10px;font-weight:800}.compiled-preview article{margin-top:8px;border-top:1px solid var(--line);padding-top:8px}.compiled-preview article b{font-size:11px}.compiled-preview article p{margin:5px 0;color:var(--muted);font-size:10px}.compiled-preview pre{max-height:220px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:9px;line-height:1.45}.product-task-area{display:grid;gap:12px}.best-badge{position:absolute;top:7px;left:7px;display:inline-flex;align-items:center;gap:4px;border-radius:5px;background:#fffffff0;padding:5px 7px;color:#8a5c00;font-size:9px;font-style:normal}.quality-pass{color:var(--ok)!important}.quality-review{color:#93600d!important}.product-history{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:14px}.product-history .section-heading>div{display:flex;align-items:baseline;gap:8px}.product-history .section-heading span{color:var(--muted);font-size:11px}.product-history-list{display:grid;gap:7px}.product-history-list article{display:grid;grid-template-columns:66px minmax(0,1fr) auto auto;gap:9px;align-items:center;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);padding:7px}.product-history-list img,.history-placeholder{display:grid;width:66px;height:54px;place-items:center;border-radius:5px;background:var(--surface-solid);object-fit:cover;color:var(--muted)}.product-history-list article>div{display:grid;gap:3px;min-width:0}.product-history-list b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.product-history-list span,.product-history-list small{color:var(--muted);font-size:11px}.history-drawer-layer{z-index:115}.history-drawer{display:flex;flex-direction:column;box-shadow:0 24px 70px #0f172a38}.history-drawer .drawer-head{align-items:flex-start}.history-drawer .drawer-head>div{display:grid;gap:3px;min-width:0}.history-drawer .drawer-head h2{font-size:20px;line-height:1.2}.history-drawer .drawer-head p{color:var(--muted);font-size:12px;line-height:1.45}.history-drawer .small-drawer-body{height:calc(100% - 74px);padding-top:12px}.history-drawer .product-history{border-top:0;padding-top:0}.history-drawer .product-history-list{gap:8px}.history-drawer .product-history-list article{background:var(--surface-solid)}.shot-admin-list{display:grid;gap:7px}.shot-admin-list article{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(260px,1.3fr) minmax(160px,.5fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);padding:9px}.shot-admin-list article>div{display:grid;gap:3px}.shot-admin-list article b{font-size:11px}.shot-admin-list article span,.shot-admin-list article small,.shot-admin-list article p{color:var(--muted);font-size:9px;line-height:1.45}.profile-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:9px}.profile-admin-grid>article{display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:11px}.profile-admin-grid>article.disabled{opacity:.58}.profile-admin-grid .config-title em{color:var(--ok);font-size:10px;font-style:normal}.profile-admin-grid p{color:var(--muted);font-size:10px}.capability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.capability-grid span{display:flex;justify-content:space-between;gap:6px;border:1px solid var(--line);border-radius:5px;background:var(--surface-solid);padding:6px}.capability-grid small{overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis}.capability-grid b{font-size:9px}.analytics-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.analytics-cards>span{display:grid;gap:5px;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);padding:12px}.analytics-cards small{color:var(--muted);font-size:9px}.analytics-cards b{font-size:20px}.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.analytics-grid section{border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);padding:10px}.analytics-grid h4{margin-bottom:7px;font-size:12px}.analytics-grid p{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding:6px 0;color:var(--muted);font-size:9px}.cost-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:10px}.segmented-control{display:inline-grid;grid-auto-flow:column;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--surface-soft)}.segmented-control button{min-height:34px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;padding:0 14px;color:var(--muted)}.segmented-control button:last-child{border-right:0}.segmented-control button.selected{background:var(--accent);color:#fff}.cost-filter-bar select{width:180px}.cost-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.cost-kpi-grid>span{display:grid;align-content:start;gap:5px;min-width:0;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);padding:12px}.cost-kpi-grid small,.cost-kpi-grid em{color:var(--muted);font-size:10px;font-style:normal;line-height:1.45}.cost-kpi-grid b{color:var(--ink);font-size:20px}.cost-kpi-grid>span:nth-child(2) b{color:#0e7490}.cost-kpi-grid>span:nth-child(3) b{color:#15803d}.cost-trend-panel,.cost-recent-panel,.cost-breakdown-grid>section,.cost-pricing-editor{border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);padding:12px}.cost-trend-panel .ops-section-head h3,.cost-recent-panel .ops-section-head h3{display:flex;align-items:center;gap:6px}.cost-trend-list{display:grid;gap:7px}.cost-trend-list>div{display:grid;grid-template-columns:48px minmax(100px,1fr) 96px 52px;align-items:center;gap:9px;min-height:25px;font-size:10px}.cost-trend-list>div>span,.cost-trend-list>div>em{color:var(--muted);font-style:normal}.cost-trend-track{display:flex;height:10px;overflow:hidden;border-radius:3px;background:color-mix(in srgb,var(--line) 55%,transparent)}.cost-trend-track i{display:block;min-width:0;height:100%}.cost-trend-track i.vlm{background:#0891b2}.cost-trend-track i.generation{background:#22a559}.cost-breakdown-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.cost-breakdown-grid h3{margin:0 0 8px;font-size:13px}.cost-table-scroll{overflow:auto}.cost-table{width:100%;border-collapse:collapse;font-size:10px}.cost-table th{position:sticky;top:0;z-index:1;background:var(--surface-soft);color:var(--muted);font-weight:700;text-align:left;white-space:nowrap}.cost-table th,.cost-table td{border-bottom:1px solid var(--line);padding:8px 7px;vertical-align:top}.cost-table td b,.cost-table td span{display:block}.cost-table td small{display:block;margin-top:3px;color:var(--muted);line-height:1.4}.cost-table td em{color:var(--muted);font-style:normal;white-space:nowrap}.cost-table.compact td:first-child{max-width:190px;overflow-wrap:anywhere}.cost-status{display:inline-block!important;width:max-content;border-radius:4px;padding:3px 6px;font-size:9px}.cost-status.success{background:#dcfce7;color:#166534}.cost-status.failed{background:#fee2e2;color:#b91c1c}.cost-pricing-editor>summary{cursor:pointer;color:var(--ink);font-size:13px;font-weight:800}.cost-pricing-editor[open]>summary{margin-bottom:12px}.pricing-rule-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pricing-rule-list article{display:grid;gap:8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);padding:10px}.pricing-rule-list label{display:grid;gap:5px;color:var(--muted);font-size:10px}.pricing-rule-list input{min-width:0}.debug-panel{display:grid;gap:9px;border-top:1px solid var(--line);padding-top:10px}.debug-panel pre{max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);padding:10px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:9px;line-height:1.5}@media(max-width:1180px){.product-studio-grid{grid-template-columns:420px minmax(0,1fr)}.plan-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-overview>div:nth-child(2){border-right:0}.plan-overview>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media(max-width:900px){.product-studio-grid{grid-template-columns:1fr;grid-template-rows:minmax(320px,48%) minmax(0,1fr)}.product-sticky-actions{position:sticky;bottom:-14px;margin:0 -14px -14px;padding:10px 14px 14px;background:var(--surface-solid)}.product-history-list article{grid-template-columns:58px minmax(0,1fr) auto}.product-history-list article>button:last-child{grid-column:2 / -1}.shot-admin-list article{grid-template-columns:1fr auto}.shot-admin-list article>p,.shot-admin-list article>small{grid-column:1 / -1}}@media(max-width:560px){.product-uploaded{grid-template-columns:72px minmax(0,1fr) 32px}.product-uploaded>img{width:72px;height:68px}.recognition-editor,.setting-grid{grid-template-columns:1fr}.product-shot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.jimeng-angle-body{grid-template-columns:1fr}.angle-orbit-stage{min-height:208px}.plan-overview{grid-template-columns:1fr}.plan-overview>div{border-right:0;border-bottom:1px solid var(--line)}.plan-overview>div:last-child{border-bottom:0}.compact-plan-row{grid-template-columns:1fr;align-items:stretch}.compact-plan-row em{white-space:normal}.compact-plan-row .secondary-btn{justify-content:center}.product-history-list article{grid-template-columns:52px minmax(0,1fr)}.product-history-list img,.history-placeholder{width:52px;height:48px}.product-history-list article>button{grid-column:auto}.product-history-list article>button:last-child{grid-column:auto}.analytics-cards,.analytics-grid,.cost-kpi-grid,.cost-breakdown-grid,.pricing-rule-list{grid-template-columns:1fr}.cost-filter-bar{align-items:stretch;flex-direction:column}.cost-filter-bar select{width:100%}.segmented-control{width:100%;grid-auto-columns:1fr}.cost-trend-list>div{grid-template-columns:44px minmax(80px,1fr) 82px}.cost-trend-list>div>em{display:none}}
