:root { --neon-green: #00ff88; --neon-cyan: #00e5ff; --neon-pink: #ff007f; --neon-purple: #bf5fff; --bg: #080810; --bg-card: rgba(0, 255, 136, 0.04); --text-primary: #e0e0e0; --text-muted: #5a7a6a; --border: rgba(0, 255, 136, 0.25); --border-cyan: rgba(0, 229, 255, 0.2); --glow-green: 0 0 8px #00ff88, 0 0 20px rgba(0, 255, 136, 0.3); --glow-cyan: 0 0 8px #00e5ff, 0 0 20px rgba(0, 229, 255, 0.3); --glow-pink: 0 0 8px #ff007f, 0 0 20px rgba(255, 0, 127, 0.3); --radius: 2px; --font-mono: 'Share Tech Mono', monospace; --font-display: 'Orbitron', sans-serif; --transition: all 0.15s ease; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: var(--font-mono); font-size: 13px; line-height: 1.5; color: var(--text-primary); background-color: var(--bg); background-image: repeating-linear-gradient( 0deg, transparent, transparent 2px, rgba(0, 255, 136, 0.015) 2px, rgba(0, 255, 136, 0.015) 4px ); width: 380px; min-height: 400px; } /* Visually hidden but accessible to screen readers */ .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; } .container { padding: 20px; } /* Header */ header { text-align: center; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--border); } h1 { font-family: var(--font-display); font-size: 22px; font-weight: 700; color: var(--neon-green); text-shadow: var(--glow-green); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 4px; } .subtitle { font-size: 11px; color: var(--text-muted); letter-spacing: 1px; text-transform: uppercase; } /* Stats Section */ .stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 20px; } .stat-card { background: var(--bg-card); border-radius: var(--radius); padding: 14px; text-align: center; border: 1px solid var(--border); transition: var(--transition); animation: fadeSlideIn 0.3s ease both; } .stat-card:nth-child(1) { animation-delay: 0ms; } .stat-card:nth-child(2) { animation-delay: 60ms; } .stat-card:hover { border-color: var(--neon-cyan); box-shadow: var(--glow-cyan); } .stat-number { display: block; font-family: var(--font-display); font-size: 26px; font-weight: 700; color: var(--neon-cyan); text-shadow: var(--glow-cyan); line-height: 1; margin-bottom: 4px; } .stat-label { display: block; font-size: 10px; color: var(--text-muted); text-transform: uppercase; letter-spacing: 1px; } /* Selector Section */ .selector { margin-bottom: 20px; } .section-heading { font-family: var(--font-display); font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--neon-green); margin-bottom: 10px; } #selector-list { max-height: 200px; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; padding-right: 2px; } #selector-list::-webkit-scrollbar { width: 4px; } #selector-list::-webkit-scrollbar-track { background: transparent; } #selector-list::-webkit-scrollbar-thumb { background: var(--neon-green); border-radius: 2px; } .selector-loading { color: var(--text-muted); font-size: 12px; padding: 8px; letter-spacing: 1px; } .selector-item { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 6px 8px; transition: var(--transition); animation: fadeSlideIn 0.3s ease both; } .selector-item:hover { border-color: var(--neon-green); } .selector-item--group { margin-left: 20px; border-color: var(--border-cyan); } .selector-item--group:hover { border-color: var(--neon-cyan); } .selector-item .checkbox-label { display: flex; align-items: center; gap: 8px; padding: 0; border-radius: 0; cursor: pointer; user-select: none; } .selector-item .checkbox-label:hover { background: none; } .selector-item-title { font-size: 12px; color: var(--text-primary); flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .selector-item-meta { font-size: 11px; color: var(--text-muted); margin-left: auto; white-space: nowrap; flex-shrink: 0; } .selector-item-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex-shrink: 0; } .selector-actions { display: flex; gap: 16px; margin-top: 8px; } .btn-link { background: none; border: none; padding: 0; font-family: var(--font-mono); font-size: 11px; color: var(--neon-cyan); cursor: pointer; letter-spacing: 0.5px; transition: var(--transition); text-decoration: underline; text-underline-offset: 2px; } .btn-link:hover { color: var(--neon-green); text-shadow: var(--glow-green); } .btn-link:focus { outline: 2px solid var(--neon-cyan); outline-offset: 2px; } /* Options Section */ .options { margin-bottom: 20px; } .option-group { margin-bottom: 10px; animation: fadeSlideIn 0.3s ease both; } .option-group:nth-child(2) { animation-delay: 0ms; } .option-group:nth-child(3) { animation-delay: 60ms; } .option-group:nth-child(4) { animation-delay: 120ms; } .checkbox-label { display: flex; align-items: center; cursor: pointer; user-select: none; padding: 7px 8px; border-radius: var(--radius); transition: var(--transition); border: 1px solid transparent; } .checkbox-label:hover { background: rgba(0, 255, 136, 0.05); border-color: var(--border); } .checkbox-label input[type="checkbox"] { width: 16px; height: 16px; margin-right: 10px; cursor: pointer; accent-color: var(--neon-green); flex-shrink: 0; } .checkbox-label input[type="checkbox"]:focus { outline: 2px solid var(--neon-green); outline-offset: 2px; } .checkbox-label span { font-size: 13px; } .help-text { font-size: 11px; color: var(--text-muted); margin-top: 2px; margin-left: 26px; } /* Actions Section */ .actions { margin-bottom: 16px; } .btn { width: 100%; padding: 12px 20px; font-family: var(--font-display); font-size: 13px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; border-radius: var(--radius); cursor: pointer; transition: var(--transition); display: flex; align-items: center; justify-content: center; gap: 10px; } .btn:focus { outline: 2px solid var(--neon-green); outline-offset: 2px; } .btn-primary { background: transparent; color: var(--neon-green); border: 1px solid var(--neon-green); box-shadow: inset 0 0 12px rgba(0, 255, 136, 0.05); } .btn-primary:hover:not(:disabled) { background: rgba(0, 255, 136, 0.08); box-shadow: var(--glow-green); } .btn-primary:active:not(:disabled) { background: rgba(0, 255, 136, 0.15); box-shadow: none; } .btn-primary:disabled { opacity: 0.4; cursor: not-allowed; } .btn-icon { font-size: 16px; } .status-message { margin-top: 10px; padding: 10px; border-radius: var(--radius); font-size: 12px; text-align: center; min-height: 38px; display: flex; align-items: center; justify-content: center; letter-spacing: 0.5px; } .status-message.success { background: rgba(0, 255, 136, 0.07); color: var(--neon-green); border: 1px solid var(--neon-green); text-shadow: var(--glow-green); } .status-message.error { background: rgba(255, 0, 127, 0.07); color: var(--neon-pink); border: 1px solid var(--neon-pink); text-shadow: var(--glow-pink); } .status-message.loading { background: rgba(0, 229, 255, 0.07); color: var(--neon-cyan); border: 1px solid var(--neon-cyan); } /* Footer */ .footer { padding-top: 14px; border-top: 1px solid var(--border); } .footer-text { font-size: 11px; color: var(--text-muted); text-align: center; } kbd { display: inline-block; padding: 1px 5px; font-family: var(--font-mono); font-size: 11px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); color: var(--neon-cyan); } /* Animations */ @keyframes fadeSlideIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } } @keyframes spin { to { transform: rotate(360deg); } } .btn-icon.loading { animation: spin 1s linear infinite; }