:root{--auth-ink:#142f2b;--auth-muted:#506661;--auth-green:#0f766e;--auth-deep:#073d35;--auth-mint:#e5f2ec;--auth-lime:#d1f779;--auth-cream:#faf9f5;--auth-line:#dce5df;--auth-danger:#b42318;--auth-heading:Fraunces,serif;--auth-body:"DM Sans",sans-serif}
*{box-sizing:border-box}
body{margin:0;color:var(--auth-ink);font-family:var(--auth-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
.auth-page{min-height:100svh;background:var(--auth-cream)}
.auth-page [hidden]{display:none!important}
.auth-page a{color:inherit;text-underline-offset:4px}
.auth-page :is(a,button,summary,input,select):focus-visible{outline:3px solid var(--auth-green);outline-offset:3px}
.auth-page :is(main,fieldset):focus{outline:none}
.auth-icon{flex-shrink:0;vertical-align:middle}
.auth-skip{position:fixed;top:-100px;left:16px;z-index:10;padding:10px 18px;border-radius:8px;background:#fff}
.auth-skip:focus{top:12px}
.auth-shell{min-height:100svh;display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr)}
.auth-visual{position:sticky;top:0;align-self:start;overflow:hidden;height:100svh;background:var(--auth-deep);color:#fff}
.auth-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#032320f2,#03232019 75%)}
.auth-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.auth-brand{position:absolute;z-index:3;top:32px;left:clamp(24px,4vw,64px);display:flex;align-items:center;gap:10px;color:#fff!important;text-decoration:none;font:800 1.1rem var(--auth-heading)}
.auth-brand:focus-visible{outline-color:var(--auth-lime)}
.auth-brand-mark{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:12px;background:var(--auth-lime);color:var(--auth-deep);font:800 13px var(--auth-body)}
.auth-brand-mark img{width:36px;height:36px;object-fit:contain}
.auth-visual-content{position:absolute;z-index:2;inset:auto clamp(24px,4vw,64px) clamp(32px,6vh,64px)}
.auth-visual-kicker{display:block;margin-bottom:16px;color:var(--auth-lime);font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.auth-visual h2{margin:0;font:700 clamp(2rem,3.2vw,3.7rem)/1.12 var(--auth-heading);letter-spacing:-.04em}
.auth-visual p{margin:20px 0 0;color:#d0e1d9}
.auth-proof{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:24px;color:#d0e1d9;font-size:13px;font-weight:700}
.auth-main{display:flex;align-items:center;justify-content:center;min-width:0;min-height:100svh;padding:40px clamp(24px,5vw,80px);background:var(--auth-cream)}
.auth-main.wide{align-items:flex-start}
.auth-content{width:100%;max-width:480px}
.auth-content.wide{max-width:620px}
.auth-mobile-brand{display:none;align-items:center;gap:10px;margin-bottom:24px;text-decoration:none;font:700 1.1rem var(--auth-heading)}
.auth-back{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-bottom:18px;color:var(--auth-muted)!important;text-decoration:none;font-size:14px;font-weight:700}
.auth-back:hover{color:var(--auth-green)!important}
.auth-heading{margin-bottom:24px}
.auth-label{color:var(--auth-green);font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.auth-heading h1,.auth-heading h2{margin:8px 0 12px;font:700 clamp(1.85rem,2.8vw,2.5rem)/1.15 var(--auth-heading);letter-spacing:-.04em}
.auth-heading p{margin:0;color:var(--auth-muted);font-size:15px}
.auth-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px;margin-top:28px;font-size:13px;font-weight:700}
.auth-footer a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:var(--auth-green)}
.auth-footer a:hover{text-decoration:underline}
.auth-alert{margin-bottom:20px;padding:16px;border:1px solid #bbd4e2;border-radius:14px;background:#eff6fb;color:#234f67;font-size:14px;overflow-wrap:anywhere}
.auth-alert.error{border-color:#efc0bb;background:#fff3f2;color:var(--auth-danger)}
.auth-alert.warning{border-color:#e8cb97;background:#fff8e8;color:#80530a}
.auth-alert.success{border-color:#b6d9c9;background:var(--auth-mint);color:var(--auth-deep)}
.auth-error-summary:focus,#auth-messages:focus{outline:3px solid var(--auth-danger);outline-offset:4px}
.auth-error-summary ul{margin:10px 0 0;padding-left:20px}
.auth-error-summary li+li{margin-top:6px}
.auth-error-summary a{font-weight:600}
.field{min-width:0;margin-bottom:16px}
.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.field label{display:block;margin-bottom:6px;font-size:14px;font-weight:700}
.field-optional{margin-left:4px;color:var(--auth-muted);font-size:13px;font-weight:400}
.control,.field input,.field select{width:100%;min-width:0;height:48px;padding:0 12px;border:1px solid #afc1b8;border-radius:12px;background:#fff;color:var(--auth-ink);font:400 16px var(--auth-body);transition:border-color .18s,box-shadow .18s}
.field input:focus,.field select:focus{border-color:var(--auth-green);box-shadow:0 0 0 3px #0f766e15}
.field input[aria-invalid],.field select[aria-invalid]{border-color:var(--auth-danger);background:#fffaf9}
.field input::placeholder{color:var(--auth-muted)}
.field-hint{margin:6px 0 0;color:var(--auth-muted);font-size:13px;line-height:1.5}
.field-error{margin:7px 0 0;color:var(--auth-danger);font-size:14px;line-height:1.5}
.field-error p{margin:0}
.field-error p+p{margin-top:4px}
.password-wrap{position:relative}
.password-wrap input{padding-right:54px}
.password-toggle{position:absolute;right:2px;top:2px;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:10px;background:transparent;color:var(--auth-muted);cursor:pointer}
.password-toggle:hover{background:var(--auth-mint);color:var(--auth-green)}
.password-eye-line{display:none;position:absolute;width:23px;height:2px;border-radius:2px;background:currentColor;transform:rotate(45deg);box-shadow:0 0 0 1px #fff}
.password-toggle[aria-pressed="true"] .password-eye-line{display:block}
.password-help{margin-top:6px;color:var(--auth-muted);font-size:13px}
.password-help summary{min-height:32px;cursor:pointer}
.password-help ul{margin:6px 0 0;padding-left:18px}
.password-status{margin:0 0 16px;color:var(--auth-deep);font-size:14px}
.password-status.is-error{color:var(--auth-danger)}
.form-options{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin:0 0 20px;font-size:14px}
.form-options>.auth-link{display:inline-flex;align-items:center;min-height:44px}
.checkbox{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--auth-muted);cursor:pointer}
.checkbox input{width:18px;height:18px;accent-color:var(--auth-green)}
.auth-link{color:var(--auth-green)!important;font-weight:700;text-decoration:none}
.auth-link:hover{text-decoration:underline}
.auth-submit{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:50px;padding:12px 20px;border:1px solid transparent;border-radius:100px;background:var(--auth-deep);color:#fff!important;font:700 15px var(--auth-body);text-decoration:none;cursor:pointer;transition:background-color .18s}
.auth-submit:hover{background:#125c4e}
.auth-submit:disabled{opacity:.6;cursor:default}
.auth-switch{margin:20px 0 0;color:var(--auth-muted);text-align:center;font-size:14px}
.auth-switch+.auth-switch{margin-top:8px}
.form-section{min-width:0;margin:0 0 20px;padding:0;border:0}
.form-section legend{width:100%;margin-bottom:14px;padding:0 0 10px;border-bottom:1px solid var(--auth-line);font-size:15px;font-weight:700}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}
.choice-card{position:relative;display:block;min-width:0;cursor:pointer}
.choice-card input{position:absolute;width:1px;height:1px;margin:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}
.choice-inner{position:relative;display:block;height:100%;min-height:78px;padding:14px 36px 14px 14px;border:1px solid #afc1b8;border-radius:14px;background:#fff;transition:border-color .18s,background-color .18s}
.choice-inner strong{display:block;font-size:15px}
.choice-inner small{display:block;margin-top:4px;color:var(--auth-muted);font-size:13px;line-height:1.4}
.choice-inner:before{content:"";position:absolute;right:12px;top:14px;width:18px;height:18px;border:2px solid #819f92;border-radius:50%;background:#fff}
.choice-card input[type="checkbox"]+.choice-inner:before{border-radius:5px}
.choice-card input:checked+.choice-inner{border-color:var(--auth-green);background:var(--auth-mint)}
.choice-card input:checked+.choice-inner:before{background:var(--auth-green);border-color:var(--auth-green)}
.choice-card input:checked+.choice-inner:after{content:"";position:absolute;right:18px;top:18px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.choice-card input:focus-visible+.choice-inner{outline:3px solid var(--auth-green);outline-offset:3px}
.choice-card input[aria-invalid]+.choice-inner{border-color:var(--auth-danger)}
.auth-optional{margin-bottom:20px;border:1px solid var(--auth-line);border-radius:14px;background:#fff}
.auth-optional>summary{padding:12px 14px;cursor:pointer;font-size:14px;font-weight:700}
.auth-optional>summary span{display:block;margin-left:18px;color:var(--auth-muted);font-size:13px;font-weight:400}
.auth-optional-fields{padding:4px 14px 0}
.auth-note{margin:20px 0;padding:16px;border:1px solid var(--auth-line);border-radius:14px;background:#fff;color:var(--auth-muted);font-size:14px}
.auth-note p{margin:6px 0 0}
.auth-note ul{margin:8px 0 0;padding-left:20px}
.auth-note li+li{margin-top:6px}
.success-state{text-align:center;margin-bottom:24px}
.state-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 20px;border-radius:20px;background:var(--auth-mint);color:var(--auth-deep)}
.state-icon .auth-icon{width:30px;height:30px}
.state-icon.warning{background:#fff3da;color:#80530a}
.success-state h1,.success-state h2{margin:0;font:700 2rem/1.15 var(--auth-heading);letter-spacing:-.04em}
.success-state p{margin:14px 0 0;color:var(--auth-muted);font-size:15px}
@media(max-width:980px){.auth-shell{display:block}.auth-visual{display:none}.auth-mobile-brand{display:flex}.auth-main,.auth-main.wide{align-items:flex-start;padding:24px;min-height:100svh}.auth-content,.auth-content.wide{max-width:620px}}
@media(max-width:520px){.auth-main,.auth-main.wide{padding:20px}.password-row{grid-template-columns:1fr;gap:0}.auth-heading{margin-bottom:20px}.form-section{margin-bottom:16px}.choice-inner{padding-left:12px}.choice-inner small{font-size:13px}.form-options{font-size:13px}}
@media(max-width:360px){.auth-main,.auth-main.wide{padding-inline:16px}.field-row{grid-template-columns:1fr;gap:0}.auth-brand-mark{width:36px;height:36px}.choice-grid{gap:8px}.choice-inner{padding-right:30px}}
@media(prefers-reduced-motion:reduce){.auth-page *{scroll-behavior:auto!important;transition:none!important}}

/* Colour symbol remains legible on the photo and on the mobile canvas. */
.auth-brand-mark{background:#fff}
.auth-brand-mark .brand-symbol{display:block;width:36px;height:36px}
