/* ===================================
   BlueLines Financial Report
   PART 1
   =================================== */

:root{

    --primary:#0A2D6E;
    --primary2:#1651C4;
    --primary3:#2E74F0;

    --success:#10B981;
    --danger:#EF4444;
    --warning:#F59E0B;
    --purple:#7C3AED;

    --bg:#F4F7FC;
    --card:#FFFFFF;

    --text:#0F172A;
    --text2:#64748B;

    --border:#E2E8F0;

    --radius:18px;

    --shadow:
    0 15px 40px rgba(15,23,42,.08);

    --transition:.35s ease;

}

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:"Sora",sans-serif;

    background:var(--bg);

    color:var(--text);

    overflow-x:hidden;

}

a{

    text-decoration:none;

    color:inherit;

}

button{

    font-family:inherit;

    cursor:pointer;

}

.dashboard{

    display:flex;

    min-height:100vh;

}

/* ===================================
SIDEBAR
=================================== */

.sidebar{

    width:280px;

    background:

    linear-gradient(
        180deg,
        #0A2D6E,
        #1651C4
    );

    color:white;

    position:fixed;

    left:0;
    top:0;

    bottom:0;

    padding:30px;

    overflow:auto;

    box-shadow:

    15px 0 40px rgba(0,0,0,.12);

}

.logo{

    display:flex;

    align-items:center;

    gap:15px;

    margin-bottom:55px;

}

.logoIcon{

    width:58px;

    height:58px;

    border-radius:18px;

    background:

    rgba(255,255,255,.15);

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:22px;

    backdrop-filter:blur(12px);

}

.logo h2{

    font-size:24px;

    font-weight:800;

}

.logo span{

    opacity:.75;

    font-size:13px;

}

.menu{

    list-style:none;

}

.menu li{

    display:flex;

    align-items:center;

    gap:18px;

    padding:16px 18px;

    margin-bottom:12px;

    border-radius:15px;

    cursor:pointer;

    transition:var(--transition);

}

.menu li i{

    width:22px;

    text-align:center;

}

.menu li:hover{

    background:

    rgba(255,255,255,.12);

    transform:translateX(6px);

}

.menu li.active{

    background:white;

    color:var(--primary);

    font-weight:700;

}

/* ===================================
MAIN
=================================== */

.mainContent{

    margin-left:280px;

    width:calc(100% - 280px);

    padding:35px;

}

/* ===================================
TOPBAR
=================================== */

.topbar{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:35px;

}

.searchBox{

    width:420px;

    height:55px;

    background:white;

    border-radius:15px;

    display:flex;

    align-items:center;

    padding:0 18px;

    box-shadow:var(--shadow);

}

.searchBox i{

    color:var(--text2);

    margin-right:12px;

}

.searchBox input{

    width:100%;

    border:none;

    outline:none;

    background:none;

    font-size:15px;

}

.topActions{

    display:flex;

    align-items:center;

    gap:18px;

}

.iconButton{

    width:50px;

    height:50px;

    border:none;

    border-radius:14px;

    background:white;

    box-shadow:var(--shadow);

    transition:var(--transition);

}

.iconButton:hover{

    transform:translateY(-4px);

    color:var(--primary3);

}

.profile{

    display:flex;

    align-items:center;

    gap:14px;

    background:white;

    padding:8px 18px;

    border-radius:18px;

    box-shadow:var(--shadow);

}

.avatar{

    width:48px;

    height:48px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    font-weight:700;

    color:white;

    background:

    linear-gradient(
        135deg,
        #1651C4,
        #2E74F0
    );

}

.profile h4{

    font-size:15px;

}

.profile span{

    font-size:12px;

    color:var(--text2);

}

/* ===================================
HERO
=================================== */

.hero{

    background:

    linear-gradient(
        135deg,
        #0A2D6E,
        #1651C4,
        #2E74F0
    );

    color:white;

    border-radius:24px;

    padding:45px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    position:relative;

    overflow:hidden;

    box-shadow:

    0 20px 60px rgba(22,81,196,.35);

}

.hero::before{

    content:"";

    position:absolute;

    width:450px;

    height:450px;

    right:-120px;

    top:-120px;

    border-radius:50%;

    background:

    rgba(255,255,255,.08);

}

