/* =========================================
   PAGE
========================================= */

.nf-balance-page{

    display:flex;

    flex-direction:column;

    gap:18px;
}

/* =========================================
   HEADER
========================================= */

.nf-balance-header{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:20px;
}

.nf-balance-header h1{

    font-size:34px;

    font-weight:900;

    color:#211404;

    margin-bottom:4px;
}

.nf-balance-header p{

    color:#7c6f60;

    font-size:14px;
}

/* =========================================
   DASHBOARD
========================================= */

.nf-balance-dashboard{

    background:#ffffff;

    border-radius:20px;

    padding:16px 22px;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:16px;

    box-shadow:
    0 4px 14px
    rgba(0,0,0,.04);

    flex-wrap:wrap;
}

/* =========================================
   ITEM
========================================= */

.nf-balance-item{

    display:flex;

    flex-direction:column;

    gap:2px;

    min-width:150px;
}

.nf-balance-item span{

    font-size:11px;

    font-weight:700;

    color:#8e8577;

    text-transform:uppercase;

    letter-spacing:.3px;
}

.nf-balance-item strong{

    font-size:22px;

    font-weight:900;
}

/* =========================================
   COLORS
========================================= */

.nf-balance-item strong.income{

    color:#16a34a;
}

.nf-balance-item strong.expense{

    color:#dc2626;
}

.nf-balance-item strong.neutral{

    color:#2b1600;
}

/* =========================================
   DIVIDER
========================================= */

.nf-balance-divider{

    width:1px;

    height:42px;

    background:
    rgba(139,94,0,.12);
}

/* =========================================
   TABLE CARD
========================================= */

.nf-transactions-table-card{

    margin-top:2px;
}

/* =========================================
   TABLE HEADER
========================================= */

.nf-table-header{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:20px;

    margin-bottom:10px;

    padding:0 4px;
}

.nf-table-header h3{

    font-size:18px;

    font-weight:800;

    color:#211404;

    margin-bottom:2px;
}

.nf-forecast-legend{

    display:flex;

    flex-direction:row;

    align-items:center;

    justify-content:center;

    flex-wrap:wrap;

    gap:10px;

    margin:0 4px 14px;

    padding:0 4px;
}

.nf-forecast-legend__item{

    display:inline-flex;

    align-items:center;

    gap:5px;

    padding:6px 12px;

    border-radius:999px;

    font-size:11px;

    font-weight:700;

    line-height:1.3;

    white-space:nowrap;
}

.nf-forecast-legend__item--best{

    color:#14532d;

    background:linear-gradient(
        135deg,
        #dcfce7 0%,
        #fef9c3 100%
    );

    box-shadow:
    0 0 0 1px
    rgba(22,163,74,.28),
    0 6px 14px
    rgba(22,163,74,.1);
}

.nf-forecast-legend__item--worst{

    color:#991b1b;

    background:linear-gradient(
        135deg,
        #fee2e2 0%,
        #fecaca 100%
    );

    box-shadow:
    0 0 0 1px
    rgba(220,38,38,.24),
    0 6px 14px
    rgba(220,38,38,.1);
}

.nf-forecast-legend__icon{

    display:inline-flex;

    align-items:center;

    line-height:1;
}

.nf-table-header p{

    color:#7c6f60;

    font-size:12px;
}

/* =========================================
   TABLE WRAPPER
========================================= */

.nf-table-wrapper{

    overflow:auto;
}

/* =========================================
   TABLE
========================================= */

.nf-forecast-table{

    width:100%;

    border-collapse:separate;

    border-spacing:0 2px;

    min-width:900px;
}

/* =========================================
   HEAD
========================================= */

.nf-forecast-table thead th{

    background:#2b1600 !important;

    color:#ffffff !important;

    font-size:12px;

    font-weight:700;

    padding:10px 16px;

    border:none;

    text-align:center;

    vertical-align:middle;

    position:relative;

    white-space:nowrap;
}

.nf-forecast-table thead th:not(:last-child)::after{

    content:"|";

    position:absolute;

    right:-2px;

    color:
    rgba(255,255,255,.35);
}

.nf-forecast-table thead th:first-child{

    border-radius:14px 0 0 14px;
}

.nf-forecast-table thead th:last-child{

    border-radius:0 14px 14px 0;
}

/* =========================================
   BODY
========================================= */

.nf-forecast-table tbody tr:not(.nf-forecast-total-row){

    background:#ffffff;

    box-shadow:
    0 2px 8px
    rgba(15,23,42,.03);

    height:44px;
}

.nf-forecast-table tbody tr.nf-forecast-total-row{

    background:#ffffff;

    box-shadow:
    0 2px 8px
    rgba(15,23,42,.03);
}

