:root{
    --app-bg:#f5f7fb;
    --card-radius:18px;
    --sidebar-width:260px;
}

body{
    background:var(--app-bg);
    font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

.app-shell{
    display:flex;
    min-height:100vh;
}

.sidebar{
    width:var(--sidebar-width);
    background:#fff;
    border-right:1px solid #e9edf5;
    display:flex;
    flex-direction:column;
    position:sticky;
    top:0;
    height:100vh;
}

.main-shell{
    flex:1;
    min-width:0;
}

.content-area{
    min-height:calc(100vh - 60px);
}

.brand-mark, .avatar-circle{
    width:40px;
    height:40px;
    border-radius:14px;
    display:grid;
    place-items:center;
    font-weight:700;
    color:#fff;
    background:linear-gradient(135deg,#4169e1,#7b61ff);
    flex:none;
}

.avatar-circle{ width:36px; height:36px; }

.sidebar .nav-link{
    color:#5b6475;
    border-radius:12px;
    padding:.72rem .9rem;
    font-weight:500;
}

.sidebar .nav-link:hover,
.sidebar .nav-link.active{
    background:#eef3ff;
    color:#2b59ff;
}

.card-soft{
    border:1px solid #e9edf5;
    border-radius:var(--card-radius);
    box-shadow:0 10px 30px rgba(15,23,42,.05);
}

.metric-card{
    border-radius:var(--card-radius);
    border:1px solid #e9edf5;
    box-shadow:0 10px 30px rgba(15,23,42,.05);
}

.metric-icon{
    width:44px;
    height:44px;
    border-radius:14px;
    display:grid;
    place-items:center;
    background:#f3f6ff;
    color:#3451d1;
}

.table thead th{
    background:#f8fafc;
    border-bottom:1px solid #e9edf5;
}

.kpi-chip{
    border-radius:999px;
    padding:.35rem .75rem;
    background:#f5f7fb;
    font-size:.85rem;
}

.calendar-grid{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:10px;
}

.calendar-day{
    min-height:120px;
    background:#fff;
    border:1px solid #e9edf5;
    border-radius:16px;
    padding:10px;
}

.calendar-day .day-num{
    font-weight:700;
    color:#334155;
}

@media (max-width: 991.98px){
    .sidebar{
        position:fixed;
        left:-280px;
        z-index:1040;
        transition:.25s ease;
    }
    .sidebar.show{
        left:0;
    }
}
