:root {
    --ledger-green: #12372a;
    --ledger-green-2: #1f5a43;
    --ledger-cream: #f4f5f1;
    --ledger-ink: #17211d;
    --bs-primary: #1f5a43;
    --bs-primary-rgb: 31, 90, 67;
}

body { background: var(--ledger-cream); color: var(--ledger-ink); }
.guest-body { min-height: 100vh; background: radial-gradient(circle at top, #fff 0, var(--ledger-cream) 58%); }
.brand { width: fit-content; display: flex; align-items: center; gap: .7rem; font-weight: 700; letter-spacing: -.02em; }
.brand-mark { display: inline-grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: .75rem; color: #fff; background: var(--ledger-green); }
.brand-mark-small { width: 1.9rem; height: 1.9rem; border-radius: .55rem; color: var(--ledger-green); background: #fff; }
.auth-panel { max-width: 29rem; }
.install-panel { max-width: 48rem; }
.eyebrow { color: var(--ledger-green-2); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.section-heading { color: var(--ledger-green); padding-bottom: .6rem; border-bottom: 1px solid #e0e4df; }
.btn-primary { --bs-btn-bg: var(--ledger-green-2); --bs-btn-border-color: var(--ledger-green-2); --bs-btn-hover-bg: var(--ledger-green); --bs-btn-hover-border-color: var(--ledger-green); }
.form-control:focus { border-color: #6d9e89; box-shadow: 0 0 0 .2rem rgba(31,90,67,.14); }
.app-navbar { height: 4rem; background: var(--ledger-green); z-index: 1040; }
.app-sidebar { --bs-offcanvas-width: 16rem; background: #fff; }
.app-sidebar .nav-link { color: #415049; }
.app-sidebar .nav-link.active { background: #e8f0ec; color: var(--ledger-green); font-weight: 600; }
.app-sidebar .nav-link small { color: #929b96; }
.metric-card { border-top: 3px solid transparent !important; transition: transform .15s ease; }
.metric-card:hover { transform: translateY(-2px); border-top-color: #7ca28f !important; }
.metric-value { font-size: clamp(1.4rem, 3vw, 1.9rem); font-weight: 650; letter-spacing: -.03em; }
.status-item { display: flex; gap: .75rem; align-items: flex-start; }
.status-item > span { display: inline-grid; place-items: center; flex: 0 0 1.7rem; height: 1.7rem; border-radius: 50%; background: #e1efe7; color: #17623f; font-weight: 700; }
.status-item small { display: block; color: #6c757d; margin-top: .2rem; }

@media (min-width: 992px) {
    .app-sidebar { position: fixed; top: 4rem; bottom: 0; left: 0; width: 16rem; border-right: 1px solid #e0e4df; transform: none !important; visibility: visible !important; }
    .app-content { margin-left: 16rem; }
}

@media print {
    .app-navbar, .app-sidebar { display: none !important; }
    .app-content { margin: 0; }
    body { background: #fff; }
    .card { box-shadow: none !important; border: 1px solid #ddd !important; }
}
