/* ============================================================
   admin.css

   Admin-Redesign – VIVAWEST-inspiriertes Design (analog Portal).
   Wird zusaetzlich zu app.css im Admin-Bereich geladen.

   @package ImmoSaaS
   @module  Admin / Assets
   @author  Darius Suchanek
   @version 1.0.0
   @since   2026-06-19
   ============================================================ */

:root {
    --admin-primary:      #0891b2;
    --admin-primary-h:    #0e7490;
    --admin-primary-soft: #ecfeff;
    --admin-accent:       #e11d48;
    --admin-sidebar-bg:   #ffffff;
    --admin-sidebar-tx:   #4b5563;
    --admin-sidebar-cat:  #9ca3af;
    --admin-bg:           #f3f4f6;
    --admin-surface:      #ffffff;
    --admin-border:       #e5e7eb;
    --admin-text:         #111827;
    --admin-muted:        #6b7280;
    --admin-radius:       6px;
    --admin-shadow:       0 1px 4px rgba(0,0,0,.08);
}

/* ── Body ── */
body.admin-body {
    background: var(--admin-bg);
    color: var(--admin-text);
}

/* ── Topbar ── */
body.admin-body .topbar {
    background: var(--admin-primary);
    box-shadow: none;
    border-bottom: none;
}
body.admin-body .topbar-brand { color: #fff; }
body.admin-body .topbar-brand span { color: #fff; opacity: .75; }
body.admin-body .topbar-user   { color: rgba(255,255,255,.85); }
body.admin-body .topbar-logout { color: rgba(255,255,255,.75); }
body.admin-body .topbar-logout:hover { background: rgba(255,255,255,.15); color: #fff; }

/* ── Sidebar ── */
body.admin-body .sidebar {
    background: var(--admin-sidebar-bg);
    border-right: 1px solid var(--admin-border);
    box-shadow: 2px 0 8px rgba(0,0,0,.06);
}
body.admin-body .sidebar-section {
    color: var(--admin-sidebar-cat);
}
body.admin-body .sidebar a {
    color: var(--admin-sidebar-tx);
    border-right: none;
}
body.admin-body .sidebar a:hover {
    background: var(--admin-primary-soft);
    color: var(--admin-primary);
}
body.admin-body .sidebar a.active {
    background: var(--admin-primary-soft);
    color: var(--admin-primary);
    border-left-color: var(--admin-primary);
}
body.admin-body .sidebar a svg        { opacity: .6; }
body.admin-body .sidebar a:hover svg  { opacity: 1; }
body.admin-body .sidebar a.active svg { opacity: 1; }

/* ── Page-Header / Titel ── */
body.admin-body .page-title { color: var(--admin-text); }

/* ── Cards ── */
body.admin-body .card {
    background: var(--admin-surface);
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius);
    box-shadow: var(--admin-shadow);
    transition: box-shadow .15s;
}
body.admin-body .card-title {
    color: var(--admin-text);
    padding-bottom: .6rem;
    border-bottom: 1px solid var(--admin-border);
}

/* ── Stat-Cards ── */
body.admin-body .stat-card {
    border-radius: var(--admin-radius);
    border: 1px solid var(--admin-border);
    box-shadow: var(--admin-shadow);
    transition: box-shadow .15s;
}
body.admin-body .stat-card:hover { box-shadow: 0 4px 12px rgba(8,145,178,.12); }
body.admin-body .stat-value { color: var(--admin-primary); }

/* ── Buttons ── */
body.admin-body .btn-primary { background: var(--admin-primary); color: #fff; }
body.admin-body .btn-primary:hover { background: var(--admin-primary-h); }

/* ── Links ── */
body.admin-body a { color: var(--admin-primary); }
body.admin-body a:hover { color: var(--admin-primary-h); }

/* ── Formulare ── */
body.admin-body .form-control:focus {
    border-color: var(--admin-primary);
    box-shadow: 0 0 0 3px rgba(8,145,178,.15);
}
body.admin-body .form-label { color: var(--admin-muted); }

/* ── Tabellen ── */
body.admin-body .table th {
    background: #f9fafb;
    color: var(--admin-muted);
    border-bottom: 1px solid var(--admin-border);
}
body.admin-body .table td {
    border-bottom: 1px solid #f3f4f6;
    color: var(--admin-text);
}
body.admin-body .table tbody tr:hover td { background: #f9fafb; }

/* ── Badges ── */
body.admin-body .badge-info    { background: var(--admin-primary-soft); color: var(--admin-primary); }
body.admin-body .badge-danger  { background: #ffe4e6; color: var(--admin-accent); }
body.admin-body .badge-success { background: #d1fae5; color: #065f46; }

/* ── Alerts ── */
body.admin-body .alert-info {
    background: var(--admin-primary-soft);
    border-color: #a5f3fc;
    color: #155e75;
}

/* ── Nachrichten-Badge (Sidebar) ── */
.nav-badge {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 18px; height: 18px; padding: 0 5px;
    border-radius: 20px; background: var(--admin-accent);
    color: #fff; font-size: .65rem; font-weight: 700;
    margin-left: auto;
}

/* ── Saldo / Text-Status ── */
body.admin-body .text-danger  { color: var(--admin-accent) !important; }
body.admin-body .text-success { color: #059669 !important; }

/* ── Dashboard Tiles (Polish v1.1) ── */
.admin-tile {
    background: var(--admin-surface);
    border: 1px solid var(--admin-border);
    border-radius: var(--admin-radius);
    box-shadow: var(--admin-shadow);
    padding: 1.1rem 1.25rem;
    transition: box-shadow .15s, border-color .15s;
    height: 100%;
}
.admin-tile:hover {
    box-shadow: 0 4px 14px rgba(8,145,178,.13);
    border-color: var(--admin-primary);
}
.admin-tile-icon {
    color: var(--admin-primary);
    margin-bottom: .5rem;
}
.admin-tile-label {
    font-size: .82rem;
    font-weight: 700;
    color: var(--admin-text);
    margin-bottom: .35rem;
}
.admin-tile-value {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--admin-primary);
    line-height: 1.1;
    margin-bottom: .2rem;
}
.admin-tile-sub {
    font-size: .75rem;
    color: var(--admin-muted);
}

/* ── Filter-Tabs (Cyan-Stil) ── */
body.admin-body .filter-tab.active {
    background: var(--admin-primary);
    border-color: var(--admin-primary);
    color: #fff;
}
body.admin-body .filter-tab:hover {
    background: var(--admin-primary-soft);
    color: var(--admin-primary);
}
