:root { --bg:#FAF8F4; --text:#1E1B2E; --navy:#1E1B3A; --gold:#D9B26A; }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin:0; background:var(--bg); color:var(--text); font-family:"Nunito Sans",system-ui,sans-serif; font-size:18px; line-height:1.5; min-height:100vh; display:flex; flex-direction:column; }
main { flex:1; width:100%; max-width:560px; margin:0 auto; padding:40px 20px 24px; }
h1,h2 { font-family:Marcellus,Georgia,serif; color:var(--navy); font-weight:400; line-height:1.2; }
h1 { font-size:2rem; margin:0 0 12px; border-bottom:3px solid var(--gold); padding-bottom:12px; }
h2 { font-size:1.4rem; }
.lead { margin:16px 0 28px; }
label { display:block; font-weight:700; margin-bottom:6px; }
input[type=password], input[type=text] { width:100%; min-height:52px; padding:10px 14px; font:inherit; color:var(--text); background:#fff; border:2px solid var(--navy); border-radius:8px; }
label.show { font-weight:400; margin:10px 0 18px; display:flex; align-items:center; gap:10px; min-height:44px; }
label.show input { width:24px; height:24px; accent-color:var(--navy); }
#turnstile { min-height:70px; margin-bottom:18px; }
button, .btn { display:block; width:100%; min-height:56px; padding:14px 18px; font:inherit; font-weight:700; text-align:center; text-decoration:none; color:var(--bg); background:var(--navy); border:2px solid var(--navy); border-radius:8px; cursor:pointer; }
button:disabled { opacity:.6; cursor:wait; }
.btn:hover, button:hover:not(:disabled) { background:#2d2957; }
:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
#error { color:#8a1c1c; background:#fbeaea; border-left:4px solid #8a1c1c; padding:10px 14px; margin:16px 0 0; border-radius:4px; }
.file { margin-bottom:28px; }
.file p { margin:10px 0 0; }
footer { text-align:center; font-size:.9rem; padding:20px; color:#5b5870; }
