:root { --fg: #1a1a1a; --bg: #ffffff; --muted: #555; --accent: #0b4f9c; --rule: #d0d4da; --err-bg: #fde2e2; --err-fg: #7a0a0a; } @media (prefers-color-scheme: dark) { :root { --fg: #f1f1f1; --bg: #121417; --muted: #b0b6bd; --accent: #7eb6ff; --rule: #2a2f36; --err-bg: #4a1313; --err-fg: #ffd6d6; } } * { box-sizing: border-box; } html { font-size: 18px; } body { margin: 0; color: var(--fg); background: var(--bg); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; line-height: 1.6; } a.skip-link { position: absolute; left: -9999px; top: 0; background: var(--accent); color: #fff; padding: 0.5rem 1rem; z-index: 100; } a.skip-link:focus { left: 1rem; top: 1rem; } :focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; } header[role="banner"], main { max-width: 44rem; margin: 0 auto; padding: 1.5rem 1.25rem; } header[role="banner"] { border-bottom: 1px solid var(--rule); } h1 { font-size: 1.875rem; margin: 0 0 0.25rem; } h2 { font-size: 1.375rem; margin: 1.5rem 0 0.5rem; } form { margin-top: 1rem; } .field, fieldset { margin-bottom: 1.25rem; } fieldset { border: 1px solid var(--rule); padding: 0.75rem 1rem; border-radius: 6px; } legend { font-weight: 600; padding: 0 0.4rem; } label { display: block; margin: 0.5rem 0 0.25rem; font-weight: 500; } input[type="text"], input[type="number"], input[type="file"] { width: 100%; padding: 0.5rem 0.6rem; font-size: 1rem; border: 1px solid var(--rule); border-radius: 4px; background: var(--bg); color: var(--fg); } input[type="radio"] { margin-right: 0.4rem; } button { background: var(--accent); color: #fff; border: 0; padding: 0.7rem 1.25rem; font-size: 1rem; border-radius: 4px; cursor: pointer; } button:hover { filter: brightness(1.08); } .error { background: var(--err-bg); color: var(--err-fg); padding: 0.75rem 1rem; border-radius: 4px; margin-bottom: 1rem; }