/* Bootstrap-kompatible Log Styles */ .logs-container { height: 600px; background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 0.375rem; overflow: hidden; } .logs-content { height: 100%; overflow-y: auto; padding: 1rem; font-family: 'Courier New', monospace; font-size: 0.875rem; line-height: 1.4; background: #212529; color: #fff; } .log-entry { margin-bottom: 0.5rem; padding: 0.5rem 0.75rem; border-radius: 0.375rem; border-left: 4px solid transparent; transition: all 0.2s ease; word-wrap: break-word; } .log-entry:hover { background: rgba(255, 255, 255, 0.1); } .log-entry.INFO { border-left-color: #198754; background: rgba(25, 135, 84, 0.1); } .log-entry.WARNING { border-left-color: #fd7e14; background: rgba(253, 126, 20, 0.1); } .log-entry.ERROR { border-left-color: #dc3545; background: rgba(220, 53, 69, 0.1); } .log-timestamp { color: #6c757d; font-size: 0.75rem; margin-right: 0.75rem; } .log-level { font-weight: bold; margin-right: 0.75rem; min-width: 60px; display: inline-block; font-size: 0.75rem; } .log-level.INFO { color: #198754; } .log-level.WARNING { color: #fd7e14; } .log-level.ERROR { color: #dc3545; } .log-message { color: #fff; } /* Button States */ .btn.active { background-color: var(--bs-primary); border-color: var(--bs-primary); color: white; } /* Status Indicator */ #log-status-indicator { transition: all 0.3s ease; } #log-status-indicator:hover { transform: scale(1.05); } .badge.bg-success { animation: pulse 2s infinite; } @keyframes pulse { 0% { opacity: 1; } 50% { opacity: 0.7; } 100% { opacity: 1; } } /* Dark theme for logs */ @media (prefers-color-scheme: dark) { .logs-container { background: #343a40; border-color: #495057; } .card { background: #343a40; border-color: #495057; } .card-header { background: #495057; border-color: #6c757d; color: #fff; } } /* Responsive */ @media (max-width: 768px) { .logs-container { height: 400px; } .logs-content { font-size: 0.75rem; padding: 0.5rem; } .log-entry { padding: 0.25rem 0.5rem; margin-bottom: 0.25rem; } }