:root{

    --main:#4f7c59;
    --dark:#3e6146;
    --light:#dcebdd;
    --button:#5d9368;

}

/* =========================
   RESET
========================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

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

body{
    font-family:Arial,sans-serif;

    background:#f4f7f2;

    color:#2d3b2f;
}

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

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

/* =========================
   SIDEBAR
========================= */

.sidebar{
    width:270px;

    background:var(--main);

    padding:35px 25px;

    display:flex;
    flex-direction:column;
}

.logo{
    font-size:36px;

    font-weight:bold;

    margin-bottom:45px;

    color:white;
}

/* =========================
   MENU
========================= */

.menu{
    display:flex;

    flex-direction:column;

    gap:14px;
}

.menu a{
    text-decoration:none;

    color:white;

    background:
    rgba(255,255,255,0.08);

    padding:16px 18px;

    border-radius:16px;

    font-size:17px;

    transition:.2s;
}

.menu a:hover{
    background:
    rgba(255,255,255,0.16);
}

.menu a.active{
    background:var(--button);
}

/* =========================
   MAIN CONTENT
========================= */

.main-content{
    flex:1;

    padding:40px;
}

/* =========================
   TOPBAR
========================= */

.topbar{
    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:35px;
}

.topbar h1{
    font-size:52px;

    color:var(--dark);
}

/* =========================
   MONTH BADGE
========================= */

.month{
    background:var(--main);

    padding:14px 24px;

    border-radius:16px;

    font-size:18px;

    font-weight:bold;

    color:white;
}

/* =========================
   CONTENT BOX
========================= */

.content-box{
    background:white;

    padding:30px;

    border-radius:28px;

    box-shadow:
    0 10px 30px rgba(0,0,0,0.05);
}

/* =========================
   SECTION TITLE
========================= */

.section-title{
    font-size:28px;

    margin-bottom:25px;

    color:var(--main);

    font-weight:bold;
}

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

.dashboard-cards{
    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(250px,1fr));

    gap:25px;

    margin-bottom:35px;
}

.dashboard-card{
    background:var(--main);

    padding:28px;

    border-radius:22px;

    transition:.2s;

    color:white;
}

.dashboard-card:hover{
    transform:translateY(-4px);
}

.dashboard-card span{
    display:block;

    margin-bottom:12px;

    font-size:18px;

    opacity:.85;
}

.dashboard-card h2{
    font-size:40px;

    font-weight:bold;
}

/* =========================
   BUTTONS
========================= */

button{
    background:var(--button);

    color:white;

    border:none;

    padding:12px 20px;

    border-radius:14px;

    font-size:15px;

    font-weight:bold;

    cursor:pointer;

    transition:.2s;
}

button:hover{
    opacity:.92;
}

/* =========================
   INPUTS
========================= */

input,
select,
textarea{
    width:100%;

    padding:14px 16px;

    border:
    1px solid #d9e2d7;

    border-radius:14px;

    background:white;

    color:#333;

    font-size:15px;
}

/* =========================
   TABLES
========================= */

table{
    width:100%;

    border-collapse:collapse;
}

table th{
    text-align:left;

    padding:14px;

    color:var(--main);

    border-bottom:
    2px solid #edf2eb;
}

table td{
    padding:16px 14px;

    border-bottom:
    1px solid #edf2eb;
}

/* =========================
   YEAR GRID
========================= */

.year-grid{
    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(340px,1fr));

    gap:30px;

    margin-top:30px;
}

.year-card{
    background:white;

    border-radius:28px;

    padding:30px;

    display:flex;

    flex-direction:column;

    gap:20px;

    box-shadow:
    0 10px 30px rgba(0,0,0,0.05);
}

.year-card h2{
    font-size:34px;

    color:var(--dark);
}

.year-stats{
    display:grid;

    grid-template-columns:1fr 1fr;

    gap:16px;
}

.year-stat{
    background:var(--light);

    padding:16px;

    border-radius:18px;
}

.year-stat span{
    display:block;

    font-size:14px;

    margin-bottom:8px;

    color:var(--dark);
}

.year-stat strong{
    font-size:24px;

    color:var(--dark);
}

.year-mini-chart{
    width:180px;

    height:180px;

    margin:auto;
}

.year-table{
    width:100%;

    border-collapse:collapse;
}

.year-table td{
    padding:10px 0;

    border-bottom:
    1px solid #edf2eb;

    background:none;
}

.year-table td:first-child{
    color:#5a6c5c;
}

.year-table td:last-child{
    text-align:right;

    font-weight:bold;
}

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

@media(max-width:900px){

    .dashboard{
        flex-direction:column;
    }

    .sidebar{
        width:100%;
    }

    .main-content{
        padding:20px;
    }

    .topbar{
        flex-direction:column;

        align-items:flex-start;

        gap:20px;
    }

    .topbar h1{
        font-size:40px;
    }

}