:root { --green:#005d2f; --green-dark:#003d20; --green-soft:#e8f0eb; --ink:#1c1c1c; --muted:#5b625e; --line:#d8dfda; --danger:#9b1c1c; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:#f5f7f5; font-family:"Gill Sans","Gill Sans MT",Calibri,sans-serif; font-size:18px; line-height:1.45; }
.shell { width:min(860px,calc(100% - 32px)); margin-inline:auto; }
.site-header { background:var(--green); color:#fff; padding:16px 0; box-shadow:0 2px 8px #0002; }
.brand { display:flex; align-items:center; gap:12px; font-weight:700; font-size:22px; }
.brand-mark { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:#fff; color:var(--green); font-size:24px; }
main { padding-block:42px 64px; min-height:calc(100vh - 150px); }
.panel { background:#fff; border:1px solid var(--line); border-radius:14px; padding:clamp(22px,5vw,42px); box-shadow:0 8px 30px #1232; }
.auth-panel { max-width:560px; margin-inline:auto; }
.eyebrow { margin:0 0 6px; color:var(--green); font-size:14px; font-weight:700; letter-spacing:.12em; }
h1,h2 { line-height:1.15; margin:.15em 0 .55em; }
h1 { font-size:clamp(34px,7vw,50px); }
h2 { font-size:30px; }
.intro { color:var(--muted); margin-bottom:28px; }
label { display:block; font-weight:700; margin:18px 0 7px; }
input { width:100%; min-height:52px; padding:11px 13px; border:2px solid #89948d; border-radius:7px; background:#fff; color:var(--ink); font:inherit; }
input:focus { outline:3px solid #8cc9aa; border-color:var(--green); }
button { min-height:50px; border-radius:7px; padding:10px 18px; font:700 17px/1.2 inherit; cursor:pointer; }
button:disabled { cursor:not-allowed; opacity:.65; }
.primary { width:100%; margin-top:20px; border:2px solid var(--green); color:#fff; background:var(--green); }
.primary:hover { background:var(--green-dark); }
.secondary { width:100%; margin-top:12px; border:2px solid var(--green); color:var(--green); background:#fff; }
.secondary small { display:block; font-weight:400; }
.text-button { width:100%; margin-top:8px; border:0; color:var(--green); background:transparent; }
.divider { display:flex; align-items:center; gap:14px; margin:26px 0 12px; color:var(--muted); }
.divider::before,.divider::after { content:""; height:1px; background:var(--line); flex:1; }
.message { min-height:1.5em; margin:15px 0 0; color:var(--green-dark); }
.message.error { color:var(--danger); }
.hidden { display:none !important; }
.account-heading { display:flex; justify-content:space-between; align-items:start; gap:20px; }
.compact { width:auto; margin-top:0; white-space:nowrap; }
.details-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:28px 0; }
.detail { background:#fff; border:1px solid var(--line); border-radius:9px; padding:15px 17px; }
.detail dt { color:var(--muted); font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.detail dd { margin:4px 0 0; overflow-wrap:anywhere; }
.full { margin-block:12px 30px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; }
.form-grid .wide { grid-column:1/-1; }
footer { padding:24px 0; color:#fff; background:var(--green-dark); font-size:15px; }
@media (max-width:640px) { body{font-size:17px}.details-grid,.form-grid{grid-template-columns:1fr}.account-heading{align-items:stretch;flex-direction:column}.compact{width:100%}main{padding-top:24px}.shell{width:min(100% - 22px,860px)} }
