:root { color-scheme: light; font: 16px/1.6 system-ui, sans-serif; color: #182b2a; background: #f4f6f1; }
* { box-sizing: border-box; }
body { margin: 0; }
header, main, footer { max-width: 1080px; margin: auto; padding: 24px; }
header { display: flex; align-items: center; gap: 24px; border-bottom: 1px solid #d4ddd2; }
header span, footer { color: #506560; font-size: .9rem; }
.brand { font-weight: 850; font-size: 2rem; letter-spacing: -.08em; text-decoration: none; }
a { color: #176047; }
h1 { font-size: clamp(2rem, 5vw, 3.6rem); letter-spacing: -.045em; margin: 0 0 12px; line-height: 1.1; }
h2 { font-size: 1.25rem; margin-top: 0; }
p { margin: 8px 0 20px; }
.intro { padding: 38px 0 24px; }
.eyebrow { letter-spacing: .15em; font-size: .72rem; font-weight: 750; }
.columns { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.card { background: #fff; border: 1px solid #d9e2d7; border-radius: 14px; padding: 28px; margin-bottom: 24px; }
label { display: block; font-size: .9rem; font-weight: 650; margin: 16px 0; }
input, textarea, select { width: 100%; margin-top: 6px; border: 1px solid #9aaa9f; background: #fff; border-radius: 6px; padding: 12px; font: inherit; }
.runner { border-top: 1px solid #d9e2d7; padding: 16px 0; }
input:focus, textarea:focus, button:focus-visible, a:focus-visible { outline: 3px solid #9fcab5; outline-offset: 3px; }
button, .button { display: inline-block; cursor: pointer; background: #185e45; color: white; border: 1px solid #185e45; padding: 11px 17px; border-radius: 6px; font: inherit; font-weight: 650; text-decoration: none; }
button:disabled { opacity: .55; cursor: wait; }
.secondary { background: transparent; color: #185e45; }
.amount { font-size: 3rem; font-weight: 750; letter-spacing: -.04em; margin: 16px 0; }
.amount small { font-size: 1rem; letter-spacing: 0; font-weight: 500; }
table { border-collapse: collapse; width: 100%; font-size: .9rem; }
td, th { padding: 12px 8px; border-bottom: 1px solid #e0e6dc; text-align: left; }
.number { text-align: right; font-variant-numeric: tabular-nums; }
summary { cursor: pointer; margin-bottom: 16px; }
pre, code, output { overflow-wrap: anywhere; white-space: pre-wrap; display: block; font-size: .82rem; }
#message:not(:empty) { background: #e7efdf; border-left: 3px solid #185e45; padding: 16px; }
[hidden] { display: none !important; }
@media (max-width: 680px) { .columns { grid-template-columns: 1fr; gap: 0; } header span { font-size: .75rem; } .card { padding: 20px; } }
