.lmri-root { --lmri-bg: var(--comfy-menu-bg, #18181b); --lmri-panel: var(--comfy-input-bg, #242428); --lmri-border: var(--border-color, #3a3a40); --lmri-text: var(--fg-color, #f4f4f5); --lmri-muted: var(--descrip-text, #a1a1aa); --lmri-accent: var(--primary-color, #7c3aed); box-sizing: border-box; width: 100%; height: 100%; min-height: 0; overflow-y: auto; background: var(--lmri-bg); color: var(--lmri-text); font: 13px/1.45 Inter, system-ui, sans-serif; } .lmri-root *, .lmri-root *::before, .lmri-root *::after { box-sizing: border-box; } .lmri-header { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 14px 11px; border-bottom: 1px solid var(--lmri-border); background: color-mix(in srgb, var(--lmri-bg) 94%, transparent); backdrop-filter: blur(10px); } .lmri-header h1, .lmri-card h2, .lmri-notice h3, .lmri-empty h3 { margin: 0; color: var(--lmri-text); } .lmri-header h1 { font-size: 15px; font-weight: 650; } .lmri-header p { max-width: 240px; margin: 2px 0 0; overflow: hidden; color: var(--lmri-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; } .lmri-header-actions, .lmri-inline-actions { display: flex; align-items: center; gap: 6px; } .lmri-inline-actions { margin-top: 10px; } .lmri-icon-button, .lmri-name, .lmri-candidate, .lmri-button { border: 1px solid var(--lmri-border); color: var(--lmri-text); font: inherit; cursor: pointer; } .lmri-icon-button { display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; border-radius: 8px; background: var(--lmri-panel); } .lmri-icon-button:disabled { cursor: default; opacity: 0.45; } .lmri-name-selector { display: flex; gap: 6px; padding: 10px 12px 2px; overflow-x: auto; } .lmri-name { flex: 0 0 auto; max-width: 190px; padding: 6px 9px; overflow: hidden; border-radius: 999px; background: transparent; color: var(--lmri-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; } .lmri-name.active { border-color: color-mix(in srgb, var(--lmri-accent) 70%, white 10%); background: color-mix(in srgb, var(--lmri-accent) 24%, transparent); color: var(--lmri-text); } .lmri-content { padding: 12px; } .lmri-state, .lmri-empty { display: flex; min-height: 230px; align-items: center; justify-content: center; flex-direction: column; gap: 10px; color: var(--lmri-muted); text-align: center; } .lmri-empty-icon { color: var(--lmri-accent); font-size: 28px; } .lmri-empty p { max-width: 280px; margin: 0; } .lmri-card, .lmri-notice { overflow: hidden; border: 1px solid var(--lmri-border); border-radius: 12px; background: var(--lmri-panel); box-shadow: 0 8px 28px rgb(0 0 0 / 18%); } .lmri-preview { position: relative; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; background: #101012; } .lmri-preview img, .lmri-preview video { width: 100%; height: 100%; display: block; object-fit: cover; } .lmri-preview video { object-fit: contain; } .lmri-media-blurred { filter: blur(22px) brightness(0.55); transform: scale(1.08); } .lmri-media-reveal { position: absolute; z-index: 1; top: 50%; left: 50%; padding: 7px 10px; border: 1px solid rgb(255 255 255 / 45%); border-radius: 7px; background: rgb(10 10 12 / 82%); color: white; font: inherit; cursor: pointer; transform: translate(-50%, -50%); } .lmri-card-body, .lmri-notice { padding: 13px; } .lmri-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; } .lmri-card h2 { font-size: 16px; line-height: 1.25; } .lmri-file-name { margin: 4px 0 0; overflow-wrap: anywhere; color: var(--lmri-muted); font-size: 11px; } .lmri-flags { display: flex; align-items: center; gap: 5px; color: #facc15; font-size: 15px; } .lmri-update { padding: 2px 6px; border-radius: 999px; background: #166534; color: #dcfce7; font-size: 9px; text-transform: uppercase; } .lmri-metadata { margin-top: 12px; padding: 8px 10px; border: 1px solid var(--lmri-border); border-radius: 9px; background: color-mix(in srgb, var(--lmri-bg) 58%, transparent); } .lmri-usage-tips { margin-top: 0; } .lmri-meta-row { display: grid; grid-template-columns: minmax(72px, 0.8fr) minmax(0, 1.5fr); gap: 8px; padding: 3px 0; } .lmri-meta-label { color: var(--lmri-muted); } .lmri-meta-value { overflow-wrap: anywhere; text-align: right; } .lmri-section-title, .lmri-copy h3 { margin: 13px 0 6px; color: var(--lmri-muted); font-size: 10px; font-weight: 650; letter-spacing: 0.07em; text-transform: uppercase; } .lmri-pills { display: flex; flex-wrap: wrap; gap: 5px; } .lmri-pill { max-width: 100%; padding: 4px 7px; overflow: hidden; border: 1px solid var(--lmri-border); border-radius: 6px; background: color-mix(in srgb, var(--lmri-bg) 56%, transparent); color: var(--lmri-muted); font-size: 10px; text-overflow: ellipsis; } .lmri-triggers .lmri-pill { border-color: color-mix(in srgb, var(--lmri-accent) 52%, var(--lmri-border)); color: var(--lmri-text); } .lmri-copy p { margin: 0; color: var(--lmri-text); overflow-wrap: anywhere; white-space: pre-wrap; } .lmri-shared { margin-top: 14px; overflow: hidden; border: 1px solid var(--lmri-border); border-radius: 10px; background: color-mix(in srgb, var(--lmri-bg) 58%, transparent); } .lmri-shared-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 10px; } .lmri-shared-header h3, .lmri-shared-prompt h4 { margin: 0; color: var(--lmri-text); font-size: 11px; font-weight: 650; } .lmri-shared-source { display: block; margin-top: 1px; color: var(--lmri-muted); font-size: 9px; } .lmri-shared-navigation { display: flex; flex: 0 0 auto; align-items: center; gap: 5px; } .lmri-shared-nav, .lmri-copy-button { border: 1px solid var(--lmri-border); border-radius: 6px; background: var(--lmri-panel); color: var(--lmri-text); font: inherit; cursor: pointer; } .lmri-shared-nav { display: grid; width: 24px; height: 24px; place-items: center; padding: 0; font-size: 17px; line-height: 1; } .lmri-shared-position { min-width: 29px; color: var(--lmri-muted); font-size: 9px; text-align: center; } .lmri-shared-dots { display: flex; gap: 5px; padding: 8px 9px 0; overflow-x: auto; } .lmri-shared-dot { flex: 0 0 8px; width: 8px; height: 8px; padding: 0; border: 0; border-radius: 999px; background: color-mix(in srgb, var(--lmri-muted) 52%, transparent); cursor: pointer; } .lmri-shared-dot.active { background: var(--lmri-accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--lmri-accent) 28%, transparent); } .lmri-shared-dot:focus-visible { outline: 2px solid color-mix(in srgb, var(--lmri-accent) 75%, white 15%); outline-offset: 2px; } .lmri-shared-viewer { position: relative; width: 100%; min-height: 120px; max-height: 360px; aspect-ratio: 4 / 3; overflow: hidden; border-block: 1px solid var(--lmri-border); background: #101012; } .lmri-shared-viewer img, .lmri-shared-viewer video { display: block; width: 100%; height: 100%; object-fit: contain; } .lmri-shared-params { padding: 8px 9px 0; } .lmri-shared-prompt { padding: 9px 10px 10px; } .lmri-prompt-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; } .lmri-copy-button { min-width: 48px; padding: 3px 7px; color: var(--lmri-muted); font-size: 9px; } .lmri-copy-button:disabled { cursor: wait; opacity: 0.65; } .lmri-shared-prompt-text, .lmri-negative-prompt p { margin: 0; overflow-wrap: anywhere; color: var(--lmri-text); font-size: 11px; line-height: 1.45; white-space: pre-wrap; } .lmri-shared-prompt-text { max-height: 9em; overflow-y: auto; } .lmri-negative-prompt { padding: 0 10px 10px; color: var(--lmri-muted); font-size: 10px; } .lmri-negative-prompt summary { cursor: pointer; } .lmri-negative-prompt p { margin-top: 6px; color: var(--lmri-muted); } .lmri-enrichment-state { display: flex; align-items: center; gap: 7px; margin-top: 12px; color: var(--lmri-muted); font-size: 10px; } .lmri-shared-nav:hover, .lmri-copy-button:hover, .lmri-media-reveal:hover { border-color: color-mix(in srgb, var(--lmri-accent) 75%, var(--lmri-border)); } .lmri-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 10px; } .lmri-primary-actions { grid-template-columns: 1fr; margin-top: 14px; } .lmri-button { min-width: 0; padding: 7px 8px; border-radius: 7px; background: color-mix(in srgb, var(--lmri-bg) 70%, transparent); text-align: center; text-decoration: none; } .lmri-button:hover, .lmri-icon-button:hover:not(:disabled), .lmri-candidate:hover { border-color: color-mix(in srgb, var(--lmri-accent) 75%, var(--lmri-border)); background: color-mix(in srgb, var(--lmri-accent) 18%, var(--lmri-bg)); } .lmri-manager { border-color: color-mix(in srgb, var(--lmri-accent) 68%, var(--lmri-border)); background: color-mix(in srgb, var(--lmri-accent) 24%, var(--lmri-bg)); } .lmri-civitai-red { border-color: #7f1d1d; color: #fecaca; } .lmri-notice h3 { font-size: 14px; } .lmri-notice p { margin: 7px 0 12px; color: var(--lmri-muted); } .lmri-error { border-color: #7f1d1d; } .lmri-candidates { display: flex; flex-direction: column; gap: 6px; } .lmri-candidate { display: flex; width: 100%; align-items: flex-start; flex-direction: column; padding: 8px 9px; border-radius: 8px; background: color-mix(in srgb, var(--lmri-bg) 65%, transparent); text-align: left; } .lmri-candidate span { color: var(--lmri-muted); font-size: 10px; overflow-wrap: anywhere; } @media (max-width: 360px) { .lmri-actions { grid-template-columns: 1fr; } } .lmrc-overlay { --lmrc-bg: var(--comfy-menu-bg, #18181b); --lmrc-panel: var(--comfy-input-bg, #242428); --lmrc-border: var(--border-color, #3a3a40); --lmrc-text: var(--fg-color, #f4f4f5); --lmrc-muted: var(--descrip-text, #a1a1aa); --lmrc-accent: var(--primary-color, #7c3aed); position: fixed; z-index: 12000; inset: 0; display: grid; padding: 20px; overflow-y: auto; place-items: center; background: rgb(0 0 0 / 66%); color: var(--lmrc-text); font: 13px/1.45 Inter, system-ui, sans-serif; backdrop-filter: blur(3px); } .lmrc-overlay *, .lmrc-overlay *::before, .lmrc-overlay *::after { box-sizing: border-box; } .lmrc-dialog { display: flex; width: min(720px, calc(100vw - 32px)); max-height: min(820px, calc(100vh - 40px)); flex-direction: column; overflow: hidden; border: 1px solid var(--lmrc-border); border-radius: 14px; outline: none; background: var(--lmrc-bg); box-shadow: 0 24px 80px rgb(0 0 0 / 55%); } .lmrc-header { display: flex; flex: 0 0 auto; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 18px 20px 15px; border-bottom: 1px solid var(--lmrc-border); } .lmrc-header h2, .lmrc-section h3 { margin: 0; color: var(--lmrc-text); } .lmrc-header h2 { font-size: 18px; } .lmrc-header p, .lmrc-section-heading p { margin: 4px 0 0; color: var(--lmrc-muted); } .lmrc-form { min-height: 0; flex: 1 1 auto; padding: 16px 20px 18px; overflow-y: auto; } .lmrc-section { margin-bottom: 18px; } .lmrc-section h3 { font-size: 13px; font-weight: 650; } .lmrc-connection-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(130px, 0.7fr); gap: 12px; margin-top: 9px; } .lmrc-field { display: flex; min-width: 0; flex-direction: column; gap: 5px; } .lmrc-label { color: var(--lmrc-muted); font-size: 11px; font-weight: 600; } .lmrc-input { width: 100%; min-width: 0; height: 36px; padding: 7px 9px; border: 1px solid var(--lmrc-border); border-radius: 7px; outline: none; background: var(--lmrc-panel); color: var(--lmrc-text); font: inherit; } .lmrc-input:focus { border-color: color-mix(in srgb, var(--lmrc-accent) 78%, white 8%); box-shadow: 0 0 0 2px color-mix(in srgb, var(--lmrc-accent) 22%, transparent); } .lmrc-input:disabled { cursor: not-allowed; opacity: 0.58; } .lmrc-hint { min-height: 16px; color: var(--lmrc-muted); font-size: 10px; overflow-wrap: anywhere; } .lmrc-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; } .lmrc-section-heading p { max-width: 500px; font-size: 11px; } .lmrc-mapping-rows { display: flex; flex-direction: column; gap: 7px; margin-top: 10px; } .lmrc-mapping-row { display: grid; grid-template-columns: minmax(0, 1fr) 20px minmax(0, 1fr) 32px; align-items: center; gap: 7px; } .lmrc-mapping-arrow { color: var(--lmrc-muted); text-align: center; } .lmrc-icon-button, .lmrc-button, .lmrc-settings-button { border: 1px solid var(--lmrc-border, var(--border-color, #3a3a40)); border-radius: 7px; background: var(--lmrc-panel, var(--comfy-input-bg, #242428)); color: var(--lmrc-text, var(--fg-color, #f4f4f5)); font: inherit; cursor: pointer; } .lmrc-icon-button { display: grid; flex: 0 0 32px; width: 32px; height: 32px; padding: 0; place-items: center; } .lmrc-button, .lmrc-settings-button { min-height: 34px; padding: 7px 11px; } .lmrc-settings-button { width: 100%; text-align: left; } .lmrc-icon-button:hover, .lmrc-button:hover:not(:disabled), .lmrc-settings-button:hover { border-color: color-mix(in srgb, var(--lmrc-accent, #7c3aed) 75%, var(--lmrc-border, #3a3a40)); } .lmrc-button:disabled, .lmrc-icon-button:disabled { cursor: default; opacity: 0.5; } .lmrc-primary { border-color: color-mix(in srgb, var(--lmrc-accent) 72%, white 7%); background: color-mix(in srgb, var(--lmrc-accent) 54%, var(--lmrc-panel)); } .lmrc-notices { display: flex; flex-direction: column; gap: 6px; } .lmrc-notice, .lmrc-status { padding: 8px 10px; border: 1px solid var(--lmrc-border); border-radius: 7px; background: color-mix(in srgb, var(--lmrc-panel) 72%, transparent); color: var(--lmrc-muted); font-size: 11px; } .lmrc-notice.warning, .lmrc-status.error { border-color: #7f1d1d; color: #fecaca; } .lmrc-status { min-height: 35px; margin-top: 10px; } .lmrc-status-action { margin-left: 10px; } .lmrc-status:empty { display: none; } .lmrc-status.success { border-color: #166534; color: #bbf7d0; } .lmrc-status.busy { color: var(--lmrc-text); } .lmrc-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--lmrc-border); } .lmrc-footer-group { display: flex; gap: 7px; } @media (max-width: 620px) { .lmrc-overlay { padding: 8px; place-items: start center; } .lmrc-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); } .lmrc-connection-grid, .lmrc-mapping-row { grid-template-columns: 1fr; } .lmrc-mapping-arrow { transform: rotate(90deg); } .lmrc-mapping-row .lmrc-icon-button { justify-self: end; } .lmrc-footer { align-items: stretch; flex-direction: column; } .lmrc-footer-group { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); } .lmrc-status-action { display: block; width: 100%; margin: 8px 0 0; } }