    *{
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: sans-serif;
    }

    *{
        scrollbar-width: thin;
        scrollbar-color: #a3a3a3 transparent;
    }

    ::-webkit-scrollbar{
        width: 10px;
    }

    ::-webkit-scrollbar-track{
        background: transparent;
    }

    ::-webkit-scrollbar-thumb{
        background-color: #a3a3a3;
        border-radius: 20px;
        border: 2px solid transparent;
        background-clip: padding-box;
    }

    ::-webkit-scrollbar-thumb:hover{
        background-color: #535353;
    }

    body{
        display: flex;
        flex-direction: row;
        height: 100vh;
		height: 100dvh;
        background-color: #f9fafb;
        color: #111827;
    }

    .sidebar_main{
        width: 256px;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        background-color: #ffffff;
        background: #fff;
        border-right: 1px solid #e5e7eb;
        padding: 24px;
    }

    .logo{
        font-size: 35px;
        font-weight: bold;
        margin-bottom: 32px;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .logo-lable{
        letter-spacing: 5px;
    }

    .logo-box, .logo-box .premium-logo{
        width: 50px;
        height: 50px;
    }

    nav a{
        display: block;
        text-decoration: none;
        color: #4b5563;
        margin-bottom: 4px;
        font-size: 14px;
        font-weight: 500;
        border-radius: 8px;
        padding: 10px 12px;
    }

    nav a.active{
        background-color: #d3d3d3;
        color: #111827;
    }

    nav a:not(.active):hover{
        background-color: #f3f3f3;
        color: #111827;
    }

    .main_content{
        flex: 1;
        display: flex;
        flex-direction: column;
        overflow-y: auto;
        overflow-x: hidden;
    }

    .content{
        width: 100%;
        margin: 0 auto;
        padding: 10px 32px 32px;
        display: flex;
        flex-direction: column;
        gap: 24px;
    }

    .page-view{
        display: flex;
        flex: 1;
    }

    .header{
        height: 64px;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .header h2{
        font-size: 22px;
    }

	.action-group {
		display: flex;
		justify-content: space-between;
		gap: 8px;
	}

    .time-select {
        background-color: #ededed;
        border: 1px solid #e1e1e1;
        padding: 8px 12px;
        border-radius: 8px;
        font-size: 14px;
        font-weight: 500;
        color: #434343;
        outline: none;
		cursor: pointer;
    }

    .btn-add{
        background: #111827;
        color: #fff;
        border: none;
        border-radius: 8px;
        cursor: pointer;
        padding: 8px 12px;
        font-size: 14px;
        font-weight: 500;
    }

    .balance-card{
        background: #fff;
        border: 1px solid #e5e7eb;
        border-radius: 12px;
        padding: 24px;
    }
    
    .balance-card.balance-card-top{
        border-top: 4px solid #111827;
    }

    .balance-title{
        color: #616161;
        font-size: 16px;
        font-weight: 700;
        margin-bottom: 6px;
    }

    .balance-amount{
        font-size: 30px;
        font-weight: bold;
    }

    .twin-card{
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }

    .card{
        background: #fff;
        border: 1px solid #e5e7eb;
        border-radius: 12px;
        padding: 24px ;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .card.earnings{
        border-top: 4px solid #10b981;
    }

    .card.spending{
        border-top: 4px solid #f43f5e;
    }

    .card-amount{
        font-size: 24px;
        font-weight: bold;
        margin-top: 4px;
    }

    .card-sub-green{
        color: #059669;
        font-size: 12px;
        font-weight: 500;
        margin-top: 8px;
    }

    .card-sub-red{
        color: #e11d48;
        font-size: 12px;
        font-weight: 500;
        margin-top: 8px;
    }

    .chart-icon { 
        font-size: 30px; 
	}

    .spend-break{
        display: flex;
        flex-direction: column;
        align-items: stretch;
        background-color: #ffffff; 
        border: 1px solid #e5e7eb; 
        padding: 20px; border-radius: 12px; 
        margin-top: 10px;
    }

    .spend-break h3{
        font-size: 14px; 
        font-weight: 600; 
        color: #111827; 
        margin-bottom: 10px;
    }

    .donut-chart{
        display: flex; 
        align-items: center; 
        justify-content: center; 
        height: 100%; 
        background-color: #f9fafb; 
        border: 1px dashed #e5e7eb; 
        border-radius: 8px; 
        color: #9ca3af; 
        font-size: 13px;
    }

    .transac-main{
        background-color: #ffffff; 
        border: 1px solid #e5e7eb; 
        border-radius: 12px; 
        margin-top: 10px;
        height: 387px;
        display: flex;
        flex-direction: column;
    }

    .transac-content{
        padding: 0;
        border-bottom: 1px solid #f3f4f6;
        height: 100%;
    }

    .transac-header-content{
        display: flex;
        justify-content: space-between;
        align-items: center;
        flex-direction: row;
        padding: 16px;
        border-bottom: 1px solid #f3f4f6;
    }

    .transac-header-content h3{
        font-size: 14px; 
        font-weight: 600; 
        color: #111827; 
        margin-top: 0; 
        margin-bottom: 0;
    }

    .transac-header-content a{
        font-size: 12px; 
        color: #047857; 
        text-decoration: none; 
        font-weight: 500;
    }

    .recent-show_main-earn{
        display: flex; 
        justify-content: space-between; 
        align-items: center; 
        padding: 14px 16px; 
        border-bottom: 1px solid #f3f4f6;
    }

    .recent-show_content{
        display: flex;
        align-items: center; 
        gap: 12px;
    }

    .recent-show_main-spend{
        display: flex; 
        justify-content: space-between; 
        align-items: center;
        padding: 14px 16px;
        border-bottom: 1px solid #f3f4f6;
    }

    .recent-logo{
        font-size: 18px;
    }

    .recent-disc{
        font-size: 13px; font-weight: 500; color: #111827; margin: 0;
    }

    .recent-time{
        font-size: 11px; color: #9ca3af; margin: 0;
    }

    .recent-amount{
        font-size: 13px; font-weight: 600;
    }

    .recent-earn{
        color: #047857;
    }

    .recent-spend{
        color: #111827;
    }

    .content-settings {
        display: flex;
        flex-direction: column;
        padding: 24px;
        gap: 20px;
        background-color: #ffffff;
        border: 1px solid #e5e7eb;
        border-radius: 12px;
    }

    .h-content-setting{
        padding: 0 0 16px 0;
    }

    .h-content-setting h3{
        font-size: 14px;
        font-weight: 600;
        color: #111827;
    }

    .settings-tabs {
        display: flex;
        gap: 8px;
        border-bottom: 1px solid #f3f4f6;
        padding-bottom: 12px;
    }

    .tab-btn {
        background: none;
        border: none;
        padding: 8px 14px;
        font-size: 13px;
        font-weight: 500;
        color: #6b7280;
        cursor: pointer;
        border-radius: 6px;
        transition: all 0.2s;
    }

    .tab-btn:hover { 
        background-color: #f3f4f6; 
        color: #111827; 
    }

    .tab-btn.active { 
        background-color: #111827; 
        color: #ffffff; 
        font-weight: 600; 
    }

    .tab-content { 
        display: none; 
        padding-top: 8px; 
    }

    .tab-content.active { 
        display: block; 
    }

    .profile-form, .prefs-form {
        padding: 0; 
        max-width: 400px; 
        display: flex; 
        flex-direction: column; 
        gap: 16px;
    }

    .form-group-field {
        display: flex; 
        flex-direction: column; 
        gap: 6px;
    }

    .form-label-text {
        font-size: 13px; 
        font-weight: 600; 
        color: #4b5563;
    }

    .form-input {
        padding: 10px 12px;
        border: 1px solid #e5e7eb;
        border-radius: 8px;
        font-size: 14px;
        outline: none;
    }
    .form-input:focus { 
        border-color: #111827; 
    }

    .btn-save-profile {
        margin-top: 8px; 
        width: fit-content;
    }

    .select-full-width {
        width: 100%; 
        background-color: #ffffff;
    }

    .legal-info-box {
        color: #4b5563; 
        font-size: 13px; 
        display: flex; 
        flex-direction: column; 
        gap: 10px; 
        max-width: 440px; 
        line-height: 1.5;
    }

    .legal-title {
        color: #111827;
    }

    .legal-copyright {
        border-top: 1px solid #f3f4f6; 
        padding-top: 12px; 
        margin-top: 4px;
    }

    .modal-overlay {
        position: fixed;
        top: 0; left: 0; width: 100%; height: 100%;
        background-color: rgba(0, 0, 0, 0.4);
        display: flex; align-items: center; justify-content: center;
        opacity: 0; pointer-events: none;
        transition: all 0.25s ease;
        z-index: 11000; 
        padding: 16px;
    }

    .modal-overlay.active { 
        opacity: 1; 
        pointer-events: auto; 
    }

    .modal-box {
        background-color: #ffffff;
        width: 100%; max-width: 420px;
        border-radius: 16px;
        box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1);
        overflow: hidden;
        transform: scale(0.95);
        transition: transform 0.2s ease;
    }

    .modal-overlay.active .modal-box { 
        transform: scale(1); 
    }

    .modal-header {
        padding: 20px 24px; 
        border-bottom: 1px solid #f3f4f6;
        display: flex; 
        justify-content: space-between; 
        align-items: center;
    }

    .modal-header h2 { 
        font-size: 18px; 
        font-weight: 700; 
    }

    .close-x { 
        background: none; 
        border: none; 
        font-size: 24px; 
        color: #9ca3af; 
        cursor: pointer; 
    }

    .modal-form { 
        padding: 24px; 
        display: flex; 
        flex-direction: column; 
        gap: 16px;
    }

    .form-group-modal { 
        display: flex; 
        flex-direction: column;
        gap: 6px; 
    }

    .type-selector { 
        display: grid; 
        grid-template-columns: 1fr 1fr; 
        gap: 12px; 
    }

    .type-btn {
        border: 1px solid #e5e7eb; 
        padding: 12px; 
        border-radius: 8px;
        text-align: center; 
        cursor: pointer; 
        font-size: 14px;
        display: flex; 
        align-items: center; 
        justify-content: center;
    }

    .type-btn input { 
        position: absolute; 
        opacity: 0; 
        width: 0; 
        height: 0; 
    }

    .type-btn:has(input:checked) { 
        border-color: #111827; 
        background-color: #f9fafb; 
        font-weight: 600;
    }

    .modal-actions { 
        display: flex; 
        justify-content: flex-end; 
        gap: 12px; 
        margin-top: 8px; 
    }

    .btn-secondary {
        background: #fff; 
        border: 1px solid #e5e7eb; 
        color: #374151;
        padding: 8px 14px; 
        border-radius: 8px; 
        cursor: pointer; 
        font-size: 14px;
    }

    .btn-rect-radius {
        border-radius: 8px;
    }

    .del-data{
        display: flex;
        flex-direction: row;
        justify-content: space-around;
        align-items: center;
    }

    .btn-del-data{
        background-color: #111827;
        color: #fff;
        padding: 5px;
        border: 1px solid #374151;
        border-radius: 4px;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 30px;
        width: 100%;
        cursor: pointer;
    }

    .header-filter{
        display: flex;
        align-items: center;
    }

    .filter-selec {
        background-color: #ededed;
        border: 1px solid #e1e1e1;
        padding: 8px 12px;
        border-radius: 8px;
        font-size: 14px;
        font-weight: 500;
        color: #434343;
        outline: none;
		cursor: pointer;
    }

    .tx-filter-bar {
        display: flex;
        flex-direction: row;
        gap: 30px;
        width: 100%;
        justify-content: space-between;
    }

    .filter-search-group{
        width: 40%;
    }

    .search-input {
        width: 100%;
    }

    .filter-dropdown-group {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }

    .select-dark-theme {
        width: 100%;
        background-color: #ffffff;
    }

    .tx-mini-summary {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }

    .summary-box {
        background-color: #ffffff;
        border: 1px solid #e5e7eb;
        padding: 12px;
        border-radius: 8px;
        font-size: 12px;
        font-weight: 500;
        color: #4b5563;
    }
    .summary-box span { 
        font-weight: 700; 
        display: block; 
        font-size: 15px; 
        margin-top: 4px; 
    }

    .box-earn span { 
        color: #047857; 
    }

    .box-spend span { 
        color: #991B1B;
    }

    .tx-detailed-list {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .tx-date-group-title {
        font-size: 12px;
        font-weight: 700;
        color: #9ca3af;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        margin-top: 8px;
        border-bottom: 1px solid #f3f4f6;
        padding-bottom: 6px;
    }

    .header-txDetail{
        padding: 12px 16px;
        border-bottom: 1px solid #f3f4f6;
    }

    .main-content-detail{
        display: flex;
        flex-direction: column;
        align-items: stretch;
        background-color: #fff;
        border: 1px solid #e5e7eb;
        border-radius: 12px;
    }

    /*  Tablet --> mobile  */

	@media screen and (max-width:860px){
        *{
            scrollbar-width: none !important;
        }

        ::-webkit-scrollbar{
            display: none !important;
        }

		.sidebar_main {
			position: fixed;
			bottom: 0;
			left: 0;
			width: 100%;
			background-color: #ffffff;
			box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
			border-top: 1px solid #e2e8f0;
			padding: 0;
			z-index: 9999; 
		}
	
		.logo {
			position: fixed;      
			top: 0;               
			left: 0;
			width: 100%;           
			height: 70px;           
			background-color: #ffffff;
			display: flex;
			align-items: center; 
			padding-left: 32px;    
			box-shadow: 0 2px 5px rgba(0,0,0,0.02);
			z-index: 10000;
			margin: 0 !important;  
		}

        .header{
            align-items: flex-start !important;
            flex-direction: column !important;
        }

        .h-center{
            align-items: center !important;
            flex-direction: unset !important;
        }

        .header h2{
            font-size: 20px !important;
        }
		
		nav {
			display: flex;          
			flex-direction: row;    
			justify-content: space-around; 
			align-items: center;    
			height: 100%;           
			margin: 0;
			padding: 5px 10px;
			text-decoration: none;
		}
		
		nav a {
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			font-size: 12px;
			flex: 1;
			text-align: center;
			margin: 0 !important;
            padding: 12px 0 !important;
		}

		.main_content {
			margin-top: 75px !important;
			margin-bottom: 55px !important;
			margin-left: 0 !important;
			width: 100% !important;
		}

        .content{
            padding: 10px 20px 20px !important;
        }

		.twin-card{
			display: grid;
			grid-template-columns: repeat(1, 1fr);
			gap: 24px;
		}

		.time-select{
			font-size:12px !important;
		}

		.btn-add{
			font-size:12px !important;
            display: flex !important;
            flex: 1 !important;
            align-items: center !important;
            justify-content: center ;
		}

        .action-group{
            width: 100% !important;
        }

        .transac-main{
            margin: 0 !important;
            height: auto !important;
        }
	}

    /*  OnlyMobile  */

	@media screen and (max-width: 500px){
		.action-group{
			display: flex;
			gap: 8px !important;
			justify-content: space-between !important;
		}

		.time-select{
			padding: 5px 15px !important;
		}

		.btn-add{
			padding: 9px 7px !important;
		}

		nav a{
			font-size: 10px !important;
			padding: 13px 0 !important;
		}

        .header h2{
            font-size: 18px !important;
        }

        .settings-tabs{
            flex-direction: column !important;
            align-items: stretch !important;
        }

        .tx-filter-bar{
            flex-direction: column !important;
            gap: 12px !important;
        }

        .filter-search-group {
            width: 100% !important;
        }

        .recent-show_content {
            gap: 8px !important;
        }

        .tx-detailed-list{
            gap: 8px !important;
        }

	}


    #preloader {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background-color: #ffffff; 
        display: flex;
        justify-content: center;
        align-items: center;
        z-index: 99999; 
        transition: opacity 0.5s ease, visibility 0.5s ease;
    }

    #preloader.fade-out {
        opacity: 0;
        visibility: hidden;
    }

    .loader-content {
        text-align: center;
    }

    .loader-content {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .loader-logo {
        width: 80px;
        height: 80px;
        object-fit: contain;
        border-radius: 16px;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
        animation: bounce 1.2s infinite ease-in-out;
    }

    .loader-text {
        margin-top: 12px;
        font-size: 16px;
        font-weight: bold;
        letter-spacing: 4px;
        color: #111827;
    }

    @keyframes bounce {
        0%, 100% { transform: translateY(0); }
        50% { transform: translateY(-15px); }
    }

/*--------------------------------------------------*/