:root{
    --navy: #112250;     /* primary dark */
    --sapphire: #3B507D; /* secondary */
    --taupe: #BEB7A7;    /* neutral warm */
    --champagne: #E7E2CE;/* light card */
    --ivory: #F5F4F0;    /* page background */
    --text-dark: #112250;
}

/* Page background and base text */
body {
    min-height: 100vh;
    background-color: var(--ivory);
    color: var(--text-dark);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}

/* Navbar */
.navbar {
    background: var(--navy) !important;
}
.navbar .navbar-brand, .navbar .nav-link, .navbar .text-white {
    color: var(--champagne) !important;
}
.navbar .navbar-brand img { height:44px; width:auto; }

/* Sidebar */
.sidebar {
    min-height: calc(100vh - 56px);
    background: linear-gradient(180deg, var(--sapphire), var(--navy));
    color: var(--champagne);
    border-right: none;
}
.sidebar .nav-link {
    color: var(--champagne);
}
.sidebar .nav-link.active, .sidebar .nav-link:hover {
    background-color: rgba(255,255,255,0.06);
    color: var(--ivory);
}

/* Main content when no sidebar (login) */
.main-fullwidth {
    width: 100%;
}

/* Card styles */
.card {
    border-radius: 0.75rem;
    background: var(--champagne);
    color: var(--navy);
    box-shadow: 0 6px 20px rgba(17,34,80,0.08);
}
.card .card-body { background: transparent; }

/* Buttons */
.btn-primary {
    background: var(--navy);
    border-color: var(--navy);
    color: var(--champagne);
}
.btn-primary:hover, .btn-primary:focus {
    background: var(--sapphire);
    border-color: var(--sapphire);
    color: var(--champagne);
}

/* Links */
a { color: var(--navy); }
a:hover { color: var(--sapphire); }

/* Forms */
.form-control {
    background: var(--ivory);
    color: var(--navy);
    border: 1px solid rgba(17,34,80,0.12);
}
.form-control:focus {
    border-color: rgba(17,34,80,0.25);
    box-shadow: none;
}

/* Login specific */
.fullscreen-center { display:flex; align-items:center; justify-content:center; min-height: calc(100vh - 56px); }
.login-card { width:100%; max-width:540px; }
.login-logo { max-height:140px; margin-bottom:12px; }
.login-card .card { background: var(--champagne); }

/* Tables */
.table thead { background: var(--sapphire); color: var(--champagne); }
.table thead th { color: var(--champagne); }
.table tbody tr { background: transparent; }

/* Footer and muted text */
.footer, .text-muted { color: rgba(17,34,80,0.6); }

/* Small helpers */
.text-primary { color: var(--navy) !important; }
.badge-primary { background: var(--navy); color: var(--champagne); }

/* Ensure modals/cards used for forms contrast well */
.modal-content { background: var(--champagne); color: var(--navy); }

/* Responsive adjustments */
@media (max-width: 767px) {
    .fullscreen-center { padding: 20px; }
    .navbar .navbar-brand img { height:36px; }
}
