/* ==========================================================
   VARIABLES
========================================================== */

:root{

    --sidebar-width:280px;

    --sidebar-collapsed-width:88px;

    --primary:#4F46E5;

    --secondary:#2563EB;

    --success:#10B981;

    --warning:#F59E0B;

    --danger:#EF4444;

    --dark:#0F172A;

    --dark-2:#111827;

    --text:#CBD5E1;

    --white:#ffffff;

    --border:rgba(255,255,255,.08);

    --transition:.30s ease;

}

/* ==========================================================
   LAYOUT
========================================================== */

html,
body{

    height:100%;

}

body{

    margin:0;

    background:#F5F7FB;

    font-family:'Segoe UI',system-ui,sans-serif;

}

.wrapper{

    display:flex;

    min-height:100vh;

}

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

.sidebar{

    position:fixed;

    left:0;

    top:0;

    bottom:0;

    width:var(--sidebar-width);

    background:var(--dark);

    color:#fff;

    display:flex;

    flex-direction:column;

    transition:all var(--transition);

    overflow:hidden;

    z-index:1040;

}

/* Logo */

.sidebar-logo{

    display:flex;

    align-items:center;

    gap:15px;

    padding:22px;

    border-bottom:1px solid var(--border);

}

.logo-icon{

    width:52px;

    height:60px;

    border-radius:16px;

    background:linear-gradient(135deg,#f7f7f8,#e0e1e1);

    display:flex;

    align-items:center;

    justify-content:center;

    color:#fff;

    font-size:22px;

    flex-shrink:0;

}

.sidebar-logo h5{

    margin:0;

    color:#fff;

    font-size:18px;

    font-weight:700;

}

.sidebar-logo small{

    color:#94A3B8;

    font-size:12px;

}

/* User */

.sidebar-user{

    display:flex;

    align-items:center;

    gap:14px;

    padding:20px;

    border-bottom:1px solid var(--border);

}

.user-avatar{

    width:46px;

    height:46px;

    border-radius:50%;

    background:var(--primary);

    display:flex;

    align-items:center;

    justify-content:center;

    font-weight:bold;

    color:#fff;

    flex-shrink:0;

}

.sidebar-user small{

    color:#94A3B8;

}

/* Navigation */

.sidebar-nav{

    flex:1;

    padding:18px 12px;

    overflow-y:auto;

}

.sidebar-nav .nav-link{

    display:flex;

    align-items:center;

    gap:14px;
    color:#CBD5E1;

    justify-content:flex-start;

    position:relative;

}

.menu-text{

    flex:1;

}

.menu-badge{

    margin-left:auto;

}

.sidebar-nav .nav-link i{

    width:22px;

    text-align:center;

    font-size:18px;

    flex-shrink:0;

}

.sidebar-nav .nav-link:hover{

    background:#1E3A8A;

    color:#fff;

    transform:translateX(4px);

}

.sidebar-nav .nav-link.active{

    background:linear-gradient(135deg,#4F46E5,#2563EB);

    color:#fff;

}

.menu-text{

    flex:1;

}

.menu-badge{

    background:#EF4444;

    color:#fff;

    border-radius:20px;

    padding:3px 8px;

    font-size:10px;

}

/* Footer */

.sidebar-footer{

    padding:18px;

    border-top:1px solid var(--border);

}

.sidebar-footer .btn{

    border-radius:14px;

    height:48px;

}

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

.sidebar.collapsed{

    width:var(--sidebar-collapsed-width);

}

.sidebar.collapsed + .main-content{

    margin-left:var(--sidebar-collapsed-width);

}

.sidebar.collapsed .sidebar-logo{

    justify-content:center;

}

.sidebar.collapsed .logo-icon{

    margin:0;

}

.sidebar.collapsed .sidebar-logo h5,
.sidebar.collapsed .sidebar-logo small,
.sidebar.collapsed .sidebar-user,
.sidebar.collapsed .menu-text,
.sidebar.collapsed .menu-badge{

    display:none;

}

.sidebar.collapsed .sidebar-nav{

    padding:18px 10px;

}

.sidebar.collapsed .nav-link{

    justify-content:center;

    padding:14px 0;

}

.sidebar.collapsed .nav-link i{

    margin:0;

    width:auto;

    font-size:20px;

}

.sidebar.collapsed .sidebar-footer .btn{

    width:52px;

    height:52px;

    padding:0;

}

.sidebar.collapsed .sidebar-footer .btn span{

    display:none;

}

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

.main-content{

    flex:1;

    margin-left:var(--sidebar-width);

    transition:margin-left var(--transition);

    min-width:0;

}

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

@media(max-width:991px){

    .sidebar{

        transform:translateX(-100%);

    }

    .sidebar.show{

        transform:translateX(0);

    }

    .main-content{

        margin-left:0;

    }

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

.topbar{

    min-height:76px;

    background:#fff;

    border-radius:18px;

    border:1px solid #EEF2F7;

    box-shadow:0 8px 25px rgba(0,0,0,.05);

    padding:12px 22px;

}

.topbar h4{

    margin:0;

    font-weight:700;

}

.topbar small{

    color:#64748B;

}

.topbar .form-control{

    min-width:280px;

    border-radius:12px;

    border:1px solid #E5E7EB;

    box-shadow:none;

}

.topbar .input-group-text{

    background:#fff;

    border-radius:12px 0 0 12px;

}

.topbar .btn{

    width:46px;

    height:46px;

    border-radius:12px;

    display:flex;

    align-items:center;

    justify-content:center;

}

.topbar .badge{

    font-size:10px;

    min-width:18px;

}

/* ==========================================================
   WELCOME CARD
========================================================== */

.welcome-card{

    position:relative;

    overflow:hidden;

    border:none;

    border-radius:28px;

    background:linear-gradient(135deg,#4F46E5,#2563EB);

    color:#fff;

}

.welcome-card::before{

    content:"";

    position:absolute;

    width:320px;

    height:320px;

    right:-100px;

    top:-80px;

    border-radius:50%;

    background:rgba(255,255,255,.08);

}

.welcome-card .card-body{

    padding:60px;

    position:relative;

    z-index:2;

}

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

.dashboard-card{

    border:none;

    border-radius:22px;

    background:#fff;

    box-shadow:0 10px 30px rgba(15,23,42,.06);

    transition:.30s;

    animation:fadeUp .45s ease;

}

.dashboard-card:hover{

    transform:translateY(-6px);

    box-shadow:0 18px 40px rgba(15,23,42,.12);

}

/* ==========================================================
   ICON
========================================================== */

.icon-circle{

    width:66px;

    height:66px;

    border-radius:18px;

    display:flex;

    align-items:center;

    justify-content:center;

    color:#fff;

    font-size:24px;

    flex-shrink:0;

}

/* ==========================================================
   COUNTER
========================================================== */

.counter{

    font-size:2rem;

    font-weight:700;

    line-height:1.2;

}

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

.card-header{

    background:transparent;

    border-bottom:1px solid #EEF2F7;

    padding:20px 24px;

}

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

.table{

    margin:0;

}

.table thead{

    background:#F8FAFC;

}

.table th{

    font-size:13px;

    text-transform:uppercase;

    color:#64748B;

    border:none;

    padding:16px;

}

.table td{

    padding:16px;

    vertical-align:middle;

    border-color:#F1F5F9;

}

.table-hover tbody tr{

    transition:.25s;

}

.table-hover tbody tr:hover{

    background:#F8FAFC;

}

/* ==========================================================
   TIMELINE
========================================================== */

.timeline{

    position:relative;

    padding-left:38px;

}

.timeline::before{

    content:"";

    position:absolute;

    left:15px;

    top:0;

    bottom:0;

    width:3px;

    background:#E2E8F0;

}

.timeline-item{

    position:relative;

    padding-bottom:28px;

}

.timeline-item:last-child{

    padding-bottom:0;

}

.timeline-item::before{

    content:"";

    position:absolute;

    left:-29px;

    top:6px;

    width:14px;

    height:14px;

    border-radius:50%;

    background:#4F46E5;

    box-shadow:0 0 0 5px rgba(79,70,229,.12);

}

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

.btn{

    border-radius:12px;

    font-weight:600;

    transition:.25s;

}

.btn:hover{

    transform:translateY(-2px);

}

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

.badge{

    border-radius:30px;

    padding:7px 14px;

}

/* ==========================================================
   PROGRESS
========================================================== */

.progress{

    height:10px;

    background:#EEF2FF;

    border-radius:30px;

}

.progress-bar{

    border-radius:30px;

}

/* ==========================================================
   ANIMATION
========================================================== */

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(20px);

    }

    to{

        opacity:1;

        transform:none;

    }

}
/* ==========================================================
   DROPDOWN
========================================================== */

.dropdown-menu{

    border:none;

    border-radius:16px;

    padding:10px;

    box-shadow:0 18px 40px rgba(15,23,42,.08);

}

.dropdown-item{

    border-radius:10px;

    padding:10px 14px;

    transition:.25s;

}

.dropdown-item:hover{

    background:#F8FAFC;

}
.profile-btn{

display:flex;

align-items:center;

gap:12px;

background:#fff;

border:none;

padding:8px 14px;

border-radius:16px;

min-width:220px;

}

.profile-avatar{

width:48px;

height:48px;

border-radius:50%;

background:#4F46E5;

color:#fff;

display:flex;

align-items:center;

justify-content:center;

font-weight:700;

font-size:20px;

flex-shrink:0;

}

.profile-info{

display:flex;

flex-direction:column;

align-items:flex-start;

line-height:1.2;

}

.profile-name{

font-weight:700;

font-size:15px;

}

.profile-info small{

color:#64748B;

}
/* ==========================================================
   FORM CONTROLS
========================================================== */

.form-control,
.form-select{

    border-radius:12px;

    border:1px solid #E2E8F0;

    min-height:44px;

    box-shadow:none;

}

.form-control:focus,
.form-select:focus{

    border-color:#4F46E5;

    box-shadow:0 0 0 .18rem rgba(79,70,229,.12);

}

.input-group-text{

    border-radius:12px;

    background:#fff;

}

/* ==========================================================
   DATATABLES
========================================================== */

.dataTables_wrapper .dataTables_filter input{

    border-radius:10px;

    border:1px solid #CBD5E1;

    padding:8px 12px;

}

.dataTables_wrapper .dataTables_length select{

    border-radius:10px;

}

table.dataTable{

    border-collapse:separate !important;

    border-spacing:0;

}

table.dataTable tbody tr{

    transition:.25s;

}

table.dataTable tbody tr:hover{

    background:#F8FAFC;

}

/* ==========================================================
   PAGINATION
========================================================== */

.page-link{

    border-radius:10px !important;

    margin:0 2px;

    border:none;

}

.page-item.active .page-link{

    background:#4F46E5;

}

/* ==========================================================
   ALERTS
========================================================== */

.alert{

    border:none;

    border-radius:14px;

}

/* ==========================================================
   MODAL
========================================================== */

.modal-content{

    border:none;

    border-radius:18px;

}

.modal-header{

    border-bottom:1px solid #EEF2F7;

}

.modal-footer{

    border-top:1px solid #EEF2F7;

}

/* ==========================================================
   FOOTER
========================================================== */

.footer{

   position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #f8f9fa;
    border-top: 1px solid #fdf6f6;
    text-align: center;
    padding: 10px;
    z-index: 999;

}
.main-content {
    padding-bottom: 60px; /* Footer height ke barabar */
}
/* ==========================================================
   SCROLLBAR
========================================================== */

::-webkit-scrollbar{

    width:8px;

    height:8px;

}

::-webkit-scrollbar-thumb{

    background:#CBD5E1;

    border-radius:20px;

}

::-webkit-scrollbar-track{

    background:#F8FAFC;

}

/* ==========================================================
   UTILITIES
========================================================== */

.shadow-soft{

    box-shadow:0 10px 30px rgba(15,23,42,.06);

}

.radius-xl{

    border-radius:20px;

}

.bg-gradient-primary{

    background:linear-gradient(135deg,#4F46E5,#2563EB);

    color:#fff;

}

.text-muted-small{

    font-size:.85rem;

    color:#64748B;

}

/* ==========================================================
   RESPONSIVE
========================================================== */

@media(max-width:1200px){

    .topbar .form-control{

        min-width:200px;

    }

}

@media(max-width:992px){

    .welcome-card .card-body{

        padding:35px;

    }

    .topbar{

        border-radius:0;

    }

}

@media(max-width:768px){

    .counter{

        font-size:1.5rem;

    }

    .icon-circle{

        width:54px;

        height:54px;

        font-size:20px;

    }

    .topbar .form-control{

        min-width:150px;

    }

}

@media(max-width:576px){

    .container-fluid{

        padding-left:15px !important;

        padding-right:15px !important;

    }

    .welcome-card h2{

        font-size:2rem;

    }

    .welcome-card .btn{

        width:100%;

        margin-bottom:10px;

    }

}