/* Modal Gallery Dialog Styling */ .anomalous-recipe-gallery-dialog { background: var(--amb-bg-card); color: var(--amb-text-main); border: 1px solid var(--amb-border); border-radius: 12px; padding: 24px; width: 90vw; max-width: 1200px; max-height: 90vh; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5); overflow-y: auto; } .anomalous-recipe-gallery-dialog::backdrop { background: var(--amb-lt-scrim, rgba(0, 0, 0, 0.7)); backdrop-filter: blur(4px); } .anomalous-recipe-gallery-dialog-title { margin-top: 0; margin-bottom: 16px; font-size: 1.4rem; font-weight: 600; } .anomalous-dialog-close { position: absolute; top: 16px; right: 16px; font-size: 1.2rem; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 50%; cursor: pointer; } /* Gallery Grid Refactor */ .anomalous-recipe-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; padding: 16px 0; } .anomalous-recipe-gallery-card { position: relative; border-radius: 8px; overflow: hidden; background: var(--amb-lt-sunken, rgba(0, 0, 0, 0.2)); aspect-ratio: 1; transition: transform 0.2s ease, box-shadow 0.2s ease; } .anomalous-recipe-gallery-card:hover { transform: scale(1.03); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.4); z-index: 2; } .anomalous-recipe-gallery-card img { width: 100%; height: 100%; object-fit: cover; display: block; cursor: pointer; } .anomalous-recipe-gallery-card-actions { right: 10px; bottom: 10px; display: flex; opacity: 0; transform: translateY(4px); pointer-events: none; } .anomalous-recipe-gallery-card:hover .anomalous-recipe-gallery-card-actions, .anomalous-recipe-gallery-card:focus-within .anomalous-recipe-gallery-card-actions { opacity: 1; transform: translateY(0); pointer-events: auto; } /* ========================================================================== */ /* Material Library Sidebar Mode (Docked) Proportions: Left Narrow, Right Wide*/ /* ========================================================================== */ #anomalous-container.anomalous-docked .anomalous-material-prompt-bar { margin-bottom: 6px; } #anomalous-container.anomalous-docked .anomalous-material-mini-btn { padding: 3px 8px; font-size: 0.72rem; white-space: nowrap; flex-shrink: 0; } /* Ensure wide widgets (like long prompts) span full width in the node cards */ .anomalous-recipe-detail-node-widgets .anomalous-recipe-detail-parameter-row.is-wide { grid-column: 1 / -1; } /* Reset native dialog styles for the full-screen gallery viewer */ dialog.anomalous-gallery-viewer { border: none; padding: 0; margin: auto; max-width: none; max-height: none; background: transparent; } dialog.anomalous-gallery-viewer::backdrop { background: rgba(0, 0, 0, 0.95); } /* ========================================================================== */ /* 🎨 Workflow Recipes Modern UI/UX Redesign Overrides */ /* ========================================================================== */ .anomalous-recipe-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 360px)); gap: 18px; overflow-y: auto; padding: 18px; } .anomalous-recipe-list[style*="display: none"], .anomalous-recipe-actionbar[style*="display: none"] { display: none !important; } /* ========================================================================== Recipe Cards: Uniform 264px Bento Grid & 44px Compact List System ========================================================================== */ /* 1. 网格模式下的卡片几何规范 (Bento 架构 + 发光电路回路隐喻) */ .anomalous-recipe-list.is-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); grid-auto-rows: 264px; align-content: start; gap: 14px; padding: 16px; background-image: radial-gradient(circle at 50% 50%, rgba(99, 102, 241, 0.06) 1px, transparent 1px), linear-gradient(rgba(var(--amb-ink-rgb), 0.015) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--amb-ink-rgb), 0.015) 1px, transparent 1px); background-size: 24px 24px, 48px 48px, 48px 48px; } .anomalous-recipe-list.is-list { display: flex; flex-direction: column; gap: 6px; padding: 12px 16px; } /* 卡片基础骨架 */ .anomalous-recipe-card { position: relative; display: flex; min-width: 0; overflow: hidden; border: 1px solid var(--amb-border, var(--amb-border)); background: var(--amb-bg-card, var(--amb-bg-card-hover)); border-radius: var(--amb-radius-card, 10px); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); cursor: pointer; transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease; box-sizing: border-box; } .anomalous-recipe-card:hover { border-color: var(--amb-border-hover, var(--amb-border-strong)); box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3); } .anomalous-recipe-card:focus-visible { outline: 2px solid var(--amb-accent-gold, var(--amb-link)); outline-offset: 2px; } /* 网格模式卡片 */ .anomalous-recipe-list.is-grid .anomalous-recipe-card { height: 264px; max-height: 264px; flex-direction: column; border-radius: var(--amb-radius-card, 10px); padding: 0; } /* Bento Wide 横卡支持 (Featured / Pinned Recipes) */ .anomalous-recipe-list.is-grid .anomalous-recipe-card.is-featured, .anomalous-recipe-list.is-grid .anomalous-recipe-card.is-wide { grid-column: span 2; flex-direction: row; } .anomalous-recipe-list.is-grid .anomalous-recipe-card.is-featured .anomalous-recipe-card-media-wrap, .anomalous-recipe-list.is-grid .anomalous-recipe-card.is-wide .anomalous-recipe-card-media-wrap { width: 44%; height: 100%; } .anomalous-recipe-list.is-grid .anomalous-recipe-card:hover { transform: translateY(-3px); } /* 顶部封面展示区 (标准黄金高度 136px) */ .anomalous-recipe-list.is-grid .anomalous-recipe-card-media-wrap { position: relative; width: 100%; height: 136px; flex-shrink: 0; background: var(--amb-bg-page); overflow: hidden; display: flex; align-items: center; justify-content: center; } .anomalous-recipe-list.is-grid .anomalous-recipe-card-media-wrap img, .anomalous-recipe-list.is-grid .anomalous-recipe-card-media-wrap video { width: 100%; height: 100%; object-fit: cover; transition: transform 0.25s ease; } .anomalous-recipe-list.is-grid .anomalous-recipe-card:hover .anomalous-recipe-card-media-wrap img, .anomalous-recipe-list.is-grid .anomalous-recipe-card:hover .anomalous-recipe-card-media-wrap video { transform: scale(1.03); } /* 默认封面占位图微光与材质渲染 (AI Abstract Art Blind Box) */ .anomalous-recipe-thumbnail.is-default-placeholder { filter: brightness(0.92) contrast(1.08); opacity: 0.95; transition: filter 0.25s ease, transform 0.25s ease, opacity 0.25s ease; } .anomalous-recipe-card:hover .anomalous-recipe-thumbnail.is-default-placeholder { filter: brightness(1.08) contrast(1.15); opacity: 1; } .anomalous-recipe-card-media-wrap:not(:has(img, video)) { background-image: url('assets/default_cover_1.webp'); background-size: cover; background-position: center; } /* 封面内嵌浮动底模与就绪微胶囊组 (Frosted Glass Chips at Bottom-Left) */ .anomalous-recipe-cover-bottom-chips { position: absolute; bottom: 8px; left: 8px; display: flex; align-items: center; gap: 6px; max-width: calc(100% - 16px); pointer-events: none; z-index: 2; } .anomalous-recipe-readiness-pill { display: inline-flex; align-items: center; gap: 5px; padding: 2px 7px; border-radius: 12px; background: rgba(12, 14, 20, 0.78); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid var(--amb-border-strong); font-size: 0.65rem; font-weight: 500; color: var(--amb-text-main); white-space: nowrap; box-shadow: none; } .anomalous-recipe-readiness-text { font-size: 0.64rem; line-height: 1; color: var(--amb-text-soft); } .anomalous-recipe-cover-pill { position: relative; padding: 2px 7px; border-radius: 6px; background: rgba(12, 14, 18, 0.82); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid var(--amb-border-strong); color: var(--amb-text-main); font-size: 0.66rem; font-weight: 500; max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; box-shadow: none; } /* 封面右上角作用域徽章 */ .anomalous-recipe-scope-pill { position: absolute; top: 6px; right: 6px; padding: 2px 6px; border-radius: 4px; font-size: 0.65rem; font-weight: 600; background: rgba(10, 12, 16, 0.85); backdrop-filter: blur(6px); border: 1px solid var(--amb-border-strong); color: var(--amb-text-muted); pointer-events: none; } .anomalous-recipe-scope-pill.is-partial { border-color: rgba(245, 158, 11, 0.4); color: var(--amb-warn); } .anomalous-recipe-scope-pill.is-complete { border-color: color-mix(in srgb, var(--amb-link) 40%, transparent); color: var(--amb-link); } /* 网格卡片信息区 */ .anomalous-recipe-list.is-grid .anomalous-recipe-card-body { flex: 1; min-height: 0; padding: 9px 12px; display: flex; flex-direction: column; justify-content: space-between; gap: 4px; } .anomalous-recipe-list.is-grid .anomalous-recipe-card-header { display: flex; align-items: center; justify-content: space-between; gap: 6px; width: 100%; } .anomalous-recipe-list.is-grid .anomalous-recipe-card-title { flex: 1; margin: 0; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; font-size: 13px; line-height: 17px; color: var(--amb-text-main, var(--amb-text-main)); font-weight: 500; } /* 环境就绪指示灯微点 */ .anomalous-recipe-readiness-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; box-shadow: 0 0 6px currentColor; } .anomalous-recipe-readiness-dot.is-ready { background-color: #10b981; color: rgba(16, 185, 129, 0.7); } .anomalous-recipe-readiness-dot.is-warning { background-color: #f59e0b; color: rgba(245, 158, 11, 0.7); } .anomalous-recipe-readiness-dot.is-missing { background-color: #ef4444; color: rgba(239, 68, 68, 0.7); } /* 规格微胶囊行 */ .anomalous-recipe-specs-strip { display: flex; align-items: center; gap: 4px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 10px; } .anomalous-recipe-spec-tag { display: inline-flex; align-items: center; gap: 2px; padding: 1px 5px; border-radius: 4px; background: rgba(var(--amb-ink-rgb), 0.04); border: 1px solid var(--amb-border); color: var(--amb-text-muted); white-space: nowrap; } .anomalous-recipe-spec-tag.is-lora { color: var(--amb-link); background: color-mix(in srgb, var(--amb-link) 8%, transparent); border-color: color-mix(in srgb, var(--amb-link) 20%, transparent); } .anomalous-recipe-spec-tag.is-step { color: var(--amb-ok-text); background: rgba(16, 185, 129, 0.08); border-color: rgba(16, 185, 129, 0.2); } /* 配方单行文本标签 (收拢至单行 Flex,溢出截断) */ .anomalous-recipe-tags { display: flex; align-items: center; gap: 4px; width: 100%; overflow: hidden; white-space: nowrap; margin-top: 2px; } .anomalous-recipe-badge-tag { display: inline-block; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.66rem; padding: 2px 6px; border-radius: 4px; background: rgba(var(--amb-ink-rgb), 0.04); border: 1px solid var(--amb-border); color: var(--amb-text-muted); cursor: pointer; transition: all 0.15s ease; flex-shrink: 0; } .anomalous-recipe-badge-tag:hover { background: rgba(var(--amb-ink-rgb), 0.1); color: var(--amb-text-main); } /* 网格卡片底部主动作与悬浮微操作 */ .anomalous-recipe-list.is-grid .anomalous-recipe-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-top: 2px; padding-top: 6px; border-top: 1px solid var(--amb-border); } .anomalous-recipe-btn-primary-action { position: relative; flex: 1; height: 32px; padding: 0 12px; border-radius: var(--amb-radius-control, 6px); background: var(--amb-btn-primary-bg, #D7D9E0); color: var(--amb-btn-primary-text, #15171C); border: 1px solid var(--amb-border-strong); font-size: 12px; font-weight: 600; letter-spacing: 0.2px; cursor: pointer; text-align: center; transition: background-color 0.15s ease, border-color 0.15s ease; display: inline-flex; align-items: center; justify-content: center; gap: 5px; overflow: hidden; box-shadow: none; user-select: none; box-sizing: border-box; } .anomalous-recipe-btn-primary-action:hover { background: var(--amb-btn-primary-hover, var(--amb-btn-primary-bg)); border-color: rgba(var(--amb-ink-rgb), 0.4); box-shadow: none; } .anomalous-recipe-btn-primary-action:active { transform: translateY(1px); filter: brightness(0.95); } .anomalous-recipe-card-mini-actions { display: flex; align-items: center; gap: 3px; opacity: 0; transition: opacity 0.15s ease; } .anomalous-recipe-card:hover .anomalous-recipe-card-mini-actions { opacity: 1; } .anomalous-recipe-card-mini-btn { width: 24px; height: 24px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 5px; background: rgba(var(--amb-ink-rgb), 0.05); border: 1px solid var(--amb-border); color: var(--amb-text-muted); cursor: pointer; font-size: 11px; transition: all 0.15s ease; } .anomalous-recipe-card-mini-btn:hover { background: rgba(var(--amb-ink-rgb), 0.12); color: var(--amb-text-main); transform: translateY(-1px); } .anomalous-recipe-card-mini-btn.is-delete:hover { background: rgba(239, 68, 68, 0.3); border-color: rgba(239, 68, 68, 0.5); color: var(--amb-danger-text); } /* 2. 紧凑行列表模式 (44px 极速视图) */ .anomalous-recipe-list.is-list .anomalous-recipe-card { height: 44px; min-height: 44px; flex-direction: row; align-items: center; padding: 0 12px; gap: 12px; border-radius: 8px; } .anomalous-recipe-list.is-list .anomalous-recipe-card:hover { transform: translateX(2px); } .anomalous-recipe-list.is-list .anomalous-recipe-card-media-wrap { width: 32px; height: 32px; border-radius: 6px; flex-shrink: 0; overflow: hidden; background: var(--amb-bg-page); } .anomalous-recipe-list.is-list .anomalous-recipe-cover-pill, .anomalous-recipe-list.is-list .anomalous-recipe-scope-pill, .anomalous-recipe-list.is-list .anomalous-recipe-specs-strip { display: none; } .anomalous-recipe-list.is-list .anomalous-recipe-card-body { flex: 1; min-width: 0; padding: 0; display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; } .anomalous-recipe-list.is-list .anomalous-recipe-card-header { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; } .anomalous-recipe-list.is-list .anomalous-recipe-card-title { margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 13px; color: var(--amb-text-main); } .anomalous-recipe-list.is-list .anomalous-recipe-card-footer { display: flex; align-items: center; gap: 8px; flex-shrink: 0; margin: 0; padding: 0; border: none; } .anomalous-recipe-list.is-list .anomalous-recipe-btn-primary-action { flex: 0 0 auto; height: 26px; padding: 0 10px; } /* Detail View: Readiness Banner */ .anomalous-recipe-readiness-banner { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-radius: 10px; margin-bottom: 12px; font-size: 0.88rem; backdrop-filter: blur(10px); } .anomalous-recipe-readiness-copy { display: flex; flex-direction: column; gap: 3px; } .anomalous-recipe-readiness-banner.is-ready { background: linear-gradient(135deg, rgba(16, 185, 129, 0.15), rgba(5, 150, 105, 0.08)); border: 1px solid rgba(16, 185, 129, 0.35); color: var(--amb-ok-soft); /* was pink on the green banner */ } .anomalous-recipe-readiness-banner.is-warning { background: linear-gradient(135deg, rgba(245, 158, 11, 0.18), rgba(217, 119, 6, 0.08)); border: 1px solid rgba(245, 158, 11, 0.4); color: var(--amb-warn-soft); } .anomalous-recipe-readiness-banner.is-missing { background: linear-gradient(135deg, rgba(239, 68, 68, 0.18), rgba(185, 28, 28, 0.08)); border: 1px solid rgba(239, 68, 68, 0.4); color: var(--amb-lt-danger, #fecaca); } /* Metric Cards for Sampling Parameters */ /* Lazy Loaded Raw Nodes Container */ .anomalous-recipe-raw-nodes-summary { padding: 10px 14px; border-radius: 8px; background: rgba(var(--amb-ink-rgb), 0.03); border: 1px solid var(--amb-border); color: var(--amb-link); cursor: pointer; user-select: none; font-size: 0.85rem; font-weight: 500; transition: background 0.2s; } .anomalous-recipe-raw-nodes-summary:hover { background: rgba(var(--amb-ink-rgb), 0.06); } .anomalous-recipe-lazy-expand-btn { width: 100%; margin-top: 10px; padding: 9px; border-radius: 8px; background: rgba(var(--amb-ink-rgb), 0.05); border: 1px solid var(--amb-border); color: var(--amb-text-soft); font-size: 0.82rem; cursor: pointer; transition: background 0.2s, border-color 0.2s; } .anomalous-recipe-lazy-expand-btn:hover { background: rgba(var(--amb-ink-rgb), 0.09); border-color: var(--amb-border-strong); } .anomalous-recipe-readiness-pill.is-ready { background: rgba(16, 185, 129, 0.16); border-color: rgba(16, 185, 129, 0.45); color: var(--amb-ok-soft); } .anomalous-recipe-readiness-pill.is-warning { background: rgba(245, 158, 11, 0.16); border-color: rgba(245, 158, 11, 0.45); color: var(--amb-warn-text); } .anomalous-recipe-readiness-pill.is-missing { background: rgba(239, 68, 68, 0.16); border-color: rgba(239, 68, 68, 0.45); color: var(--amb-danger-text); } .anomalous-recipe-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 8px; border-top: 1px solid var(--amb-border); } .anomalous-recipe-btn-primary-action { flex: 1; padding: 8px 14px; border-radius: 8px; background: rgba(var(--amb-ink-rgb), 0.1); border: 1px solid var(--amb-border-strong); color: var(--amb-text-main); font-size: 0.82rem; font-weight: 500; cursor: pointer; text-align: center; transition: all 0.15s ease; } .anomalous-recipe-btn-primary-action:hover { background: rgba(var(--amb-ink-rgb), 0.16); border-color: var(--amb-border-strong); color: var(--amb-text-main); } .anomalous-recipe-card-mini-actions { display: flex; align-items: center; gap: 4px; } .anomalous-recipe-card-mini-btn { padding: 6px 8px; border-radius: 6px; background: rgba(var(--amb-ink-rgb), 0.04); border: 1px solid var(--amb-border); color: var(--amb-text-muted); cursor: pointer; font-size: 0.85rem; line-height: 1; transition: all 0.15s ease; } .anomalous-recipe-card-mini-btn:hover { background: rgba(var(--amb-ink-rgb), 0.1); color: var(--amb-text-main); border-color: var(--amb-border-strong); } /* Metric Cards for Sampling Parameters */ /* Lazy Loaded Raw Nodes Container */ .anomalous-recipe-raw-nodes-summary { padding: 10px 14px; border-radius: 8px; background: rgba(var(--amb-ink-rgb), 0.03); border: 1px solid var(--amb-border); color: var(--amb-link); cursor: pointer; user-select: none; font-size: 0.85rem; font-weight: 500; transition: background 0.2s; } .anomalous-recipe-raw-nodes-summary:hover { background: rgba(var(--amb-ink-rgb), 0.06); } .anomalous-recipe-lazy-expand-btn { width: 100%; margin-top: 10px; padding: 9px; border-radius: 8px; background: rgba(var(--amb-ink-rgb), 0.05); border: 1px solid var(--amb-border); color: var(--amb-text-soft); font-size: 0.82rem; cursor: pointer; transition: all 0.2s; } .anomalous-recipe-lazy-expand-btn:hover { background: rgba(var(--amb-ink-rgb), 0.1); color: var(--amb-text-main); }