/* =========================================================
   SMRSOFT - PREMIUM FINTECH PORTAL
   FINAL DARK SIDEBAR UI
   ========================================================= */

*{
    box-sizing:border-box;
}

html,
body{
    margin:0;
    padding:0;
    min-height:100%;
    font-family:
        Inter,
        system-ui,
        -apple-system,
        "Segoe UI",
        Arial,
        sans-serif;
    background:#f4f7fb;
    color:#0f172a;
}

body{
    overflow-x:hidden;
}

a{
    text-decoration:none;
    color:inherit;
}

button,
input,
select,
textarea{
    font:inherit;
}

/* =========================================================
   APP
   ========================================================= */

.app-shell{
    display:flex;
    min-height:100vh;
}

/* =========================================================
   SIDEBAR
   ========================================================= */

.sidebar{
    width:258px;
    position:fixed;
    left:0;
    top:0;
    bottom:0;
    z-index:50;

    display:flex;
    flex-direction:column;

    overflow-y:auto;
    overflow-x:hidden;

    background:#0b3045;
    color:#dce8ee;

    border-right:1px solid rgba(255,255,255,.06);

    box-shadow:
        5px 0 25px
        rgba(15,23,42,.08);
}

.sidebar::-webkit-scrollbar{
    width:5px;
}

.sidebar::-webkit-scrollbar-track{
    background:transparent;
}

.sidebar::-webkit-scrollbar-thumb{
    background:rgba(255,255,255,.15);
    border-radius:20px;
}

/* =========================================================
   BRAND
   ========================================================= */

.sidebar-brand{
    min-height:82px;

    display:flex;
    align-items:center;

    gap:12px;

    padding:0 18px;

    background:#0b3045;

    border-bottom:
        1px solid
        rgba(255,255,255,.08);
}

.brand-logo{
    width:42px;
    height:42px;

    flex:0 0 42px;

    display:grid;
    place-items:center;

    border-radius:12px;

    background:
        linear-gradient(
            135deg,
            #10a88d,
            #18c3a3
        );

    color:#fff;

    font-size:0;
    font-weight:900;

    box-shadow:
        0 7px 18px
        rgba(16,168,141,.25);
}

.brand-logo:before{
    content:"S";
    font-size:20px;
}

.brand-title{
    color:#ffffff;

    font-size:17px;
    font-weight:900;

    line-height:1.1;
}

.brand-sub{
    margin-top:4px;

    color:#94adba;

    font-size:9px;
    font-weight:600;
}

/* =========================================================
   USER PROFILE
   ========================================================= */

.user-box{
    position:relative;

    margin:14px 13px 7px;

    display:flex;
    align-items:center;

    gap:11px;

    padding:12px;

    background:
        rgba(255,255,255,.065);

    border:
        1px solid
        rgba(255,255,255,.09);

    border-radius:14px;
}

.user-box .avatar{
    width:40px;
    height:40px;

    flex:0 0 40px;

    display:grid;
    place-items:center;

    border-radius:12px;

    background:
        linear-gradient(
            135deg,
            #14b89c,
            #0f8d7c
        );

    color:#fff;

    font-size:14px;
    font-weight:900;

    box-shadow:
        0 5px 12px
        rgba(0,0,0,.13);
}

.user-box > div:last-child{
    min-width:0;
    flex:1;
}

.user-box b{
    display:block;

    overflow:hidden;

    color:#ffffff;

    font-size:12px;
    font-weight:850;

    text-overflow:ellipsis;
    white-space:nowrap;
}

.user-box small{
    display:block;

    margin-top:3px;

    color:#a9bec9;

    font-size:8px;
    font-weight:750;

    text-transform:uppercase;
}

.user-box small:after{
    content:"  •  ACTIVE";

    color:#32d5a8;
}

/* =========================================================
   NAVIGATION
   ========================================================= */

.side-nav{
    flex:1;

    padding:
        8px 10px
        100px;
}

.nav-label{
    padding:
        18px 11px
        7px;

    color:#7595a5 !important;

    font-size:8px !important;
    font-weight:900 !important;

    letter-spacing:1.35px;

    text-transform:uppercase;
}

.nav-label.green,
.nav-label.nsdl{
    color:#4bc6ae !important;
}

