:root { color-scheme: light; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #203d46; background: #f3f7f6; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; }
a { color: #086458; text-underline-offset: .25em; }
a:focus-visible { outline: 3px solid #0a7668; outline-offset: 5px; }
.header, .main, .footer { width: min(100% - 2rem, 68rem); margin-inline: auto; }
.header { padding-block: 1.75rem; }
.brand { font-size: 1.5rem; font-weight: 800; letter-spacing: -.06em; text-decoration: none; color: #203d46; }
.brand span { color: #086458; }
.main { flex: 1; display: grid; align-items: center; padding-block: 2rem 4rem; }
.card { max-width: 48rem; padding: clamp(1.25rem, 5vw, 3.5rem); border: 1px solid #dbe6e2; border-radius: 1.5rem; background: white; }
.eyebrow { color: #086458; font-weight: 700; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; }
h1 { font-size: clamp(1.9rem, 5vw, 3.2rem); line-height: 1.15; letter-spacing: -.035em; margin-block: 1rem 1.5rem; overflow-wrap: break-word; }
p { font-size: 1.05rem; line-height: 1.7; max-width: 38rem; }
.notice { display: inline-block; margin-top: 1rem; padding: .45rem .9rem; border-radius: 2rem; color: #086458; background: #eaf5ef; font-weight: 600; }
.link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 1rem; }
.footer { color: #52686e; font-size: .8rem; line-height: 1.6; padding-block: 1.5rem; }
.skip-link { position: absolute; top: -6rem; left: 1rem; padding: .75rem; background: white; z-index: 1; }
.skip-link:focus { top: .5rem; }
@media (max-width: 380px) { .header, .main, .footer { width: calc(100% - 1.5rem); } .main { padding-top: 1rem; } }
.admin-card { width: 100%; max-width: 42rem; }
form { display: grid; gap: .65rem; }
label { font-weight: 600; margin-top: .5rem; }
input, button { font: inherit; min-width: 0; min-height: 46px; border-radius: .5rem; padding: .7rem .85rem; }
input { width: 100%; border: 1px solid #718c88; background: #fff; color: #203d46; }
button { cursor: pointer; border: 0; background: #086458; color: #fff; font-weight: 700; margin-top: .7rem; }
input:focus-visible, button:focus-visible { outline: 3px solid #0a7668; outline-offset: 3px; }
.form-error { border-left: 4px solid #a52929; padding: .7rem 1rem; background: #fff0ef; color: #802020; }
