Files
medi-wol/web/static/style.css
Markus b6888ca5da Implementiere umfassendes Logging-System für WOL-Ereignisse
- Neue Log-Tabelle in der Datenbank
- Automatisches Logging bei WOL-Button-Klicks
- Dedizierte Logs-Seite mit Bootstrap-Design
- Tooltips mit letzten 5 WOL-Ereignissen pro PC
- API-Endpunkte für Log-Verwaltung
- Einheitliches Design zwischen Haupt- und Logs-Seite
- Vollständige Dokumentation des Logging-Systems
2025-08-22 07:16:14 +02:00

299 lines
5.6 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* Custom Styles für Medi-WOL angepasst an medisoftware.de */
:root {
--brand-primary: #0b6fb3; /* inspiriert von medisoftware.de */
--brand-primary-dark: #08588e;
--brand-accent: #1f7ec9;
}
body {
background-color: #f5f8fb;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.app-header {
background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-accent) 100%);
color: #fff;
border-radius: 12px;
padding: 16px 20px;
display: flex;
align-items: center;
gap: 16px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
}
.app-header img {
height: 48px;
}
.app-header h1 {
font-size: 1.5rem;
margin: 0;
}
.card {
border: none;
border-radius: 15px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
transition: transform 0.2s ease-in-out;
}
.card:hover {
transform: translateY(-2px);
}
.card-header {
background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-accent) 100%);
color: white;
border-radius: 15px 15px 0 0 !important;
border: none;
}
.btn {
border-radius: 25px;
padding: 8px 20px;
font-weight: 500;
transition: all 0.3s ease;
}
.btn:hover {
transform: translateY(-1px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}
.btn-primary {
background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-accent) 100%);
border: none;
}
.btn-success {
background: linear-gradient(135deg, #56ab2f 0%, #a8e6cf 100%);
border: none;
}
.btn-danger {
background: linear-gradient(135deg, #ff416c 0%, #ff4b2b 100%);
border: none;
}
.btn-warning {
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
border: none;
}
.table {
border-radius: 10px;
overflow: hidden;
}
.table thead th {
background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-accent) 100%);
color: white;
border: none;
font-weight: 600;
}
.table tbody tr {
transition: background-color 0.2s ease;
}
.table tbody tr:hover {
background-color: #f8f9fa;
}
.form-control {
border-radius: 10px;
border: 2px solid #e9ecef;
transition: border-color 0.3s ease;
}
.form-control:focus {
border-color: var(--brand-primary);
box-shadow: 0 0 0 0.2rem rgba(11, 111, 179, 0.25);
}
.toast {
border-radius: 15px;
border: none;
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
}
.toast-header {
background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-accent) 100%);
color: white;
border-radius: 15px 15px 0 0;
}
.btn-close {
filter: invert(1);
}
/* Animationen */
@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
.card {
animation: fadeIn 0.5s ease-out;
}
/* Responsive Design */
@media (max-width: 768px) {
.container {
padding: 0 15px;
}
.btn {
width: 100%;
margin-bottom: 10px;
}
.table-responsive {
font-size: 0.9rem;
}
}
/* Custom Scrollbar */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: #f1f1f1;
border-radius: 10px;
}
::-webkit-scrollbar-thumb {
background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-accent) 100%);
border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
background: linear-gradient(135deg, #5a6fd8 0%, #6a4190 100%);
}
/* Navigation */
.navbar {
border-radius: 10px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.navbar-nav .nav-link {
color: var(--brand-primary) !important;
font-weight: 500;
padding: 10px 20px;
border-radius: 25px;
transition: all 0.3s ease;
}
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active {
background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-accent) 100%);
color: white !important;
transform: translateY(-1px);
}
/* Logs-Seite */
.logs-container {
position: relative;
min-height: 400px;
}
.logs-table-container {
background: white;
border-radius: 15px;
overflow: hidden;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.logs-table {
margin: 0;
width: 100%;
}
.logs-table th {
background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-accent) 100%);
color: white;
border: none;
padding: 15px;
font-weight: 600;
text-align: left;
}
.logs-table td {
padding: 12px 15px;
border-bottom: 1px solid #e9ecef;
vertical-align: middle;
}
.logs-table tbody tr:hover {
background-color: #f8f9fa;
}
.loading {
text-align: center;
padding: 40px;
color: var(--brand-primary);
}
.spinner {
border: 4px solid #f3f3f3;
border-top: 4px solid var(--brand-primary);
border-radius: 50%;
width: 40px;
height: 40px;
animation: spin 1s linear infinite;
margin: 0 auto 20px;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.no-logs {
text-align: center;
padding: 40px;
color: #6c757d;
}
.error {
color: #dc3545;
font-weight: 500;
}
/* Verbesserte Tooltips */
.tooltip {
font-size: 0.875rem;
}
.tooltip-inner {
background: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-accent) 100%);
color: white;
border-radius: 8px;
padding: 8px 12px;
max-width: 300px;
text-align: left;
}
.tooltip-arrow::before {
border-top-color: var(--brand-primary) !important;
}
/* Content Header */
.content-header {
text-align: center;
margin-bottom: 30px;
}
.content-header h2 {
color: var(--brand-primary);
margin-bottom: 10px;
}
.content-header p {
color: #6c757d;
font-size: 1.1rem;
}