@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@500;600;700&family=Caveat:wght@700&display=swap');
:root { --forest:#14271b; --forest-2:#2d4d34; --gold:#e7b653; --gold-light:#f7dda0; --paper:#fff8e8; --ink:#293226; --muted:#746b5a; --berry:#a8425a; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; font-family:'Quicksand',system-ui,sans-serif; color:var(--ink); background:radial-gradient(circle at 15% 15%,rgba(231,182,83,.18),transparent 26%),radial-gradient(circle at 85% 85%,rgba(111,147,102,.25),transparent 30%),var(--forest); }
.auth-shell { width:min(470px,calc(100% - 32px)); margin:0 auto; padding:35px 0 50px; }
.register-shell { width:min(820px,calc(100% - 32px)); }
.auth-brand { display:block; text-align:center; font-family:'Caveat',cursive; font-weight:700; font-size:29px; color:var(--gold-light); text-decoration:none; margin-bottom:24px; }
.auth-card { background:var(--paper); border:2px solid var(--gold); border-radius:24px; padding:32px; box-shadow:0 20px 60px rgba(0,0,0,.32); }
.card-icon { text-align:center; font-size:38px; }.eyebrow { color:#8b6b27; text-align:center; text-transform:uppercase; letter-spacing:.13em; font-size:11px; font-weight:700; margin:7px 0; }
h1 { font-family:'Caveat',cursive; color:var(--forest-2); font-size:40px; text-align:center; line-height:1.05; margin:0 0 26px; }.intro { color:var(--muted); text-align:center; margin:-12px auto 26px; max-width:600px; line-height:1.55; }
label,legend { display:block; font-weight:700; font-size:14px; margin:16px 0 7px; }
input,select,button { font:inherit; }
input[type="text"],input[type="password"],select { width:100%; border:1px solid #cfc2a8; border-radius:12px; background:#fff; padding:12px 14px; outline:none; color:var(--ink); }
input:focus,select:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(231,182,83,.2); }
.secret-row { display:flex; gap:8px; }.secret-row input { flex:1; }.show-secret { width:48px; border:0; border-radius:12px; cursor:pointer; background:#e9dec9; }
.submit-button { width:100%; border:0; border-radius:24px; padding:13px 20px; margin-top:12px; background:var(--gold); color:#29311f; font-weight:700; cursor:pointer; }.submit-button:disabled{opacity:.55;cursor:wait}
.auth-status { min-height:22px; margin-top:14px; font-size:13px; font-weight:700; text-align:center; }.auth-status.error { color:var(--berry); }.auth-status.success { color:#39713f; }
.switch-auth { text-align:center; color:var(--muted); font-size:13px; margin:22px 0 0; }.switch-auth a { color:#365e3b; font-weight:700; }.privacy-note { text-align:center; color:rgba(255,255,255,.65); font-size:12px; line-height:1.5; }
.form-grid { display:grid; grid-template-columns:2fr 1fr; gap:18px; }.form-grid + .form-grid { grid-template-columns:1fr 1fr; }
.field-hint { color:var(--muted); font-size:11.5px; margin:6px 0 0; }
fieldset { border:0; padding:0; margin:22px 0; }.avatar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:8px; }.avatar-grid label { margin:0; }.avatar-grid input { position:absolute; opacity:0; }.avatar-grid span { display:flex; flex-direction:column; align-items:center; gap:3px; padding:10px 4px; font-size:27px; border:2px solid transparent; background:#fff; border-radius:14px; cursor:pointer; }.avatar-grid small { font-size:10px; color:var(--muted); }.avatar-grid input:checked + span { border-color:var(--gold); background:#fff3d4; }
.consent-row { display:flex; gap:10px; align-items:flex-start; font-weight:500; line-height:1.5; padding:14px; border-radius:13px; background:#eef2e9; }.consent-row input { margin-top:4px; flex:0 0 auto; }
@media(max-width:650px){.auth-card{padding:22px}.form-grid,.form-grid + .form-grid{grid-template-columns:1fr;gap:0}.avatar-grid{grid-template-columns:repeat(4,1fr)}h1{font-size:34px}}
