:root {
    --apeba-teal: #009f9a;
    --apeba-teal-dark: #007a76;
    --apeba-lime: #a7c93f;
    --apeba-lime-dark: #7da027;
    --apeba-gold: #f4a046;
    --apeba-gold-dark: #d57d1c;
    --apeba-orange: #f26c3d;
    --apeba-slate: #1f2f30;
    --apeba-grey: #5f6f70;
    --apeba-soft: #f0f7f7;
    --apeba-border: #d5e5e4;
    --apeba-gradient: linear-gradient(135deg, rgba(0, 159, 154, 0.95) 0%, rgba(244, 160, 70, 0.9) 100%);
    --apeba-gradient-light: linear-gradient(135deg, rgba(167, 201, 63, 0.9) 0%, rgba(244, 160, 70, 0.9) 100%);
}

body {
    background: #eef6f6;
}

body.dashboard {
    overflow-x: hidden;
}

#nav-sidebar .addlink,
#nav-sidebar .addlink:link,
#nav-sidebar .addlink:visited,
#nav-sidebar .addlink:hover,
#nav-sidebar .addlink:focus,
#nav-sidebar .addlink::before,
#nav-sidebar .addlink::after {
    display: none !important;
    visibility: hidden !important;
}

#branding h1,
#branding h1 a:link,
#branding h1 a:visited {
    color: #ffffff;
}

.apeba-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
}

.apeba-brand__logo {
    max-height: 72px;
    width: auto;
    filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.12));
}

#header {
    background: linear-gradient(135deg, var(--apeba-teal) 0%, rgba(0, 122, 118, 0.92) 100%);
    color: #ffffff;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.12);
}

#header a:link,
#header a:visited {
    color: #ffffff;
}

#header a:hover {
    color: #ffffff;
    opacity: 0.85;
}

div.breadcrumbs {
    background: var(--apeba-gradient);
    color: rgba(255, 255, 255, 0.96);
}

.breadcrumbs__actions {
    margin-top: 8px;
    display: flex;
    justify-content: flex-end;
}

.breadcrumbs__actions .apeba-home-link {
    background: rgba(255, 255, 255, 0.18);
    color: #ffffff;
    border-radius: 999px;
    padding: 8px 18px;
    font-weight: 600;
    text-decoration: none;
}

.breadcrumbs__actions .apeba-home-link:hover,
.breadcrumbs__actions .apeba-home-link:focus {
    background: rgba(255, 255, 255, 0.28);
}

div.breadcrumbs a,
div.breadcrumbs a:visited {
    color: rgba(255, 255, 255, 0.96);
}

div.breadcrumbs a:focus,
div.breadcrumbs a:hover {
    color: #ffffff;
    text-decoration: underline;
}

.select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] {
    background-color: var(--apeba-teal);
}

.paginator a:link,
.paginator a:visited {
    background: var(--apeba-teal);
    border-color: transparent;
    color: #ffffff;
}

.paginator a:focus,
.paginator a:hover {
    background: var(--apeba-teal-dark);
}

.paginator a.showall:focus,
.paginator a.showall:hover {
    color: var(--apeba-teal-dark);
}

.button,
input[type=submit],
input[type=button],
.submit-row input,
a.button {
    background: var(--apeba-lime);
    border-color: transparent;
    color: #1f2527;
    font-weight: 600;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.button:hover,
input[type=submit]:hover,
input[type=button]:hover,
.submit-row input:hover,
a.button:hover {
    background: var(--apeba-lime-dark);
    color: #13191a;
    transform: translateY(-1px);
    box-shadow: 0 8px 16px rgba(0, 159, 154, 0.18);
}

.button.default,
input[type=submit].default,
.submit-row input.default {
    background: var(--apeba-teal);
    color: #ffffff;
}

.button.default:hover,
input[type=submit].default:hover,
.submit-row input.default:hover {
    background: var(--apeba-teal-dark);
}

.apeba-submit-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}

.apeba-submit-row button,
.apeba-submit-row .deletelink {
    border-radius: 999px;
    padding: 10px 20px;
    font-weight: 600;
}

.apeba-submit-home {
    box-shadow: 0 10px 22px rgba(0, 159, 154, 0.24);
}

.apeba-submit-home:hover,
.apeba-submit-home:focus {
    box-shadow: 0 12px 28px rgba(0, 122, 118, 0.28);
}

