/* ── Hero ─────────────────────────────────────────── */
.hero-section {
    background: linear-gradient(135deg, #1d4ed8 0%, #0891b2 60%, #059669 100%);
    padding: 5rem 0;
}

/* ── Statistik ───────────────────────────────────── */
.stat-number {
    font-size: 2.5rem;
    font-weight: 800;
    color: #1d4ed8;
    line-height: 1;
}
.stat-label {
    font-size: .85rem;
    color: #6b7280;
    margin-top: .25rem;
    text-transform: uppercase;
    letter-spacing: .05em;
}

/* ── Activity cards ──────────────────────────────── */
.activity-card { transition: transform .2s, box-shadow .2s; }
.activity-card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,.12) !important; }

/* ── News cards ──────────────────────────────────── */
.news-card { transition: transform .2s, box-shadow .2s; }
.news-card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0,0,0,.1) !important; }

/* ── Navbar active ───────────────────────────────── */
.navbar .nav-link.active { color: #1d4ed8 !important; font-weight: 600; }

/* ── Admin sidebar (desktop) ─────────────────────── */
.admin-sidebar {
    min-height: 100vh;
    width: 240px;
    background: #0f172a;
    flex-shrink: 0;
}
.admin-sidebar .nav-link {
    color: #94a3b8;
    padding: .55rem 1rem;
    border-radius: 6px;
    margin-bottom: 2px;
    font-size: .9rem;
}
.admin-sidebar .nav-link:hover { background: #1e293b; color: #f1f5f9; }
.admin-sidebar .nav-link.active { background: #1d4ed8; color: #fff; }
.admin-sidebar .nav-link i { width: 18px; display: inline-block; }

/* ── Admin mobile top bar ────────────────────────── */
.admin-topbar {
    position: sticky;
    top: 0;
    z-index: 1030;
    height: 52px;
    background: #0f172a;
    border-bottom: 1px solid #1e293b;
}

/* ── Admin offcanvas (mobile sidebar) ────────────── */
.admin-offcanvas {
    background: #0f172a;
    width: 270px !important;
}
.admin-offcanvas .offcanvas-header {
    border-bottom: 1px solid #1e293b;
}
.admin-offcanvas .nav-link {
    color: #94a3b8;
    padding: .65rem 1rem;
    border-radius: 6px;
    margin-bottom: 2px;
    font-size: .95rem;
}
.admin-offcanvas .nav-link:hover { background: #1e293b; color: #f1f5f9; }
.admin-offcanvas .nav-link.active { background: #1d4ed8; color: #fff; }
.admin-offcanvas .nav-link i { width: 20px; display: inline-block; }

/* ── Admin mobile: touch targets & layout ────────── */
@media (max-width: 767.98px) {
    /* Larger tap targets for icon-only table buttons */
    .admin-main .btn-sm {
        min-height: 40px;
        min-width: 40px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
    /* Page header rows (title + action button) wrap on narrow screens */
    .admin-main > .d-flex.justify-content-between {
        flex-wrap: wrap;
        gap: .5rem;
    }
}

/* ── Calendar status badges ──────────────────────── */
.badge-aktiv { background: #d1fae5; color: #065f46; }
.badge-installat { background: #fee2e2; color: #991b1b; }
.badge-ersatt { background: #fef3c7; color: #92400e; }

/* ── Footer ──────────────────────────────────────── */
footer.bg-dark .text-muted { color: rgba(255,255,255,.65) !important; }
footer.bg-dark a.text-muted:hover { color: rgba(255,255,255,.9) !important; }

/* ── General ─────────────────────────────────────── */
body { font-family: system-ui, -apple-system, 'Segoe UI', sans-serif; }
.section-title { font-weight: 800; color: #0f172a; }
.text-gradient { background: linear-gradient(135deg, #1d4ed8, #0891b2); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
