Files
MClogger/web/static/css/style.css
SimolZimol 486aa2ff18 modified: web/blueprints/panel.py
modified:   web/static/css/style.css
	modified:   web/templates/base.html
	modified:   web/templates/panel/dashboard.html
2026-04-02 00:09:31 +02:00

254 lines
7.3 KiB
CSS
Raw Permalink 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.
/* ============================================================
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; }