modified: web/static/css/style.css modified: web/templates/base.html modified: web/templates/panel/dashboard.html
254 lines
7.3 KiB
CSS
254 lines
7.3 KiB
CSS
/* ============================================================
|
||
MCLogger – Admin Interface CSS
|
||
Author: SimolZimol
|
||
============================================================ */
|
||
|
||
:root {
|
||
--sidebar-width: 230px;
|
||
--sidebar-bg: #0f1117;
|
||
--sidebar-border: #1e2230;
|
||
--topbar-bg: #13161f;
|
||
--content-bg: #181c27;
|
||
--card-bg: #1e2230;
|
||
--card-border: #2a2f42;
|
||
--text-muted-custom: #6b7280;
|
||
--accent-green: #1db954;
|
||
}
|
||
|
||
/* ── Layout ─────────────────────────────────────────────── */
|
||
html, body {
|
||
height: 100%;
|
||
overflow: hidden;
|
||
background: var(--content-bg);
|
||
font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
|
||
font-size: 14px;
|
||
}
|
||
|
||
#wrapper {
|
||
height: 100vh;
|
||
overflow: hidden;
|
||
}
|
||
|
||
/* ── Sidebar ─────────────────────────────────────────────── */
|
||
#sidebar {
|
||
width: var(--sidebar-width);
|
||
min-width: var(--sidebar-width);
|
||
background: var(--sidebar-bg);
|
||
border-right: 1px solid var(--sidebar-border);
|
||
height: 100vh;
|
||
overflow-y: auto;
|
||
overflow-x: hidden;
|
||
transition: width .25s ease, min-width .25s ease;
|
||
}
|
||
|
||
#sidebar.collapsed {
|
||
width: 64px;
|
||
min-width: 64px;
|
||
padding: .75rem .5rem !important;
|
||
}
|
||
|
||
#sidebar.collapsed .sidebar-brand div,
|
||
#sidebar.collapsed .sidebar-brand small,
|
||
#sidebar.collapsed .sidebar-brand .badge,
|
||
#sidebar.collapsed .nav-link span,
|
||
#sidebar.collapsed .sidebar-hide-collapsed,
|
||
#sidebar.collapsed .btn span {
|
||
display: none;
|
||
}
|
||
|
||
#sidebar.collapsed .nav-link {
|
||
justify-content: center;
|
||
padding: .55rem;
|
||
}
|
||
|
||
#sidebar.collapsed .nav-link i {
|
||
font-size: 1.15rem;
|
||
margin: 0;
|
||
}
|
||
|
||
#sidebar.collapsed .btn {
|
||
padding: .35rem;
|
||
text-align: center;
|
||
}
|
||
|
||
#sidebar.collapsed .btn i {
|
||
margin: 0;
|
||
}
|
||
|
||
.sidebar-brand {
|
||
padding: .25rem 0;
|
||
}
|
||
|
||
#sidebar .nav-link {
|
||
color: #9ca3af;
|
||
border-radius: 6px;
|
||
padding: .45rem .75rem;
|
||
font-size: .875rem;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: .6rem;
|
||
transition: background .15s, color .15s;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
#sidebar .nav-link i {
|
||
font-size: 1rem;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
#sidebar .nav-link:hover { background: rgba(255,255,255,.05); color: #e5e7eb; }
|
||
#sidebar .nav-link.active { background: rgba(29,185,84,.15); color: var(--accent-green); }
|
||
|
||
/* ── Topbar ──────────────────────────────────────────────── */
|
||
.topbar {
|
||
background: var(--topbar-bg);
|
||
border-bottom: 1px solid var(--sidebar-border);
|
||
height: 52px;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
/* ── Content ─────────────────────────────────────────────── */
|
||
#page-content {
|
||
display: flex;
|
||
flex-direction: column;
|
||
background: var(--content-bg);
|
||
height: 100vh;
|
||
}
|
||
|
||
main {
|
||
flex: 1;
|
||
overflow-y: auto;
|
||
}
|
||
|
||
/* ── Cards ───────────────────────────────────────────────── */
|
||
.card {
|
||
background: var(--card-bg);
|
||
border: 1px solid var(--card-border);
|
||
border-radius: 10px;
|
||
}
|
||
|
||
.card-header {
|
||
background: rgba(0,0,0,.2);
|
||
border-bottom: 1px solid var(--card-border);
|
||
font-size: .85rem;
|
||
font-weight: 600;
|
||
color: #d1d5db;
|
||
}
|
||
|
||
/* ── Statistik-Karten ────────────────────────────────────── */
|
||
.stat-card { transition: transform .15s; cursor: default; }
|
||
.stat-card:hover { transform: translateY(-2px); }
|
||
|
||
.stat-icon {
|
||
width: 44px;
|
||
height: 44px;
|
||
border-radius: 10px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
flex-shrink: 0;
|
||
font-size: 1.3rem;
|
||
}
|
||
|
||
.stat-value {
|
||
font-size: 1.5rem;
|
||
font-weight: 700;
|
||
line-height: 1;
|
||
color: #f3f4f6;
|
||
}
|
||
|
||
.stat-label {
|
||
font-size: .72rem;
|
||
color: var(--text-muted-custom);
|
||
margin-top: 2px;
|
||
}
|
||
|
||
/* ── Tabellen ────────────────────────────────────────────── */
|
||
.table {
|
||
color: #d1d5db;
|
||
font-size: .875rem;
|
||
}
|
||
|
||
.table > thead {
|
||
font-size: .8rem;
|
||
letter-spacing: .03em;
|
||
color: #9ca3af;
|
||
}
|
||
|
||
.table-hover > tbody > tr:hover > td {
|
||
background: rgba(255,255,255,.04);
|
||
}
|
||
|
||
.table-dark {
|
||
--bs-table-bg: rgba(0,0,0,.3);
|
||
}
|
||
|
||
/* ── Badges ──────────────────────────────────────────────── */
|
||
.badge { font-size: .7rem; font-weight: 500; }
|
||
|
||
/* ── Inputs ──────────────────────────────────────────────── */
|
||
.form-control, .form-select {
|
||
background-color: #111827;
|
||
border-color: var(--card-border);
|
||
color: #e5e7eb;
|
||
font-size: .8rem;
|
||
}
|
||
|
||
.form-control:focus, .form-select:focus {
|
||
border-color: var(--accent-green);
|
||
box-shadow: 0 0 0 2px rgba(29,185,84,.25);
|
||
background-color: #111827;
|
||
color: #f9fafb;
|
||
}
|
||
|
||
.form-control::placeholder { color: #6b7280; }
|
||
|
||
/* ── Buttons ─────────────────────────────────────────────── */
|
||
.btn-success { background-color: var(--accent-green); border-color: var(--accent-green); }
|
||
.btn-success:hover { background-color: #17a34a; border-color: #17a34a; }
|
||
|
||
/* ── Pagination ──────────────────────────────────────────── */
|
||
.page-link {
|
||
background-color: var(--card-bg);
|
||
border-color: var(--card-border);
|
||
color: #9ca3af;
|
||
font-size: .8rem;
|
||
}
|
||
.page-link:hover { background-color: rgba(255,255,255,.07); color: #f3f4f6; }
|
||
.page-item.active .page-link { background-color: var(--accent-green); border-color: var(--accent-green); color: #000; }
|
||
.page-item.disabled .page-link { background-color: transparent; }
|
||
|
||
/* ── Login-Seite ─────────────────────────────────────────── */
|
||
body .card.shadow-lg {
|
||
background: #1e2230;
|
||
border: 1px solid #2a2f42;
|
||
}
|
||
|
||
/* ── Scrollbars ──────────────────────────────────────────── */
|
||
::-webkit-scrollbar { width: 6px; height: 6px; }
|
||
::-webkit-scrollbar-track { background: transparent; }
|
||
::-webkit-scrollbar-thumb { background: #374151; border-radius: 3px; }
|
||
::-webkit-scrollbar-thumb:hover { background: #4b5563; }
|
||
|
||
/* ── Diverse ─────────────────────────────────────────────── */
|
||
.blink {
|
||
animation: blink-anim 1.5s infinite;
|
||
}
|
||
@keyframes blink-anim {
|
||
0%, 100% { opacity: 1; }
|
||
50% { opacity: .2; }
|
||
}
|
||
|
||
.font-monospace { font-family: 'Consolas', 'Cascadia Code', monospace !important; }
|
||
|
||
.text-truncate { max-width: 250px; }
|
||
|
||
/* Chart.js Canvas */
|
||
canvas { max-height: 250px; }
|
||
|
||
/* Alert */
|
||
.alert { font-size: .85rem; }
|
||
|
||
/* sticky-top in dark scrollable containers */
|
||
.sticky-top { z-index: 1; }
|