﻿:root {
    --mx-bg: #0b1220;
    --mx-card: #0f1a30;
    --mx-border: rgba(255,255,255,.08);
    --mx-text: #e9eefc;
    --mx-muted: rgba(233,238,252,.7);
    --mx-accent: #6ea8fe;
}

html, body {
    height: 100%;
}

body {
    background: var(--mx-bg);
    color: var(--mx-text);
}

.mx-layout {
    min-height: 100vh;
    display: flex;
}

.mx-sidebar {
    width: 260px;
    background: rgba(15,26,48,.85);
    border-right: 1px solid var(--mx-border);
    backdrop-filter: blur(10px);
    position: sticky;
    top: 0;
    height: 100vh;
    padding: 18px 14px;
}

.mx-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    letter-spacing: .3px;
    font-size: 18px;
    margin-bottom: 18px;
}

.mx-dot {
    width: 12px;
    height: 12px;
    border-radius: 999px;
    background: var(--mx-accent);
    box-shadow: 0 0 18px rgba(110,168,254,.55);
}

.mx-nav a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    color: var(--mx-muted);
    text-decoration: none;
    margin-bottom: 6px;
    transition: .15s ease;
}

    .mx-nav a:hover {
        background: rgba(110,168,254,.10);
        color: var(--mx-text);
    }

    .mx-nav a.active {
        background: rgba(110,168,254,.16);
        color: var(--mx-text);
        border: 1px solid rgba(110,168,254,.22);
    }

.mx-content {
    flex: 1;
}

.mx-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 22px;
    border-bottom: 1px solid var(--mx-border);
    background: rgba(11,18,32,.65);
    backdrop-filter: blur(10px);
    position: sticky;
    top: 0;
    z-index: 10;
}

.mx-search {
    width: min(520px, 55vw);
}

.mx-card {
    background: rgba(15,26,48,.85);
    border: 1px solid var(--mx-border);
    border-radius: 18px;
    box-shadow: 0 12px 40px rgba(0,0,0,.35);
}

.mx-table thead th {
    color: var(--mx-muted);
    border-bottom: 1px solid var(--mx-border) !important;
}

.mx-table td, .mx-table th {
    border-top: 1px solid var(--mx-border) !important;
}

.mx-table tbody tr:hover {
    background: rgba(110,168,254,.06);
}

.mx-badge-income {
    background: rgba(25,135,84,.18);
    border: 1px solid rgba(25,135,84,.35);
    color: #7ee2b8;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
}

.mx-badge-expense {
    background: rgba(220,53,69,.16);
    border: 1px solid rgba(220,53,69,.35);
    color: #ff9aa7;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
}

.mx-mono {
    font-variant-numeric: tabular-nums;
}

.mx-muted {
    color: var(--mx-muted);
}

/* Make text more readable */
.mx-muted {
    color: rgba(233,238,252,.82);
}

/* Inputs & selects for dark UI */
.form-control, .form-select {
    background: rgba(255,255,255,.06) !important;
    color: var(--mx-text) !important;
    border: 1px solid var(--mx-border) !important;
}

    .form-control::placeholder {
        color: rgba(233,238,252,.55) !important;
    }

/* Table text + links */
.table {
    color: var(--mx-text) !important;
}

a {
    color: rgba(233,238,252,.85);
}

    a:hover {
        color: var(--mx-text);
    }

/* Fix Bootstrap striped rows making odd row text dim on dark UI */
.mx-table {
    --bs-table-color: var(--mx-text);
    --bs-table-striped-color: var(--mx-text);
    --bs-table-hover-color: var(--mx-text);
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(110,168,254,.06);
    --bs-table-hover-bg: rgba(110,168,254,.10);
}

    /* Hard override for safety */
    .mx-table.table-striped > tbody > tr:nth-of-type(odd) > * {
        color: var(--mx-text) !important;
    }
