:root {
    --hw-bg: #F3F6F2;
    --hw-surface: #FFFFFF;
    --hw-ink: #0B2A1A;
    --hw-muted: #4B6154;
    --hw-accent: #16692E;
    --hw-accent-light: #1f8a3d;
    --hw-orange: #F26A0F;
    --hw-line: #CEDACF;
    --hw-ok: #1B7F4B;
    --hw-warn: #9A5B00;
    --hw-bad: #B8321F;
}

body {
    font-family: 'Source Sans 3', system-ui, sans-serif;
    background: var(--hw-bg);
    color: var(--hw-ink);
    min-height: 100vh;
}

h1, h2, h3, h4, .navbar-brand, .logo-mark {
    font-family: 'Bricolage Grotesque', system-ui, sans-serif;
}

.hwendo-nav {
    background: var(--hw-ink) !important;
}

.logo-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: var(--hw-accent);
    color: white;
    border-radius: 6px;
    font-weight: 800;
    margin-right: 6px;
}

.card {
    border: 1px solid var(--hw-line);
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(11,42,26,.06), 0 8px 24px -12px rgba(11,42,26,.18);
}

.card-header {
    background: transparent;
    border-bottom: 1px solid var(--hw-line);
    font-weight: 600;
}

.btn-primary {
    background: var(--hw-accent);
    border-color: var(--hw-accent);
}
.btn-primary:hover {
    background: var(--hw-accent-light);
    border-color: var(--hw-accent-light);
}

.btn-orange {
    background: var(--hw-orange);
    border-color: var(--hw-orange);
    color: white;
}
.btn-orange:hover {
    background: #d95a0a;
    border-color: #d95a0a;
    color: white;
}

.badge-status {
    font-weight: 600;
    font-size: 0.75rem;
    padding: 0.35em 0.65em;
    border-radius: 6px;
}
.badge-proposed { background: #fff3cd; color: #856404; }
.badge-confirmed { background: #d1e7dd; color: #0f5132; }
.badge-refused { background: #f8d7da; color: #842029; }
.badge-contested { background: #f8d7da; color: #842029; }
.badge-pending { background: #cff4fc; color: #055160; }

.person-card {
    transition: transform .15s ease;
}
.person-card:hover {
    transform: translateY(-2px);
}

.stat-card {
    text-align: center;
    padding: 1.25rem;
}
.stat-card .number {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--hw-accent);
    font-family: 'Bricolage Grotesque', sans-serif;
}

.tree-node {
    background: white;
    border: 2px solid var(--hw-line);
    border-radius: 12px;
    padding: 0.75rem 1rem;
    text-align: center;
    min-width: 140px;
}
.tree-node.me {
    border-color: var(--hw-accent);
    background: #e8f5e9;
}
.tree-node.confirmed {
    border-color: var(--hw-ok);
}
.tree-node.proposed {
    border-style: dashed;
}

.auth-wrapper {
    max-width: 420px;
    margin: 2rem auto;
}

.hero-home {
    background: linear-gradient(135deg, #0B2A1A 0%, #16692E 100%);
    color: white;
    border-radius: 16px;
    padding: 3rem 2rem;
    margin-bottom: 2rem;
}