.hero h1{

    font-size:40px;

    margin-bottom:15px;

    font-weight:800;

}

.hero p{

    max-width:650px;

    line-height:1.8;

    color:

    rgba(255,255,255,.82);

}

.heroBadge{

    padding:14px 28px;

    border-radius:50px;

    background:

    rgba(255,255,255,.15);

    backdrop-filter:blur(10px);

    font-weight:700;

}
/* ===================================
KPI GRID
=================================== */

.kpiGrid{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(260px,1fr));

    gap:25px;

    margin-top:35px;

}

.kpiCard{

    background:white;

    border-radius:22px;

    padding:28px;

    display:flex;

    align-items:center;

    gap:20px;

    box-shadow:var(--shadow);

    transition:var(--transition);

    position:relative;

    overflow:hidden;

}

.kpiCard::before{

    content:"";

    position:absolute;

    inset:0;

    background:

    linear-gradient(
        135deg,
        rgba(46,116,240,.05),
        transparent
    );

}

.kpiCard:hover{

    transform:translateY(-8px);

    box-shadow:

    0 25px 60px rgba(15,23,42,.15);

}

.kpiIcon{

    width:70px;

    height:70px;

    border-radius:18px;

    display:flex;

    align-items:center;

    justify-content:center;

    color:white;

    font-size:26px;

    flex-shrink:0;

}

.kpiIcon.blue{

    background:

    linear-gradient(
        135deg,
        #1651C4,
        #2E74F0
    );

}

.kpiIcon.green{

    background:

    linear-gradient(
        135deg,
        #10B981,
        #22C55E
    );

}

.kpiIcon.orange{

    background:

    linear-gradient(
        135deg,
        #F59E0B,
        #FB923C
    );

}

.kpiIcon.purple{

    background:

    linear-gradient(
        135deg,
        #7C3AED,
        #A855F7
    );

}

.kpiCard span{

    display:block;

    color:var(--text2);

    margin-bottom:10px;

    font-size:14px;

}

.kpiCard h2{

    font-size:31px;

    margin-bottom:8px;

    font-weight:800;

}

.kpiCard small{

    color:var(--success);

    font-weight:600;

}

/* ===================================
CHART GRID
=================================== */

.chartGrid{

    margin-top:35px;

    display:grid;

    grid-template-columns:
    2fr 1fr;

    gap:25px;

}

.chartCard{

    background:white;

    border-radius:22px;

    padding:30px;

    box-shadow:var(--shadow);

    transition:.3s;

}

.chartCard:hover{

    transform:translateY(-5px);

}

.cardHeader{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:25px;

}

.cardHeader h3{

    font-size:22px;

    font-weight:700;

}

.cardHeader button{

    border:none;

    padding:10px 18px;

    border-radius:12px;

    background:

    linear-gradient(
        135deg,
        #1651C4,
        #2E74F0
    );

    color:white;

    font-weight:600;

}

.chartCard canvas{

    width:100% !important;

    height:340px !important;

}

/* ===================================
BOTTOM GRID
=================================== */

.bottomGrid{

    display:grid;

    grid-template-columns:
    2fr 1fr;

    gap:25px;

    margin-top:35px;

}

/* ===================================
TABLE
=================================== */

.tableCard{

    background:white;

    border-radius:22px;

    padding:30px;

    box-shadow:var(--shadow);

}

table{

    width:100%;

    border-collapse:collapse;

}

thead{

    background:#F8FAFC;

}

th{

    text-align:left;

    padding:18px;

    color:var(--text2);

    font-size:14px;

}

td{

    padding:18px;

    border-top:1px solid #EDF2F7;

    font-size:15px;

}

tbody tr{

    transition:.25s;

}

tbody tr:hover{

    background:#F8FBFF;

}

.green{

    color:#10B981;

    font-weight:700;

}

.red{

    color:#EF4444;

    font-weight:700;

}

/* ===================================
STATUS BADGES
=================================== */

.status{

    padding:8px 14px;

    border-radius:50px;

    font-size:12px;

    font-weight:700;

}

