:root { color-scheme: light; font-family: Arial, sans-serif; background: #f5f7f3; color: #17372e; }
* { box-sizing: border-box; }
body { margin: 0; line-height: 1.5; }
.stage-banner { background: #693b16; color: white; padding: .7rem 1rem; text-align: center; font-weight: 700; position: sticky; top: 0; z-index: 1; }
main { max-width: 720px; margin: 1rem auto 3rem; padding: 0 1rem; }
.card { background: white; border: 1px solid #d7e3da; border-radius: 16px; padding: clamp(1rem, 4vw, 2rem); box-shadow: 0 5px 24px #193d2912; }
h1 { font-size: clamp(1.5rem, 5vw, 2rem); margin: 0 0 .7rem; }
h2 { font-size: 1.15rem; }
p { margin: .5rem 0 1rem; }
.notice { background: #fff3d8; border-radius: 9px; padding: .8rem; }
label { display: block; margin: 1.2rem 0; font-weight: 700; }
textarea, input[type=text] { display: block; width: 100%; min-height: 48px; margin-top: .35rem; padding: .7rem; border: 2px solid #859e8b; border-radius: 9px; font: inherit; font-size: 16px; color: #17372e; background: white; }
textarea { min-height: 110px; resize: vertical; }
label.check { display: flex; align-items: flex-start; gap: .7rem; font-weight: 400; }
input[type=checkbox] { width: 24px; height: 24px; flex: none; }
button { min-height: 48px; min-width: 44px; padding: .7rem 1.2rem; border: 0; border-radius: 9px; background: #234c42; color: white; font: inherit; font-size: 1rem; font-weight: 700; cursor: pointer; }
button:disabled { opacity: .6; cursor: progress; }
:focus-visible { outline: 3px solid #ab5b0c; outline-offset: 3px; }
.error { color: #9b1c1c; font-weight: 700; min-height: 1.5em; }
