:root {
    --spensive-ink: #17211d;
    --spensive-muted: #64706a;
    --spensive-paper: #f4f6f2;
    --spensive-surface: #ffffff;
    --spensive-accent: #176b4d;
    --spensive-accent-dark: #0f5138;
    --spensive-line: #dce3dd;
}

body {
    min-height: 100vh;
    color: var(--spensive-ink);
    background:
        radial-gradient(circle at 92% 8%, rgba(75, 166, 124, .13), transparent 28rem),
        var(--spensive-paper);
}

.navbar {
    background: rgba(255, 255, 255, .9);
    backdrop-filter: blur(16px);
}

.navbar-brand,
.eyebrow {
    letter-spacing: .08em;
}

.eyebrow {
    margin-bottom: .65rem;
    color: var(--spensive-accent);
    font-size: .75rem;
    font-weight: 700;
}

.hero-panel {
    overflow: hidden;
    border: 1px solid var(--spensive-line);
    border-radius: 1.25rem;
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 1.5rem 4rem rgba(23, 33, 29, .08);
}

.card,
.info-tile {
    border: 1px solid var(--spensive-line);
    border-radius: 1rem;
    background: var(--spensive-surface);
}

.info-tile {
    padding: 1.5rem;
}

.card-header {
    border-bottom: 0;
}

.btn-primary {
    --bs-btn-bg: var(--spensive-accent);
    --bs-btn-border-color: var(--spensive-accent);
    --bs-btn-hover-bg: var(--spensive-accent-dark);
    --bs-btn-hover-border-color: var(--spensive-accent-dark);
}

.empty-state {
    padding: 3rem 1rem;
    text-align: center;
    border: 1px dashed var(--spensive-line);
    border-radius: .75rem;
}

.table > :not(caption) > * > * {
    padding: .9rem .75rem;
    border-bottom-color: var(--spensive-line);
}
