/* ==========================================
   ROSARIO SOLUTIONS
   CONTRACTOR PORTAL
========================================== */

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

:root{

    --primary:#0d6efd;
    --success:#16a34a;
    --danger:#dc2626;
    --warning:#f59e0b;

    --sidebar:#1e293b;

    --background:#f4f7fb;

    --card:#ffffff;

    --text:#1f2937;

    --muted:#6b7280;

    --border:#e5e7eb;

}

body{

    background:var(--background);

    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;

    color:var(--text);

}

/* ==========================================
        APP
========================================== */

.portal{

    display:flex;

    min-height:100vh;

}

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

.sidebar{

    position:fixed;

    left:0;

    top:0;

    width:275px;

    height:100vh;

    background:var(--sidebar);

    color:white;

    padding:28px;

    display:flex;

    flex-direction:column;

    justify-content:space-between;

    overflow-y:auto;

}

.sidebar h4{

    font-weight:700;

    margin-bottom:35px;

}

.sidebar .nav{

    gap:.35rem;

}

.sidebar .nav-link{

    display:flex;

    align-items:center;

    gap:14px;

    color:#d1d5db;

    padding:14px 18px;

    border-radius:14px;

    transition:.25s;

    font-weight:500;

}

.sidebar .nav-link i{

    width:22px;

    text-align:center;

}

.sidebar .nav-link:hover{

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

    color:white;

}

.sidebar .nav-link.active{

    background:var(--primary);

    color:white;

    box-shadow:0 15px 35px rgba(13,110,253,.30);

}

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

.content{

    flex:1;

    margin-left:275px;

    padding:35px;

}

/* ==========================================
        HERO
========================================== */

.portal-hero{

    background:white;

    border-radius:24px;

    padding:40px;

    margin-bottom:30px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    box-shadow:0 10px 40px rgba(0,0,0,.05);

}

.portal-hero h1{

    font-size:2.3rem;

    font-weight:700;

    margin-bottom:10px;

}

.portal-hero p{

    color:var(--muted);

    margin:0;

    font-size:1.05rem;

}

.hero-actions{

    display:flex;

    gap:15px;

    flex-wrap:wrap;

}

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

.btn{

    border-radius:12px;

    padding:12px 20px;

    font-weight:600;

}

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

.portal-card{

    background:white;

    border:none;

    border-radius:22px;

    padding:28px;

    box-shadow:0 10px 35px rgba(0,0,0,.05);

    transition:.25s;

    height:100%;

}

.portal-card:hover{

    transform:translateY(-4px);

    box-shadow:0 18px 45px rgba(0,0,0,.08);

}

/* ==========================================
        KPI ICONS
========================================== */

.stat-icon{

    width:60px;

    height:60px;

    border-radius:18px;

    display:flex;

    align-items:center;

    justify-content:center;

    margin-bottom:18px;

    font-size:1.4rem;

}

/* ==========================================
        KPI COLORS
========================================== */

.kpi-green .stat-icon{

    background:#dcfce7;

    color:#16a34a;

}

.kpi-green h2{

    color:#16a34a;

}

.kpi-blue .stat-icon{

    background:#dbeafe;

    color:#2563eb;

}

.kpi-blue h2{

    color:#2563eb;

}

/* ==========================================
        KPI TEXT
========================================== */

.portal-card small{

    color:var(--muted);

    display:block;

    margin-bottom:10px;

    font-size:.95rem;

}

.portal-card h2{

    font-size:2.4rem;

    font-weight:700;

    margin-bottom:12px;

}

.kpi-change{

    font-size:.9rem;

    color:var(--muted);

}

.kpi-change.positive{

    color:var(--success);

    font-weight:600;

}

/* ==========================================
        EMPTY STATE
========================================== */

.empty-state{

    text-align:center;

    padding:70px 20px;

}

.empty-state i{

    font-size:4rem;

    color:#d1d5db;

    margin-bottom:20px;

}

.empty-state h5{

    margin-bottom:10px;

    font-weight:700;

}

.empty-state p{

    color:var(--muted);

    margin:0;

}

/* ==========================================
        LIST GROUP
========================================== */

.list-group-item{

    border:none;

    padding:16px 0;

}

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

@media(max-width:991px){

    .sidebar{

        display:none;

    }

    .content{

        margin-left:0;

        padding:20px;

    }

    .portal-hero{

        flex-direction:column;

        align-items:flex-start;

        gap:25px;

        padding:28px;

    }

    .portal-hero h1{

        font-size:1.8rem;

    }

    .hero-actions{

        width:100%;

    }

    .hero-actions .btn{

        flex:1;

    }

}

@media(max-width:576px){

    .content{

        padding:15px;

    }

    .portal-card{

        padding:22px;

    }

    .portal-hero{

        border-radius:18px;

    }

    .portal-card h2{

        font-size:2rem;

    }

}