/*
|--------------------------------------------------------------------------
| ROOT4 SaaS Dashboard
|--------------------------------------------------------------------------
| File : dashboard/assets/css/dashboard.css
|--------------------------------------------------------------------------
*/

:root{

    --primary:#6366F1;
    --primary-dark:#4F46E5;

    --success:#10B981;
    --danger:#EF4444;
    --warning:#F59E0B;
    --info:#06B6D4;

    --dark:#111827;
    --text:#374151;
    --muted:#6B7280;

    --border:#E5E7EB;

    --bg:#F8FAFC;
    --white:#FFFFFF;

    --sidebar-width:280px;
    --topbar-height:78px;

    --radius:20px;

    --shadow-sm:0 2px 10px rgba(15,23,42,.04);
    --shadow:0 8px 30px rgba(15,23,42,.06);
    --shadow-lg:0 20px 45px rgba(15,23,42,.10);

    --transition:.25s ease;

}

*,
*::before,
*::after{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Inter',sans-serif;
    background:var(--bg);
    color:var(--text);

    font-size:15px;
    line-height:1.6;

    overflow-x:hidden;

}

/*--------------------------------------------------------------
# Links
--------------------------------------------------------------*/

a{

    color:inherit;
    text-decoration:none;

}

/*--------------------------------------------------------------
# Loader
--------------------------------------------------------------*/

.page-loader{

    position:fixed;
    inset:0;

    background:#fff;

    display:flex;
    align-items:center;
    justify-content:center;

    z-index:999999;

    transition:.4s;

}

.page-loader.hide{

    opacity:0;
    visibility:hidden;

}

/*--------------------------------------------------------------
# Wrapper
--------------------------------------------------------------*/

.dashboard-wrapper{

    display:flex;
    min-height:100vh;

}

/*--------------------------------------------------------------
# Sidebar
--------------------------------------------------------------*/

.dashboard-sidebar{

    position:fixed;

    top:0;
    left:0;

    width:var(--sidebar-width);
    height:100vh;

    background:#fff;

    border-right:1px solid var(--border);

    display:flex;
    flex-direction:column;

    z-index:1050;

    transition:var(--transition);

}

.sidebar-logo{

    height:78px;

    display:flex;
    align-items:center;

    padding:0 24px;

    border-bottom:1px solid var(--border);

}

.logo-link{

    display:flex;
    align-items:center;
    gap:15px;

}

