Files
NetBirdMSP-Appliance/static/css/styles.css
2026-02-07 12:18:20 +01:00

176 lines
3.0 KiB
CSS

/* NetBird MSP Appliance - Custom Styles */
/* Login */
.login-container {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
}
.login-card {
width: 100%;
max-width: 420px;
border-radius: 12px;
}
/* Stats cards */
.stat-card {
border-radius: 10px;
transition: transform 0.15s;
}
.stat-card:hover {
transform: translateY(-2px);
}
.stat-icon {
width: 48px;
height: 48px;
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
}
/* Table */
.table th {
font-weight: 600;
font-size: 0.85rem;
text-transform: uppercase;
letter-spacing: 0.5px;
color: #6c757d;
}
.table td {
vertical-align: middle;
}
/* Log viewer */
.log-viewer {
max-height: 600px;
overflow-y: auto;
}
.log-entry {
padding: 4px 8px;
border-bottom: 1px solid #f0f0f0;
font-size: 0.85rem;
font-family: 'Consolas', 'Monaco', monospace;
}
.log-entry:last-child {
border-bottom: none;
}
.log-time {
color: #6c757d;
margin-right: 8px;
}
.log-pre {
background: #1e1e1e;
color: #d4d4d4;
padding: 12px;
border-radius: 6px;
max-height: 300px;
overflow-y: auto;
font-size: 0.8rem;
white-space: pre-wrap;
word-wrap: break-word;
}
/* Toast notification */
.toast-notification {
position: fixed;
bottom: 20px;
right: 20px;
background: #198754;
color: white;
padding: 12px 24px;
border-radius: 8px;
font-size: 0.9rem;
z-index: 9999;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
animation: toast-in 0.3s ease, toast-out 0.3s ease 2.7s;
}
@keyframes toast-in {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes toast-out {
from { opacity: 1; }
to { opacity: 0; }
}
/* Badge improvements */
.badge {
font-weight: 500;
font-size: 0.75rem;
padding: 0.35em 0.65em;
}
/* Page transitions */
.page-content {
animation: fade-in 0.15s ease;
}
@keyframes fade-in {
from { opacity: 0; }
to { opacity: 1; }
}
/* Progress bars in monitoring */
.progress {
border-radius: 6px;
}
.progress-bar {
font-size: 0.75rem;
font-weight: 600;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.stat-card .fs-3 {
font-size: 1.5rem !important;
}
.btn-group-sm .btn {
padding: 0.2rem 0.4rem;
}
}
/* Custom scrollbar */
.log-pre::-webkit-scrollbar,
.log-viewer::-webkit-scrollbar {
width: 6px;
}
.log-pre::-webkit-scrollbar-thumb,
.log-viewer::-webkit-scrollbar-thumb {
background: #555;
border-radius: 3px;
}
/* Navbar brand */
.navbar-brand {
font-weight: 700;
letter-spacing: 0.5px;
}
/* Card improvements */
.card {
border-radius: 10px;
border: 1px solid rgba(0, 0, 0, 0.08);
}
.card-header {
font-weight: 600;
background: rgba(0, 0, 0, 0.02);
}