Files
DemonGatanjieu-Anomalous_Mo…/web/styles.css
T

7828 lines
183 KiB
CSS

#anomalous-trigger-btn {
--anomalous-trigger-size: 60px;
--anomalous-trigger-font-size: 28px;
--anomalous-trigger-pill-padding: 18px;
position: fixed;
bottom: 30px;
right: 30px;
width: var(--anomalous-trigger-size);
height: var(--anomalous-trigger-size);
border-radius: 50%;
background: linear-gradient(135deg, #1e1e1e 0%, #333 100%);
color: var(--fg-color, #fff);
border: 2px solid #555;
font-size: var(--anomalous-trigger-font-size);
cursor: pointer;
z-index: 2147483000 !important;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5), inset 0 2px 4px rgba(255, 255, 255, 0.1);
display: flex;
visibility: visible !important;
opacity: 1 !important;
align-items: center;
justify-content: center;
user-select: none;
transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
gap: 8px;
white-space: nowrap;
}
#anomalous-trigger-btn[data-size="small"] {
--anomalous-trigger-size: 44px;
--anomalous-trigger-font-size: 20px;
--anomalous-trigger-pill-padding: 13px;
}
#anomalous-trigger-btn[data-size="large"] {
--anomalous-trigger-size: 76px;
--anomalous-trigger-font-size: 34px;
--anomalous-trigger-pill-padding: 22px;
}
#anomalous-trigger-btn .anomalous-trigger-label {
display: none;
font-size: 14px;
font-weight: 600;
letter-spacing: 0.01em;
}
#anomalous-trigger-btn[data-style="pill"] {
width: auto;
min-width: calc(var(--anomalous-trigger-size) * 1.8);
padding: 0 var(--anomalous-trigger-pill-padding);
border-radius: 999px;
}
#anomalous-trigger-btn[data-style="pill"] .anomalous-trigger-label {
display: inline;
}
#anomalous-trigger-btn:hover {
transform: scale(1.15) translateY(-5px);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.7), inset 0 2px 4px rgba(255, 255, 255, 0.2);
border-color: #888;
}
#anomalous-trigger-btn.anomalous-trigger-hidden {
visibility: hidden !important;
opacity: 0 !important;
pointer-events: none !important;
transform: scale(0.7);
}
#anomalous-trigger-btn.anomalous-trigger-error {
border-color: #ff9f43;
box-shadow: 0 4px 15px rgba(255, 159, 67, 0.35), inset 0 2px 4px rgba(255, 255, 255, 0.1);
}
.anomalous-topbar-entry {
display: none !important;
}
html.anomalous-topbar-entry-enabled .anomalous-topbar-entry {
display: inline-flex !important;
}
html:not(.anomalous-floating-entry-enabled) [data-setting-id="Anomalous.ModelBrowser.FloatingTriggerSize"],
html:not(.anomalous-floating-entry-enabled) [data-setting-id="Anomalous.ModelBrowser.FloatingTriggerStyle"] {
display: none !important;
}
.anomalous-shortcut-setting {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 0.5rem;
}
.anomalous-shortcut-current {
min-width: 8.5rem;
padding: 0.38rem 0.65rem;
border: 1px solid var(--border-default, #4b5563);
border-radius: 0.4rem;
background: var(--comfy-input-bg, #101113);
color: var(--fg-color, #f3f4f6);
font: 600 0.78rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
text-align: center;
white-space: nowrap;
}
.anomalous-shortcut-customize {
padding: 0.42rem 0.72rem;
border: 1px solid var(--border-default, #4b5563);
border-radius: 0.4rem;
background: var(--comfy-input-bg, #24262b);
color: var(--fg-color, #f3f4f6);
cursor: pointer;
}
.anomalous-shortcut-customize:hover:not(:disabled) {
border-color: var(--p-primary-color, #60a5fa);
}
.anomalous-shortcut-customize:disabled {
cursor: wait;
opacity: 0.6;
}
#anomalous-modal {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
pointer-events: none;
z-index: 10000;
display: none;
}
#anomalous-modal.visible {
display: block;
}
#anomalous-container {
width: 90%;
height: 90%;
background: var(--bg-color, #222);
border-radius: 12px;
display: flex;
flex-direction: column;
overflow: hidden;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.8);
pointer-events: auto;
position: absolute;
left: 5%;
top: 5%;
container-type: inline-size;
font-size: calc(16px * var(--anomalous-scale, 1));
}
.anomalous-docked {
left: 0 !important;
top: 0 !important;
height: 100% !important;
width: 660px !important;
border-radius: 0 !important;
transition: all 0.3s ease;
}
#anomalous-header {
height: 60px;
background: var(--comfy-menu-bg, #333);
display: flex;
align-items: center;
padding: 0 50px 0 20px;
border-bottom: 1px solid var(--border-color, #555);
cursor: move;
position: relative;
}
#anomalous-settings-panel {
display: none;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.85);
z-index: 9999;
align-items: center;
justify-content: center;
}
#anomalous-settings-box {
background: var(--comfy-menu-bg, #2a2a2a);
border: 1px solid var(--border-color, #444);
padding: 30px;
border-radius: 12px;
display: flex;
flex-direction: column;
gap: 15px;
min-width: 300px;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.8);
}
.anomalous-resize-handle {
position: absolute;
bottom: 0;
right: 0;
width: 20px;
height: 20px;
cursor: se-resize;
z-index: 10000;
}
.anomalous-resize-handle::after {
content: '';
position: absolute;
bottom: 4px;
right: 4px;
width: 10px;
height: 10px;
border-right: 2px solid #666;
border-bottom: 2px solid #666;
}
.anomalous-header-group {
display: flex;
align-items: center;
gap: 12px;
}
#anomalous-header button {
margin-right: 0;
padding: 10px 18px;
background: rgba(255, 255, 255, 0.05);
color: #fff;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 8px;
cursor: pointer;
white-space: nowrap;
display: flex;
align-items: center;
gap: 8px;
font-size: 1.05em;
transition: all 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
}
#anomalous-header button:hover {
background: rgba(255, 255, 255, 0.15);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
border-color: rgba(255, 255, 255, 0.3);
}
/* Sidebar toggle logic for top buttons ONLY in narrow mode */
@container (max-width: 900px) {
#anomalous-notebook-btn .anomalous-btn-text {
display: none;
}
}
#anomalous-close {
font-size: 2em;
cursor: pointer;
color: var(--error-text, #ff4444);
position: absolute;
right: 20px;
flex-shrink: 0;
}
#anomalous-grid {
flex: 1;
padding: 20px;
overflow-y: auto;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
gap: 25px;
row-gap: 40px;
align-content: flex-start;
}
.anomalous-card {
position: relative;
background: var(--comfy-menu-bg, #333);
border: 1px solid var(--border-color, #444);
border-radius: 8px;
overflow: hidden;
display: flex;
flex-direction: column;
height: 420px;
height: 420px;
transition: all 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.anomalous-card:hover {
transform: translateY(-5px);
border-color: var(--fg-color, #fff);
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.5);
transition-delay: 0.08s;
}
.anomalous-card img,
.anomalous-card video {
width: 100%;
height: 340px;
object-fit: cover;
}
#anomalous-container.anomalous-sidebar-closed #anomalous-grid {
grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
gap: 15px;
row-gap: 30px;
}
#anomalous-container.anomalous-sidebar-closed .anomalous-card {
height: 380px;
}
#anomalous-container.anomalous-sidebar-closed .anomalous-card img,
#anomalous-container.anomalous-sidebar-closed .anomalous-card video {
height: 300px;
}
.anomalous-card-labels {
min-width: 0;
padding: 9px 11px 10px;
display: flex;
flex-direction: column;
gap: 4px;
text-align: center;
}
.anomalous-scan-progress {
position: fixed;
right: 24px;
bottom: 104px;
z-index: 1000000;
width: min(380px, calc(100vw - 32px));
box-sizing: border-box;
padding: 16px;
border: 1px solid rgba(138, 180, 248, 0.35);
border-radius: 12px;
background: rgba(24, 24, 27, 0.96);
color: #f1f3f4;
box-shadow: 0 14px 38px rgba(0, 0, 0, 0.42);
backdrop-filter: blur(12px);
}
.anomalous-scan-progress-title,
.anomalous-scan-progress-detail,
.anomalous-scan-progress-item {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-scan-progress-title {
margin-bottom: 10px;
font-size: 14px;
}
.anomalous-scan-progress-track {
position: relative;
height: 6px;
overflow: hidden;
border-radius: 999px;
background: rgba(255, 255, 255, 0.12);
}
.anomalous-scan-progress-fill {
height: 100%;
border-radius: inherit;
background: #8ab4f8;
transition: width 180ms ease;
}
.anomalous-scan-progress-fill.is-indeterminate {
animation: anomalous-scan-progress-slide 1.2s ease-in-out infinite;
}
.anomalous-scan-progress-detail {
margin-top: 10px;
color: #d7dde8;
font-size: 12px;
}
.anomalous-scan-progress-item {
margin-top: 4px;
color: #9aa0a6;
font-size: 11px;
}
.anomalous-scan-progress.is-complete .anomalous-scan-progress-fill {
background: #81c995;
}
.anomalous-scan-progress.is-error {
border-color: rgba(242, 139, 130, 0.5);
}
.anomalous-scan-progress.is-error .anomalous-scan-progress-fill {
background: #f28b82;
}
@keyframes anomalous-scan-progress-slide {
from { transform: translateX(-120%); }
to { transform: translateX(340%); }
}
.anomalous-card-title {
color: var(--fg-color, #fff);
font-size: 0.9em;
font-weight: 650;
line-height: 1.25;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
overflow-wrap: anywhere;
}
.anomalous-card-filename {
color: rgba(255, 255, 255, 0.55);
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
font-size: 0.72em;
line-height: 1.25;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
#anomalous-content {
display: flex;
flex-direction: column;
flex: 1;
overflow: hidden;
}
#anomalous-container {
flex-direction: row;
}
#anomalous-sidebar-wrapper {
width: 250px;
background: var(--comfy-menu-bg, #2a2a2a);
border-right: 1px solid var(--border-color, #444);
display: flex;
flex-direction: column;
transition: width 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.anomalous-sidebar-closed #anomalous-sidebar-wrapper {
width: 60px;
}
.anomalous-sidebar-closed #anomalous-sidebar-wrapper>div:first-child div {
display: none;
/* Hides "Anomalous Browser" text */
}
.anomalous-sidebar-closed #anomalous-sidebar {
opacity: 0;
pointer-events: none;
overflow: hidden;
}
.anomalous-sidebar-closed #anomalous-sidebar-actions {
flex-direction: column !important;
}
#anomalous-sidebar {
flex: 1;
overflow-y: auto;
display: flex;
flex-direction: column;
transition: opacity 0.2s;
}
#anomalous-settings {
border-top: 1px solid var(--border-color, #444);
background: var(--bg-color, #111);
}
.anomalous-lang-btn {
width: 100% !important;
border: 2px solid #555 !important;
padding: 12px !important;
font-weight: bold;
border-radius: 4px !important;
background: #1a1a1a !important;
cursor: pointer;
color: #fff;
margin-bottom: 15px;
}
.anomalous-type-header {
padding: 10px 15px;
background: var(--bg-color, #111);
color: var(--fg-color, #fff);
font-weight: bold;
font-size: 0.9em;
border-top: 1px solid var(--border-color, #444);
border-bottom: 1px solid var(--border-color, #444);
}
.anomalous-folder-item {
padding: 8px 15px;
color: var(--fg-color, #ccc);
cursor: pointer;
font-size: 0.9em;
transition: background 0.2s;
}
.anomalous-folder-item:hover {
background: var(--bg-color, #333);
}
.anomalous-folder-item.active {
background: var(--bg-color, #444);
color: var(--fg-color, #fff);
font-weight: bold;
border-left: 3px solid #007bff;
}
#anomalous-detail {
flex: 1;
display: flex;
flex-direction: column;
overflow: hidden;
background: var(--bg-color, #222);
}
.anomalous-split-container {
flex: 1;
display: flex;
flex-direction: row;
overflow: hidden;
}
.anomalous-split-left {
width: 40%;
display: flex;
align-items: center;
justify-content: center;
background: #000;
overflow: hidden;
}
.anomalous-resizer {
width: 5px;
background: var(--border-color, #444);
cursor: col-resize;
transition: background 0.2s;
}
.anomalous-resizer:hover {
background: #007bff;
}
.anomalous-split-right {
width: 60%;
background: var(--bg-color, #222);
overflow: auto;
}
.anomalous-card {
cursor: pointer;
}
.anomalous-folder-toggle {
cursor: pointer;
user-select: none;
}
#anomalous-api-key {
background: #333;
border: 1px solid #555;
color: #fff;
padding: 8px;
border-radius: 4px;
width: 150px;
margin-right: 15px;
}
#anomalous-api-key::placeholder {
color: #999;
}
@container (max-width: 750px) {
#anomalous-header button .anomalous-btn-text {
display: none;
}
.anomalous-split-left,
.anomalous-resizer {
display: none !important;
}
.anomalous-split-right {
width: 100% !important;
}
.anomalous-nb-sidebar {
width: 80px !important;
min-width: 80px !important;
}
.anomalous-nb-sidebar .anomalous-nb-item {
font-size: 0.8em;
padding: 8px 4px;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
}
.anomalous-nb-create-text {
display: none;
}
}
/* English Layout Specific Scaling */
.anomalous-lang-en {
font-size: 0.9em;
}
.anomalous-lang-en #anomalous-header button {
padding: 10px 16px;
font-size: 1.05em;
}
.anomalous-lang-en .anomalous-card-title {
font-size: 0.85em;
}
.anomalous-lang-en #anomalous-title {
font-size: 1.1em;
}
/* Compatible Models Section */
.anomalous-compatible-section {
margin-top: 20px;
padding-top: 20px;
border-top: 1px solid var(--border-color, #444);
}
.anomalous-compatible-title {
color: var(--fg-color, #fff);
font-size: 1.1em;
margin-bottom: 10px;
display: flex;
align-items: center;
gap: 8px;
}
.anomalous-compatible-list {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.anomalous-compatible-item {
background: var(--comfy-menu-bg, #333);
border: 1px solid var(--border-color, #555);
border-radius: 6px;
padding: 6px 10px;
display: flex;
align-items: center;
gap: 8px;
cursor: pointer;
transition: all 0.2s;
max-width: 200px;
}
.anomalous-compatible-item:hover {
border-color: #007bff;
background: var(--bg-color, #444);
transform: translateY(-2px);
}
.anomalous-compatible-item img,
.anomalous-compatible-item video {
width: 30px;
height: 30px;
object-fit: cover;
border-radius: 4px;
}
.anomalous-compatible-item-name {
color: var(--fg-color, #fff);
font-size: 0.85em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
flex: 1;
}
/* Notebook UI */
.anomalous-nb-modal {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.85);
z-index: 10001;
display: flex;
align-items: center;
justify-content: center;
}
.anomalous-nb-container {
width: 95%;
height: 95%;
background: var(--bg-color, #222);
border: 1px solid var(--border-color, #444);
border-radius: 12px;
display: flex;
flex-direction: column;
overflow: hidden;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.8);
}
.anomalous-nb-header {
height: 50px;
background: var(--comfy-menu-bg, #333);
border-bottom: 1px solid #444;
display: flex;
align-items: center;
padding: 0 20px;
justify-content: space-between;
color: #fff;
}
.anomalous-nb-close {
font-size: 2em;
cursor: pointer;
color: #ff4444;
}
.anomalous-nb-body {
flex: 1;
display: flex;
overflow: hidden;
container-type: inline-size;
}
.anomalous-nb-sidebar {
width: 250px;
background: #111;
border-right: 1px solid #444;
display: flex;
flex-direction: column;
transition: width 0.3s;
}
.anomalous-nb-create-row {
min-width: 0;
box-sizing: border-box;
align-items: center;
}
.anomalous-nb-create-input {
min-width: 0;
width: 0;
box-sizing: border-box;
}
.anomalous-nb-create-row > button {
flex: 0 0 auto;
min-width: 0;
}
@container (max-width: 600px) {
.anomalous-nb-sidebar {
width: 140px;
}
.anomalous-nb-create-text {
display: none;
}
}
.anomalous-nb-list {
flex: 1;
overflow-y: auto;
padding: 10px;
}
.anomalous-nb-item {
padding: 10px;
color: #ccc;
cursor: pointer;
border-radius: 4px;
margin-bottom: 5px;
background: #222;
display: flex;
align-items: center;
white-space: nowrap;
overflow: hidden;
font-size: 1.1em;
}
.anomalous-nb-item-icon {
flex-shrink: 0;
}
.anomalous-nb-item-text {
flex: 1;
text-overflow: ellipsis;
overflow: hidden;
}
.anomalous-nb-item:hover {
background: #333;
}
.anomalous-nb-item.active {
background: #007bff;
color: #fff;
font-weight: bold;
}
.anomalous-nb-editor {
flex: 1;
background: #222;
overflow-y: auto;
padding: 20px;
color: #eee;
}
.anomalous-nb-toolbar {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
}
.anomalous-nb-prompt-toolbar {
display: flex;
gap: 10px;
margin-bottom: 10px;
align-items: center;
flex-wrap: wrap;
}
#anomalous-container.anomalous-docked .anomalous-nb-prompt-toolbar select {
flex: 1 1 100%;
}
.anomalous-btn-primary {
background: #007bff;
color: white;
border: none;
padding: 6px 12px;
border-radius: 4px;
cursor: pointer;
margin-left: 5px;
}
.anomalous-btn-danger {
background: #dc3545;
color: white;
border: none;
padding: 6px 12px;
border-radius: 4px;
cursor: pointer;
margin-left: 5px;
}
.anomalous-btn-success {
background: #28a745;
color: white;
border: none;
padding: 6px 12px;
border-radius: 4px;
cursor: pointer;
margin-left: 5px;
}
.anomalous-nb-section {
background: #2a2a2a;
border: 1px solid #444;
border-radius: 8px;
padding: 15px;
margin-bottom: 20px;
}
.anomalous-nb-row {
margin-bottom: 10px;
}
.anomalous-nb-select {
background: #111;
color: #fff;
padding: 6px;
border: 1px solid #555;
border-radius: 4px;
}
.anomalous-nb-gallery {
display: flex;
gap: 10px;
overflow-x: auto;
padding: 10px 0;
}
.anomalous-nb-gallery-wrap {
display: flex;
gap: 10px;
flex-wrap: wrap;
padding: 10px 0;
}
.anomalous-nb-minicheck,
.anomalous-nb-minilora {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 12px 8px 8px;
background: #2a2a2a;
border: 1px solid #444;
border-radius: 8px;
cursor: pointer;
flex: 1 1 220px;
max-width: 320px;
transition: all 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.anomalous-nb-minicheck:hover,
.anomalous-nb-minilora:hover {
border-color: #888;
background: #383838;
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
transition-delay: 0.08s;
}
.anomalous-nb-minicheck.selected,
.anomalous-nb-minilora.selected {
border-color: #00ffcc;
background: rgba(0, 255, 204, 0.15);
box-shadow: 0 0 12px rgba(0, 255, 204, 0.2);
}
.anomalous-nb-minicheck img,
.anomalous-nb-minicheck video,
.anomalous-nb-minilora img,
.anomalous-nb-minilora video {
width: 52px;
height: 52px;
object-fit: cover;
border-radius: 6px;
flex-shrink: 0;
}
.anomalous-nb-minicheck-name,
.anomalous-nb-minilora-name {
color: #eee;
font-size: 0.95em;
line-height: 1.3;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
line-clamp: 2;
-webkit-box-orient: vertical;
text-align: left;
}
.anomalous-nb-minicheck.selected .anomalous-nb-minicheck-name,
.anomalous-nb-minilora.selected .anomalous-nb-minilora-name {
color: #00ffcc;
font-weight: bold;
}
.anomalous-nb-textarea {
width: 100%;
height: 60px;
background: #111;
color: #fff;
border: 1px solid #555;
border-radius: 4px;
padding: 8px;
margin-top: 10px;
resize: vertical;
box-sizing: border-box;
}
.anomalous-nb-dual-pane {
display: flex;
flex-direction: column;
width: 100%;
background: #1a1a1a;
padding: 10px;
border-radius: 8px;
border: 1px solid #444;
box-sizing: border-box;
}
.anomalous-nb-tag-row {
display: flex;
gap: 15px;
width: 100%;
align-items: stretch;
margin-bottom: 6px;
}
.anomalous-nb-gallery-box {
background: #1e1e1e;
border: 1px solid #444;
border-radius: 8px;
padding: 12px;
margin-bottom: 15px;
}
.anomalous-nb-visual-tag {
background: #2a2a2a;
color: #eee;
padding: 8px 12px;
border-radius: 6px;
border: 1px solid #444;
cursor: pointer;
transition: all 0.2s;
min-height: 36px;
display: flex;
align-items: center;
word-break: break-word;
font-size: 0.95em;
line-height: 1.4;
}
.anomalous-nb-visual-tag.hover {
background: #3a3a3a;
border-color: #00ffcc;
color: #fff;
box-shadow: inset 0 0 5px rgba(0, 255, 204, 0.2);
}
.anomalous-nb-copy-btn {
opacity: 0.3;
transition: all 0.2s;
padding-left: 10px;
flex-shrink: 0;
user-select: none;
}
.anomalous-nb-visual-tag:hover .anomalous-nb-copy-btn {
opacity: 1;
}
.anomalous-nb-copy-btn:hover {
transform: scale(1.3);
}
.anomalous-nb-tag-edit {
background: #111;
color: #fff;
border: 1px solid #00ffcc;
border-radius: 4px;
padding: 6px;
width: 100%;
font-size: 1em;
box-sizing: border-box;
}
/* Gallery Styles */
#anomalous-gallery-panel {
flex: 1;
display: none;
flex-direction: column;
overflow: hidden;
background: var(--bg-color, #222);
}
.anomalous-gallery-grid {
flex: 1;
padding: 20px;
overflow-y: auto;
display: grid;
/* Fit ~4 items per row on expanded screens */
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 15px;
align-content: flex-start;
}
#anomalous-container.anomalous-docked .anomalous-gallery-grid {
grid-template-columns: repeat(2, 1fr);
gap: 8px;
padding: 10px;
}
#anomalous-container.anomalous-docked .anomalous-gallery-card {
height: 180px;
}
.anomalous-gallery-card {
position: relative;
background: #111;
border: 1px solid #444;
border-radius: 8px;
overflow: hidden;
cursor: pointer;
/* Damped transition to prevent strobe effect */
transition: all 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
height: 250px;
display: flex;
flex-direction: column;
}
.anomalous-gallery-card:hover {
transform: translateY(-3px);
border-color: #007bff;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
transition-delay: 0.08s;
}
.anomalous-gallery-card img {
width: 100%;
height: 100%;
object-fit: contain;
background: #000;
}
.anomalous-gallery-delete {
position: absolute;
top: 8px;
right: 8px;
background: rgba(220, 53, 69, 0.85);
color: white;
border: none;
border-radius: 50%;
width: 32px;
height: 32px;
font-size: 16px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
transition: all 0.2s;
}
.anomalous-gallery-card:hover .anomalous-gallery-delete {
opacity: 1;
}
.anomalous-gallery-details {
position: absolute;
left: 8px;
bottom: 8px;
z-index: 2;
display: inline-flex;
align-items: center;
gap: 6px;
max-width: calc(100% - 16px);
padding: 6px 12px;
border: 1px solid rgba(255, 255, 255, 0.16);
border-radius: 999px;
background: rgba(15, 20, 30, 0.82);
color: #f1f5f9;
font-size: 11.5px;
font-weight: 600;
line-height: 1;
cursor: pointer;
opacity: 0;
transform: translateY(5px);
pointer-events: none;
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
transition: opacity .18s cubic-bezier(0.16, 1, 0.3, 1),
transform .18s cubic-bezier(0.16, 1, 0.3, 1),
background .18s ease,
border-color .18s ease,
box-shadow .18s ease,
color .18s ease;
user-select: none;
}
.anomalous-gallery-card:hover .anomalous-gallery-details,
.anomalous-gallery-card:focus-within .anomalous-gallery-details {
opacity: 1;
transform: translateY(0);
pointer-events: auto;
}
.anomalous-gallery-details:hover {
background: rgba(20, 29, 44, 0.94);
border-color: rgba(45, 212, 191, 0.55);
color: #5eead4;
box-shadow: 0 4px 16px rgba(45, 212, 191, 0.25);
transform: translateY(-1px);
}
.anomalous-gallery-details:active {
transform: translateY(0) scale(0.96);
}
.anomalous-gallery-details-icon {
width: 13px;
height: 13px;
flex-shrink: 0;
stroke: currentColor;
transition: transform .2s ease;
}
.anomalous-gallery-details:hover .anomalous-gallery-details-icon {
transform: scale(1.1);
}
#anomalous-gallery-panel.is-cover-selecting .anomalous-gallery-details,
#anomalous-gallery-panel.is-cover-selecting .anomalous-gallery-delete {
display: none;
}
.anomalous-gallery-delete:hover {
background: #ff0000;
transform: scale(1.1);
}
.anomalous-gallery-sentinel {
height: 40px;
width: 100%;
grid-column: 1 / -1;
display: flex;
align-items: center;
justify-content: center;
color: #888;
font-size: 0.9em;
}
.anomalous-gallery-viewer {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(0, 0, 0, 0.95);
z-index: 9999999;
display: none;
align-items: center;
justify-content: center;
}
dialog.anomalous-gallery-viewer[open] {
display: flex;
}
.anomalous-gallery-viewer img {
max-width: 95%;
max-height: 95%;
object-fit: contain;
border-radius: 4px;
box-shadow: 0 0 30px rgba(0, 0, 0, 0.8);
}
.anomalous-gallery-viewer-close {
position: absolute;
top: 20px;
right: 30px;
font-size: 40px;
color: #ccc;
cursor: pointer;
transition: color 0.2s;
user-select: none;
}
.anomalous-gallery-viewer-close:hover {
color: #fff;
}
@container (max-width: 750px) {
.anomalous-nb-create-row {
padding: 8px 6px !important;
gap: 3px !important;
}
.anomalous-nb-create-row > button {
width: 34px;
min-width: 34px;
padding: 8px 4px;
}
}
.anomalous-nb-header-main,
.anomalous-nb-section-tabs {
display: flex;
align-items: center;
}
.anomalous-nb-header-main {
min-width: 0;
gap: 18px;
}
.anomalous-nb-header-main h2 {
margin: 0;
white-space: nowrap;
}
.anomalous-nb-section-tabs {
gap: 4px;
padding: 3px;
border-radius: 8px;
background: rgba(0, 0, 0, 0.28);
}
.anomalous-nb-section-tab {
padding: 5px 10px;
border: 0;
border-radius: 6px;
background: transparent;
color: #aaa;
cursor: pointer;
}
.anomalous-nb-section-tab.active {
background: #007bff;
color: #fff;
}
/* Workflow Recipes: uses the Notebook modal shell while keeping cards compact. */
.anomalous-recipe-body {
display: flex;
flex: 1;
min-height: 0;
flex-direction: column;
font-family: Inter, Roboto, "Segoe UI", sans-serif;
}
.anomalous-recipe-actionbar {
display: flex;
align-items: center;
padding: 12px 16px;
border-bottom: 1px solid #3d3d3d;
}
.anomalous-recipe-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 16px;
overflow-y: auto;
padding: 16px;
}
.anomalous-recipe-card {
display: flex;
min-width: 0;
flex-direction: column;
gap: 10px;
padding: 14px;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 10px;
background: rgba(255, 255, 255, 0.05);
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
backdrop-filter: blur(10px);
transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.anomalous-recipe-card:hover {
transform: translateY(-2px);
border-color: rgba(112, 178, 255, 0.42);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}
.anomalous-recipe-card h3 {
overflow: hidden;
margin: 0;
color: #f1f1f1;
font-size: 1rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-recipe-thumbnail,
.anomalous-recipe-dialog-preview,
.anomalous-recipe-detail-hero video {
width: 100%;
border-radius: 7px;
background: #111;
object-fit: contain;
}
.anomalous-recipe-thumbnail {
height: 148px;
}
.anomalous-recipe-summary {
display: flex;
min-width: 0;
flex-direction: column;
gap: 7px;
color: #c9c9c9;
font-size: 0.8rem;
}
.anomalous-recipe-model,
.anomalous-recipe-prompt,
.anomalous-recipe-notes {
overflow: hidden;
margin: 0;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-recipe-sampling,
.anomalous-recipe-loras,
.anomalous-recipe-tags,
.anomalous-recipe-actions {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
}
.anomalous-recipe-actions button,
.anomalous-recipe-detail-actions button,
.anomalous-recipe-inline-controls button {
border-radius: 8px;
transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.anomalous-recipe-save-status {
color: #8bd5ca;
flex: 1 1 180px;
line-height: 1.35;
}
.anomalous-recipe-save-status.is-warning {
color: #ffcf70;
}
.anomalous-recipe-actions button:hover,
.anomalous-recipe-detail-actions button:hover,
.anomalous-recipe-inline-controls button:hover {
transform: translateY(-1px);
}
.anomalous-recipe-copy-param.copied-success,
.anomalous-recipe-actions button.copied-success,
.anomalous-recipe-detail-actions button.copied-success {
border-color: rgba(110, 231, 183, 0.7);
color: #6ee7b7;
}
.anomalous-recipe-copy-param.copied-failure,
.anomalous-recipe-actions button.copied-failure,
.anomalous-recipe-detail-actions button.copied-failure {
border-color: rgba(255, 153, 153, 0.7);
color: #ff9999;
}
.anomalous-recipe-label {
color: #999;
}
.anomalous-recipe-badge {
max-width: 100%;
overflow: hidden;
padding: 3px 7px;
border: 1px solid #4d4d4d;
border-radius: 999px;
color: #d4d4d4;
font-size: 0.75rem;
line-height: 1.1;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-recipe-badge-accent {
border-color: rgba(0, 255, 204, 0.55);
color: #00ffcc;
}
.anomalous-recipe-badge-lora {
border-color: rgba(116, 173, 255, 0.55);
color: #a9cdff;
}
.anomalous-recipe-badge-tag {
color: #ffd493;
}
.anomalous-recipe-badge-module {
border-color: rgba(189, 138, 255, 0.5);
color: #cfadff;
}
.anomalous-recipe-node-details {
margin-top: 2px;
border-top: 1px solid #3c3c3c;
padding-top: 7px;
}
.anomalous-recipe-node-details > summary {
color: #a9cdff;
cursor: pointer;
user-select: none;
}
.anomalous-recipe-node-list {
display: flex;
flex-direction: column;
gap: 8px;
padding: 8px 2px 2px;
}
.anomalous-recipe-node {
padding: 8px;
border: 1px solid #3f3f3f;
border-radius: 7px;
background: rgba(0, 0, 0, 0.18);
}
.anomalous-recipe-node-heading,
.anomalous-recipe-widget-row {
display: flex;
min-width: 0;
align-items: center;
gap: 6px;
}
.anomalous-recipe-node-heading {
flex-wrap: wrap;
margin-bottom: 5px;
}
.anomalous-recipe-widget-row {
padding: 3px 0;
}
.anomalous-recipe-edit-param {
display: grid;
grid-template-columns: minmax(110px, 34%) minmax(0, 1fr);
align-items: start;
gap: 8px;
padding: 7px 0;
border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.anomalous-recipe-edit-param .anomalous-nb-select,
.anomalous-recipe-edit-param .anomalous-nb-textarea {
width: 100%;
margin: 0;
box-sizing: border-box;
}
.anomalous-recipe-edit-param input[type="checkbox"] {
width: auto;
min-height: 22px;
justify-self: start;
}
.anomalous-recipe-widget-name {
flex: 0 0 34%;
overflow: hidden;
color: #aaa;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-recipe-widget-value {
flex: 1;
overflow: hidden;
color: #eee;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-recipe-copy-param {
border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(255, 255, 255, 0.05);
color: #9ec8ff;
cursor: pointer;
font-size: 1.15rem;
padding: 6px;
border-radius: 8px;
transition: background-color 0.2s, color 0.2s, transform 0.1s, border-color 0.2s;
display: flex;
align-items: center;
justify-content: center;
}
.anomalous-recipe-copy-param:hover {
background: rgba(158, 200, 255, 0.15);
border-color: rgba(158, 200, 255, 0.3);
color: #cce0ff;
}
.anomalous-recipe-copy-param:active {
transform: scale(0.95);
}
.anomalous-recipe-node-hint {
display: block;
margin-top: 4px;
color: #888;
}
@container (max-width: 680px) {
.anomalous-nb-header-main {
gap: 8px;
}
.anomalous-nb-header-main h2 {
display: none;
}
}
.anomalous-recipe-notes {
color: #aaa;
font-size: 0.8rem;
}
.anomalous-recipe-empty {
grid-column: 1 / -1;
color: #aaa;
text-align: center;
}
.anomalous-recipe-dialog-overlay {
position: absolute;
z-index: 10003;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
padding: 18px;
background: rgba(0, 0, 0, 0.62);
}
.anomalous-recipe-dialog {
display: flex;
width: min(620px, 100%);
max-height: 100%;
flex-direction: column;
gap: 12px;
overflow-y: auto;
padding: 18px;
border: 1px solid #555;
border-radius: 10px;
background: #272727;
color: #eee;
box-shadow: 0 18px 48px rgba(0, 0, 0, 0.6);
}
.anomalous-recipe-edit-dialog {
width: min(760px, 100%);
}
.anomalous-recipe-dialog h3,
.anomalous-recipe-dialog label {
display: flex;
flex-direction: column;
gap: 6px;
margin: 0;
}
.anomalous-recipe-dialog-preview {
max-height: 180px;
}
.anomalous-recipe-save-section {
display: flex;
flex-direction: column;
gap: 8px;
}
.anomalous-recipe-dialog label.anomalous-recipe-checkbox {
flex-direction: row;
align-items: center;
gap: 8px;
cursor: pointer;
}
.anomalous-recipe-checkbox input {
margin: 0;
}
.anomalous-recipe-cover-choices {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(78px, 1fr));
gap: 7px;
}
.anomalous-recipe-cover-choice {
display: flex;
min-height: 66px;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 4px;
overflow: hidden;
padding: 4px;
border: 1px solid #4a4a4a;
border-radius: 7px;
background: #191919;
color: #bbb;
cursor: pointer;
}
.anomalous-recipe-cover-choice img {
width: 100%;
height: 58px;
border-radius: 4px;
object-fit: cover;
}
.anomalous-recipe-cover-choice.selected {
border-color: #00ffcc;
color: #00ffcc;
box-shadow: inset 0 0 0 1px rgba(0, 255, 204, 0.35);
}
.anomalous-recipe-pin-picker {
border: 1px solid #444;
border-radius: 8px;
padding: 9px;
}
.anomalous-recipe-pin-picker > summary {
color: #a9cdff;
cursor: pointer;
}
.anomalous-recipe-pin-list {
display: flex;
flex-direction: column;
gap: 4px;
padding-top: 8px;
}
.anomalous-recipe-pin-node {
position: sticky;
top: 0;
z-index: 1;
padding: 5px 2px;
background: #272727;
color: #ddd;
}
.anomalous-recipe-pin-choice {
display: flex;
align-items: flex-start;
gap: 7px;
padding: 4px 6px;
border-radius: 5px;
color: #bbb;
cursor: pointer;
}
.anomalous-recipe-pin-choice:hover {
background: rgba(255, 255, 255, 0.06);
}
.anomalous-recipe-pinned {
display: flex;
flex-direction: column;
gap: 3px;
padding: 8px;
border: 1px solid rgba(0, 255, 204, 0.3);
border-radius: 7px;
background: rgba(0, 255, 204, 0.05);
}
.anomalous-recipe-history-list {
display: flex;
flex-direction: column;
gap: 7px;
padding-top: 8px;
}
.anomalous-recipe-history-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
padding: 7px;
border: 1px solid #3f3f3f;
border-radius: 7px;
color: #c9c9c9;
font-size: 0.82rem;
}
.anomalous-recipe-history-row > span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* Recipe detail panel: one scroll owner inside the Notebook modal. */
.anomalous-recipe-detail-view {
display: flex;
min-height: 0;
flex: 1;
flex-direction: column;
overflow: hidden;
background: #202020;
font-family: Inter, Roboto, "Segoe UI", sans-serif;
}
.anomalous-recipe-detail-header,
.anomalous-recipe-detail-section-heading {
display: flex;
align-items: center;
gap: 10px;
}
.anomalous-recipe-detail-header {
flex: 0 0 auto;
justify-content: space-between;
padding: 14px 18px;
border-bottom: 1px solid #3d3d3d;
}
.anomalous-recipe-detail-header h3,
.anomalous-recipe-detail-section h4 {
margin: 0;
}
.anomalous-recipe-detail-tabs {
display: flex;
flex: 0 0 auto;
gap: 4px;
overflow-x: auto;
padding: 8px 18px;
border-bottom: 1px solid #3d3d3d;
background: #252525;
}
.anomalous-recipe-detail-tab {
padding: 7px 11px;
border: 1px solid transparent;
border-radius: 7px;
color: #aaa;
background: transparent;
cursor: pointer;
white-space: nowrap;
}
.anomalous-recipe-detail-tab.active {
border-color: rgba(0, 255, 204, 0.45);
color: #00ffcc;
background: rgba(0, 255, 204, 0.08);
}
.anomalous-recipe-detail-content {
flex: 1;
min-height: 0;
overflow-y: auto;
padding: 14px;
}
.anomalous-recipe-gallery {
min-width: 0;
}
.anomalous-recipe-gallery-refresh {
margin-left: auto;
}
.anomalous-recipe-gallery-grid {
column-width: 210px;
column-gap: 12px;
}
.anomalous-recipe-gallery-card {
position: relative;
display: inline-block;
width: 100%;
margin: 0 0 12px;
overflow: hidden;
border: 1px solid #404040;
border-radius: 9px;
background: #171717;
break-inside: avoid;
}
.anomalous-recipe-gallery-card img {
display: block;
width: 100%;
max-height: 480px;
cursor: zoom-in;
object-fit: contain;
background: #101010;
}
.anomalous-recipe-gallery-card-actions {
position: absolute;
right: 8px;
bottom: 8px;
display: flex;
opacity: 0;
transform: translateY(4px);
transition: opacity 160ms ease, transform 160ms ease;
}
.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);
}
.anomalous-recipe-gallery-card-actions button {
box-shadow: 0 3px 12px rgba(0, 0, 0, 0.45);
}
.anomalous-recipe-gallery-comparison {
max-height: 260px;
overflow-y: auto;
padding: 10px;
border-top: 1px solid #3d3d3d;
background: #202020;
font-size: 0.82rem;
}
.anomalous-recipe-gallery-comparison > strong {
display: block;
margin-bottom: 6px;
}
.anomalous-recipe-gallery-diff-row {
padding: 7px 0;
border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.anomalous-recipe-gallery-diff-values {
display: grid;
gap: 4px;
margin-top: 4px;
color: #c8c8c8;
overflow-wrap: anywhere;
}
.anomalous-recipe-detail-overview,
.anomalous-recipe-detail-section {
display: flex;
flex-direction: column;
gap: 10px;
}
.anomalous-recipe-detail-hero {
display: grid;
grid-template-columns: minmax(140px, 220px) minmax(0, 1fr);
gap: 14px;
align-items: stretch;
}
.anomalous-recipe-detail-hero img {
width: 100%;
max-height: 190px;
min-height: 120px;
border-radius: 9px;
object-fit: contain;
background: #111;
}
.anomalous-recipe-detail-hero video {
width: 100%;
max-height: 190px;
min-height: 120px;
border-radius: 9px;
object-fit: contain;
background: #111;
}
.anomalous-recipe-detail-hero-copy {
display: flex;
min-width: 0;
flex-direction: column;
gap: 7px;
justify-content: center;
}
.anomalous-recipe-inline-title-row {
min-width: 0;
}
.anomalous-recipe-inline-title {
max-width: 100%;
overflow: hidden;
padding: 0;
border: 0;
color: #f1f1f1;
background: transparent;
cursor: text;
font: inherit;
font-size: 1.35rem;
font-weight: 700;
text-align: left;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-recipe-inline-title:hover,
.anomalous-recipe-inline-editable:hover {
color: #a9cdff;
}
.anomalous-recipe-inline-input {
width: 100%;
min-width: 0;
box-sizing: border-box;
padding: 7px 9px;
border: 1px solid rgba(112, 178, 255, 0.7);
border-radius: 7px;
color: #f4f4f4;
background: #161616;
font: inherit;
}
.anomalous-recipe-inline-editor.is-multiline .anomalous-recipe-inline-input {
resize: vertical;
}
.anomalous-recipe-inline-controls {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
margin-top: 6px;
}
.anomalous-recipe-inline-editable {
flex: 1;
min-width: 0;
cursor: text;
}
.anomalous-recipe-inline-edit-button {
padding: 2px 6px;
border: 1px solid rgba(255, 255, 255, 0.14);
border-radius: 6px;
color: #a9cdff;
background: transparent;
cursor: pointer;
font-size: 0.72rem;
}
.anomalous-recipe-detail-advanced,
.anomalous-recipe-advanced-info {
color: #aaa;
font-size: 0.78rem;
}
.anomalous-recipe-advanced-info > summary {
display: inline-flex;
align-items: center;
gap: 6px;
color: #a9cdff;
cursor: pointer;
user-select: none;
padding: 6px 12px;
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 8px;
transition: background-color 0.2s, color 0.2s, border-color 0.2s;
outline: none;
font-size: 0.85rem;
}
.anomalous-recipe-advanced-info > summary:hover,
.anomalous-recipe-advanced-info > summary:focus-visible {
background: rgba(169, 205, 255, 0.15);
border-color: rgba(169, 205, 255, 0.3);
color: #cce0ff;
}
.anomalous-recipe-advanced-row {
display: flex;
min-width: 0;
flex-wrap: wrap;
align-items: center;
gap: 7px;
margin-top: 7px;
padding: 7px 8px;
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 7px;
background: rgba(0, 0, 0, 0.14);
}
.anomalous-recipe-advanced-row code {
min-width: 0;
overflow-wrap: anywhere;
}
.anomalous-recipe-model-hash {
width: 100%;
}
.anomalous-recipe-detail-hero-copy h3 {
margin: 0;
color: #f1f1f1;
font-size: 1.35rem;
}
.anomalous-recipe-detail-hero-copy p {
margin: 0;
white-space: pre-wrap;
}
.anomalous-recipe-detail-notes {
display: flex;
min-width: 0;
gap: 6px;
align-items: start;
}
.anomalous-recipe-detail-notes p { flex: 1; }
.anomalous-recipe-detail-muted {
color: #999;
}
.anomalous-recipe-detail-stats,
.anomalous-recipe-detail-summary-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
gap: 8px;
}
.anomalous-recipe-detail-stat,
.anomalous-recipe-detail-summary-grid > div {
display: grid;
min-width: 0;
grid-template-columns: max-content minmax(0, 1fr);
align-items: start;
gap: 4px;
padding: 9px 10px;
border: 1px solid #3e3e3e;
border-radius: 8px;
background: rgba(0, 0, 0, 0.16);
}
.anomalous-recipe-detail-stat-label,
.anomalous-recipe-detail-label {
color: #999;
font-size: 0.8rem;
word-break: break-all;
overflow-wrap: anywhere;
}
.anomalous-recipe-detail-stat strong {
color: #eee;
}
.anomalous-recipe-detail-stat-good { color: #6ee7b7 !important; }
.anomalous-recipe-detail-stat-warn { color: #ffd493 !important; }
.anomalous-recipe-model-composition {
display: grid;
gap: 8px;
margin-bottom: 10px;
}
.anomalous-recipe-model-composition h5 {
margin: 0;
color: #ddd;
font-size: 0.9rem;
}
.anomalous-recipe-model-composition-grid {
display: grid;
min-width: 0;
grid-template-columns: minmax(0, 1fr);
gap: 8px;
}
.anomalous-recipe-model-composition-card {
display: grid;
min-width: 0;
gap: 5px;
padding: 9px 10px;
border: 1px solid #414141;
border-radius: 8px;
background: rgba(0, 0, 0, 0.14);
}
.anomalous-recipe-model-composition-card.is-base-model {
border-color: rgba(110, 231, 183, 0.35);
background: rgba(110, 231, 183, 0.05);
}
.anomalous-recipe-model-composition-value .anomalous-recipe-detail-full-value {
overflow-wrap: anywhere;
}
.anomalous-recipe-detail-summary-grid > div {
gap: 12px;
}
.anomalous-recipe-detail-summary-grid > .is-wide {
grid-column: 1 / -1;
}
.anomalous-recipe-detail-summary-grid .anomalous-recipe-detail-label {
padding-top: 6px;
white-space: nowrap;
}
.anomalous-recipe-detail-summary-grid .anomalous-recipe-detail-value-viewer {
width: 100%;
}
.anomalous-recipe-detail-summary-grid .anomalous-recipe-detail-full-value {
overflow-wrap: anywhere;
white-space: pre-wrap;
}
.anomalous-recipe-detail-section {
margin-bottom: 12px;
padding: 12px;
border: 1px solid #3d3d3d;
border-radius: 10px;
background: #292929;
}
.anomalous-recipe-detail-section-heading {
flex-wrap: wrap;
justify-content: space-between;
}
.anomalous-recipe-detail-section-heading small {
margin-left: auto;
}
.anomalous-recipe-refresh-button {
position: relative;
transition: opacity 0.2s ease, filter 0.2s ease;
}
.anomalous-recipe-refresh-button.is-loading {
cursor: wait;
opacity: 0.78;
filter: saturate(0.8);
}
.anomalous-recipe-refresh-button.is-loading::before {
content: '↻';
display: inline-block;
margin-right: 5px;
animation: anomalous-recipe-spin 0.9s linear infinite;
}
@keyframes anomalous-recipe-spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.anomalous-recipe-detail-actions { margin-top: 2px; }
.anomalous-recipe-identity-badge {
box-sizing: border-box;
min-width: 0;
max-width: 100%;
padding: 2px 6px;
border: 1px solid;
border-radius: 4px;
font-size: 0.65rem;
font-weight: 600;
white-space: normal;
overflow-wrap: anywhere;
display: inline-flex;
align-items: center;
}
.anomalous-recipe-identity-badge > span:first-child {
min-width: 0;
overflow-wrap: anywhere;
}
.anomalous-recipe-identity-badge-wrap {
display: inline-flex;
min-width: 0;
max-width: 100%;
flex: 0 1 auto;
flex-wrap: wrap;
align-items: center;
}
.anomalous-recipe-identity-help {
display: inline-flex;
width: 16px;
height: 16px;
align-items: center;
justify-content: center;
padding: 0;
border: 1px solid currentColor;
border-radius: 50%;
color: inherit;
background: transparent;
font-weight: normal;
opacity: 0.6;
margin-left: 2px;
cursor: pointer;
}
.anomalous-recipe-identity-help:hover,
.anomalous-recipe-identity-help:focus-visible {
opacity: 1;
outline: 2px solid rgba(255, 255, 255, 0.3);
outline-offset: 1px;
}
.anomalous-recipe-identity-explanation {
display: none;
flex: 0 0 100%;
max-width: min(340px, calc(100vw - 48px));
padding: 9px 11px;
border: 1px solid rgba(255, 255, 255, 0.18);
border-radius: 7px;
color: #fff;
background: rgba(20, 22, 28, 0.98);
box-shadow: 0 5px 16px rgba(0, 0, 0, 0.28);
font-size: 0.78rem;
font-weight: 400;
line-height: 1.45;
white-space: normal;
overflow-wrap: anywhere;
}
.anomalous-recipe-identity-badge-wrap.is-open .anomalous-recipe-identity-explanation {
display: block;
}
.anomalous-recipe-identity-verified {
border-color: rgba(110, 231, 183, 0.55);
color: #6ee7b7;
}
.anomalous-recipe-identity-unverified {
border-color: rgba(255, 212, 147, 0.55);
color: #ffd493;
}
.anomalous-recipe-identity-unavailable {
border-color: rgba(255, 119, 119, 0.55);
color: #ff9999;
}
.anomalous-recipe-model-reference-list {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
align-items: stretch;
gap: 12px;
}
@container (max-width: 680px) {
.anomalous-recipe-model-reference-list {
grid-template-columns: 1fr;
}
.anomalous-recipe-model-reference-body {
flex-direction: row;
align-items: flex-start;
}
.anomalous-recipe-model-preview {
max-width: 120px;
height: 100px;
flex: 0 0 100px;
}
}
.anomalous-recipe-detail-parameter-list,
.anomalous-recipe-version-timeline {
display: flex;
flex-direction: column;
gap: 9px;
}
.anomalous-recipe-parameter-notebook-layout {
display: grid;
min-width: 0;
grid-template-columns: minmax(170px, 0.28fr) minmax(0, 1fr);
gap: 10px;
align-items: start;
}
.anomalous-recipe-parameter-notebook-sidebar {
position: sticky;
top: 0;
display: flex;
min-width: 0;
max-height: min(560px, 70vh);
flex-direction: column;
gap: 8px;
padding: 10px;
border: 1px solid #3d3d3d;
border-radius: 10px;
background: rgba(0, 0, 0, 0.16);
overflow: hidden;
}
.anomalous-recipe-parameter-notebook-sidebar .anomalous-recipe-detail-section-heading {
align-items: center;
}
.anomalous-recipe-parameter-notebook-list {
display: flex;
min-height: 0;
flex-direction: column;
gap: 6px;
overflow-y: auto;
}
.anomalous-model-location {
display: grid;
gap: 7px;
margin-bottom: 12px;
padding: 10px 12px;
border: 1px solid var(--border-color, #444);
border-radius: 7px;
background: rgba(255, 255, 255, 0.025);
}
.anomalous-model-location-row {
min-width: 0;
display: grid;
grid-template-columns: max-content minmax(0, 1fr);
gap: 9px;
align-items: baseline;
}
.anomalous-model-location-label {
color: #9aa0a6;
font-size: 0.78em;
}
.anomalous-model-location code {
min-width: 0;
color: #d7dbe5;
font-size: 0.76em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.anomalous-model-location-copy {
justify-self: start;
padding: 4px 9px;
border: 1px solid rgba(138, 180, 248, 0.3);
border-radius: 5px;
background: rgba(138, 180, 248, 0.08);
color: #8ab4f8;
cursor: pointer;
font-size: 0.75em;
}
.anomalous-beta-notice {
display: flex;
min-width: 0;
align-items: flex-start;
gap: 9px;
margin: 10px 14px 0;
padding: 9px 11px;
border: 1px solid rgba(245, 190, 73, 0.38);
border-radius: 9px;
color: #e9d7aa;
background: linear-gradient(110deg, rgba(245, 158, 11, 0.13), rgba(245, 158, 11, 0.04));
font-size: 0.78rem;
line-height: 1.45;
}
.anomalous-beta-notice > span {
min-width: 0;
overflow-wrap: anywhere;
}
.anomalous-beta-badge {
flex: 0 0 auto;
padding: 2px 7px;
border: 1px solid rgba(251, 191, 36, 0.5);
border-radius: 999px;
color: #ffe4a3;
background: rgba(245, 158, 11, 0.12);
font-size: 0.7rem;
white-space: nowrap;
}
.anomalous-assistant-beta-notice {
margin: 10px 12px 0;
flex-shrink: 0;
}
.anomalous-recipe-parameter-notebook-row {
display: grid;
min-width: 0;
grid-template-columns: minmax(0, 1fr) 30px;
gap: 5px;
align-items: stretch;
transition: opacity 0.16s ease, transform 0.16s ease;
}
.anomalous-recipe-parameter-notebook-row.is-deleting {
opacity: 0.48;
transform: scale(0.98);
pointer-events: none;
}
.anomalous-recipe-parameter-notebook-item {
display: flex;
min-width: 0;
flex-direction: column;
align-items: flex-start;
gap: 3px;
padding: 8px 9px;
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 7px;
color: #ddd;
background: rgba(255, 255, 255, 0.03);
text-align: left;
cursor: pointer;
transition: transform 0.16s ease, border-color 0.16s ease, background 0.16s ease, opacity 0.16s ease;
}
.anomalous-recipe-parameter-notebook-item:active,
.anomalous-recipe-parameter-notebook-item.is-switching {
transform: scale(0.98);
opacity: 0.72;
}
.anomalous-recipe-parameter-notebook-item:hover,
.anomalous-recipe-parameter-notebook-item.is-active {
border-color: rgba(110, 231, 183, 0.58);
color: #c5f7df;
background: rgba(110, 231, 183, 0.1);
}
.anomalous-recipe-parameter-notebook-item > * {
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-recipe-parameter-notebook-rename,
.anomalous-recipe-parameter-notebook-delete {
display: grid;
place-items: center;
min-width: 30px;
padding: 0;
border: 1px solid rgba(255, 255, 255, 0.09);
border-radius: 7px;
color: #9da5b1;
background: rgba(255, 255, 255, 0.025);
cursor: pointer;
font-size: 0.9rem;
line-height: 1;
transition: color 0.16s ease, border-color 0.16s ease, background 0.16s ease, transform 0.16s ease;
}
.anomalous-recipe-parameter-notebook-rename:hover,
.anomalous-recipe-parameter-notebook-rename:focus-visible {
border-color: rgba(96, 165, 250, 0.55);
color: #bfdbfe;
background: rgba(96, 165, 250, 0.12);
}
.anomalous-recipe-parameter-notebook-delete:hover,
.anomalous-recipe-parameter-notebook-delete:focus-visible {
border-color: rgba(248, 113, 113, 0.55);
color: #fecaca;
background: rgba(248, 113, 113, 0.12);
}
.anomalous-recipe-parameter-notebook-rename:active,
.anomalous-recipe-parameter-notebook-delete:active { transform: scale(0.92); }
.anomalous-recipe-detail-parameters {
min-width: 0;
}
.anomalous-recipe-detail-parameters.is-switching {
animation: anomalous-recipe-parameter-panel-switch 360ms ease-out;
}
.anomalous-recipe-parameter-selection-banner {
display: flex;
min-width: 0;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 10px;
padding: 11px 13px;
border: 1px solid rgba(110, 231, 183, 0.48);
border-radius: 10px;
background: linear-gradient(100deg, rgba(110, 231, 183, 0.15), rgba(110, 231, 183, 0.04));
box-shadow: inset 3px 0 0 rgba(110, 231, 183, 0.82);
}
.anomalous-recipe-parameter-selection-copy {
display: flex;
min-width: 0;
flex-direction: column;
gap: 2px;
}
.anomalous-recipe-parameter-selection-copy strong {
overflow: hidden;
color: #d5fbe9;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-recipe-parameter-selection-badge {
flex: 0 0 auto;
padding: 4px 8px;
border: 1px solid rgba(110, 231, 183, 0.55);
border-radius: 999px;
color: #bff5d9;
background: rgba(110, 231, 183, 0.12);
font-size: 0.78rem;
font-weight: 700;
white-space: nowrap;
}
@keyframes anomalous-recipe-parameter-panel-switch {
0% {
opacity: 0.58;
transform: translateX(12px);
filter: saturate(1.35);
}
100% {
opacity: 1;
transform: translateX(0);
filter: saturate(1);
}
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}
.anomalous-recipe-parameter-editor {
min-width: 0;
}
.anomalous-recipe-parameter-editor-name {
display: grid;
grid-template-columns: max-content minmax(0, 1fr);
gap: 10px;
align-items: center;
margin-bottom: 12px;
color: #bbb;
}
.anomalous-recipe-parameter-editor-name input,
.anomalous-recipe-parameter-editor-input {
min-width: 0;
padding: 8px 10px;
border: 1px solid #4a4a4a;
border-radius: 7px;
color: #eee;
background: #181818;
font: inherit;
}
.anomalous-recipe-parameter-editor-input {
width: 100%;
resize: vertical;
}
.anomalous-recipe-parameter-editor-input:focus,
.anomalous-recipe-parameter-editor-name input:focus {
border-color: rgba(110, 231, 183, 0.7);
outline: none;
}
.anomalous-recipe-parameter-editor-input.is-invalid {
border-color: rgba(255, 119, 119, 0.9);
}
.anomalous-recipe-parameter-editor-row {
grid-template-columns: minmax(120px, 0.28fr) minmax(0, 1fr);
}
.anomalous-recipe-model-reference,
.anomalous-recipe-detail-parameter-node,
.anomalous-recipe-version-row {
padding: 9px 10px;
border: 1px solid #414141;
border-radius: 8px;
background: rgba(0, 0, 0, 0.15);
}
.anomalous-recipe-model-reference {
display: flex;
min-width: 0;
height: 100%;
flex-direction: column;
}
.anomalous-recipe-model-reference-body {
display: flex;
min-width: 0;
gap: 11px;
flex: 1;
flex-direction: column;
}
.anomalous-recipe-model-reference-details {
display: flex;
min-width: 0;
flex: 1;
flex-direction: column;
}
.anomalous-recipe-model-preview {
position: relative;
display: flex;
width: 100%;
height: 140px;
flex: 0 0 140px;
flex-direction: column;
align-items: center;
justify-content: center;
overflow: hidden;
border: 1px solid #464646;
border-radius: 7px;
color: #a9cdff;
background: #151515;
text-align: center;
}
.anomalous-recipe-model-preview.is-clickable {
cursor: pointer;
border-color: rgba(112, 178, 255, 0.58);
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.anomalous-recipe-model-preview.is-clickable:hover {
transform: translateY(-2px);
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22);
}
.anomalous-recipe-model-preview img,
.anomalous-recipe-model-preview video {
width: 100%;
height: 100%;
object-fit: cover;
}
.anomalous-recipe-model-preview small {
position: absolute;
max-width: calc(100% - 12px);
overflow: hidden;
padding: 2px 4px;
border-radius: 4px;
color: #ddd;
background: rgba(0, 0, 0, 0.68);
font-size: 0.64rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-recipe-model-preview.empty small {
position: static;
max-width: calc(100% - 12px);
padding: 0;
color: #888;
background: transparent;
white-space: normal;
}
.anomalous-recipe-model-reference-top,
.anomalous-recipe-model-reference-meta,
.anomalous-recipe-detail-parameter-row,
.anomalous-recipe-version-row {
display: flex;
min-width: 0;
align-items: center;
gap: 8px;
}
.anomalous-recipe-model-reference-top {
width: 100%;
flex-wrap: wrap;
}
.anomalous-recipe-model-reference-top strong {
min-width: 0;
margin-right: auto;
}
.anomalous-recipe-model-name {
min-width: 0;
max-width: 100%;
overflow: hidden;
padding: 3px 7px;
border: 1px solid transparent;
border-radius: 6px;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-recipe-model-name.is-resolved {
border-color: rgba(110, 231, 183, 0.42);
color: #b8f5d8;
background: rgba(110, 231, 183, 0.08);
cursor: pointer;
}
.anomalous-recipe-model-name.is-unresolved {
border-color: rgba(255, 255, 255, 0.08);
color: #999;
background: rgba(0, 0, 0, 0.12);
}
.anomalous-recipe-model-name-block {
display: flex;
flex-direction: column;
gap: 4px;
margin: 6px 0;
}
.anomalous-recipe-model-name-row {
min-width: 0;
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}
.anomalous-recipe-model-subtitle {
font-size: 0.75rem;
color: rgba(255, 255, 255, 0.4);
word-break: break-all;
padding-left: 2px;
}
.anomalous-recipe-civitai-btn {
font-size: 0.75rem;
color: #3b82f6;
text-decoration: none;
border: 1px solid rgba(59, 130, 246, 0.3);
padding: 2px 8px;
border-radius: 4px;
background: rgba(59, 130, 246, 0.1);
transition: all 0.2s ease;
white-space: nowrap;
display: inline-flex;
align-items: center;
justify-content: center;
}
.anomalous-recipe-civitai-btn:hover {
background: rgba(59, 130, 246, 0.2);
border-color: rgba(59, 130, 246, 0.5);
color: #60a5fa;
}
.anomalous-recipe-model-reference.is-unresolved {
border-color: rgba(255, 212, 147, 0.28);
}
.anomalous-recipe-model-match-status {
flex: 1;
min-width: 120px;
}
.anomalous-recipe-model-match {
padding: 4px 8px;
border-radius: 7px;
font-size: 0.76rem;
}
.anomalous-recipe-model-path {
width: 100%;
}
.anomalous-recipe-model-reference-value {
margin: 6px 0;
}
.anomalous-recipe-model-reference-meta {
flex-wrap: wrap;
color: #aaa;
font-size: 0.8rem;
}
.anomalous-recipe-detail-search {
min-width: 180px;
flex: 1;
padding: 7px 9px;
border: 1px solid #555;
border-radius: 6px;
color: #eee;
background: #161616;
}
.anomalous-recipe-detail-parameter-node {
display: flex;
flex-direction: column;
gap: 7px;
}
.anomalous-recipe-detail-parameter-row {
display: grid;
grid-template-columns: minmax(110px, 0.28fr) minmax(0, 1fr);
align-items: start;
padding-top: 6px;
border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.anomalous-recipe-detail-parameter-row .anomalous-recipe-detail-label {
padding-top: 5px;
}
.anomalous-recipe-detail-value-viewer {
display: grid;
min-width: 0;
grid-template-columns: minmax(0, 1fr) auto;
gap: 5px 8px;
align-items: start;
}
.anomalous-recipe-detail-full-value {
min-width: 0;
padding: 6px 8px;
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 6px;
color: #e7e7e7;
background: rgba(0, 0, 0, 0.18);
overflow-wrap: anywhere;
white-space: pre-wrap;
}
.anomalous-recipe-detail-full-value.is-collapsed {
display: -webkit-box;
max-height: 5.4em;
overflow: hidden;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
}
.anomalous-recipe-detail-value-toggle {
grid-column: 1;
justify-self: start;
padding: 2px 0;
border: 0;
color: #9fc4ff;
background: transparent;
cursor: pointer;
font-size: 0.78rem;
}
.anomalous-recipe-detail-copy {
grid-column: 2;
grid-row: 1;
}
.anomalous-recipe-detail-prompt-list {
display: grid;
gap: 8px;
}
.anomalous-recipe-detail-prompt {
display: grid;
grid-template-columns: minmax(170px, 0.28fr) minmax(0, 1fr);
gap: 12px;
align-items: start;
padding: 11px;
border: 1px solid rgba(255, 255, 255, 0.08);
border-left: 3px solid #7d8796;
border-radius: 9px;
background: rgba(0, 0, 0, 0.14);
transition: opacity 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}
.anomalous-recipe-detail-prompt.is-saving { opacity: 0.55; }
.anomalous-recipe-prompt-role-positive { border-left-color: #6ee7b7; }
.anomalous-recipe-prompt-role-negative { border-left-color: #df8d9a; }
.anomalous-recipe-prompt-role-both { border-left-color: #c4a7ff; }
.anomalous-recipe-prompt-role-ignored,
.anomalous-recipe-prompt-role-unknown { border-left-color: #7d8796; }
.anomalous-recipe-detail-prompt-label { padding-top: 5px; color: #d7e6ff; font-size: 0.85rem; }
.anomalous-recipe-prompt-meta {
display: flex;
min-width: 0;
flex-direction: column;
align-items: flex-start;
gap: 6px;
}
.anomalous-recipe-prompt-meta strong,
.anomalous-recipe-prompt-meta small {
max-width: 100%;
overflow-wrap: anywhere;
}
.anomalous-recipe-prompt-role-badge {
display: inline-flex;
width: fit-content;
padding: 2px 7px;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 999px;
color: #cbd5e1;
background: rgba(255, 255, 255, 0.05);
font-size: 0.72rem;
}
.anomalous-recipe-prompt-role-badge.is-positive { color: #9af0d0; border-color: rgba(110, 231, 183, 0.35); }
.anomalous-recipe-prompt-role-badge.is-negative { color: #f2a8b3; border-color: rgba(223, 141, 154, 0.38); }
.anomalous-recipe-prompt-role-badge.is-both { color: #d6c4ff; border-color: rgba(196, 167, 255, 0.4); }
.anomalous-recipe-prompt-role-select {
width: 100%;
min-width: 0;
padding: 6px 28px 6px 8px;
border: 1px solid rgba(159, 196, 255, 0.3);
border-radius: 7px;
color: var(--input-text, #e8eef7);
background: var(--comfy-input-bg, #24272d);
cursor: pointer;
}
.anomalous-recipe-prompt-role-select:focus-visible {
outline: 2px solid rgba(80, 170, 255, 0.7);
outline-offset: 1px;
}
.anomalous-recipe-prompt-value { min-width: 0; }
.anomalous-recipe-version-row {
justify-content: space-between;
flex-wrap: wrap;
}
.anomalous-recipe-version-row > div {
display: flex;
min-width: 150px;
flex-direction: column;
gap: 4px;
}
.anomalous-recipe-version-row.current {
border-color: rgba(0, 255, 204, 0.45);
}
@media (max-width: 680px) {
.anomalous-recipe-detail-hero { grid-template-columns: 1fr; }
.anomalous-recipe-detail-hero img { max-height: 180px; }
.anomalous-recipe-detail-content { padding: 10px; }
.anomalous-recipe-detail-header { padding: 10px; }
.anomalous-recipe-detail-header h3 { max-width: 34vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.anomalous-recipe-model-preview { height: 110px; flex-basis: 110px; }
.anomalous-recipe-parameter-notebook-layout { grid-template-columns: 1fr; }
.anomalous-recipe-parameter-notebook-sidebar { position: static; max-height: none; }
.anomalous-recipe-parameter-editor-name { grid-template-columns: 1fr; gap: 5px; }
}
@media (max-width: 560px) {
.anomalous-recipe-edit-param {
grid-template-columns: 1fr;
}
}
.anomalous-recipe-dialog-error {
min-height: 1em;
color: #ff7777;
font-size: 0.8rem;
}
.anomalous-model-settings-overlay {
position: absolute;
inset: 0;
z-index: 10020;
display: flex;
align-items: center;
justify-content: center;
padding: 24px;
box-sizing: border-box;
background: rgba(8, 9, 12, 0.78);
backdrop-filter: blur(8px);
}
.anomalous-model-settings-overlay[hidden] {
display: none;
}
.anomalous-model-settings-dialog {
width: min(560px, 100%);
padding: 24px;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 16px;
box-sizing: border-box;
color: #f3f4f6;
background: linear-gradient(145deg, rgba(48, 49, 55, 0.98), rgba(27, 28, 33, 0.98));
box-shadow: 0 24px 70px rgba(0, 0, 0, 0.55);
}
.anomalous-model-settings-dialog h2 {
margin: 0 0 6px;
font-size: 1.3em;
}
.anomalous-model-settings-description {
margin: 0 0 18px;
color: #aeb3bd;
font-size: 0.9em;
line-height: 1.55;
}
.anomalous-model-setting-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
padding: 16px 0;
border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.anomalous-model-setting-copy {
display: flex;
flex: 1;
min-width: 0;
flex-direction: column;
gap: 5px;
}
.anomalous-model-setting-copy small {
color: #9da3ad;
line-height: 1.45;
}
.anomalous-model-setting-select {
width: 190px;
max-width: 44%;
padding: 9px 10px;
border: 1px solid rgba(255, 255, 255, 0.15);
border-radius: 8px;
color: #f5f5f5;
background: #17181c;
cursor: pointer;
}
.anomalous-model-settings-note {
margin-top: 4px;
padding: 10px 12px;
border-radius: 8px;
color: #a9c8ee;
background: rgba(80, 145, 220, 0.1);
font-size: 0.82em;
line-height: 1.45;
}
.anomalous-model-settings-close {
display: block;
min-width: 96px;
margin: 20px 0 0 auto;
padding: 9px 18px;
border: 1px solid rgba(255, 255, 255, 0.15);
border-radius: 8px;
color: #fff;
background: #3f73b9;
cursor: pointer;
}
@media (max-width: 620px) {
.anomalous-model-setting-row {
align-items: stretch;
flex-direction: column;
gap: 10px;
}
.anomalous-model-setting-select {
width: 100%;
max-width: none;
}
}
/* Recipe library discovery and semantic version diff. */
.anomalous-recipe-actionbar {
flex-wrap: wrap;
align-items: center;
gap: 8px;
}
.anomalous-recipe-search {
min-width: 220px;
flex: 1 1 240px;
}
.anomalous-recipe-filter-tags {
display: flex;
flex: 1 1 100%;
flex-wrap: wrap;
gap: 5px;
align-items: center;
}
.anomalous-recipe-filter-tag {
border: 1px solid rgba(138, 180, 248, 0.42);
border-radius: 999px;
background: rgba(138, 180, 248, 0.08);
color: #cfe1ff;
padding: 3px 9px;
cursor: pointer;
}
.anomalous-recipe-filter-tag:hover,
.anomalous-recipe-filter-tag.active {
background: rgba(138, 180, 248, 0.28);
color: #fff;
}
.anomalous-recipe-filter-summary {
color: #9caec4;
white-space: nowrap;
}
.anomalous-recipe-badge-tag {
border: 0;
cursor: pointer;
}
.anomalous-recipe-version-diff {
flex: 1 1 100%;
margin-top: 8px;
padding: 9px;
border-left: 2px solid rgba(138, 180, 248, 0.42);
background: rgba(0, 0, 0, 0.14);
}
.anomalous-recipe-diff-group {
margin-top: 8px;
}
.anomalous-recipe-diff-group h5 {
margin: 4px 0;
color: #cfe1ff;
}
.anomalous-recipe-diff-row {
display: grid;
grid-template-columns: 18px minmax(0, 1fr);
align-items: start;
gap: 7px;
margin-top: 6px;
padding: 8px;
min-width: 0;
border: 1px solid rgba(255, 255, 255, 0.07);
border-radius: 7px;
background: rgba(0, 0, 0, 0.1);
}
.anomalous-recipe-diff-marker {
width: 16px;
text-align: center;
font-weight: 700;
}
.anomalous-recipe-diff-added .anomalous-recipe-diff-marker,
.anomalous-recipe-diff-added .anomalous-recipe-diff-after { color: #6ee7b7; }
.anomalous-recipe-diff-removed .anomalous-recipe-diff-marker,
.anomalous-recipe-diff-removed .anomalous-recipe-diff-before { color: #ff9a9a; }
.anomalous-recipe-diff-changed .anomalous-recipe-diff-marker { color: #ffd493; }
.anomalous-recipe-diff-label {
min-width: 0;
padding-top: 3px;
}
.anomalous-recipe-diff-arrow { display: none; }
.anomalous-recipe-diff-values {
display: grid;
grid-column: 2;
grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
gap: 7px;
min-width: 0;
}
.anomalous-recipe-diff-value {
min-width: 0;
padding: 7px;
border-radius: 6px;
background: rgba(255, 255, 255, 0.025);
}
.anomalous-recipe-diff-value-before { border-left: 2px solid rgba(255, 154, 154, 0.66); }
.anomalous-recipe-diff-value-after { border-left: 2px solid rgba(110, 231, 183, 0.66); }
.anomalous-recipe-diff-value .anomalous-recipe-detail-value-viewer { margin-top: 4px; }
.anomalous-recipe-diff-value .anomalous-recipe-detail-full-value { font-size: 0.78rem; }
@media (max-width: 720px) {
.anomalous-recipe-diff-values { grid-template-columns: 1fr; }
.anomalous-recipe-detail-prompt,
.anomalous-recipe-detail-parameter-row { grid-template-columns: 1fr; }
.anomalous-recipe-detail-prompt-label,
.anomalous-recipe-detail-parameter-row .anomalous-recipe-detail-label { padding-top: 0; }
}
/* Secondary Actions Group */
.anomalous-recipe-actions-secondary {
display: flex;
gap: 6px;
align-items: center;
}
/* Primary Actions Group */
.anomalous-recipe-actions-primary {
display: flex;
gap: 6px;
align-items: center;
margin-left: auto;
}
.anomalous-recipe-header-status {
max-width: 190px;
color: rgba(190, 205, 225, 0.78);
font-size: 0.75rem;
line-height: 1.25;
white-space: normal;
text-align: right;
}
/* Icon Button (for emoji/icons) */
.anomalous-btn-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
padding: 0;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 8px;
background: rgba(255, 255, 255, 0.05);
color: #e0e0e0;
cursor: pointer;
font-size: 14px;
transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease, color 0.2s ease;
}
.anomalous-btn-icon:hover {
background: rgba(255, 255, 255, 0.15);
border-color: rgba(255, 255, 255, 0.25);
transform: translateY(-1px);
}
.anomalous-btn-icon.anomalous-btn-edit:hover {
color: #6ee7b7;
border-color: rgba(110, 231, 183, 0.4);
background: rgba(110, 231, 183, 0.1);
}
.anomalous-btn-icon.anomalous-btn-delete:hover {
color: #fca5a5;
border-color: rgba(252, 165, 165, 0.4);
background: rgba(252, 165, 165, 0.1);
}
.anomalous-btn-icon.anomalous-btn-export:hover {
color: #93c5fd;
border-color: rgba(147, 197, 253, 0.4);
background: rgba(147, 197, 253, 0.1);
}
/* Ghost Button (secondary text button) */
.anomalous-btn-ghost {
background: rgba(255, 255, 255, 0.08);
color: #e0e0e0;
border: 1px solid rgba(255, 255, 255, 0.15);
padding: 6px 12px;
border-radius: 4px;
cursor: pointer;
margin-left: 5px;
transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.anomalous-btn-ghost:hover {
background: rgba(255, 255, 255, 0.15);
border-color: rgba(255, 255, 255, 0.25);
transform: translateY(-1px);
}
@keyframes anomalous-parameter-switch {
0% {
opacity: 0;
transform: translateY(12px);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
.anomalous-recipe-detail-parameters.is-switching {
animation: anomalous-parameter-switch 0.4s cubic-bezier(0.1, 0.9, 0.2, 1) forwards;
}
.anomalous-recipe-detail-parameters.is-switching .anomalous-recipe-detail-section:nth-child(1) {
animation: anomalous-parameter-switch 0.4s cubic-bezier(0.1, 0.9, 0.2, 1) 0.03s both;
}
.anomalous-recipe-detail-parameters.is-switching .anomalous-recipe-detail-section:nth-child(2) {
animation: anomalous-parameter-switch 0.4s cubic-bezier(0.1, 0.9, 0.2, 1) 0.08s both;
}
.anomalous-recipe-detail-parameters.is-switching .anomalous-recipe-detail-section:nth-child(3) {
animation: anomalous-parameter-switch 0.4s cubic-bezier(0.1, 0.9, 0.2, 1) 0.13s both;
}
.anomalous-recipe-detail-parameters.is-switching .anomalous-recipe-detail-section:nth-child(4) {
animation: anomalous-parameter-switch 0.4s cubic-bezier(0.1, 0.9, 0.2, 1) 0.18s both;
}
.anomalous-recipe-parameter-notebook-item.is-switching {
animation: anomalous-parameter-switch 0.25s cubic-bezier(0.1, 0.9, 0.2, 1) forwards;
}
/* Parameter Summary Grid Styling */
.anomalous-recipe-detail-summary-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
gap: 16px;
padding: 16px;
background: rgba(255, 255, 255, 0.03);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 8px;
margin-bottom: 24px;
}
.anomalous-recipe-detail-summary-grid .anomalous-recipe-detail-parameter-row.is-wide {
grid-column: 1 / -1;
}
/* Node Parameter Card Styling */
.anomalous-recipe-detail-parameter-node {
position: relative;
padding: 16px;
margin-bottom: 16px;
background: rgba(0, 0, 0, 0.25);
border: 1px solid rgba(255, 255, 255, 0.06);
border-radius: 8px;
transition: max-height 0.3s ease;
}
.anomalous-recipe-detail-node-title {
display: block;
margin-bottom: 12px;
font-size: 1.05rem;
color: #e0e0e0;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
padding-bottom: 8px;
}
.anomalous-recipe-material-selection {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 8px;
margin-top: 10px;
padding: 9px 10px;
border: 1px solid rgba(45, 212, 191, 0.16);
border-radius: 8px;
background: rgba(45, 212, 191, 0.045);
}
.anomalous-recipe-material-selection .anomalous-workbench-node-selection-count {
margin-right: auto;
}
.anomalous-recipe-material-node-header {
display: flex;
align-items: center;
gap: 9px;
margin-bottom: 12px;
padding-bottom: 8px;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.anomalous-recipe-material-node-header .anomalous-recipe-detail-node-title {
min-width: 0;
flex: 1;
margin: 0;
padding: 0;
border: 0;
}
.anomalous-recipe-material-node-select {
appearance: none;
-webkit-appearance: none;
width: 16px;
height: 16px;
flex: 0 0 16px;
margin: 0;
border-radius: 4px;
border: 1.5px solid rgba(255, 255, 255, 0.22);
background-color: rgba(15, 23, 42, 0.5);
cursor: pointer;
position: relative;
outline: none;
display: inline-grid;
place-content: center;
vertical-align: middle;
transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}
.anomalous-recipe-material-node-select:hover {
border-color: rgba(45, 212, 191, 0.6);
background-color: rgba(45, 212, 191, 0.08);
}
.anomalous-recipe-material-node-select:checked {
background-color: #2dd4bf;
border-color: #2dd4bf;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230b0f17' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-6'/%3E%3C/svg%3E");
background-size: 11px 11px;
background-position: center;
background-repeat: no-repeat;
box-shadow: 0 0 8px rgba(45, 212, 191, 0.35);
}
.anomalous-recipe-material-node-select:focus-visible {
outline: 2px solid #2dd4bf;
outline-offset: 2px;
}
/* Grid Layout for Node Widgets */
.anomalous-recipe-detail-node-widgets {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 12px;
}
/* Smart Expansion (Collapsible Nodes) */
.anomalous-recipe-detail-parameter-node.is-collapsed {
max-height: 180px;
overflow: hidden;
}
.anomalous-recipe-detail-node-expand {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 70px;
background: linear-gradient(to bottom, transparent 0%, #202020 80%, #202020 100%);
display: flex;
align-items: flex-end;
justify-content: center;
padding-bottom: 8px;
z-index: 10;
border-radius: 0 0 8px 8px;
}
.anomalous-recipe-detail-node-expand button {
background: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 12px;
padding: 4px 16px;
font-size: 0.8rem;
color: #ccc;
cursor: pointer;
transition: background 0.2s, color 0.2s;
}
.anomalous-recipe-detail-node-expand button:hover {
background: rgba(255, 255, 255, 0.2);
color: #fff;
}
/* Hero Section Styling */
.anomalous-recipe-detail-hero {
position: relative;
width: 100%;
max-height: 350px;
margin-bottom: 24px;
border-radius: 8px;
overflow: hidden;
background: rgba(0, 0, 0, 0.2);
}
.anomalous-recipe-detail-hero-image {
width: 100%;
height: 100%;
max-height: 350px;
object-fit: cover;
display: block;
cursor: pointer;
transition: transform 0.3s ease;
}
.anomalous-recipe-detail-hero-image:hover {
transform: scale(1.02);
}
.anomalous-recipe-detail-hero-gallery-btn {
position: absolute;
bottom: 16px;
right: 16px;
background: rgba(0, 0, 0, 0.6);
color: #fff;
border: 1px solid rgba(255, 255, 255, 0.2);
padding: 8px 16px;
border-radius: 20px;
font-size: 0.9rem;
cursor: pointer;
backdrop-filter: blur(8px);
transition: background 0.2s, transform 0.2s;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
.anomalous-recipe-detail-hero-gallery-btn:hover {
background: rgba(0, 0, 0, 0.8);
transform: translateY(-2px);
}
/* 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-body {
min-height: 0;
flex: 1;
display: flex;
flex-direction: column;
overflow: hidden;
background: #141519;
}
.anomalous-material-intro {
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
padding: 18px 22px;
border-bottom: 1px solid rgba(255,255,255,.08);
}
.anomalous-material-intro h3,
.anomalous-material-intro p,
.anomalous-material-card h3 { margin: 0; }
.anomalous-material-muted { color: #9298a8; }
.anomalous-material-list {
flex: 1;
min-height: 0;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 300px));
grid-auto-rows: max-content;
align-content: start;
gap: 16px;
padding: 20px;
overflow-y: auto;
}
.anomalous-material-toolbar,
.anomalous-material-pager {
display: flex;
flex: 0 0 auto;
align-items: center;
flex-wrap: wrap;
gap: 10px;
padding: 12px 20px;
border-bottom: 1px solid rgba(255,255,255,.08);
}
.anomalous-material-toolbar input { flex: 1 1 220px; }
.anomalous-material-toolbar select { flex: 0 1 200px; }
.anomalous-material-toolbar input,
.anomalous-material-toolbar select,
.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: 9px 11px;
font: inherit;
}
.anomalous-material-pager { justify-content: center; border-top: 1px solid rgba(255,255,255,.08); }
.anomalous-material-pager button:disabled { opacity: .4; cursor: default; }
.anomalous-material-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.anomalous-material-tag { max-width: 100%; overflow-wrap: anywhere; border-radius: 5px; background: #292e39; color: #b9c4d6; padding: 3px 7px; font-size: 12px; }
.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-library-detail-header:has(.anomalous-material-editor) { flex-wrap: wrap; }
.anomalous-material-card:focus-visible { outline: 2px solid #91b3df; outline-offset: 3px; }
.anomalous-material-empty { grid-column: 1 / -1; padding: 36px; text-align: center; color: #818797; }
.anomalous-material-card {
position: relative;
display: flex;
min-width: 0;
flex-direction: column;
overflow: hidden;
border: 1px solid rgba(255,255,255,.09);
border-radius: 13px;
background: linear-gradient(155deg, #20232c, #16181e);
box-shadow: 0 8px 22px rgba(0,0,0,.25);
cursor: pointer;
transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}
.anomalous-material-card:hover {
transform: translateY(-3px);
border-color: rgba(81,221,190,.38);
box-shadow: 0 14px 32px rgba(0,0,0,.45), 0 0 16px rgba(81,221,190,.12);
}
.anomalous-material-card-delete {
position: absolute;
top: 9px;
right: 9px;
z-index: 5;
display: flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
padding: 0;
border: 1px solid rgba(255,255,255,.14);
border-radius: 7px;
background: rgba(18, 20, 26, 0.72);
color: #e2e8f0;
font-size: 13px;
cursor: pointer;
backdrop-filter: blur(8px);
opacity: 0;
transition: opacity 0.15s ease, background 0.15s ease, transform 0.15s ease;
}
.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);
transform: scale(1.08);
}
.anomalous-material-card-quick-load {
position: absolute;
top: 9px;
left: 9px;
z-index: 5;
display: flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
padding: 0;
border: 1px solid rgba(81,221,190,.3);
border-radius: 7px;
background: rgba(18, 20, 26, 0.75);
color: #55cdb2;
font-size: 13px;
cursor: pointer;
backdrop-filter: blur(8px);
opacity: 0;
transition: opacity 0.15s ease, background 0.15s ease, transform 0.15s ease;
}
.anomalous-material-card:hover .anomalous-material-card-quick-load {
opacity: 1;
}
.anomalous-material-card-quick-load:hover {
background: rgba(45, 212, 191, 0.28);
border-color: rgba(45, 212, 191, 0.6);
transform: scale(1.08);
}
.anomalous-material-card-preview {
display: flex;
flex-shrink: 0;
height: 180px;
align-items: center;
justify-content: center;
overflow: hidden;
background: #0d0e12;
font-size: 34px;
}
.anomalous-material-card-preview img { width: 100%; height: 100%; object-fit: cover; }
.anomalous-material-card-body { display: grid; gap: 9px; padding: 14px 14px 14px; }
.anomalous-material-card-body h3 {
display: -webkit-box;
min-height: 38px;
overflow: hidden;
color: #f5f7fb;
font-size: 14px;
line-height: 19px;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.anomalous-material-card-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.anomalous-material-source-mark {
max-width: 100%;
overflow: hidden;
padding: 3px 7px;
border: 1px solid rgba(255,255,255,.08);
border-radius: 999px;
background: rgba(255,255,255,.035);
color: #a7afbe;
font-size: .66rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-material-source-mark.is-current {
border-color: rgba(81,221,190,.22);
color: #8fdcc8;
}
.anomalous-material-source-mark.is-modified,
.anomalous-material-source-mark.is-missing {
border-color: rgba(245,158,11,.28);
background: rgba(245,158,11,.08);
color: #e0b56a;
}
.anomalous-material-source-mark.is-detail {
width: fit-content;
max-width: 100%;
padding: 6px 10px;
border-radius: 8px;
white-space: normal;
}
.anomalous-material-meta-pill {
padding: 3px 7px;
border: 1px solid rgba(255,255,255,.08);
border-radius: 999px;
background: rgba(255,255,255,.035);
color: #a7afbe;
font-size: .66rem;
}
.anomalous-material-types { overflow: hidden; color: #718096; font-size: 0.72rem; text-overflow: ellipsis; white-space: nowrap; }
.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(45, 212, 191, 0.18);
background: radial-gradient(circle at 50% 45%, rgba(45, 212, 191, 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;
}
@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: rgba(56, 189, 248, 0.7);
box-shadow: 0 0 0 1px rgba(56, 189, 248, 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;
}
.anomalous-recipe-card {
position: relative;
display: flex;
min-width: 0;
max-width: 420px;
flex-direction: column;
gap: 10px;
padding: 14px;
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 14px;
background: linear-gradient(145deg, #1f2229, #131418);
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.28);
/* backdrop-filter removed for scrolling performance */
transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.22s ease, box-shadow 0.22s ease;
overflow: hidden;
}
.anomalous-recipe-card:hover {
transform: translateY(-3px);
border-color: rgba(99, 102, 241, 0.5);
box-shadow: 0 12px 36px rgba(0, 0, 0, 0.45), 0 0 20px rgba(99, 102, 241, 0.18);
}
.anomalous-recipe-card-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
min-width: 0;
}
.anomalous-recipe-card-title {
overflow: hidden;
margin: 0;
color: #f8fafc;
font-size: 1.05rem;
font-weight: 600;
text-overflow: ellipsis;
white-space: nowrap;
letter-spacing: -0.01em;
}
.anomalous-recipe-card-media-wrap {
position: relative;
width: 100%;
height: 155px;
border-radius: 9px;
overflow: hidden;
background: #111215;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid rgba(255, 255, 255, 0.06);
}
.anomalous-recipe-card-media-wrap .anomalous-recipe-thumbnail,
.anomalous-recipe-card-media-wrap video {
width: 100% !important;
height: 100% !important;
object-fit: cover !important;
transition: transform 0.3s ease !important;
}
.anomalous-recipe-card:hover .anomalous-recipe-thumbnail,
.anomalous-recipe-card:hover video {
transform: scale(1.03) !important;
}
.anomalous-recipe-cover-pill {
position: absolute;
bottom: 8px;
left: 8px;
padding: 3px 8px;
border-radius: 6px;
background: rgba(10, 10, 12, 0.82);
backdrop-filter: blur(8px);
border: 1px solid rgba(255, 255, 255, 0.14);
color: #e2e8f0;
font-size: 0.72rem;
font-weight: 500;
max-width: 85%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
pointer-events: none;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}
.anomalous-recipe-specs-strip {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px;
font-size: 0.74rem;
min-height: 24px;
}
.anomalous-recipe-spec-tag {
display: inline-flex;
align-items: center;
gap: 3px;
padding: 3px 7px;
border-radius: 5px;
background: rgba(255, 255, 255, 0.04);
border: 1px solid rgba(255, 255, 255, 0.08);
color: #cbd5e1;
white-space: nowrap;
}
.anomalous-recipe-spec-tag.is-lora {
color: #93c5fd;
background: rgba(59, 130, 246, 0.1);
border-color: rgba(59, 130, 246, 0.25);
}
.anomalous-recipe-spec-tag.is-step {
color: #a7f3d0;
background: rgba(16, 185, 129, 0.1);
border-color: rgba(16, 185, 129, 0.25);
}
.anomalous-recipe-readiness-pill {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 2px 8px;
border-radius: 999px;
font-size: 0.7rem;
font-weight: 600;
white-space: nowrap;
border: 1px solid transparent;
}
.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 12px;
border-radius: 8px;
background: linear-gradient(135deg, rgba(99, 102, 241, 0.85), rgba(79, 70, 229, 0.95));
border: 1px solid rgba(129, 140, 248, 0.4);
color: #ffffff;
font-size: 0.82rem;
font-weight: 500;
cursor: pointer;
text-align: center;
box-shadow: 0 2px 8px rgba(99, 102, 241, 0.25);
transition: all 0.2s ease;
}
.anomalous-recipe-btn-primary-action:hover {
filter: brightness(1.15);
box-shadow: 0 4px 14px rgba(99, 102, 241, 0.45);
transform: translateY(-1px);
}
.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.12);
color: #fff;
transform: translateY(-1px);
}
/* 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: #a7f3d0;
}
.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: 0 2px 8px rgba(245, 158, 11, 0.3);
}
.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;
gap: 4px;
padding: 2px 8px;
border-radius: 999px;
font-size: 0.7rem;
font-weight: 600;
white-space: nowrap;
border: 1px solid transparent;
}
.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;
}
/* Studio Layout Overhaul */
.anomalous-recipe-detail-overview .anomalous-recipe-detail-hero {
display: grid !important;
grid-template-columns: 260px minmax(0, 1fr) !important;
gap: 20px !important;
align-items: start !important;
padding: 16px !important;
border-radius: 14px !important;
background: linear-gradient(145deg, rgba(30, 32, 38, 0.7), rgba(18, 19, 23, 0.85)) !important;
border: 1px solid rgba(255, 255, 255, 0.08) !important;
margin-bottom: 16px !important;
backdrop-filter: blur(12px);
}
.anomalous-recipe-detail-hero-media {
position: relative;
width: 100%;
height: 220px;
border-radius: 10px;
overflow: hidden;
background: #0d0e11;
border: 1px solid rgba(255, 255, 255, 0.06);
display: flex;
align-items: center;
justify-content: center;
}
.anomalous-recipe-detail-hero-media img,
.anomalous-recipe-detail-hero-media video {
width: 100% !important;
height: 100% !important;
max-height: none !important;
object-fit: cover !important;
border-radius: 9px;
cursor: pointer;
transition: transform 0.25s ease;
}
.anomalous-recipe-detail-hero-media:hover img {
transform: scale(1.02);
}
.anomalous-recipe-studio-metrics {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
gap: 8px;
margin: 12px 0 8px 0;
}
.anomalous-recipe-studio-metric-tile {
display: flex;
flex-direction: column;
gap: 2px;
padding: 8px 10px;
border-radius: 8px;
background: rgba(255, 255, 255, 0.035);
border: 1px solid rgba(255, 255, 255, 0.06);
}
.anomalous-recipe-studio-metric-label {
font-size: 0.72rem;
color: #94a3b8;
text-transform: uppercase;
letter-spacing: 0.3px;
}
.anomalous-recipe-studio-metric-val {
font-size: 0.96rem;
font-weight: 600;
color: #f1f5f9;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* Prompt Showcase Boxes - Clean Monochromatic Dark */
.anomalous-recipe-prompt-box {
position: relative;
padding: 12px 14px;
border-radius: 8px;
margin-bottom: 10px;
font-size: 0.84rem;
line-height: 1.55;
word-break: break-word;
background: rgba(255, 255, 255, 0.025);
border: 1px solid rgba(255, 255, 255, 0.08);
color: #cbd5e1;
}
.anomalous-recipe-prompt-box.is-positive,
.anomalous-recipe-prompt-box.is-negative {
background: rgba(255, 255, 255, 0.025);
border: 1px solid rgba(255, 255, 255, 0.08);
}
.anomalous-recipe-prompt-copy-btn {
position: absolute;
top: 8px;
right: 8px;
padding: 3px 8px;
border-radius: 6px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid rgba(255, 255, 255, 0.1);
color: #cbd5e1;
font-size: 0.72rem;
cursor: pointer;
transition: all 0.15s;
}
.anomalous-recipe-prompt-copy-btn:hover {
background: rgba(255, 255, 255, 0.15);
color: #fff;
}
.anomalous-recipe-beta-notice[style*="display: none"] {
display: none !important;
}
/* ========================================================================== */
/* Modern Studio Presets (Parameter Notebook Overhaul) */
/* ========================================================================== */
.anomalous-preset-btn-primary {
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
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;
transition: all 0.15s ease;
}
.anomalous-preset-btn-primary:hover {
background: rgba(255, 255, 255, 0.18);
border-color: rgba(255, 255, 255, 0.28);
color: #ffffff;
}
.anomalous-preset-btn-secondary {
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
padding: 8px 12px;
border-radius: 8px;
background: rgba(255, 255, 255, 0.035);
border: 1px solid rgba(255, 255, 255, 0.08);
color: #94a3b8;
font-size: 0.82rem;
cursor: pointer;
transition: all 0.15s ease;
}
.anomalous-preset-btn-secondary:hover {
background: rgba(255, 255, 255, 0.08);
border-color: rgba(255, 255, 255, 0.15);
color: #cbd5e1;
}
.anomalous-preset-item-card {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
padding: 10px 12px;
border-radius: 8px;
background: rgba(255, 255, 255, 0.02);
border: 1px solid rgba(255, 255, 255, 0.07);
cursor: pointer;
transition: all 0.15s ease;
margin-bottom: 6px;
}
.anomalous-preset-item-card:hover {
background: rgba(255, 255, 255, 0.045);
border-color: rgba(255, 255, 255, 0.14);
}
.anomalous-preset-item-card.is-active {
background: rgba(255, 255, 255, 0.06);
border-color: rgba(255, 255, 255, 0.22);
box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.7);
}
.anomalous-preset-item-main {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 4px;
}
.anomalous-preset-item-title {
font-size: 0.88rem;
font-weight: 500;
color: #cbd5e1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-preset-item-card.is-active .anomalous-preset-item-title {
color: #ffffff;
font-weight: 600;
}
.anomalous-preset-item-meta {
display: flex;
align-items: center;
gap: 6px;
font-size: 0.72rem;
color: #64748b;
}
.anomalous-preset-item-badge {
padding: 1px 6px;
border-radius: 4px;
background: rgba(255, 255, 255, 0.08);
color: #94a3b8;
font-size: 0.68rem;
font-weight: 500;
}
.anomalous-preset-item-actions {
display: flex;
align-items: center;
gap: 4px;
opacity: 0.4;
transition: opacity 0.15s ease;
}
.anomalous-preset-item-card:hover .anomalous-preset-item-actions {
opacity: 1;
}
.anomalous-preset-item-btn {
padding: 5px 7px;
border-radius: 6px;
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.08);
color: #cbd5e1;
cursor: pointer;
font-size: 0.78rem;
line-height: 1;
transition: all 0.15s;
}
.anomalous-preset-item-btn:hover {
background: rgba(255, 255, 255, 0.16);
color: #fff;
transform: translateY(-1px);
}
.anomalous-preset-item-btn.is-delete:hover {
background: rgba(239, 68, 68, 0.2);
border-color: rgba(239, 68, 68, 0.4);
color: #fca5a5;
}
/* Preset Console Header (Right Main Stage) */
.anomalous-preset-console-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
padding: 16px 18px;
border-radius: 12px;
background: linear-gradient(145deg, rgba(30, 32, 38, 0.7), rgba(18, 19, 23, 0.85));
border: 1px solid rgba(255, 255, 255, 0.08);
margin-bottom: 14px;
backdrop-filter: blur(12px);
}
.anomalous-preset-console-info {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
gap: 6px;
}
.anomalous-preset-console-title-row {
display: flex;
align-items: center;
gap: 10px;
flex-wrap: wrap;
}
.anomalous-preset-console-title {
font-size: 1.15rem;
font-weight: 600;
color: #f8fafc;
margin: 0;
}
.anomalous-preset-console-actions {
display: flex;
align-items: center;
gap: 8px;
margin-top: 4px;
}
.anomalous-preset-compact-gallery {
position: relative;
width: 120px;
height: 80px;
border-radius: 8px;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.12);
cursor: pointer;
flex-shrink: 0;
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
transition: transform 0.2s ease, border-color 0.2s ease;
}
.anomalous-preset-compact-gallery:hover {
transform: scale(1.03);
border-color: rgba(99, 102, 241, 0.5);
}
.anomalous-preset-compact-gallery img {
width: 100% !important;
height: 100% !important;
max-height: none !important;
object-fit: cover !important;
}
.anomalous-preset-compact-gallery-badge {
position: absolute;
bottom: 4px;
right: 4px;
padding: 2px 6px;
border-radius: 4px;
background: rgba(0, 0, 0, 0.75);
color: #fff;
font-size: 0.68rem;
backdrop-filter: blur(4px);
white-space: nowrap;
}
/* ========================================================================== */
/* Material Snapshot Progressive Disclosure Styles */
/* ========================================================================== */
.anomalous-material-section-label {
margin: 4px 0 0;
color: #8d96a8;
font-size: 0.68rem;
font-weight: 700;
letter-spacing: 0.06em;
}
.anomalous-material-metric-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 7px;
}
.anomalous-material-metric-card {
display: flex;
flex-direction: column;
gap: 4px;
min-width: 0;
padding: 9px 10px;
border-radius: 9px;
background: rgba(255, 255, 255, 0.035);
border: 1px solid rgba(255, 255, 255, 0.07);
}
.anomalous-material-metric-card.is-wide {
grid-column: 1 / -1;
}
.anomalous-material-metric-label {
font-size: 0.66rem;
color: #8b95a7;
}
.anomalous-material-metric-val {
color: #eef3f9;
font-size: 0.88rem;
font-weight: 600;
font-variant-numeric: tabular-nums;
line-height: 1.25;
overflow-wrap: anywhere;
}
.anomalous-material-prompt-card {
position: relative;
padding: 10px 12px 10px 13px;
border: 1px solid rgba(255, 255, 255, 0.08);
border-left-width: 3px;
border-radius: 9px;
background: rgba(255, 255, 255, 0.03);
color: #cbd5e1;
font-size: 0.8rem;
line-height: 1.5;
}
.anomalous-material-prompt-card.is-positive {
border-left-color: #2dd4bf;
}
.anomalous-material-prompt-card.is-negative {
border-left-color: #f87171;
}
.anomalous-material-prompt-content {
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
max-height: 4.6em;
overflow: hidden;
color: #d5dce8;
font-size: 0.76rem;
white-space: pre-wrap;
word-break: break-word;
}
.anomalous-material-prompt-content.is-expanded {
max-height: none !important;
overflow: visible !important;
}
.anomalous-material-prompt-bar {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 6px;
}
.anomalous-material-prompt-bar-label {
font-size: 0.75rem;
font-weight: 600;
color: #94a3b8;
}
.anomalous-material-prompt-bar-btns {
display: flex;
align-items: center;
gap: 6px;
}
.anomalous-material-mini-btn {
padding: 2px 7px;
border-radius: 5px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid rgba(255, 255, 255, 0.1);
color: #cbd5e1;
font-size: 0.7rem;
cursor: pointer;
transition: all 0.15s;
}
.anomalous-material-mini-btn:hover {
background: rgba(255, 255, 255, 0.14);
color: #fff;
}
.anomalous-material-model-peek {
display: flex;
flex-direction: column;
gap: 8px;
}
.anomalous-material-model-card-item.is-primary {
padding: 9px 11px;
border-color: rgba(56, 189, 248, 0.22);
background: rgba(56, 189, 248, 0.06);
}
.anomalous-material-model-peek-counts {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.anomalous-material-peek-chip {
padding: 2px 8px;
border-radius: 999px;
font-size: 0.68rem;
font-weight: 600;
}
.anomalous-material-accordion {
border-radius: 9px;
background: rgba(255, 255, 255, 0.02);
border: 1px solid rgba(255, 255, 255, 0.07);
}
.anomalous-material-accordion > summary {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 9px 12px;
font-size: 0.78rem;
font-weight: 500;
color: #cbd5e1;
cursor: pointer;
user-select: none;
list-style: none;
background: rgba(255, 255, 255, 0.025);
border-radius: 9px;
transition: background 0.15s;
}
.anomalous-material-accordion > summary::-webkit-details-marker {
display: none;
}
.anomalous-material-accordion > summary::after {
content: '';
flex-shrink: 0;
width: 6px;
height: 6px;
border-right: 1.5px solid #9aa3b5;
border-bottom: 1.5px solid #9aa3b5;
transform: rotate(45deg);
transition: transform 0.15s;
}
.anomalous-material-accordion > summary:hover {
background: rgba(255, 255, 255, 0.05);
color: #f1f5f9;
}
.anomalous-material-accordion[open] > summary {
border-bottom: 1px solid rgba(255, 255, 255, 0.06);
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.anomalous-material-accordion[open] > summary::after {
transform: rotate(225deg);
}
.anomalous-material-accordion-content {
padding: 10px 12px;
font-size: 0.78rem;
}
/* Chips list for node types */
.anomalous-material-chip-flow {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.anomalous-material-chip {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 3px 8px;
border-radius: 6px;
background: rgba(255, 255, 255, 0.04);
border: 1px solid rgba(255, 255, 255, 0.08);
color: #94a3b8;
font-size: 0.73rem;
}
.anomalous-material-chip-count {
font-size: 0.68rem;
opacity: 0.6;
}
/* Lazy, two-level disclosure for the exact serialized node parameters. */
.anomalous-material-node-list {
display: flex;
flex-direction: column;
gap: 7px;
margin-top: 10px;
}
.anomalous-material-node-detail {
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.07);
border-radius: 7px;
background: rgba(5, 7, 11, 0.22);
}
.anomalous-material-node-detail.is-selected {
border-color: rgba(45, 212, 191, 0.34);
background: rgba(45, 212, 191, 0.045);
}
.anomalous-material-node-select {
appearance: none;
-webkit-appearance: none;
width: 16px;
height: 16px;
flex: 0 0 16px;
margin: 0;
border-radius: 4px;
border: 1.5px solid rgba(255, 255, 255, 0.22);
background-color: rgba(15, 23, 42, 0.5);
cursor: pointer;
position: relative;
outline: none;
display: inline-grid;
place-content: center;
vertical-align: middle;
transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}
.anomalous-material-node-select:hover {
border-color: rgba(45, 212, 191, 0.6);
background-color: rgba(45, 212, 191, 0.08);
}
.anomalous-material-node-select:checked {
background-color: #2dd4bf;
border-color: #2dd4bf;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230b0f17' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-6'/%3E%3C/svg%3E");
background-size: 11px 11px;
background-position: center;
background-repeat: no-repeat;
box-shadow: 0 0 8px rgba(45, 212, 191, 0.35);
}
.anomalous-material-node-select:focus-visible {
outline: 2px solid #2dd4bf;
outline-offset: 2px;
}
.anomalous-material-node-detail > summary {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 8px 10px;
color: #d8dee9;
cursor: pointer;
user-select: none;
list-style: none;
}
.anomalous-material-node-detail > summary::-webkit-details-marker {
display: none;
}
.anomalous-material-node-detail > summary:hover { background: rgba(255, 255, 255, 0.035); }
.anomalous-material-node-detail[open] > summary { border-bottom: 1px solid rgba(255, 255, 255, 0.06); }
.anomalous-material-node-heading {
display: flex;
min-width: 0;
flex: 1;
align-items: center;
flex-wrap: wrap;
gap: 6px;
}
.anomalous-material-node-heading strong,
.anomalous-material-node-heading small {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-material-node-heading strong { font-size: 0.77rem; font-weight: 600; }
.anomalous-material-node-heading small { color: #788396; font-size: 0.67rem; font-family: monospace; }
.anomalous-material-node-count { flex-shrink: 0; color: #8290a5; font-size: 0.68rem; }
.anomalous-material-prompt-role-select {
width: auto;
max-width: 190px;
flex: 0 1 190px;
padding-block: 5px;
font-size: 0.68rem;
}
.anomalous-material-node-save,
.anomalous-workbench-save-selected-btn {
flex: 0 0 auto;
padding: 5px 9px;
border: 1px solid rgba(45, 212, 191, 0.24);
border-radius: 6px;
background: rgba(45, 212, 191, 0.08);
color: #8fe1d4;
font-size: 0.66rem;
cursor: pointer;
}
.anomalous-material-node-save:hover,
.anomalous-workbench-save-selected-btn:hover:not(:disabled) {
border-color: rgba(45, 212, 191, 0.42);
background: rgba(45, 212, 191, 0.14);
color: #d8fff8;
}
.anomalous-material-node-save:disabled,
.anomalous-workbench-save-selected-btn:disabled {
cursor: default;
opacity: 0.5;
}
.anomalous-material-node-parameter-content {
display: flex;
flex-direction: column;
gap: 7px;
padding: 9px;
}
.anomalous-material-node-meta {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 7px;
color: #7f8a9d;
font-size: 0.67rem;
}
.anomalous-material-node-meta button { margin-left: auto; }
.anomalous-material-parameter-row {
display: grid;
grid-template-columns: minmax(112px, 0.42fr) minmax(0, 1fr);
gap: 10px;
align-items: start;
padding: 7px 8px;
border-radius: 6px;
background: rgba(255, 255, 255, 0.025);
}
.anomalous-material-parameter-label {
display: flex;
min-width: 0;
align-items: center;
flex-wrap: wrap;
gap: 5px;
padding-top: 2px;
color: #aab3c2;
font-size: 0.7rem;
}
.anomalous-material-parameter-label code {
color: #687487;
font-size: 0.62rem;
}
.anomalous-material-volatile-badge {
padding: 1px 5px;
border: 1px solid rgba(245, 158, 11, 0.22);
border-radius: 999px;
background: rgba(245, 158, 11, 0.08);
color: #d6a756;
font-size: 0.59rem;
}
.anomalous-material-parameter-value {
max-height: 150px;
overflow: auto;
margin: 0;
padding: 6px 8px;
border: 1px solid rgba(255, 255, 255, 0.055);
border-radius: 5px;
background: rgba(0, 0, 0, 0.18);
color: #d5dae4;
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
font-size: 0.67rem;
line-height: 1.4;
white-space: pre-wrap;
overflow-wrap: anywhere;
}
@media (max-width: 560px) {
.anomalous-material-parameter-row { grid-template-columns: 1fr; }
}
.anomalous-material-blocks-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
margin: 18px 0 10px;
}
.anomalous-material-blocks-header .anomalous-material-section-label {
margin: 0;
}
.anomalous-material-toggle-all-btn {
padding: 3px 9px;
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 6px;
background: rgba(255, 255, 255, 0.04);
color: #94a3b8;
font-size: 0.68rem;
cursor: pointer;
transition: all 0.15s ease;
}
.anomalous-material-toggle-all-btn:hover {
border-color: rgba(81, 221, 190, 0.35);
background: rgba(81, 221, 190, 0.08);
color: #e2e8f0;
}
/* Material Prompt Station */
.anomalous-material-prompt-station {
display: flex;
flex-direction: column;
gap: 8px;
padding: 10px 12px;
border: 1px solid rgba(81, 221, 190, 0.2);
border-radius: 8px;
background: rgba(13, 17, 23, 0.65);
}
.anomalous-material-prompt-bar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.anomalous-material-prompt-title-sec {
display: flex;
align-items: center;
gap: 8px;
}
.anomalous-material-prompt-title {
font-size: 0.76rem;
font-weight: 600;
color: #6ee7b7;
}
.anomalous-material-prompt-count {
font-size: 0.68rem;
color: #64748b;
}
.anomalous-material-copy-prompt-btn {
padding: 3px 8px;
border: 1px solid rgba(81, 221, 190, 0.3);
border-radius: 5px;
background: rgba(81, 221, 190, 0.1);
color: #8fe1d4;
font-size: 0.68rem;
cursor: pointer;
transition: all 0.15s ease;
}
.anomalous-material-copy-prompt-btn:hover {
background: rgba(81, 221, 190, 0.22);
border-color: rgba(81, 221, 190, 0.5);
color: #fff;
}
.anomalous-material-prompt-body {
max-height: 180px;
overflow-y: auto;
font-family: inherit;
font-size: 0.74rem;
line-height: 1.45;
color: #cbd5e1;
white-space: pre-wrap;
word-break: break-word;
padding: 7px 9px;
background: rgba(0, 0, 0, 0.28);
border-radius: 5px;
border: 1px solid rgba(255, 255, 255, 0.04);
}
/* Model Categorized Groups */
.anomalous-material-model-group {
display: flex;
flex-direction: column;
gap: 6px;
margin-bottom: 10px;
}
.anomalous-material-model-group:last-child {
margin-bottom: 0;
}
.anomalous-material-model-group-title {
display: flex;
align-items: center;
gap: 6px;
font-size: 0.72rem;
font-weight: 600;
color: #94a3b8;
padding-bottom: 3px;
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.anomalous-material-model-card-item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 6px 10px;
border-radius: 8px;
background: rgba(255, 255, 255, 0.025);
border: 1px solid rgba(255, 255, 255, 0.05);
}
.anomalous-material-model-card-item.is-clickable {
cursor: pointer;
}
.anomalous-material-model-card-item.is-active {
border-color: rgba(56, 189, 248, 0.45);
background: rgba(56, 189, 248, 0.08);
}
.anomalous-material-model-thumb {
flex: 0 0 48px;
width: 48px;
height: 48px;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 7px;
background: #0b0c10;
}
.anomalous-material-model-thumb img,
.anomalous-material-model-thumb video {
width: 100%;
height: 100%;
object-fit: cover;
}
.anomalous-material-model-side {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 6px;
flex-shrink: 0;
}
.anomalous-material-model-notes {
display: -webkit-box;
overflow: hidden;
color: #c4b48a;
font-size: 0.7rem;
line-height: 1.35;
white-space: pre-wrap;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.anomalous-material-model-info {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
flex: 1;
}
.anomalous-material-model-filename {
color: #e2e8f0;
font-size: 0.79rem;
font-weight: 500;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-material-model-params {
display: flex;
align-items: center;
gap: 8px;
font-size: 0.71rem;
color: #94a3b8;
}
.anomalous-material-model-tag-badge {
padding: 2px 7px;
border-radius: 4px;
font-size: 0.68rem;
font-weight: 600;
flex-shrink: 0;
}
.anomalous-tag-base {
background: rgba(56, 189, 248, 0.12);
color: #38bdf8;
border: 1px solid rgba(56, 189, 248, 0.25);
}
.anomalous-tag-lora {
background: rgba(192, 132, 252, 0.12);
color: #c084fc;
border: 1px solid rgba(192, 132, 252, 0.25);
}
.anomalous-tag-vae {
background: rgba(251, 146, 60, 0.12);
color: #fb923c;
border: 1px solid rgba(251, 146, 60, 0.25);
}
.anomalous-tag-clip {
background: rgba(45, 212, 191, 0.12);
color: #2dd4bf;
border: 1px solid rgba(45, 212, 191, 0.25);
}
.anomalous-tag-other {
background: rgba(148, 163, 184, 0.12);
color: #94a3b8;
border: 1px solid rgba(148, 163, 184, 0.25);
}
/* ==========================================================================
Image Detail Studio Workbench (Studio Windowed Modal & Bento Design)
========================================================================== */
.anomalous-workbench-overlay {
position: fixed;
inset: 0;
z-index: 1000000;
display: flex;
align-items: center;
justify-content: center;
width: 100vw;
height: 100vh;
padding: clamp(16px, 2.5vw, 24px);
box-sizing: border-box;
background: rgba(3, 4, 7, 0.88);
backdrop-filter: blur(16px);
overflow: hidden;
user-select: none;
}
.anomalous-workbench-overlay.is-suspended {
visibility: hidden;
pointer-events: none;
}
.anomalous-workbench-dialog {
position: relative;
display: flex;
flex-direction: column;
width: min(1600px, 96vw);
height: min(940px, 94vh);
background: #0b0d14;
border-radius: 16px;
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 32px 96px rgba(0, 0, 0, 0.88), 0 0 0 1px rgba(255, 255, 255, 0.05);
overflow: hidden;
}
/* Workbench Top Header */
.anomalous-workbench-header {
display: flex;
align-items: center;
justify-content: space-between;
flex-shrink: 0;
height: 54px;
padding: 0 18px;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
background: #0f121a;
gap: 16px;
}
.anomalous-workbench-header-left {
display: flex;
align-items: center;
gap: 12px;
min-width: 0;
flex: 1;
}
.anomalous-workbench-back-btn {
display: flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
border-radius: 8px;
border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(255, 255, 255, 0.04);
color: #cbd5e1;
font-size: 20px;
cursor: pointer;
transition: all 0.15s;
line-height: 1;
}
.anomalous-workbench-back-btn:hover {
background: rgba(255, 255, 255, 0.1);
color: #fff;
border-color: rgba(255, 255, 255, 0.2);
}
.anomalous-workbench-title-box {
display: flex;
align-items: center;
gap: 8px;
min-width: 0;
overflow: hidden;
}
.anomalous-workbench-title-filename {
font-size: 0.92rem;
font-weight: 600;
color: #f1f5f9;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.anomalous-workbench-title-tags {
display: flex;
align-items: center;
gap: 6px;
flex-shrink: 0;
}
.anomalous-workbench-tag {
padding: 2px 7px;
border-radius: 5px;
background: rgba(255, 255, 255, 0.06);
border: 1px solid rgba(255, 255, 255, 0.08);
color: #94a3b8;
font-size: 0.68rem;
font-weight: 500;
}
.anomalous-workbench-tag.is-ext {
background: rgba(56, 189, 248, 0.1);
border-color: rgba(56, 189, 248, 0.25);
color: #38bdf8;
font-weight: 700;
}
/* Center switcher counter */
.anomalous-workbench-header-center {
display: flex;
align-items: center;
gap: 10px;
flex-shrink: 0;
background: rgba(0, 0, 0, 0.35);
padding: 3px 8px;
border-radius: 999px;
border: 1px solid rgba(255, 255, 255, 0.08);
}
.anomalous-workbench-nav-btn {
display: flex;
align-items: center;
justify-content: center;
width: 26px;
height: 26px;
border-radius: 50%;
border: none;
background: transparent;
color: #cbd5e1;
font-size: 18px;
cursor: pointer;
transition: all 0.15s;
line-height: 1;
}
.anomalous-workbench-nav-btn:not(:disabled):hover {
background: rgba(255, 255, 255, 0.12);
color: #fff;
}
.anomalous-workbench-nav-btn:disabled {
opacity: 0.25;
cursor: not-allowed;
}
.anomalous-workbench-counter {
font-size: 0.8rem;
font-weight: 600;
color: #e2e8f0;
font-variant-numeric: tabular-nums;
padding: 0 4px;
}
/* Right buttons */
.anomalous-workbench-header-right {
display: flex;
align-items: center;
gap: 8px;
flex-shrink: 0;
}
.anomalous-workbench-tool-btn {
display: flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
border-radius: 8px;
border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(255, 255, 255, 0.04);
color: #cbd5e1;
font-size: 15px;
cursor: pointer;
transition: all 0.15s;
}
.anomalous-workbench-tool-btn:hover,
.anomalous-workbench-tool-btn.is-active {
background: rgba(45, 212, 191, 0.15);
border-color: rgba(45, 212, 191, 0.35);
color: #2dd4bf;
}
.anomalous-workbench-close-btn {
display: flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
border-radius: 8px;
border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(239, 68, 68, 0.1);
color: #fca5a5;
font-size: 20px;
cursor: pointer;
transition: all 0.15s;
line-height: 1;
}
.anomalous-workbench-close-btn:hover {
background: rgba(239, 68, 68, 0.25);
color: #fff;
border-color: rgba(239, 68, 68, 0.4);
transform: scale(1.05);
}
/* Main Body: Left Thumbnail Rail + Center Stage Area + Right Inspector */
.anomalous-workbench-body {
display: grid;
grid-template-columns: auto minmax(0, 1.45fr) minmax(460px, 0.95fr);
flex: 1;
min-height: 0;
overflow: hidden;
}
/* Left Canvas Stage Area */
.anomalous-workbench-stage-area {
position: relative;
display: flex;
flex-direction: column;
min-height: 0;
height: 100%;
background: radial-gradient(ellipse at 50% 50%, rgba(255, 255, 255, 0.035) 0%, transparent 68%), #07080c;
overflow: hidden;
}
.anomalous-workbench-stage {
position: relative;
flex: 1;
display: flex;
align-items: center;
justify-content: center;
min-height: 0;
overflow: hidden;
}
.anomalous-workbench-stage-img {
max-width: 100%;
max-height: 100%;
object-fit: contain;
user-select: none;
pointer-events: auto;
transition: transform 0.06s ease-out;
transform-origin: center center;
filter: drop-shadow(0 12px 32px rgba(0, 0, 0, 0.6));
}
/* Floating Prev/Next Glass Nav Arrows */
.anomalous-workbench-float-nav {
position: absolute;
top: 50%;
transform: translateY(-50%);
z-index: 12;
display: flex;
align-items: center;
justify-content: center;
width: 44px;
height: 84px;
border-radius: 12px;
background: rgba(15, 18, 26, 0.55);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
color: #e2e8f0;
font-size: 32px;
cursor: pointer;
transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
line-height: 1;
opacity: 0.65;
}
.anomalous-workbench-float-nav.is-prev { left: 16px; }
.anomalous-workbench-float-nav.is-next { right: 16px; }
.anomalous-workbench-float-nav:hover {
opacity: 1;
background: rgba(45, 212, 191, 0.2);
border-color: rgba(45, 212, 191, 0.45);
color: #fff;
transform: translateY(-50%) scale(1.08);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6), 0 0 16px rgba(45, 212, 191, 0.25);
}
/* Floating Zoom Bar */
.anomalous-workbench-zoom-bar {
position: absolute;
bottom: 18px;
right: 18px;
z-index: 12;
display: flex;
align-items: center;
gap: 4px;
padding: 4px 8px;
border-radius: 9px;
background: rgba(14, 17, 24, 0.85);
backdrop-filter: blur(12px);
border: 1px solid rgba(255, 255, 255, 0.12);
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}
.anomalous-workbench-zoom-bar button {
padding: 3px 8px;
border-radius: 5px;
border: 1px solid transparent;
background: transparent;
color: #cbd5e1;
font-size: 0.72rem;
font-weight: 500;
cursor: pointer;
transition: all 0.15s;
}
.anomalous-workbench-zoom-bar button:hover {
background: rgba(255, 255, 255, 0.1);
color: #fff;
}
/* Left Filmstrip Rail */
.anomalous-workbench-filmstrip {
width: 116px;
height: 100%;
min-height: 0;
padding: 12px 10px;
border-right: 1px solid rgba(255, 255, 255, 0.08);
background: #080a0f;
overflow-x: hidden;
overflow-y: auto;
box-sizing: border-box;
transition: width 0.22s cubic-bezier(0.16, 1, 0.3, 1),
padding 0.22s cubic-bezier(0.16, 1, 0.3, 1),
opacity 0.18s ease;
}
.anomalous-workbench-filmstrip.is-hidden {
width: 0 !important;
min-width: 0 !important;
padding: 0 !important;
border-right: none !important;
overflow: hidden !important;
opacity: 0 !important;
pointer-events: none !important;
}
.anomalous-workbench-filmstrip::-webkit-scrollbar {
width: 4px;
}
.anomalous-workbench-filmstrip::-webkit-scrollbar-track {
background: transparent;
}
.anomalous-workbench-filmstrip::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.14);
border-radius: 4px;
}
.anomalous-workbench-filmstrip::-webkit-scrollbar-thumb:hover {
background: rgba(45, 212, 191, 0.45);
}
.anomalous-workbench-filmstrip-track {
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
width: 100%;
}
.anomalous-workbench-filmstrip-thumb {
position: relative;
flex: 0 0 92px;
width: 92px;
height: 92px;
border-radius: 10px;
overflow: hidden;
border: 2px solid rgba(255, 255, 255, 0.1);
background: #12151e;
cursor: pointer;
box-sizing: border-box;
transition: border-color 0.18s ease, transform 0.18s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.18s ease;
}
.anomalous-workbench-filmstrip-thumb img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.anomalous-workbench-filmstrip-thumb:hover {
border-color: rgba(255, 255, 255, 0.45);
transform: scale(1.04);
}
.anomalous-workbench-filmstrip-thumb.is-active {
border-color: #2dd4bf;
box-shadow: 0 0 16px rgba(45, 212, 191, 0.55), inset 0 0 0 1px #2dd4bf;
transform: scale(1.04);
}
.anomalous-workbench-thumb-index {
position: absolute;
bottom: 4px;
right: 4px;
font-size: 10px;
font-weight: 700;
line-height: 1;
color: #94a3b8;
background: rgba(10, 13, 20, 0.82);
backdrop-filter: blur(4px);
padding: 2px 5px;
border-radius: 4px;
pointer-events: none;
transition: color 0.15s, background 0.15s;
}
.anomalous-workbench-filmstrip-thumb.is-active .anomalous-workbench-thumb-index {
color: #2dd4bf;
background: rgba(13, 23, 27, 0.92);
font-weight: 800;
}
/* Right Inspector Panel */
.anomalous-workbench-inspector {
display: flex;
flex-direction: column;
min-height: 0;
height: 100%;
border-left: 1px solid rgba(255, 255, 255, 0.08);
background: #0e1118;
}
.anomalous-workbench-inspector-body {
flex: 1;
min-height: 0;
overflow-y: auto;
padding: 16px 18px;
display: flex;
flex-direction: column;
gap: 14px;
user-select: text;
}
/* Inspector Top Actions Toolbar */
.anomalous-workbench-inspector-toolbar {
display: flex;
gap: 8px;
flex-wrap: wrap;
flex-shrink: 0;
}
.anomalous-workbench-action-btn {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
gap: 7px;
height: 36px;
padding: 0 14px;
border-radius: 8px;
border: 1px solid rgba(255, 255, 255, 0.12);
background: rgba(255, 255, 255, 0.05);
color: #e2e8f0;
font-size: 0.8rem;
font-weight: 600;
cursor: pointer;
transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1);
white-space: nowrap;
user-select: none;
box-sizing: border-box;
}
.anomalous-workbench-action-icon {
width: 14px;
height: 14px;
flex-shrink: 0;
stroke: currentColor;
transition: transform 0.18s ease;
}
.anomalous-workbench-action-btn:hover .anomalous-workbench-action-icon {
transform: scale(1.1);
}
.anomalous-workbench-action-btn:hover {
background: rgba(255, 255, 255, 0.09);
color: #ffffff;
border-color: rgba(255, 255, 255, 0.22);
}
.anomalous-workbench-action-btn.is-primary {
background: linear-gradient(135deg, rgba(14, 165, 233, 0.22) 0%, rgba(45, 212, 191, 0.26) 100%);
border-color: rgba(45, 212, 191, 0.42);
color: #e0f2fe;
}
.anomalous-workbench-action-btn.is-primary:hover {
background: linear-gradient(135deg, rgba(14, 165, 233, 0.36) 0%, rgba(45, 212, 191, 0.4) 100%);
border-color: #2dd4bf;
color: #ffffff;
box-shadow: 0 4px 18px rgba(45, 212, 191, 0.28);
transform: translateY(-1px);
}
.anomalous-workbench-action-btn.is-primary:active {
transform: translateY(0) scale(0.98);
}
.anomalous-workbench-action-btn.is-save {
background: rgba(255, 255, 255, 0.04);
border-color: rgba(255, 255, 255, 0.12);
color: #cbd5e1;
flex: 0 0 auto;
}
.anomalous-workbench-action-btn.is-save:hover {
background: rgba(255, 255, 255, 0.09);
color: #ffffff;
border-color: rgba(255, 255, 255, 0.24);
transform: translateY(-1px);
}
.anomalous-workbench-action-btn.is-save.is-active,
.anomalous-workbench-action-btn.is-save[aria-expanded="true"] {
background: rgba(99, 102, 241, 0.2);
border-color: rgba(129, 140, 248, 0.5);
color: #c7d2fe;
box-shadow: 0 2px 10px rgba(99, 102, 241, 0.25);
}
.anomalous-workbench-action-btn.is-save:active {
transform: translateY(0) scale(0.98);
}
/* Segmented Tabs Bar */
.anomalous-workbench-tabs-bar {
display: flex;
background: rgba(0, 0, 0, 0.38);
padding: 3px;
border-radius: 10px;
border: 1px solid rgba(255, 255, 255, 0.08);
gap: 3px;
flex-shrink: 0;
}
.anomalous-workbench-tab-btn {
flex: 1;
padding: 7px 8px;
border-radius: 7px;
border: none;
background: transparent;
color: #94a3b8;
font-size: 0.74rem;
font-weight: 600;
cursor: pointer;
transition: all 0.15s;
text-align: center;
white-space: nowrap;
}
.anomalous-workbench-tab-btn:hover {
color: #f1f5f9;
background: rgba(255, 255, 255, 0.04);
}
.anomalous-workbench-tab-btn.is-active {
background: rgba(255, 255, 255, 0.09);
color: #2dd4bf;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
}
.anomalous-workbench-tab-btn:active {
transform: scale(0.97);
}
/* Tab Panels */
.anomalous-workbench-tab-panel {
display: flex;
flex-direction: column;
gap: 12px;
}
/* Bento Specs Grid */
.anomalous-workbench-specs-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
}
.anomalous-workbench-spec-card {
display: flex;
flex-direction: column;
gap: 5px;
padding: 10px 12px;
border-radius: 9px;
background: rgba(255, 255, 255, 0.03);
border: 1px solid rgba(255, 255, 255, 0.08);
transition: transform 0.16s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
position: relative;
user-select: text;
}
.anomalous-workbench-spec-card:hover {
background: rgba(255, 255, 255, 0.05);
border-color: rgba(255, 255, 255, 0.14);
}
.anomalous-workbench-spec-card.is-wide {
grid-column: 1 / -1;
}
.anomalous-workbench-spec-card.is-seed {
border-color: rgba(245, 158, 11, 0.28);
background: rgba(245, 158, 11, 0.035);
}
.anomalous-workbench-spec-card.is-seed:hover {
border-color: rgba(245, 158, 11, 0.45);
background: rgba(245, 158, 11, 0.06);
}
.anomalous-workbench-spec-card.is-res {
border-color: rgba(56, 189, 248, 0.25);
background: rgba(56, 189, 248, 0.035);
}
/* Card Click-to-copy interaction */
.anomalous-workbench-spec-card.is-copyable {
cursor: pointer;
}
.anomalous-workbench-spec-card.is-copyable:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22);
}
.anomalous-workbench-spec-card.is-copyable:active {
transform: translateY(0) scale(0.99);
}
.anomalous-workbench-spec-card.is-copied {
border-color: rgba(45, 212, 191, 0.6) !important;
background: rgba(45, 212, 191, 0.08) !important;
box-shadow: 0 0 14px rgba(45, 212, 191, 0.25) !important;
}
.anomalous-workbench-spec-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 6px;
}
.anomalous-workbench-spec-label {
font-size: 0.68rem;
color: #8a96a8;
font-weight: 500;
}
.anomalous-workbench-copy-indicator {
position: absolute;
right: 10px;
top: 10px;
display: inline-flex;
align-items: center;
gap: 4px;
opacity: 0;
transition: opacity 0.15s ease, transform 0.15s ease;
color: #94a3b8;
pointer-events: none;
}
.anomalous-workbench-spec-card.is-copyable:hover .anomalous-workbench-copy-indicator,
.anomalous-workbench-spec-card.is-copyable:focus-visible .anomalous-workbench-copy-indicator {
opacity: 1;
transform: scale(1.05);
}
.anomalous-workbench-spec-card.is-copyable:focus-visible {
outline: 2px solid rgba(45, 212, 191, 0.55);
outline-offset: 1px;
}
.anomalous-workbench-spec-copy-icon {
width: 12px;
height: 12px;
stroke: currentColor;
}
.anomalous-workbench-spec-copy-icon.is-success {
stroke: #2dd4bf;
}
.anomalous-workbench-spec-copy-icon.is-error {
stroke: #f87171;
}
.anomalous-workbench-copy-badge {
font-size: 10px;
font-weight: 600;
color: #2dd4bf;
animation: anomalous-fade-in 0.15s ease forwards;
}
.anomalous-workbench-copy-badge.is-error {
color: #f87171;
}
.anomalous-workbench-spec-card.is-copy-failed {
border-color: rgba(239, 68, 68, 0.5) !important;
background: rgba(239, 68, 68, 0.06) !important;
}
@keyframes anomalous-fade-in {
from { opacity: 0; transform: translateX(2px); }
to { opacity: 1; transform: translateX(0); }
}
.anomalous-workbench-spec-val {
color: #f1f5f9;
font-size: 0.94rem;
font-weight: 600;
line-height: 1.25;
overflow-wrap: anywhere;
}
.anomalous-workbench-spec-val.is-mono {
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
font-variant-numeric: tabular-nums;
}
/* Generation Parameter Preset Section */
.anomalous-workbench-generation-save {
grid-column: 1 / -1;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 10px 14px;
border-radius: 10px;
background: linear-gradient(135deg, rgba(45, 212, 191, 0.05) 0%, rgba(56, 189, 248, 0.03) 100%);
border: 1px solid rgba(45, 212, 191, 0.2);
margin-top: 4px;
transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}
.anomalous-workbench-generation-save:hover {
background: linear-gradient(135deg, rgba(45, 212, 191, 0.08) 0%, rgba(56, 189, 248, 0.05) 100%);
border-color: rgba(45, 212, 191, 0.35);
box-shadow: 0 3px 12px rgba(45, 212, 191, 0.08);
}
.anomalous-workbench-generation-info {
display: flex;
flex-direction: column;
gap: 3px;
min-width: 0;
flex: 1;
}
.anomalous-workbench-generation-title {
display: flex;
align-items: center;
gap: 6px;
font-size: 0.78rem;
font-weight: 700;
color: #f1f5f9;
}
.anomalous-workbench-generation-icon {
width: 13px;
height: 13px;
stroke: #2dd4bf;
flex-shrink: 0;
}
.anomalous-workbench-generation-hint {
font-size: 0.66rem;
color: #8e9dae;
line-height: 1.35;
}
.anomalous-workbench-generation-btn {
flex-shrink: 0;
padding: 6px 13px;
border-radius: 7px;
background: linear-gradient(135deg, rgba(45, 212, 191, 0.22), rgba(56, 189, 248, 0.22));
border: 1px solid rgba(45, 212, 191, 0.45);
color: #e0f2fe;
font-size: 0.74rem;
font-weight: 600;
cursor: pointer;
transition: transform 0.16s ease, background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease, color 0.16s ease;
white-space: nowrap;
user-select: none;
}
.anomalous-workbench-generation-btn:hover:not(:disabled) {
background: linear-gradient(135deg, rgba(45, 212, 191, 0.36), rgba(56, 189, 248, 0.36));
border-color: #2dd4bf;
color: #ffffff;
box-shadow: 0 3px 12px rgba(45, 212, 191, 0.28);
transform: translateY(-1px);
}
.anomalous-workbench-generation-btn:active:not(:disabled) {
transform: translateY(0) scale(0.97);
}
.anomalous-workbench-generation-btn:disabled {
opacity: 0.55;
cursor: default;
}
/* Prompts Station */
.anomalous-workbench-prompts-wrap {
display: flex;
flex-direction: column;
gap: 12px;
}
.anomalous-workbench-prompt-card {
display: flex;
flex-direction: column;
gap: 8px;
padding: 12px 14px;
border-radius: 11px;
background: rgba(255, 255, 255, 0.03);
border: 1px solid rgba(255, 255, 255, 0.08);
border-left-width: 3.5px;
}
.anomalous-workbench-prompt-card.is-positive {
border-left-color: #2dd4bf;
background: linear-gradient(90deg, rgba(45, 212, 191, 0.04) 0%, rgba(255, 255, 255, 0.02) 40%);
}
.anomalous-workbench-prompt-card.is-negative {
border-left-color: #f43f5e;
background: linear-gradient(90deg, rgba(244, 63, 94, 0.04) 0%, rgba(255, 255, 255, 0.02) 40%);
}
.anomalous-workbench-prompt-bar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.anomalous-workbench-prompt-title-section {
display: flex;
align-items: center;
gap: 8px;
}
.anomalous-workbench-prompt-title {
font-size: 0.78rem;
font-weight: 700;
color: #e2e8f0;
}
.anomalous-workbench-prompt-count {
padding: 1px 6px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.06);
color: #8b95a5;
font-size: 0.65rem;
}
.anomalous-workbench-prompt-btns {
display: flex;
gap: 6px;
}
.anomalous-workbench-mini-action-btn {
padding: 3px 8px;
border-radius: 5px;
border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(255, 255, 255, 0.04);
color: #cbd5e1;
font-size: 0.7rem;
font-weight: 500;
cursor: pointer;
transition: all 0.15s;
}
.anomalous-workbench-mini-action-btn:hover {
background: rgba(255, 255, 255, 0.12);
color: #fff;
border-color: rgba(255, 255, 255, 0.22);
}
.anomalous-workbench-mini-action-btn.is-copied {
background: rgba(45, 212, 191, 0.2);
color: #2dd4bf;
border-color: #2dd4bf;
}
.anomalous-workbench-prompt-content {
color: #d1d9e6;
font-size: 0.8rem;
line-height: 1.55;
max-height: 5.6em;
overflow: hidden;
white-space: pre-wrap;
word-break: break-word;
font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
transition: max-height 0.25s ease;
}
.anomalous-workbench-prompt-content.is-expanded {
max-height: none;
overflow-y: visible;
}
/* Models & LoRA Section */
.anomalous-workbench-models-wrap {
display: flex;
flex-direction: column;
gap: 12px;
}
.anomalous-workbench-model-group {
display: flex;
flex-direction: column;
gap: 6px;
}
.anomalous-workbench-model-group-title {
font-size: 0.72rem;
font-weight: 700;
color: #94a3b8;
margin-bottom: 2px;
}
.anomalous-workbench-model-card {
display: flex;
align-items: center;
gap: 10px;
padding: 8px 10px;
border-radius: 9px;
background: rgba(255, 255, 255, 0.025);
border: 1px solid rgba(255, 255, 255, 0.06);
transition: all 0.15s;
}
.anomalous-workbench-model-card:hover {
background: rgba(255, 255, 255, 0.05);
border-color: rgba(255, 255, 255, 0.12);
}
.anomalous-workbench-model-thumb {
flex: 0 0 46px;
width: 46px;
height: 46px;
border-radius: 7px;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, 0.08);
background: #090b10;
}
.anomalous-workbench-model-thumb img,
.anomalous-workbench-model-thumb video {
width: 100%;
height: 100%;
object-fit: cover;
}
.anomalous-workbench-model-info {
display: flex;
flex-direction: column;
gap: 3px;
min-width: 0;
flex: 1;
}
.anomalous-workbench-model-name {
font-size: 0.8rem;
font-weight: 600;
color: #e2e8f0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.anomalous-workbench-lora-badge {
display: inline-block;
padding: 1px 6px;
border-radius: 4px;
background: rgba(192, 132, 252, 0.12);
color: #c084fc;
border: 1px solid rgba(192, 132, 252, 0.25);
font-size: 0.68rem;
font-weight: 600;
width: fit-content;
}
.anomalous-workbench-model-notes {
font-size: 0.68rem;
color: #c4b48a;
line-height: 1.3;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.anomalous-workbench-model-actions {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 5px;
flex-shrink: 0;
}
.anomalous-workbench-model-tag {
padding: 2px 7px;
border-radius: 999px;
font-size: 0.66rem;
font-weight: 700;
}
.anomalous-workbench-model-tag.is-base {
background: rgba(56, 189, 248, 0.12);
color: #38bdf8;
border: 1px solid rgba(56, 189, 248, 0.25);
}
.anomalous-workbench-model-tag.is-lora {
background: rgba(192, 132, 252, 0.12);
color: #c084fc;
border: 1px solid rgba(192, 132, 252, 0.25);
}
.anomalous-workbench-model-tag.is-clip {
background: rgba(45, 212, 191, 0.12);
color: #2dd4bf;
border: 1px solid rgba(45, 212, 191, 0.25);
}
.anomalous-workbench-model-tag.is-vae {
background: rgba(251, 146, 60, 0.12);
color: #fb923c;
border: 1px solid rgba(251, 146, 60, 0.25);
}
.anomalous-workbench-model-tag.is-other {
background: rgba(148, 163, 184, 0.12);
color: #94a3b8;
border: 1px solid rgba(148, 163, 184, 0.25);
}
/* Nodes Section */
.anomalous-workbench-nodes-wrap {
display: flex;
flex-direction: column;
gap: 10px;
}
.anomalous-workbench-action-row {
display: flex;
justify-content: flex-end;
}
.anomalous-workbench-node-list-box {
display: flex;
flex-direction: column;
gap: 6px;
}
.anomalous-workbench-node-selection-bar {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 7px;
padding: 8px 10px;
border: 1px solid rgba(45, 212, 191, 0.14);
border-radius: 8px;
background: rgba(45, 212, 191, 0.035);
}
.anomalous-workbench-node-selection-count {
flex: 1 1 180px;
color: #8fa0b5;
font-size: 0.7rem;
}
.anomalous-workbench-save-selected-btn {
margin-left: auto;
}
/* Sticky Footer Snapshot Drawer */
.anomalous-workbench-inspector-footer {
flex-shrink: 0;
padding: 12px 18px;
border-top: 1px solid rgba(255, 255, 255, 0.08);
background: #0c0e14;
}
.anomalous-workbench-save-row {
display: flex;
flex-wrap: wrap;
gap: 10px;
align-items: center;
}
.anomalous-workbench-save-input-wrap {
display: flex;
flex: 1 1 220px;
min-width: 0;
flex-direction: column;
gap: 3px;
}
.anomalous-workbench-save-hint {
min-height: 1em;
color: #748196;
font-size: 0.62rem;
line-height: 1.25;
}
.anomalous-material-scope-badge {
flex: 0 0 auto;
align-self: flex-start;
padding: 2px 7px;
border: 1px solid rgba(148, 163, 184, 0.24);
border-radius: 999px;
background: rgba(148, 163, 184, 0.08);
color: #cbd5e1;
font-size: 0.65rem;
white-space: nowrap;
}
.anomalous-material-scope-badge.is-workflow {
border-color: rgba(96, 165, 250, 0.24);
background: rgba(96, 165, 250, 0.08);
color: #9cc7ff;
}
.anomalous-material-scope-badge.is-prompt {
border-color: rgba(168, 85, 247, 0.28);
background: rgba(168, 85, 247, 0.08);
color: #c084fc;
}
.anomalous-material-scope-badge.is-nodes {
border-color: rgba(148, 163, 184, 0.24);
background: rgba(148, 163, 184, 0.08);
color: #94a3b8;
}
.anomalous-material-card-title-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
min-width: 0;
}
.anomalous-material-card-title-text {
margin: 0;
font-size: 0.94rem;
font-weight: 600;
color: #f1f5f9;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
flex: 1;
}
.anomalous-material-card-edit-btn {
opacity: 0;
background: transparent;
border: none;
padding: 3px;
cursor: pointer;
color: #94a3b8;
border-radius: 4px;
display: inline-flex;
align-items: center;
justify-content: center;
transition: opacity 0.15s ease, color 0.15s ease, background-color 0.15s ease;
flex-shrink: 0;
}
.anomalous-material-card-edit-btn svg {
width: 13px;
height: 13px;
}
.anomalous-material-card:hover .anomalous-material-card-edit-btn,
.anomalous-material-card:focus-within .anomalous-material-card-edit-btn {
opacity: 1;
}
.anomalous-material-card-edit-btn:hover {
color: #ffffff;
background: rgba(255, 255, 255, 0.1);
}
.anomalous-material-inline-input {
width: 100%;
box-sizing: border-box;
padding: 4px 8px;
font-size: 0.88rem;
background: rgba(10, 12, 18, 0.92);
border: 1px solid rgba(45, 212, 191, 0.55);
border-radius: 6px;
color: #ffffff;
outline: none;
box-shadow: 0 0 10px rgba(45, 212, 191, 0.2);
}
.anomalous-material-card-subinfo {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
font-size: 0.68rem;
color: #64748b;
margin-top: -2px;
}
.anomalous-material-card-date {
color: #64748b;
font-size: 0.68rem;
}
.anomalous-material-card-use-hint {
flex: 1;
color: #8591a5;
font-size: 0.68rem;
}
.anomalous-workbench-save-input-wrap input {
width: 100%;
box-sizing: border-box;
padding: 8px 12px;
border-radius: 8px;
border: 1px solid rgba(255, 255, 255, 0.12);
background: rgba(0, 0, 0, 0.35);
color: #f1f5f9;
font-size: 0.82rem;
outline: none;
transition: all 0.15s;
}
.anomalous-workbench-save-input-wrap input:focus {
border-color: #2dd4bf;
box-shadow: 0 0 0 2px rgba(45, 212, 191, 0.2);
}
/* Loading & Error Box */
.anomalous-workbench-loading-box {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 14px;
padding: 40px 20px;
color: #94a3b8;
font-size: 0.82rem;
text-align: center;
}
.anomalous-workbench-spinner {
width: 28px;
height: 28px;
border-radius: 50%;
border: 3px solid rgba(45, 212, 191, 0.15);
border-top-color: #2dd4bf;
animation: anomalous-spin 0.8s linear infinite;
}
@keyframes anomalous-spin {
to { transform: rotate(360deg); }
}
.anomalous-workbench-error-box {
padding: 24px;
text-align: center;
color: #f87171;
font-size: 0.82rem;
}
.anomalous-workbench-muted {
color: #64748b;
font-size: 0.78rem;
font-style: italic;
}
/* Progressive disclosure shared by material capture surfaces. */
.anomalous-workbench-inspector-footer[hidden],
.anomalous-recipe-prompt-role-select[hidden],
.anomalous-recipe-material-selection[hidden],
.anomalous-recipe-material-node-select[hidden] { display: none !important; }
.anomalous-material-receipt {
position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%);
z-index: 1000010; display: flex; align-items: center; gap: 16px;
max-width: calc(100vw - 32px); padding: 12px 18px; border-radius: 12px;
background: #22372e; color: #f0f7f3; border: 1px solid #537360;
box-shadow: 0 8px 32px #0008;
}
.anomalous-material-receipt button { cursor: pointer; color: inherit; background: transparent; border: 0; white-space: nowrap; }
.anomalous-material-receipt button:first-of-type { text-decoration: underline; }
.anomalous-notebook-fold, .anomalous-secondary-actions { padding: 8px; }
.anomalous-notebook-fold > summary, .anomalous-secondary-actions > summary { cursor: pointer; color: var(--input-text, #ddd); padding: 4px; }
.anomalous-notebook-fold > p { color: #aaa; font-size: 13px; }
.anomalous-notebook-fold > button { margin: 6px 8px 0 0; }
/* duplicate workbench-generation-save selector cleaned up */
.anomalous-material-note-text { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; line-height: 1.7; }
.anomalous-notebook-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.anomalous-nb-editor .anomalous-nb-textarea { font: inherit; line-height: 1.6; padding: 12px; box-sizing: border-box; }
/* Material application and prompt composition: structural styling, no animation or blur. */
.anomalous-prompt-composer {
display: flex;
flex-direction: column;
flex: 1;
min-height: 0;
overflow-y: auto;
gap: 12px;
width: 100%;
max-width: 960px;
margin: 0 auto;
padding: 16px;
box-sizing: border-box;
}
.anomalous-prompt-composer > * { flex-shrink: 0; }
.anomalous-prompt-actions,
.anomalous-prompt-target,
.anomalous-material-application-result {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
}
.anomalous-prompt-actions h3 { margin: 0; }
.anomalous-prompt-field { display: flex; flex-direction: column; gap: 6px; }
.anomalous-prompt-composer textarea,
.anomalous-prompt-composer input:not([type="checkbox"]),
.anomalous-prompt-composer select {
box-sizing: border-box;
max-width: 100%;
padding: 8px 10px;
border: 1px solid var(--border-color, #454545);
border-radius: 6px;
background: var(--comfy-input-bg, #222);
color: var(--input-text, #ddd);
font: inherit;
}
.anomalous-prompt-composer textarea { width: 100%; resize: vertical; min-height: 72px; }
.anomalous-prompt-composer textarea[readonly] { min-height: 100px; }
.anomalous-prompt-parts { display: flex; flex-direction: column; gap: 10px; }
.anomalous-prompt-part {
padding: 12px;
border: 1px solid var(--border-color, #454545);
border-radius: 8px;
}
.anomalous-prompt-part > *:not(summary) { margin-top: 10px; }
.anomalous-prompt-part summary { cursor: pointer; overflow-wrap: anywhere; }
.anomalous-prompt-part summary input { margin-right: 8px; }
.anomalous-prompt-part summary small { margin-left: 10px; color: var(--descrip-text, #aaa); }
.anomalous-material-target-context { padding: 12px 16px; border-bottom: 1px solid var(--border-color, #454545); }
.anomalous-material-target-context > button { margin-left: 10px; }
.anomalous-material-target-context > small { display: block; margin-top: 6px; color: var(--descrip-text, #aaa); }
.anomalous-material-application-result { margin-top: 10px; }
.anomalous-material-choice {
max-width: min(560px, calc(100vw - 32px));
max-height: 80vh;
overflow-y: auto;
border: 1px solid var(--border-color, #454545);
border-radius: 10px;
padding: 20px;
background: var(--comfy-menu-bg, #222);
color: var(--input-text, #ddd);
}
.anomalous-material-choice > button { display: block; margin: 10px 0; }
.anomalous-material-choice::backdrop { background: rgba(0, 0, 0, .55); }
.anomalous-material-inspect-action { position: absolute; bottom: 10px; right: 10px; z-index: 2; }
.anomalous-material-dragging { opacity: 0 !important; }
.anomalous-material-dragging, .anomalous-material-dragging * { pointer-events: none !important; }
.anomalous-material-drag-hint {
position: fixed;
left: 24px;
top: 24px;
max-width: 240px;
z-index: 1000002;
pointer-events: none;
padding: 10px 14px;
border: 1px solid #68cdb9;
border-radius: 8px;
background: #202428;
color: #eee;
}
/* ==========================================================================
Prompt Composer & Paper Note Studio / Material Drag System
========================================================================== */
/* 1. Modal Dragging State: Instantly ghost modal to reveal ComfyUI canvas */
#anomalous-modal.anomalous-material-dragging {
pointer-events: none !important;
}
#anomalous-modal.anomalous-material-dragging #anomalous-container {
opacity: 0 !important;
pointer-events: none !important;
transform: scale(0.985);
transition: opacity 0.16s cubic-bezier(0.4, 0, 0.2, 1), transform 0.16s cubic-bezier(0.4, 0, 0.2, 1);
}
/* 2. Drag Cursor & Hover Feedback */
.anomalous-material-card[draggable="true"],
.anomalous-paper-note[draggable="true"] {
cursor: grab;
}
.anomalous-material-card[draggable="true"]:active,
.anomalous-paper-note[draggable="true"]:active {
cursor: grabbing;
}
/* Hide legacy bulky drag label to restore clean card visuals */
.anomalous-material-drag-label {
display: none !important;
}
/* 3. Drag Follower Floating Badge */
.anomalous-material-drag-hint {
position: fixed;
z-index: 999999;
pointer-events: none;
display: inline-flex;
align-items: center;
gap: 8px;
padding: 7px 14px;
border-radius: 20px;
background: rgba(15, 23, 42, 0.9);
border: 1.5px solid rgba(45, 212, 191, 0.55);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.65), 0 0 16px rgba(45, 212, 191, 0.2);
color: #f1f5f9;
font-size: 0.8rem;
font-weight: 500;
line-height: 1.2;
backdrop-filter: blur(8px);
transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}
.anomalous-material-drag-hint.is-target-valid {
border-color: #2dd4bf;
background: rgba(13, 37, 42, 0.94);
box-shadow: 0 12px 36px rgba(0, 0, 0, 0.75), 0 0 24px rgba(45, 212, 191, 0.45);
color: #5eead4;
}
/* 4. Prompt Composer Layout (Warm Paper Studio) */
.anomalous-prompt-composer {
display: flex;
flex-direction: column;
gap: 16px;
padding: 16px 20px 24px;
overflow-y: auto;
max-height: 100%;
color: #e2e8f0;
}
.anomalous-prompt-topbar {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 12px;
padding-bottom: 12px;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.anomalous-prompt-topbar-left {
display: flex;
align-items: center;
gap: 12px;
}
.anomalous-prompt-topbar-left h3 {
margin: 0;
font-size: 1.05rem;
font-weight: 600;
color: #f8fafc;
letter-spacing: 0.02em;
}
.anomalous-prompt-topbar-actions {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}
.anomalous-prompt-meta-strip {
display: flex;
align-items: center;
gap: 12px;
padding: 10px 14px;
border-radius: 10px;
background: rgba(255, 255, 255, 0.03);
border: 1px solid rgba(255, 255, 255, 0.07);
flex-wrap: wrap;
}
.anomalous-prompt-meta-strip input {
background: rgba(15, 23, 42, 0.5);
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 6px;
padding: 6px 10px;
color: #f1f5f9;
font-size: 0.82rem;
outline: none;
transition: border-color 0.15s ease;
}
.anomalous-prompt-meta-strip input:focus {
border-color: #2dd4bf;
}
.anomalous-prompt-name-input {
flex: 1 1 200px;
}
.anomalous-prompt-tags-input {
flex: 1 1 180px;
}
.anomalous-prompt-insert-pos {
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 0.8rem;
color: #94a3b8;
}
.anomalous-prompt-insert-pos select {
background: rgba(15, 23, 42, 0.5);
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 6px;
padding: 5px 8px;
color: #f1f5f9;
font-size: 0.78rem;
outline: none;
cursor: pointer;
}
/* 5. Paper-like Note Cards Grid */
.anomalous-paper-notes-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
gap: 18px;
}
.anomalous-paper-note {
position: relative;
display: flex;
flex-direction: column;
border-radius: 12px;
background: linear-gradient(175deg, #1c2028 0%, #15181f 100%);
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 10px 24px -4px rgba(0, 0, 0, 0.4), 0 4px 10px -2px rgba(0, 0, 0, 0.25);
overflow: hidden;
transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.18s ease;
user-select: none;
}
.anomalous-paper-note:hover {
transform: translateY(-2px);
box-shadow: 0 14px 30px -4px rgba(0, 0, 0, 0.55), 0 6px 14px -2px rgba(0, 0, 0, 0.35);
border-color: rgba(255, 255, 255, 0.18);
}
/* Note Top Tape Effect (纸胶带) */
.anomalous-paper-note-tape {
height: 6px;
width: 100%;
opacity: 0.85;
}
.anomalous-paper-note.is-positive .anomalous-paper-note-tape {
background: linear-gradient(90deg, #2dd4bf 0%, #0d9488 100%);
box-shadow: 0 0 10px rgba(45, 212, 191, 0.35);
}
.anomalous-paper-note.is-negative .anomalous-paper-note-tape {
background: linear-gradient(90deg, #fb7185 0%, #e11d48 100%);
box-shadow: 0 0 10px rgba(251, 113, 133, 0.35);
}
/* Note Header */
.anomalous-paper-note-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px 14px 6px;
gap: 8px;
}
.anomalous-paper-note-title {
display: inline-flex;
align-items: center;
gap: 7px;
font-size: 0.86rem;
font-weight: 600;
letter-spacing: 0.01em;
}
.anomalous-paper-note.is-positive .anomalous-paper-note-title {
color: #5eead4;
}
.anomalous-paper-note.is-negative .anomalous-paper-note-title {
color: #fda4af;
}
.anomalous-paper-note-actions {
display: flex;
align-items: center;
gap: 6px;
}
.anomalous-paper-note-count {
font-size: 0.72rem;
color: #64748b;
font-family: monospace;
padding: 2px 6px;
background: rgba(0, 0, 0, 0.25);
border-radius: 4px;
}
.anomalous-paper-note-btn {
padding: 3px 8px;
border-radius: 5px;
border: 1px solid rgba(255, 255, 255, 0.12);
background: rgba(255, 255, 255, 0.05);
color: #cbd5e1;
font-size: 0.74rem;
cursor: pointer;
transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.anomalous-paper-note-btn:hover {
background: rgba(255, 255, 255, 0.12);
color: #f8fafc;
border-color: rgba(255, 255, 255, 0.25);
}
/* Note Textarea */
.anomalous-paper-note-body {
padding: 6px 14px 10px;
flex: 1;
display: flex;
flex-direction: column;
}
.anomalous-paper-note-textarea {
width: 100%;
min-height: 120px;
resize: vertical;
border: none;
outline: none;
background: rgba(0, 0, 0, 0.2);
color: #f1f5f9;
font-size: 0.85rem;
line-height: 1.5;
padding: 10px;
border-radius: 6px;
font-family: inherit;
box-sizing: border-box;
transition: background 0.15s ease;
}
.anomalous-paper-note-textarea:focus {
background: rgba(0, 0, 0, 0.35);
}
/* Note Footer Drag Hint */
.anomalous-paper-note-footer {
display: flex;
align-items: center;
justify-content: space-between;
padding: 6px 14px 10px;
font-size: 0.73rem;
color: #64748b;
border-top: 1px dashed rgba(255, 255, 255, 0.06);
}
.anomalous-paper-note-drag-prompt {
display: inline-flex;
align-items: center;
gap: 5px;
color: #94a3b8;
}
/* 6. Active Target Status & Injection Bar */
.anomalous-prompt-target-bar {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 10px;
padding: 10px 14px;
border-radius: 10px;
background: rgba(15, 23, 42, 0.6);
border: 1px solid rgba(45, 212, 191, 0.2);
}
.anomalous-prompt-target-info {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 0.82rem;
color: #cbd5e1;
}
.anomalous-prompt-target-actions {
display: flex;
align-items: center;
gap: 8px;
}
/* 7. Slide-out Material Import Drawer */
.anomalous-prompt-import-drawer {
position: fixed;
top: 0;
right: 0;
width: 440px;
max-width: 90vw;
height: 100vh;
background: rgba(18, 22, 30, 0.96);
border-left: 1px solid rgba(255, 255, 255, 0.12);
box-shadow: -10px 0 40px rgba(0, 0, 0, 0.75);
z-index: 10005;
display: flex;
flex-direction: column;
backdrop-filter: blur(12px);
animation: drawerSlideIn 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes drawerSlideIn {
from { transform: translateX(100%); }
to { transform: translateX(0); }
}
.anomalous-drawer-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 14px 18px;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.anomalous-drawer-header h4 {
margin: 0;
font-size: 0.98rem;
font-weight: 600;
color: #f1f5f9;
}
.anomalous-drawer-search {
padding: 10px 18px;
border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.anomalous-drawer-search input {
width: 100%;
box-sizing: border-box;
padding: 7px 12px;
border-radius: 6px;
background: rgba(15, 23, 42, 0.6);
border: 1px solid rgba(255, 255, 255, 0.12);
color: #f1f5f9;
font-size: 0.82rem;
outline: none;
}
.anomalous-drawer-search input:focus {
border-color: #2dd4bf;
}
.anomalous-drawer-list {
flex: 1;
overflow-y: auto;
padding: 14px 18px;
display: flex;
flex-direction: column;
gap: 12px;
}
.anomalous-drawer-item {
padding: 12px;
border-radius: 8px;
background: rgba(255, 255, 255, 0.035);
border: 1px solid rgba(255, 255, 255, 0.08);
display: flex;
flex-direction: column;
gap: 8px;
transition: background 0.15s ease, border-color 0.15s ease;
}
.anomalous-drawer-item:hover {
background: rgba(255, 255, 255, 0.06);
border-color: rgba(45, 212, 191, 0.3);
}
.anomalous-drawer-item-title {
font-size: 0.84rem;
font-weight: 600;
color: #f8fafc;
}
.anomalous-drawer-item-preview {
font-size: 0.76rem;
color: #94a3b8;
line-height: 1.4;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
background: rgba(0, 0, 0, 0.2);
padding: 6px 8px;
border-radius: 4px;
}
.anomalous-drawer-item-actions {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 6px;
flex-wrap: wrap;
}
.anomalous-drawer-item-btn {
padding: 4px 9px;
border-radius: 4px;
border: 1px solid rgba(255, 255, 255, 0.12);
background: rgba(255, 255, 255, 0.05);
color: #cbd5e1;
font-size: 0.72rem;
cursor: pointer;
transition: all 0.15s ease;
}
.anomalous-drawer-item-btn:hover {
background: #2dd4bf;
color: #0f172a;
border-color: #2dd4bf;
font-weight: 600;
}