Newer
Older
medialib-manager / static / css / main.css.map
{"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"]}