
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--surface-chrome);font-family:var(--font-ui);min-height:100vh;color:var(--ink);}
.page{display:grid;place-items:center;min-height:100vh;padding:44px var(--gap-block);}
.card{width:100%;max-width:430px;background:var(--color-white);border:1px solid var(--border);
  border-radius:4px;padding:38px 38px 32px;box-shadow:0 14px 40px rgba(var(--ink-rgb), 0.07);}
.card-heading{font-family:var(--font-heading);font-size:var(--type-display-l);letter-spacing:0.06em;color:var(--ink);line-height:1;margin-bottom:var(--gap-tight);}
.card-sub{font-family:var(--font-serif-display);font-style:italic;font-weight:var(--weight-regular);font-size:var(--type-prose);color:var(--muted);margin-bottom:var(--space-lg);}
.field{margin-bottom:var(--inset-panel);}
.field label{display:block;font-family:var(--font-mono);font-size:var(--type-badge);letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--gap-tight);}
.field-required::after{content:"*";color:currentColor;font-size:0.9em;vertical-align:super;} 
.field input[type=email],.field input[type=password],.field input[type=text]{width:100%;background:var(--color-white);border:1px solid var(--border);padding:var(--inset-box) 13px;font-size:var(--type-note);color:var(--ink);font-family:var(--font-mono);outline:none;transition:border-color 0.15s;}
.field input:focus{outline:2px solid var(--ink);outline-offset:-1px;border-color:var(--ink);}
.pwd-wrap{position:relative;display:block;}
.pwd-wrap input{padding-right:64px;}
.pwd-toggle{position:absolute;top:50%;right:1px;transform:translateY(-50%);height:calc(100% - 2px);
    border:0;background:transparent;padding:0 var(--inset-box);cursor:pointer;
    font-family:var(--font-mono);font-size:var(--type-badge);letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);}
.pwd-toggle:hover{color:var(--ink);}
.field .rule{font-size:var(--type-caption);color:var(--muted);margin:0 0 7px;line-height:1.45;}
.field:has(.field-error) input{border-color:var(--error-red);box-shadow:0 0 0 1px var(--error-red);}
.field-hint{font-family:"Abel",sans-serif;font-size:var(--type-caption);color:var(--muted);margin-top:var(--gap-tight);}
.optional{font-weight:var(--weight-regular);color:var(--muted);text-transform:none;letter-spacing:0;font-size:var(--type-micro);margin-left:var(--gap-tight);}
.row{display:grid;grid-template-columns:1fr 1fr;gap:13px;}
.consent-field{margin-bottom:13px;}
.consent{display:flex;align-items:flex-start;gap:var(--gap-row);font-family:"Abel",sans-serif;font-size:var(--type-note);color:var(--ink);line-height:1.45;cursor:pointer;text-transform:none;letter-spacing:0;}
.consent input{margin-top:var(--nudge);flex:0 0 auto;}
.consent a{color:var(--ink);text-decoration:underline;text-underline-offset:2px;}
.remember{display:flex;align-items:center;gap:9px;margin-bottom:var(--gap-block);}
.remember input{width:14px;height:14px;accent-color:var(--red);}
.remember span{font-family:var(--font-mono);font-size:var(--type-caption);color:var(--muted);}
.btn-submit{width:100%;background:var(--ink);color:var(--on-ink-warm);border:1px solid var(--ink);height:48px;font-family:var(--font-heading);font-size:var(--type-field);letter-spacing:0.1em;cursor:pointer;transition:opacity 0.15s;}
.btn-submit:hover{opacity:0.85;}
.forgot{display:block;text-align:center;margin-top:var(--inset-panel);font-size:var(--type-note);color:var(--muted);text-decoration:underline;text-underline-offset:3px;}
.forgot:hover{color:var(--ink);}
.sentbox{text-align:center;}
.sentbox .mark{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;margin:0 auto var(--inset-panel);
    background:rgba(var(--green-dark-rgb), 0.12);color:var(--green-dark);font-size:var(--type-display-s);line-height:1;}
.sentbox p{font-size:var(--type-label);color:var(--muted);line-height:1.6;margin:0 auto var(--inset-control);max-width:44ch;}
.sentbox .addr{color:var(--ink);text-decoration:underline;text-underline-offset:2px;}
.sentbox .sent-minor{margin-top:var(--inset-panel);}
.sentbox .card-heading{margin-bottom:var(--inset-box);}
.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--ink);text-decoration:underline;
    text-underline-offset:2px;cursor:pointer;}
.link-btn:hover{color:var(--red);}
.signup-link{margin-top:var(--space-lg);padding-top:var(--gap-block);border-top:1px solid var(--border);text-align:center;font-family:var(--font-ui);font-size:var(--type-note);color:var(--muted);}
.signup-link a{color:var(--ink);font-weight:var(--weight-medium);text-decoration:underline;text-underline-offset:3px;}
