Spaces:
Runtime error
Runtime error
Deployment Ready: Fixed scam detection low confidence, added production audit report, optimized throttles
1838600 | /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| SENTINEL INTELLIGENCE DASHBOARD - STYLES v2.5.0 | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 1. CSS VARIABLES | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| :root { | |
| /* Brand */ | |
| --honey-gold: #ffb700; | |
| /* Changed from #ffc107 */ | |
| --honey-amber: #ff9800; | |
| --honey-dark: #ff6f00; | |
| /* Cyber */ | |
| --cyber-green: #00ff41; | |
| --cyber-blue: #00d4ff; | |
| --cyber-purple: #a855f7; | |
| --cyber-pink: #ec4899; | |
| --neon-blue: #00d4ff; | |
| /* New */ | |
| /* Status */ | |
| --success: #2ed573; | |
| --warning: #ffa502; | |
| --danger: #ff4757; | |
| --info: #3742fa; | |
| /* Backgrounds */ | |
| --bg-dark: #0a0a0c; | |
| /* Changed from #0a0a0f */ | |
| --bg-darker: #050505; | |
| --bg-card: rgba(18, 18, 18, 0.95); | |
| --bg-elevated: rgba(25, 25, 25, 0.98); | |
| --bg-sidebar: #0f1012; | |
| --bg-panel: #111116; | |
| /* New */ | |
| /* Distinct Menu Color (MinUI) */ | |
| /* Text */ | |
| --text-primary: #ffffff; | |
| --text-secondary: #a0a0a0; | |
| --text-muted: #666666; | |
| /* Borders */ | |
| --border: rgba(255, 193, 7, 0.15); | |
| --border-hover: rgba(255, 193, 7, 0.4); | |
| /* Sizing */ | |
| --sidebar-width: 260px; | |
| --topbar-height: 60px; | |
| /* Transitions */ | |
| --transition-fast: 0.15s ease; | |
| --transition-smooth: 0.3s ease; | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 2. RESET & BASE | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| html { | |
| scroll-behavior: smooth; | |
| } | |
| body { | |
| font-family: 'Rajdhani', sans-serif; | |
| background: var(--bg-dark); | |
| color: var(--text-primary); | |
| min-height: 100vh; | |
| overflow-x: hidden; | |
| -webkit-font-smoothing: antialiased; | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 3. BACKGROUND EFFECTS | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .bg-grid { | |
| position: fixed; | |
| inset: 0; | |
| background-image: | |
| linear-gradient(rgba(255, 193, 7, 0.02) 1px, transparent 1px), | |
| linear-gradient(90deg, rgba(255, 193, 7, 0.02) 1px, transparent 1px); | |
| background-size: 40px 40px; | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| .gradient-overlay { | |
| position: fixed; | |
| inset: 0; | |
| background: | |
| radial-gradient(ellipse at 0% 0%, rgba(255, 193, 7, 0.05) 0%, transparent 50%), | |
| radial-gradient(ellipse at 100% 100%, rgba(0, 212, 255, 0.03) 0%, transparent 50%); | |
| pointer-events: none; | |
| z-index: 0; | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 4. LOADER | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .loader { | |
| position: fixed; | |
| inset: 0; | |
| background: #000; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| z-index: 10000; | |
| transition: opacity 0.5s ease, visibility 0.5s ease; | |
| } | |
| .loader.hidden { | |
| opacity: 0; | |
| visibility: hidden; | |
| } | |
| .loader-icon { | |
| font-size: 50px; | |
| margin-bottom: 20px; | |
| animation: pulse 1.5s infinite; | |
| } | |
| @keyframes pulse { | |
| 0%, | |
| 100% { | |
| transform: scale(1); | |
| } | |
| 50% { | |
| transform: scale(1.1); | |
| } | |
| } | |
| .loader-text { | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.85rem; | |
| color: var(--cyber-green); | |
| margin-bottom: 20px; | |
| letter-spacing: 2px; | |
| } | |
| .loader-bar { | |
| width: 200px; | |
| height: 2px; | |
| background: rgba(255, 193, 7, 0.2); | |
| border-radius: 2px; | |
| overflow: hidden; | |
| } | |
| .loader-bar-fill { | |
| height: 100%; | |
| background: var(--honey-gold); | |
| width: 0%; | |
| animation: loadBar 2s ease-in-out forwards; | |
| } | |
| @keyframes loadBar { | |
| to { | |
| width: 100%; | |
| } | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 5. APP LAYOUT | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .app-container { | |
| display: flex; | |
| min-height: 100vh; | |
| position: relative; | |
| z-index: 1; | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 6. SIDEBAR | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .sidebar { | |
| width: var(--sidebar-width); | |
| background: var(--bg-sidebar); | |
| border-right: 1px solid var(--border); | |
| display: flex; | |
| flex-direction: column; | |
| position: fixed; | |
| left: 0; | |
| top: 0; | |
| bottom: 0; | |
| z-index: 100; | |
| backdrop-filter: blur(10px); | |
| } | |
| .sidebar-header { | |
| padding: 20px; | |
| border-bottom: 1px solid var(--border); | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| } | |
| .logo { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| } | |
| .logo-icon { | |
| font-size: 1.5rem; | |
| } | |
| .logo-text { | |
| font-family: 'Orbitron', sans-serif; | |
| font-size: 1.1rem; | |
| font-weight: 700; | |
| color: var(--honey-gold); | |
| letter-spacing: 2px; | |
| } | |
| .version-badge { | |
| padding: 3px 8px; | |
| background: rgba(255, 193, 7, 0.1); | |
| border: 1px solid var(--border); | |
| border-radius: 4px; | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.6rem; | |
| color: var(--text-muted); | |
| } | |
| /* Agent Status Panel */ | |
| .agent-status-panel { | |
| padding: 15px 20px; | |
| border-bottom: 1px solid var(--border); | |
| } | |
| .panel-title { | |
| font-size: 0.7rem; | |
| color: var(--text-muted); | |
| text-transform: uppercase; | |
| letter-spacing: 1px; | |
| margin-bottom: 12px; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .panel-title i { | |
| color: var(--cyber-green); | |
| } | |
| .agent-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 10px; | |
| } | |
| .agent-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| font-size: 0.85rem; | |
| } | |
| .agent-dot { | |
| width: 8px; | |
| height: 8px; | |
| border-radius: 50%; | |
| background: var(--text-muted); | |
| transition: all 0.3s ease; | |
| } | |
| .agent-dot.online { | |
| background: var(--cyber-green); | |
| box-shadow: 0 0 8px var(--cyber-green); | |
| } | |
| .agent-dot.offline { | |
| background: var(--danger); | |
| } | |
| .agent-dot.loading { | |
| background: var(--warning); | |
| animation: blink 1s infinite; | |
| } | |
| @keyframes blink { | |
| 50% { | |
| opacity: 0.3; | |
| } | |
| } | |
| .agent-name { | |
| flex: 1; | |
| color: var(--text-secondary); | |
| } | |
| .agent-status { | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.65rem; | |
| color: var(--text-muted); | |
| } | |
| /* Sidebar Navigation */ | |
| .sidebar-nav { | |
| flex: 1; | |
| padding: 20px 15px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 5px; | |
| } | |
| .nav-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| padding: 12px 15px; | |
| background: transparent; | |
| border: 1px solid transparent; | |
| border-radius: 8px; | |
| color: var(--text-secondary); | |
| font-family: 'Rajdhani', sans-serif; | |
| font-size: 0.95rem; | |
| font-weight: 500; | |
| cursor: pointer; | |
| transition: var(--transition-fast); | |
| text-align: left; | |
| width: 100%; | |
| } | |
| .nav-item:hover { | |
| background: rgba(255, 193, 7, 0.05); | |
| color: var(--text-primary); | |
| border-color: var(--border); | |
| } | |
| .nav-item.active { | |
| background: rgba(255, 193, 7, 0.1); | |
| color: var(--honey-gold); | |
| border-color: var(--honey-gold); | |
| } | |
| .nav-item i { | |
| width: 18px; | |
| text-align: center; | |
| } | |
| /* Sidebar Actions */ | |
| .sidebar-actions { | |
| padding: 15px 20px; | |
| border-top: 1px solid var(--border); | |
| display: flex; | |
| gap: 10px; | |
| } | |
| .action-btn { | |
| flex: 1; | |
| padding: 10px; | |
| background: rgba(255, 193, 7, 0.05); | |
| border: 1px solid var(--border); | |
| border-radius: 6px; | |
| color: var(--text-secondary); | |
| cursor: pointer; | |
| transition: var(--transition-fast); | |
| } | |
| .action-btn:hover { | |
| background: rgba(255, 193, 7, 0.1); | |
| color: var(--honey-gold); | |
| border-color: var(--border-hover); | |
| } | |
| /* Sidebar Footer */ | |
| .sidebar-footer { | |
| padding: 15px 20px; | |
| border-top: 1px solid var(--border); | |
| } | |
| .connection-status { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| font-size: 0.75rem; | |
| color: var(--text-muted); | |
| } | |
| .connection-status .status-dot { | |
| width: 6px; | |
| height: 6px; | |
| border-radius: 50%; | |
| background: var(--warning); | |
| } | |
| .connection-status.connected .status-dot { | |
| background: var(--cyber-green); | |
| box-shadow: 0 0 6px var(--cyber-green); | |
| } | |
| .connection-status.connected { | |
| color: var(--cyber-green); | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 7. MAIN CONTENT | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .main-content { | |
| flex: 1; | |
| margin-left: var(--sidebar-width); | |
| display: flex; | |
| flex-direction: column; | |
| min-height: 100vh; | |
| } | |
| /* Top Bar */ | |
| .top-bar { | |
| height: var(--topbar-height); | |
| background: var(--bg-elevated); | |
| border-bottom: 1px solid var(--border); | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: 0 25px; | |
| position: sticky; | |
| top: 0; | |
| z-index: 50; | |
| backdrop-filter: blur(10px); | |
| } | |
| .top-bar-left { | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .page-title { | |
| font-family: 'Orbitron', sans-serif; | |
| font-size: 1.1rem; | |
| font-weight: 600; | |
| color: var(--text-primary); | |
| letter-spacing: 1px; | |
| } | |
| .breadcrumb { | |
| font-size: 0.7rem; | |
| color: var(--text-muted); | |
| } | |
| .top-bar-right { | |
| display: flex; | |
| align-items: center; | |
| gap: 20px; | |
| } | |
| .live-clock { | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.9rem; | |
| color: var(--cyber-green); | |
| text-shadow: 0 0 10px var(--cyber-green); | |
| } | |
| .alert-badge { | |
| position: relative; | |
| padding: 8px 12px; | |
| background: rgba(255, 71, 87, 0.1); | |
| border: 1px solid var(--danger); | |
| border-radius: 6px; | |
| color: var(--danger); | |
| cursor: pointer; | |
| transition: var(--transition-fast); | |
| } | |
| .alert-badge:hover { | |
| background: rgba(255, 71, 87, 0.2); | |
| } | |
| .badge-count { | |
| position: absolute; | |
| top: -5px; | |
| right: -5px; | |
| background: var(--danger); | |
| color: white; | |
| font-size: 0.6rem; | |
| padding: 2px 6px; | |
| border-radius: 10px; | |
| font-weight: 700; | |
| } | |
| /* View Container */ | |
| .view-container { | |
| flex: 1; | |
| padding: 25px; | |
| overflow-y: auto; | |
| } | |
| .view { | |
| display: none; | |
| animation: fadeIn 0.3s ease; | |
| } | |
| .view.active { | |
| display: block; | |
| } | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| transform: translateY(10px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 8. KPI CARDS | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .kpi-row { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); | |
| gap: 20px; | |
| margin-bottom: 25px; | |
| } | |
| .kpi-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border); | |
| border-radius: 12px; | |
| padding: 20px; | |
| display: flex; | |
| align-items: center; | |
| gap: 15px; | |
| position: relative; | |
| overflow: hidden; | |
| transition: var(--transition-smooth); | |
| } | |
| .kpi-card::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 3px; | |
| background: var(--honey-gold); | |
| opacity: 0; | |
| transition: opacity var(--transition-fast); | |
| } | |
| .kpi-card:hover { | |
| border-color: var(--border-hover); | |
| transform: translateY(-3px); | |
| } | |
| .kpi-card:hover::before { | |
| opacity: 1; | |
| } | |
| .kpi-icon { | |
| width: 50px; | |
| height: 50px; | |
| background: rgba(255, 193, 7, 0.1); | |
| border-radius: 10px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 1.3rem; | |
| color: var(--honey-gold); | |
| } | |
| .kpi-icon.savings { | |
| color: var(--cyber-green); | |
| background: rgba(0, 255, 65, 0.1); | |
| } | |
| .kpi-icon.danger { | |
| color: var(--danger); | |
| background: rgba(255, 71, 87, 0.1); | |
| } | |
| .kpi-icon.active { | |
| color: var(--cyber-blue); | |
| background: rgba(0, 212, 255, 0.1); | |
| } | |
| .kpi-content { | |
| flex: 1; | |
| } | |
| .kpi-value { | |
| font-family: 'Orbitron', sans-serif; | |
| font-size: 1.6rem; | |
| font-weight: 700; | |
| color: var(--text-primary); | |
| line-height: 1.2; | |
| } | |
| .kpi-label { | |
| font-size: 0.8rem; | |
| color: var(--text-muted); | |
| margin-top: 2px; | |
| } | |
| .kpi-trend { | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.7rem; | |
| padding: 4px 8px; | |
| border-radius: 4px; | |
| } | |
| .kpi-trend.up { | |
| background: rgba(46, 213, 115, 0.1); | |
| color: var(--success); | |
| } | |
| .kpi-trend.down { | |
| background: rgba(255, 71, 87, 0.1); | |
| color: var(--danger); | |
| } | |
| .kpi-pulse { | |
| width: 12px; | |
| height: 12px; | |
| background: var(--cyber-blue); | |
| border-radius: 50%; | |
| animation: kpiPulse 2s infinite; | |
| } | |
| @keyframes kpiPulse { | |
| 0%, | |
| 100% { | |
| box-shadow: 0 0 0 0 rgba(0, 212, 255, 0.4); | |
| } | |
| 50% { | |
| box-shadow: 0 0 0 10px rgba(0, 212, 255, 0); | |
| } | |
| } | |
| .kpi-indicator { | |
| width: 60px; | |
| } | |
| .risk-bar { | |
| height: 6px; | |
| background: linear-gradient(90deg, var(--success), var(--warning), var(--danger)); | |
| border-radius: 3px; | |
| position: relative; | |
| } | |
| .risk-bar::after { | |
| content: ''; | |
| position: absolute; | |
| top: -3px; | |
| left: 50%; | |
| width: 4px; | |
| height: 12px; | |
| background: white; | |
| border-radius: 2px; | |
| transition: left var(--transition-smooth); | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 9. PANELS | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .panel { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border); | |
| border-radius: 12px; | |
| overflow: hidden; | |
| } | |
| .panel-header { | |
| padding: 15px 20px; | |
| background: rgba(255, 193, 7, 0.03); | |
| border-bottom: 1px solid var(--border); | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| } | |
| .panel-header h3 { | |
| font-family: 'Orbitron', sans-serif; | |
| font-size: 0.9rem; | |
| font-weight: 600; | |
| color: var(--text-primary); | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| } | |
| .panel-header h3 i { | |
| color: var(--honey-gold); | |
| } | |
| .panel-btn { | |
| padding: 6px 10px; | |
| background: transparent; | |
| border: 1px solid var(--border); | |
| border-radius: 4px; | |
| color: var(--text-secondary); | |
| cursor: pointer; | |
| transition: var(--transition-fast); | |
| } | |
| .panel-btn:hover { | |
| background: rgba(255, 193, 7, 0.1); | |
| color: var(--honey-gold); | |
| } | |
| .panel-body { | |
| padding: 20px; | |
| } | |
| .live-badge { | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| padding: 4px 10px; | |
| background: rgba(255, 71, 87, 0.1); | |
| border: 1px solid var(--danger); | |
| border-radius: 4px; | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.65rem; | |
| color: var(--danger); | |
| } | |
| .pulse-dot { | |
| width: 6px; | |
| height: 6px; | |
| background: var(--danger); | |
| border-radius: 50%; | |
| animation: pulseDot 1.5s infinite; | |
| } | |
| @keyframes pulseDot { | |
| 0%, | |
| 100% { | |
| opacity: 1; | |
| } | |
| 50% { | |
| opacity: 0.3; | |
| } | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 10. COMMAND CENTER GRID | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .command-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| grid-template-rows: auto auto; | |
| gap: 20px; | |
| } | |
| .threat-feed-panel { | |
| grid-column: 1; | |
| grid-row: 1; | |
| } | |
| .campaigns-panel { | |
| grid-column: 2; | |
| grid-row: 1; | |
| } | |
| .terminal-panel { | |
| grid-column: 1 / -1; | |
| grid-row: 2; | |
| } | |
| /* Threat Ticker */ | |
| .threat-ticker { | |
| max-height: 300px; | |
| overflow-y: auto; | |
| } | |
| .ticker-item { | |
| padding: 12px 15px; | |
| border-bottom: 1px solid var(--border); | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 12px; | |
| transition: var(--transition-fast); | |
| } | |
| .ticker-item:hover { | |
| background: rgba(255, 193, 7, 0.03); | |
| } | |
| .ticker-item:last-child { | |
| border-bottom: none; | |
| } | |
| .ticker-item.loading { | |
| justify-content: center; | |
| color: var(--text-muted); | |
| } | |
| .ticker-icon { | |
| width: 32px; | |
| height: 32px; | |
| background: rgba(255, 71, 87, 0.1); | |
| border-radius: 6px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| color: var(--danger); | |
| flex-shrink: 0; | |
| } | |
| .ticker-content { | |
| flex: 1; | |
| } | |
| .ticker-title { | |
| font-weight: 600; | |
| color: var(--text-primary); | |
| font-size: 0.9rem; | |
| margin-bottom: 3px; | |
| } | |
| .ticker-meta { | |
| font-size: 0.75rem; | |
| color: var(--text-muted); | |
| display: flex; | |
| gap: 15px; | |
| } | |
| .ticker-time { | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.7rem; | |
| color: var(--text-muted); | |
| } | |
| /* Campaign List */ | |
| .campaign-list { | |
| max-height: 300px; | |
| overflow-y: auto; | |
| } | |
| .campaign-item { | |
| padding: 15px; | |
| border: 1px solid var(--border); | |
| border-radius: 8px; | |
| margin-bottom: 10px; | |
| transition: var(--transition-fast); | |
| } | |
| .campaign-item:hover { | |
| border-color: var(--border-hover); | |
| background: rgba(255, 193, 7, 0.02); | |
| } | |
| .campaign-item:last-child { | |
| margin-bottom: 0; | |
| } | |
| .campaign-item.loading { | |
| text-align: center; | |
| color: var(--text-muted); | |
| } | |
| .campaign-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 8px; | |
| } | |
| .campaign-id { | |
| font-family: 'Orbitron', sans-serif; | |
| font-size: 0.85rem; | |
| color: var(--honey-gold); | |
| } | |
| .campaign-severity { | |
| padding: 3px 8px; | |
| border-radius: 4px; | |
| font-size: 0.65rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| } | |
| .campaign-severity.critical { | |
| background: rgba(255, 71, 87, 0.15); | |
| color: var(--danger); | |
| } | |
| .campaign-severity.high { | |
| background: rgba(255, 165, 2, 0.15); | |
| color: var(--warning); | |
| } | |
| .campaign-severity.medium { | |
| background: rgba(55, 66, 250, 0.15); | |
| color: var(--info); | |
| } | |
| .campaign-target { | |
| font-size: 0.85rem; | |
| color: var(--text-secondary); | |
| margin-bottom: 5px; | |
| } | |
| .campaign-stats { | |
| display: flex; | |
| gap: 15px; | |
| font-size: 0.75rem; | |
| color: var(--text-muted); | |
| } | |
| /* Terminal */ | |
| .terminal-body { | |
| background: #000; | |
| padding: 0; | |
| } | |
| .terminal-output { | |
| height: 200px; | |
| overflow-y: auto; | |
| padding: 15px; | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.75rem; | |
| line-height: 1.6; | |
| } | |
| .log-line { | |
| margin-bottom: 4px; | |
| padding: 2px 0; | |
| } | |
| .log-line.info { | |
| color: var(--cyber-blue); | |
| } | |
| .log-line.success { | |
| color: var(--cyber-green); | |
| } | |
| .log-line.warning { | |
| color: var(--warning); | |
| } | |
| .log-line.error { | |
| color: var(--danger); | |
| } | |
| .log-line.system { | |
| color: var(--text-muted); | |
| } | |
| .terminal-controls { | |
| display: flex; | |
| gap: 8px; | |
| } | |
| .terminal-btn { | |
| padding: 4px 10px; | |
| background: transparent; | |
| border: 1px solid var(--border); | |
| border-radius: 4px; | |
| color: var(--text-secondary); | |
| font-size: 0.7rem; | |
| cursor: pointer; | |
| transition: var(--transition-fast); | |
| } | |
| .terminal-btn:hover { | |
| background: rgba(255, 193, 7, 0.1); | |
| color: var(--honey-gold); | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 11. FORENSICS VIEW | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .forensics-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| grid-template-rows: auto auto; | |
| gap: 20px; | |
| } | |
| .graph-panel { | |
| grid-column: 1; | |
| grid-row: 1 / 3; | |
| } | |
| .telemetry-panel { | |
| grid-column: 2; | |
| grid-row: 1; | |
| } | |
| .dossier-panel { | |
| grid-column: 2; | |
| grid-row: 2; | |
| } | |
| /* Graph */ | |
| .graph-body { | |
| padding: 0; | |
| position: relative; | |
| } | |
| .graph-container { | |
| height: 450px; | |
| background: rgba(0, 0, 0, 0.3); | |
| } | |
| .graph-controls { | |
| display: flex; | |
| gap: 8px; | |
| } | |
| .graph-btn { | |
| padding: 6px 12px; | |
| background: transparent; | |
| border: 1px solid var(--border); | |
| border-radius: 4px; | |
| color: var(--text-secondary); | |
| font-size: 0.75rem; | |
| cursor: pointer; | |
| transition: var(--transition-fast); | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| } | |
| .graph-btn:hover { | |
| background: rgba(255, 193, 7, 0.1); | |
| color: var(--honey-gold); | |
| } | |
| .graph-legend { | |
| position: absolute; | |
| bottom: 15px; | |
| left: 15px; | |
| display: flex; | |
| gap: 15px; | |
| background: rgba(0, 0, 0, 0.7); | |
| padding: 10px 15px; | |
| border-radius: 6px; | |
| } | |
| .legend-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 6px; | |
| font-size: 0.7rem; | |
| color: var(--text-secondary); | |
| } | |
| .legend-dot { | |
| width: 10px; | |
| height: 10px; | |
| border-radius: 50%; | |
| } | |
| .legend-dot.scammer { | |
| background: var(--danger); | |
| } | |
| .legend-dot.upi { | |
| background: var(--honey-gold); | |
| } | |
| .legend-dot.phone { | |
| background: var(--cyber-blue); | |
| } | |
| .legend-dot.campaign { | |
| background: var(--cyber-purple); | |
| } | |
| /* Telemetry Table */ | |
| .record-count { | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.7rem; | |
| color: var(--text-muted); | |
| } | |
| .table-container { | |
| max-height: 250px; | |
| overflow-y: auto; | |
| } | |
| .data-table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| font-size: 0.8rem; | |
| } | |
| .data-table thead { | |
| background: rgba(255, 193, 7, 0.05); | |
| position: sticky; | |
| top: 0; | |
| } | |
| .data-table th { | |
| padding: 10px 12px; | |
| text-align: left; | |
| font-family: 'Orbitron', sans-serif; | |
| font-size: 0.65rem; | |
| color: var(--honey-gold); | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| border-bottom: 1px solid var(--border); | |
| } | |
| .data-table td { | |
| padding: 10px 12px; | |
| border-bottom: 1px solid var(--border); | |
| color: var(--text-secondary); | |
| } | |
| .data-table tbody tr:hover { | |
| background: rgba(255, 193, 7, 0.03); | |
| } | |
| .data-table code { | |
| background: rgba(0, 0, 0, 0.3); | |
| padding: 2px 6px; | |
| border-radius: 3px; | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.7rem; | |
| } | |
| .loading-row { | |
| text-align: center; | |
| color: var(--text-muted); | |
| } | |
| .risk-badge { | |
| padding: 3px 8px; | |
| border-radius: 4px; | |
| font-size: 0.65rem; | |
| font-weight: 600; | |
| } | |
| .risk-badge.high { | |
| background: rgba(255, 71, 87, 0.15); | |
| color: var(--danger); | |
| } | |
| .risk-badge.medium { | |
| background: rgba(255, 165, 2, 0.15); | |
| color: var(--warning); | |
| } | |
| .risk-badge.low { | |
| background: rgba(46, 213, 115, 0.15); | |
| color: var(--success); | |
| } | |
| /* Dossier */ | |
| .dossier-body { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 20px; | |
| } | |
| .dossier-form { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 15px; | |
| } | |
| .form-group { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| } | |
| .form-group label { | |
| font-size: 0.75rem; | |
| color: var(--text-muted); | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| } | |
| .form-input { | |
| padding: 10px 12px; | |
| background: rgba(0, 0, 0, 0.3); | |
| border: 1px solid var(--border); | |
| border-radius: 6px; | |
| color: var(--text-primary); | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.85rem; | |
| transition: var(--transition-fast); | |
| } | |
| .form-input:focus { | |
| outline: none; | |
| border-color: var(--honey-gold); | |
| } | |
| .generate-btn { | |
| padding: 12px; | |
| background: var(--honey-gold); | |
| border: none; | |
| border-radius: 6px; | |
| color: #000; | |
| font-family: 'Rajdhani', sans-serif; | |
| font-size: 0.9rem; | |
| font-weight: 700; | |
| cursor: pointer; | |
| transition: var(--transition-fast); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 8px; | |
| } | |
| .generate-btn:hover { | |
| background: var(--honey-amber); | |
| transform: translateY(-2px); | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 12. ENGAGEMENT VIEW | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .engagement-grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| grid-template-rows: auto auto; | |
| gap: 20px; | |
| } | |
| .testing-panel { | |
| grid-column: 1; | |
| grid-row: 1 / 3; | |
| } | |
| .honeytoken-panel { | |
| grid-column: 2; | |
| grid-row: 1; | |
| } | |
| .admin-panel { | |
| grid-column: 2; | |
| grid-row: 2; | |
| } | |
| /* Lab Terminal */ | |
| .lab-badge { | |
| padding: 4px 10px; | |
| background: rgba(0, 212, 255, 0.1); | |
| border: 1px solid var(--cyber-blue); | |
| border-radius: 4px; | |
| font-size: 0.65rem; | |
| color: var(--cyber-blue); | |
| } | |
| .lab-description { | |
| margin-bottom: 15px; | |
| font-size: 0.9rem; | |
| color: var(--text-secondary); | |
| } | |
| .lab-description strong { | |
| color: var(--honey-gold); | |
| } | |
| .test-terminal { | |
| background: #000; | |
| border: 1px solid var(--border); | |
| border-radius: 8px; | |
| overflow: hidden; | |
| } | |
| .terminal-header { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| padding: 10px 15px; | |
| background: rgba(255, 255, 255, 0.05); | |
| border-bottom: 1px solid var(--border); | |
| } | |
| .terminal-dot { | |
| width: 10px; | |
| height: 10px; | |
| border-radius: 50%; | |
| } | |
| .terminal-dot.red { | |
| background: #ff5f56; | |
| } | |
| .terminal-dot.yellow { | |
| background: #ffbd2e; | |
| } | |
| .terminal-dot.green { | |
| background: #27ca40; | |
| } | |
| .terminal-title { | |
| margin-left: 10px; | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.7rem; | |
| color: var(--text-muted); | |
| } | |
| .terminal-content { | |
| padding: 15px; | |
| } | |
| .terminal-history { | |
| max-height: 200px; | |
| overflow-y: auto; | |
| margin-bottom: 15px; | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.75rem; | |
| line-height: 1.6; | |
| } | |
| .history-item { | |
| margin-bottom: 8px; | |
| padding: 4px 0; | |
| } | |
| .history-item.system { | |
| color: var(--text-muted); | |
| } | |
| .history-item.input { | |
| color: var(--cyber-green); | |
| } | |
| .history-item.output { | |
| color: var(--cyber-blue); | |
| } | |
| .history-item.error { | |
| color: var(--danger); | |
| } | |
| .terminal-input-line { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| } | |
| .prompt { | |
| color: var(--cyber-green); | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.75rem; | |
| } | |
| .terminal-input { | |
| flex: 1; | |
| background: transparent; | |
| border: none; | |
| color: var(--text-primary); | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.8rem; | |
| } | |
| .terminal-input:focus { | |
| outline: none; | |
| } | |
| .terminal-input::placeholder { | |
| color: var(--text-muted); | |
| } | |
| /* Honeytoken Grid */ | |
| .honeytoken-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 12px; | |
| margin-bottom: 20px; | |
| } | |
| .honeytoken-card { | |
| padding: 20px 15px; | |
| background: rgba(0, 0, 0, 0.3); | |
| border: 1px solid var(--border); | |
| border-radius: 10px; | |
| text-align: center; | |
| cursor: pointer; | |
| transition: var(--transition-smooth); | |
| } | |
| .honeytoken-card:hover { | |
| background: rgba(255, 193, 7, 0.05); | |
| border-color: var(--border-hover); | |
| transform: translateY(-3px); | |
| } | |
| .token-icon { | |
| font-size: 1.8rem; | |
| color: var(--honey-gold); | |
| margin-bottom: 10px; | |
| } | |
| .token-title { | |
| font-family: 'Orbitron', sans-serif; | |
| font-size: 0.8rem; | |
| color: var(--text-primary); | |
| margin-bottom: 5px; | |
| } | |
| .honeytoken-output { | |
| background: rgba(0, 0, 0, 0.3); | |
| border: 1px solid var(--cyber-green); | |
| border-radius: 8px; | |
| padding: 15px; | |
| } | |
| .output-label { | |
| font-size: 0.7rem; | |
| color: var(--text-muted); | |
| margin-bottom: 8px; | |
| } | |
| .output-link { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| background: rgba(0, 0, 0, 0.5); | |
| padding: 10px 15px; | |
| border-radius: 6px; | |
| margin-bottom: 12px; | |
| } | |
| .output-link code { | |
| flex: 1; | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.75rem; | |
| color: var(--cyber-green); | |
| word-break: break-all; | |
| } | |
| .copy-btn { | |
| padding: 6px 10px; | |
| background: rgba(255, 193, 7, 0.1); | |
| border: 1px solid var(--border); | |
| border-radius: 4px; | |
| color: var(--honey-gold); | |
| cursor: pointer; | |
| transition: var(--transition-fast); | |
| } | |
| .copy-btn:hover { | |
| background: var(--honey-gold); | |
| color: #000; | |
| } | |
| /* Admin Panel */ | |
| .admin-badge { | |
| padding: 4px 10px; | |
| background: rgba(255, 71, 87, 0.1); | |
| border: 1px solid var(--danger); | |
| border-radius: 4px; | |
| font-size: 0.65rem; | |
| color: var(--danger); | |
| } | |
| .admin-section { | |
| margin-bottom: 20px; | |
| padding-bottom: 20px; | |
| border-bottom: 1px solid var(--border); | |
| } | |
| .admin-section:last-of-type { | |
| border-bottom: none; | |
| margin-bottom: 15px; | |
| } | |
| .admin-section h4 { | |
| font-family: 'Orbitron', sans-serif; | |
| font-size: 0.85rem; | |
| color: var(--text-primary); | |
| margin-bottom: 8px; | |
| } | |
| .export-options { | |
| display: flex; | |
| gap: 10px; | |
| flex-wrap: wrap; | |
| } | |
| .export-btn { | |
| padding: 10px 15px; | |
| background: rgba(0, 0, 0, 0.3); | |
| border: 1px solid var(--border); | |
| border-radius: 6px; | |
| color: var(--text-secondary); | |
| font-size: 0.8rem; | |
| cursor: pointer; | |
| transition: var(--transition-fast); | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .export-btn:hover { | |
| background: rgba(255, 193, 7, 0.1); | |
| color: var(--honey-gold); | |
| border-color: var(--border-hover); | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 13. TOAST & MODAL | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .toast { | |
| position: fixed; | |
| bottom: 30px; | |
| left: 50%; | |
| transform: translateX(-50%) translateY(100px); | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| padding: 15px 25px; | |
| background: var(--bg-elevated); | |
| border: 1px solid var(--cyber-green); | |
| border-radius: 10px; | |
| color: var(--cyber-green); | |
| font-family: 'JetBrains Mono', monospace; | |
| font-size: 0.85rem; | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); | |
| z-index: 10000; | |
| opacity: 0; | |
| visibility: hidden; | |
| transition: all 0.4s ease; | |
| } | |
| .toast.show { | |
| transform: translateX(-50%) translateY(0); | |
| opacity: 1; | |
| visibility: visible; | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 14. SCROLLBAR | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| ::-webkit-scrollbar { | |
| width: 6px; | |
| height: 6px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: var(--bg-dark); | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: var(--border); | |
| border-radius: 10px; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: var(--honey-gold); | |
| } | |
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| 15. RESPONSIVE | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| @media (max-width: 1200px) { | |
| .command-grid, | |
| .forensics-grid, | |
| .engagement-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .graph-panel, | |
| .testing-panel { | |
| grid-row: auto; | |
| } | |
| .dossier-body { | |
| grid-template-columns: 1fr; | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| .sidebar { | |
| width: 70px; | |
| } | |
| .sidebar-header { | |
| padding: 15px 10px; | |
| justify-content: center; | |
| } | |
| .logo-text, | |
| .version-badge, | |
| .panel-title, | |
| .agent-name, | |
| .agent-status, | |
| .nav-item span { | |
| display: none; | |
| } | |
| .nav-item { | |
| justify-content: center; | |
| } | |
| } |