body.doa-app {
    --bg: #f4f6ef;
    --bg-accent: #e7eedd;
    --primary: #3f6212;
    --primary-hover: #365314;
    --primary-soft: #ecfccb;
    --border: #d5e0c4;
    --accent: #b45309;
    --accent-soft: #ffedd5;
    background:
        radial-gradient(ellipse 80% 50% at 10% -10%, rgba(63, 98, 18, 0.14), transparent 55%),
        radial-gradient(ellipse 60% 40% at 100% 0%, rgba(180, 83, 9, 0.08), transparent 50%),
        linear-gradient(180deg, #eef3e4 0%, var(--bg) 38%, #f7f8f2 100%);
}

body.doa-app .logo {
    background: linear-gradient(145deg, #65a30d 0%, var(--primary) 100%);
    box-shadow: 0 4px 12px rgba(63, 98, 18, 0.28);
    font-family: var(--font-display);
    font-weight: 700;
}

body.doa-app .container a:not(.btn) {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
}

body.doa-app .container a:not(.btn):hover {
    text-decoration: underline;
    color: var(--primary-hover);
}

body.doa-app .btn-primary {
    background: linear-gradient(180deg, #65a30d 0%, var(--primary) 100%);
    color: #fff;
    box-shadow: 0 4px 14px rgba(63, 98, 18, 0.28);
}

body.doa-app .btn-primary:hover {
    background: var(--primary-hover);
    color: #fff;
}

body.doa-app .btn-secondary {
    background: #eef3e4;
    color: var(--text);
    border: 1px solid var(--border);
}

body.doa-app .btn-secondary:hover {
    background: var(--bg-accent);
    color: var(--text);
}

.expiry-bad { color: #b91c1c; font-weight: 700; }
.expiry-warn { color: #b45309; font-weight: 700; }
.expiry-ok { color: inherit; }
.expiry-muted { color: var(--muted); }

.row-missing { background: #fef2f2; }

.recipe-list {
    margin: 0.75rem 0 0;
    padding-left: 1.2rem;
}

.inline-adjust {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.inline-adjust input {
    width: 7rem;
    min-height: 36px;
}

.home-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.basket-line {
    align-items: end;
}

h2 {
    font-family: var(--font-display);
    font-size: 1.25rem;
    margin-bottom: 0.35rem;
}

.card + .card,
.stats-grid + .card,
.card + .stats-grid {
    margin-top: 1rem;
}

.stats-grid {
    margin-bottom: 1rem;
}
