#model-linker-modal button { font-size: var(--ml-spacing-15); } .ml-hidden-initial { display: none; } .ml-hidden { display: none !important; } .ml-meta-line { margin-top: var(--ml-spacing-4); font-size: var(--ml-font-md); } .ml-meta-secondary { color: var(--ml-text-muted); } .ml-status-card-vertical { flex-direction: column; align-items: flex-start; } .ml-action-row { margin-top: var(--ml-spacing-8); display: flex; gap: var(--ml-spacing-8); } .ml-search-results-stack { margin-top: var(--ml-spacing-8); display: flex; flex-direction: column; gap: var(--ml-spacing-8); } .ml-stack-md { display: flex; flex-direction: column; gap: var(--ml-spacing-10); } .ml-stack-sm { display: flex; flex-direction: column; gap: var(--ml-spacing-4); margin-top: var(--ml-spacing-8); } .ml-loaded-filters { padding: var(--ml-spacing-16) var(--ml-spacing-20); } .ml-loaded-filter-row { display: flex; gap: var(--ml-spacing-8); margin-bottom: var(--ml-spacing-16); } .ml-btn-filter { padding: var(--ml-spacing-6) var(--ml-spacing-12); font-size: var(--ml-font-md); background: var(--ml-color-gray-900); border: 1px solid var(--ml-color-gray-800); color: var(--ml-color-gray-300); cursor: pointer; border-radius: var(--ml-radius-md); } .ml-btn-filter:hover { background: var(--ml-color-gray-800); color: var(--ml-color-white); } .ml-btn-filter.active { background: #4caf50; border-color: #4caf50; color: var(--ml-color-white); } .ml-models-list-pad { padding: 0 var(--ml-spacing-20); } .ml-model-section { margin-bottom: var(--ml-spacing-16); padding: var(--ml-spacing-12); background: var(--ml-card-bg-alt, #252525); border-radius: var(--ml-ui-radius-sm); } .ml-model-section-header { margin-bottom: var(--ml-spacing-10); padding-bottom: var(--ml-spacing-8); border-bottom: 1px solid var(--ml-color-gray-900); } .ml-model-section-title { color: var(--ml-text); font-size: var(--ml-font-lg); font-weight: 600; } .ml-model-group { margin-bottom: var(--ml-spacing-10); } .ml-model-group-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--ml-spacing-8); } .ml-model-group-label { font-size: var(--ml-font-sm); font-weight: 600; } .ml-model-group-label-active { color: #4caf50; } .ml-model-group-label-inactive { color: var(--ml-color-gray-500); } .ml-btn-copy-compact { padding: var(--ml-spacing-3) var(--ml-spacing-8); font-size: var(--ml-font-xs); } .ml-btn-copy-compact.is-muted { opacity: 0.6; } .ml-model-chip-list { display: flex; flex-wrap: wrap; gap: var(--ml-spacing-8); } .ml-model-chip-list-inactive { opacity: 0.5; } .ml-copy-section { padding: var(--ml-spacing-16) var(--ml-spacing-20); border-top: 1px solid var(--ml-border); } .ml-copy-label { font-size: var(--ml-font-md); color: var(--ml-text-muted); margin-bottom: var(--ml-spacing-8); } .ml-copy-row { display: flex; gap: var(--ml-spacing-8); align-items: center; } .ml-copy-code { flex: 1; padding: var(--ml-spacing-8) var(--ml-spacing-12); background: var(--ml-card-bg); border-radius: var(--ml-radius-md); font-family: "SF Mono", "Consolas", monospace; font-size: var(--ml-font-sm); color: #90caf9; overflow-x: auto; white-space: nowrap; } .ml-error-text { color: red; } .ml-info-accent-text { color: #2196f3; } .ml-progress-row { display: flex; align-items: center; gap: var(--ml-spacing-8); } .ml-progress-bar-grow { flex: 1; } .ml-download-progress-slot { margin-top: var(--ml-spacing-8); display: none; } .ml-civitai-open-btn { background: transparent; color: #ff9800; border: 1px solid #ff9800; font-weight: 700; cursor: pointer; } .ml-civitai-download-btn { background: #ff9800; } .ml-missing-summary { display: flex; justify-content: space-between; align-items: center; gap: var(--ml-spacing-12); margin-bottom: var(--ml-spacing-10); padding: var(--ml-spacing-10) var(--ml-spacing-12); border-radius: var(--ml-ui-radius-lg); background: linear-gradient(135deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.02) 100%); border: 1px solid var(--ml-border-strong); box-shadow: var(--ml-shadow-elevated); } .ml-missing-summary-title { display: flex; align-items: baseline; gap: var(--ml-spacing-10); flex-wrap: wrap; } .ml-missing-summary-count { font-size: var(--ml-spacing-15); font-weight: 700; color: var(--ml-text); letter-spacing: -0.02em; } .ml-missing-summary-meta { font-size: var(--ml-font-sm); color: var(--ml-text-muted); } /* Card Styles */ .ml-card { background: var(--ml-card-bg); border: 1px solid transparent; border-radius: 0; padding: var(--ml-spacing-10) var(--ml-spacing-12); margin-bottom: var(--ml-spacing-4); transition: transform 0.18s ease, background 0.18s ease, box-shadow 0.18s ease; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.018); font-family: "Segoe UI Variable", "Segoe UI", sans-serif; } .ml-card:nth-child(even) { background: var(--ml-card-bg-alt); } .ml-card:hover { transform: translateY(-1px); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.05), 0 10px 24px rgba(0,0,0,0.14); } /* Card Header */ .ml-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--ml-spacing-10); margin-bottom: var(--ml-spacing-6); } .ml-card-title-wrap { min-width: 0; flex: 1; display: grid; gap: var(--ml-spacing-4); } .ml-card-title-meta { display: grid; gap: var(--ml-spacing-2); } .ml-card-title { font-size: var(--ml-spacing-15); line-height: 1.24; font-weight: 700; color: var(--ml-text); margin: 0; word-break: break-word; letter-spacing: -0.01em; } .ml-card-title-eyebrow { display: block; font-family: 'SF Mono', 'Consolas', 'Monaco', monospace; font-size: var(--ml-font-xs); line-height: 1.35; color: var(--ml-text-dim); word-break: break-all; } .ml-card-title-primary { display: block; color: var(--ml-text-soft); } .ml-card-title-secondary { display: block; font-size: var(--ml-font-md); line-height: 1.4; color: var(--ml-text-muted); word-break: break-word; } .ml-card-subtitle { margin-top: 0; display: flex; align-items: center; gap: var(--ml-spacing-4); flex-wrap: wrap; } .ml-node-chip { display: inline-flex; align-items: center; gap: var(--ml-spacing-4); padding: var(--ml-spacing-2) var(--ml-spacing-7); background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.06); border-radius: 999px; font-size: var(--ml-font-xs); color: #c8c8c8; white-space: nowrap; flex-shrink: 0; } .ml-node-chip.is-locatable { cursor: pointer; padding-right: 9px; color: #f1f1f1; background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.12); transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease; } .ml-node-chip.is-locatable:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.18); color: #ffffff; transform: translateY(-1px); } .ml-node-chip-icon { display: inline-flex; align-items: center; justify-content: center; width: var(--ml-spacing-12); height: var(--ml-spacing-12); opacity: 0.95; } .ml-node-chip-icon svg { width: var(--ml-spacing-12); height: var(--ml-spacing-12); display: block; } .ml-category-chip { display: inline-flex; padding: var(--ml-spacing-2) var(--ml-spacing-7); background: rgba(255,255,255,0.045); border: 1px solid rgba(255,255,255,0.07); border-radius: 999px; font-size: 9px; color: #d3d3d3; text-transform: uppercase; letter-spacing: 0.08em; font-weight: 700; } .ml-card-actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--ml-spacing-6); flex-wrap: wrap; flex-shrink: 0; } .ml-inline-civitai-link { color: var(--ml-text-soft); font-size: var(--ml-font-lg); font-weight: 700; text-decoration: none; letter-spacing: -0.01em; } .ml-inline-civitai-link:hover { color: #ffffff; text-decoration: none; } /* Two-Column Layout */ .ml-columns { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ml-spacing-8); } @media (max-width: 700px) { .ml-missing-summary { flex-direction: column; align-items: flex-start; } .ml-columns { grid-template-columns: 1fr; } .ml-card-header { flex-direction: column; } .ml-card-actions { justify-content: flex-start; } } .ml-column { min-width: 0; background: var(--ml-panel-bg); border: 1px solid transparent; border-radius: 0; padding: var(--ml-spacing-10); box-shadow: inset 0 0 0 1px rgba(148,163,184,0.06); } .ml-column-header { font-size: var(--ml-font-xs); font-weight: 700; color: var(--ml-text-muted); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: var(--ml-spacing-8); padding-bottom: var(--ml-spacing-6); border-bottom: 1px solid var(--ml-divider); } .ml-muted-note, .ml-no-matches { padding: var(--ml-spacing-8) var(--ml-spacing-10); border-radius: var(--ml-ui-radius-sm); background: rgba(255,255,255,0.018); border: 1px solid transparent; color: var(--ml-text-muted); font-size: var(--ml-font-sm); } .ml-inline-note-action { transition: color 0.15s ease, background 0.15s ease; } .ml-inline-note-action:hover { color: var(--ml-text); background: rgba(255,255,255,0.05); } /* Filename Chips */ .ml-chip { display: inline-flex; align-items: center; padding: var(--ml-spacing-5) var(--ml-spacing-10); background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.08); border-radius: 999px; font-family: 'SF Mono', 'Consolas', 'Monaco', monospace; font-size: var(--ml-font-md); color: var(--ml-text); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ml-chip:hover { background: #444; } /* Confidence Badges */ .ml-badge { display: inline-flex; align-items: center; justify-content: center; padding: var(--ml-spacing-1) var(--ml-spacing-7); border-radius: 999px; font-size: var(--ml-font-xs); font-weight: 600; min-width: 36px; text-align: center; border: 1px solid transparent; } .ml-badge-high { background: rgba(114,211,138,0.14); color: #a7e6b6; border-color: rgba(114,211,138,0.22); } .ml-badge-medium { background: rgba(225,178,77,0.15); color: #efd391; border-color: rgba(225,178,77,0.2); } .ml-badge-low { background: rgba(224,106,106,0.14); color: #efb1b1; border-color: rgba(224,106,106,0.2); } .ml-badge-neutral { background: rgba(255,255,255,0.06); color: #d4d4d4; border-color: rgba(255,255,255,0.1); } /* Match Row */ .ml-match-row { display: flex; align-items: center; gap: var(--ml-spacing-8); padding: var(--ml-spacing-6) var(--ml-spacing-8); border-radius: var(--ml-ui-radius-sm); margin-bottom: var(--ml-spacing-4); background: rgba(255,255,255,0.016); border: 1px solid transparent; transition: background 0.15s ease, box-shadow 0.15s ease; } .ml-match-row:hover { background: rgba(255,255,255,0.032); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08); } .ml-match-row.ml-best-match { background: rgba(114,211,138,0.08); box-shadow: inset 0 0 0 1px rgba(114,211,138,0.16); } .ml-match-filename { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: 'SF Mono', 'Consolas', 'Monaco', monospace; font-size: 11.5px; color: var(--ml-text-soft); } /* Buttons */ .ml-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--ml-spacing-5); min-height: 30px; padding: var(--ml-spacing-6) 11px; border: 1px solid transparent; border-radius: var(--ml-ui-radius-sm); font-size: var(--ml-font-sm); font-weight: 600; cursor: pointer; transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease; white-space: nowrap; text-decoration: none; box-sizing: border-box; } .ml-btn:disabled { opacity: 0.5; cursor: not-allowed; } .ml-btn-primary { background: var(--ml-accent); color: white; } .ml-btn-primary:hover:not(:disabled) { background: var(--ml-accent-hover); } .ml-btn-secondary { background: rgba(255,255,255,0.03); color: var(--ml-text); border-color: rgba(255,255,255,0.1); box-shadow: inset 0 1px 0 rgba(255,255,255,0.02); } .ml-btn-secondary:hover:not(:disabled) { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.16); transform: translateY(-1px); } .ml-btn-link { background: rgba(255,255,255,0.03); color: var(--ml-text); border-color: rgba(255,255,255,0.1); box-shadow: inset 0 1px 0 rgba(255,255,255,0.02); } .ml-btn-link:hover:not(:disabled) { background: rgba(255,255,255,0.05); color: var(--ml-text); border-color: rgba(255,255,255,0.16); transform: translateY(-1px); } .ml-btn-download { background: var(--ml-accent); color: #101010; box-shadow: 0 8px 18px rgba(114,211,138,0.18); } .ml-btn-download:hover:not(:disabled) { background: var(--ml-accent-hover); transform: translateY(-1px); } .ml-btn-danger { background: #f44336; color: white; } .ml-btn-danger:hover:not(:disabled) { background: #d32f2f; } .ml-btn-sm { min-height: 24px; padding: var(--ml-spacing-2) var(--ml-spacing-7); font-size: 9px; border-radius: var(--ml-radius-xl); } .ml-btn-ghost { background: rgba(255,255,255,0.018); color: var(--ml-text-muted); border-color: rgba(255,255,255,0.08); box-shadow: none; } .ml-btn-ghost:hover:not(:disabled) { background: rgba(255,255,255,0.04); color: var(--ml-text); border-color: rgba(255,255,255,0.14); } .ml-btn-utility { padding-inline: 6px; font-weight: 600; letter-spacing: 0.01em; color: var(--ml-text-soft); } .ml-btn-link-compact { min-width: 58px; gap: var(--ml-spacing-4); padding-inline: 5px; font-size: 8.75px; } .ml-btn-icon-only { width: var(--ml-spacing-24); min-width: var(--ml-spacing-24); padding: 0; aspect-ratio: 1; } .ml-btn-icon { font-size: var(--ml-font-md); } .ml-btn-icon svg { width: var(--ml-font-base); height: var(--ml-font-base); display: block; } .ml-card-actions .ml-btn, .ml-match-row .ml-btn, .ml-combo-row .ml-btn { min-height: 24px; } .ml-search-source-btn { border-radius: 999px; padding-inline: 11px; background: rgba(255,255,255,0.03); color: var(--ml-text); border-color: rgba(255,255,255,0.1); box-shadow: inset 0 1px 0 rgba(255,255,255,0.02); } .ml-search-source-btn.ml-btn-primary { background: rgba(255,255,255,0.03); color: var(--ml-text); border-color: rgba(255,255,255,0.1); box-shadow: inset 0 1px 0 rgba(255,255,255,0.02); } .ml-search-source-btn:hover:not(:disabled), .ml-search-source-btn.ml-btn-primary:hover:not(:disabled) { background: rgba(255,255,255,0.05); color: var(--ml-text); border-color: rgba(255,255,255,0.16); } /* Download Section */ .ml-download-section { display: grid; gap: var(--ml-spacing-8); padding: var(--ml-spacing-10); background: var(--ml-surface-elevated); border-radius: 0; border: 1px solid transparent; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.05); } .ml-download-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--ml-spacing-8); align-items: center; } .ml-download-actions .ml-btn-download, .ml-download-actions .ml-btn-download:hover:not(:disabled), .ml-btn.ml-btn-download.ml-footer-btn, .ml-btn.ml-btn-download.ml-footer-btn:hover:not(:disabled) { background: rgba(255,255,255,0.03); color: var(--ml-text); border-color: rgba(255,255,255,0.1); box-shadow: inset 0 1px 0 rgba(255,255,255,0.02); } .ml-download-actions .ml-btn-download:hover:not(:disabled), .ml-btn.ml-btn-download.ml-footer-btn:hover:not(:disabled) { background: rgba(255,255,255,0.05); color: var(--ml-text); border-color: rgba(255,255,255,0.16); box-shadow: inset 0 1px 0 rgba(255,255,255,0.02); transform: translateY(-1px); } .ml-btn-download-main { justify-content: flex-start; padding-inline: 10px; font-size: 8.9px; } .ml-btn-download-side { min-width: 132px; font-size: 8.6px; } .ml-status-inline { display: flex; align-items: center; gap: var(--ml-spacing-8); flex-wrap: wrap; } .ml-download-info { font-size: var(--ml-font-sm); color: var(--ml-text-muted); margin-top: 0; line-height: 1.55; } .ml-download-source { color: var(--ml-accent); font-weight: 700; } .ml-download-size { color: var(--ml-text-dim); margin-left: var(--ml-spacing-8); } .ml-search-source-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; } .ml-search-source-picker { display: flex; align-items: center; gap: 8px; min-width: 0; margin-left: auto; } .ml-search-source-picker-label { color: var(--ml-text-muted); font-size: 11px; white-space: nowrap; } .ml-search-source-select { min-height: 30px; padding: 5px 10px; background: rgba(255,255,255,0.04); color: var(--ml-text); border: 1px solid var(--ml-border); border-radius: 10px; font-size: 11px; outline: none; appearance: none; } .ml-search-source-select:focus { border-color: rgba(114,211,138,0.4); box-shadow: 0 0 0 3px rgba(114,211,138,0.12); } .ml-search-results { margin-top: 8px; display: none; } .ml-search-progress-list { display: grid; gap: 6px; margin: 8px 0; } .ml-search-progress-item { padding: 6px 8px; background: rgba(255,255,255,0.035); border: 1px solid var(--ml-border); border-radius: 8px; } .ml-search-progress-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 5px; font-size: 11px; color: var(--ml-text-muted); } .ml-search-progress-head span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ml-search-progress-head span:first-child { color: var(--ml-text); font-weight: 600; } .ml-search-progress-head span:last-child { flex: 0 1 auto; max-width: 55%; text-align: right; } .ml-search-progress-bar { height: 5px; overflow: hidden; background: rgba(255,255,255,0.08); border-radius: 5px; } .ml-search-progress-fill { height: 100%; background: var(--ml-accent); border-radius: inherit; transition: width 0.2s ease, background 0.2s ease; } .ml-search-progress-fill-running { width: 42% !important; animation: ml-search-progress-slide 1.05s ease-in-out infinite; } .ml-search-progress-found .ml-search-progress-fill { background: #72d38a; } .ml-search-progress-none .ml-search-progress-fill { background: rgba(255,255,255,0.32); } .ml-search-progress-error .ml-search-progress-fill { background: #ff8a80; } @keyframes ml-search-progress-slide { 0% { transform: translateX(-120%); } 100% { transform: translateX(240%); } } .ml-combo-section { position: relative; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--ml-divider); } .ml-combo-row { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; } .ml-combo-label { opacity: 0.9; font-size: 10px; color: var(--ml-text-muted); font-weight: 600; min-width: 42px; letter-spacing: 0.08em; text-transform: uppercase; } .ml-combo-input { flex: 1; min-width: 0; min-height: 30px; padding: 5px 10px; background: rgba(255,255,255,0.04); color: var(--ml-text); border: 1px solid var(--ml-border); border-radius: 10px; font-size: 12px; outline: none; transition: border-color 0.16s ease, box-shadow 0.16s ease, background 0.16s ease; } .ml-combo-input:focus { border-color: rgba(114,211,138,0.4); box-shadow: 0 0 0 3px rgba(114,211,138,0.12); } .ml-combo-list { position: absolute; top: calc(100% + 4px); left: 44px; right: 0; width: auto; max-height: 220px; overflow: auto; display: none; z-index: var(--ml-z-notification); background: linear-gradient(180deg, var(--ml-panel-bg-strong) 0%, var(--ml-card-bg) 100%); border: 1px solid var(--ml-border-strong); border-radius: 12px; box-shadow: var(--ml-shadow-elevated); } .ml-combo-option { padding: 8px 10px; cursor: pointer; border-bottom: 1px solid rgba(255,255,255,0.04); font-size: 12px; color: var(--ml-text); background: transparent; transition: background 0.14s ease, color 0.14s ease; } .ml-combo-option:last-child { border-bottom: none; } .ml-combo-option:hover, .ml-combo-option.is-highlighted { background: rgba(114,211,138,0.12); } .ml-combo-option-row { display: flex; align-items: center; gap: 6px; } .ml-combo-option code { flex: 1 1 0%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--ml-text); } .ml-combo-folder { margin-top: 4px; font-size: 10px; color: var(--ml-text-dim); opacity: 0.9; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* Status Messages */ .ml-status { display: flex; align-items: flex-start; gap: 10px; padding: 10px 14px; border-radius: 10px; font-size: 13px; margin-top: 8px; border: 1px solid rgba(255,255,255,0.06); } .ml-status-icon { font-size: 16px; flex-shrink: 0; } .ml-status-error { background: rgba(244, 67, 54, 0.1); border: 1px solid rgba(244, 67, 54, 0.3); color: #ef9a9a; } .ml-status-success { background: rgba(76, 175, 80, 0.1); border: 1px solid rgba(76, 175, 80, 0.3); color: #a5d6a7; } .ml-status-info { background: rgba(33, 150, 243, 0.1); border: 1px solid rgba(33, 150, 243, 0.3); color: #90caf9; } .ml-status-warning { background: rgba(255, 152, 0, 0.1); border: 1px solid rgba(255, 152, 0, 0.3); color: #ffcc80; } /* Progress Bar */ .ml-progress-container { margin-top: 8px; } .ml-progress-bar { height: 6px; background: #333; border-radius: 3px; overflow: hidden; } .ml-progress-fill { height: 100%; background: var(--ml-accent); transition: width 0.3s ease; } .ml-progress-text { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; font-size: 11px; color: var(--ml-text-muted); } /* Scrollbar */ .ml-scrollable { overflow-y: auto; } .ml-scrollable::-webkit-scrollbar { width: 8px; } .ml-scrollable::-webkit-scrollbar-track { background: transparent; } .ml-scrollable::-webkit-scrollbar-thumb { background: #444; border-radius: 4px; } .ml-scrollable::-webkit-scrollbar-thumb:hover { background: #555; } /* Footer */ .ml-footer { display: flex; justify-content: flex-end; align-items: center; gap: 10px; flex-wrap: wrap; padding: 5px 18px; background: linear-gradient(to top, rgba(18,18,18,0.98) 0%, rgba(18,18,18,0.92) 70%, transparent 100%); border-top: 1px solid var(--ml-border); } .ml-footer-btn { min-height: 32px; min-width: 144px; padding: 7px 13px; font-size: 12px; border-radius: 9px; line-height: 1; backdrop-filter: blur(10px); } .ml-btn.ml-footer-btn, .ml-btn.ml-btn-primary.ml-footer-btn, .ml-btn.ml-btn-download.ml-footer-btn { background: rgba(255,255,255,0.03); color: var(--ml-text); border-color: rgba(255,255,255,0.1); box-shadow: inset 0 1px 0 rgba(255,255,255,0.02); } .ml-btn.ml-footer-btn:hover:not(:disabled), .ml-btn.ml-btn-primary.ml-footer-btn:hover:not(:disabled), .ml-btn.ml-btn-download.ml-footer-btn:hover:not(:disabled) { background: rgba(255,255,255,0.05); color: var(--ml-text); border-color: rgba(255,255,255,0.16); box-shadow: inset 0 1px 0 rgba(255,255,255,0.02); transform: translateY(-1px); } /* Tabs */ .ml-tabs { display: flex; align-items: flex-end; gap: 6px; padding: 7px 16px 0 16px; margin-bottom: 0; background: linear-gradient(180deg, rgba(255,255,255,0.02) 0%, rgba(255,255,255,0.005) 100%); position: relative; z-index: 2; border-bottom: 1px solid var(--ml-border); } .ml-tab { position: relative; padding: 8px 13px 9px 13px; background: linear-gradient(180deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.015) 100%); border: 1px solid rgba(255,255,255,0.1); border-bottom: none; border-top-left-radius: 11px; border-top-right-radius: 11px; color: var(--ml-text-muted, #888); font-size: 12px; font-weight: 600; cursor: pointer; box-shadow: inset 0 1px 0 rgba(255,255,255,0.03); transform: translateY(4px); opacity: 0.8; transition: transform 0.18s ease, opacity 0.18s ease, color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease; } .ml-tab:hover { color: var(--ml-text-muted, #888); background: linear-gradient(180deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.015) 100%); border-color: rgba(255,255,255,0.14); transform: translateY(2px); opacity: 0.96; } .ml-tab.ml-tab-active { color: var(--ml-text, #eef2f7); background: var(--ml-bg); border-color: rgba(255,255,255,0.16); box-shadow: 0 -8px 18px rgba(0,0,0,0.1), 0 6px 10px rgba(0,0,0,0.08), inset 0 1px 0 rgba(255,255,255,0.03); transform: translateY(1px); opacity: 1; z-index: 3; } .ml-tab.ml-tab-active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 8px; background: var(--ml-bg); border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; } /* Loaded Models Tab */ .ml-loaded-models { padding: 0; } .ml-loaded-models-header { padding: 16px 20px; border-bottom: 1px solid var(--ml-border); } .ml-loaded-models-title { font-size: 15px; font-weight: 600; color: var(--ml-text); margin: 0 0 8px 0; } .ml-loaded-models-subtitle { font-size: 12px; color: var(--ml-text-muted); } .ml-models-list { padding: 12px 20px; display: flex; flex-direction: column; gap: 8px; } .ml-model-chip { display: inline-flex; align-items: center; padding: 6px 12px; background: #3a3a3a; border-radius: 6px; font-family: 'SF Mono', 'Consolas', 'Monaco', monospace; font-size: 12px; color: var(--ml-text); } .ml-model-chip-category { padding: 2px 6px; background: #555; border-radius: 4px; font-size: 10px; color: #aaa; margin-left: 8px; text-transform: uppercase; } .ml-model-chip-strength { padding: 2px 6px; background: #4CAF50; border-radius: 4px; font-size: 10px; color: white; margin-left: 8px; } .model-linker-selected { margin: 8px 0; padding: 10px 12px; background: rgba(78, 161, 255, 0.12); border: 1px solid rgba(78, 161, 255, 0.28); border-radius: 0; color: var(--ml-text); font-size: 12px; } /* Link styling */ .ml-link { color: var(--ml-link-color); text-decoration: none; } .ml-link:hover { text-decoration: underline; } /* Context menu */ .ml-context-menu { position: fixed; background: var(--comfy-menu-bg, #202020); border: 1px solid var(--border-color, #555555); border-radius: 6px; box-shadow: 0 4px 16px rgba(0,0,0,0.5); z-index: var(--ml-z-context-menu); min-width: 160px; overflow: hidden; } .ml-context-menu-item { display: flex; align-items: center; gap: 8px; padding: 8px 12px; font-size: 12px; color: var(--input-text, #e0e0e0); cursor: pointer; transition: background 0.15s ease; } .ml-context-menu-item:hover { background: rgba(255,255,255,0.1); } .ml-context-menu-item-icon { font-size: 14px; width: 20px; text-align: center; } .ml-context-menu-divider { height: 1px; background: var(--border-color, #555555); margin: 4px 0; } /* Model Info Dialog (similar to rgthree's RgthreeLoraInfoDialog) */ .ml-info-dialog-backdrop { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(0, 0, 0, 0.6); z-index: var(--ml-z-tooltip); display: flex; align-items: center; justify-content: center; } .ml-info-dialog { background: var(--comfy-menu-bg, #202020); border: 2px solid var(--border-color, #555555); border-radius: 8px; width: 500px; max-width: 90vw; max-height: 80vh; min-width: 420px; min-height: 320px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 8px 32px rgba(0,0,0,0.5); resize: both; } .ml-info-dialog-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--border-color, #555555); background: rgba(0,0,0,0.2); } .ml-info-dialog-header h3 { margin: 0; font-size: 16px; color: var(--input-text, #e0e0e0); } .ml-info-dialog-close { background: none; border: none; font-size: 24px; color: var(--input-text, #e0e0e0); cursor: pointer; padding: 0; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 4px; } .ml-info-dialog-close:hover { background: rgba(255,255,255,0.1); } .ml-info-dialog-content { padding: 16px 20px; overflow-y: auto; flex: 1; } .ml-info-dialog-loading { text-align: center; color: var(--ml-text-muted, #888); padding: 20px; } .ml-info-section { margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--border-color, #555555); } .ml-info-section-header { font-size: 12px; font-weight: 600; color: var(--ml-text-muted, #888); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 12px; } .ml-info-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; } .ml-info-label { color: var(--ml-text-muted, #888); font-size: 13px; } .ml-info-value { color: var(--input-text, #e0e0e0); font-size: 13px; font-weight: 500; } .ml-info-value.ml-info-active { color: #4CAF50; } .ml-info-value.ml-info-inactive { color: #888; } .ml-info-section-civitai { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } .ml-info-civitai-link { display: flex; flex-direction: column; gap: 8px; } .ml-info-link { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; background: #2196F3; color: white; border-radius: 6px; text-decoration: none; font-size: 13px; } .ml-info-link:hover { background: #1976D2; } .ml-info-loading-small { color: var(--ml-text-muted, #888); font-size: 12px; font-style: italic; } .ml-info-not-found { color: #888; font-size: 12px; } /* Info Area (type/base model tags) */ .ml-info-area { display: flex; gap: 8px; margin-bottom: 16px; } .ml-info-tag { display: inline-flex; align-items: center; padding: 4px 10px; background: rgba(255,255,255,0.1); border-radius: 4px; font-size: 11px; font-weight: 600; color: var(--input-text, #e0e0e0); } .ml-info-tag.-type-lora { background: rgba(33,150,243,0.2); color: #64B5F6; } .ml-info-tag.-type-checkpoint { background: rgba(76,175,80,0.2); color: #81C784; } .ml-info-tag.-type-vae { background: rgba(156,39,176,0.2); color: #BA68C8; } .ml-info-tag.-basemodel-sd1 { background: rgba(244,67,54,0.2); color: #EF9A9A; } .ml-info-tag.-basemodel-sdxl { background: rgba(33,150,243,0.2); color: #64B5F6; } .ml-info-tag.-basemodel-sdxl-turbo { background: rgba(33,150,243,0.2); color: #64B5F6; } .ml-info-tag.-basemodel-flux\.1 { background: rgba(255,152,0,0.2); color: #FFB74D; } .ml-info-tag.-basemodel-flux\.1-d { background: rgba(255,152,0,0.2); color: #FFB74D; } /* Info Table */ .ml-info-table { width: 100%; border-collapse: collapse; margin-bottom: 16px; } .ml-info-table tr { border-bottom: 1px solid rgba(255,255,255,0.05); } .ml-info-table tr:last-child { border-bottom: none; } .ml-info-table td { padding: 8px 4px; font-size: 13px; vertical-align: top; } .ml-info-table td:first-child { color: var(--ml-text-muted, #888); white-space: nowrap; width: 140px; } .ml-info-table td:last-child { color: var(--input-text, #e0e0e0); word-break: break-word; } .ml-info-trained-words-label { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; } .ml-info-trained-words-meta { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; color: var(--ml-text-muted, #888); } .ml-info-trained-words-hint { margin-bottom: 8px; font-size: 11px; color: var(--ml-text-muted, #888); } .ml-info-copy-trained-words { border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.05); color: var(--ml-link-color, #8fc2ff); border-radius: 999px; padding: 2px 10px; font-size: 11px; cursor: pointer; transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease; } .ml-info-copy-trained-words:hover:not(:disabled) { background: rgba(78,161,255,0.14); border-color: rgba(78,161,255,0.28); color: #d6eaff; } .ml-info-copy-trained-words:disabled { opacity: 0.45; cursor: default; } .ml-info-trained-words-list { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; } .ml-info-trained-word { border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.04); color: var(--ml-text); border-radius: 999px; padding: 6px 10px; font-size: 12px; line-height: 1.2; cursor: pointer; transition: transform 0.14s ease, background 0.14s ease, border-color 0.14s ease, box-shadow 0.14s ease; } .ml-info-trained-word:hover { transform: translateY(-1px); background: rgba(255,255,255,0.07); border-color: rgba(255,255,255,0.18); } .ml-info-trained-word.is-selected { background: rgba(78,161,255,0.18); border-color: rgba(78,161,255,0.4); color: #d8ebff; box-shadow: 0 0 0 1px rgba(78,161,255,0.15) inset; } .ml-info-description-wrap { display: flex; flex-direction: column; gap: 8px; } .ml-info-description { line-height: 1.55; color: var(--input-text, #e0e0e0); max-height: 220px; overflow: hidden; position: relative; } .ml-info-description:not(.is-expanded)::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 56px; background: linear-gradient(180deg, rgba(32,32,32,0) 0%, rgba(32,32,32,0.92) 100%); pointer-events: none; } .ml-info-description.is-expanded { max-height: none; overflow: visible; } .ml-info-description p, .ml-info-description ul, .ml-info-description ol, .ml-info-description blockquote, .ml-info-description pre { margin: 0 0 10px 0; } .ml-info-description h1, .ml-info-description h2, .ml-info-description h3, .ml-info-description h4, .ml-info-description h5, .ml-info-description h6 { margin: 14px 0 8px 0; color: var(--ml-text); line-height: 1.3; } .ml-info-description ul, .ml-info-description ol { padding-left: 18px; } .ml-info-description code, .ml-info-description pre { background: rgba(255,255,255,0.05); border-radius: 6px; } .ml-info-description code { padding: 1px 5px; font-family: 'SF Mono', 'Consolas', 'Monaco', monospace; font-size: 12px; } .ml-info-description pre { padding: 10px 12px; overflow-x: auto; white-space: pre-wrap; } .ml-info-description a { color: var(--ml-link-color, #8fc2ff); text-decoration: none; } .ml-info-description a:hover { text-decoration: underline; } .ml-info-description-actions { display: flex; justify-content: flex-end; } .ml-info-description-toggle { border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.05); color: var(--ml-link-color, #8fc2ff); border-radius: 999px; padding: 4px 12px; font-size: 11px; cursor: pointer; transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease; } .ml-info-description-toggle:hover { background: rgba(78,161,255,0.14); border-color: rgba(78,161,255,0.28); color: #d6eaff; } .ml-info-help { display: inline-flex; align-items: center; justify-content: center; width: 14px; height: 14px; background: rgba(255,255,255,0.14); color: var(--ml-text-muted, #b4becb); border-radius: 50%; font-size: 10px; font-weight: 700; cursor: help; margin-left: 4px; vertical-align: middle; border: 1px solid rgba(255,255,255,0.12); user-select: none; } .ml-info-help:hover { background: rgba(78,161,255,0.18); color: #d9ecff; border-color: rgba(78,161,255,0.3); } /* Images Section */ .ml-info-images { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--border-color, #555555); } .ml-info-images-header { font-size: 12px; font-weight: 600; color: var(--ml-text-muted, #888); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 12px; } .ml-info-images-layout { column-count: 3; column-gap: 14px; } .ml-info-image-item { border-radius: 6px; overflow: hidden; background: rgba(0,0,0,0.2); border: 1px solid rgba(255,255,255,0.06); break-inside: avoid; margin-bottom: 14px; } .ml-info-image-item figure { margin: 0; position: relative; display: block; background: rgba(0,0,0,0.3); } .ml-info-image-item img { width: 100%; height: auto; display: block; object-fit: contain; transition: transform 0.24s ease, filter 0.24s ease; } .ml-info-image-item figcaption { position: absolute; inset: auto 0 0 0; max-height: 60%; overflow-y: auto; padding: 10px; font-size: 11px; color: #e9eef5; background: linear-gradient(180deg, rgba(7,10,14,0) 0%, rgba(7,10,14,0.82) 16%, rgba(7,10,14,0.94) 100%); opacity: 0; transform: translateY(10px); transition: opacity 0.2s ease, transform 0.2s ease; pointer-events: none; } .ml-info-image-item figcaption span { display: block; margin-bottom: 4px; line-height: 1.4; } .ml-info-image-item figcaption span label { font-weight: 600; color: #b9c8d8; margin-right: 4px; text-transform: lowercase; } .ml-info-image-link { color: #8fc2ff; text-decoration: none; display: inline-flex; margin-bottom: 6px; pointer-events: auto; font-weight: 700; } .ml-info-image-item:hover img { transform: scale(1.01); filter: brightness(0.82); } .ml-info-image-item:hover figcaption, .ml-info-image-item:focus-within figcaption { opacity: 1; transform: translateY(0); } @media (max-width: 900px) { .ml-info-images-layout { column-count: 2; } } @media (max-width: 640px) { .ml-info-images-layout { column-count: 1; } } /* CivitAI Logo */ .ml-info-civitai-logo { width: 16px; height: 16px; } /* Footer */ .ml-info-dialog-footer { padding: 12px 20px; border-top: 1px solid var(--border-color, #555555); display: flex; justify-content: flex-end; gap: 8px; } .ml-info-dialog-close-btn { padding: 8px 16px; } .ml-info-error { color: #f44336; font-size: 12px; } .ml-options-wrap { max-width: 1120px; margin: 0 auto; padding: 0 0 0 0; height: 100%; } .ml-options-shell { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 0; height: 100%; border: 1px solid rgba(255,255,255,0.08); border-radius: 22px; overflow: hidden; background: #171717; } .ml-options-sidebar { display: flex; flex-direction: column; align-items: stretch; gap: 18px; height: 100%; padding: 18px 14px; background: #242424; border-right: 1px solid rgba(255,255,255,0.08); overflow: hidden; min-width: 0; } .ml-options-sidebar-title { margin: 0; font-size: 17px; font-weight: 700; color: var(--ml-text); } .ml-options-sidebar-group { display: grid; gap: 8px; min-height: 0; align-content: start; flex: 0 0 auto; } .ml-options-sidebar-label { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: rgba(255,255,255,0.45); } .ml-options-nav { display: grid; gap: 6px; align-content: start; grid-auto-rows: min-content; } .ml-options-nav-btn { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; min-height: 48px; padding: 12px 14px; border-radius: 8px; border: 1px solid transparent; background: transparent; color: var(--ml-text-muted); font-size: 14px; font-weight: 600; text-align: left; cursor: pointer; transition: background 0.16s ease, color 0.16s ease; } .ml-options-nav-btn:hover { color: var(--ml-text); background: rgba(255,255,255,0.04); } .ml-options-nav-btn.is-active { color: #ffffff; background: #3a3a40; } .ml-options-nav-meta { font-size: 11px; font-weight: 600; color: rgba(255,255,255,0.42); } .ml-options-nav-btn.is-active .ml-options-nav-meta { color: rgba(255,255,255,0.65); } .ml-options-main { display: grid; gap: 0; min-height: 0; min-width: 0; height: 100%; align-content: start; align-items: start; padding: 18px 26px 0px 26px; background: #171717; overflow-y: auto; overflow-x: hidden; scrollbar-gutter: stable; scrollbar-width: auto; scrollbar-color: rgba(255,255,255,0.34) rgba(255,255,255,0.08); } .ml-options-main::-webkit-scrollbar { width: 12px; } .ml-options-main::-webkit-scrollbar-track { background: rgba(255,255,255,0.06); border-radius: 999px; } .ml-options-main::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.34); border-radius: 999px; border: 2px solid rgba(23,23,23,0.95); } .ml-options-main::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.48); } .ml-options-card { background: transparent; border: none; border-radius: 0; padding: 0; box-shadow: none; align-self: start; } .ml-options-title { margin: 0; font-size: 17px; font-weight: 700; color: var(--ml-text); } .ml-options-section { display: grid; gap: 0; align-content: start; align-items: start; scroll-margin-top: 24px; min-width: 0; } .ml-options-section.is-hidden { display: none; } .ml-options-section-head { display: block; padding: 0 0 10px 0; } .ml-options-section-title { margin: 0; font-size: 20px; font-weight: 700; color: var(--ml-text); } .ml-options-grid { display: grid; grid-template-columns: 1fr; gap: 0; align-content: start; align-items: start; min-width: 0; } .ml-options-stack { display: grid; gap: 0; align-content: start; min-width: 0; } .ml-options-panel { display: grid; gap: 0; align-content: start; padding: 0; border: none; background: transparent; min-width: 0; } .ml-options-panel-title { margin: 0 0 6px 0; font-size: 16px; font-weight: 700; color: var(--ml-text); } .ml-options-field { display: flex; flex-direction: column; gap: 0; align-items: stretch; } .ml-options-label { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 13px; font-weight: 600; color: #d8d8dd; } .ml-options-inline-link { border: none; background: none; font-size: 11px; font-weight: 700; padding: 0; cursor: pointer; text-decoration: none; color: rgba(255,255,255,0.6); } .ml-options-inline-link:hover { color: #ffffff; text-decoration: underline; } .ml-tooltip-badge { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.12); color: rgba(255,255,255,0.7); font-size: 11px; font-weight: 700; background: rgba(255,255,255,0.03); cursor: help; flex: 0 0 auto; } .ml-global-tooltip { position: fixed; min-width: 220px; max-width: min(320px, calc(100vw - 24px)); padding: 9px 11px; border-radius: 10px; background: rgba(34, 34, 38, 0.98); border: 1px solid rgba(255,255,255,0.08); color: var(--ml-text); font-size: 12px; font-weight: 400; line-height: 1.5; white-space: normal; text-align: left; box-shadow: 0 12px 28px rgba(0,0,0,0.32); pointer-events: none; z-index: var(--ml-z-tooltip); } .ml-options-input-row { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(0, 380px) 42px; align-items: center; gap: 10px; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,0.1); min-width: 0; } .ml-options-input-row > .ml-options-label { min-width: 0; padding-right: 8px; } .ml-options-input { width: 100%; min-width: 0; min-height: 42px; padding: 11px 14px; background: #0f1013; color: var(--ml-text); border: 1px solid rgba(255,255,255,0.16); border-radius: 8px; font-size: 13px; outline: none; transition: border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease; } .ml-options-input:focus { background: #0f1013; border-color: rgba(78,161,255,0.45); box-shadow: none; } .ml-options-visibility-btn { width: 42px; min-width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,0.14); border-radius: 8px; background: #0f1013; color: var(--ml-text-muted); cursor: pointer; transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease; } .ml-options-visibility-btn:hover { background: #15171b; color: var(--ml-text); border-color: rgba(255,255,255,0.2); } .ml-options-visibility-btn[aria-pressed="true"] { color: var(--ml-text); border-color: rgba(255,255,255,0.2); background: #15171b; } .ml-options-visibility-btn svg { width: 18px; height: 18px; display: block; } .ml-options-toggle-list { display: grid; gap: 0; } .ml-options-toggle-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,0.1); border-radius: 0; border-top: none; border-left: none; border-right: none; background: transparent; cursor: pointer; transition: background 0.16s ease; min-width: 0; } .ml-options-toggle-row:hover { background: transparent; } .ml-options-toggle-copy { display: grid; gap: 0; min-width: 0; } .ml-options-toggle-title { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 13px; font-weight: 500; color: #d8d8dd; } .ml-options-toggle-control { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; padding-top: 1px; flex: 0 0 auto; margin-left: auto; } .ml-options-switch-input { position: absolute; opacity: 0; pointer-events: none; } .ml-options-switch { position: relative; width: 46px; height: 26px; border-radius: 999px; background: #555560; border: 1px solid rgba(255,255,255,0.06); transition: background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease; } .ml-options-switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 999px; background: #f2f6fb; box-shadow: 0 3px 8px rgba(0,0,0,0.3); transition: transform 0.16s ease; } .ml-options-switch-input:checked + .ml-options-switch { background: #4c97ff; border-color: #4c97ff; box-shadow: none; } .ml-options-switch-input:checked + .ml-options-switch::after { transform: translateX(20px); } .ml-options-number-row { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(72px, 118px); gap: 12px; align-items: center; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,0.1); min-width: 0; } .ml-options-number-copy { display: grid; gap: 0; min-width: 0; } .ml-options-number-row .ml-options-input { width: 100%; min-width: 0; } .ml-options-actions { display: flex; flex-direction: column; align-items: stretch; justify-content: flex-end; margin-top: auto; padding-top: 10px; border-top: 1px solid rgba(255,255,255,0.08); gap: 10px; flex: 0 0 auto; } .ml-options-actions .ml-footer-btn { width: 100%; min-width: 0; } .ml-options-actions .ml-btn.ml-btn-primary.ml-footer-btn { background: #3a3a40; border-color: rgba(255,255,255,0.12); } .ml-options-actions .ml-btn.ml-btn-primary.ml-footer-btn:hover:not(:disabled) { background: #474750; border-color: rgba(255,255,255,0.18); } .ml-options-status { font-size: 12px; color: var(--ml-text-muted); text-align: left; } .ml-options-status.is-dirty { color: #ffd48a; } .ml-options-status.is-saved { color: #9dd8a9; } @media (max-width: 980px) { .ml-options-shell { grid-template-columns: 1fr; border-radius: 16px; } .ml-options-sidebar { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.08); height: auto; } } @media (max-width: 900px) { .ml-options-main { padding: 16px 18px 0px 18px; } .ml-options-input-row { grid-template-columns: minmax(120px, 1fr) minmax(0, 1fr) 42px; gap: 8px; } .ml-options-number-row { grid-template-columns: minmax(120px, 1fr) minmax(64px, 96px); gap: 8px; } .ml-options-toggle-row { gap: 10px; } } @media (max-width: 760px) { .ml-options-input-row { grid-template-columns: 1fr; } .ml-options-input-row > .ml-options-label { padding-right: 0; } .ml-options-visibility-btn { justify-self: start; } .ml-options-toggle-row, .ml-options-number-row { grid-template-columns: 1fr; flex-direction: column; align-items: flex-start; } .ml-options-toggle-control { min-width: 0; margin-left: 0; } .ml-options-number-row { grid-template-columns: 1fr; } } @media (max-width: 640px) { .ml-options-section-head, .ml-options-actions, .ml-options-toggle-row, .ml-options-number-row { grid-template-columns: 1fr; flex-direction: column; align-items: flex-start; } .ml-options-toggle-control { min-width: 0; } .ml-options-number-row { grid-template-columns: 1fr; } .ml-options-input { width: 100%; } } .ml-download-target { margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,0.06); display: grid; gap: 8px; } .ml-download-target-grid { display: grid; grid-template-columns: minmax(120px, 33%) minmax(0, 1fr); grid-template-rows: auto auto; gap: 10px; align-items: start; } .ml-download-target-row { display: grid; gap: 6px; } @media (max-width: 720px) { .ml-download-target-grid { grid-template-columns: 1fr; grid-template-rows: auto; } } .ml-download-target-label { display: flex; align-items: flex-end; font-size: 11px; font-weight: 700; color: var(--ml-text-muted); text-transform: uppercase; letter-spacing: 0.06em; line-height: 1.2; } .ml-download-target-input, .ml-download-target-select { display: block; width: 100%; height: 40px; margin: 3px; padding: 8px 10px; background: rgba(255,255,255,0.04); color: var(--ml-text); border: 1px solid var(--ml-border); border-radius: 10px; font-size: 12px; line-height: 1.2; outline: none; box-sizing: border-box; } .ml-download-target-select { appearance: none; -webkit-appearance: none; -moz-appearance: none; } .ml-download-target-input:focus, .ml-download-target-select:focus { border-color: rgba(114,211,138,0.4); box-shadow: 0 0 0 3px rgba(114,211,138,0.12); } .ml-download-target-wrap { position: relative; display: flex; align-items: stretch; } @media (max-width: 720px) { .ml-download-target-label { min-height: 0; } } .ml-download-target-list { position: absolute; top: calc(100% + 4px); left: 0; right: 0; max-height: 220px; overflow: auto; display: none; z-index: var(--ml-z-notification); background: linear-gradient(180deg, var(--ml-panel-bg-strong) 0%, var(--ml-card-bg) 100%); border: 1px solid var(--ml-border-strong); border-radius: 12px; box-shadow: var(--ml-shadow-elevated); } .ml-download-target-option { padding: 8px 10px; cursor: pointer; border-bottom: 1px solid rgba(255,255,255,0.04); color: var(--ml-text); font-size: 12px; } .ml-download-target-option:last-child { border-bottom: none; } .ml-download-target-option:hover, .ml-download-target-option.is-highlighted { background: rgba(114,211,138,0.12); } .ml-search-source-select option, .ml-download-target-select option { background: var(--ml-panel-bg-strong); color: var(--ml-text); }