{"version":3,"sources":["main.scss","components/media-list.scss","components/errors-center.scss","components/file-history.scss","components/thumbnails.scss"],"names":[],"mappings":"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","file":"main.css","sourcesContent":["// Tokyo Night palette\n:root {\n --tn-bg: #1a1b26;\n --tn-bg-dark: #16161e;\n --tn-bg-card: #1f2335;\n --tn-border: #292e42;\n --tn-fg: #c0caf5;\n --tn-fg-dim: #a9b1d6;\n --tn-muted: #565f89;\n --tn-blue: #7aa2f7;\n --tn-cyan: #7dcfff;\n --tn-purple: #bb9af7;\n --tn-green: #9ece6a;\n --tn-yellow: #e0af68;\n --tn-red: #f7768e;\n}\n\n// Bootstrap muted override\n.text-muted { color: var(--tn-fg-dim) !important; }\n\n// Force line breaks for long unbreakable strings (filenames, paths)\nh1, h2, h3, h4, h5, h6,\n.filename a,\n.filepath,\n.stream-title,\ntd,\n.file a,\n.modal-body strong {\n word-break: break-word;\n overflow-wrap: anywhere;\n}\n\n// Base\n* { box-sizing: border-box; }\n\nbody {\n font-family: 'JetBrains Mono', monospace;\n background-color: var(--tn-bg);\n color: var(--tn-fg);\n font-size: 1rem;\n}\n\na {\n text-decoration: none;\n color: var(--tn-blue);\n &:hover { color: var(--tn-cyan); }\n}\n\n// Headings\nh1, h2, h3, h4, h5, h6 {\n color: var(--tn-blue);\n letter-spacing: 0.04em;\n font-weight: 400;\n}\n\n// Cards\n.card {\n background-color: var(--tn-bg-card);\n border: 1px solid var(--tn-border);\n border-radius: 8px;\n transition: border-color 0.2s, box-shadow 0.2s;\n\n .card-header {\n background-color: var(--tn-bg-dark);\n border-bottom: 1px solid var(--tn-border);\n color: var(--tn-blue);\n letter-spacing: 0.04em;\n }\n\n .card-body { color: var(--tn-fg); }\n}\n\n// Tables\n.table {\n color: var(--tn-fg);\n border-color: var(--tn-border);\n\n thead th {\n color: var(--tn-blue);\n font-weight: 400;\n border-color: var(--tn-border);\n letter-spacing: 0.04em;\n background-color: var(--tn-bg-dark);\n }\n\n td {\n color: var(--tn-fg);\n border-color: var(--tn-border);\n padding: 6px 10px;\n }\n\n &.table-striped > tbody > tr:nth-of-type(odd) > * {\n background-color: rgba(41, 46, 66, 0.4);\n color: var(--tn-fg);\n }\n\n &.table-hover > tbody > tr:hover > * {\n background-color: rgba(122, 162, 247, 0.08);\n color: var(--tn-fg);\n }\n}\n\n// DataTables overrides\n.dataTables_wrapper {\n color: var(--tn-fg);\n\n .dataTables_filter input,\n .dataTables_length select {\n background-color: var(--tn-bg-dark);\n border: 1px solid var(--tn-border);\n color: var(--tn-fg);\n border-radius: 4px;\n padding: 2px 8px;\n font-family: 'JetBrains Mono', monospace;\n outline: none;\n &:focus { border-color: var(--tn-blue); }\n }\n\n .dataTables_info,\n .dataTables_filter label,\n .dataTables_length label { color: var(--tn-muted); }\n\n .dataTables_paginate .paginate_button {\n color: var(--tn-muted) !important;\n border-radius: 4px !important;\n &:hover { background: var(--tn-bg-card) !important; color: var(--tn-blue) !important; border-color: var(--tn-border) !important; }\n &.current { background: var(--tn-bg-card) !important; color: var(--tn-blue) !important; border-color: var(--tn-border) !important; }\n &.disabled { color: var(--tn-border) !important; }\n }\n}\n\n// Buttons\n.btn {\n font-family: 'JetBrains Mono', monospace;\n border-radius: 4px;\n letter-spacing: 0.02em;\n\n &.border-spinner { margin-right: 2px; position: relative; top: 1px; }\n &.inprogress { display: inline-flex; gap: 6px; align-items: center; }\n}\n\n.btn-primary {\n background-color: var(--tn-blue);\n border-color: var(--tn-blue);\n color: var(--tn-bg-dark);\n &:hover { background-color: var(--tn-cyan); border-color: var(--tn-cyan); color: var(--tn-bg-dark); }\n}\n\n.btn-warning {\n background-color: var(--tn-yellow);\n border-color: var(--tn-yellow);\n color: var(--tn-bg-dark);\n &:hover { background-color: #f0c070; border-color: #f0c070; color: var(--tn-bg-dark); }\n}\n\n.btn-success {\n background-color: var(--tn-green);\n border-color: var(--tn-green);\n color: var(--tn-bg-dark);\n &:hover { background-color: #acd87a; border-color: #acd87a; color: var(--tn-bg-dark); }\n}\n\n.btn-danger {\n background-color: var(--tn-red);\n border-color: var(--tn-red);\n color: var(--tn-bg-dark);\n &:hover { background-color: #f98a9e; border-color: #f98a9e; color: var(--tn-bg-dark); }\n}\n\n.btn-outline-secondary {\n border-color: var(--tn-border);\n color: var(--tn-fg-dim);\n background-color: transparent;\n &:hover { background-color: var(--tn-bg-card); border-color: var(--tn-blue); color: var(--tn-blue); box-shadow: 0 0 12px rgba(122,162,247,0.15); }\n}\n\n.btn-outline-primary {\n border-color: var(--tn-blue);\n color: var(--tn-blue);\n background-color: transparent;\n &:hover { background-color: rgba(122,162,247,0.1); color: var(--tn-blue); }\n}\n\n.btn-close {\n filter: invert(1) brightness(0.6);\n &:hover { filter: invert(1) brightness(1); }\n}\n\n// Forms\n.form-select, .form-control {\n background-color: var(--tn-bg-dark);\n border: 1px solid var(--tn-border);\n color: var(--tn-fg);\n font-family: 'JetBrains Mono', monospace;\n border-radius: 4px;\n\n &:focus {\n background-color: var(--tn-bg-dark);\n border-color: var(--tn-blue);\n color: var(--tn-fg);\n box-shadow: 0 0 0 2px rgba(122,162,247,0.15);\n }\n\n option { background-color: var(--tn-bg-card); }\n}\n\n.form-check-input {\n background-color: var(--tn-bg-dark);\n border-color: var(--tn-border);\n &:checked { background-color: var(--tn-blue); border-color: var(--tn-blue); }\n &:focus { box-shadow: 0 0 0 2px rgba(122,162,247,0.15); border-color: var(--tn-blue); }\n}\n\n.form-check-label { color: var(--tn-fg-dim); }\n\n.input-group-text {\n background-color: var(--tn-bg-dark);\n border-color: var(--tn-border);\n color: var(--tn-muted);\n font-family: 'JetBrains Mono', monospace;\n}\n\n// Alerts\n.alert {\n background-color: var(--tn-bg-card);\n border-color: var(--tn-border);\n color: var(--tn-fg);\n\n &.alert-dark {\n background-color: var(--tn-bg-dark);\n border-color: var(--tn-border);\n color: var(--tn-fg-dim);\n }\n}\n\n// Badges\n.badge {\n font-family: 'JetBrains Mono', monospace;\n font-weight: 400;\n\n &.bg-success { background-color: var(--tn-green) !important; color: var(--tn-bg-dark); }\n &.bg-danger { background-color: var(--tn-red) !important; color: var(--tn-bg-dark); }\n &.bg-warning { background-color: var(--tn-yellow) !important; color: var(--tn-bg-dark); }\n &.bg-secondary { background-color: var(--tn-muted) !important; color: var(--tn-fg); }\n &.bg-light { background-color: var(--tn-bg-dark) !important; color: var(--tn-fg) !important; border-color: var(--tn-border) !important; }\n}\n\n// Modal\n.modal-content {\n background-color: var(--tn-bg-card);\n border: 1px solid var(--tn-border);\n border-radius: 8px;\n color: var(--tn-fg);\n}\n\n.modal-header {\n background-color: var(--tn-bg-dark);\n border-bottom: 1px solid var(--tn-border);\n color: var(--tn-blue);\n}\n\n.modal-footer {\n background-color: var(--tn-bg-dark);\n border-top: 1px solid var(--tn-border);\n color: var(--tn-muted);\n}\n\n// List group\n.list-group-item {\n background-color: var(--tn-bg-card);\n border-color: var(--tn-border);\n color: var(--tn-fg);\n\n &.task {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n\n .file {\n display: flex;\n flex-direction: row;\n gap: 8px;\n align-items: center;\n min-width: 0;\n\n a { min-width: 0; }\n }\n }\n}\n\n// Progress bar\n.progress {\n background-color: var(--tn-bg-dark);\n border: 1px solid var(--tn-border);\n\n .progress-bar {\n background-color: var(--tn-blue);\n }\n}\n\n// Spinners\n.loader {\n width: 48px;\n height: 48px;\n border: 5px solid var(--tn-border);\n border-bottom-color: var(--tn-blue);\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: rotation 1s linear infinite;\n}\n\n@keyframes rotation {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n.loading-spinner-container {\n width: 100%;\n margin: 50px auto;\n text-align: center;\n}\n\n.sm-spinner { width: 18px; height: 18px; border-width: 3px; }\n\n// Nav brand\n.nav-brand {\n display: flex;\n align-items: center;\n line-height: 1;\n}\n\n.nav-icon-btn {\n background-color: var(--tn-bg-card);\n border: 1px solid var(--tn-border);\n color: var(--tn-muted);\n border-radius: 50% !important;\n width: 52px;\n height: 52px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: border-color 0.2s, box-shadow 0.2s, color 0.2s;\n &:hover {\n border-color: var(--tn-blue);\n color: var(--tn-blue);\n box-shadow: 0 0 12px rgba(122,162,247,0.25);\n }\n}\n\n// Header nav button\n.open-transcoding-tasks {\n background-color: var(--tn-bg-card);\n border: 1px solid var(--tn-border);\n color: var(--tn-muted);\n border-radius: 50% !important;\n width: 52px;\n height: 52px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n transition: border-color 0.2s, box-shadow 0.2s, color 0.2s;\n\n &:hover {\n border-color: var(--tn-blue);\n color: var(--tn-blue);\n box-shadow: 0 0 12px rgba(122,162,247,0.25);\n }\n\n .total-tasks:not(:empty) {\n position: absolute;\n top: -6px;\n right: -6px;\n background-color: var(--tn-yellow);\n color: var(--tn-bg-dark);\n font-size: 0.75rem;\n font-weight: 700;\n min-width: 20px;\n height: 20px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 5px;\n line-height: 1;\n }\n}\n\n// Transcoding form\n.transcodate-form-container {\n margin-top: 20px;\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n gap: 10px;\n\n > .form-control {\n display: flex;\n flex-wrap: nowrap;\n flex-direction: row;\n justify-content: flex-start;\n gap: 10px;\n align-items: center;\n background: transparent;\n border: none;\n padding: 0;\n\n > strong {\n white-space: nowrap;\n display: inline-block;\n width: 110px;\n color: var(--tn-muted);\n font-weight: 400;\n font-size: 0.875rem;\n letter-spacing: 0.02em;\n }\n }\n\n .arrow-to { color: var(--tn-muted); }\n\n .btns { width: 100%; }\n}\n\n.crf-range { margin-left: 5px; color: var(--tn-muted); }\n\n#progress {\n margin-top: 20px;\n margin-bottom: 0;\n font-size: 0.85rem;\n color: var(--tn-fg-dim);\n}\n\n// Modal empty state\n.empty-tasks-message { color: var(--tn-fg-dim); }\n\n// Media list file details\n.filename a {\n color: var(--tn-fg);\n font-weight: 400;\n &:hover { color: var(--tn-blue); }\n}\n\n.filepath {\n font-size: 0.78rem;\n color: var(--tn-muted);\n margin-bottom: 6px;\n}\n\n.filedetails {\n display: flex;\n flex-direction: column;\n gap: 3px;\n}\n\n.streams-section {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.stream-label {\n font-size: 0.7rem;\n color: var(--tn-muted);\n letter-spacing: 0.06em;\n text-transform: uppercase;\n min-width: 36px;\n padding-top: 3px;\n flex-shrink: 0;\n}\n\n.stream-rows {\n display: flex;\n flex-direction: column;\n gap: 3px;\n}\n\n.stream-row {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 4px;\n}\n\n.stream-bitrate {\n font-size: 0.75rem;\n color: var(--tn-muted);\n}\n\n.stream-title {\n font-size: 0.75rem;\n color: var(--tn-fg-dim);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 380px;\n}\n\n// Language badges\n.lang-badge {\n font-size: 0.68rem;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n min-width: 30px;\n text-align: center;\n}\n.lang-ukr { background-color: var(--tn-cyan) !important; color: var(--tn-bg-dark); }\n.lang-eng { background-color: var(--tn-blue) !important; color: var(--tn-bg-dark); }\n.lang-rus { background-color: var(--tn-red) !important; color: var(--tn-bg-dark); }\n.lang-jpn { background-color: var(--tn-purple) !important; color: var(--tn-bg-dark); }\n.lang-deu,\n.lang-fra,\n.lang-spa,\n.lang-ita,\n.lang-pol { background-color: var(--tn-green) !important; color: var(--tn-bg-dark); }\n.lang-und { background-color: var(--tn-muted) !important; color: var(--tn-fg); }\n\n// Footer stats\n.footer {\n border-top: 1px solid var(--tn-border);\n padding: 16px 0 20px;\n}\n\n.footer-stats {\n display: flex;\n align-items: center;\n gap: 20px;\n flex-wrap: wrap;\n}\n\n.footer-stat {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.footer-stat-icon {\n color: var(--tn-muted);\n font-size: 0.95rem;\n}\n\n.footer-stat-value {\n color: var(--tn-blue);\n font-size: 0.9rem;\n letter-spacing: 0.02em;\n}\n\n.footer-stat-label {\n color: var(--tn-muted);\n font-size: 0.78rem;\n letter-spacing: 0.03em;\n}\n\n.footer-stat-divider {\n width: 1px;\n height: 16px;\n background-color: var(--tn-border);\n}\n\n// Nav logo\n.nav-logo {\n height: 32px;\n width: auto;\n display: block;\n transition: opacity 0.2s, filter 0.2s;\n filter: brightness(0.85);\n\n .nav-brand:hover & {\n opacity: 1;\n filter: brightness(1) drop-shadow(0 0 8px rgba(122, 162, 247, 0.5));\n }\n}\n\n// Auth logo\n.auth-logo {\n max-height: 100px;\n width: auto;\n display: block;\n margin: 0 auto;\n}\n\n// Nav user info\n.nav-user-divider {\n width: 1px;\n height: 24px;\n background-color: var(--tn-border);\n margin: 0 4px;\n flex-shrink: 0;\n}\n\n.nav-username {\n color: var(--tn-muted);\n font-size: 0.78rem;\n letter-spacing: 0.04em;\n white-space: nowrap;\n line-height: 1;\n}\n\n// Auth pages\n.auth-page {\n min-height: 100vh;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 2rem 1rem;\n}\n\n.auth-card {\n background-color: var(--tn-bg-card);\n border: 1px solid var(--tn-border);\n border-radius: 10px;\n padding: 2.5rem 2rem;\n width: 100%;\n max-width: 380px;\n}\n\n.auth-logo-space {\n height: 100px;\n margin-bottom: 1.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.auth-title {\n color: var(--tn-blue);\n font-size: 1.15rem;\n letter-spacing: 0.06em;\n font-weight: 400;\n margin-bottom: 0.25rem;\n text-align: center;\n}\n\n.auth-subtitle {\n color: var(--tn-muted);\n font-size: 0.78rem;\n text-align: center;\n margin-bottom: 1.5rem;\n letter-spacing: 0.03em;\n}\n\n.auth-field {\n margin-bottom: 1.1rem;\n\n label {\n display: block;\n color: var(--tn-muted);\n font-size: 0.78rem;\n letter-spacing: 0.04em;\n margin-bottom: 0.3rem;\n }\n}\n\n.auth-input-wrap {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.auth-input {\n width: 100%;\n background-color: var(--tn-bg-dark);\n border: 1px solid var(--tn-border);\n border-radius: 6px;\n color: var(--tn-fg);\n font-family: 'JetBrains Mono', monospace;\n font-size: 0.9rem;\n padding: 0.55rem 2.4rem 0.55rem 0.75rem;\n outline: none;\n transition: border-color 0.2s;\n\n &:focus {\n border-color: var(--tn-blue);\n }\n\n // standalone input (no wrap)\n &:not(.auth-input-wrap .auth-input) {\n padding-right: 0.75rem;\n }\n}\n\n.auth-eye-btn {\n position: absolute;\n right: 0.55rem;\n background: none;\n border: none;\n color: var(--tn-muted);\n cursor: pointer;\n padding: 0;\n line-height: 1;\n font-size: 1rem;\n\n &:hover { color: var(--tn-fg-dim); }\n}\n\n.auth-btn {\n width: 100%;\n margin-top: 0.5rem;\n padding: 0.6rem;\n background-color: var(--tn-blue);\n color: var(--tn-bg-dark);\n border: none;\n border-radius: 6px;\n font-family: 'JetBrains Mono', monospace;\n font-size: 0.9rem;\n letter-spacing: 0.04em;\n cursor: pointer;\n transition: background-color 0.2s;\n\n &:hover { background-color: var(--tn-cyan); }\n &:disabled { opacity: 0.5; cursor: default; }\n}\n\n.auth-error {\n background-color: rgba(247, 118, 142, 0.12);\n border: 1px solid var(--tn-red);\n border-radius: 6px;\n color: var(--tn-red);\n font-size: 0.82rem;\n padding: 0.5rem 0.75rem;\n margin-bottom: 1rem;\n}\n\n.auth-success {\n background-color: rgba(158, 206, 106, 0.12);\n border: 1px solid var(--tn-green);\n border-radius: 6px;\n color: var(--tn-green);\n font-size: 0.82rem;\n padding: 0.5rem 0.75rem;\n margin-bottom: 1rem;\n}\n\n// Scanning message\n.scaning-process-container {\n font-size: 0.85rem;\n color: var(--tn-muted);\n background-color: var(--tn-bg-dark);\n border-color: var(--tn-border);\n word-break: break-all;\n overflow-wrap: anywhere;\n}\n\n// ── Notification bell badge ────────────────────────────────────────────────────\n.open-notifications {\n position: relative;\n\n .notif-badge:not(:empty) {\n position: absolute;\n top: -6px;\n right: -6px;\n background-color: var(--tn-red);\n color: var(--tn-bg-dark);\n font-size: 0.7rem;\n font-weight: 700;\n min-width: 18px;\n height: 18px;\n border-radius: 9px;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 4px;\n line-height: 1;\n }\n}\n\n// ── Notification toast ─────────────────────────────────────────────────────────\n.notif-toast {\n background-color: var(--tn-bg-card);\n border: 1px solid var(--tn-border);\n border-left: 3px solid var(--notif-color, var(--tn-blue));\n border-radius: 6px;\n padding: 10px 12px;\n margin-bottom: 8px;\n opacity: 0;\n transform: translateX(16px);\n transition: opacity 0.25s, transform 0.25s;\n max-width: 360px;\n font-size: 0.83rem;\n\n &.show {\n opacity: 1;\n transform: translateX(0);\n }\n\n .notif-toast-header {\n display: flex;\n align-items: center;\n gap: 7px;\n }\n\n .notif-toast-icon {\n color: var(--notif-color, var(--tn-blue));\n flex-shrink: 0;\n font-size: 0.9rem;\n }\n\n .notif-toast-title {\n color: var(--tn-fg);\n font-weight: 400;\n letter-spacing: 0.02em;\n flex-grow: 1;\n }\n\n .notif-toast-msg {\n margin-top: 6px;\n color: var(--tn-muted);\n font-size: 0.78rem;\n max-height: 80px;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n word-break: break-all;\n overflow-wrap: anywhere;\n }\n}\n\n// ── Transcoding tasks offcanvas ────────────────────────────────────────────────\n.transcoding-offcanvas {\n background-color: var(--tn-bg-card);\n border-left: 1px solid var(--tn-border);\n width: 480px !important;\n font-family: 'JetBrains Mono', monospace;\n\n .offcanvas-header {\n background-color: var(--tn-bg-dark);\n border-bottom: 1px solid var(--tn-border);\n padding: 16px 20px;\n\n .offcanvas-title {\n color: var(--tn-blue);\n font-size: 0.95rem;\n letter-spacing: 0.04em;\n font-weight: 400;\n }\n }\n\n .transcoding-toolbar {\n border-bottom: 1px solid var(--tn-border);\n background-color: var(--tn-bg-dark);\n flex-shrink: 0;\n min-height: 40px;\n }\n\n .transcoding-toolbar-count {\n color: var(--tn-muted);\n font-size: 0.8rem;\n letter-spacing: 0.03em;\n\n .total-tasks { color: var(--tn-yellow); }\n }\n\n .transcoding-tasks-container {\n .list-group-item.task {\n background-color: transparent;\n border-color: rgba(41, 46, 66, 0.6);\n padding: 14px 20px;\n }\n }\n}\n\n// ── Notification offcanvas ─────────────────────────────────────────────────────\n.notifications-offcanvas {\n background-color: var(--tn-bg-card);\n border-left: 1px solid var(--tn-border);\n width: 480px !important;\n font-family: 'JetBrains Mono', monospace;\n\n .offcanvas-header {\n background-color: var(--tn-bg-dark);\n border-bottom: 1px solid var(--tn-border);\n padding: 16px 20px;\n\n .offcanvas-title {\n color: var(--tn-blue);\n font-size: 0.95rem;\n letter-spacing: 0.04em;\n font-weight: 400;\n }\n }\n\n .notif-toolbar {\n border-bottom: 1px solid var(--tn-border);\n background-color: var(--tn-bg-dark);\n flex-shrink: 0;\n padding: 8px 16px;\n\n .btn {\n font-size: 0.8rem;\n padding: 4px 12px;\n }\n }\n}\n\n.notif-list {\n padding: 8px 0;\n}\n\n.notif-item {\n padding: 14px 20px;\n border-bottom: 1px solid rgba(41, 46, 66, 0.5);\n transition: background-color 0.15s, opacity 0.25s;\n border-left: 3px solid transparent;\n\n &.is-unread {\n border-left-color: var(--notif-color, var(--tn-blue));\n background-color: rgba(122, 162, 247, 0.04);\n }\n\n &.removing { opacity: 0; }\n\n &:hover { background-color: rgba(122, 162, 247, 0.05); }\n\n .notif-item-header {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n }\n\n .notif-item-icon {\n color: var(--notif-color, var(--tn-blue));\n font-size: 1rem;\n flex-shrink: 0;\n margin-top: 2px;\n }\n\n .notif-item-meta {\n flex-grow: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 3px;\n }\n\n .notif-item-title {\n color: var(--tn-fg);\n font-size: 0.95rem;\n letter-spacing: 0.02em;\n word-break: break-word;\n }\n\n .notif-item-time {\n color: var(--tn-muted);\n font-size: 0.8rem;\n }\n\n .notif-delete-btn {\n background: none;\n border: none;\n color: var(--tn-muted);\n padding: 0 2px;\n line-height: 1;\n cursor: pointer;\n flex-shrink: 0;\n font-size: 1.1rem;\n opacity: 0;\n transition: color 0.15s, opacity 0.15s;\n\n &:hover { color: var(--tn-red); }\n }\n\n &:hover .notif-delete-btn { opacity: 1; }\n\n .notif-item-msg {\n margin-top: 8px;\n color: var(--tn-muted);\n font-size: 0.86rem;\n word-break: break-all;\n overflow-wrap: anywhere;\n line-height: 1.55;\n }\n\n .notif-expand-btn {\n background: none;\n border: none;\n color: var(--tn-blue);\n font-family: 'JetBrains Mono', monospace;\n font-size: 0.76rem;\n cursor: pointer;\n padding: 3px 0;\n margin-top: 3px;\n\n &:hover { color: var(--tn-cyan); }\n }\n}\n",".component.media-list {\n\t.do-rescan-media-lib {\n\t\t.spinner-border {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&.inprogress {\n\t\t\t.spinner-border {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t}\n}",".component.errors-center {\n\tposition: fixed;\n\tbottom: 0;\n\twidth: 100%;\n\tmax-width: 500px;\n\tpadding: 0 20px;\n\tbox-sizing: border-box;\n\tleft: calc(50% - 250px);\n\tz-index: 100;\n}","#file-history {\n .history-item {\n padding: 16px 20px;\n\n .params-table {\n margin-top: 10px;\n\n td {\n padding: 4px 8px;\n font-size: .9em;\n }\n\n td:first-child {\n width: 130px;\n color: #666;\n }\n }\n\n .snapshot-before {\n margin-top: 12px;\n\n small {\n font-size: .85em;\n }\n\n .badge {\n font-size: .85em;\n padding: 5px 10px;\n }\n }\n\n & > .d-flex {\n .fw-semibold {\n font-size: 1.05em;\n }\n\n small {\n font-size: .9em;\n }\n }\n\n & > div:last-child small {\n font-size: .9em;\n }\n }\n}\n",".thumbnails-row {\n display: flex;\n gap: 8px;\n\n .thumb-placeholder {\n flex: 1;\n height: 90px;\n background-color: var(--tn-bg-card);\n border: 1px solid var(--tn-border);\n border-radius: 6px;\n animation: thumb-pulse 1.5s ease-in-out infinite;\n }\n\n .thumb-img {\n flex: 1;\n height: 90px;\n object-fit: cover;\n border-radius: 6px;\n border: 1px solid var(--tn-border);\n cursor: pointer;\n transition: border-color 0.2s, box-shadow 0.2s, transform 0.15s;\n\n &:hover {\n border-color: var(--tn-blue);\n box-shadow: 0 0 14px rgba(122, 162, 247, 0.25);\n transform: translateY(-2px);\n }\n }\n}\n\n@keyframes thumb-pulse {\n 0%, 100% { opacity: 0.4; }\n 50% { opacity: 0.7; }\n}\n\n#thumb-lightbox .modal-content {\n background-color: var(--tn-bg-dark);\n border-color: var(--tn-border);\n}\n"]}