:root { color-scheme:light; --background:#fafaf7; --ink:#26342d; --muted:#5d675f; --line:#d7dcd5; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; background:var(--background); color:var(--ink); font-family:Arial,Helvetica,sans-serif; font-size:15px; line-height:1.55; -webkit-font-smoothing:antialiased; }
button,input,textarea { font:inherit; }
button { cursor:pointer; }
a { color:inherit; text-underline-offset:3px; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid #619576; outline-offset:3px; }
.site-header,main,.site-footer { width:min(540px,calc(100% - 40px)); margin-inline:auto; }
.site-header { display:flex; align-items:center; justify-content:space-between; padding:27px 0 22px; border-bottom:1px solid var(--line); }
.wordmark { font-size:25px; letter-spacing:-1px; font-weight:700; text-decoration:none; }
main { padding:35px 0 28px; min-height:560px; }
h1 { font-size:24px; font-weight:600; line-height:1.3; letter-spacing:-.5px; margin:0 0 12px; }
h2 { font-size:21px; font-weight:600; margin:0; line-height:1.35; }
main>p { color:var(--muted); margin:0 0 28px; font-size:14px; }
.field { margin-bottom:21px; }
.field-heading { display:flex; align-items:baseline; justify-content:space-between; gap:5px 12px; flex-wrap:wrap; margin-bottom:7px; }
.field-heading label,.field-heading .small-link { margin:0; }
.location-mode { border:0; padding:0; margin-inline:0; }
.location-mode legend { font-size:14px; font-weight:600; margin-bottom:7px; padding:0; }
.mode-options { display:inline-flex; padding:3px; border:1px solid #bfc7bd; border-radius:3px; gap:3px; }
.mode-options input { position:absolute; opacity:0; width:1px; height:1px; padding:0; border:0; }
.mode-options label { margin:0; padding:8px 16px; border-radius:2px; font-weight:400; cursor:pointer; }
.mode-options input:checked+label { background:var(--ink); color:#fff; }
.mode-options input:focus-visible+label { outline:3px solid #619576; outline-offset:3px; }
.mode-options input:disabled+label { opacity:.65; cursor:wait; }
label { display:block; font-size:14px; font-weight:600; margin-bottom:7px; }
input,textarea { display:block; width:100%; border:1px solid #bfc7bd; border-radius:3px; background:#fff; padding:10px 11px; color:var(--ink); line-height:1.5; }
textarea { resize:vertical; min-height:100px; }
input::placeholder,textarea::placeholder { color:#747d74; opacity:1; }
input:read-only { background:#f0f1eb; color:var(--muted); }
.hint { font-size:12px; color:var(--muted); margin:6px 0 0; }
.primary-button { background:var(--ink); color:#fff; border:1px solid var(--ink); border-radius:3px; padding:10px 18px; font-weight:500; min-height:44px; }
.primary-button:hover { background:#3d5144; }
.text-button,.small-link { border:0; background:transparent; padding:0; color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.text-button { font-size:14px; }
.small-link { font-size:12px; margin-top:7px; }
button:disabled { cursor:wait; opacity:.65; }
#form-footnote { margin-top:12px; }
.delete-link { color:#8a3022; margin-top:22px; }
.form-message { padding:10px 12px; border:1px solid #dbb8ab; background:#fff0e9; color:#802e19; border-radius:3px; margin:12px 0; font-size:13px; overflow-wrap:anywhere; }
.form-message.success { background:#eef4ed; border-color:#c4d3c2; color:var(--ink); }
#success-panel p { color:var(--muted); overflow-wrap:anywhere; }
.local-preview { padding:10px; border:1px dashed var(--line); font-size:12px; }
.site-footer { padding:19px 0 30px; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:15px; flex-wrap:wrap; color:var(--muted); font-size:12px; }
dialog { width:min(430px,calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow-y:auto; padding:25px; border:1px solid var(--line); border-radius:4px; background:var(--background); color:var(--ink); }
dialog::backdrop { background:#18261b66; }
.dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; }
.close-button { border:0; padding:0 4px; background:transparent; color:var(--muted); font-size:25px; }
dialog>p { color:var(--muted); font-size:14px; margin:17px 0 21px; }
dialog .primary-button { margin-top:20px; }
.dialog-actions { display:flex; gap:20px; align-items:center; margin-top:20px; }
.dialog-actions .primary-button { margin-top:0; }
.details-group { border:0; padding:0; margin:0; min-width:0; }
.details-group legend { font-size:15px; font-weight:600; padding:0; margin-bottom:12px; }
.details-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; }
.details-row input { min-width:0; }
#demographics-dialog textarea { min-height:70px; }
#demographics-dialog .field { margin-bottom:16px; }
.single-page h2 { margin:26px 0 9px; font-size:18px; }
.single-page p,.single-page li { font-size:14px; color:var(--muted); }
.single-page .primary-button { margin:17px 0; }
@media (max-width:540px) { main { padding-top:27px; min-height:0; } h1 { font-size:23px; } .site-footer { margin-top:12px; } }