.completed{

    background:#DCFCE7;

    color:#15803D;

}

.pending{

    background:#FEF3C7;

    color:#B45309;

}

.paid{

    background:#DBEAFE;

    color:#1D4ED8;

}

/* ===================================
RIGHT STATS
=================================== */

.statsColumn{

    display:grid;

    gap:20px;

}

.smallCard{

    background:white;

    border-radius:22px;

    padding:28px;

    box-shadow:var(--shadow);

    transition:.3s;

}

.smallCard:hover{

    transform:translateY(-6px);

}

.smallCard h4{

    color:var(--text2);

    font-size:14px;

    margin-bottom:12px;

}

.smallCard h2{

    font-size:34px;

    font-weight:800;

    color:var(--primary);

}

.smallCard p{

    margin-top:10px;

    color:var(--text2);

}

/* ===================================
COMPANY OVERVIEW
=================================== */

.overviewCard{

    margin-top:35px;

    background:white;

    border-radius:22px;

    padding:30px;

    box-shadow:var(--shadow);

}

.overviewGrid{

    display:grid;

    grid-template-columns:
    repeat(4,1fr);

    gap:25px;

    margin-top:20px;

}

.overviewGrid div{

    background:#F8FAFC;

    border-radius:18px;

    padding:25px;

    transition:.3s;

}

.overviewGrid div:hover{

    background:#EEF5FF;

    transform:translateY(-6px);

}

.overviewGrid span{

    display:block;

    color:var(--text2);

    margin-bottom:12px;

}

.overviewGrid h2{

    color:var(--primary);

    font-size:28px;

    font-weight:800;

}

/* ===================================
FOOTER
=================================== */

footer{

    margin-top:40px;

    text-align:center;

    color:var(--text2);

    padding:30px 0;

}
/* ===================================
RESPONSIVE
=================================== */

@media(max-width:1400px){

    .chartGrid{

        grid-template-columns:1fr;

    }

    .bottomGrid{

        grid-template-columns:1fr;

    }

}

@media(max-width:1200px){

    .overviewGrid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:992px){

    .sidebar{

        width:90px;

        padding:20px 10px;

    }

    .logo{

        justify-content:center;

    }

    .logo h2,
    .logo span{

        display:none;

    }

    .menu li{

        justify-content:center;

        padding:18px;

    }

    .menu li span{

        display:none;

    }

    .mainContent{

        margin-left:90px;

        width:calc(100% - 90px);

    }

}

@media(max-width:768px){

    .topbar{

        flex-direction:column;

        align-items:stretch;

        gap:20px;

    }

    .searchBox{

        width:100%;

    }

    .topActions{

        justify-content:space-between;

    }

    .hero{

        flex-direction:column;

        align-items:flex-start;

        gap:25px;

        padding:30px;

    }

    .hero h1{

        font-size:30px;

    }

    .overviewGrid{

        grid-template-columns:1fr;

    }

}

@media(max-width:600px){

    .sidebar{

        position:fixed;

        left:-280px;

        width:280px;

        transition:.35s;

        z-index:999;

    }

    .sidebar.active{

        left:0;

    }

    .mainContent{

        margin-left:0;

        width:100%;

        padding:20px;

    }

    .kpiGrid{

        grid-template-columns:1fr;

    }

    .profile{

        padding:8px 12px;

    }

    .profile h4{

        font-size:14px;

    }

    table{

        display:block;

        overflow-x:auto;

        white-space:nowrap;

    }

}

/* ===================================
SCROLLBAR
=================================== */

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#EDF2F7;

}

::-webkit-scrollbar-thumb{

    background:linear-gradient(
        180deg,
        #1651C4,
        #2E74F0
    );

    border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

    background:#0A2D6E;

}

