
/* =========================================================
   AESTHETIC SOFT UI DESIGN SYSTEM
   Inspired by Duende Branding Concept
   ========================================================= */

/* ---------- ROOT VARIABLES ---------- */
:root{
    --primary-orange: #FF9B2E;
    --secondary-orange: #FFD166;
    --primary-blue: #2D5BFF;
    --deep-blue: #0D47A1;
    --soft-blue: #E9EEFF;
    --background: #F8FAFF;
    --card-bg: rgba(255,255,255,0.78);
    --white: #FFFFFF;
    --text-primary: #1B2559;
    --text-secondary: #6B7280;
    --success: #22C55E;
    --danger: #EF4444;

    --shadow-soft: 0 10px 30px rgba(45,91,255,0.08);
    --shadow-card: 0 8px 24px rgba(15,23,42,0.06);
    --shadow-hover: 0 12px 32px rgba(45,91,255,0.16);

    --radius-xl: 28px;
    --radius-lg: 20px;
    --radius-md: 16px;
    --radius-sm: 12px;

    --transition: all .25s ease;
}

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

body{
    font-family: 'Poppins', sans-serif;
    background: linear-gradient(
        180deg,
        #F8FAFF 0%,
        #EEF3FF 100%
    );
    color: var(--text-primary);
}

/* ---------- LAYOUT ---------- */
.app{
    display:flex;
    min-height:100vh;
}

/* ---------- SIDEBAR ---------- */
.sidebar{
    width:260px;
    background: rgba(255,255,255,0.72);
    backdrop-filter: blur(18px);
    border-right:1px solid rgba(255,255,255,.4);
    padding:24px;
    box-shadow: var(--shadow-soft);
}

.brand{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:40px;
}

.brand img{
    width:54px;
    height:54px;
    border-radius:18px;
}

.brand h1{
    font-size:22px;
    font-weight:700;
}

.menu{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.menu a{
    display:flex;
    align-items:center;
    gap:14px;
    text-decoration:none;
    color: var(--text-secondary);
    padding:14px 18px;
    border-radius:18px;
    transition: var(--transition);
    font-weight:500;
}

.menu a:hover{
    background: rgba(45,91,255,.08);
    color: var(--primary-blue);
}

.menu a.active{
    background: linear-gradient(
        135deg,
        var(--primary-orange),
        #FFB347
    );
    color:white;
    box-shadow: var(--shadow-soft);
}

/* ---------- MAIN CONTENT ---------- */
.main{
    flex:1;
    padding:32px;
}

.topbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:28px;
}

.search{
    width:320px;
    background:white;
    border:none;
    padding:16px 20px;
    border-radius:20px;
    box-shadow: var(--shadow-card);
    outline:none;
    font-size:14px;
}

/* ---------- CARDS ---------- */
.cards{
    display:grid;
    grid-template-columns: repeat(auto-fit,minmax(220px,1fr));
    gap:24px;
    margin-bottom:28px;
}

.card{
    background: var(--card-bg);
    backdrop-filter: blur(16px);
    border:1px solid rgba(255,255,255,.5);
    border-radius: var(--radius-xl);
    padding:24px;
    box-shadow: var(--shadow-card);
    transition: var(--transition);
}

.card:hover{
    transform: translateY(-4px);
    box-shadow: var(--shadow-hover);
}

.card-icon{
    width:54px;
    height:54px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:18px;
    color:white;
    font-size:22px;
}

.orange{
    background: linear-gradient(
        135deg,
        var(--primary-orange),
        #FFB84D
    );
}

.blue{
    background: linear-gradient(
        135deg,
        var(--primary-blue),
        #6F8DFF
    );
}

.card h3{
    font-size:14px;
    color: var(--text-secondary);
    margin-bottom:10px;
}

.card .value{
    font-size:36px;
    font-weight:700;
    margin-bottom:8px;
}

.card .trend{
    font-size:13px;
    color: var(--success);
}

/* ---------- TABLE / PANELS ---------- */
.panel{
    background: rgba(255,255,255,.82);
    backdrop-filter: blur(18px);
    border-radius:32px;
    padding:28px;
    box-shadow: var(--shadow-card);
}

.panel-title{
    font-size:20px;
    font-weight:600;
    margin-bottom:24px;
}

/* ---------- BUTTONS ---------- */
.btn{
    border:none;
    padding:14px 24px;
    border-radius:18px;
    font-weight:600;
    cursor:pointer;
    transition: var(--transition);
}

.btn-primary{
    background: linear-gradient(
        135deg,
        var(--primary-orange),
        #FFB347
    );
    color:white;
    box-shadow: var(--shadow-soft);
}

.btn-primary:hover{
    transform:translateY(-2px);
}

.btn-secondary{
    background:white;
    color: var(--primary-blue);
    border:1px solid rgba(45,91,255,.14);
}

.btn-secondary:hover{
    background: var(--soft-blue);
}

/* ---------- INPUTS ---------- */
.input{
    width:100%;
    padding:16px 18px;
    border:none;
    border-radius:18px;
    background:white;
    box-shadow: var(--shadow-card);
    outline:none;
}

/* ---------- MOBILE ---------- */
@media(max-width:900px){

    .sidebar{
        width:90px;
        padding:18px 12px;
    }

    .brand h1{
        display:none;
    }

    .menu a span{
        display:none;
    }

    .main{
        padding:20px;
    }

    .cards{
        grid-template-columns:1fr;
    }

    .topbar{
        flex-direction:column;
        gap:16px;
        align-items:flex-start;
    }

    .search{
        width:100%;
    }
}

/* ---------- GLASS EFFECT ---------- */
.glass{
    background: rgba(255,255,255,.62);
    backdrop-filter: blur(20px);
    border:1px solid rgba(255,255,255,.3);
}

/* ---------- SCROLLBAR ---------- */
::-webkit-scrollbar{
    width:10px;
}

::-webkit-scrollbar-thumb{
    background: linear-gradient(
        var(--primary-orange),
        var(--primary-blue)
    );
    border-radius:999px;
}
