:root {
    --sidebar-bg: #212529;
    --sidebar-color: #adb5bd;
    --sidebar-active: #ffffff;
    --content-bg: #f4f7f6;
    --primary: #3085d6;
    --footer-height: 50px;
}

/* Base Layout for Sticky Footer */
html, body {
    height: 100%;
}

body {
    font-family: 'Inter', -apple-system, sans-serif;
    background-color: var(--content-bg);
    margin: 0;
    display: flex;
    flex-direction: column;
}

/* Sidebar Styling */
.sidebar {
    width: 280px;
    height: 100vh;
    background: var(--sidebar-bg);
    position: fixed;
    color: var(--sidebar-color);
    z-index: 1000;
}

.sidebar .brand {
    padding: 20px;
    font-size: 1.5rem;
    font-weight: bold;
    color: #fff;
    border-bottom: 1px solid #343a40;
}

.nav-link {
    color: var(--sidebar-color);
    padding: 12px 20px;
    display: block;
    text-decoration: none;
    transition: all 0.2s ease;
}

.nav-link:hover, .nav-link.active {
    color: #fff;
    background: rgba(255,255,255,0.05);
}

/* Content Area */
.wrapper {
    display: flex;
    flex: 1 0 auto; /* This pushes the footer down */
}

.main-content {
    margin-left: 280px;
    padding: 2rem;
    width: calc(100% - 280px);
    padding-bottom: calc(var(--footer-height) + 2rem);
}

/* The Fixed Black Footer */
.footer {
    width: calc(100% - 280px);
    margin-left: 280px;
    background-color: #000000 !important;
    color: #ffffff !important;
    height: var(--footer-height);
    line-height: var(--footer-height);
    position: fixed;
    bottom: 0;
    right: 0;
    z-index: 999;
}

.footer span {
    font-size: 0.85rem;
    font-weight: 300;
}

/* Card Styling */
.card {
    border: none;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    border-radius: 4px;
}

/* Mobile Responsiveness */
@media (max-width: 992px) {
    .sidebar { margin-left: -280px; }
    .main-content, .footer { margin-left: 0; width: 100%; }
}