@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Noto+Sans+SC:wght@400;500;600;700&display=swap");:root{--main:#15DBB0;--main-soft:rgba(21,219,176,0.12);--main-ring:rgba(21,219,176,0.32);--brand-green:#12EEA8;--brand-blue:#0051D6;--brand-gradient:linear-gradient(90deg,#12EEA8,#0051D6);--brand-gradient-hover:linear-gradient(90deg,#12EEA8,rgba(0,81,214,0.6));--bg:#FFFFFF;--bg-alt:#F8F9FB;--surface:#FFFFFF;--surface-hover:#FAFAFB;--bg-canvas:#F8F9FB;--bg-base:var(--bg-alt);--bg-surface:#FFFFFF;--bg-elevated:#FFFFFF;--bg-overlay:rgba(255,255,255,0.85);--bg-sunken:#F4F4F5;--fg:#1A1A1A;--fg-muted:#71717A;--fg-disabled:#A1A1AA;--ink-primary:var(--fg);--ink-secondary:#3F3F46;--ink-tertiary:var(--fg-muted);--ink-disabled:var(--fg-disabled);--text-primary:var(--fg);--text-secondary:var(--ink-secondary);--text-tertiary:var(--fg-muted);--border:#E4E4E7;--border-light:#F0F0F2;--input:#E4E4E7;--ring:#A1A1AA;--rule:var(--border-light);--rule-strong:var(--border);--border-subtle:var(--border-light);--border-default:var(--border);--accent:#F4F4F5;--accent-strong:#E4E4E7;--secondary:#F4F4F5;--secondary-fg:#1A1A1A;--destructive:#EF4444;--destructive-soft:rgba(239,68,68,0.10);--success:#15DBB0;--success-soft:var(--main-soft);--warning:#F59E0B;--warning-soft:rgba(245,158,11,0.10);--danger:var(--destructive);--danger-soft:var(--destructive-soft);--primary:var(--main);--primary-light:var(--brand-green);--primary-dark:#0FB99A;--primary-bg:var(--main-soft);--primary-glow:var(--main-ring);--shadow-sm:0 0 1px rgba(0,0,0,0.16),0 2px 12px rgba(0,0,0,0.04);--shadow-md:0 4px 12px rgba(0,0,0,0.08);--shadow-lg:0 12px 32px rgba(0,0,0,0.06);--radius:10px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:14px;--radius-2xl:18px;--radius-pill:999px;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--font-sans:"Inter","Noto Sans SC",system-ui,-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;--font-display:var(--font-sans);--font-mono:"JetBrains Mono","SF Mono",ui-monospace,Menlo,Consolas,monospace;--transition-fast:150ms cubic-bezier(0.2,0,0.2,1);--transition-normal:220ms cubic-bezier(0.2,0,0.2,1);--tracking-display:-0.02em;--tracking-label:0.04em}:root[data-theme=dark]{--bg:#0F1115;--bg-alt:#14161B;--surface:#1A1D23;--surface-hover:#21252C;--bg-canvas:#0F1115;--bg-base:#14161B;--bg-surface:#1A1D23;--bg-elevated:#21252C;--bg-overlay:rgba(15,17,21,0.85);--bg-sunken:#0C0E12;--fg:#EAECEF;--fg-muted:#9AA1AC;--fg-disabled:#5B6068;--ink-secondary:#C3C8D0;--text-primary:var(--fg);--text-secondary:var(--ink-secondary);--text-tertiary:var(--fg-muted);--border:#2C313A;--border-light:#23272F;--input:#2C313A;--ring:#4B525C;--rule:var(--border-light);--rule-strong:var(--border);--border-subtle:var(--border-light);--border-default:var(--border);--accent:#21252C;--accent-strong:#2C313A;--secondary:#21252C;--secondary-fg:#EAECEF;--destructive-soft:rgba(239,68,68,0.18);--warning-soft:rgba(245,158,11,0.18);--shadow-sm:0 0 1px rgba(0,0,0,0.5),0 2px 12px rgba(0,0,0,0.35);--shadow-md:0 4px 12px rgba(0,0,0,0.45);--shadow-lg:0 12px 32px rgba(0,0,0,0.5);color-scheme:dark}*,:after,:before{margin:0;padding:0;box-sizing:border-box}html{font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,html{height:100%}body{min-height:100vh;font-family:var(--font-sans);background:var(--bg-alt);color:var(--fg);letter-spacing:-.005em}button,input,select,textarea{font:inherit;letter-spacing:inherit;color:inherit}button{background:transparent;border:none;cursor:pointer}.eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-label);font-size:.7rem;color:var(--fg-muted);font-weight:500}.numbered{font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums}.rule{background:var(--rule)}.rule,.rule-strong{height:1px;border:0}.rule-strong{background:var(--rule-strong)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.08);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.16)}:focus-visible{outline:2px solid var(--main-ring);outline-offset:2px;border-radius:var(--radius-sm)}a:focus-visible,button:focus-visible{outline-offset:3px}#root{height:100%;min-height:100vh;position:relative;z-index:1}.app-layout{height:100vh;height:100dvh;min-height:100vh;display:flex;flex-direction:column;background:var(--bg-canvas)}.app-header{height:64px;flex-shrink:0;display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-lg);padding:0 var(--space-xl);background:var(--bg-overlay);border-bottom:1px solid var(--rule);-webkit-backdrop-filter:blur(20px) saturate(1.1);backdrop-filter:blur(20px) saturate(1.1);z-index:20;position:relative}.app-header:after{content:"";position:absolute;left:var(--space-xl);right:var(--space-xl);bottom:-1px;height:1px;background:var(--rule-strong);opacity:0;transition:opacity var(--transition-normal)}.logo{display:flex;align-items:center;gap:12px;min-width:0}.logo-icon{display:none}.logo-mark{font-family:var(--font-sans);font-weight:700;font-size:.98rem;line-height:1;letter-spacing:-.015em;color:var(--fg);display:inline-flex;align-items:center;gap:8px}.logo-mark:before{content:"";display:inline-block;width:22px;height:22px;border-radius:6px;background:var(--brand-gradient);box-shadow:0 4px 12px rgba(21,219,176,.3)}.logo-mark:after{display:none}.logo-text{font-family:var(--font-sans);color:var(--fg);font-size:.95rem;font-weight:700;letter-spacing:-.015em;white-space:nowrap}.logo-meta{font-family:var(--font-mono);font-size:.66rem;color:var(--fg-muted);text-transform:uppercase;letter-spacing:var(--tracking-label);padding-left:12px;margin-left:4px;border-left:1px solid var(--border-light);white-space:nowrap}.nav-actions{display:flex;align-items:center;gap:2px}.nav-actions .btn-ghost{padding:6px 10px}.nav-rule{width:1px;height:16px;background:var(--rule);margin:0 6px;display:inline-block}.deerflow-mark{position:fixed;right:14px;bottom:12px;z-index:30;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-size:.7rem;font-weight:600;color:var(--fg-muted);text-decoration:none;letter-spacing:-.02em;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:.7;transition:opacity var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.deerflow-mark:hover{opacity:1;color:var(--fg);border-color:var(--border)}.app-body{flex:1 1;min-height:0;display:flex;overflow:hidden}.app-sidebar{width:84px;flex-shrink:0;padding:18px 8px;display:flex;flex-direction:column;align-items:stretch;gap:2px;background:var(--bg-surface);border-right:1px solid var(--rule)}.sidebar-divider{margin:10px 8px;background:var(--rule)}.sidebar-item{width:100%;padding:12px 6px 10px;display:flex;flex-direction:column;align-items:center;gap:6px;border-radius:var(--radius-md);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast);background:transparent;border:none;color:var(--fg-muted);font-size:.66rem;font-family:var(--font-sans);font-weight:500;letter-spacing:.01em;position:relative;text-align:center}.sidebar-item .sidebar-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px}.sidebar-item .sidebar-icon svg{display:block}.sidebar-item:hover{color:var(--fg);background:var(--accent)}.sidebar-item.active{color:var(--fg);background:var(--main-soft);font-weight:600;position:relative}.sidebar-item.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--main)}.sidebar-item.active .sidebar-icon{color:var(--main)}.sidebar-spacer{flex:1 1}.app-main{flex:1 1;display:flex;overflow:hidden;min-width:0}.panel-left{width:370px;height:100%;flex-shrink:0;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border-light);position:relative}.panel-left-scroll{flex:1 1;overflow-y:auto;padding:12px 20px 16px;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain}.panel-left-scroll>*{animation:panel-section-enter .4s ease-out backwards}.panel-left-scroll>:first-child{animation-delay:.04s}.panel-left-scroll>:nth-child(2){animation-delay:.1s}.panel-left-scroll>:nth-child(3){animation-delay:.16s}.panel-left-scroll>:nth-child(4){animation-delay:.22s}.panel-left-scroll>:nth-child(5){animation-delay:.28s}.panel-left-scroll>:nth-child(6){animation-delay:.34s}@keyframes panel-section-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.panel-left-footer{flex-shrink:0;padding:8px 20px 16px;background:var(--surface);display:flex;flex-direction:column;gap:8px}.panel-right{min-width:0;padding:12px 20px 32px;gap:12px}.panel-full,.panel-right{flex:1 1;height:100%;overflow-y:auto;display:flex;flex-direction:column;background:var(--bg-alt);overscroll-behavior:contain}.panel-full{min-height:0;padding:24px;gap:16px}.panel-section{padding:8px 14px 10px}.glass-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.section-title{font-size:.86rem;font-weight:700;color:var(--fg);margin-bottom:8px;display:flex;align-items:center;gap:8px;letter-spacing:-.005em}.section-title:before{content:none}.hint{font-size:.78rem;color:var(--fg-muted);line-height:1.55}.label{display:block;margin-bottom:6px;font-size:.78rem;font-weight:600;color:var(--fg);text-transform:none}.btn,.label{font-family:var(--font-sans);letter-spacing:-.005em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--radius-lg);font-size:.85rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);border:1px solid transparent;white-space:nowrap;position:relative;outline:none;-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.5;pointer-events:none}.btn-primary{background:var(--brand-gradient);color:#FFFFFF;border-color:transparent}.btn-primary:hover{background:var(--brand-gradient-hover);box-shadow:0 6px 20px rgba(21,219,176,.32)}.btn-primary:active{transform:translateY(.5px)}.btn-primary:disabled{background:var(--accent-strong);color:var(--fg-muted)}.btn-primary--accent{background:var(--main);border-color:var(--main);color:#FFFFFF}.btn-primary--accent:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-secondary{background:var(--secondary);color:var(--secondary-fg);border:1px solid transparent}.btn-secondary:hover{background:var(--accent-strong)}.btn-outline{background:var(--bg);color:var(--fg);border:1px solid var(--border)}.btn-outline:hover{background:var(--accent)}.btn-ghost{background:transparent;color:var(--fg);border:1px solid transparent}.btn-ghost:hover{background:var(--accent)}.btn-danger{background:var(--destructive-soft);color:var(--destructive);border:1px solid transparent}.btn-danger:hover{background:rgba(239,68,68,.18)}.btn-sm{height:28px;padding:0 10px;font-size:.78rem;border-radius:var(--radius-md)}.btn-lg{height:40px;padding:0 18px;font-size:.92rem}.btn-block{width:100%}.btn svg{flex-shrink:0}.btn-cta{width:100%;height:48px;border-radius:var(--radius-xl);background:var(--brand-gradient);color:#FFFFFF;font-size:.96rem;font-weight:600;letter-spacing:-.005em;border:none;cursor:pointer;position:relative;transition:box-shadow var(--transition-fast),transform var(--transition-fast),filter var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-cta:hover{box-shadow:0 8px 28px rgba(21,219,176,.32),0 4px 16px rgba(0,81,214,.16);transform:translateY(-1px)}.btn-cta:active{transform:translateY(0)}.btn-cta:disabled{background:var(--accent-strong);color:var(--fg-muted);cursor:not-allowed;box-shadow:none;transform:none}.btn-cta-meta{display:block;font-size:.7rem;color:var(--fg-muted);text-align:center;margin-top:2px}.input{width:100%;height:36px;padding:0 12px;background:var(--bg);border:1px solid var(--input);border-radius:var(--radius-lg);color:var(--fg);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);font-family:var(--font-sans);font-size:.86rem}.input:hover{border-color:var(--ring)}.input:focus{border-color:var(--main);box-shadow:0 0 0 3px var(--main-soft)}.input::placeholder{color:var(--fg-muted)}textarea.input{height:auto;min-height:80px;padding:10px 12px;line-height:1.55}.select{width:100%;height:36px;padding:0 32px 0 12px;background:var(--bg);border:1px solid var(--input);color:var(--fg);border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:.86rem;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='%2371717a' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3 6l5 5 5-5'/%3e%3c/svg%3e");background-position:right 10px center;background-repeat:no-repeat;background-size:14px;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.select:hover{border-color:var(--ring)}.select:focus{border-color:var(--main);box-shadow:0 0 0 3px var(--main-soft)}.matrix-uploader-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}.matrix-cell{padding:14px;background:var(--bg-elevated);border-radius:10px;border:1px solid var(--border-subtle);min-height:238px;display:grid;grid-template-rows:auto 44px 1fr;gap:8px;min-width:0}.matrix-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;min-height:34px}.matrix-header h4{font-size:.86rem;font-weight:700;color:var(--text-primary);line-height:1.3;min-width:0}.matrix-count{font-size:.7rem;color:var(--primary);background:var(--primary-bg);padding:3px 8px;border-radius:999px;font-weight:700;flex-shrink:0}.matrix-hint{font-size:.72rem;color:var(--text-tertiary);line-height:1.45;min-height:48px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.matrix-body{min-height:0;display:flex;flex-direction:column;gap:9px}.matrix-selected-list{min-height:66px;display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,58px));justify-content:center;align-content:center;gap:6px;overflow:hidden}.matrix-cell-composition .matrix-selected-list{grid-template-columns:repeat(auto-fill,minmax(48px,1fr));justify-items:center;align-content:start;max-height:128px;overflow-y:auto;overscroll-behavior:contain;padding:6px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-surface)}.matrix-selected-item{width:66px;height:66px;background:var(--bg-surface);padding:4px;border-radius:8px;border:1px solid var(--border-subtle);flex-shrink:0}.matrix-cell-composition .matrix-selected-item{width:48px;height:48px;padding:3px}.matrix-selected-thumb{position:relative;width:100%;height:100%}.matrix-selected-thumb img{width:100%;height:100%;object-fit:cover;border-radius:6px}.matrix-thumb-index{position:absolute;left:3px;bottom:3px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:rgba(26,26,46,.72);color:white;font-size:.62rem;font-weight:700;line-height:16px;text-align:center}.matrix-dropzone{min-height:54px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px dashed var(--border-default);border-radius:8px;font-size:.82rem;color:var(--text-tertiary);cursor:pointer;transition:all .2s;background:var(--bg-surface);text-align:center;padding:8px}.matrix-dropzone:hover{border-color:var(--primary);background:var(--primary-bg);color:var(--primary)}.matrix-dropzone-filled{cursor:default;border-style:solid;color:var(--text-tertiary);background:var(--bg-base)}.matrix-dropzone-filled:hover{border-color:var(--border-default);background:var(--bg-base);color:var(--text-tertiary)}.reference-grid.compact{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.reference-thumb{position:relative;width:60px;height:60px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid transparent}.reference-thumb img{width:100%;height:100%;object-fit:cover}.remove-btn{position:absolute;top:0;right:0;width:18px;height:18px;background:var(--danger);color:white;border:none;border-radius:50%;cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center}.radio-group{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.radio-chip{padding:6px 14px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);color:var(--text-secondary);font-size:.8rem;cursor:pointer;transition:all .2s;font-family:var(--font-sans)}.radio-chip:hover{border-color:var(--primary);color:var(--primary)}.radio-chip.active{background:var(--primary);border-color:var(--primary);color:white;box-shadow:0 2px 8px var(--primary-glow)}.attr-row{margin-bottom:var(--space-md)}.divider{height:1px;background:var(--border-subtle);border:none;margin:var(--space-lg) 0}.params-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.attributes-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md)}.attributes-panel-compact{padding-bottom:var(--space-md)}.attributes-header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.attributes-summary-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:0}.attr-summary-chip{max-width:100%;border:1px solid var(--border-subtle);background:var(--bg-base);color:var(--text-secondary);border-radius:999px;padding:4px 9px;font-size:.72rem;line-height:1.35}.attr-summary-chip.active{border-color:rgba(14,165,164,.28);background:rgba(14,165,164,.08);color:var(--primary-dark)}.attr-summary-chip.muted{color:var(--text-tertiary)}.attributes-console{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-sm)}.attribute-control-block{border:1px solid var(--border-subtle);background:var(--bg-base);border-radius:8px;padding:10px}.attribute-control-block.compact{padding:9px}.attribute-control-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.attribute-control-title span{color:var(--text-primary);font-weight:700;font-size:.82rem}.attribute-control-title small{min-width:0;color:var(--text-tertiary);font-size:.68rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attribute-option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:8px}.attribute-option-grid.compact{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px}.attribute-option-card{min-height:38px;border:1px solid var(--border-default);border-radius:8px;background:var(--bg-surface);color:var(--text-secondary);font:inherit;font-size:.78rem;cursor:pointer;padding:7px 9px;text-align:left;transition:border-color .16s,color .16s,background .16s,box-shadow .16s}.attribute-option-grid.compact .attribute-option-card{min-height:32px;padding:6px 8px;font-size:.74rem}.attribute-option-card.active,.attribute-option-card:hover{border-color:var(--primary);color:var(--primary)}.attribute-option-card.active{background:var(--primary-bg);box-shadow:0 0 0 2px var(--primary-glow)}.attribute-option-card span{display:block;overflow-wrap:anywhere}.attributes-param-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.model-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.attribute-category-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.attribute-category-tab{min-width:0;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-base);color:var(--text-secondary);cursor:pointer;padding:7px 8px;text-align:left;transition:border-color .16s,background .16s,color .16s}.attribute-category-tab span,.attribute-category-tab strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attribute-category-tab strong{color:var(--text-primary);font-size:.74rem;line-height:1.3}.attribute-category-tab span{margin-top:2px;color:var(--text-tertiary);font-size:.68rem}.attribute-category-tab.active,.attribute-category-tab:hover{border-color:var(--primary);background:var(--primary-bg)}.attribute-category-tab.selected span{color:var(--primary-dark)}.generation-options-panel{padding:0;position:relative}.generation-options-trigger{width:100%;display:flex;align-items:center;gap:10px;padding:12px 14px;background:transparent;border:0;border-radius:var(--radius-xl);cursor:pointer;color:var(--fg);font-family:var(--font-sans);text-align:left;transition:background var(--transition-fast)}.generation-options-trigger:hover{background:color-mix(in srgb,var(--main) 5%,transparent)}.generation-options-trigger.open{background:color-mix(in srgb,var(--main) 8%,transparent)}.trigger-icon{color:var(--main);flex-shrink:0;opacity:.85;transition:opacity var(--transition-fast)}.generation-options-trigger.open .trigger-icon,.generation-options-trigger:hover .trigger-icon{opacity:1}.trigger-label{font-size:.86rem;font-weight:700;color:var(--fg);letter-spacing:-.005em;flex-shrink:0}.trigger-summary{flex:1 1;display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--fg-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trigger-sep{color:var(--border-default);opacity:.7}.trigger-caret{color:var(--fg-muted);transition:transform var(--transition-fast);flex-shrink:0}.generation-options-trigger.open .trigger-caret{transform:rotate(180deg)}.generation-options-popover{position:absolute;left:14px;right:14px;bottom:calc(100% + 6px);max-height:min(70vh,calc(100vh - 120px));overflow-y:auto;background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:16px;display:flex;flex-direction:column;gap:16px;z-index:9999;box-shadow:0 12px 36px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.06);animation:popover-enter .16s ease-out}@keyframes popover-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.popover-section{display:flex;flex-direction:column;gap:10px}.popover-section-title{font-size:.86rem;font-weight:700;color:var(--fg);letter-spacing:-.01em}.popover-chip-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.popover-chip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.popover-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;min-height:36px;border:1.5px solid var(--border-light);border-radius:10px;background:var(--bg-alt);color:var(--fg);font-family:var(--font-sans);font-size:.82rem;font-weight:500;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.popover-chip:hover:not(:disabled){border-color:color-mix(in srgb,var(--main) 50%,var(--border-default));background:color-mix(in srgb,var(--main) 4%,var(--bg-alt))}.popover-chip.active{border-color:var(--main);background:var(--surface);color:var(--main-strong,var(--main));font-weight:600}.popover-chip:disabled{opacity:.4;cursor:not-allowed}.popover-chip-ratio{padding:8px 10px;font-size:.78rem}.popover-chip-ratio svg{color:var(--fg-muted);flex-shrink:0}.popover-chip-ratio.active svg{color:var(--main)}.popover-chip-cluster{display:inline-flex;align-items:stretch;gap:4px}.popover-count-stepper{display:inline-flex;align-items:center;border:1px solid var(--border-light);border-radius:8px;background:var(--bg-alt);height:36px;overflow:hidden}.popover-count-btn{width:26px;height:100%;border:0;background:transparent;color:var(--fg-muted);cursor:pointer;font:inherit;font-weight:700;transition:background var(--transition-fast),color var(--transition-fast)}.popover-count-btn:hover:not(:disabled){background:color-mix(in srgb,var(--main) 8%,transparent);color:var(--main)}.popover-count-btn:disabled{opacity:.35;cursor:not-allowed}.popover-count-value{min-width:22px;text-align:center;font-size:.78rem;font-weight:600;color:var(--fg)}.popover-chip-flow{display:flex;flex-wrap:wrap;gap:8px}.trigger-count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:6px;border-radius:999px;background:var(--main);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:0;flex-shrink:0}.camera-trigger-clear{flex-shrink:0;padding:4px 10px;height:26px;background:transparent;border:1px solid var(--border-light);border-radius:6px;color:var(--fg-muted);cursor:pointer;font-family:var(--font-sans);font-size:.72rem;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.camera-trigger-clear:hover{border-color:var(--destructive,#e54040);color:var(--destructive,#e54040);background:color-mix(in srgb,var(--destructive,#e54040) 6%,transparent)}.popover-section-collapsible .popover-section-title{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0;margin:-4px 0;border-radius:4px;transition:color var(--transition-fast)}.popover-section-collapsible .popover-section-title:hover{color:var(--main)}.popover-section-collapsible .popover-section-title .section-collapse-caret{flex-shrink:0;color:var(--fg-muted);transition:transform .18s ease}.popover-section-collapsible.collapsed .popover-section-title .section-collapse-caret{transform:rotate(-90deg)}.popover-section-collapsible .popover-section-count{margin-left:auto;font-size:.72rem;color:var(--main);font-weight:600;letter-spacing:0}.popover-section-collapsible.no-value .popover-section-title{color:var(--fg-muted)}.popover-section-collapsible.no-value .section-collapse-caret{color:var(--fg-disabled)}.popover-section-collapsible.has-value .popover-section-title{color:var(--fg)}.popover-section-collapsible.collapsed .popover-chip-flow{display:none}.attributes-popover-footer{display:flex;justify-content:flex-end;padding-top:4px;border-top:1px solid var(--border-light);margin-top:-4px}.popover-clear-btn{background:transparent;border:0;padding:6px 10px;font-size:.78rem;color:var(--fg-muted);cursor:pointer;border-radius:6px;transition:background var(--transition-fast),color var(--transition-fast)}.popover-clear-btn:hover{background:color-mix(in srgb,var(--destructive,#e54040) 8%,transparent);color:var(--destructive,#e54040)}@media (max-width:520px){.popover-chip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.generate-button-wrapper{text-align:center;margin-bottom:var(--space-md)}.generate-btn{width:100%;padding:var(--space-md) var(--space-lg);font-size:1rem;font-weight:600;border-radius:var(--radius-md);background:var(--primary);color:white;border:none;cursor:pointer;box-shadow:0 4px 16px var(--primary-glow);transition:all var(--transition-fast);font-family:var(--font-sans)}.generate-btn:hover{background:var(--primary-dark)}.generate-btn:disabled{opacity:.6;cursor:not-allowed}.generate-btn.generating{animation:pulse 2s infinite}.generation-queue{margin:0 0 var(--space-lg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);overflow:hidden}.generation-queue-header{align-items:center;padding:8px 12px;font-size:.78rem;font-weight:600;color:var(--text-secondary);background:var(--bg-base)}.generation-job,.generation-queue-header{display:flex;justify-content:space-between;border-bottom:1px solid var(--border-subtle)}.generation-job{gap:12px;align-items:flex-start;padding:10px 12px}.generation-job:last-child{border-bottom:none}.generation-job.running{border-left:3px solid var(--primary);position:relative;overflow:hidden}.generation-job.running:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(21,219,176,0) 30%,rgba(21,219,176,.08) 50%,rgba(21,219,176,0) 70%,transparent);background-size:200% 100%;animation:generation-shimmer 2.4s ease-in-out infinite;pointer-events:none}@keyframes generation-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.generation-job.failed{border-left:3px solid var(--danger)}.generation-empty-state{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px 24px;color:var(--fg-disabled);text-align:center;-webkit-user-select:none;user-select:none}.generation-empty-state svg{color:color-mix(in srgb,var(--main) 35%,var(--fg-disabled));opacity:.6}.generation-empty-title{font-size:.92rem;font-weight:600;color:var(--fg-muted);letter-spacing:-.005em}.generation-empty-hint{font-size:.78rem;color:var(--fg-disabled);line-height:1.7;max-width:320px}.generation-result-reveal{animation:result-fade-in .5s ease-out;position:relative}.generation-result-reveal:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent,rgba(21,219,176,.16) 45%,rgba(21,219,176,.04) 50%,transparent);background-size:220% 100%;background-position:100% 0;animation:result-mask-scan .85s cubic-bezier(.4,0,.2,1);pointer-events:none;z-index:2;border-radius:inherit}.generation-result-reveal>*{animation:result-stagger-in .45s ease-out backwards}.generation-result-reveal>:first-child{animation-delay:.08s}.generation-result-reveal>:nth-child(2){animation-delay:.16s}.generation-result-reveal>:nth-child(3){animation-delay:.24s}.generation-result-reveal>:nth-child(4){animation-delay:.32s}@keyframes result-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes result-mask-scan{0%{background-position:100% 0;opacity:1}to{background-position:-120% 0;opacity:0}}@keyframes result-stagger-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.generation-job-title{font-size:.82rem;font-weight:600;color:var(--text-primary)}.generation-job-meta{margin-top:3px;font-size:.72rem;color:var(--text-tertiary)}.generation-job-error{margin-top:6px;font-size:.72rem;line-height:1.45;color:var(--danger);word-break:break-word}.recent-history-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.recent-history-item{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-light);background:var(--surface);transition:box-shadow .25s ease,transform .18s ease,border-color .2s ease;position:relative;display:flex;flex-direction:column}.recent-history-item.favorited{border-color:color-mix(in srgb,var(--main) 60%,#f5b800 40%)}.recent-history-item.favorited:after{content:"";position:absolute;top:8px;left:8px;width:18px;height:18px;background:var(--main);-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 17.3l-6.18 3.7 1.64-7.03L2 9.24l7.19-.61L12 2l2.81 6.63L22 9.24l-5.46 4.73L18.18 21z'/></svg>") center /contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 17.3l-6.18 3.7 1.64-7.03L2 9.24l7.19-.61L12 2l2.81 6.63L22 9.24l-5.46 4.73L18.18 21z'/></svg>") center /contain no-repeat;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4));z-index:3;pointer-events:none}.recent-history-item:hover{border-color:color-mix(in srgb,var(--main) 40%,var(--border-light));box-shadow:0 8px 24px rgba(0,0,0,.08),0 0 0 4px color-mix(in srgb,var(--main) 8%,transparent);transform:translateY(-3px)}.recent-history-img-wrap{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--bg-alt)}.recent-history-img-wrap img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;display:block;transition:transform .4s ease}.recent-history-item:hover .recent-history-img-wrap img{transform:scale(1.03)}.recent-history-overlay{position:absolute;left:6px;right:6px;bottom:6px;display:flex;align-items:center;justify-content:space-between;gap:1px;padding:2px;border-radius:7px;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 4px 14px rgba(0,0,0,.14),inset 0 0 0 1px rgba(255,255,255,.4);opacity:0;transform:translateY(4px);transition:opacity .2s ease,transform .2s ease;pointer-events:none;white-space:nowrap}.recent-history-item:hover .recent-history-overlay{opacity:1;transform:translateY(0);pointer-events:auto}.recent-history-action-btn{flex:0 0 auto;height:24px;padding:0 6px;border-radius:4px;border:none;background:transparent;color:#1a1a1a;cursor:pointer;font-size:.7rem;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap;transition:background .15s,color .15s}.recent-history-action-btn:hover{background:rgba(0,0,0,.06)}.recent-history-action-btn.icon-only{width:22px;padding:0;color:#444}.recent-history-action-btn.icon-only svg{width:13px;height:13px;stroke-width:1.8}.recent-history-action-btn.icon-only.danger{color:#c73939}.recent-history-action-btn.icon-only.danger:hover{background:rgba(199,57,57,.1)}.recent-history-overlay-divider{display:none}.recent-history-batch-badge{position:absolute;top:8px;right:8px;z-index:3;padding:2px 8px;background:rgba(0,0,0,.7);color:#fff;font-size:.66rem;font-weight:600;letter-spacing:0;border-radius:999px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);pointer-events:none}.recent-history-action-btn.primary{background:var(--main);color:#fff;font-weight:600;padding:0 8px}.recent-history-action-btn.primary:hover{background:color-mix(in srgb,var(--main) 90%,#000)}.recent-history-action-btn.favorite{flex:0 0 32px;color:var(--fg-muted)}.recent-history-action-btn.favorite:hover{color:#f5b800}.recent-history-action-btn.favorite.active{color:#f5b800;background:#fff}.recent-history-meta{padding:8px 10px 10px;display:flex;flex-direction:column;gap:3px}.recent-history-time{font-size:.7rem;color:var(--fg-muted);letter-spacing:0}.recent-history-tags{font-size:.65rem;color:var(--fg-disabled);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prompt-preview-section{margin-bottom:var(--space-md)}.prompt-toggle{font-size:.8rem!important}.prompt-preview-content{padding:var(--space-md);background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);max-height:500px;overflow-y:auto}.prompt-part{margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px dashed var(--border-subtle)}.prompt-part:last-child{border-bottom:none;margin-bottom:0}.prompt-part-label{font-size:.75rem;font-weight:600;color:var(--primary);margin-bottom:var(--space-xs)}.prompt-part-text{font-family:SF Mono,Fira Code,Menlo,monospace;font-size:.78rem;line-height:1.6;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;background:var(--bg-base);padding:var(--space-sm);border-radius:var(--radius-sm);margin:0}.result-container{max-height:500px;overflow:hidden;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-base);display:flex;align-items:center;justify-content:center}.result-container img{max-width:100%;max-height:500px;object-fit:contain;display:block}.result-container.zoomable,.result-container.zoomable img{cursor:zoom-in}.result-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md);align-items:center;flex-wrap:wrap}.multi-result-preview{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);overflow:hidden}.multi-result-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid var(--border-subtle);background:var(--bg-base);font-size:.8rem;color:var(--text-secondary);font-weight:600}.multi-result-header span:last-child{color:var(--text-tertiary);font-weight:500}.multi-result-grid{display:grid;grid-template-columns:repeat(auto-fill,220px);justify-content:start;gap:12px;background:transparent;padding:4px 0}.multi-result-item{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-light);background:var(--surface);transition:box-shadow .25s ease,transform .18s ease,border-color .2s ease;position:relative;display:flex;flex-direction:column}.multi-result-item:hover{border-color:color-mix(in srgb,var(--main) 40%,var(--border-light));box-shadow:0 8px 24px rgba(0,0,0,.08),0 0 0 4px color-mix(in srgb,var(--main) 8%,transparent);transform:translateY(-3px)}.multi-result-img-wrap{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--bg-alt)}.multi-result-img-wrap img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;display:block;transition:transform .4s ease}.multi-result-item:hover .multi-result-img-wrap img{transform:scale(1.03)}.multi-result-overlay{position:absolute;left:6px;right:6px;bottom:6px;display:flex;align-items:center;justify-content:space-between;gap:1px;padding:2px;border-radius:7px;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 4px 14px rgba(0,0,0,.14),inset 0 0 0 1px rgba(255,255,255,.4);opacity:0;transform:translateY(4px);transition:opacity .2s ease,transform .2s ease;pointer-events:none;white-space:nowrap}.multi-result-item:hover .multi-result-overlay{opacity:1;transform:translateY(0);pointer-events:auto}.multi-result-action-btn.icon-only{flex:0 0 auto;width:22px;height:24px;padding:0;border:none;background:transparent;color:#444;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;transition:background .15s,color .15s}.multi-result-action-btn.icon-only svg{width:13px;height:13px;stroke-width:1.8}.multi-result-action-btn.icon-only:hover{background:rgba(0,0,0,.06)}.multi-result-action-btn.icon-only.favorite-on{color:#f5b800}.multi-result-action-btn.icon-only.favorite-on:hover{background:rgba(245,184,0,.1)}.multi-result-action-btn.icon-only.danger{color:#c73939}.multi-result-action-btn.icon-only.danger:hover{background:rgba(199,57,57,.1)}.multi-result-meta{padding:8px 10px 10px;display:block;font-size:.7rem;font-weight:500;color:var(--text-secondary)}.result-regen-btn{position:absolute;bottom:28px;right:8px;padding:4px 10px;font-size:.75rem;font-weight:600;background:rgba(0,0,0,.55);color:#fff;border:none;border-radius:6px;cursor:pointer;opacity:0;transition:opacity .15s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap}.multi-result-item:hover .result-regen-btn,.result-container:hover .result-regen-btn{opacity:1}.comparison-panel{margin-top:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);overflow:hidden}.comparison-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border-subtle);background:var(--bg-base);font-size:.82rem;font-weight:600}.comparison-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--border-subtle)}.comparison-item{background:var(--bg-surface);min-height:280px;padding:10px;display:flex;flex-direction:column;gap:8px}.comparison-item img{width:100%;height:280px;object-fit:contain;background:var(--bg-base);border-radius:var(--radius-sm);cursor:zoom-in}.comparison-label{display:flex;justify-content:space-between;gap:8px;font-size:.75rem;color:var(--text-secondary)}.color-editor{display:flex;flex-direction:column;gap:12px}.color-editor-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.color-editor-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.color-editor-upload input{display:none}.color-editor-controls{border:1px solid var(--border-subtle);border-radius:8px;background:#f7f8fb;padding:10px;overflow:auto;max-height:none}.color-control-group{overflow:hidden;border:1px solid #e8d8c7;border-radius:8px;background:#fffdf9}.color-control-group+.color-control-group{margin-top:10px}.color-control-title{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;background:#f59f48;color:#fff;font-weight:700;font-size:.78rem}.color-control-title small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(255,255,255,.86);font-size:.68rem;font-weight:500}.color-control-title button{border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.18);color:#fff;border-radius:999px;padding:2px 8px;cursor:pointer;font:inherit;font-size:.68rem}.color-slider-row{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;align-items:center;padding:10px;border-top:1px solid #f0e4d6;margin:0;font-size:.72rem;color:var(--text-secondary)}.color-slider-label{display:flex;flex-direction:column;gap:2px}.color-slider-label strong{color:#4f3926;font-size:.78rem}.color-slider-label em{color:#9a8571;font-style:normal;font-size:.64rem}.color-slider-line{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px;align-items:center}.color-range{width:100%;height:8px;appearance:none;border-radius:999px;outline:none;accent-color:var(--primary);cursor:ew-resize}.color-range::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #f59f48;box-shadow:0 1px 5px rgba(76,48,24,.28)}.color-range-hue{background:linear-gradient(90deg,#e5484d,#f7c948,#4cc38a,#3b82f6,#9b5de5,#e5484d)}.color-range-saturation{background:linear-gradient(90deg,#c8ccd2,#f59f48)}.color-range-lightness{background:linear-gradient(90deg,#20242a,#f9fafb)}.color-range-contrast{background:linear-gradient(90deg,#9ca3af,#111827)}.color-range-temperature{background:linear-gradient(90deg,#3b82f6,#f5f7fb,#f97316)}.color-range-tint{background:linear-gradient(90deg,#66c27a,#f5f7fb,#bd6af0)}.color-range-vibrance{background:linear-gradient(90deg,#a8b0bb,#7cc4ff,#f59f48)}.color-range-detail{background:linear-gradient(90deg,#d1d5db,#64748b,#111827)}.color-range-fade{background:linear-gradient(90deg,#f9fafb,#d9c7aa)}.color-range-warmth{background:linear-gradient(90deg,#ede7dd,#c98552,#7c3f22)}.color-range-gray{background:linear-gradient(90deg,#fff,#7c8490,#111827)}.color-number-field{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px;border:1px solid #e6d6c6;border-radius:6px;background:#fff;padding:2px 5px;color:#8a6b4c;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.color-number-field input{width:100%;min-width:0;border:0;outline:0;background:transparent;text-align:right;color:#4f3926;font:inherit}.filter-preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.color-preset-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.filter-preset-card{border:1px solid var(--border-subtle);background:var(--bg-surface);border-radius:var(--radius-md);padding:6px;cursor:pointer;font:inherit;color:var(--text-secondary);display:flex;flex-direction:column;gap:5px;align-items:stretch;transition:border-color .15s,box-shadow .15s}button.filter-preset-card{text-align:left}.filter-preset-card.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow);color:var(--primary)}.filter-preset-thumb{height:54px;border-radius:var(--radius-sm);background-size:cover;background-position:50%;background-color:var(--bg-base)}.filter-preset-card span:last-child{font-size:.72rem;text-align:center}.filter-preset-card small{color:var(--text-tertiary);font-size:.66rem;line-height:1.35;text-align:center}.color-template-panel{border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-base);padding:10px}.color-built-in-panel{background:#fffaf3;border-color:#f2d7ba}.color-template-heading{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:8px}.color-template-heading strong{color:#4f3926;font-size:.82rem}.color-template-heading span{min-width:0;color:var(--text-tertiary);font-size:.7rem;text-align:right}.color-template-save-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-bottom:10px}.user-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.user-template-card{position:relative;padding:0;overflow:hidden}.template-apply-button{display:flex;flex-direction:column;gap:5px;align-items:stretch;width:100%;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;padding:6px}.template-apply-button span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-delete-button{border:0;border-top:1px solid var(--border-subtle);background:rgba(255,255,255,.72);color:var(--text-tertiary);cursor:pointer;font:inherit;font-size:.68rem;padding:5px}.template-delete-button:hover{color:var(--danger);background:rgba(239,68,68,.08)}.color-template-empty{border:1px dashed var(--border-default);border-radius:8px;color:var(--text-tertiary);font-size:.75rem;padding:12px;text-align:center}@media (max-width:520px){.color-preset-grid,.color-template-save-row,.user-template-grid{grid-template-columns:1fr}}@media (max-width:900px){.color-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.advanced-color-shell{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:22px;background:rgba(17,24,39,.72);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.advanced-color-workbench{width:min(1480px,100%);height:min(920px,100%);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.72);border-radius:10px;background:#f6f7f9;box-shadow:0 24px 80px rgba(0,0,0,.34)}.advanced-color-header{display:flex;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid var(--border-subtle);background:rgba(255,255,255,.96)}.advanced-color-header h3{margin:2px 0 4px;color:var(--text-primary);font-size:1.1rem}.advanced-color-header p{max-width:760px;color:var(--text-tertiary);font-size:.78rem}.advanced-color-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center}.advanced-color-main{flex:1 1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 520px}.advanced-color-preview{position:relative;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(45deg,rgba(0,0,0,.04) 25%,transparent 0),linear-gradient(-45deg,rgba(0,0,0,.04) 25%,transparent 0),#eef0f3;background-size:24px 24px}.advanced-color-preview img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 18px 54px rgba(17,24,39,.3)}.advanced-color-preview-meta{position:absolute;left:20px;right:20px;bottom:16px;display:flex;justify-content:space-between;gap:12px;color:rgba(255,255,255,.9);font-size:.72rem;text-shadow:0 1px 8px rgba(0,0,0,.44);pointer-events:none}.advanced-color-error{position:absolute;top:16px;left:16px;right:16px;border:1px solid rgba(239,68,68,.28);border-radius:8px;background:#fff1f2;color:var(--danger);padding:10px 12px;font-size:.78rem}.advanced-color-panel{min-width:0;overflow:auto;padding:16px;border-left:1px solid var(--border-subtle);background:#fff}.advanced-color-section{border:1px solid var(--border-subtle);border-radius:8px;background:#fff;padding:12px}.advanced-color-section+.advanced-color-section{margin-top:12px}.advanced-color-section-title{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:10px}.advanced-color-section-title strong,.tone-balance-card h4{color:var(--text-primary);font-size:.84rem}.advanced-color-section-title span{color:var(--text-tertiary);font-size:.68rem;text-align:right}.advanced-color-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.advanced-color-control-grid.single{grid-template-columns:1fr}.advanced-slider{display:flex;flex-direction:column;gap:6px;color:var(--text-secondary);font-size:.72rem}.advanced-slider span{display:flex;justify-content:space-between;gap:8px}.advanced-slider em{color:var(--text-primary);font-style:normal;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.advanced-slider input{width:100%;height:8px;appearance:none;border-radius:999px;background:linear-gradient(90deg,#d1d5db,#ef1b1b);cursor:ew-resize}.advanced-slider input::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:50%;border:2px solid #fff;background:#ef1b1b;box-shadow:0 1px 5px rgba(0,0,0,.24)}.ref-color-match{display:flex;flex-direction:column;gap:10px}.ref-color-match-picker{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:8px;border:1px dashed #cbd5e1;background:#f8fafc;color:#475569;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s;align-self:flex-start}.ref-color-match-picker:hover{background:#f1f5f9;border-color:var(--main,#15dbb0);color:color-mix(in srgb,var(--main) 80%,#000)}.ref-color-match-preview{position:relative;width:80px;height:80px;border-radius:8px;overflow:hidden;border:1px solid #e5e7eb;background:#f8fafc}.ref-color-match-preview img{width:100%;height:100%;object-fit:cover;display:block}.ref-color-match-clear{position:absolute;top:3px;right:3px;width:18px;height:18px;border-radius:50%;border:0;background:rgba(0,0,0,.62);color:#fff;font-size:11px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.ref-color-match-clear:hover{background:#e54040}.ref-color-match-controls{display:flex;align-items:flex-end;gap:12px}.ref-color-match-controls .advanced-slider{flex:1 1;min-width:0}.ref-color-match-actions{display:flex;gap:6px;align-items:center}.ref-color-match-apply{padding:7px 14px;border-radius:6px;border:0;background:var(--main,#15dbb0);color:#fff;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,transform .15s}.ref-color-match-apply:hover:not(:disabled){background:color-mix(in srgb,var(--main) 90%,#000);transform:translateY(-1px)}.ref-color-match-apply:disabled{opacity:.45;cursor:not-allowed}.ref-color-match-note{font-size:11px;color:#94a3b8;line-height:1.5}.tone-balance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tone-balance-card{border:1px solid var(--border-subtle);border-radius:8px;background:#fafafa;padding:12px}.tone-balance-card h4{margin-bottom:12px}.advanced-slider.compact+.advanced-slider.compact{margin-top:14px}.advanced-toggle{width:100%;border:1px solid var(--border-subtle);border-radius:8px;background:#f8fafc;color:var(--text-primary);cursor:pointer;font:inherit;font-size:.82rem;font-weight:700;padding:10px 12px}.advanced-lut-row{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:8px;align-items:center;margin-bottom:12px}.advanced-lut-row span{min-width:0;color:var(--text-tertiary);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.advanced-lut-upload{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:32px;border:1px solid var(--border-subtle);border-radius:8px;background:#111827;color:#fff;cursor:pointer;font-size:.78rem;font-weight:700;padding:7px 12px;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.advanced-lut-upload:hover{background:#0f172a;box-shadow:0 8px 18px rgba(17,24,39,.16);transform:translateY(-1px)}.advanced-lut-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.hsl-band-tabs{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;margin-bottom:12px}.hsl-band-tabs button{border:1px solid var(--border-subtle);border-radius:6px;background:#fff;color:var(--text-secondary);cursor:pointer;font:inherit;font-size:.7rem;padding:6px 0}.hsl-band-tabs button.active{border-color:var(--primary);background:var(--primary-bg);color:var(--primary-dark);font-weight:700}@media (max-width:980px){.advanced-color-main{grid-template-columns:1fr}.advanced-color-panel{border-left:0;border-top:1px solid var(--border-subtle)}}@media (max-width:720px){.advanced-color-shell{padding:8px}.advanced-color-header,.advanced-color-preview-meta{flex-direction:column}.advanced-color-control-grid,.advanced-lut-row,.hsl-band-tabs,.tone-balance-grid{grid-template-columns:1fr}}.generation-details{margin-top:var(--space-sm);padding:var(--space-md);background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);max-height:500px;overflow-y:auto}.detail-section{margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-subtle)}.detail-section:last-child{border-bottom:none;margin-bottom:0}.detail-label{font-size:.8rem;font-weight:600;color:var(--primary);margin-bottom:var(--space-xs)}.detail-sublabel{font-size:.75rem;color:var(--text-secondary)}.detail-thumb{width:48px;height:48px;border-radius:6px;object-fit:cover;border:1px solid var(--border-subtle)}.preview-sibling-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:6px}.preview-sibling-thumb{position:relative;padding:0;aspect-ratio:1/1;border:2px solid transparent;border-radius:6px;background:transparent;cursor:pointer;overflow:hidden;transition:border-color .15s,transform .15s}.preview-sibling-thumb:hover{border-color:rgba(21,219,176,.5);transform:translateY(-1px)}.preview-sibling-thumb.active{border-color:var(--main)}.preview-sibling-thumb img{width:100%;height:100%;object-fit:cover;display:block;border-radius:4px}.preview-sibling-index{position:absolute;top:2px;right:2px;background:rgba(0,0,0,.6);color:#fff;font-size:.6rem;font-weight:600;padding:1px 4px;border-radius:3px;line-height:1.3}.detail-ref-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}.detail-ref-cell{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.detail-ref-cell img{width:64px;height:64px;object-fit:cover;border-radius:6px;border:1px solid var(--border-light);cursor:zoom-in;transition:transform var(--transition-fast),border-color var(--transition-fast)}.detail-ref-cell img:hover{border-color:var(--main);transform:scale(1.04)}.detail-ref-label{font-size:.66rem;color:var(--fg-muted);letter-spacing:0;white-space:nowrap}.detail-code{font-family:SF Mono,Fira Code,Menlo,monospace;font-size:.75rem;line-height:1.5;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;background:var(--bg-base);padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);margin:0;max-height:200px;overflow-y:auto}.detail-code.prompt-full{max-height:300px}.attr-tags{display:flex;flex-wrap:wrap;gap:6px}.attr-tag{display:inline-block;padding:4px 10px;font-size:.75rem;border-radius:999px;background:var(--bg-base);border:1px solid var(--border-subtle);color:var(--text-secondary)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-md);margin-top:var(--space-md)}.gallery-item{position:relative;border-radius:var(--radius-md);overflow:hidden;cursor:zoom-in;border:2px solid transparent;transition:all .2s;box-shadow:var(--shadow-sm)}.gallery-item:hover{transform:translateY(-2px);border-color:var(--primary);box-shadow:var(--shadow-md)}.gallery-item{aspect-ratio:3/4;background:#f3f4f6}.gallery-item img{width:100%;height:100%;display:block;object-fit:contain}.gallery-item:hover .gallery-item-actions,.gallery-item:hover .gallery-item-overlay{opacity:1!important}.gallery-item-actions{transition:opacity .2s}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.modal-content{max-width:500px;width:100%;max-height:90vh;overflow-y:auto}.preview-modal{max-width:1000px}.api-log-modal-overlay{position:fixed;inset:0;z-index:1200;background:rgba(26,26,46,.22);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:flex-start;justify-content:flex-end;padding:calc(var(--header-height) + var(--space-md)) var(--space-lg) var(--space-lg)}.api-log-modal{width:min(980px,calc(100vw - 120px));border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.api-log-modal,.api-log-modal .panel-section{max-height:calc(100vh - var(--header-height) - 32px);overflow:hidden}.api-log-modal .panel-section{display:flex;flex-direction:column}.api-log-modal .log-list{overflow-y:auto;padding-right:2px;overscroll-behavior:contain}.preview-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.preview-image img{width:100%;border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.preview-info{max-height:65vh;overflow-y:auto}@media (max-width:768px){.preview-layout{grid-template-columns:1fr}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes spin{to{transform:rotate(1turn)}}.spinner{width:20px;height:20px;border-radius:50%;border:2px solid transparent;border-top:2px solid var(--primary);animation:spin .8s linear infinite}@media (max-width:1024px){.app-main{flex-direction:column}.panel-left{width:100%;border-right:none;border-bottom:1px solid var(--border-subtle)}}@media (max-width:600px){.matrix-uploader-grid{grid-template-columns:1fr}}.toast{padding:10px 16px;border-radius:var(--radius-md);font-size:.85rem;max-width:360px;animation:slideInUp .3s ease;box-shadow:var(--shadow-md)}.toast-success{background:#ECFDF5;border:1px solid #a7f3d0;color:#065F46}.toast-error{background:#FEF2F2;border:1px solid #fecaca;color:#991B1B}.toast-info{background:#FFF7ED;border:1px solid #fed7aa;color:#9A3412}.matrix-actions{min-height:40px;display:flex;flex-direction:column;gap:8px}.preset-btn{width:100%;justify-content:center;min-height:40px;font-size:.8rem;padding-left:10px;padding-right:10px}.preset-btn-placeholder{height:40px}.preset-gallery{margin-top:var(--space-md);padding:var(--space-md);background:var(--bg-base);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.preset-gallery-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm);font-size:.85rem;color:var(--text-secondary)}.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:4px;max-height:240px;overflow-y:auto}.preset-item{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;border:2px solid transparent;transition:all .15s}.preset-item img{width:100%;height:100%;object-fit:cover;display:block}.preset-item:hover{border-color:var(--primary);transform:scale(1.05);z-index:1}.preset-item.selected{border-color:var(--success);opacity:.6;cursor:default}.preset-item.loading{opacity:.5;pointer-events:none}.preset-check{background:rgba(52,199,89,.3);color:white;font-size:1.2rem;font-weight:700}.preset-check,.preset-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.preset-loading{background:rgba(0,0,0,.3)}.log-list{display:flex;flex-direction:column;gap:var(--space-sm)}.log-entry{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-surface);transition:all .2s}.log-entry.log-success{border-left:3px solid var(--success)}.log-entry.log-error{border-left:3px solid var(--danger)}.log-header{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;font-size:.85rem}.log-status{font-size:.9rem}.log-method{font-weight:600;color:var(--primary)}.log-time{color:var(--text-tertiary);font-size:.75rem}.log-duration{font-size:.75rem;color:var(--accent);background:rgba(76,139,245,.08);padding:1px 6px;border-radius:8px}.log-code{font-size:.75rem;color:var(--text-secondary)}.log-expand{margin-left:auto;font-size:.7rem}.log-expand,.log-summary{color:var(--text-tertiary)}.log-summary{font-size:.75rem;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.log-detail{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-subtle)}.log-tabs{display:flex;gap:4px;margin-bottom:var(--space-sm)}.log-tab{padding:4px 12px;border:none;background:var(--bg-base);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:.75rem;cursor:pointer;transition:all .15s;font-family:var(--font-sans)}.log-tab.active{background:var(--primary);color:white}.log-code-block{background:var(--bg-base);padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);font-family:SF Mono,Fira Code,monospace;font-size:.7rem;color:var(--text-secondary);max-height:300px;overflow:auto;white-space:pre-wrap;word-break:break-all;line-height:1.5}.log-error-msg{margin-top:var(--space-sm);padding:var(--space-sm);background:rgba(255,59,48,.06);border-radius:var(--radius-sm);font-size:.75rem;color:var(--danger)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#D1D5DB;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9CA3AF}.welcome-panel{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-md);color:var(--text-tertiary)}.welcome-panel h2{font-size:1.8rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.welcome-panel p{font-size:.95rem;color:var(--text-secondary);max-width:500px;line-height:1.6}.welcome-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg);margin-top:var(--space-lg);max-width:600px;width:100%}.welcome-step{padding:var(--space-lg);background:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);text-align:center;box-shadow:var(--shadow-sm)}.welcome-step .step-icon{font-size:2rem;margin-bottom:var(--space-sm)}.welcome-step .step-num{font-size:.7rem;color:var(--primary);font-weight:600;background:var(--primary-bg);padding:2px 8px;border-radius:10px;display:inline-block;margin-bottom:var(--space-xs)}.welcome-step .step-title{font-size:.85rem;font-weight:600;color:var(--text-primary)}.welcome-step .step-desc{font-size:.75rem;color:var(--text-tertiary);margin-top:4px}.picker-overlay{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;padding:40px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.picker-container{display:flex;width:100%;max-width:1100px;height:80vh;max-height:700px;background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:0 20px 60px rgba(0,0,0,.3);overflow:hidden}.picker-left{flex:1 1;display:flex;flex-direction:column;border-right:1px solid var(--border-subtle);min-width:0}.picker-header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-lg) var(--space-lg) var(--space-md);flex-shrink:0}.picker-title{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0}.picker-subtitle{font-size:.8rem;color:var(--text-tertiary);margin-top:2px}.picker-grid-scroll{flex:1 1;overflow-y:auto;padding:0 var(--space-lg)}.picker-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding-bottom:var(--space-md)}.picker-item{position:relative;aspect-ratio:3/4;border-radius:var(--radius-md);overflow:hidden;cursor:pointer;border:3px solid transparent;transition:all .15s;content-visibility:auto;contain-intrinsic-size:92px 123px;background:linear-gradient(45deg,#eef1f6 25%,transparent 0),linear-gradient(-45deg,#eef1f6 25%,transparent 0),linear-gradient(45deg,transparent 75%,#eef1f6 0),linear-gradient(-45deg,transparent 75%,#eef1f6 0),#f8fafc;background-size:18px 18px;background-position:0 0,0 9px,9px -9px,-9px 0}.picker-item img{width:100%;height:100%;object-fit:cover;display:block}.picker-item img[data-load-failed=true]{opacity:0}.picker-item:hover{border-color:var(--primary-light);transform:scale(1.02)}.picker-item.selected{border-color:var(--warning)}.picker-item.already-used{box-shadow:inset 0 0 0 2px rgba(245,159,72,.35)}.picker-item-check{position:absolute;top:6px;right:6px}.picker-check-dot{width:14px;height:14px;border-radius:50%;background:var(--warning);border:2px solid white;box-shadow:0 1px 3px rgba(0,0,0,.3)}.picker-item.disabled{opacity:.35;cursor:default}.picker-item.disabled:hover{transform:none;border-color:transparent}.picker-item-disable-btn{position:absolute;bottom:4px;left:4px;display:none;padding:2px 6px;font-size:.68rem;font-weight:600;background:rgba(220,38,38,.85);color:#fff;border:none;border-radius:4px;cursor:pointer;line-height:1.4;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.picker-item-disable-btn.is-disabled{background:rgba(75,85,99,.85)}.picker-item:hover .picker-item-disable-btn{display:block}.picker-item-disable-btn:hover{background:rgba(185,28,28,.95)}.picker-item-disable-btn.is-disabled:hover{background:rgba(55,65,81,.95)}.picker-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-subtle);flex-shrink:0;background:var(--bg-elevated)}.picker-footer-count{font-size:.85rem;color:var(--text-secondary)}.picker-footer-actions{display:flex;gap:var(--space-sm)}.picker-right{width:380px;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:center;background:var(--bg-base);padding:var(--space-lg)}.picker-close{position:absolute;top:12px;right:12px;background:transparent;border:none;color:var(--text-tertiary);font-size:1.2rem;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);z-index:1}.picker-close:hover{background:var(--bg-surface);color:var(--text-primary)}.picker-preview{position:relative;width:100%}.picker-preview img{width:100%;max-height:60vh;object-fit:contain;border-radius:var(--radius-md);background:linear-gradient(45deg,#eef1f6 25%,transparent 0),linear-gradient(-45deg,#eef1f6 25%,transparent 0),linear-gradient(45deg,transparent 75%,#eef1f6 0),linear-gradient(-45deg,transparent 75%,#eef1f6 0),#f8fafc;background-size:18px 18px;background-position:0 0,0 9px,9px -9px,-9px 0}.picker-preview-badge{position:absolute;top:8px;left:8px;background:var(--bg-surface);color:var(--text-primary);font-size:.75rem;font-weight:600;padding:4px 12px;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.picker-preview-empty{color:var(--text-tertiary);font-size:.9rem;text-align:center}@media (max-width:800px){.picker-right{display:none}.picker-grid{grid-template-columns:repeat(3,1fr)}}.asset-lib-manager{width:100%;max-width:none;margin:0;padding:var(--space-lg)}.asset-lib-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-lg)}.asset-lib-title{font-size:1.4rem;font-weight:700;color:var(--text-primary);margin:0 0 4px}.asset-lib-desc{font-size:.85rem;color:var(--text-secondary);margin:0}.asset-lib-count{font-size:.85rem;color:var(--primary);font-weight:600;background:var(--primary-bg);padding:4px 12px;border-radius:var(--radius-xl)}.asset-lib-toolbar{justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.asset-lib-toolbar,.asset-lib-toolbar-left,.asset-lib-toolbar-right{display:flex;gap:var(--space-sm)}.asset-lib-empty{width:100%;min-height:520px;text-align:center;padding:120px 20px;color:var(--text-tertiary);background:var(--bg-surface);border-radius:var(--radius-lg);border:2px dashed var(--border-default)}.asset-lib-grid{display:grid;grid-template-columns:repeat(auto-fill,150px);gap:18px;justify-content:start;align-items:start;min-height:520px}.asset-lib-item{position:relative;aspect-ratio:3/4;width:150px;border-radius:var(--radius-md);overflow:hidden;cursor:pointer;border:3px solid transparent;transition:all .15s;content-visibility:auto;contain-intrinsic-size:140px 187px;background:linear-gradient(45deg,#eef1f6 25%,transparent 0),linear-gradient(-45deg,#eef1f6 25%,transparent 0),linear-gradient(45deg,transparent 75%,#eef1f6 0),linear-gradient(-45deg,transparent 75%,#eef1f6 0),#f8fafc;background-size:18px 18px;background-position:0 0,0 9px,9px -9px,-9px 0;box-shadow:var(--shadow-sm)}.asset-lib-item img{width:100%;height:100%;object-fit:cover;display:block}.asset-lib-item img[data-load-failed=true]{opacity:0}.asset-lib-item:hover{border-color:var(--primary-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.asset-lib-item.selected{border-color:var(--primary)}.asset-lib-item.drag-over{border-color:var(--accent);transform:scale(1.02)}.asset-lib-checkbox{position:absolute;top:8px;left:8px;width:22px;height:22px;border-radius:50%;border:2px solid white;background:rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;color:white;font-size:.7rem;font-weight:700;box-shadow:0 1px 4px rgba(0,0,0,.3);transition:all .15s}.asset-lib-checkbox.checked{background:var(--primary);border-color:var(--primary)}.asset-lib-item-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.6) 0,transparent 40%);opacity:0;transition:opacity .2s;display:flex;align-items:flex-start;justify-content:space-between;padding:8px;z-index:4}.asset-lib-item:hover .asset-lib-item-overlay{opacity:1}.asset-lib-delete-btn{position:absolute;top:8px;right:8px;background:rgba(255,59,48,.9);color:white;border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.75rem;box-shadow:0 1px 4px rgba(0,0,0,.3);z-index:6}.asset-lib-delete-btn:hover{background:var(--danger)}.asset-lib-drag-hint{position:absolute;left:8px;top:8px;color:rgba(255,255,255,.8);font-size:1.2rem;cursor:grab;-webkit-user-select:none;user-select:none}.asset-lib-preview-float{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.asset-lib-preview-float img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 8px 40px rgba(0,0,0,.5)}.sidebar-divider{width:40px;height:1px;background:var(--border-subtle);margin:var(--space-xs) 0}.product-category-selector{align-items:center;gap:12px;padding:10px 14px;margin-bottom:0}.product-category-chips{display:flex;align-items:center;gap:4px;flex:1 1;overflow-x:auto}.product-category-chip{flex-shrink:0;height:28px;padding:0 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--fg-muted);font-family:var(--font-sans);font-size:.78rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.product-category-chip:hover{color:var(--fg);background:color-mix(in srgb,var(--main) 6%,transparent)}.product-category-chip.active{color:var(--main);border-color:var(--main);background:var(--surface);font-weight:600}.asset-lib-category-tabs{display:flex;gap:8px;flex-wrap:wrap}.category-tab{gap:6px;padding:5px 10px;font-size:.76rem;font-weight:600;border-radius:999px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;white-space:nowrap}.category-tab,.category-tab small{display:inline-flex;align-items:center}.category-tab small{min-width:18px;height:18px;justify-content:center;padding:0 5px;border-radius:999px;background:rgba(15,23,42,.06);color:var(--text-tertiary);font-size:.68rem}.category-tab:hover{border-color:var(--primary);color:var(--primary)}.category-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.category-tab.active small{background:rgba(255,255,255,.22);color:#fff}.asset-lib-category-tabs{margin-bottom:12px;padding:0 2px}.asset-lib-save-hint{display:inline-flex;align-items:center;height:24px;margin:-4px 0 10px 2px;padding:0 8px;border-radius:6px;background:rgba(34,197,94,.12);color:var(--success);font-size:.72rem;font-weight:600}.composition-rows-panel{margin-bottom:16px;padding:16px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.composition-rows-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.composition-rows-actions{display:flex;gap:8px;flex-shrink:0}.composition-rows-header h3{margin:0;font-size:1rem;color:var(--text-primary)}.composition-rows-header p{margin:6px 0 0;color:var(--text-tertiary);font-size:.78rem}.composition-rows-empty{padding:22px;text-align:center;color:var(--text-tertiary);background:var(--bg-base);border:1px dashed var(--border-default);border-radius:var(--radius-md);font-size:.84rem}.composition-rows-list{display:grid;gap:12px}.composition-row-card{display:grid;grid-template-columns:226px minmax(0,1fr) auto;gap:14px;padding:14px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.composition-row-fields{display:grid;grid-template-columns:minmax(150px,1fr) minmax(140px,.8fr) minmax(120px,.7fr);gap:10px;align-content:start}.composition-row-fields label,.composition-row-prompt{display:grid;gap:5px;min-width:0}.composition-shared-prompt{margin-bottom:14px}.composition-shared-prompt span{font-size:.78rem;color:var(--text-secondary);font-weight:700}.composition-preview-title,.composition-row-fields span{font-size:.72rem;color:var(--text-tertiary);font-weight:700}.composition-row-prompt{grid-column:1/-1}.composition-prompt-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.composition-prompt-status{font-size:.72rem;font-weight:600;color:var(--text-tertiary)}.composition-prompt-status.status-saving{color:var(--warning)}.composition-prompt-status.status-saved{color:var(--success)}.composition-prompt-status.status-failed{color:var(--danger)}.composition-prompt-textarea{min-height:96px;resize:vertical;line-height:1.55}.composition-row-previews{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:start}.composition-row-card>.composition-row-previews{grid-template-columns:1fr 1fr}.composition-row-delete{align-self:start}.composition-preview-box{display:grid;gap:6px;min-width:0}.composition-preview-box img,.composition-preview-empty{width:92px;height:92px;border-radius:var(--radius-sm)}.composition-preview-box img{object-fit:cover;background:var(--bg-base);border:1px solid var(--border-subtle)}.composition-preview-empty{display:flex;align-items:center;justify-content:center;padding:8px;color:var(--text-tertiary);background:var(--bg-base);border:1px dashed var(--border-default);font-size:.72rem;text-align:center}.composition-upload-button{width:92px;justify-content:center}.composition-upload-button input{display:none}.form-input,.form-pick-button,.form-select,.form-textarea{width:100%;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-sans);font-size:.8rem}.form-input,.form-pick-button,.form-select{height:34px;padding:0 10px}.form-pick-button{text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.form-pick-button:hover{border-color:var(--primary)}.form-textarea{min-height:72px;padding:9px 10px;resize:vertical}.form-input:focus,.form-pick-button:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(76,139,245,.12)}@media (max-width:980px){.composition-row-card{grid-template-columns:1fr}.composition-row-previews{grid-template-columns:repeat(2,1fr)}}@media (max-width:720px){.composition-rows-header{flex-direction:column}.composition-rows-actions{width:100%}.composition-rows-actions .btn{flex:1 1}.composition-row-fields{grid-template-columns:1fr}}.picker-category-tabs{padding:0 12px;margin-bottom:10px}.asset-lib-category-select{position:absolute;left:8px;right:8px;bottom:8px;z-index:8;height:28px;border:1px solid rgba(255,255,255,.75);border-radius:6px;background:rgba(255,255,255,.92);color:var(--text-secondary);font-size:.72rem;padding:0 6px;box-shadow:0 2px 8px rgba(15,23,42,.12);cursor:pointer;pointer-events:auto}.camera-control-panel{margin-top:var(--space-md)}.camera-control-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-sm)}.camera-control-prompt-note{margin:10px 0 0;padding:8px 10px;border-radius:8px;background:var(--primary-bg);color:var(--primary-dark)}.camera-modal-overlay{position:fixed;inset:0;z-index:3200;background:rgba(15,23,42,.48);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px}.camera-modal{width:min(860px,96vw);max-height:90vh;overflow:hidden;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:16px;box-shadow:0 24px 80px rgba(15,23,42,.28);display:flex;flex-direction:column}.camera-modal-header{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px 14px;border-bottom:1px solid var(--border-subtle)}.camera-modal-header h3{margin:0 0 4px;font-size:1.1rem;color:var(--text-primary)}.camera-modal-header p{margin:0;font-size:.82rem;color:var(--text-tertiary)}.camera-modal .camera-control-wheels{margin:0;border:none;border-radius:0;padding:24px;overflow-x:auto}.camera-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px 20px;border-top:1px solid var(--border-subtle);background:var(--bg-elevated)}.camera-control-wheels{display:flex;align-items:center;justify-content:center;gap:4px;padding:12px 6px;background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);margin-top:var(--space-sm)}.camera-wheel-column{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;flex:1 1}.camera-wheel-title{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.camera-wheel-wrapper{display:flex;flex-direction:column;align-items:center;gap:2px}.camera-wheel-arrow{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.camera-wheel-arrow:hover:not(:disabled){color:var(--text-primary);background:var(--bg-surface)}.camera-wheel-arrow:disabled{opacity:.2;cursor:default}.camera-wheel-viewport{position:relative;width:70px;overflow:hidden;border-radius:var(--radius-md);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.camera-wheel-viewport:active{cursor:grabbing}.camera-wheel-highlight{position:absolute;left:0;right:0;border-radius:var(--radius-md);background:var(--primary-bg);background-image:url(/camera/camera-control-bg-BWXIpVpf.png);background-size:cover;background-position:50%;border:1.5px solid var(--primary);pointer-events:none;z-index:0}.camera-wheel-track{position:relative;z-index:1}.camera-wheel-item,.camera-wheel-track{display:flex;flex-direction:column;align-items:center}.camera-wheel-item{justify-content:center;width:70px;cursor:pointer;transition:opacity .2s ease;flex-shrink:0}.camera-wheel-item-label{font-size:10px;font-weight:500;color:var(--text-secondary);text-align:center;line-height:1.2;transition:all .2s ease;padding:0 4px;overflow-wrap:anywhere}.camera-wheel-item-label.active{font-size:11px;font-weight:600;color:var(--text-primary)}.camera-wheel-item-img{width:62px;height:40px;object-fit:cover;object-position:center;border-radius:6px;transition:all .2s ease;pointer-events:none}.camera-wheel-item-img.active{width:68px;height:46px}.camera-wheel-item-img.lens{width:64px;height:42px}.camera-wheel-item-img.lens.active{width:70px;height:48px}.camera-wheel-item-category{font-size:8px;font-weight:700;text-transform:uppercase;color:var(--text-tertiary);margin-top:2px;padding:1px 5px;background:var(--bg-surface);border-radius:4px;box-shadow:inset 0 0 6px 1px rgba(156,163,175,.12)}.camera-wheel-selected-label{display:-webkit-box;width:70px;min-height:22px;font-size:9px;font-weight:500;color:var(--text-primary);max-width:70px;text-align:center;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2;overflow-wrap:anywhere}.camera-wheel-divider{width:1px;height:54px;background:var(--border-subtle);border-radius:1px;flex-shrink:0;align-self:center;margin-bottom:22px}.dev-debug-fab{position:fixed;right:20px;bottom:20px;z-index:9998;border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:10px 14px;background:rgba(12,18,32,.9);color:#fff;box-shadow:var(--shadow-lg);cursor:pointer}.dev-debug-overlay{position:fixed;inset:0;z-index:9998;background:rgba(5,8,15,.78);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:24px}.dev-debug-workbench{height:100%;display:flex;flex-direction:column;gap:14px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-panel);box-shadow:var(--shadow-xl);padding:16px}.dev-debug-header{display:flex;justify-content:space-between;gap:12px;align-items:center}.dev-debug-header span,.dev-debug-header strong{display:block}.dev-debug-header span{color:var(--text-tertiary);font-size:.78rem;margin-top:4px}.dev-debug-actions{display:flex;gap:8px;flex-wrap:wrap}.dev-debug-grid{flex:1 1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.dev-debug-pane{min-height:0;overflow:auto;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-base);padding:12px}.dev-debug-textarea{min-height:calc(100% - 24px);font-family:SF Mono,Fira Code,monospace;font-size:.78rem;line-height:1.7;resize:none}.dev-debug-table{display:grid;gap:8px}.dev-debug-table>div{display:grid;grid-template-columns:1fr 120px 110px 90px;gap:8px;align-items:center;padding:8px;border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-secondary);font-size:.78rem}@media (max-width:900px){.dev-debug-overlay{padding:12px}.dev-debug-grid{grid-template-columns:1fr}.dev-debug-header{align-items:flex-start;flex-direction:column}}.console{min-height:100vh;background:var(--bg-canvas);color:var(--ink-primary);font-family:var(--font-sans);display:flex;flex-direction:column}.console-header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-2xl);border-bottom:1px solid var(--rule);background:var(--bg-overlay);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.console-brand{display:flex;align-items:baseline;gap:18px}.console-brand-mark{font-family:var(--font-display);font-size:1.4rem;font-weight:500;letter-spacing:-.03em;font-variation-settings:"opsz" 144;color:var(--ink-primary)}.console-brand-mark:after{content:"";display:inline-block;width:4px;height:4px;background:var(--accent);border-radius:50%;margin-left:8px;vertical-align:5px}.console-brand-meta{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--ink-tertiary);border-left:1px solid var(--rule);padding-left:18px}.console-close{background:transparent;border:1px solid var(--rule-strong);padding:8px 16px;font-family:var(--font-sans);font-size:.82rem;font-weight:500;color:var(--ink-primary);cursor:pointer;border-radius:2px;transition:background var(--transition-fast),color var(--transition-fast)}.console-close:hover{background:var(--ink-primary);color:var(--bg-elevated)}.console-body{flex:1 1;display:flex;min-height:0}.console-aside{width:300px;flex-shrink:0;background:var(--bg-surface);border-right:1px solid var(--rule);padding:var(--space-xl) var(--space-lg);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-xl)}.console-aside-section{display:flex;flex-direction:column;gap:4px}.console-aside-subsection{border-top:1px solid var(--rule);padding-top:var(--space-lg)}.console-aside-eyebrow{font-size:.7rem;letter-spacing:.02em;color:var(--ink-tertiary);margin-bottom:10px;font-weight:500}.console-nav-item{text-align:left;display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;padding:12px;margin:2px 0;background:transparent;border:0;border-radius:8px;cursor:pointer;font-family:var(--font-sans);color:var(--ink-secondary);transition:color var(--transition-fast),background var(--transition-fast)}.console-nav-item:hover{color:var(--ink-primary);background:color-mix(in srgb,var(--accent) 6%,transparent)}.console-nav-item.active{color:var(--ink-primary);background:color-mix(in srgb,var(--accent) 12%,transparent)}.console-nav-index{font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:0;color:var(--ink-tertiary);padding-top:3px}.console-nav-item.active .console-nav-index{color:var(--accent);font-weight:700}.console-nav-text{display:flex;flex-direction:column;gap:3px;min-width:0}.console-nav-label{font-size:.96rem;font-weight:600;letter-spacing:-.005em;color:inherit}.console-nav-desc{font-size:.72rem;color:var(--ink-tertiary);line-height:1.5}.console-subnav-item{text-align:left;display:flex;flex-direction:column;gap:2px;padding:10px 12px;margin:2px 0;background:transparent;border:0;border-radius:8px;cursor:pointer;font-family:var(--font-sans);color:var(--ink-secondary);position:relative;transition:color var(--transition-fast),background var(--transition-fast)}.console-subnav-item:hover{color:var(--ink-primary);background:color-mix(in srgb,var(--accent) 6%,transparent)}.console-subnav-item.active{color:var(--ink-primary);background:color-mix(in srgb,var(--accent) 14%,transparent)}.console-subnav-item.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--accent)}.console-subnav-label{font-size:.86rem;font-weight:600}.console-subnav-subtitle{font-size:.7rem;color:var(--ink-tertiary);letter-spacing:0}.console-content{flex:1 1;overflow-y:auto;padding:var(--space-2xl) var(--space-2xl) calc(var(--space-2xl) * 1.5);background:var(--bg-canvas)}.console-content-inner{max-width:1080px;margin:0 auto}.console-content-inner h1{font-family:var(--font-display);font-weight:500;letter-spacing:-.02em;font-variation-settings:"opsz" 60;color:var(--ink-primary)}.console-content-inner h2{font-family:var(--font-display);font-weight:500;letter-spacing:-.01em;font-variation-settings:"opsz" 36;color:var(--ink-primary)}.console-content-inner code{font-size:.78em;background:var(--bg-sunken)!important;color:var(--ink-primary);padding:2px 6px!important}.console-content-inner code,.console-content-inner pre{font-family:var(--font-mono);border-radius:2px!important}.console-content-inner pre{background:var(--ink-primary)!important;color:var(--bg-elevated);border:1px solid var(--rule)}.product-category-selector{display:flex;flex-direction:column;gap:8px}.product-category-heading{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;font-weight:600;color:var(--fg)}.product-category-heading-meta{font-size:.7rem;font-weight:400;color:var(--fg-muted)}.product-category-segmented{display:inline-flex;background:var(--accent);border-radius:var(--radius-lg);padding:4px;gap:2px;width:100%;position:relative}.product-category-segment{flex:1 1;padding:7px 10px;font-size:.82rem;font-weight:500;border:none;border-radius:calc(var(--radius-lg) - 4px);cursor:pointer;background:transparent;color:var(--fg-muted);transition:all var(--transition-fast);white-space:nowrap;text-align:center}.product-category-segment:hover{color:var(--fg)}.product-category-segment.active{background:var(--surface);color:var(--fg);font-weight:600;box-shadow:var(--shadow-sm)}.console h1,.console h2,.console h3{font-family:var(--font-sans);letter-spacing:-.01em}.manual-overlay{position:fixed;inset:0;background:rgba(15,23,42,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:5000;animation:manualFade var(--transition-normal) ease-out}@keyframes manualFade{0%{opacity:0}to{opacity:1}}.manual-sheet{position:fixed;top:0;right:0;bottom:0;width:min(560px,92vw);background:var(--bg);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:5001;display:flex;flex-direction:column;animation:manualSlide var(--transition-normal) cubic-bezier(.2,0,.2,1)}@keyframes manualSlide{0%{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}.manual-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border-light)}.manual-header-title{font-size:1.04rem;font-weight:700;color:var(--fg);letter-spacing:-.015em}.manual-header-meta{font-family:var(--font-mono);font-size:.66rem;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:2px}.manual-body{flex:1 1;overflow-y:auto;padding:22px 24px 60px}.manual-section+.manual-section{margin-top:26px}.manual-section-title{display:flex;align-items:center;gap:10px;font-size:.88rem;font-weight:700;color:var(--fg);margin-bottom:10px;letter-spacing:-.01em}.manual-section-title .manual-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;font-family:var(--font-mono);font-size:.72rem;font-weight:600;background:var(--main-soft);color:var(--main);border-radius:var(--radius-md)}.manual-section-text{font-size:.84rem;color:var(--ink-secondary);line-height:1.7}.manual-section-text strong{color:var(--fg);font-weight:600}.manual-list{padding-left:0;list-style:none}.manual-list li{font-size:.82rem;line-height:1.65;color:var(--ink-secondary);padding-left:18px;position:relative;margin-bottom:6px}.manual-list li:before{content:"";position:absolute;left:4px;top:.65em;width:6px;height:1px;background:var(--border)}.manual-do,.manual-dont{border-radius:var(--radius-lg);padding:12px 14px;font-size:.82rem;line-height:1.6;display:flex;gap:10px}.manual-do{background:var(--main-soft);border:1px solid color-mix(in srgb,var(--main) 28%,transparent);color:var(--fg)}.manual-dont{background:var(--destructive-soft);border:1px solid color-mix(in srgb,var(--destructive) 28%,transparent);color:var(--fg)}.manual-do-label,.manual-dont-label{font-family:var(--font-mono);font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;flex-shrink:0;align-self:flex-start;padding-top:2px}.manual-do-label{color:var(--main)}.manual-dont-label{color:var(--destructive)}.manual-pair{display:grid;grid-template-columns:1fr;gap:8px;margin-top:8px}.manual-kv{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:8px 0;border-bottom:1px dashed var(--border-light);font-size:.82rem}.manual-kv:last-child{border-bottom:0}.manual-kv-key{color:var(--fg-muted);font-family:var(--font-mono);font-size:.74rem}.manual-kv-val{color:var(--ink-secondary);line-height:1.6}.camera-wheel-item .camera-wheel-glyph{width:56px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:var(--bg-alt);border:1px solid var(--border-light);color:var(--fg-muted);margin-bottom:4px;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.camera-wheel-item .camera-wheel-glyph svg{width:22px;height:22px}.camera-wheel-item .camera-wheel-glyph.kind-lens{background:linear-gradient(135deg,#fafafb,#f3f4f6)}.camera-wheel-item .camera-wheel-glyph.active{background:var(--main-soft);border-color:color-mix(in srgb,var(--main) 35%,transparent);color:var(--main)}.camera-wheel-item .camera-wheel-item-label{font-size:.75rem;color:var(--fg-muted);white-space:nowrap}.camera-wheel-item .camera-wheel-item-label.active{color:var(--fg);font-weight:600}.upload-section{margin-top:4px}.upload-section+.upload-section{margin-top:12px}.upload-section-title{font-size:.85rem;font-weight:600;color:var(--text-secondary,#64748b);margin-bottom:8px;letter-spacing:.02em}.upload-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,92px));gap:8px;justify-content:space-between}.upload-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px;aspect-ratio:1/1;min-height:52px;max-width:92px;background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;font-family:var(--font-sans);color:var(--fg);transition:border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast);min-width:0}.upload-card:hover:not(:disabled):not([aria-disabled=true]){border-color:var(--main);background:var(--main-soft);transform:translateY(-1px)}.upload-card.filled{border-color:color-mix(in srgb,var(--main) 40%,var(--border-light))}.upload-card.disabled,.upload-card:disabled,.upload-card[aria-disabled=true]{opacity:.45;cursor:not-allowed;background:var(--bg-alt)}.upload-card.drag-over{border-color:var(--main);border-style:dashed;background:color-mix(in srgb,var(--main) 12%,transparent);transform:translateY(-1px);box-shadow:0 0 0 4px color-mix(in srgb,var(--main) 18%,transparent)}.upload-card.drag-over *{pointer-events:none}.upload-card-asterisk{position:absolute;top:6px;right:8px;color:var(--destructive);font-size:.92rem;font-weight:600;line-height:1;pointer-events:none}.upload-card-optional{position:absolute;top:4px;right:4px;padding:1px 6px;font-size:.6rem;font-weight:500;line-height:1.4;border-radius:4px;pointer-events:none;letter-spacing:0}.upload-card-optional,.upload-card-thumb{background:var(--bg-alt);color:var(--fg-muted)}.upload-card-thumb{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;border:1px solid transparent;transition:border-color var(--transition-fast)}.upload-card.filled .upload-card-thumb{border-color:var(--border-light)}.upload-card-thumb img{width:100%;height:100%;object-fit:cover;display:block}.upload-card-thumb svg{width:20px;height:20px}.upload-card-badge{position:absolute;right:2px;bottom:2px;background:var(--main);color:#fff;font-family:var(--font-mono);font-size:.6rem;font-weight:700;padding:1px 5px;border-radius:999px;line-height:1.3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.upload-card-clear{position:absolute;left:2px;top:2px;width:18px;height:18px;background:rgba(0,0,0,.7);color:#fff;border:0;border-radius:50%;font-size:10px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity var(--transition-fast),background var(--transition-fast)}.upload-card:hover .upload-card-clear{opacity:1}.upload-card-clear:hover{background:var(--destructive)}.upload-card-label{font-size:.7rem;font-weight:500;color:var(--fg);letter-spacing:-.005em;line-height:1.2;white-space:nowrap}.upload-card.filled .upload-card-label{color:var(--fg);font-weight:600}.upload-card-sublabel{display:block;margin-top:1px;font-size:.58rem;font-weight:400;color:var(--text-tertiary,#94a3b8);letter-spacing:.01em;line-height:1.25;text-align:center;padding:0 6px;max-width:100%}.upload-section--material .upload-card-sublabel{display:none}.upload-card-model-placeholder{background:transparent;border:1px dashed var(--border-light);color:var(--text-tertiary,#94a3b8)}.upload-card-model-placeholder:hover{border-color:var(--main,#15dbb0);color:color-mix(in srgb,var(--main) 78%,#000);background:rgba(21,219,176,.04)}.upload-card-model-placeholder .upload-card-label,.upload-card-model-placeholder .upload-card-thumb{color:inherit}.upload-card-model-placeholder .upload-card-sublabel{color:inherit;opacity:.85}.upload-card-local-btn{position:absolute;right:5px;bottom:5px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid var(--border-light);border-radius:5px;background:var(--surface);color:var(--fg-muted);cursor:pointer;z-index:2;transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.upload-card-local-btn:hover{color:var(--main);border-color:var(--main);background:rgba(21,219,176,.08)}.upload-card-local-btn svg{width:14px;height:14px;display:block}.upload-card.filled{padding:0;background:#000}.upload-card-fullimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}.upload-card.filled .upload-card-badge{right:4px;bottom:4px;z-index:2}.upload-card-close{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;border:none;background:rgba(0,0,0,.62);color:#fff;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;z-index:3;transition:background var(--transition-fast),transform var(--transition-fast);box-shadow:0 1px 3px rgba(0,0,0,.3)}.upload-card-close:hover{background:var(--destructive,#e54040);transform:scale(1.08)}.upload-card-close svg{width:10px;height:10px}.upload-card{overflow:visible}.upload-card.filled{overflow:hidden}.upload-card-tooltip{position:absolute;left:50%;top:calc(100% + 10px);transform:translateX(-50%) translateY(-4px);display:flex;flex-direction:column;gap:4px;width:max-content;max-width:220px;padding:8px 10px;background:rgba(20,20,24,.95);color:#fff;border-radius:8px;text-align:left;pointer-events:none;opacity:0;z-index:9999;transition:opacity .18s ease,transform .18s ease;box-shadow:0 10px 28px rgba(0,0,0,.25)}.upload-card-tooltip:after{content:"";position:absolute;left:50%;top:-5px;transform:translateX(-50%);border:5px solid transparent;border-bottom-color:rgba(20,20,24,.95);border-top:0}.upload-card-tooltip-title{font-size:.78rem;font-weight:600;color:#fff;letter-spacing:0;line-height:1.2}.upload-card-tooltip-body{font-size:.7rem;font-weight:400;color:rgba(255,255,255,.82);line-height:1.45;letter-spacing:0}.upload-card.disabled:hover .upload-card-tooltip,.upload-card.empty:hover .upload-card-tooltip{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}.upload-card-grid>.upload-card:first-child .upload-card-tooltip{left:0;transform:translateX(0) translateY(4px)}.upload-card-grid>.upload-card:first-child:hover .upload-card-tooltip{transform:translateX(0) translateY(0)}.upload-card-grid>.upload-card:first-child .upload-card-tooltip:after{left:20px;transform:translateX(0)}.upload-card-grid>.upload-card:last-child .upload-card-tooltip{left:auto;right:0;transform:translateX(0) translateY(4px)}.upload-card-grid>.upload-card:last-child:hover .upload-card-tooltip{transform:translateX(0) translateY(0)}.upload-card-grid>.upload-card:last-child .upload-card-tooltip:after{left:auto;right:20px;transform:translateX(0)}.upload-card-grid>.upload-card:only-child .upload-card-tooltip{left:calc(100% + 12px);right:auto;top:50%;bottom:auto;transform:translateX(-4px) translateY(-50%);max-width:240px}.upload-card-grid>.upload-card:only-child:hover .upload-card-tooltip{transform:translateX(0) translateY(-50%)}.upload-card-grid>.upload-card:only-child .upload-card-tooltip:after{left:-5px;top:50%;right:auto;bottom:auto;transform:translateY(-50%);border-top:5px solid transparent;border-right:5px solid rgba(20,20,24,.95);border-left:0;border-bottom:5px solid transparent}.upload-section--material .upload-card-tooltip,.upload-section--product .upload-card-grid>.upload-card:not(:only-child) .upload-card-tooltip{top:auto;bottom:calc(100% + 10px);transform:translateX(-50%) translateY(4px)}.upload-section--material .upload-card.disabled:hover .upload-card-tooltip,.upload-section--material .upload-card.empty:hover .upload-card-tooltip,.upload-section--product .upload-card-grid>.upload-card:not(:only-child).disabled:hover .upload-card-tooltip,.upload-section--product .upload-card-grid>.upload-card:not(:only-child).empty:hover .upload-card-tooltip{transform:translateX(-50%) translateY(0)}.upload-section--material .upload-card-tooltip:after,.upload-section--product .upload-card-grid>.upload-card:not(:only-child) .upload-card-tooltip:after{top:auto;bottom:-5px;border-top:5px solid rgba(20,20,24,.95);border-bottom:0}.upload-section--material .upload-card-grid>.upload-card:first-child .upload-card-tooltip,.upload-section--product .upload-card-grid>.upload-card:not(:only-child):first-child .upload-card-tooltip{transform:translateX(0) translateY(4px)}.upload-section--material .upload-card-grid>.upload-card:first-child:hover .upload-card-tooltip,.upload-section--product .upload-card-grid>.upload-card:not(:only-child):first-child:hover .upload-card-tooltip{transform:translateX(0) translateY(0)}.upload-section--material .upload-card-grid>.upload-card:last-child .upload-card-tooltip,.upload-section--product .upload-card-grid>.upload-card:not(:only-child):last-child .upload-card-tooltip{transform:translateX(0) translateY(4px)}.upload-section--material .upload-card-grid>.upload-card:last-child:hover .upload-card-tooltip,.upload-section--product .upload-card-grid>.upload-card:not(:only-child):last-child:hover .upload-card-tooltip{transform:translateX(0) translateY(0)}.upload-section--product{margin-top:10px}.param-card-grid{display:grid;gap:8px;margin-top:6px}.param-card-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.param-card-grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}.param-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 4px 10px;background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;font-family:var(--font-sans);color:var(--fg);transition:border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast);min-width:0}.param-card:hover:not(:disabled){border-color:var(--main);background:var(--main-soft);transform:translateY(-1px)}.param-card.filled{border-color:color-mix(in srgb,var(--main) 40%,var(--border-light))}.param-card-glyph{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--bg-alt);color:var(--fg-muted);border:1px solid transparent;transition:background var(--transition-fast),color var(--transition-fast)}.param-card-glyph svg{width:16px;height:16px}.param-card.filled .param-card-glyph{background:var(--main-soft);color:var(--main);border-color:color-mix(in srgb,var(--main) 30%,transparent)}.param-card-label{font-size:.78rem;font-weight:600}.param-card-label,.param-card-value{color:var(--fg);letter-spacing:-.005em;line-height:1.2;white-space:nowrap}.param-card-value{font-size:.68rem;font-family:var(--font-mono);max-width:100%;overflow:hidden;text-overflow:ellipsis}.param-card-value.muted{color:var(--fg-disabled)}.option-sheet-overlay{position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:6000;display:flex;align-items:center;justify-content:center;padding:24px;animation:optionSheetFade .16s cubic-bezier(.2,0,.2,1)}@keyframes optionSheetFade{0%{opacity:0}to{opacity:1}}.option-sheet{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:min(420px,92vw);max-height:min(72vh,640px);display:flex;flex-direction:column;overflow:hidden;animation:optionSheetSlide .22s cubic-bezier(.2,0,.2,1)}.option-sheet.option-sheet-wide{width:min(700px,94vw)}@keyframes optionSheetSlide{0%{transform:translateY(10px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.option-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border-light)}.option-sheet-header h4{margin:0;font-size:.98rem;font-weight:700;color:var(--fg);letter-spacing:-.01em}.option-sheet-close{width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:var(--fg-muted);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;transition:background var(--transition-fast),color var(--transition-fast)}.option-sheet-close:hover{background:var(--bg-alt);color:var(--fg)}.option-sheet-grid{display:flex;flex-wrap:wrap;gap:8px;padding:18px;overflow-y:auto}.option-chip{padding:8px 14px;border-radius:999px;background:var(--bg-alt);border:1px solid transparent;color:var(--fg);font-size:.82rem;font-weight:500;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.option-chip:hover{background:var(--main-soft);color:var(--main)}.option-chip.active{background:var(--main);color:#fff;font-weight:600}.option-sheet-clear{margin:0 18px 16px;padding:8px 12px;background:transparent;border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--fg-muted);font-size:.78rem;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.option-sheet-clear:hover{color:var(--destructive);border-color:var(--destructive)}.option-image-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:18px;overflow-y:auto}.option-image-card{display:flex;flex-direction:column;gap:6px;padding:8px;background:var(--bg-alt);border:1.5px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),transform var(--transition-fast);text-align:center}.option-image-card:hover{transform:translateY(-1px)}.option-image-card.active,.option-image-card:hover{border-color:var(--main);background:var(--main-soft)}.option-image-thumb{width:100%;aspect-ratio:4/3;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface);display:flex;align-items:center;justify-content:center;position:relative}.option-image-thumb img{width:100%;height:100%;object-fit:contain}.option-image-fallback{display:flex;align-items:center;justify-content:center;color:var(--fg-muted);width:100%;height:100%}.option-image-fallback svg{width:28px;height:28px}.option-image-label{font-size:.78rem;font-weight:600;color:var(--fg);line-height:1.2}.option-image-category{font-family:var(--font-mono);font-size:.62rem;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em}.attributes-panel-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.attributes-panel-header-row .section-title{margin-bottom:0}.attributes-select-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}.attributes-select-field{display:flex;flex-direction:column;gap:5px;min-width:0}.attributes-select-label{font-size:.74rem;font-weight:600;color:var(--fg);letter-spacing:-.005em}.attributes-select-field .select{height:34px;font-size:.82rem}.attributes-panel-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:4px 0;background:transparent;border:0;cursor:pointer;font-family:var(--font-sans);text-align:left}.attributes-panel-toggle:hover{color:var(--main)}.attributes-panel-toggle-meta{display:flex;align-items:center;gap:8px;color:var(--fg-muted)}.attributes-panel-toggle-count{font-family:var(--font-mono);font-size:.7rem;color:var(--main);background:var(--main-soft);padding:2px 7px;border-radius:999px;font-weight:600}.attributes-panel-toggle-caret{width:16px;height:16px;transition:transform var(--transition-fast)}.attributes-panel-toggle-caret.open{transform:rotate(180deg)}.attributes-panel-body{margin-top:14px;padding-top:14px;border-top:1px solid var(--border-light);display:flex;flex-direction:column;gap:12px}.attributes-panel-footer{display:flex;justify-content:flex-end}.camera-control-empty-hint{margin-top:8px;padding:10px 14px;background:var(--bg-alt);border:1px dashed var(--border);border-radius:var(--radius-md);font-size:.8rem;color:var(--fg-muted);text-align:center}.camera-wheel-item.has-image{flex-direction:column;gap:4px}.camera-wheel-item-name{font-size:10px;font-weight:600;color:var(--fg);text-align:center;line-height:1.2;letter-spacing:-.005em;max-width:76px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.camera-wheel-selected-label{display:none}.camera-wheel-column,.camera-wheel-item{width:82px}.filter-strip{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;padding:8px 4px 12px;margin:0 -4px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.filter-strip::-webkit-scrollbar{height:6px}.filter-strip::-webkit-scrollbar-track{background:transparent}.filter-strip::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12);border-radius:999px}.filter-strip::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.2)}.filter-strip-item{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:0;background:transparent;border:0;cursor:pointer;font-family:var(--font-sans);color:var(--fg-muted);scroll-snap-align:center;transition:color var(--transition-fast),transform var(--transition-fast)}.filter-strip-item:hover{color:var(--fg)}.filter-strip-item:hover .filter-strip-swatch{transform:scale(1.04);border-color:var(--border)}.filter-strip-item.active{color:var(--fg);transform:translateY(-1px)}.filter-strip-item.active .filter-strip-swatch{border-color:var(--main);box-shadow:0 0 0 3px color-mix(in srgb,var(--main) 22%,transparent),0 4px 12px rgba(21,219,176,.18)}.filter-strip-item.active .filter-strip-label{color:var(--fg);font-weight:700}.filter-strip-swatch{position:relative;width:72px;height:72px;border-radius:var(--radius-lg);border:2px solid var(--border-light);transition:border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);display:flex;align-items:center;justify-content:center;overflow:hidden}.filter-strip-swatch:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 45%,rgba(0,0,0,.05));pointer-events:none}.filter-strip-check{width:22px;height:22px;color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));z-index:1}.filter-strip-label{font-size:.76rem;font-weight:500;color:var(--fg-muted);letter-spacing:-.005em;white-space:nowrap;transition:color var(--transition-fast),font-weight var(--transition-fast)}.pattern-tile-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.pattern-tile-modal{background:var(--surface,#fff);border-radius:16px;box-shadow:0 25px 80px rgba(0,0,0,.25),0 0 0 1px rgba(0,0,0,.05);width:min(1080px,96vw);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.pattern-tile-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border-light,#e5e7eb)}.pattern-tile-title{font-size:1.1rem;font-weight:600;color:var(--fg,#111);margin-bottom:4px}.pattern-tile-subtitle{font-size:.8rem;color:var(--text-tertiary,#6b7280)}.pattern-tile-close{background:transparent;border:0;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;color:var(--text-tertiary);font-size:16px;transition:background .15s}.pattern-tile-close:hover{background:rgba(0,0,0,.06)}.pattern-tile-body{display:grid;grid-template-columns:1fr 320px;gap:0;flex:1 1;min-height:0}.pattern-tile-preview{padding:20px;background:var(--bg-alt,#f8fafc);flex-direction:column;gap:12px;min-height:420px;border-right:1px solid var(--border-light)}.pattern-tile-preview,.pattern-tile-preview-frame{display:flex;align-items:center;justify-content:center}.pattern-tile-preview-frame{position:relative;max-width:100%;max-height:70vh}.pattern-tile-preview-frame img{display:block;max-width:100%;max-height:70vh;object-fit:contain;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.08)}.pattern-tile-busy{position:absolute;inset:0;background:rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;font-size:.85rem;color:var(--text-secondary);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.pattern-tile-empty{color:var(--text-tertiary);font-size:.85rem}.pattern-tile-error{color:#dc2626;font-size:.85rem;padding:12px 16px;background:rgba(220,38,38,.08);border-radius:8px}.pattern-tile-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:.72rem;color:var(--text-tertiary)}.pattern-tile-meta span{display:inline-flex;align-items:center;gap:4px}.pattern-tile-controls{padding:20px 24px;display:flex;flex-direction:column;gap:22px;overflow-y:auto}.pattern-tile-control-group{display:flex;flex-direction:column;gap:8px}.pattern-tile-label{font-size:.85rem;font-weight:600;color:var(--fg);display:flex;flex-direction:column;gap:3px}.pattern-tile-val{color:var(--main,#15dbb0)}.pattern-tile-hint{font-size:.72rem;font-weight:400;color:var(--text-tertiary)}.pattern-tile-number{padding:8px 12px;border:1px solid var(--border-light);border-radius:6px;font-size:.9rem;background:var(--surface);color:var(--fg);outline:none;transition:border-color .15s}.pattern-tile-number:focus{border-color:var(--main)}.pattern-tile-range{width:100%;accent-color:var(--main,#15dbb0)}.pattern-tile-method-badge{align-self:flex-start;padding:6px 12px;background:rgba(21,219,176,.12);border:1px solid rgba(21,219,176,.35);color:color-mix(in srgb,var(--main) 80%,#000);border-radius:6px;font-size:.8rem;font-weight:500}.pattern-tile-bedtype-group{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.pattern-tile-bedtype-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;background:var(--surface);border:1px solid var(--border-light);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s,color .15s;text-align:left}.pattern-tile-bedtype-chip:hover{border-color:color-mix(in srgb,var(--main,#15dbb0) 55%,var(--border-light));background:rgba(21,219,176,.05)}.pattern-tile-bedtype-chip.active{border-color:var(--main,#15dbb0);background:rgba(21,219,176,.12)}.pattern-tile-bedtype-chip-name{font-size:.82rem;font-weight:600;color:var(--fg);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pattern-tile-bedtype-chip.active .pattern-tile-bedtype-chip-name{color:color-mix(in srgb,var(--main) 78%,#000)}.pattern-tile-bedtype-chip-size{font-size:.7rem;font-weight:500;color:var(--text-tertiary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pattern-tile-footer{padding:16px 24px;border-top:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;background:var(--bg-alt)}.pattern-tile-btn{padding:9px 20px;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;border:0;transition:background .15s,box-shadow .15s,transform .15s}.pattern-tile-btn:disabled{opacity:.5;cursor:not-allowed}.pattern-tile-btn-ghost{background:transparent;color:var(--text-secondary)}.pattern-tile-btn-ghost:hover{background:rgba(0,0,0,.06)}.pattern-tile-btn-primary{background:var(--main,#15dbb0);color:#fff;font-weight:600;box-shadow:0 2px 8px rgba(21,219,176,.3)}.pattern-tile-btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--main) 90%,#000);box-shadow:0 4px 12px rgba(21,219,176,.45)}.upload-card-tile-btn{position:absolute;bottom:6px;right:6px;z-index:2;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;height:24px;border-radius:6px;border:0;background:rgba(21,219,176,.92);color:#fff;cursor:pointer;font-size:.7rem;font-weight:500;box-shadow:0 2px 8px rgba(0,0,0,.2);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .15s,transform .15s}.upload-card-tile-btn:hover{background:color-mix(in srgb,var(--main) 92%,#000);transform:translateY(-1px)}.upload-card-tile-btn svg{width:12px;height:12px;stroke-width:2}.upload-card-tile-btn.tiled{background:rgba(21,219,176,.14);color:color-mix(in srgb,var(--main) 80%,#000);border:1px solid rgba(21,219,176,.5);box-shadow:none}.upload-card-tile-btn.tiled:hover{background:rgba(21,219,176,.22)}.upload-card-classifying{position:absolute;bottom:6px;right:6px;z-index:2;display:inline-flex;align-items:center;padding:4px 8px;height:24px;border-radius:6px;background:rgba(0,0,0,.45);color:#fff;font-size:.7rem;font-weight:500;box-shadow:0 2px 8px rgba(0,0,0,.2);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;animation:upload-card-classifying-pulse 1.4s ease-in-out infinite}@keyframes upload-card-classifying-pulse{0%,to{opacity:.75}50%{opacity:1}}.upload-card-scale-btn{position:absolute;bottom:6px;right:6px;z-index:2;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;height:24px;border-radius:6px;border:0;background:rgba(0,0,0,.55);color:#fff;cursor:pointer;font-size:.7rem;font-weight:500;box-shadow:0 2px 8px rgba(0,0,0,.2);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .15s,transform .15s}.upload-card-scale-btn:hover{background:rgba(0,0,0,.75);transform:translateY(-1px)}.upload-card-scale-btn svg{width:12px;height:12px;stroke-width:2}.upload-card-scale-btn.scaled{background:rgba(21,219,176,.92);color:#fff}.upload-card-scale-btn.scaled:hover{background:color-mix(in srgb,var(--main) 92%,#000)}.pattern-scale-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:1000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.pattern-scale-popover{width:min(440px,92vw);background:var(--surface,#fff);border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.25);overflow:hidden;display:flex;flex-direction:column}.pattern-scale-header{padding:16px 20px;border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between}.pattern-scale-title{font-size:1rem;font-weight:600;color:var(--fg)}.pattern-scale-close{background:none;border:0;font-size:1rem;cursor:pointer;color:var(--text-tertiary);width:28px;height:28px;border-radius:6px}.pattern-scale-close:hover{background:rgba(0,0,0,.06)}.pattern-scale-body{padding:20px;display:flex;flex-direction:column;gap:16px}.pattern-scale-preview-wrap{display:flex;flex-direction:column;align-items:center;gap:8px}.pattern-scale-preview{width:100%;max-width:320px;aspect-ratio:1/1;align-self:center;background-color:#fafafa;transition:background-size .2s ease-out}.pattern-scale-preview,.pattern-scale-preview-img{border-radius:8px;border:1px solid var(--border-light)}.pattern-scale-preview-img{max-width:100%;max-height:320px;object-fit:contain;background:#fafafa;display:block}.pattern-scale-preview-caption{font-size:.72rem;color:var(--text-secondary,#64748b)}.pattern-scale-preview-caption strong{color:var(--main,#15dbb0);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pattern-scale-hint{font-size:.78rem;color:var(--text-secondary);line-height:1.55}.pattern-scale-hint strong{color:var(--main,#15dbb0);font-weight:600}.pattern-scale-value-row{display:flex;align-items:center;gap:14px}.pattern-scale-range{flex:1 1;accent-color:var(--main,#15dbb0)}.pattern-scale-value{font-size:1.15rem;font-weight:700;color:var(--main,#15dbb0);min-width:40px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pattern-scale-chips{display:flex;gap:8px;flex-wrap:wrap}.pattern-scale-chip{padding:6px 14px;border:1px solid var(--border-light);border-radius:8px;background:var(--surface);cursor:pointer;font-size:.85rem;font-weight:600;color:var(--fg);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;transition:all .15s}.pattern-scale-chip:hover{border-color:color-mix(in srgb,var(--main) 55%,var(--border-light))}.pattern-scale-chip.active{background:rgba(21,219,176,.12);border-color:var(--main,#15dbb0);color:color-mix(in srgb,var(--main) 78%,#000)}.pattern-scale-footer{padding:14px 20px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end}