
/* assets/css/style.css */

:root {
    --primary: #2563eb;
    --accent: #38bdf8;
    --bg-soft: #f5f7fb;
    --sidebar-width: 240px;
    --font-family: 'Poppins', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

body {
    font-family: var(--font-family);
    background-color: var(--bg-soft);
    font-size: 0.9rem;
}

/* Login background */

.login-bg {
    background: radial-gradient(circle at top, #e0f2fe 0, #eff6ff 40%, #e5e7eb 100%);
}

/* Sidebar */

.sidebar {
    width: var(--sidebar-width);
    min-height: 100vh;
    position: sticky;
    top: 0;
    z-index: 1030;
}

.sidebar .nav-link {
    border-radius: 999px;
    margin-bottom: 0.25rem;
    padding-inline: 0.8rem;
    font-size: 0.87rem;
}

.sidebar .nav-link i {
    font-size: 1rem;
}

.sidebar .nav-link.active,
.sidebar .nav-link:hover {
    background: linear-gradient(90deg, var(--primary), var(--accent));
    color: #fff !important;
}

/* Sidebar collapsed on mobile */

@media (max-width: 767.98px) {
    .sidebar {
        position: fixed;
        left: -260px;
        transition: left 0.25s ease;
    }

    body.sidebar-collapsed .sidebar {
        left: 0;
    }

    body.sidebar-collapsed main {
        opacity: 0.95;
    }
}

/* Topbar */

.topbar {
    position: sticky;
    top: 0;
    z-index: 1020;
}

/* Cards on dashboard */

.card-kas {
    border-left: 4px solid #1d4ed8;
}

.card-dana {
    border-left: 4px solid #15803d;
}

.card-tabungan {
    border-left: 4px solid #0ea5e9;
}

.card-sehat {
    border-left: 4px solid #dc2626;
}

.card-kas .card-body,
.card-dana .card-body,
.card-tabungan .card-body,
.card-sehat .card-body {
    background: #ffffff;
}

/* Table */

.table thead th {
    white-space: nowrap;
}

.table-sm td,
.table-sm th {
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
}

/* Small button helper */

.btn-xs {
    padding: 0.1rem 0.35rem;
    font-size: 0.7rem;
    border-radius: 999px;
}

/* Utility */

.min-vh-100 {
    min-height: 100vh !important;
}
/* Print helper */
@media print {
    .sidebar,
    .topbar,
    .no-print {
        display: none !important;
    }

    main {
        padding: 0 !important;
    }

    body {
        background: #fff;
    }

    .card {
        box-shadow: none !important;
        border: none !important;
    }
}
/* Tombol kembali ke atas – posisi tengah bawah */
.btn-back-to-top {
    position: fixed;
    left: 50%;               /* pusat horizontal */
    bottom: 1.25rem;         /* jarak dari bawah */
    z-index: 1050;
    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.25);
    opacity: 0;
    visibility: hidden;
    /* geser ke tengah + animasi muncul dari bawah */
    transform: translate(-50%, 10px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
    padding: 0.45rem 0.6rem;
}

.btn-back-to-top i {
    font-size: 1.1rem;
}

.btn-back-to-top.show {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0); /* tetap di tengah saat tampil */
}

/* Opsional: sembunyikan di layar sangat kecil kalau mau */
@media (max-width: 575.98px) {
    .btn-back-to-top {
        right: 0.75rem;
        bottom: 0.75rem;
    }
}