/* ===================================
ANIMATIONS
=================================== */

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(35px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

.hero,
.kpiCard,
.chartCard,
.tableCard,
.smallCard,
.overviewCard{

    animation:fadeUp .8s ease;

}

@keyframes pulse{

    0%{

        transform:scale(1);

    }

    50%{

        transform:scale(1.05);

    }

    100%{

        transform:scale(1);

    }

}

.kpiIcon:hover{

    animation:pulse .5s;

}

/* ===================================
GLASS EFFECT
=================================== */

.heroBadge{

    border:1px solid rgba(255,255,255,.25);

    backdrop-filter:blur(20px);

}

.profile{

    backdrop-filter:blur(12px);

}

.iconButton{

    backdrop-filter:blur(10px);

}

/* ===================================
CARD EFFECTS
=================================== */

.chartCard,
.kpiCard,
.smallCard,
.tableCard,
.overviewCard{

    position:relative;

    overflow:hidden;

}

.chartCard::before,
.kpiCard::before,
.smallCard::before,
.tableCard::before,
.overviewCard::before{

    content:"";

    position:absolute;

    left:-120%;

    top:0;

    width:70%;

    height:100%;

    background:

    linear-gradient(

        120deg,

        transparent,

        rgba(255,255,255,.28),

        transparent

    );

    transition:.8s;

}

.chartCard:hover::before,
.kpiCard:hover::before,
.smallCard:hover::before,
.tableCard:hover::before,
.overviewCard:hover::before{

    left:130%;

}

/* ===================================
TABLE HOVER
=================================== */

tbody tr{

    cursor:pointer;

}

tbody tr:hover td{

    color:#0A2D6E;

}

/* ===================================
INPUTS
=================================== */

input{

    transition:.3s;

}

input:focus{

    transform:scale(1.01);

}

/* ===================================
BUTTONS
=================================== */

button{

    transition:.3s;

}

button:hover{

    transform:translateY(-2px);

}

/* ===================================
DARK MODE
=================================== */

body.dark{

    background:#0F172A;

    color:#F8FAFC;

}

body.dark .mainContent{

    background:#0F172A;

}

body.dark .chartCard,
body.dark .tableCard,
body.dark .smallCard,
body.dark .kpiCard,
body.dark .overviewCard,
body.dark .profile,
body.dark .iconButton,
body.dark .searchBox{

    background:#1E293B;

    color:white;

}

body.dark td,
body.dark th{

    border-color:#334155;

}

body.dark .overviewGrid div{

    background:#273549;

}

body.dark .overviewGrid div:hover{

    background:#32435A;

}

body.dark .searchBox input{

    color:white;

}

body.dark .searchBox input::placeholder{

    color:#CBD5E1;

}

body.dark .smallCard p,
body.dark span,
body.dark footer{

    color:#CBD5E1;

}

/* ===================================
SELECTION
=================================== */

::selection{

    background:#1651C4;

    color:white;

}

/* ===================================
Financial Highlights
=================================== */

.financialHighlights{

    margin-top:35px;

}

.highlightsGrid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:25px;

    margin-top:25px;

}

.highlightCard{

    background:white;

    border-radius:22px;

    padding:28px;

    display:flex;

    align-items:center;

    gap:20px;

    box-shadow:var(--shadow);

    transition:.35s;

    position:relative;

    overflow:hidden;

}

.highlightCard:hover{

    transform:translateY(-8px);

    box-shadow:0 25px 60px rgba(15,23,42,.15);

}

.highlightIcon{

    width:68px;

    height:68px;

    border-radius:18px;

    display:flex;

    align-items:center;

    justify-content:center;

    color:white;

    font-size:24px;

    flex-shrink:0;

}

.highlightIcon.blue{

    background:linear-gradient(135deg,#1651C4,#2E74F0);

}

.highlightIcon.red{

    background:linear-gradient(135deg,#EF4444,#F87171);

}

.highlightIcon.green{

    background:linear-gradient(135deg,#10B981,#22C55E);

}

.highlightIcon.purple{

    background:linear-gradient(135deg,#7C3AED,#A855F7);

}

.highlightCard span{

    display:block;

    color:var(--text2);

    margin-bottom:8px;

}

.highlightCard h2{

    font-size:30px;

    font-weight:800;

    color:var(--primary);

    margin-bottom:6px;

}

.highlightCard small{

    color:var(--text2);

}

@media(max-width:1100px){

.highlightsGrid{

grid-template-columns:repeat(2,1fr);

}

}

@media(max-width:650px){

.highlightsGrid{

grid-template-columns:1fr;

}

}

/* ===================================
END
=================================== */