:root {
    --rs-primary: #990A00;
    --rs-primary-dark: #7A0800;
    --rs-bg: #F5F6F8;
    --rs-card-bg: #FFFFFF;
    --rs-text: #444444;
    --rs-text-muted: #6B6B6B;
    --rs-receita: #198754;
    --rs-despesa: #B45309;
    --rs-border: #E5E7EB;
    --bs-primary: var(--rs-primary);
    --bs-primary-rgb: 153, 10, 0;
    --bs-body-bg: var(--rs-bg);
    --bs-body-color: var(--rs-text);
    --bs-border-radius: 8px;
    --bs-font-sans-serif: "Open Sans", system-ui, sans-serif;
}

@font-face {
    font-family: "Open Sans";
    src: url("/fonts/open-sans-v40-latin-regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Open Sans";
    src: url("/fonts/open-sans-v40-latin-700.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

body {
    font-family: var(--bs-font-sans-serif);
    color: var(--rs-text);
    background: var(--rs-bg);
}

.btn-primary {
    --bs-btn-bg: var(--rs-primary);
    --bs-btn-border-color: var(--rs-primary);
    --bs-btn-hover-bg: var(--rs-primary-dark);
    --bs-btn-hover-border-color: var(--rs-primary-dark);
}

.rs-wordmark {
    font-weight: 700;
    font-size: 1.25rem;
    color: var(--rs-text);
}

.rs-wordmark-rs {
    color: var(--rs-primary);
}

.rs-auth-body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--rs-bg);
    padding: 1rem;
}

.rs-auth-card {
    width: 100%;
    max-width: 420px;
    border: 1px solid var(--rs-border);
    border-radius: 8px;
}

.rs-app {
    min-height: 100vh;
}

.rs-shell {
    display: flex;
    min-height: 100vh;
}

.rs-sidebar {
    width: 250px;
    background: var(--rs-card-bg);
    border-right: 1px solid var(--rs-border);
    min-height: 100vh;
    position: sticky;
    top: 0;
}

.rs-sidebar .nav-link {
    color: var(--rs-text-muted);
    border-radius: 6px;
    margin-bottom: 2px;
    min-height: 44px;
    display: flex;
    align-items: center;
}

.rs-sidebar .nav-link:hover,
.rs-sidebar .nav-link.active {
    color: var(--rs-primary);
    background: rgba(153, 10, 0, 0.08);
}

.rs-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.rs-topbar {
    background: var(--rs-card-bg);
    border-bottom: 3px solid var(--rs-primary);
    padding: 0.75rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    position: sticky;
    top: 0;
    z-index: 1020;
}

.rs-content {
    flex: 1;
}

.rs-kpi-card {
    background: var(--rs-card-bg);
    border: 1px solid var(--rs-border);
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    padding: 1.25rem;
}

.rs-kpi-value {
    font-size: 1.5rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.rs-badge-receita {
    background: var(--rs-receita);
}

.rs-badge-despesa {
    background: var(--rs-despesa);
}

.table td.text-end,
.table th.text-end {
    font-variant-numeric: tabular-nums;
}

.rs-mobile-card {
    border: 1px solid var(--rs-border);
    border-radius: 8px;
    padding: 1rem;
    margin-bottom: 0.75rem;
    background: var(--rs-card-bg);
}

@media (max-width: 991.98px) {
    .rs-table-desktop {
        display: none;
    }
}

@media (min-width: 992px) {
    .rs-cards-mobile {
        display: none;
    }
}
