.button {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
    padding: 0.68rem 1.05rem;
    border: 1px solid var(--color-accent);
    border-radius: var(--radius-small);
    background: var(--color-accent);
    color: #fff;
    font-weight: 680;
    line-height: 1.2;
    text-decoration: none;
    transition: background-color 160ms ease, transform 160ms ease;
    cursor: pointer;
}
.button:hover { background: var(--color-accent-dark); color: #fff; transform: translateY(-1px); }
.button--secondary { background: var(--color-surface); color: var(--color-accent); }
.button--secondary:hover { background: #edf3ef; color: var(--color-accent-dark); }
.button--small { min-height: 2.25rem; padding: 0.4rem 0.7rem; font-size: 0.9rem; }
.button--quiet { border-color: #69847a; background: transparent; color: inherit; }
.button--quiet:hover { background: rgb(255 255 255 / 8%); }
.text-link { display: inline-flex; align-items: center; gap: 0.45rem; font-weight: 680; }
.text-link::after { content: "→"; transition: transform 160ms ease; }
.text-link:hover::after { transform: translateX(0.2rem); }
.card-grid { display: grid; gap: var(--space-2); }
.card { padding: var(--space-3); border: 1px solid var(--color-border); border-radius: var(--radius); background: var(--color-surface); box-shadow: var(--shadow-small); }
.flash-stack { padding-top: var(--space-2); }
.flash, .notice { padding: 0.85rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: var(--color-surface); box-shadow: var(--shadow-small); }
.flash--success { border-color: #91b2a4; color: var(--color-success); }
.flash--error { border-color: #d3a1a1; color: var(--color-error); }
.empty-state { color: var(--color-muted); }
label { display: grid; gap: 0.35rem; font-weight: 650; }
input, textarea, select { width: 100%; padding: 0.72rem 0.78rem; border: 1px solid #aeb9b3; border-radius: var(--radius-small); background: #fff; color: var(--color-text); }
textarea { resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: var(--color-accent); }
.checkbox-field { display: flex; align-items: center; gap: 0.6rem; font-weight: 500; }
.checkbox-field input { width: auto; }
.button--danger { border-color: var(--color-error); background: var(--color-error); }
.button:disabled, input:disabled, textarea:disabled { cursor: not-allowed; opacity: 0.55; }
.form-columns { display: grid; gap: var(--space-2); }
fieldset { margin: 0; padding: var(--space-2); border: 1px solid var(--color-border); border-radius: var(--radius-small); }
.honeypot-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

@media (min-width: 42rem) {
    .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .form-columns { grid-template-columns: 1fr 1fr; }
}
