/* SecuBox Admin - Common Styles */ /* Stat Cards */ .stat-card { padding: 1.5rem; border-radius: 8px; background: #fff; border: 1px solid #e0e0e0; text-align: center; transition: transform 0.2s; } .stat-card:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } .stat-card.blue { border-left: 4px solid #2196F3; } .stat-card.green { border-left: 4px solid #4CAF50; } .stat-card.success { border-left: 4px solid #8BC34A; } .stat-card.warning { border-left: 4px solid #FF9800; } .stat-card.muted { border-left: 4px solid #9E9E9E; } .stat-icon { font-size: 2rem; margin-bottom: 0.5rem; } .stat-value { font-size: 2rem; font-weight: bold; color: #333; display: block; } .stat-label { font-size: 0.875rem; color: #666; margin-top: 0.5rem; display: block; } /* Badges */ .badge { display: inline-block; padding: 0.25rem 0.75rem; font-size: 0.75rem; font-weight: 600; line-height: 1; border-radius: 12px; text-align: center; } .badge-success { background-color: #4CAF50; color: white; } .badge-warning { background-color: #FF9800; color: white; } .badge-danger { background-color: #f44336; color: white; } .badge-secondary { background-color: #757575; color: white; } /* Progress Bars */ .progress { height: 8px; background-color: #e0e0e0; border-radius: 4px; overflow: hidden; margin: 0.5rem 0; } .progress-bar { height: 100%; background-color: #2196F3; transition: width 0.3s ease; } /* Cards */ .card { background: #fff; border: 1px solid #e0e0e0; border-radius: 8px; padding: 1.5rem; margin-bottom: 1rem; } .card h3 { margin-top: 0; margin-bottom: 1rem; font-size: 1.25rem; color: #333; } /* Alerts */ .alert { padding: 1rem; border-radius: 4px; margin-bottom: 1rem; position: relative; } .alert-info { background-color: #E3F2FD; border-left: 4px solid #2196F3; color: #0D47A1; } .alert-warning { background-color: #FFF3E0; border-left: 4px solid #FF9800; color: #E65100; } .alert-danger { background-color: #FFEBEE; border-left: 4px solid #f44336; color: #B71C1C; } .alert-success { background-color: #E8F5E9; border-left: 4px solid #4CAF50; color: #1B5E20; } .alert-close { position: absolute; top: 0.5rem; right: 0.5rem; background: none; border: none; font-size: 1.5rem; cursor: pointer; color: inherit; opacity: 0.5; } .alert-close:hover { opacity: 1; } /* Loader */ .loader-container { text-align: center; padding: 2rem; } .loader { border: 4px solid #f3f3f3; border-top: 4px solid #2196F3; border-radius: 50%; width: 40px; height: 40px; animation: spin 1s linear infinite; margin: 0 auto 1rem; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Buttons */ .btn { display: inline-block; padding: 0.5rem 1rem; font-size: 0.875rem; border: 1px solid #ccc; border-radius: 4px; background: #fff; cursor: pointer; transition: all 0.2s; } .btn:hover { background: #f5f5f5; } .btn-primary { background-color: #2196F3; border-color: #2196F3; color: white; } .btn-primary:hover { background-color: #1976D2; } .btn-success { background-color: #4CAF50; border-color: #4CAF50; color: white; } .btn-success:hover { background-color: #388E3C; } .btn-danger { background-color: #f44336; border-color: #f44336; color: white; } .btn-danger:hover { background-color: #D32F2F; } .btn-warning { background-color: #FF9800; border-color: #FF9800; color: white; } .btn-warning:hover { background-color: #F57C00; } .btn-sm { padding: 0.25rem 0.5rem; font-size: 0.75rem; } /* Utility Classes */ .text-muted { color: #757575; } .right { text-align: right; } .view-all-link { color: #2196F3; text-decoration: none; font-size: 0.875rem; } .view-all-link:hover { text-decoration: underline; } /* Responsive */ @media (max-width: 768px) { .stat-card { padding: 1rem; } .stat-value { font-size: 1.5rem; } .card { padding: 1rem; } }