.nf-forecast-table tbody td{

    padding:0 16px;

    border:none;

    font-size:12px;

    color:#0f172a;

    vertical-align:middle;

    background:#ffffff;

    text-align:center;

    white-space:nowrap;

    box-sizing:border-box;
}

.nf-forecast-table tbody tr:not(.nf-forecast-total-row) td{

    height:44px;

    min-height:44px;
}

.nf-forecast-table tbody td:first-child{

    border-radius:14px 0 0 14px;

    font-weight:700;
}

.nf-forecast-table tbody td:last-child{

    border-radius:0 14px 14px 0;
}

.nf-forecast-table tbody tr:hover td{

    background:#fffdf8;
}

/* =========================================
   VALUES
========================================= */

.nf-money-income{

    color:#16a34a;

    font-weight:700;
}

.nf-money-expense{

    color:#dc2626;

    font-weight:700;
}

/* =========================================
   STATUS
========================================= */

.nf-status{

    padding:5px 10px;

    border-radius:999px;

    font-size:11px;

    font-weight:700;

    display:inline-flex;

    align-items:center;

    justify-content:center;
}

.nf-status.success{

    background:
    rgba(34,197,94,.12);

    color:#16a34a;
}

.nf-status.danger{

    background:
    rgba(239,68,68,.12);

    color:#dc2626;
}

/* =========================================
   BUTTON
========================================= */

.nf-send-goal-btn,
.nf-send-account-btn{

    height:28px;

    padding:0 12px;

    border:none;

    border-radius:10px;

    background:#2b1600;

    color:#ffffff;

    font-size:11px;

    font-weight:700;

    cursor:pointer;

    transition:.2s ease;
}

.nf-send-goal-btn:hover,
.nf-send-account-btn:hover{

    transform:scale(1.03);
}

.nf-send-goal-btn,
.nf-send-goal-btn:hover,
.nf-send-goal-btn:focus,
.nf-send-goal-btn:active,
.nf-send-account-btn,
.nf-send-account-btn:hover,
.nf-send-account-btn:focus,
.nf-send-account-btn:active{

    background:#2b1600 !important;

    color:#ffffff !important;

    outline:none !important;

    box-shadow:none !important;

    -webkit-tap-highlight-color:
    transparent !important;
}

.nf-forecast-action-group{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    flex-wrap:nowrap;

    gap:8px;

    min-height:28px;

    height:28px;
}

.nf-forecast-table tbody td:last-child:empty{

    min-height:44px;
}

.nf-forecast-table tbody tr.nf-forecast-total-row{

    box-shadow:
    0 2px 8px
    rgba(15,23,42,.03);
}

.nf-forecast-table tbody tr.nf-forecast-total-row td{

    padding:12px 16px;

    border:none;

    font-size:14px;

    font-weight:800;

    color:#211404;

    vertical-align:middle;

    text-align:center;

    white-space:nowrap;

    background:#f3ecdf;
}

.nf-forecast-table tbody tr.nf-forecast-total-row td:first-child{

    border-radius:14px 0 0 14px;
}

.nf-forecast-table tbody tr.nf-forecast-total-row td:last-child{

    border-radius:0 14px 14px 0;
}

.nf-forecast-table tbody tr.nf-forecast-total-row:hover td{

    background:#ebe2d2;
}

.nf-forecast-status-badge,
.nf-forecast-sent-badge{

    height:28px;

    padding:0 12px;

    font-size:11px;

    white-space:nowrap;
}

/* =========================================
   NO BALANCE
========================================= */

.nf-no-balance{

    height:28px;

    padding:0 10px;

    border-radius:999px;

    background:#fee2e2;

    color:#dc2626;

    font-size:11px;

    font-weight:700;

    display:inline-flex;

    align-items:center;

    justify-content:center;
}

/* =========================================
   MOBILE
========================================= */

@media(max-width:768px){

    .nf-balance-header{

        flex-direction:column;

        align-items:flex-start;
    }

    .nf-balance-dashboard{

        display:grid;

        grid-template-columns:
        1fr 1fr;

        gap:16px;
    }

    .nf-balance-divider{

        display:none;
    }

    .nf-balance-item strong{

        font-size:18px;
    }

    .nf-balance-header h1{

        font-size:28px;
    }

    .nf-forecast-table tbody tr.nf-forecast-total-row td{

        font-size:14px;

        padding:12px 16px;
    }

}

/* =========================================
   MONEY COLORS
========================================= */

.nf-forecast-table .nf-money-income{

    color:#16a34a !important;

    font-weight:700;
}

.nf-forecast-table .nf-money-expense{

    color:#dc2626 !important;

    font-weight:700;
}

#nfForecastLoading,
#nfForecastError{

    margin:0;

    font-size:14px;

    color:#7c6f60;
}

#nfForecastError{

    color:#b45309;
}