/* Modal Gallery Dialog Styling */ .anomalous-recipe-gallery-dialog { background: #1e1e1e; color: #eee; border: 1px solid rgba(255, 255, 255, 0.1); 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: 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: 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; } /* ========================================================================== Anomalous Material Library - Studio & Uniform Grid System ========================================================================== */ .anomalous-material-body { min-height: 0; flex: 1; display: flex; flex-direction: column; overflow: hidden; background: #111317; } /* 1. 一体化 Studio 顶栏 (精简纯净,杜绝层层大框堆叠) */ .anomalous-material-topbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 48px; padding: 0 16px; background: #16181f; border-bottom: 1px solid rgba(255, 255, 255, 0.07); flex-shrink: 0; z-index: 10; } .anomalous-material-topbar-left { display: flex; align-items: center; gap: 8px; flex-shrink: 0; } .anomalous-material-pills { display: inline-flex; align-items: center; gap: 3px; background: rgba(0, 0, 0, 0.32); padding: 3px 4px; border-radius: 20px; border: 1px solid rgba(255, 255, 255, 0.06); } .anomalous-material-pill { padding: 3px 11px; border-radius: 14px; font-size: 12px; color: #94a3b8; background: transparent; border: none; cursor: pointer; transition: all 0.15s ease; font-weight: 500; } .anomalous-material-pill:hover { color: #e2e8f0; } .anomalous-material-pill.is-active { background: rgba(139, 92, 246, 0.18); color: #8b5cf6; font-weight: 600; box-shadow: none; } .anomalous-material-topbar-center { display: flex; align-items: center; gap: 8px; flex: 1; max-width: 440px; } .anomalous-material-search-wrap { position: relative; display: flex; align-items: center; flex: 1; } .anomalous-material-search-icon { position: absolute; left: 10px; pointer-events: none; color: #64748b; display: flex; align-items: center; font-size: 13px; } .anomalous-material-search-input { width: 100%; height: 30px; padding: 0 12px 0 30px; background: rgba(0, 0, 0, 0.28); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 16px; color: #e2e8f0; font-size: 12px; outline: none; transition: border-color 0.15s ease, background 0.15s ease; } .anomalous-material-search-input:focus { border-color: rgba(139, 92, 246, 0.45); background: rgba(0, 0, 0, 0.4); } .anomalous-material-tag-select { height: 30px; padding: 0 10px; background: rgba(0, 0, 0, 0.28); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 16px; color: #94a3b8; font-size: 12px; outline: none; cursor: pointer; max-width: 130px; } .anomalous-material-tag-select:hover { border-color: rgba(255, 255, 255, 0.18); } .anomalous-material-topbar-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; } .anomalous-material-view-switch { display: inline-flex; align-items: center; background: rgba(0, 0, 0, 0.32); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 8px; padding: 2px; } .anomalous-material-view-btn { width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; border: none; background: transparent; color: #64748b; border-radius: 6px; cursor: pointer; transition: all 0.15s ease; } .anomalous-material-view-btn:hover { color: #cbd5e1; } .anomalous-material-view-btn.is-active { background: rgba(255, 255, 255, 0.09); color: #8b5cf6; } .anomalous-material-topbar-btn { height: 30px; padding: 0 12px; display: inline-flex; align-items: center; gap: 6px; border-radius: 8px; font-size: 12px; font-weight: 500; cursor: pointer; transition: all 0.15s ease; border: 1px solid rgba(255, 255, 255, 0.08); background: rgba(255, 255, 255, 0.03); color: #cbd5e1; } .anomalous-material-topbar-btn:hover { background: rgba(255, 255, 255, 0.08); color: #fff; } .anomalous-material-studio-toggle { border-color: rgba(139, 92, 246, 0.3); color: #8b5cf6; background: rgba(139, 92, 246, 0.08); } .anomalous-material-studio-toggle:hover { background: rgba(139, 92, 246, 0.16); border-color: rgba(139, 92, 246, 0.5); color: #fca5a5; } .anomalous-material-studio-toggle.is-active { background: linear-gradient(135deg, rgba(20, 184, 166, 0.35), rgba(13, 148, 136, 0.45)); border-color: rgba(139, 92, 246, 0.6); color: #ffffff; box-shadow: 0 0 12px rgba(139, 92, 246, 0.25); } /* 2. 主区域分屏容器 */ .anomalous-material-main-area { display: flex; flex: 1; min-height: 0; width: 100%; overflow: hidden; position: relative; } .anomalous-material-content { display: flex; flex-direction: column; flex: 1; min-width: 0; min-height: 0; overflow: hidden; } /* 3. 右侧并排提示词工坊抽屉 */ .anomalous-material-side-studio { width: 0; opacity: 0; overflow: hidden; flex-shrink: 0; display: flex; flex-direction: column; border-left: 1px solid rgba(255, 255, 255, 0.08); background: #13151b; transition: width 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease; pointer-events: none; z-index: 5; } .anomalous-material-side-studio.is-open { width: 400px; opacity: 1; pointer-events: auto; } /* 侧边工坊内部版式自适应 */ .anomalous-material-side-studio .anomalous-prompt-composer { height: 100%; border-radius: 0; border: none; background: transparent; display: flex; flex-direction: column; } .anomalous-material-side-studio .anomalous-paper-notes-grid { display: flex; flex-direction: column; gap: 16px; padding: 12px; overflow-y: auto; flex: 1; } .anomalous-material-side-studio .anomalous-paper-note { width: 100%; } .anomalous-material-side-studio .anomalous-prompt-topbar { padding: 8px 12px; flex-wrap: wrap; gap: 6px; height: auto; } .anomalous-material-side-studio .anomalous-prompt-meta-strip { padding: 8px 12px; gap: 8px; } /* 4. 网格与列表视图规范 (抚平坑洼,高度严格统一) */ .anomalous-material-list { flex: 1; min-height: 0; overflow-y: auto; } /* 网格视图模式 */ .anomalous-material-list.is-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); grid-auto-rows: 248px; align-content: start; gap: 14px; padding: 16px; } /* 列表视图模式 */ .anomalous-material-list.is-list { display: flex; flex-direction: column; gap: 6px; padding: 12px 16px; } /* 卡片基础骨架 */ .anomalous-material-card { position: relative; display: flex; min-width: 0; overflow: hidden; border: 1px solid var(--amb-border, rgba(255, 255, 255, 0.08)); background: var(--amb-bg-card, #24262E); 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-material-card:hover { border-color: var(--amb-border-hover, rgba(255, 255, 255, 0.2)); box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3); } .anomalous-material-card:focus-visible { outline: 2px solid var(--amb-accent-gold, #8b5cf6); outline-offset: 2px; } /* 网格模式下的卡片几何规范 */ .anomalous-material-list.is-grid .anomalous-material-card { height: 248px; max-height: 248px; flex-direction: column; border-radius: var(--amb-radius-card, 10px); } .anomalous-material-list.is-grid .anomalous-material-card:hover { border-color: var(--amb-border-hover, rgba(255, 255, 255, 0.22)); } .anomalous-material-list.is-grid .anomalous-material-card-preview { height: 124px; width: 100%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; background: #0d0f14; position: relative; } .anomalous-material-list.is-grid .anomalous-material-card-preview img { width: 100%; height: 100%; object-fit: cover; } /* 无图卡片的内嵌微拟态展示 (提示词卡片 / 参数卡片) */ .anomalous-material-card-preview.is-prompt-fallback { background: radial-gradient(circle at 50% 35%, #192338, #0d121c); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 10px; gap: 4px; } .anomalous-material-card-preview.is-params-fallback { background: radial-gradient(circle at 50% 35%, #142826, #0b1514); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 10px; gap: 4px; } .anomalous-material-card-preview.is-workflow-fallback { background: radial-gradient(circle at 50% 35%, #241d33, #110d1c); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 10px; gap: 4px; } .anomalous-material-preview-snippet { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 10px; color: #718096; line-height: 1.35; max-height: 42px; overflow: hidden; text-align: center; word-break: break-all; user-select: none; opacity: 0.85; } .anomalous-material-list.is-grid .anomalous-material-card-body { flex: 1; min-height: 0; padding: 10px 12px; display: flex; flex-direction: column; justify-content: space-between; gap: 4px; } .anomalous-material-list.is-grid .anomalous-material-card-title-row { display: flex; align-items: center; justify-content: space-between; gap: 6px; width: 100%; } .anomalous-material-list.is-grid .anomalous-material-card-title-text { 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, #f1f5f9); font-weight: 500; } .anomalous-material-list.is-grid .anomalous-material-card-meta { display: flex; align-items: center; gap: 6px; flex-wrap: nowrap; overflow: hidden; } .anomalous-material-list.is-grid .anomalous-material-card-subinfo { display: flex; align-items: center; justify-content: space-between; gap: 6px; font-size: 11px; color: #64748b; } .anomalous-material-list.is-grid .anomalous-material-card-date { font-size: 11px; color: #64748b; white-space: nowrap; } /* 列表模式下的单行紧凑高密度样式 */ .anomalous-material-list.is-list .anomalous-material-card { height: 44px; min-height: 44px; flex-direction: row; align-items: center; padding: 0 12px; gap: 12px; border-radius: 8px; } .anomalous-material-list.is-list .anomalous-material-card:hover { transform: translateX(2px); } .anomalous-material-list.is-list .anomalous-material-card-preview { width: 32px; height: 32px; border-radius: 6px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; background: #0d0f14; } .anomalous-material-list.is-list .anomalous-material-card-preview img { width: 100%; height: 100%; object-fit: cover; } .anomalous-material-list.is-list .anomalous-material-preview-snippet { display: none; } .anomalous-material-list.is-list .anomalous-material-card-body { flex: 1; min-width: 0; padding: 0; display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; } .anomalous-material-list.is-list .anomalous-material-card-title-row { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; } .anomalous-material-list.is-list .anomalous-material-card-title-text { margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 13px; color: #f1f5f9; } .anomalous-material-list.is-list .anomalous-material-card-meta { flex-shrink: 0; display: flex; align-items: center; gap: 6px; } .anomalous-material-list.is-list .anomalous-material-card-subinfo, .anomalous-material-list.is-list .anomalous-material-types, .anomalous-material-list.is-list .anomalous-material-tags { display: none; } /* 列表模式下的操作区在右侧 */ .anomalous-material-list.is-list .anomalous-material-card-actions-wrapper { display: flex; align-items: center; gap: 4px; flex-shrink: 0; opacity: 0; transition: opacity 0.15s ease; } .anomalous-material-list.is-list .anomalous-material-card:hover .anomalous-material-card-actions-wrapper { opacity: 1; } /* 卡片悬浮操作按钮组 (网格与列表通用规范) */ .anomalous-material-card-action-btn { width: 26px; height: 26px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(18, 20, 26, 0.85); color: #cbd5e1; cursor: pointer; font-size: 12px; backdrop-filter: blur(6px); transition: transform 0.15s ease, background 0.15s ease, border-color 0.15s ease; } .anomalous-material-card-action-btn:hover { transform: scale(1.08); } .anomalous-material-card-delete { position: absolute; top: 8px; right: 8px; z-index: 5; opacity: 0; } .anomalous-material-list.is-grid .anomalous-material-card:hover .anomalous-material-card-delete { opacity: 1; } .anomalous-material-card-delete:hover { background: rgba(239, 68, 68, 0.35); border-color: rgba(239, 68, 68, 0.6); color: #fca5a5; } .anomalous-material-card-quick-load { position: absolute; top: 8px; left: 8px; z-index: 5; color: #8b5cf6; border-color: rgba(139, 92, 246, 0.3); opacity: 0; } .anomalous-material-list.is-grid .anomalous-material-card:hover .anomalous-material-card-quick-load { opacity: 1; } .anomalous-material-card-quick-load:hover { background: rgba(139, 92, 246, 0.28); border-color: rgba(139, 92, 246, 0.6); color: #fca5a5; } .anomalous-material-card-send-studio { position: absolute; top: 8px; left: 38px; z-index: 5; color: #cbd5e1; border-color: rgba(255, 255, 255, 0.2); opacity: 0; } .anomalous-material-list.is-grid .anomalous-material-card:hover .anomalous-material-card-send-studio { opacity: 1; } .anomalous-material-card-send-studio:hover { background: rgba(255, 255, 255, 0.15); border-color: rgba(255, 255, 255, 0.4); color: #ffffff; } .theme-abyssal-scarlet .anomalous-material-card-send-studio { color: #ff4d6d; border-color: rgba(220, 20, 60, 0.35); } .theme-abyssal-scarlet .anomalous-material-card-send-studio:hover { background: rgba(220, 20, 60, 0.28); border-color: rgba(220, 20, 60, 0.6); color: #ffffff; } /* 素材库卡片与详情头部中的明确应用替换按钮 */ .anomalous-material-card-apply-btn { display: inline-flex; align-items: center; justify-content: center; gap: 5px; width: 100%; box-sizing: border-box; padding: 5px 10px; margin-top: 5px; font-size: 11px; font-weight: 600; color: #ffffff; background: linear-gradient(135deg, rgba(99, 102, 241, 0.9) 0%, rgba(79, 70, 229, 0.95) 100%); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 6px; cursor: pointer; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25); transition: all 0.15s ease; z-index: 2; } .anomalous-material-card-apply-btn:hover { background: linear-gradient(135deg, rgba(99, 102, 241, 1) 0%, rgba(67, 56, 202, 1) 100%); transform: translateY(-1px); box-shadow: 0 4px 10px rgba(99, 102, 241, 0.4); } .anomalous-material-card-apply-btn:disabled { opacity: 0.65; cursor: not-allowed; transform: none; } .anomalous-material-list.is-list .anomalous-material-card-apply-btn { width: auto; margin-top: 0; padding: 4px 12px; } .anomalous-material-header-apply-btn { font-weight: 600 !important; box-shadow: 0 2px 8px rgba(99, 102, 241, 0.35); } /* 徽标、标签与来源标记通用定义 */ .anomalous-material-source-mark { max-width: 100%; overflow: hidden; padding: 2px 6px; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 999px; background: rgba(255, 255, 255, 0.035); color: #94a3b8; font-size: 0.65rem; text-overflow: ellipsis; white-space: nowrap; } .anomalous-material-source-mark.is-current { border-color: rgba(139, 92, 246, 0.25); color: #fca5a5; } .anomalous-material-source-mark.is-modified, .anomalous-material-source-mark.is-missing { border-color: rgba(245, 158, 11, 0.28); background: rgba(245, 158, 11, 0.08); color: #fbbf24; } .anomalous-material-meta-pill { padding: 2px 6px; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 999px; background: rgba(255, 255, 255, 0.035); color: #94a3b8; font-size: 0.65rem; white-space: nowrap; } .anomalous-material-types { overflow: hidden; color: #64748b; font-size: 0.72rem; text-overflow: ellipsis; white-space: nowrap; } .anomalous-material-tags { display: flex; flex-wrap: wrap; gap: 4px; overflow: hidden; max-height: 22px; } .anomalous-material-tag { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-radius: 4px; background: #232731; color: #94a3b8; padding: 1px 6px; font-size: 11px; } /* 分页器精简 */ .anomalous-material-pager { display: flex; flex: 0 0 auto; align-items: center; justify-content: center; gap: 12px; padding: 8px 16px; border-top: 1px solid rgba(255, 255, 255, 0.06); background: #14161c; font-size: 12px; color: #94a3b8; } .anomalous-material-pager button:disabled { opacity: 0.35; cursor: default; } .anomalous-material-empty { grid-column: 1 / -1; padding: 48px 16px; text-align: center; color: #64748b; font-size: 14px; } .anomalous-material-editor { display: flex; flex: 1 0 100%; flex-wrap: wrap; gap: 12px; align-items: end; } .anomalous-material-editor label { display: flex; flex: 1 1 240px; gap: 6px; flex-direction: column; font-size: 13px; } .anomalous-material-editor input { box-sizing: border-box; min-width: 0; max-width: 100%; border: 1px solid #3d4350; border-radius: 8px; background: #1d2028; color: #e5e9f0; padding: 8px 10px; font: inherit; } .anomalous-library-detail-header:has(.anomalous-material-editor) { flex-wrap: wrap; } .anomalous-library-detail-view { display: flex; min-height: 0; flex: 1; flex-direction: column; overflow: hidden; background: #111318; } .anomalous-library-detail-header { display: flex; align-items: center; gap: 14px; min-height: 72px; padding: 12px 18px; border-bottom: 1px solid rgba(255,255,255,.08); background: rgba(25,27,33,.96); } .anomalous-library-detail-back { flex: 0 0 auto; padding: 8px 11px; border: 1px solid rgba(255,255,255,.1); border-radius: 8px; background: rgba(255,255,255,.04); color: #c9cfda; cursor: pointer; } .anomalous-library-detail-back:hover { border-color: rgba(81,221,190,.42); color: #fff; } .anomalous-library-detail-heading { display: flex; min-width: 0; flex: 1; align-items: center; gap: 10px; } .anomalous-library-detail-heading h2 { margin: 0; overflow: hidden; color: #f5f7fb; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; } .anomalous-library-detail-actions { display: flex; flex: 0 0 auto; gap: 8px; } .anomalous-library-detail-layout { display: grid; min-height: 0; flex: 1; grid-template-columns: minmax(300px, .88fr) minmax(410px, 1.12fr); overflow: hidden; } .anomalous-library-detail-layout.is-parameter { grid-template-columns: minmax(220px, .48fr) minmax(410px, 1.52fr); } .anomalous-library-detail-layout.is-parameter .anomalous-library-detail-image-stage { flex: 0 0 180px; border-color: rgba(139, 92, 246, 0.18); background: radial-gradient(circle at 50% 45%, rgba(139, 92, 246, 0.12), rgba(13, 15, 20, 0.9) 72%); cursor: default; } .anomalous-library-detail-media { display: flex; min-width: 0; min-height: 0; flex-direction: column; gap: 12px; padding: 18px; border-right: 1px solid rgba(255,255,255,.08); background: radial-gradient(circle at 50% 35%, #242a35, #0d0f14 72%); } .anomalous-library-detail-image-stage { display: flex; min-height: 0; flex: 1; align-items: center; justify-content: center; overflow: hidden; padding: 0; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; background: #090a0d; color: #647083; font-size: 42px; cursor: zoom-in; } .anomalous-library-detail-image-stage img { width: 100%; height: 100%; object-fit: contain; } .anomalous-library-detail-source { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 4px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.07); border-radius: 9px; background: rgba(0,0,0,.24); } .anomalous-library-detail-source-copy { display: grid; min-width: 0; gap: 4px; } .anomalous-library-detail-source-copy span { color: #778196; font-size: .65rem; } .anomalous-library-detail-source-copy strong { overflow: hidden; color: #cbd2df; font-size: .73rem; text-overflow: ellipsis; white-space: nowrap; } .anomalous-library-detail-source-open { flex: 0 0 auto; padding: 6px 9px; border: 1px solid rgba(81,221,190,.2); border-radius: 7px; background: rgba(81,221,190,.07); color: #79d9c4; font-size: .66rem; cursor: pointer; } .anomalous-library-detail-inspector { display: flex; flex-direction: column; gap: 12px; min-width: 0; overflow-y: auto; padding: 20px; } .anomalous-library-detail-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 20px; } .anomalous-library-detail-stat { display: grid; gap: 3px; padding: 13px 14px; border: 1px solid rgba(81,221,190,.16); border-radius: 10px; background: linear-gradient(135deg, rgba(81,221,190,.09), rgba(255,255,255,.025)); } .anomalous-library-detail-stat strong { color: #68e0c3; font-size: 1.15rem; } .anomalous-library-detail-stat span { color: #919bad; font-size: .69rem; } .anomalous-library-detail-callout { margin: -8px 0 18px; padding: 9px 11px; border-left: 2px solid #55cdb2; border-radius: 0 7px 7px 0; background: rgba(81,221,190,.055); color: #9bb5b1; font-size: .69rem; } /* ========================================================================== */ /* Material Library Sidebar Mode (Docked) Proportions: Left Narrow, Right Wide*/ /* ========================================================================== */ #anomalous-container.anomalous-docked .anomalous-library-detail-header { flex-wrap: wrap; min-height: auto; padding: 10px 14px; gap: 8px 12px; } #anomalous-container.anomalous-docked .anomalous-library-detail-back { padding: 6px 10px; font-size: 0.8rem; } #anomalous-container.anomalous-docked .anomalous-library-detail-heading { order: 0; min-width: 0; flex: 1; display: flex; align-items: center; gap: 8px; } #anomalous-container.anomalous-docked .anomalous-library-detail-heading h2 { font-size: 0.95rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } #anomalous-container.anomalous-docked .anomalous-material-scope-badge { font-size: 0.65rem; padding: 2px 7px; flex-shrink: 0; } #anomalous-container.anomalous-docked .anomalous-library-detail-actions { flex: 1 0 100%; width: 100%; display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 6px; padding-top: 6px; border-top: 1px solid rgba(255, 255, 255, 0.06); } #anomalous-container.anomalous-docked .anomalous-library-detail-actions .anomalous-btn-primary, #anomalous-container.anomalous-docked .anomalous-library-detail-actions .anomalous-btn-ghost, #anomalous-container.anomalous-docked .anomalous-material-header-apply-btn { padding: 6px 10px !important; font-size: 0.79rem !important; white-space: nowrap !important; flex-shrink: 0; } #anomalous-container.anomalous-docked .anomalous-library-detail-layout { grid-template-columns: clamp(180px, 30%, 205px) minmax(0, 1fr) !important; overflow: hidden; } #anomalous-container.anomalous-docked .anomalous-library-detail-layout.is-parameter { grid-template-columns: clamp(180px, 30%, 205px) minmax(0, 1fr) !important; } #anomalous-container.anomalous-docked .anomalous-library-detail-media { padding: 10px; gap: 8px; min-height: 0; border-right: 1px solid rgba(255, 255, 255, 0.08); } #anomalous-container.anomalous-docked .anomalous-library-detail-image-stage { max-height: min(240px, 36vh); min-height: 140px; border-radius: 8px; } #anomalous-container.anomalous-docked .anomalous-library-detail-source { padding: 6px 8px; gap: 4px; } #anomalous-container.anomalous-docked .anomalous-library-detail-source-copy span { font-size: 0.62rem; } #anomalous-container.anomalous-docked .anomalous-library-detail-source-copy strong { font-size: 0.7rem; } #anomalous-container.anomalous-docked .anomalous-library-detail-source-open { padding: 4px 7px; font-size: 0.64rem; } #anomalous-container.anomalous-docked .anomalous-library-detail-inspector { padding: 12px 14px; gap: 10px; } #anomalous-container.anomalous-docked .anomalous-material-prompt-card { padding: 8px 10px; } #anomalous-container.anomalous-docked .anomalous-material-prompt-bar { margin-bottom: 6px; } #anomalous-container.anomalous-docked .anomalous-material-prompt-bar-label { font-size: 0.78rem; font-weight: 600; } #anomalous-container.anomalous-docked .anomalous-material-mini-btn { padding: 3px 8px; font-size: 0.72rem; white-space: nowrap; flex-shrink: 0; } #anomalous-container.anomalous-docked .anomalous-material-prompt-content { font-size: 0.75rem; line-height: 1.45; } /* Material Library Container Queries */ @container (max-width: 768px) { .anomalous-library-detail-header { flex-wrap: wrap; min-height: auto; padding: 10px 14px; gap: 8px 12px; } .anomalous-library-detail-back { padding: 6px 10px; font-size: 0.8rem; } .anomalous-library-detail-heading { order: 0; min-width: 0; flex: 1; display: flex; align-items: center; gap: 8px; } .anomalous-library-detail-actions { flex: 1 0 100%; width: 100%; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; padding-top: 6px; border-top: 1px solid rgba(255, 255, 255, 0.06); } .anomalous-library-detail-layout { grid-template-columns: clamp(180px, 30%, 205px) minmax(0, 1fr) !important; } .anomalous-library-detail-layout.is-parameter { grid-template-columns: clamp(180px, 30%, 205px) minmax(0, 1fr) !important; } .anomalous-library-detail-media { padding: 10px; gap: 8px; } .anomalous-library-detail-image-stage { max-height: min(240px, 36vh); min-height: 140px; } .anomalous-library-detail-inspector { padding: 12px 14px; } } @container (max-width: 480px) { .anomalous-library-detail-layout { grid-template-columns: 1fr !important; overflow-y: auto; } .anomalous-library-detail-media { min-height: 220px; border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.08); } .anomalous-library-detail-inspector { overflow: visible; } } @media (max-width: 850px) { .anomalous-library-detail-header { align-items: flex-start; flex-wrap: wrap; } .anomalous-library-detail-heading { order: -1; flex-basis: 100%; } .anomalous-library-detail-layout { grid-template-columns: 1fr; overflow-y: auto; } .anomalous-library-detail-media { min-height: 390px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.08); } .anomalous-library-detail-layout.is-parameter .anomalous-library-detail-media { min-height: 260px; } .anomalous-library-detail-inspector { overflow: visible; } } .anomalous-material-expanded-models { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 7px; margin: 8px 0 14px; } .anomalous-material-expanded-model { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 9px; border: 1px solid rgba(255, 255, 255, 0.07); border-radius: 7px; background: rgba(0, 0, 0, 0.16); } .anomalous-material-expanded-model span { overflow: hidden; color: #cbd4df; font-size: 0.7rem; text-overflow: ellipsis; white-space: nowrap; } .anomalous-material-expanded-model small { flex: 0 0 auto; color: #6fcbb7; font-size: 0.62rem; } /* Professional Studio Material Detail Modal */ .anomalous-material-detail-overlay { position: fixed; inset: 0; z-index: 1000000; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(3, 4, 7, 0.88); backdrop-filter: blur(12px); } .anomalous-material-detail-overlay.is-suspended { visibility: hidden; pointer-events: none; } .anomalous-material-detail-dialog { position: relative; display: grid; grid-template-columns: minmax(0, 1.28fr) minmax(460px, 0.92fr); width: min(1420px, 96vw); height: min(900px, 92vh); max-height: 92vh; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 16px; background: #101217; box-shadow: 0 28px 80px rgba(0, 0, 0, 0.72); overflow: hidden; } .anomalous-material-detail-close { position: absolute; top: 14px; right: 14px; z-index: 10; width: 34px; height: 34px; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 50%; background: rgba(18, 20, 26, 0.7); color: #cbd5e1; font-size: 20px; line-height: 1; display: flex; align-items: center; justify-content: center; cursor: pointer; backdrop-filter: blur(6px); transition: all 0.15s; } .anomalous-material-detail-close:hover { background: rgba(255, 255, 255, 0.18); color: #fff; transform: scale(1.06); } .anomalous-material-detail-media { position: relative; display: flex; flex-direction: column; min-height: 0; height: 100%; overflow: hidden; background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.045), transparent 58%), #07080b; } .anomalous-material-detail-stage { display: flex; flex: 1; align-items: center; justify-content: center; min-height: 0; } .anomalous-material-detail-stage > img { width: 100%; height: 100%; object-fit: contain; user-select: none; } .anomalous-material-console { flex: 0 0 auto; max-height: 42%; overflow: auto; display: flex; flex-direction: column; gap: 8px; padding: 10px 12px 12px; border-top: 1px solid rgba(255, 255, 255, 0.08); background: #0c0e13; } .anomalous-material-filmstrip { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; } .anomalous-material-filmstrip[hidden], .anomalous-material-console-note-box[hidden] { display: none; } .anomalous-material-film-thumb { flex: 0 0 56px; width: 56px; height: 56px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; background: #111318; } .anomalous-material-film-thumb.is-clickable { cursor: pointer; } .anomalous-material-film-thumb.is-selected { border-color: #ffffff; box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.4); } .theme-abyssal-scarlet .anomalous-material-film-thumb.is-selected { border-color: rgba(220, 20, 60, 0.7); box-shadow: 0 0 0 1px rgba(220, 20, 60, 0.35); } .anomalous-material-film-thumb img, .anomalous-material-film-thumb video { width: 100%; height: 100%; object-fit: cover; } .anomalous-material-console-note-box { display: grid; gap: 4px; } .anomalous-material-console-note-label { color: #a38d53; font-size: 0.66rem; font-weight: 600; } .anomalous-material-console-note { margin: 0; display: -webkit-box; overflow: hidden; color: #d1c9b4; font-size: 0.74rem; line-height: 1.4; white-space: pre-wrap; -webkit-line-clamp: 3; -webkit-box-orient: vertical; } .anomalous-material-media-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; font-size: 0.76rem; color: #cbd5e1; } .anomalous-material-media-bar > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .anomalous-material-media-actions { display: flex; flex-shrink: 0; gap: 6px; } /* Right Inspector Panel - 3-Tier Layout (Fixed Header + Scroll Body + Sticky Footer) */ .anomalous-material-detail-side { display: flex; flex-direction: column; height: 100%; min-height: 0; background: #14161c; border-left: 1px solid rgba(255, 255, 255, 0.08); } .anomalous-material-side-header { padding: 20px 52px 14px 22px; border-bottom: 1px solid rgba(255, 255, 255, 0.06); flex-shrink: 0; } .anomalous-material-side-header h2 { margin: 0; font-size: 1.08rem; font-weight: 600; letter-spacing: -0.01em; color: #f4f7fb; } .anomalous-material-side-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; } .anomalous-material-side-chip { max-width: 100%; overflow: hidden; padding: 3px 8px; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 999px; background: rgba(255, 255, 255, 0.04); color: #b4becc; font-size: 0.68rem; text-overflow: ellipsis; white-space: nowrap; } /* Scrollable Body */ .anomalous-material-side-body { flex: 1; min-height: 0; overflow-y: auto; padding: 14px 22px 18px; display: flex; flex-direction: column; gap: 10px; } .anomalous-material-side-body::-webkit-scrollbar { width: 6px; } .anomalous-material-side-body::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.14); border-radius: 3px; } .anomalous-material-side-body::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.24); } /* Sticky Footer */ .anomalous-material-side-footer { padding: 12px 22px 16px; border-top: 1px solid rgba(255, 255, 255, 0.08); background: #111318; flex-shrink: 0; display: flex; flex-direction: column; gap: 8px; } .anomalous-material-side-footer .anomalous-btn-primary { width: 100%; margin-left: 0; padding: 10px 12px; border-radius: 8px; font-weight: 600; } .anomalous-material-side-footer label { display: grid; gap: 6px; color: #cbd5e1; font-size: 0.78rem; font-weight: 600; } .anomalous-material-side-footer input { padding: 9px 12px; border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 8px; background: rgba(255, 255, 255, 0.04); color: #ffffff; font-size: 0.82rem; outline: none; transition: border-color 0.15s; } .anomalous-material-side-footer input:focus { border-color: rgba(255, 255, 255, 0.35); background: rgba(255, 255, 255, 0.07); } @media (max-width: 860px) { .anomalous-material-detail-dialog { grid-template-columns: 1fr; height: 94vh; } .anomalous-material-detail-media { min-height: 0; max-height: 52vh; } .anomalous-material-detail-stage { min-height: 160px; } } /* 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(255, 255, 255, 0.015) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 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, rgba(255, 255, 255, 0.08)); background: var(--amb-bg-card, #24262E); 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, rgba(255, 255, 255, 0.22)); box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3); } .anomalous-recipe-card:focus-visible { outline: 2px solid var(--amb-accent-gold, #818cf8); 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: #0d0f14; 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 rgba(255, 255, 255, 0.12); font-size: 0.65rem; font-weight: 500; color: #e2e8f0; white-space: nowrap; box-shadow: none; } .anomalous-recipe-readiness-text { font-size: 0.64rem; line-height: 1; color: #cbd5e1; } .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 rgba(255, 255, 255, 0.12); color: #e2e8f0; 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 rgba(255, 255, 255, 0.12); color: #94a3b8; pointer-events: none; } .anomalous-recipe-scope-pill.is-partial { border-color: rgba(245, 158, 11, 0.4); color: #fbbf24; } .anomalous-recipe-scope-pill.is-complete { border-color: rgba(99, 102, 241, 0.4); color: #a5b4fc; } /* 网格卡片信息区 */ .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, #f1f5f9); 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(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.06); color: #94a3b8; white-space: nowrap; } .anomalous-recipe-spec-tag.is-lora { color: #93c5fd; background: rgba(59, 130, 246, 0.08); border-color: rgba(59, 130, 246, 0.2); } .anomalous-recipe-spec-tag.is-step { color: #86efac; 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(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08); color: #94a3b8; cursor: pointer; transition: all 0.15s ease; flex-shrink: 0; } .anomalous-recipe-badge-tag:hover { background: rgba(255, 255, 255, 0.1); color: #f1f5f9; } /* 网格卡片底部主动作与悬浮微操作 */ .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 rgba(255, 255, 255, 0.05); } .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 rgba(255, 255, 255, 0.2); 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, #E5E7EB); border-color: rgba(255, 255, 255, 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(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.09); color: #94a3b8; cursor: pointer; font-size: 11px; transition: all 0.15s ease; } .anomalous-recipe-card-mini-btn:hover { background: rgba(255, 255, 255, 0.12); color: #fff; 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: #fca5a5; } /* 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: #0d0f14; } .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: #f1f5f9; } .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-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: #fda4af; } .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: #fde68a; } .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: #fecaca; } .anomalous-recipe-banner-btn { padding: 6px 14px; border-radius: 7px; font-size: 0.82rem; font-weight: 600; cursor: pointer; border: none; transition: all 0.2s ease; white-space: nowrap; } .anomalous-recipe-banner-btn.is-match-all { background: #f59e0b; color: #1a1a1a; box-shadow: none; } .anomalous-recipe-banner-btn.is-match-all:hover { filter: brightness(1.1); transform: translateY(-1px); } /* Metric Cards for Sampling Parameters */ .anomalous-recipe-metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin-bottom: 14px; } .anomalous-recipe-metric-card { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border-radius: 8px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.07); } .anomalous-recipe-metric-label { font-size: 0.74rem; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.5px; } .anomalous-recipe-metric-value { font-size: 1.1rem; font-weight: 600; color: #f8fafc; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* Lazy Loaded Raw Nodes Container */ .anomalous-recipe-raw-nodes-summary { padding: 10px 14px; border-radius: 8px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); color: #93c5fd; cursor: pointer; user-select: none; font-size: 0.85rem; font-weight: 500; transition: background 0.2s; } .anomalous-recipe-raw-nodes-summary:hover { background: rgba(255, 255, 255, 0.06); } .anomalous-recipe-lazy-expand-btn { width: 100%; margin-top: 10px; padding: 9px; border-radius: 8px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); color: #cbd5e1; font-size: 0.82rem; cursor: pointer; transition: background 0.2s, border-color 0.2s; } .anomalous-recipe-lazy-expand-btn:hover { background: rgba(255, 255, 255, 0.09); border-color: rgba(255, 255, 255, 0.18); } .anomalous-recipe-readiness-pill.is-ready { background: rgba(16, 185, 129, 0.16); border-color: rgba(16, 185, 129, 0.45); color: #6ee7b7; } .anomalous-recipe-readiness-pill.is-warning { background: rgba(245, 158, 11, 0.16); border-color: rgba(245, 158, 11, 0.45); color: #fcd34d; } .anomalous-recipe-readiness-pill.is-missing { background: rgba(239, 68, 68, 0.16); border-color: rgba(239, 68, 68, 0.45); color: #fca5a5; } .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 rgba(255, 255, 255, 0.06); } .anomalous-recipe-btn-primary-action { flex: 1; padding: 8px 14px; border-radius: 8px; background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.18); color: #f1f5f9; 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(255, 255, 255, 0.16); border-color: rgba(255, 255, 255, 0.28); color: #ffffff; } .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(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08); color: #94a3b8; cursor: pointer; font-size: 0.85rem; line-height: 1; transition: all 0.15s ease; } .anomalous-recipe-card-mini-btn:hover { background: rgba(255, 255, 255, 0.1); color: #fff; border-color: rgba(255, 255, 255, 0.15); } .anomalous-recipe-banner-btn.is-match-all { background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.14); color: #e2e8f0; } .anomalous-recipe-banner-btn.is-match-all:hover { background: rgba(255, 255, 255, 0.14); color: #ffffff; } /* Metric Cards for Sampling Parameters */ .anomalous-recipe-metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin-bottom: 14px; } .anomalous-recipe-metric-card { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; border-radius: 8px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.07); } .anomalous-recipe-metric-label { font-size: 0.74rem; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.5px; } .anomalous-recipe-metric-value { font-size: 1.1rem; font-weight: 600; color: #f8fafc; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* Lazy Loaded Raw Nodes Container */ .anomalous-recipe-raw-nodes-summary { padding: 10px 14px; border-radius: 8px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); color: #93c5fd; cursor: pointer; user-select: none; font-size: 0.85rem; font-weight: 500; transition: background 0.2s; } .anomalous-recipe-raw-nodes-summary:hover { background: rgba(255, 255, 255, 0.06); } .anomalous-recipe-lazy-expand-btn { width: 100%; margin-top: 10px; padding: 9px; border-radius: 8px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); color: #cbd5e1; font-size: 0.82rem; cursor: pointer; transition: all 0.2s; } .anomalous-recipe-lazy-expand-btn:hover { background: rgba(255, 255, 255, 0.1); color: #fff; }