322 lines
6.1 KiB
CSS
322 lines
6.1 KiB
CSS
/* 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;
|
||
}
|
||
|
||
/* Autostart-Checkbox Styling - vereinfacht */
|
||
.form-check {
|
||
display: flex;
|
||
align-items: center;
|
||
min-height: 38px; /* Gleiche Höhe wie form-control */
|
||
}
|
||
|
||
/* Spezifische Ausrichtung für die Autostart-Zeile */
|
||
.row .col-md-6 .form-check {
|
||
height: 38px;
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
/* Mehr Abstand zwischen Checkbox und Label */
|
||
.form-check-input[type="checkbox"] {
|
||
margin-right: 0.5em; /* Erhöhter Abstand zur Checkbox */
|
||
}
|
||
|
||
.form-check-label {
|
||
margin-left: 0.5em; /* Zusätzlicher Abstand zum Label */
|
||
}
|
||
|
||
/* 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;
|
||
}
|