/* Custom CSS for SMTP Management Frontend */ /* Enhanced dark theme tweaks */ .card { border: 1px solid #404040; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); } .card-header { border-bottom: 1px solid #404040; } .table-dark { --bs-table-bg: #2d3748; --bs-table-striped-bg: #374151; } /* Status badges */ .status-active { background-color: #10b981 !important; } .status-inactive { background-color: #ef4444 !important; } .status-pending { background-color: #f59e0b !important; } /* Custom form styling */ .form-control:focus { border-color: #3b82f6; box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.25); } .form-select:focus { border-color: #3b82f6; box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.25); } /* Copy button styling */ .copy-btn { position: relative; overflow: hidden; } .copy-btn::after { content: "Copied!"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: #10b981; color: white; padding: 2px 8px; border-radius: 4px; font-size: 12px; opacity: 0; transition: opacity 0.3s ease; } .copy-btn.copied::after { opacity: 1; } /* DNS record styling */ .dns-record { background-color: #1f2937; border: 1px solid #374151; border-radius: 4px; font-family: 'Courier New', monospace; font-size: 14px; padding: 12px; margin: 8px 0; } .dns-record-header { color: #9ca3af; font-weight: bold; margin-bottom: 4px; } .dns-record-value { color: #e5e7eb; word-break: break-all; } /* Log entry styling */ .log-entry { border-left: 4px solid #374151; padding-left: 12px; margin-bottom: 8px; } .log-entry.log-error { border-left-color: #ef4444; } .log-entry.log-warning { border-left-color: #f59e0b; } .log-entry.log-info { border-left-color: #3b82f6; } .log-entry.log-success { border-left-color: #10b981; } /* Statistics cards */ .stat-card { background: linear-gradient(135deg, #1f2937 0%, #374151 100%); border: 1px solid #4b5563; border-radius: 8px; padding: 20px; text-align: center; transition: transform 0.2s ease, box-shadow 0.2s ease; } .stat-card:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4); } .stat-number { font-size: 2.5rem; font-weight: bold; color: #3b82f6; } .stat-label { color: #9ca3af; font-size: 0.9rem; margin-top: 8px; } /* Loading states */ .loading { opacity: 0.6; pointer-events: none; } .spinner-border-sm { width: 1rem; height: 1rem; } /* Responsive table wrapper */ .table-responsive { border-radius: 8px; border: 1px solid #404040; } /* Alert styling */ .alert { border: none; border-radius: 8px; } .alert-success { background-color: rgba(16, 185, 129, 0.1); color: #10b981; border-left: 4px solid #10b981; } .alert-danger { background-color: rgba(239, 68, 68, 0.1); color: #ef4444; border-left: 4px solid #ef4444; } .alert-warning { background-color: rgba(245, 158, 11, 0.1); color: #f59e0b; border-left: 4px solid #f59e0b; } .alert-info { background-color: rgba(59, 130, 246, 0.1); color: #3b82f6; border-left: 4px solid #3b82f6; } /* Custom scrollbar */ .custom-scrollbar { scrollbar-width: thin; scrollbar-color: #4b5563 #1f2937; } .custom-scrollbar::-webkit-scrollbar { width: 8px; } .custom-scrollbar::-webkit-scrollbar-track { background: #1f2937; } .custom-scrollbar::-webkit-scrollbar-thumb { background-color: #4b5563; border-radius: 4px; } .custom-scrollbar::-webkit-scrollbar-thumb:hover { background-color: #6b7280; } /* Animation classes */ .fade-in { animation: fadeIn 0.3s ease-in; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .slide-in { animation: slideIn 0.3s ease-out; } @keyframes slideIn { from { transform: translateX(-20px); opacity: 0; } to { transform: translateX(0); opacity: 1; } } /* Tooltip styling */ .tooltip { font-size: 12px; } .tooltip-inner { background-color: #1f2937; border: 1px solid #374151; } .tooltip.bs-tooltip-top .tooltip-arrow::before { border-top-color: #374151; } .tooltip.bs-tooltip-bottom .tooltip-arrow::before { border-bottom-color: #374151; } /* Mobile responsiveness */ @media (max-width: 768px) { .stat-number { font-size: 1.8rem; } .dns-record { font-size: 12px; padding: 8px; } .table-responsive { font-size: 14px; } }