.module,
.inline-group,
.change-list .results,
.change-list .filtered {
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(10, 31, 33, 0.08);
    border: 1px solid var(--apeba-border);
}

.module > table,
.inline-group > fieldset,
.change-list .results {
    border-radius: 0 0 12px 12px;
    overflow: hidden;
}

.module h2,
.module caption,
.inline-group h2 {
    background: linear-gradient(135deg, var(--apeba-teal) 0%, var(--apeba-gold) 100%);
    color: #ffffff;
    border: none;
    border-radius: 12px 12px 0 0;
    padding: 16px 20px;
    font-size: 0.95rem;
    letter-spacing: 0.01em;
}

#user-tools a:focus,
#user-tools a:hover {
    border: 0;
    color: rgba(255, 255, 255, 0.8);
}

.selector-chosen h2,
.calendar td.selected a,
.calendar td a:focus,
.calendar td a:hover,
.timelist a:focus,
.timelist a:hover {
    background: var(--apeba-teal) !important;
    color: #ffffff !important;
}

#changelist-filter li.selected a,
fieldset.collapsed .collapse-toggle {
    color: var(--apeba-slate);
}

a:link,
a:visited {
    color: var(--apeba-teal);
}

a:focus,
a:hover {
    color: var(--apeba-orange);
}

table thead th.sorted .sortoptions a.sortremove:focus:after,
table thead th.sorted .sortoptions a.sortremove:hover:after {
    color: var(--apeba-slate);
}

a.active.selector-chooseall:focus,
a.active.selector-clearall:focus,
a.active.selector-chooseall:hover,
a.active.selector-clearall:hover {
    color: var(--apeba-teal-dark);
}

table thead th {
    background: var(--apeba-soft);
    color: var(--apeba-slate);
    font-weight: 600;
    border-bottom: 1px solid var(--apeba-border);
}

table tbody tr:nth-child(odd) {
    background: rgba(0, 159, 154, 0.04);
}

table tbody tr:hover {
    background: rgba(0, 159, 154, 0.12);
}

.results table {
    border-collapse: separate;
    border-spacing: 0;
}

.column-ativo,
.column-status,
.column-is_confirmed,
.column-is_paid {
    text-align: center;
}

.column-amount,
.column-income_confirmed,
.column-expense_paid,
.column-net_cash {
    font-variant-numeric: tabular-nums;
}

.calendar td a:active,
.timelist a:active {
    background: var(--apeba-orange);
    color: #ffffff;
}

.change-list ul.toplinks .date-back a:focus,
.change-list ul.toplinks .date-back a:hover {
    color: var(--apeba-teal);
}

.calendar caption,
.calendarbox h2 {
    background: var(--apeba-grey);
    color: #ffffff;
}

.object-tools {
    display: flex;
    gap: 12px;
}

.object-tools a,
.object-tools button {
    border-radius: 999px;
    padding: 10px 18px;
    font-weight: 600;
    background: var(--apeba-gold);
    color: #213132;
    border: none;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.object-tools a:focus,
.object-tools a:hover,
input[type=file]::-webkit-file-upload-button:hover {
    background-color: var(--apeba-gold-dark);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.apeba-inline-add {
    display: flex;
    justify-content: flex-start;
    margin: 16px 0;
}

.apeba-inline-add--top {
    margin-top: 24px;
}

.apeba-inline-add--bottom {
    margin-bottom: 24px;
}

.apeba-inline-add__link {
    text-decoration: none;
    font-weight: 600;
}

#changelist-filter {
    position: sticky;
    top: 80px;
    right: 15px;
    border-radius: 12px;
    box-shadow: 0 8px 18px rgba(0, 63, 60, 0.12);
}

#changelist-filter h2 {
    padding-top: 0;
    padding-bottom: 0;
}

body.dashboard #content {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    overflow: visible;
}

.dashboard-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 10px 25px rgba(0, 63, 60, 0.12);
    border: 1px solid var(--apeba-border);
}

.dashboard-card--accent {
    background: var(--apeba-gradient-light);
    color: #1f2f30;
}

.dashboard-card__title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--apeba-slate);
    margin-bottom: 12px;
}

.dashboard-card--accent .dashboard-card__title {
    color: rgba(10, 32, 33, 0.82);
}

.dashboard-card__metric {
    font-size: 2.4rem;
    font-weight: 700;
    color: var(--apeba-teal);
    margin: 0;
}

