:root {
    --sidebar-width: 250px;
    --brand-color: #14532d;
    --brand-light: #16a34a;
}

body { background: #f4f6f8; }

.login-page { min-height: 100vh; background: linear-gradient(135deg, #14532d, #16a34a); }
.login-card { width: 100%; max-width: 400px; border: none; border-radius: 14px; }

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

.app-sidebar {
    width: var(--sidebar-width);
    background: var(--brand-color);
    color: #fff;
    position: fixed;
    top: 0; bottom: 0; left: 0;
    overflow-y: auto;
    z-index: 1030;
    transition: transform 0.25s ease;
}
.sidebar-brand {
    padding: 1.25rem 1rem;
    font-weight: 700;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.15);
}
.sidebar-nav { display: flex; flex-direction: column; padding: 0.5rem 0; }
.sidebar-nav a {
    color: rgba(255,255,255,0.85);
    padding: 0.65rem 1.25rem;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.92rem;
}
.sidebar-nav a:hover, .sidebar-nav a.active {
    background: rgba(255,255,255,0.12);
    color: #fff;
    border-left: 3px solid var(--brand-light);
}

.app-main { margin-left: var(--sidebar-width); flex: 1; display: flex; flex-direction: column; min-height: 100vh; width: calc(100% - var(--sidebar-width)); }
.app-topbar { height: 60px; background: #fff; border-bottom: 1px solid #e5e7eb; position: sticky; top: 0; z-index: 1020; }
.app-content { flex: 1; }
.app-footer { background: #fff; border-top: 1px solid #e5e7eb; }

@media (max-width: 991.98px) {
    .app-sidebar { transform: translateX(-100%); }
    .app-sidebar.show { transform: translateX(0); }
    .app-main { margin-left: 0; width: 100%; }
}

.dashboard-card { border: none; border-radius: 12px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
.dashboard-card .icon-box {
    width: 46px; height: 46px; border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.3rem; color: #fff;
}

.status-timeline { list-style: none; padding-left: 0; border-left: 2px solid #dee2e6; margin-left: 10px; }
.status-timeline li { position: relative; padding: 0 0 1.25rem 1.25rem; }
.status-timeline li::before {
    content: ''; position: absolute; left: -7px; top: 4px;
    width: 12px; height: 12px; border-radius: 50%; background: var(--brand-light);
}

.payment-progress { height: 10px; border-radius: 6px; }

.table thead th { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.03em; color: #6b7280; border-bottom-width: 1px; }

@media print {
    .app-sidebar, .app-topbar, .app-footer, .no-print { display: none !important; }
    .app-main { margin-left: 0 !important; width: 100% !important; }
}
