:root { --ink: #16332c; --accent: #27654e; }
body { color: var(--ink); background: #fafbf8; min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }
a { color: var(--accent); text-underline-offset: .2em; }
a:hover { color: #123e2c; }
a:focus-visible { outline: 3px solid #896317; outline-offset: 4px; }
.brand { color: var(--ink); font-size: 1.2rem; font-weight: 750; text-decoration: none; }
.hero { background: #e9f0e5; max-width: 58rem; }
.hero h1 { font-size: clamp(2.2rem, 6vw, 4rem); font-weight: 750; letter-spacing: -.035em; }
.hero .lead { max-width: 38rem; }
.eyebrow { color: #3f654f; font-weight: 650; letter-spacing: .07em; }
.skip-link { position: absolute; left: 1rem; top: -6rem; background: white; padding: .8rem; z-index: 10; }
.skip-link:focus { top: 1rem; }
@media (max-width: 400px) { nav .brand { width: 100%; } }
.admin-form { max-width: 34rem; }
.request-honeypot { display: none; }
.validation-summary-valid { display: none; }
.dashboard-card { display: flex; flex-direction: column; height: 100%; padding: 1rem; border: 1px solid #b6c7b9; border-radius: .4rem; background: #e9f0e5; }
.dashboard-card strong { font-size: 2rem; }
meter { width: 6rem; }
.recovery-codes { overflow-wrap: anywhere; }
.catalog-preview { width: 100%; height: 200px; object-fit: cover; }
.catalog-detail-preview { max-width: 100%; max-height: 420px; object-fit: contain; }
.preserve-lines { white-space: pre-line; overflow-wrap: anywhere; }
.catalog-admin-row { overflow-wrap: anywhere; }
h1, h2, h3, nav a { overflow-wrap: anywhere; }