.logo-icon{

    width:48px;
    height:48px;

    border-radius:14px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:linear-gradient(135deg,#6366F1,#3B82F6);

    color:#fff;

    font-size:22px;
    font-weight:700;

}

.logo-text strong{

    display:block;

    font-size:18px;

}

.logo-text small{

    color:var(--muted);

}

/*--------------------------------------------------------------
# Navigation
--------------------------------------------------------------*/

.sidebar-nav{

    flex:1;

    padding:24px 18px;

    overflow-y:auto;

}

.sidebar-group{

    margin-bottom:30px;

}

.sidebar-group-title{

    color:#9CA3AF;

    font-size:12px;
    font-weight:700;

    text-transform:uppercase;
    letter-spacing:1px;

    margin-bottom:12px;

    padding-left:12px;

}

.sidebar-link{

    display:flex;
    align-items:center;
    gap:14px;

    padding:13px 16px;

    border-radius:14px;

    color:#4B5563;

    font-weight:600;

    transition:var(--transition);

    margin-bottom:6px;

}

.sidebar-link:hover{

    background:#EEF2FF;

    color:var(--primary);

}

.sidebar-link.active{

    background:linear-gradient(135deg,#6366F1,#4F46E5);

    color:#fff;

    box-shadow:var(--shadow);

}

.sidebar-icon{

    width:22px;
    text-align:center;

    font-size:18px;

}

/*--------------------------------------------------------------
# User Card
--------------------------------------------------------------*/

.sidebar-user{

    display:flex;
    align-items:center;

    gap:14px;

    padding:22px;

    border-top:1px solid var(--border);

}

.sidebar-user-avatar{

    width:46px;
    height:46px;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    display:flex;
    align-items:center;
    justify-content:center;

    font-weight:700;

    overflow:hidden;

}

.sidebar-user-avatar img{

    width:100%;
    height:100%;

    object-fit:cover;

}

.sidebar-user-info strong{

    display:block;

    font-size:15px;

}

.sidebar-user-info small{

    color:var(--muted);

}

/*--------------------------------------------------------------
# Main
--------------------------------------------------------------*/

.dashboard-main{

    flex:1;

    margin-left:var(--sidebar-width);

    min-height:100vh;

}

/*--------------------------------------------------------------
# Topbar
--------------------------------------------------------------*/

.dashboard-topbar{

    height:var(--topbar-height);

    background:#fff;

    border-bottom:1px solid var(--border);

    display:flex;
    align-items:center;
    justify-content:space-between;

    padding:0 28px;

    position:sticky;

    top:0;

    z-index:1040;

}

.topbar-left,
.topbar-center,
.topbar-right{

    display:flex;
    align-items:center;

    gap:18px;

}

.topbar-search{

    width:420px;

    position:relative;

}

.topbar-search i{

    position:absolute;

    top:50%;
    left:18px;

    transform:translateY(-50%);

    color:#9CA3AF;

}

.topbar-search input{

    padding-left:48px;

    border-radius:16px;

    border:1px solid var(--border);

    height:48px;

    background:#F9FAFB;

}

.topbar-search input:focus{

    border-color:var(--primary);

    box-shadow:none;

}

.topbar-icon-btn{

    width:44px;
    height:44px;

    border-radius:14px;

    background:#F8FAFC;

    border:1px solid var(--border);

}

.topbar-icon-btn:hover{

    background:#EEF2FF;

    color:var(--primary);

}

.user-avatar-placeholder{

    width:42px;
    height:42px;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    display:flex;
    align-items:center;
    justify-content:center;

    font-weight:700;

}

.workspace-btn{

    border:1px solid var(--border);

    border-radius:14px;

    height:46px;

    background:#fff;

}

/*--------------------------------------------------------------
# Cards
--------------------------------------------------------------*/

.card{

    border:none;

    border-radius:22px;

    box-shadow:var(--shadow);

}

.card:hover{

    box-shadow:var(--shadow-lg);

}

/*--------------------------------------------------------------
# Welcome
--------------------------------------------------------------*/

.welcome-section .card{

    background:linear-gradient(135deg,#ffffff,#F8FAFC);

}

.current-time{

    color:var(--primary);

}

.mini-stat{

    background:#F9FAFB;

    border-radius:16px;

    text-align:center;

    padding:16px;

}

/*--------------------------------------------------------------
# Overlay
--------------------------------------------------------------*/

.sidebar-overlay{

    position:fixed;
    inset:0;

    background:rgba(0,0,0,.45);

    opacity:0;
    visibility:hidden;

    transition:.25s;

    z-index:1045;

}

.sidebar-overlay.show{

    opacity:1;
    visibility:visible;

}

/*--------------------------------------------------------------
# Scrollbar
--------------------------------------------------------------*/

::-webkit-scrollbar{

    width:8px;

}

::-webkit-scrollbar-thumb{

    background:#CBD5E1;

    border-radius:50px;

}

/*--------------------------------------------------------------
# Responsive
--------------------------------------------------------------*/

@media (max-width:1199px){

    .dashboard-sidebar{

        transform:translateX(-100%);

    }

    .dashboard-sidebar.show{

        transform:translateX(0);

    }

    .dashboard-main{

        margin-left:0;

    }

}

@media (max-width:991px){

    .dashboard-topbar{

        padding:0 18px;

    }

    .topbar-search{

        width:100%;

    }

}

@media (max-width:768px){

    .dashboard-topbar{

        flex-wrap:wrap;

        height:auto;

        padding:15px;

        gap:15px;

    }

    .topbar-left,
    .topbar-center,
    .topbar-right{

        width:100%;

    }

    .topbar-center{

        order:3;

    }

    .topbar-search{

        width:100%;

    }

    .sidebar-logo{

        height:70px;

    }

}

@media (max-width:576px){

    .container-fluid{

        padding-left:15px;
        padding-right:15px;

    }

    .card-body{

        padding:20px !important;

    }

}
/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/

.dashboard-footer{

    margin-top:40px;

    background:#fff;

    border-top:1px solid var(--border);

    padding:22px 0;

}

.footer-link{

    color:var(--muted);

    font-weight:500;

    transition:.25s;

}

.footer-link:hover{

    color:var(--primary);

}
/*--------------------------------------------------------------
# Profile Card
--------------------------------------------------------------*/

.profile-card{

    overflow:hidden;

}

.profile-avatar{

    width:90px;
    height:90px;

    border-radius:50%;

    object-fit:cover;

    border:4px solid #EEF2FF;

}

.profile-avatar-placeholder{

    width:90px;
    height:90px;

    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:34px;
    font-weight:700;

    color:#fff;

    background:linear-gradient(135deg,#6366F1,#3B82F6);

}

.profile-card .progress{

    background:#EEF2FF;

}

.profile-card .list-group-item{

    border:0;

    padding:.75rem 0;

    font-size:.95rem;

}
/*=====================================================
=            Premium Statistics Cards                 =
=====================================================*/

.stats-card{

    border:0;
    border-radius:22px;

    transition:.30s;

    box-shadow:0 8px 25px rgba(0,0,0,.05);

}

.stats-card:hover{

    transform:translateY(-6px);

    box-shadow:0 20px 40px rgba(0,0,0,.10);

}

.stats-title{

    color:#6b7280;

    font-size:14px;

    font-weight:600;

}

.stats-value{

    font-size:30px;

    font-weight:700;

    margin:0;

}

.stats-icon{

    width:56px;

    height:56px;

    border-radius:18px;

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:24px;

}

.stats-footer{

    border-top:1px solid #edf2f7;

    padding-top:15px;

    font-size:14px;

}

@media(max-width:991px){

    .stats-value{

        font-size:26px;

    }

}

@media(max-width:576px){

    .stats-card{

        border-radius:18px;

    }

}
/*=====================================================
=                 Analytics Section                   =
=====================================================*/

.analytics-card,
.analytics-summary{

    border:0;

    border-radius:22px;

    box-shadow:0 8px 25px rgba(15,23,42,.05);

}

.analytics-select{

    width:170px;

    border-radius:12px;

}

.analytics-summary .summary-item{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:12px 0;

    border-bottom:1px solid #edf2f7;

}

.analytics-summary .summary-item:last-child{

    border:none;

}

.analytics-summary .progress{

    height:8px;

    border-radius:20px;

    background:#eef2f7;

}

.analytics-summary .progress-bar{

    border-radius:20px;

}

#analyticsChart{

    width:100%;

    min-height:340px;

}

@media(max-width:991px){

    #analyticsChart{

        min-height:260px;

    }

}

/*=====================================================
=              Top Performing Links                  =
=====================================================*/

.top-links-card{

    border:0;

    border-radius:22px;

    overflow:hidden;

    box-shadow:0 8px 25px rgba(15,23,42,.05);

}

.top-links-card table{

    margin:0;

}

.top-links-card thead th{

    background:#f8fafc;

    border-bottom:1px solid #edf2f7;

    font-size:13px;

    text-transform:uppercase;

    letter-spacing:.5px;

    color:#6b7280;

    padding:18px;

}

.top-links-card tbody td{

    padding:18px;

    vertical-align:middle;

}

.top-links-card tbody tr{

    transition:.25s;

}

.top-links-card tbody tr:hover{

    background:#f9fbff;

}

.link-icon{

    width:46px;

    height:46px;

    border-radius:14px;

    background:#eef2ff;

    color:#6366f1;

    display:flex;

    align-items:center;

    justify-content:center;

    margin-right:14px;

    font-size:18px;

}

.top-links-card .btn-light{

    width:36px;

    height:36px;

    padding:0;

    border-radius:10px;

    margin-left:4px;

}

@media(max-width:768px){

    .top-links-card table{

        min-width:760px;

    }

}

/*=====================================================
=              Recent Activity Timeline              =
=====================================================*/

.activity-card{

    border:0;

    border-radius:22px;

    overflow:hidden;

    box-shadow:0 10px 30px rgba(15,23,42,.05);

}

.activity-timeline{

    position:relative;

    margin-left:18px;

}

.activity-timeline::before{

    content:"";

    position:absolute;

    left:20px;

    top:0;

    bottom:0;

    width:2px;

    background:#e5e7eb;

}

.activity-item{

    display:flex;

    position:relative;

    margin-bottom:28px;

}

.activity-item:last-child{

    margin-bottom:0;

}

.activity-icon{

    width:42px;

    height:42px;

    min-width:42px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    color:#fff;

    font-size:17px;

    position:relative;

    z-index:2;

    margin-right:20px;

}

.activity-content{

    flex:1;

    background:#fff;

    border-radius:14px;

    padding:15px 18px;

    border:1px solid #eef2f7;

    transition:.25s;

}

.activity-content:hover{

    transform:translateX(5px);

    box-shadow:0 8px 24px rgba(0,0,0,.05);

}

.activity-content h6{

    font-weight:600;

}

@media(max-width:768px){

    .activity-timeline{

        margin-left:8px;

    }

    .activity-content{

        padding:14px;

    }

}

/*=====================================================
=                 Notifications Card                 =
=====================================================*/

.notification-card{

    border:0;

    border-radius:22px;

    overflow:hidden;

    box-shadow:0 10px 30px rgba(15,23,42,.05);

}

.notification-item{

    display:flex;

    gap:18px;

    padding:22px 24px;

    border-top:1px solid #eef2f7;

    transition:.25s;

}

.notification-item:first-child{

    border-top:0;

}

.notification-item:hover{

    background:#fafcff;

}

.notification-item.unread{

    background:#f8fbff;

}

.notification-item.unread::before{

    content:"";

    width:5px;

    border-radius:10px;

    background:#4f46e5;

    margin-right:10px;

}

.notification-icon{

    width:48px;

    height:48px;

    min-width:48px;

    border-radius:14px;

    display:flex;

    align-items:center;

    justify-content:center;

    color:#fff;

    font-size:18px;

}

.notification-body{

    flex:1;

}

.notification-body h6{

    font-weight:600;

}

.notification-actions{

    display:flex;

    gap:8px;

}

.notification-actions .btn{

    border-radius:10px;

    padding:6px 14px;

}

@media(max-width:768px){

    .notification-item{

        padding:18px;

        gap:14px;

    }

}

/*=====================================================
=                 Quick Actions                       =
=====================================================*/

.quick-actions-card{

    border:0;

    border-radius:22px;

    box-shadow:0 10px 30px rgba(15,23,42,.05);

}

.quick-action{

    display:block;

    background:#fff;

    border:1px solid #eef2f7;

    border-radius:20px;

    padding:28px 22px;

    text-align:center;

    transition:.30s;

    height:100%;

}

.quick-action:hover{

    transform:translateY(-8px);

    box-shadow:0 20px 40px rgba(15,23,42,.10);

    border-color:#6366f1;

}

.quick-icon{

    width:68px;

    height:68px;

    margin:auto;

    border-radius:18px;

    display:flex;

    align-items:center;

    justify-content:center;

    color:#fff;

    font-size:28px;

    margin-bottom:18px;

}

.quick-action h6{

    color:#111827;

    font-size:17px;

    font-weight:700;

    margin-bottom:8px;

}

.quick-action p{

    color:#6b7280;

    font-size:14px;

    margin:0;

    line-height:1.6;

}

@media(max-width:768px){

    .quick-action{

        padding:22px 18px;

    }

}

/*=====================================================
=                 Live Preview                        =
=====================================================*/

.live-preview-card{

    border:0;

    border-radius:22px;

    box-shadow:0 10px 30px rgba(15,23,42,.05);

}

.phone-preview{

    width:360px;

    max-width:100%;

    background:#ffffff;

    border:10px solid #111827;

    border-radius:38px;

    overflow:hidden;

    padding:30px 20px;

    box-shadow:0 20px 50px rgba(15,23,42,.12);

}

.preview-header{

    text-align:center;

}

.preview-avatar{

    width:90px;

    height:90px;

    border-radius:50%;

    object-fit:cover;

    border:4px solid #eef2ff;

}

.placeholder-avatar{

    width:90px;

    height:90px;

    border-radius:50%;

    margin:auto;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:34px;

    font-weight:700;

    color:#fff;

    background:linear-gradient(135deg,#6366f1,#3b82f6);

}

.preview-stats{

    display:flex;

    justify-content:space-around;

    margin:25px 0;

    text-align:center;

}

.preview-stats strong{

    display:block;

    font-size:20px;

}

.preview-stats span{

    font-size:13px;

    color:#6b7280;

}

.preview-links{

    display:flex;

    flex-direction:column;

    gap:12px;

}

.preview-link{

    border-radius:14px;

    padding:14px;

    text-align:left;

    font-weight:600;

    border:1px solid #eef2f7;

    transition:.25s;

}

.preview-link i{

    margin-right:10px;

}

.preview-link:hover{

    background:#6366f1;

    color:#fff;

    border-color:#6366f1;

}

@media(max-width:576px){

    .phone-preview{

        border-width:8px;

        padding:22px 16px;

        border-radius:28px;

    }

}

/*=====================================================
=                 Upgrade Card                        =
=====================================================*/

.upgrade-card{

    border:0;

    border-radius:24px;

    overflow:hidden;

    position:relative;

    background:
        linear-gradient(
            135deg,
            #4338ca 0%,
            #6366f1 40%,
            #7c3aed 100%
        );

    color:#fff;

    box-shadow:0 20px 45px rgba(99,102,241,.30);

}

.upgrade-card::before{

    content:"";

    position:absolute;

    width:220px;

    height:220px;

    background:rgba(255,255,255,.08);

    border-radius:50%;

    top:-80px;

    right:-70px;

}

.upgrade-card::after{

    content:"";

    position:absolute;

    width:140px;

    height:140px;

    background:rgba(255,255,255,.05);

    border-radius:50%;

    bottom:-60px;

    left:-50px;

}

.upgrade-card .card-body{

    position:relative;

    z-index:2;

}

.upgrade-badge{

    width:64px;

    height:64px;

    border-radius:18px;

    display:flex;

    align-items:center;

    justify-content:center;

    flex-direction:column;

    font-weight:700;

    background:rgba(255,255,255,.18);

    backdrop-filter:blur(12px);

}

.current-plan{

    background:rgba(255,255,255,.10);

    border-radius:18px;

    padding:18px;

    backdrop-filter:blur(12px);

}

.current-plan .progress{

    height:10px;

    border-radius:30px;

    background:rgba(255,255,255,.20);

}

.current-plan .progress-bar{

    border-radius:30px;

}

.upgrade-features{

    display:flex;

    flex-direction:column;

    gap:14px;

}

.feature-item{

    display:flex;

    align-items:center;

    gap:12px;

    font-weight:500;

}

.feature-item i{

    font-size:18px;

}

.upgrade-card .btn-warning{

    font-weight:700;

    border:none;

}

.upgrade-card .btn-warning:hover{

    transform:translateY(-2px);

}

@media(max-width:768px){

    .upgrade-card{

        border-radius:20px;

    }

}