.nav-item{
    min-height:43px;

    display:flex;
    align-items:center;

    gap:10px;

    margin:3px 0;

    padding:9px 10px;

    border-radius:10px;

    color:#d3e1e7 !important;

    font-size:11px;
    font-weight:700;

    transition:
        background .16s ease,
        color .16s ease,
        transform .16s ease;
}

.nav-item > span{
    width:26px;
    height:26px;

    flex:0 0 26px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:7px;

    color:#a9c1cc !important;

    font-size:14px;
}

.nav-item svg{
    width:16px;
    height:16px;

    color:inherit !important;
}

.nav-item b{
    min-width:0;

    flex:1;

    color:#dce8ee !important;

    font-size:11px;
    font-weight:720;

    white-space:nowrap;
}

.nav-item:hover{
    background:
        rgba(255,255,255,.07);

    color:#fff !important;
}

.nav-item:hover > span{
    background:
        rgba(255,255,255,.07);

    color:#fff !important;
}

.nav-item:hover b{
    color:#fff !important;
}

/* ACTIVE */

.nav-item.active{
    background:
        linear-gradient(
            135deg,
            #0f8f7d,
            #12a18b
        ) !important;

    color:#fff !important;

    box-shadow:
        0 7px 16px
        rgba(0,0,0,.14);
}

.nav-item.active > span{
    background:
        rgba(255,255,255,.11);

    color:#fff !important;
}

.nav-item.active b,
.nav-item.active svg{
    color:#fff !important;
}

/* BADGES */

.nav-item em{
    margin-left:auto;

    padding:4px 7px;

    border-radius:999px;

    background:#17b890;

    color:#fff !important;

    font-size:7px;
    font-weight:900;

    font-style:normal;

    text-transform:uppercase;
}

.nav-item small{
    margin-left:auto;

    padding:4px 7px;

    border-radius:999px;

    background:
        rgba(255,255,255,.10);

    color:#b8ccd5 !important;

    font-size:7px;
    font-weight:800;
}

/* DISABLED */

.nav-item.disabled{
    pointer-events:none;
    opacity:.55;
}

/* =========================================================
   SIDEBAR BOTTOM
   ========================================================= */

.sidebar-bottom,
.bottom-nav{
    margin-top:auto;

    padding:10px;

    background:#092b3e;

    border-top:
        1px solid
        rgba(255,255,255,.08);
}

.sidebar-bottom .nav-item{
    margin:2px 0;
}

.sidebar a[href*="password"],
.sidebar a[href*="password"] b,
.sidebar a[href*="password"] span{
    color:#cbdce4 !important;
}

.sidebar a[href*="logout"],
.sidebar a[href*="logout"] b,
.sidebar a[href*="logout"] span{
    color:#ff9b9b !important;
}

.sidebar a[href*="logout"]:hover{
    background:
        rgba(239,68,68,.10) !important;
}

.sidebar-company{
    padding:7px 5px 2px;

    color:#668a9a;

    font-size:7px;

    text-align:center;
}

/* =========================================================
   MAIN
   ========================================================= */

.main-area{
    width:
        calc(100% - 258px);

    min-height:100vh;

    margin-left:258px;

    background:#f4f7fb;
}

/* =========================================================
   TOPBAR
   ========================================================= */

.topbar{
    min-height:76px;

    position:sticky;
    top:0;

    z-index:30;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:15px;

    padding:0 24px;

    background:
        rgba(255,255,255,.97);

    border-bottom:
        1px solid #e5eaf0;

    backdrop-filter:
        blur(10px);
}

.menu-btn{
    display:none;

    width:40px;
    height:40px;

    border:
        1px solid #e2e8f0;

    border-radius:10px;

    background:#f8fafc;

    color:#334155;

    cursor:pointer;

    font-size:18px;
}

.page-title{
    min-width:0;
}

.page-title b{
    display:block;

    color:#17213a;

    font-size:15px;
    font-weight:900;
}

.page-title small{
    display:block;

    margin-top:4px;

    color:#78879a;

    font-size:8px;
}

.top-actions{
    display:flex;
    align-items:center;

    gap:9px;
}

.wallet-chip{
    min-width:118px;

    padding:8px 11px;

    border:
        1px solid #dde5eb;

    border-radius:11px;

    background:#f8fafc;

    transition:.15s ease;
}