.dashboard-card--accent .dashboard-card__metric {
    color: #ffffff;
}

.dashboard-card__subtitle {
    margin-top: 8px;
    font-size: 0.95rem;
    color: var(--apeba-grey);
}

.dashboard-card__delta {
    margin-top: 10px;
    font-size: 0.9rem;
    color: var(--apeba-slate);
}

.delta {
    font-weight: 600;
}

.delta--positive {
    color: var(--apeba-lime-dark);
}

.delta--negative {
    color: #c0392b;
}

.delta--warning {
    color: var(--apeba-orange);
}

.dashboard-modules {
    margin-top: 32px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    width: 100%;
    overflow-x: auto;
    padding-bottom: 8px;
}

.dashboard-modules .module {
    border-radius: 16px;
    overflow: hidden;
}

.dashboard-tools {
    margin: 32px 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 24px;
}

.admin-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.admin-table th,
.admin-table td {
    padding: 14px 18px;
    border-bottom: 1px solid var(--apeba-border);
}

.admin-table tbody tr:last-child th,
.admin-table tbody tr:last-child td {
    border-bottom: none;
}

.admin-table tbody tr:hover {
    background: rgba(0, 159, 154, 0.08);
}

.admin-table .actions {
    text-align: right;
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}

.import-module {
    padding: 24px;
}

.import-body {
    display: grid;
    grid-template-columns: minmax(260px, 1.2fr) minmax(220px, 0.8fr);
    gap: 32px;
}

.import-form .form-row {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 18px;
}

.import-form .help {
    font-size: 0.85rem;
    color: var(--apeba-grey);
    margin: 0;
}

.import-sidebar {
    background: rgba(0, 159, 154, 0.06);
    border-radius: 14px;
    padding: 20px 24px;
    border: 1px dashed rgba(0, 159, 154, 0.25);
}

.import-sidebar h3,
.import-sidebar h4 {
    margin-top: 0;
    color: var(--apeba-slate);
}

.import-sidebar ul {
    padding-left: 18px;
}

.import-sidebar dl {
    margin: 0;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 8px 16px;
    font-size: 0.85rem;
}

.import-sidebar dt {
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.8rem;
}

.import-sidebar dd {
    margin: 0;
    color: var(--apeba-grey);
}

.results-body {
    padding: 20px 24px;
}

.results-body table tr.error {
    background: rgba(192, 57, 43, 0.12);
}

.results-body table tr.warning {
    background: rgba(244, 160, 70, 0.12);
}

@media (max-width: 960px) {
    .import-body {
        grid-template-columns: 1fr;
    }
}

.dashboard-analytics {
    margin-top: 24px;
}

.analytics-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 24px;
}

.analytics-panel {
    background: #ffffff;
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 10px 24px rgba(0, 63, 60, 0.12);
    border: 1px solid var(--apeba-border);
}

.analytics-panel__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.analytics-panel__header h2 {
    margin: 0;
    font-size: 1.1rem;
    color: var(--apeba-slate);
}

.analytics-filter {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 0.8rem;
    color: var(--apeba-grey);
}

.analytics-filter select {
    border-radius: 999px;
    border: 1px solid var(--apeba-border);
    padding: 6px 14px;
    background: #ffffff;
    font-weight: 500;
}

.category-charts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}

.category-charts h3 {
    margin-bottom: 12px;
    color: var(--apeba-slate);
}

.admin-table .actions .button {
    padding: 8px 14px;
    font-size: 0.85rem;
}

div#content-main {
    max-width: 100%;
    overflow-x: hidden;
}

@media (max-width: 1024px) {
    body.dashboard #content {
        grid-template-columns: 1fr;
        padding-right: 0;
    }

    .module,
    .inline-group,
    .change-list .results,
    .change-list .filtered {
        border-radius: 12px;
    }

    .module h2,
    .module caption,
    .inline-group h2 {
        padding: 14px 16px;
    }
}

@media (max-width: 900px) {
    .dashboard-modules {
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    }

    .admin-table th,
    .admin-table td {
        padding: 12px 14px;
    }
}

@media (max-width: 720px) {
    .apeba-brand__logo {
        max-height: 48px;
    }

    body.dashboard #content {
        grid-template-columns: 1fr;
        gap: 20px;
        padding-right: 0;
    }

    .dashboard-card {
        padding: 18px;
    }

    .dashboard-card__metric {
        font-size: 2rem;
    }
}
