:root {
    --cp-accent: #1f9d63;
    --cp-bg: #f3f6f5;
    --cp-white: #ffffff;
    --cp-text: #1f2937;
    --cp-border: #d9e2df;
}

body {
    background: radial-gradient(circle at 10% 10%, #e8f5ee 0, #f4f7f6 35%, #f7f8f8 100%);
    color: var(--cp-text);
}

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

.cp-sidebar {
    width: 260px;
    background: #fff;
    border-right: 1px solid var(--cp-border);
    position: sticky;
    top: 0;
    height: 100vh;
}

.cp-sidebar .nav-link {
    color: #2f3e38;
    border-radius: .5rem;
}

.cp-sidebar .nav-link:hover,
.cp-sidebar .nav-link:focus {
    background: #e8f5ee;
    color: #176943;
}

.cp-main { flex: 1; }
.cp-topbar { background: var(--cp-white); }

.card-stat {
    border: 1px solid var(--cp-border);
    border-radius: .9rem;
    box-shadow: 0 8px 20px rgba(16, 24, 40, 0.04);
}

.btn-primary {
    --bs-btn-bg: var(--cp-accent);
    --bs-btn-border-color: var(--cp-accent);
    --bs-btn-hover-bg: #1a8755;
    --bs-btn-hover-border-color: #1a8755;
}

.form-control:focus,
.form-select:focus,
.btn:focus {
    border-color: #33b277;
    box-shadow: 0 0 0 .2rem rgba(31, 157, 99, .2);
}

@media (max-width: 991.98px) {
    .cp-sidebar { display: none; }
}
