/* Media archive and slopbot views. Scoped to the media-* classes. */ .vk-media-overlay { position: fixed; left: 0; right: 0; top: var(--media-top, 50px); bottom: 0; /* Below the settings slide-over (80); media modals stay above it. */ z-index: 70; display: flex; background: var(--color-bg); } .vk-media-overlay[hidden] { display: none; } .vk-media-panel { display: flex; flex-direction: column; gap: 10px; width: 100%; height: 100%; margin: 0; padding: 14px 18px; overflow: hidden; border-radius: 0; background: var(--color-bg); box-shadow: none; } .vk-media-head { display: flex; align-items: center; gap: 10px; } .vk-media-title { flex: 1; font-weight: 600; } .vk-media-toolbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .vk-media-status { font: 400 11px/1.5 ui-monospace, Menlo, monospace; color: var(--color-neutral-400); white-space: pre-wrap; } .vk-media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; overflow-y: auto; flex: 1; align-content: start; } .vk-media-card { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; aspect-ratio: 1; overflow: hidden; border-radius: var(--radius-sm, 6px); background: var(--color-neutral-900); box-shadow: inset 0 0 0 1px var(--color-neutral-800); color: var(--color-neutral-300); text-decoration: none; } .vk-media-figure { display: flex; flex-direction: column; gap: 4px; margin: 0; min-width: 0; } .vk-media-media { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1; overflow: hidden; border-radius: var(--radius-sm, 6px); background: var(--color-neutral-900); box-shadow: inset 0 0 0 1px var(--color-neutral-800); cursor: pointer; } .vk-media-media img, .vk-media-media video { width: 100%; height: 100%; object-fit: cover; } .vk-media-banner { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 400 10px/1.3 ui-monospace, Menlo, monospace; color: var(--color-neutral-400); } .vk-media-gif-label { position: absolute; top: 4px; left: 6px; font: 600 10px/1 ui-monospace, Menlo, monospace; letter-spacing: 0.08em; color: rgba(255, 255, 255, 0.75); text-shadow: 0 0 3px rgba(0, 0, 0, 0.8); pointer-events: none; } .vk-media-play { position: absolute; top: 4px; right: 6px; font-size: 20px; line-height: 1; color: rgba(255, 255, 255, 0.72); text-shadow: 0 0 3px rgba(0, 0, 0, 0.8); cursor: pointer; } .vk-media-drawer { display: flex; flex-direction: column; gap: 10px; max-height: 46vh; overflow-y: auto; padding: 10px 12px; border-radius: var(--radius-sm, 6px); background: var(--color-neutral-900); box-shadow: inset 0 0 0 1px var(--color-neutral-800); } .vk-media-filter-section { display: flex; flex-direction: column; gap: 6px; } .vk-media-people { display: flex; flex-direction: column; gap: 3px; max-height: 150px; overflow-y: auto; } .vk-media-advanced summary { cursor: pointer; font: 400 11px/1.4 ui-monospace, Menlo, monospace; color: var(--color-neutral-300); } .vk-media-zoom { width: 100%; } .vk-media-load-more { grid-column: 1 / -1; justify-self: center; margin: 10px 0; } .vk-media-prompt { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 40px 0; } .vk-media-load { padding: 10px 22px; font-size: 13px; } .vk-media-meta { position: relative; display: inline-flex; } .vk-media-meta-menu { position: absolute; top: 140%; left: 0; z-index: 5; display: flex; flex-direction: column; gap: 4px; padding: 8px 10px; border-radius: var(--radius-sm, 6px); background: var(--color-bg); box-shadow: inset 0 0 0 1px var(--color-neutral-800); } .vk-media-viewer-box { width: min(1000px, 94vw); height: min(86vh, 860px); } .vk-media-viewer { display: flex; flex: 1; gap: 12px; min-height: 0; } .vk-media-viewer.wide { flex-direction: column; } .vk-media-viewer.vertical { flex-direction: row; } .vk-media-viewer-media { position: relative; display: flex; flex: 1; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 0; } .vk-media-play-big { top: 12px; right: 14px; font-size: 44px; } .vk-media-viewer-media img, .vk-media-viewer-media video { max-width: 100%; max-height: 100%; border-radius: var(--radius-sm, 6px); } .vk-media-viewer-media iframe { width: min(880px, 100%); aspect-ratio: 16 / 9; border: 0; border-radius: var(--radius-sm, 6px); } .vk-media-viewer.vertical .vk-media-viewer-media { max-width: 45%; } .vk-media-viewer-meta { display: flex; flex-direction: column; gap: 4px; overflow-y: auto; font: 400 11px/1.5 ui-monospace, Menlo, monospace; color: var(--color-neutral-300); } .vk-media-viewer.vertical .vk-media-viewer-meta { flex: 1; } .vk-media-meta-key { color: var(--color-neutral-500); } .vk-media-link { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 0; border: none; background: none; color: var(--color-accent-400, #7aa2ff); font: inherit; text-align: left; cursor: pointer; } .vk-media-card img { width: 100%; height: 100%; object-fit: cover; } .vk-media-card-kind { font: 600 10px/1 ui-monospace, Menlo, monospace; letter-spacing: 0.08em; color: var(--color-accent-400, var(--color-neutral-300)); } .vk-media-card-name { max-width: 90%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 400 11px/1 ui-monospace, Menlo, monospace; color: var(--color-neutral-400); } .vk-media-scrapes { display: flex; flex-direction: column; gap: 4px; max-height: 140px; overflow-y: auto; } .vk-media-scrape { display: flex; align-items: center; gap: 8px; font: 400 11px/1.4 ui-monospace, Menlo, monospace; color: var(--color-neutral-400); } .vk-media-scrape button { flex: none; } .vk-info { display: inline-flex; align-items: center; justify-content: center; width: 13px; height: 13px; margin-left: 4px; border-radius: 50%; background: var(--color-neutral-800); color: var(--color-neutral-300); font: 600 9px/1 ui-monospace, Menlo, monospace; cursor: help; } .vk-media-input { width: 90px; padding: 3px 6px; border: none; border-radius: var(--radius-sm, 6px); background: var(--color-neutral-900); color: var(--color-neutral-200); box-shadow: inset 0 0 0 1px var(--color-neutral-800); font: 400 11px/1 ui-monospace, Menlo, monospace; } .vk-media-usage { display: flex; height: 10px; margin-top: 8px; overflow: hidden; border-radius: 5px; background: var(--color-neutral-900); box-shadow: inset 0 0 0 1px var(--color-neutral-800); } .vk-media-usage-seg { height: 100%; } .vk-seg-image { background: #4f8cff; } .vk-seg-gif { background: #8a6cff; } .vk-seg-video { background: #ff7a45; } .vk-seg-audio { background: #2fbf71; } .vk-seg-other { background: #6b7280; } .vk-media-modal { position: fixed; inset: 0; /* Above the settings slide-over (1000): Clean media and other dialogs open from Settings. */ z-index: 1050; display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--color-neutral-900) 70%, transparent); } .vk-media-modal[hidden] { display: none; } .vk-media-modal-box { display: flex; flex-direction: column; gap: 10px; width: min(520px, 92vw); padding: 14px; border-radius: var(--radius-lg, 12px); background: var(--color-bg); box-shadow: inset 0 0 0 1px var(--color-neutral-800); } .vk-media-modal-box.vk-media-wide { width: min(760px, 94vw); height: min(80vh, 720px); } .vk-media-modal-list { max-height: 220px; overflow-y: auto; font: 400 11px/1.5 ui-monospace, Menlo, monospace; color: var(--color-neutral-400); } .vk-media-wide .vk-media-modal-list { max-height: none; flex: 1; } .vk-media-history-row { display: flex; flex-direction: column; gap: 2px; padding: 7px 0; border-bottom: 1px solid var(--color-neutral-900); } .vk-media-tree { display: flex; flex-direction: column; gap: 6px; flex: 1; overflow-y: auto; } .vk-media-tree-head { padding: 6px 8px; border: none; border-radius: var(--radius-sm, 6px); background: var(--color-neutral-900); color: var(--color-neutral-200); font: 500 12px/1.2 inherit; text-align: left; cursor: pointer; } .vk-media-tree-children { display: flex; flex-direction: column; gap: 3px; margin: 4px 0 4px 14px; } .vk-media-channel { display: flex; align-items: center; gap: 6px; } .vk-media-channel-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 400 11px/1.4 ui-monospace, Menlo, monospace; color: var(--color-neutral-300); } @keyframes vk-media-pulse { 0%, 100% { opacity: 0.25; } 50% { opacity: 1; } } .vk-media-pulse { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--color-accent-400, #4f8cff); animation: vk-media-pulse 1.2s ease-in-out infinite; } .vk-media-spacer { flex: 1; } .vk-media-check { display: flex; align-items: center; gap: 6px; font: 400 11px/1.4 ui-monospace, Menlo, monospace; color: var(--color-neutral-300); } .vk-media-dest { width: 100%; } .vk-media-error { color: #ff8080; } .vk-media-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 14px; height: 14px; margin-left: 4px; padding: 0 4px; border-radius: 7px; background: #e5484d; color: #fff; font: 600 9px/1 ui-monospace, Menlo, monospace; } /* Bot tab: backfill jobs, stats, and settings. */ .vk-media-bot { display: flex; flex-direction: column; gap: 12px; flex: 1; min-height: 0; overflow-y: auto; } .vk-media-bot[hidden] { display: none; } .vk-bot-limited { padding: 8px 10px; border-radius: 6px; font: 500 11px/1.4 ui-monospace, Menlo, monospace; color: #ffb0b0; background: color-mix(in srgb, #ff5555 14%, transparent); border: 1px solid color-mix(in srgb, #ff5555 35%, transparent); } .vk-bot-limited[hidden] { display: none; } .vk-bot-section { border: 1px solid var(--color-divider); border-radius: 6px; padding: 8px 10px; background: var(--color-surface); } .vk-bot-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; } .vk-bot-title { font-weight: 600; font-size: 12px; } .vk-bot-actions { display: flex; gap: 6px; } .vk-bot-summary { display: flex; flex-direction: column; gap: 2px; margin-bottom: 8px; } .vk-bot-summary-line { font: 400 11px/1.5 ui-monospace, Menlo, monospace; color: var(--color-neutral-300); } .vk-bot-jobs { display: flex; flex-direction: column; gap: 6px; } .vk-bot-empty { font: 400 11px/1.5 ui-monospace, Menlo, monospace; color: var(--color-neutral-500); } .vk-bot-job { border: 1px solid var(--color-neutral-800); border-radius: 5px; padding: 6px 8px; display: flex; flex-direction: column; gap: 4px; } .vk-bot-job-running { border-color: color-mix(in srgb, var(--color-accent, #4f8cff) 45%, transparent); } .vk-bot-job-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .vk-bot-job-title { flex: 1; font-weight: 600; font-size: 11px; } .vk-bot-job-meta { font: 400 11px/1.4 ui-monospace, Menlo, monospace; color: var(--color-neutral-400); } .vk-bot-state { font: 600 10px/1.4 ui-monospace, Menlo, monospace; text-transform: uppercase; padding: 0 5px; border-radius: 3px; background: var(--color-neutral-800); color: var(--color-neutral-300); } .vk-bot-state-running { background: color-mix(in srgb, var(--color-accent, #4f8cff) 25%, transparent); color: var(--color-accent-300, #9fc1ff); } .vk-bot-state-paused { background: color-mix(in srgb, #ffaa33 20%, transparent); color: #ffc880; } .vk-bot-state-done { background: color-mix(in srgb, #44cc88 20%, transparent); color: #8fe0b8; } .vk-bot-job-member { font: 400 10px/1.5 ui-monospace, Menlo, monospace; color: var(--color-neutral-400); word-break: break-all; } .vk-bot-progress { height: 4px; border-radius: 2px; background: var(--color-neutral-800); overflow: hidden; } .vk-bot-progress-fill { height: 100%; background: var(--color-accent-400, #4f8cff); } .vk-bot-job-actions { display: flex; gap: 6px; } .vk-bot-settings { display: flex; flex-direction: column; gap: 6px; } .vk-bot-group-title { cursor: pointer; font: 600 11px/1.6 ui-monospace, Menlo, monospace; color: var(--color-neutral-300); } .vk-bot-group-body { display: flex; flex-direction: column; gap: 4px; padding: 6px 0 2px 12px; } .vk-bot-field { display: flex; align-items: center; justify-content: space-between; gap: 10px; } .vk-bot-field-label { font: 400 11px/1.4 ui-monospace, Menlo, monospace; color: var(--color-neutral-400); } .vk-bot-save { align-self: flex-start; margin-top: 4px; } .vk-media-limited { color: #ff8080; } .vk-media-done-note { color: color-mix(in srgb, var(--color-neutral-400) 55%, transparent); font-style: italic; } .vk-bot-state-queued { background: color-mix(in srgb, var(--color-neutral-400) 18%, transparent); color: var(--color-neutral-300); } .vk-bot-eta { cursor: help; text-decoration: underline dotted color-mix(in srgb, var(--color-neutral-400) 60%, transparent); } /* Stream buffer: scrollable room while the next page loads. */ .vk-media-buffer { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 8px; overflow: hidden; transition: height 160ms ease-out; } .vk-media-buffer-note { padding: 10px 0; font: 400 11px/1.5 ui-monospace, Menlo, monospace; color: var(--color-neutral-500); } /* Advanced drawer: the "Do not include" group. */ .vk-media-exclude-title { cursor: pointer; font: 600 11px/1.6 ui-monospace, Menlo, monospace; color: var(--color-neutral-300); } .vk-media-exclude-group { margin-left: 12px; } .vk-media-exclude-group summary { cursor: pointer; } .vk-media-small-input { width: 90px; } .vk-chip-strike { text-decoration: line-through; } /* The YouTube title catch-up lane, inside the Bot tab backfill section. */ .vk-bot-lane { border: 1px dashed var(--color-neutral-700); border-radius: 5px; padding: 6px 8px; margin-bottom: 8px; display: flex; flex-direction: column; gap: 4px; } .vk-bot-progress { display: flex; } .vk-bot-progress-cached { background: var(--color-accent-400, #4f8cff); } .vk-bot-progress-pending { background: var(--color-neutral-700); } .vk-bot-progress-failed { background: #c04040; } .vk-bot-history { margin-top: 8px; } .vk-bot-history-title { font: 600 11px/1.6 ui-monospace, Menlo, monospace; color: var(--color-neutral-300); margin-bottom: 2px; } .vk-bot-history-entry { font: 400 10px/1.5 ui-monospace, Menlo, monospace; color: var(--color-neutral-500); } .vk-bot-hint { margin-top: 8px; font: 400 10px/1.5 ui-monospace, Menlo, monospace; color: var(--color-neutral-500); } /* Infinite/page toggle and pager. */ .vk-media-page-controls { display: inline-flex; align-items: center; gap: 6px; } .vk-media-toggle { display: inline-flex; border: 1px solid var(--color-divider); border-radius: 5px; overflow: hidden; } .vk-toggle-half { border: 0; background: var(--color-surface); color: var(--color-neutral-400); font: 500 11px/1.4 ui-monospace, Menlo, monospace; padding: 3px 8px; cursor: pointer; } .vk-toggle-half.vk-toggle-on { background: var(--color-accent-400, #4f8cff); color: #fff; } .vk-media-page-nav { display: inline-flex; align-items: center; gap: 6px; } .vk-media-page-input { width: 58px; } .vk-media-page-end { grid-column: 1 / -1; padding: 10px 0; text-align: center; font: 400 11px/1.5 ui-monospace, Menlo, monospace; color: var(--color-neutral-500); }