:root {
    --color-primary: #D53302;
    --color-secondary: #FCC565;
    --color-soft-green: #A0CBAD;
    --color-green: #8FB18E;
    --color-dark: #0C512A;
    --sidebar-width: 280px;
}

body {
    background: #f8f6f2;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: #263128;
}

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

.sidebar {
    width: var(--sidebar-width);
    background: linear-gradient(180deg, var(--color-dark), #08381e);
    color: #fff;
    padding: 20px;
    position: fixed;
    inset: 0 auto 0 0;
    overflow-y: auto;
}

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

.sidebar-brand small {
    display: block;
    color: rgba(255,255,255,.72);
    font-size: 12px;
}

.brand-logo {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: var(--color-primary);
    display: grid;
    place-items: center;
    font-size: 22px;
}

.sidebar-nav a {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 12px 14px;
    border-radius: 14px;
    color: rgba(255,255,255,.82);
    text-decoration: none;
    margin-bottom: 6px;
    transition: .2s;
}

.sidebar-nav a:hover,
.sidebar-nav a.active {
    background: rgba(255,255,255,.13);
    color: #fff;
}

.sidebar-nav a.active {
    box-shadow: inset 4px 0 0 var(--color-secondary);
}

.sidebar-section {
    font-size: 12px;
    letter-spacing: .08em;
    color: rgba(255,255,255,.55);
    text-transform: uppercase;
    margin: 18px 0 8px 12px;
}

.main-content {
    margin-left: var(--sidebar-width);
    width: calc(100% - var(--sidebar-width));
}

.topbar {
    min-height: 76px;
    background: rgba(255,255,255,.92);
    border-bottom: 1px solid #ece3d7;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 26px;
    position: sticky;
    top: 0;
    z-index: 50;
    backdrop-filter: blur(10px);
}

.avatar-sm {
    width: 34px;
    height: 34px;
    object-fit: cover;
    border-radius: 50%;
}

.avatar-lg {
    width: 110px;
    height: 110px;
    object-fit: cover;
    border-radius: 50%;
}

.avatar-placeholder {
    display: inline-grid;
    place-items: center;
    background: var(--color-soft-green);
    color: var(--color-dark);
}

.card {
    border: 0;
    border-radius: 22px;
    box-shadow: 0 8px 26px rgba(21, 37, 22, .07);
}

.stat-card {
    overflow: hidden;
    position: relative;
}

.stat-card::after {
    content: "";
    position: absolute;
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: rgba(213, 51, 2, .08);
    right: -18px;
    bottom: -22px;
}

.stat-icon {
    width: 46px;
    height: 46px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    font-size: 22px;
    color: #fff;
}

.bg-primary-custom { background: var(--color-primary); }
.bg-secondary-custom { background: var(--color-secondary); color: #3d2b00; }
.bg-green-custom { background: var(--color-green); }
.bg-dark-custom { background: var(--color-dark); }

.btn-primary {
    --bs-btn-bg: var(--color-primary);
    --bs-btn-border-color: var(--color-primary);
    --bs-btn-hover-bg: #b92d04;
    --bs-btn-hover-border-color: #b92d04;
}

.btn-success {
    --bs-btn-bg: var(--color-green);
    --bs-btn-border-color: var(--color-green);
    --bs-btn-hover-bg: #789b77;
    --bs-btn-hover-border-color: #789b77;
}

.table > :not(caption) > * > * {
    padding: .85rem .75rem;
    vertical-align: middle;
}

.badge-soft {
    background: #fff1df;
    color: var(--color-primary);
}

.icon-preview {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    object-fit: cover;
    background: #f2f2f2;
}

.auth-body {
    min-height: 100vh;
    display: grid;
    place-items: center;
    background: radial-gradient(circle at top left, #FCC565 0, transparent 32%), linear-gradient(135deg, #0C512A, #062713);
}

.auth-card {
    max-width: 430px;
    width: 100%;
    border-radius: 28px;
}

@media (max-width: 992px) {
    .sidebar {
        position: static;
        width: 100%;
        min-height: auto;
    }
    .app-layout {
        display: block;
    }
    .main-content {
        width: 100%;
        margin-left: 0;
    }
    .topbar {
        position: static;
        align-items: flex-start;
        gap: 12px;
        flex-direction: column;
    }
}