.wallet-chip:hover{
    border-color:#bcded6;
    background:#f3fbf9;
}

.wallet-chip small{
    display:block;

    margin-bottom:3px;

    color:#718096;

    font-size:7px;
    font-weight:900;

    text-transform:uppercase;
}

.wallet-chip b{
    display:block;

    color:#087e6d;

    font-size:12px;
    font-weight:900;
}

/* =========================================================
   CONTENT
   ========================================================= */

.content{
    width:100%;

    max-width:1450px;

    margin:0 auto;

    padding:24px;
}

/* =========================================================
   GENERIC CARD
   ========================================================= */

.card{
    margin-top:16px;

    padding:17px;

    background:#fff;

    border:
        1px solid #e2e8f0;

    border-radius:16px;

    box-shadow:
        0 4px 18px
        rgba(15,23,42,.035);
}

/* =========================================================
   BUTTONS
   ========================================================= */

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    gap:6px;

    padding:10px 14px;

    border:0;
    border-radius:9px;

    background:#0f8175;

    color:#fff;

    font-size:10px;
    font-weight:850;

    cursor:pointer;

    transition:.15s ease;
}

.btn:hover{
    background:#0b7167;

    box-shadow:
        0 5px 14px
        rgba(15,129,117,.15);
}

.btn.soft{
    background:#eaf8f5;

    color:#0f766e;
}

/* =========================================================
   FORMS
   ========================================================= */

label{
    display:block;

    color:#475569;

    font-size:10px;
    font-weight:800;
}

input,
select,
textarea{
    width:100%;

    margin-top:5px;

    padding:10px 11px;

    border:
        1px solid #cbd5e1;

    border-radius:9px;

    outline:none;

    background:#fff;

    color:#17213a;
}

input:focus,
select:focus,
textarea:focus{
    border-color:#0f9f89;

    box-shadow:
        0 0 0 3px
        rgba(15,159,137,.09);
}

/* =========================================================
   TABLE
   ========================================================= */

table{
    width:100%;

    border-collapse:collapse;

    font-size:10px;
}

th,
td{
    padding:10px;

    border-top:
        1px solid #e2e8f0;

    text-align:left;
}

th{
    background:#f8fafc;

    color:#64748b;

    font-size:8px;
    font-weight:900;

    text-transform:uppercase;
}

td{
    color:#334155;
}

.table-wrap{
    width:100%;
    overflow-x:auto;
}

/* =========================================================
   ALERTS
   ========================================================= */

.alert{
    margin-top:12px;

    padding:12px;

    border:
        1px solid #fecdd3;

    border-radius:10px;

    background:#fff1f2;

    color:#991b1b;

    font-size:11px;
}

.success{
    background:#ecfdf5;
    border-color:#86efac;
    color:#14532d;
}

.warning{
    background:#fff7ed;
    border-color:#fdba74;
    color:#9a3412;
}

/* =========================================================
   MOBILE OVERLAY
   ========================================================= */

.sidebar-overlay{
    display:none;

    position:fixed;

    inset:0;

    z-index:45;

    background:
        rgba(15,23,42,.45);

    backdrop-filter:
        blur(2px);
}

.sidebar-overlay.show{
    display:block;
}

/* =========================================================
   TABLET
   ========================================================= */

@media(max-width:1050px){

    .top-actions .wallet-chip{
        display:none;
    }
}

/* =========================================================
   MOBILE
   ========================================================= */

@media(max-width:900px){

    .sidebar{
        transform:
            translateX(-100%);

        transition:
            transform .22s ease;

        box-shadow:
            12px 0 35px
            rgba(15,23,42,.20);
    }

    .sidebar.open{
        transform:
            translateX(0);
    }

    .main-area{
        width:100%;
        margin-left:0;
    }

    .menu-btn{
        display:grid;
        place-items:center;
    }

    .content{
        padding:16px;
    }
}

/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media(max-width:600px){

    .topbar{
        min-height:66px;

        padding:
            0 12px;
    }

    .page-title b{
        font-size:13px;
    }

    .page-title small{
        display:none;
    }

    .content{
        padding:12px;
    }
}

@media(max-width:380px){

    .sidebar{
        width:88%;
        max-width:280px;
    }

    .content{
        padding:10px;
    }
}