/* admin.css */ .admin-wrapper { background-color: #030303; color: #e2e8f0; font-family: 'Inter', sans-serif; position: relative; padding-bottom: 6rem; flex: 1; } /* Background effects */ .admin-bg-effects { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; } .admin-bg-blob-1 { position: absolute; top: -10%; left: -10%; width: 40%; height: 40%; border-radius: 50%; background-color: rgba(49, 46, 129, 0.2); filter: blur(120px); mix-blend-mode: screen; } .admin-bg-blob-2 { position: absolute; bottom: -10%; right: -5%; width: 50%; height: 50%; border-radius: 50%; background-color: rgba(112, 26, 117, 0.1); filter: blur(150px); mix-blend-mode: screen; } .admin-bg-blob-3 { position: absolute; top: 20%; right: 10%; width: 30%; height: 30%; border-radius: 50%; background-color: rgba(19, 78, 74, 0.1); filter: blur(100px); mix-blend-mode: screen; } .admin-bg-noise { position: absolute; inset: 0; background-image: url('https://grainy-gradients.vercel.app/noise.svg'); opacity: 0.03; mix-blend-mode: overlay; } .admin-container { position: relative; z-index: 10; padding: 1.5rem; width: 100%; max-width: 1400px; margin: 0 auto; display: flex; flex-direction: column; gap: 2.5rem; } @media (min-width: 768px) { .admin-container { padding: 2.5rem; } } /* Header */ .admin-header { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 1.5rem; padding-bottom: 2rem; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } @media (min-width: 768px) { .admin-header { flex-direction: row; align-items: flex-end; } } .admin-system-badge { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0.75rem; border-radius: 9999px; background-color: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); backdrop-filter: blur(12px); font-size: 0.75rem; font-weight: 500; color: #cbd5e1; letter-spacing: 0.05em; } .ping-dot { position: relative; display: flex; height: 8px; width: 8px; } .ping-dot-animate { position: absolute; display: inline-flex; height: 100%; width: 100%; border-radius: 50%; background-color: #34d399; opacity: 0.75; animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite; } .ping-dot-static { position: relative; display: inline-flex; border-radius: 50%; height: 8px; width: 8px; background-color: #10b981; } .admin-title { font-size: 2.25rem; font-weight: 700; letter-spacing: -0.025em; color: #ffffff; display: flex; align-items: center; gap: 1rem; margin: 0.5rem 0; } @media (min-width: 768px) { .admin-title { font-size: 3rem; } } .admin-title-highlight { color: transparent; background-clip: text; -webkit-background-clip: text; background-image: linear-gradient(to right, #818cf8, #2dd4bf); } .admin-subtitle { color: #94a3b8; font-size: 0.875rem; max-width: 36rem; font-weight: 300; margin: 0; } @media (min-width: 768px) { .admin-subtitle { font-size: 1rem; } } /* Tabs */ .admin-tabs-container { display: flex; padding: 0.375rem; background-color: rgba(0, 0, 0, 0.4); backdrop-filter: blur(24px); border-radius: 1rem; border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); } .admin-tab-btn { display: flex; align-items: center; gap: 0.625rem; padding: 0.625rem 1.25rem; border-radius: 0.75rem; font-size: 0.875rem; font-weight: 600; transition: all 0.3s ease; position: relative; background: transparent; border: none; cursor: pointer; color: #64748b; } .admin-tab-btn:hover { color: #cbd5e1; } .admin-tab-btn.active { color: #ffffff; } .admin-tab-active-bg { position: absolute; inset: 0; background-color: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 0.75rem; z-index: 0; } .admin-tab-btn > span { position: relative; z-index: 10; } /* Glass Card */ .admin-glass-card { background-color: rgba(0, 0, 0, 0.4); backdrop-filter: blur(40px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 1.5rem; padding: 1.75rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); position: relative; } .admin-glass-card-no-pad { padding: 0; overflow: hidden; } .admin-card-hover-bg { position: absolute; inset: -4px; opacity: 0; transition: opacity 0.5s ease; z-index: 0; border-radius: inherit; } .admin-glass-card:hover .admin-card-hover-bg { opacity: 1; } .admin-glass-card-content { position: relative; z-index: 10; } /* Grid Layouts */ .admin-grid-3 { display: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 1.5rem; } @media (min-width: 768px) { .admin-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } } .admin-grid-2 { display: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 2rem; } @media (min-width: 1024px) { .admin-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } } .admin-grid-1-2 { display: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 2rem; } @media (min-width: 1024px) { .admin-grid-1-2 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .admin-col-span-1 { grid-column: span 1 / span 1; } .admin-col-span-2 { grid-column: span 2 / span 2; } } /* Stat Cards */ .admin-stat-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.5rem; } .admin-stat-icon { padding: 0.875rem; background-color: rgba(255, 255, 255, 0.05); border-radius: 1rem; border: 1px solid rgba(255, 255, 255, 0.1); } .admin-stat-trend { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.05em; color: rgba(255, 255, 255, 0.5); background-color: rgba(255, 255, 255, 0.05); padding: 0.25rem 0.75rem; border-radius: 9999px; border: 1px solid rgba(255, 255, 255, 0.05); text-transform: uppercase; } .admin-stat-value { font-size: 2.25rem; font-weight: 900; color: #ffffff; letter-spacing: -0.025em; margin-bottom: 0.25rem; } .admin-stat-title { font-size: 0.875rem; color: #94a3b8; font-weight: 500; letter-spacing: 0.025em; } /* Chart sections */ .admin-card-header { display: flex; items-align: center; gap: 0.5rem; margin-bottom: 1.5rem; } .admin-card-title { color: #ffffff; font-weight: 600; letter-spacing: 0.025em; text-transform: uppercase; font-size: 0.875rem; margin: 0; display: flex; align-items: center; gap: 0.5rem; } .admin-chart-container { height: 250px; width: 100%; } /* Pipeline & Logs */ .admin-panel-header { padding: 1.25rem; border-bottom: 1px solid rgba(255, 255, 255, 0.05); display: flex; justify-content: space-between; align-items: center; background-color: rgba(255, 255, 255, 0.02); } .admin-badge { display: flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0.5rem; border-radius: 0.375rem; } .admin-badge-amber { background-color: rgba(245, 158, 11, 0.1); border: 1px solid rgba(245, 158, 11, 0.2); color: #fcd34d; } .admin-pipeline-list { padding: 1rem; flex: 1; overflow-y: auto; max-height: 450px; display: flex; flex-direction: column; gap: 1rem; } .admin-task-item { padding: 1rem; background-color: rgba(0, 0, 0, 0.4); border-radius: 0.75rem; border: 1px solid rgba(255, 255, 255, 0.05); transition: colors 0.3s ease; } .admin-task-item:hover { border-color: rgba(255, 255, 255, 0.1); } .admin-task-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.75rem; } .admin-task-id { font-size: 0.6875rem; font-family: monospace; color: #94a3b8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .admin-task-item:hover .admin-task-id { color: #cbd5e1; } .admin-task-users { padding: 0.25rem 0.5rem; background-color: rgba(99, 102, 241, 0.2); color: #a5b4fc; font-size: 0.625rem; font-weight: 700; border-radius: 0.25rem; box-shadow: 0 0 10px -2px rgba(99, 102, 241, 0.5); border: 1px solid rgba(99, 102, 241, 0.3); } .admin-task-progress { width: 100%; background-color: rgba(255, 255, 255, 0.05); border-radius: 9999px; height: 6px; overflow: hidden; box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06); position: relative; } .admin-task-progress-bar { position: absolute; inset: 0; background-image: linear-gradient(to right, #6366f1, #a855f7, #6366f1); background-size: 200% 100%; animation: gradient-move 2s linear infinite; width: 100%; } @keyframes gradient-move { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } } .admin-empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; text-align: center; padding: 4rem 0; opacity: 0.5; } /* Table */ .admin-table-container { overflow-x: auto; } .admin-table { width: 100%; font-size: 0.875rem; text-align: left; border-collapse: collapse; } .admin-table th { padding: 1rem 1.5rem; color: #94a3b8; font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; border-bottom: 1px solid rgba(255, 255, 255, 0.05); background-color: rgba(0, 0, 0, 0.2); } .admin-table td { padding: 1rem 1.5rem; } .admin-table tr { border-bottom: 1px solid rgba(255, 255, 255, 0.05); transition: background-color 0.2s ease; } .admin-table tr:hover { background-color: rgba(255, 255, 255, 0.02); } .admin-status-badge { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0.625rem; border-radius: 0.375rem; font-size: 0.75rem; font-weight: 600; } .admin-status-complete { background-color: rgba(16, 185, 129, 0.1); color: #34d399; border: 1px solid rgba(16, 185, 129, 0.2); } .admin-status-processing { background-color: rgba(245, 158, 11, 0.1); color: #fbbf24; border: 1px solid rgba(245, 158, 11, 0.2); } .admin-status-verified { background-color: rgba(168, 85, 247, 0.1); color: #c084fc; border: 1px solid rgba(168, 85, 247, 0.2); } .admin-score-box { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; padding: 0.25rem 0.5rem; border-radius: 0.25rem; border: 1px solid; font-size: 0.875rem; font-weight: 700; } .admin-score-high { background-color: rgba(16, 185, 129, 0.1); color: #34d399; border-color: rgba(16, 185, 129, 0.3); } .admin-score-med { background-color: rgba(245, 158, 11, 0.1); color: #fbbf24; border-color: rgba(245, 158, 11, 0.3); } .admin-score-low { background-color: rgba(244, 63, 94, 0.1); color: #fb7185; border-color: rgba(244, 63, 94, 0.3); } /* Telemetry Terminal */ .admin-terminal-window { border-radius: 1rem; border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); display: flex; flex-direction: column; height: 75vh; min-height: 600px; background-color: #0a0a0c; backdrop-filter: blur(64px); overflow: hidden; position: relative; } .admin-terminal-gradient { position: absolute; inset: 0; background-image: linear-gradient(to bottom, rgba(99, 102, 241, 0.05), transparent); pointer-events: none; } .admin-terminal-header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.5rem; border-bottom: 1px solid rgba(255, 255, 255, 0.05); background-color: rgba(255, 255, 255, 0.02); position: relative; z-index: 10; flex-wrap: wrap; gap: 1rem; } .admin-terminal-controls { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; } .admin-input-group { position: relative; } .admin-input-icon { position: absolute; left: 0.75rem; top: 50%; transform: translateY(-50%); color: #64748b; } .admin-input { background-color: rgba(0, 0, 0, 0.5); border: 1px solid rgba(255, 255, 255, 0.1); color: #e2e8f0; font-size: 0.75rem; border-radius: 0.5rem; padding: 0.5rem 1rem 0.5rem 2.25rem; font-family: monospace; width: 14rem; transition: all 0.2s ease; } .admin-input:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 1px #6366f1; } .admin-filter-group { display: flex; background-color: rgba(0, 0, 0, 0.5); border-radius: 0.5rem; border: 1px solid rgba(255, 255, 255, 0.1); padding: 0.25rem; } .admin-filter-btn { padding: 0.375rem 0.75rem; font-size: 0.625rem; font-weight: 700; letter-spacing: 0.05em; border-radius: 0.375rem; transition: all 0.2s ease; font-family: monospace; text-transform: uppercase; background: transparent; border: none; cursor: pointer; color: #94a3b8; } .admin-filter-btn:hover:not(.active) { background-color: rgba(255, 255, 255, 0.05); } .admin-filter-btn.active.info { color: #38bdf8; background-color: rgba(14, 165, 233, 0.1); } .admin-filter-btn.active.warning { color: #fbbf24; background-color: rgba(245, 158, 11, 0.1); } .admin-filter-btn.active.error { color: #fb7185; background-color: rgba(244, 63, 94, 0.1); } .admin-filter-btn.active.debug { color: #e2e8f0; background-color: #334155; } .admin-icon-btn { padding: 0.5rem; background-color: rgba(0, 0, 0, 0.5); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 0.5rem; color: #94a3b8; cursor: pointer; transition: all 0.2s ease; } .admin-icon-btn:hover { color: #ffffff; border-color: rgba(255, 255, 255, 0.2); } .admin-action-btn { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; border-radius: 0.5rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; font-family: monospace; cursor: pointer; transition: all 0.2s ease; border: 1px solid transparent; } .admin-btn-streaming { background-color: rgba(16, 185, 129, 0.1); color: #34d399; border-color: rgba(16, 185, 129, 0.2); box-shadow: 0 0 15px -3px rgba(16, 185, 129, 0.3); } .admin-btn-halted { background-color: rgba(245, 158, 11, 0.1); color: #fbbf24; border-color: rgba(245, 158, 11, 0.2); } .admin-terminal-body { flex: 1; padding: 1.5rem; font-family: monospace; font-size: 0.8125rem; overflow-y: auto; line-height: 1.6; position: relative; z-index: 10; } .admin-log-row { display: flex; flex-direction: column; gap: 1rem; padding: 0.375rem 0.75rem; border-radius: 0.5rem; border: 1px solid transparent; transition: background-color 0.2s ease; } @media (min-width: 768px) { .admin-log-row { flex-direction: row; align-items: flex-start; } } .admin-log-row:hover { background-color: rgba(255, 255, 255, 0.03); border-color: rgba(255, 255, 255, 0.05); } .admin-log-meta { display: flex; align-items: center; gap: 0.75rem; flex-shrink: 0; width: 9rem; } .admin-log-time { color: rgba(100, 116, 139, 0.7); } .admin-log-level { font-size: 0.625rem; width: 3rem; display: inline-block; } .admin-log-content { flex: 1; min-width: 0; } .admin-log-source { color: rgba(129, 140, 248, 0.5); margin-right: 0.75rem; } .admin-log-details { margin-top: 0.5rem; margin-bottom: 0.75rem; padding-left: 1rem; border-left: 2px solid rgba(99, 102, 241, 0.3); background-color: rgba(0, 0, 0, 0.3); padding: 0.75rem; border-top-right-radius: 0.5rem; border-bottom-right-radius: 0.5rem; } .admin-log-details pre { color: #94a3b8; white-space: pre-wrap; overflow-x: auto; font-size: 0.6875rem; line-height: 1.6; margin: 0; } .admin-terminal-footer { padding: 0.5rem 1.5rem; border-top: 1px solid rgba(255, 255, 255, 0.05); background-color: rgba(255, 255, 255, 0.02); font-size: 0.6875rem; font-family: monospace; color: #64748b; display: flex; justify-content: space-between; align-items: center; position: relative; z-index: 10; } /* Tools tab */ .admin-tool-bg-glow { position: absolute; top: 0; right: 0; border-radius: 50%; transition: background-color 0.7s ease; pointer-events: none; z-index: 0; } .admin-tool-bg-fuchsia { width: 16rem; height: 16rem; background-color: rgba(217, 70, 239, 0.1); filter: blur(80px); } .admin-tool-bg-teal { width: 12rem; height: 12rem; background-color: rgba(20, 184, 166, 0.1); filter: blur(60px); } .admin-tool-bg-sky { width: 8rem; height: 8rem; background-color: rgba(14, 165, 233, 0.1); filter: blur(50px); } .admin-glass-card:hover .admin-tool-bg-fuchsia { background-color: rgba(217, 70, 239, 0.2); } .admin-glass-card:hover .admin-tool-bg-teal { background-color: rgba(20, 184, 166, 0.2); } .admin-glass-card:hover .admin-tool-bg-sky { background-color: rgba(14, 165, 233, 0.2); } .admin-tool-icon-box { padding: 0.75rem; border-radius: 0.75rem; border: 1px solid; } .admin-tool-icon-fuchsia { background-color: rgba(217, 70, 239, 0.1); border-color: rgba(217, 70, 239, 0.2); color: #e879f9; } .admin-tool-icon-teal { background-color: rgba(20, 184, 166, 0.1); border-color: rgba(20, 184, 166, 0.2); color: #2dd4bf; } .admin-tool-icon-sky { background-color: rgba(14, 165, 233, 0.1); border-color: rgba(14, 165, 233, 0.2); color: #38bdf8; } .admin-tool-input { width: 100%; background-color: rgba(0, 0, 0, 0.4); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 0.75rem; padding: 0.75rem 1rem; font-size: 0.875rem; color: #ffffff; font-family: monospace; transition: all 0.2s ease; box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06); } .admin-tool-input:focus { outline: none; } .admin-tool-input.fuchsia:focus { border-color: rgba(217, 70, 239, 0.5); box-shadow: 0 0 0 1px rgba(217, 70, 239, 0.5); } .admin-tool-input.teal:focus { border-color: rgba(20, 184, 166, 0.5); box-shadow: 0 0 0 1px rgba(20, 184, 166, 0.5); } .admin-execute-btn { width: 100%; padding: 0.75rem 1rem; border-radius: 0.75rem; font-weight: 600; color: #ffffff; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; gap: 0.75rem; border: none; cursor: pointer; } .admin-execute-btn:disabled { opacity: 0.5; filter: grayscale(100%); cursor: not-allowed; } .admin-execute-primary { background-image: linear-gradient(to right, #c026d3, #9333ea); box-shadow: 0 0 20px -5px rgba(192, 38, 211, 0.5); } .admin-execute-primary:hover:not(:disabled) { background-image: linear-gradient(to right, #d946ef, #a855f7); } .admin-execute-secondary { background-color: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); } .admin-execute-secondary:hover:not(:disabled) { background-color: rgba(255, 255, 255, 0.1); border-color: rgba(20, 184, 166, 0.3); } .admin-large-btn { position: relative; overflow: hidden; background-color: rgba(0, 0, 0, 0.4); backdrop-filter: blur(24px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 1rem; padding: 1.5rem; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; transition: all 0.3s ease; cursor: pointer; color: #ffffff; } .admin-large-btn:disabled { opacity: 0.5; cursor: not-allowed; } .admin-large-btn-hover { position: absolute; inset: 0; opacity: 0; transition: opacity 0.3s ease; z-index: 0; } .admin-large-btn.rose:hover:not(:disabled) { border-color: rgba(244, 63, 94, 0.5); } .admin-large-btn.rose .admin-large-btn-hover { background-image: linear-gradient(to top, rgba(244, 63, 94, 0.1), transparent); } .admin-large-btn.sky:hover:not(:disabled) { border-color: rgba(14, 165, 233, 0.5); } .admin-large-btn.sky .admin-large-btn-hover { background-image: linear-gradient(to top, rgba(14, 165, 233, 0.1), transparent); } .admin-large-btn-icon { padding: 1rem; background-color: rgba(255, 255, 255, 0.05); border-radius: 9999px; margin-bottom: 0.75rem; transition: all 0.3s ease; position: relative; z-index: 10; } .admin-large-btn.rose:hover:not(:disabled) .admin-large-btn-icon { background-color: rgba(244, 63, 94, 0.1); transform: scale(1.1); } .admin-large-btn.rose svg { color: #fb7185; } .admin-large-btn.sky:hover:not(:disabled) .admin-large-btn-icon { background-color: rgba(14, 165, 233, 0.1); transform: scale(1.1); } .admin-large-btn.sky svg { color: #38bdf8; } .admin-large-btn span { font-size: 0.875rem; font-weight: 700; letter-spacing: 0.025em; position: relative; z-index: 10; } .admin-status-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; position: relative; z-index: 10; } @media (min-width: 640px) { .admin-status-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } } @media (min-width: 768px) { .admin-status-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } } .admin-status-item { background-color: rgba(0, 0, 0, 0.4); border-radius: 0.75rem; padding: 0.75rem; border: 1px solid rgba(255, 255, 255, 0.1); display: flex; flex-direction: column; gap: 0.375rem; transition: border-color 0.2s ease; } .admin-status-item:hover { border-color: rgba(14, 165, 233, 0.3); } .admin-status-label { font-size: 0.625rem; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .admin-status-row { display: flex; align-items: center; justify-content: space-between; } .admin-status-mini-badge { font-size: 0.5625rem; font-weight: 700; padding: 0.125rem 0.375rem; border-radius: 0.25rem; border: 1px solid; } .admin-status-mini-badge.ok { background-color: rgba(16, 185, 129, 0.1); color: #34d399; border-color: rgba(16, 185, 129, 0.2); } .admin-status-mini-badge.error { background-color: rgba(244, 63, 94, 0.1); color: #fb7185; border-color: rgba(244, 63, 94, 0.2); } .admin-status-latency { font-size: 0.75rem; font-family: monospace; font-weight: 500; } .admin-status-latency.slow { color: #fbbf24; } .admin-status-latency.fast { color: #cbd5e1; } .admin-status-error { font-size: 0.5625rem; color: #fda4af; margin-top: 0.25rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.25; } .admin-spinner { width: 1.25rem; height: 1.25rem; border: 2px solid rgba(255, 255, 255, 0.3); border-top-color: #ffffff; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* Animations */ @keyframes ping { 75%, 100% { transform: scale(2); opacity: 0; } } .custom-scrollbar::-webkit-scrollbar { width: 6px; } .custom-scrollbar::-webkit-scrollbar-track { background: transparent; } .custom-scrollbar::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.1); border-radius: 10px; } .custom-scrollbar::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.2); }