.auth-wrap{--auth-green:#1e6b3c;--auth-green-mid:#2d8653;--auth-navy:#111827;--auth-navy-hover:#1f2937;--auth-border:#d4e2d8;--auth-muted:#5a6b5e;--auth-text:#111a13;--auth-field-bg:#f6faf7;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 16px;background:radial-gradient(1000px 520px at 50% -10%,#e8f3ed 0,rgba(232,243,237,0) 62%),#eef3ee;font-family:Plus Jakarta Sans,sans-serif;color:var(--auth-text)}.auth-card{width:100%;max-width:430px;background:#fff;border:1px solid var(--auth-border);border-radius:22px;padding:36px 32px 30px;box-shadow:0 18px 50px rgba(17,26,19,.1)}.auth-brand{flex-direction:column;gap:14px;margin-bottom:22px}.auth-brand,.auth-logo{display:flex;align-items:center}.auth-logo{gap:10px}.auth-logo-mark{width:40px;height:40px;border-radius:12px;background:var(--auth-green);display:flex;align-items:center;justify-content:center;color:#fff}.auth-logo-mark,.auth-logo-text{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:22px}.auth-logo-text{letter-spacing:2px;color:var(--auth-text)}.auth-heading{text-align:center}.auth-title{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:23px;color:var(--auth-text)}.auth-sub{font-size:13.5px;color:var(--auth-muted);margin-top:5px;line-height:1.5}.btn-google{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px;border:1.5px solid var(--auth-border);border-radius:12px;background:#fff;color:var(--auth-text);font-family:Plus Jakarta Sans,sans-serif;font-size:14.5px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.btn-google:hover:not(:disabled){background:var(--auth-field-bg);border-color:#bcd3c4}.btn-google:active:not(:disabled){transform:translateY(1px)}.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--auth-muted);font-size:12px;font-weight:500}.auth-divider:after,.auth-divider:before{content:"";flex:1;height:1px;background:var(--auth-border)}.auth-form{gap:15px}.auth-form,.field{display:flex;flex-direction:column}.field{gap:6px}.field label{font-size:12.5px;font-weight:600;color:var(--auth-text)}.field .hint{font-weight:400;color:var(--auth-muted)}.auth-input,.auth-select,.auth-textarea{width:100%;padding:12px 14px;border:1.5px solid var(--auth-border);border-radius:12px;background:var(--auth-field-bg);font-family:Plus Jakarta Sans,sans-serif;font-size:14.5px;color:var(--auth-text);outline:none;transition:border-color .15s,background .15s}.auth-textarea{resize:vertical;min-height:84px}.auth-input:focus,.auth-select:focus,.auth-textarea:focus{border-color:var(--auth-green);background:#fff}.auth-input::placeholder,.auth-textarea::placeholder{color:#9fb2a5}.field-row{display:flex;align-items:center;justify-content:space-between}.btn-auth{width:100%;padding:13px 16px;border:none;border-radius:12px;background:var(--auth-navy);color:#fff;font-family:Plus Jakarta Sans,sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s,transform .1s;margin-top:4px}.btn-auth:hover:not(:disabled){background:var(--auth-navy-hover)}.btn-auth:active:not(:disabled){transform:translateY(1px)}.btn-auth:disabled,.btn-google:disabled{opacity:.6;cursor:not-allowed}.auth-link{color:var(--auth-green);font-weight:600;font-size:13px;text-decoration:none;cursor:pointer;background:none;border:none;padding:0;font-family:inherit}.auth-link:hover{text-decoration:underline}.auth-alt{text-align:center;margin-top:20px;font-size:13.5px;color:var(--auth-muted)}.auth-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:12px}.auth-error,.auth-note{padding:10px 14px;font-size:13px;font-weight:500;margin-bottom:4px}.auth-note{background:#eaf5ee;border:1px solid #d8e4dc;color:#1c6b3c;border-radius:12px}.otp-input{text-align:center;font-size:24px;font-weight:700;letter-spacing:10px;padding-left:24px}.otp-input::placeholder{letter-spacing:10px}.role-toggle{display:grid;grid-template-columns:1fr 1fr;gap:10px}.role-option{display:flex;align-items:center;gap:11px;border:1.5px solid var(--auth-border);background:var(--auth-field-bg);border-radius:14px;padding:13px 12px;cursor:pointer;text-align:left;font-family:inherit;color:var(--auth-text);transition:border-color .15s,background .15s,box-shadow .15s,color .15s}.role-option.active,.role-option:hover{border-color:var(--auth-green)}.role-option.active{background:var(--auth-green);color:#fff;box-shadow:0 8px 18px rgba(30,107,60,.25)}.role-emoji{font-size:22px;line-height:1}.role-text{display:flex;flex-direction:column;gap:2px}.role-name{font-weight:700;font-size:14px}.role-desc{font-size:11px;opacity:.8;line-height:1.3}.auth-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;font-family:Plus Jakarta Sans,sans-serif;color:#5a6b5e;background:#eef3ee}@media (max-width:480px){.auth-card{padding:28px 20px 24px;border-radius:18px}.role-toggle{grid-template-columns:1fr}}.signup-wrap{min-height:100dvh;padding:40px 24px;background:radial-gradient(ellipse at 8% 0,rgba(45,134,83,.14),transparent 50%),radial-gradient(ellipse at 100% 100%,rgba(230,168,23,.09),transparent 45%),#eef3ee}.signup-card{max-width:1060px;padding:30px 40px 38px;border-radius:28px;box-shadow:0 20px 70px rgba(17,26,19,.08)}.signup-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.signup-header p{margin:0;font-size:12px;color:var(--auth-muted)}.signup-header .auth-link{margin-left:6px}.signup-progress{overflow:hidden;border:1px solid var(--auth-border);border-radius:18px;background:#fff;box-shadow:0 5px 16px rgba(17,26,19,.035)}.signup-progress-track{height:4px;background:#edf2ee}.signup-progress-fill{height:100%;border-radius:0 3px 3px 0;background:var(--auth-green);transition:width .24s ease}.signup-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;padding:12px 22px;margin:0;gap:16px}.signup-steps button{display:flex;align-items:center;gap:10px;padding:6px;min-height:44px;background:transparent;border:none;border-radius:8px;color:var(--auth-muted);font:inherit;font-size:12px;font-weight:600;text-align:left}.signup-steps button:not(:disabled){cursor:pointer}.signup-steps button:not(:disabled):hover{background:var(--auth-field-bg)}.signup-step-number{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border:1px solid var(--auth-border);border-radius:50%;font-size:12px}.signup-steps .is-current button{color:var(--auth-green)}.signup-steps .is-current .signup-step-number{background:var(--auth-green);border-color:var(--auth-green);color:#fff}.signup-steps .is-complete .signup-step-number{background:#e8f3ed;border-color:#e8f3ed;color:var(--auth-green)}.signup-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.94fr);align-items:start;gap:60px;padding-top:36px}.signup-content{min-width:0;padding:6px 0 0}.signup-heading{margin-bottom:24px}.signup-eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 16px;color:var(--auth-green);font-size:10px;font-weight:800;letter-spacing:1.3px}.signup-eyebrow span{color:var(--auth-muted);font-size:11px;font-weight:400;letter-spacing:0}.signup-heading h1{margin:0 0 10px;font-family:Space Grotesk,sans-serif;font-size:clamp(25px,2.5vw,30px);font-weight:700;line-height:1.18;letter-spacing:-.8px}.signup-heading h1:focus{outline:none}.signup-description{margin:0;color:var(--auth-muted);font-size:13px;line-height:1.65}.signup-fields,.signup-roles{min-width:0;padding:0;margin:0;border:none}.signup-fields{display:flex;flex-direction:column;gap:18px}.signup-roles legend{padding:0;margin-bottom:10px;font-size:12px;font-weight:600}.signup-role{display:block;position:relative;cursor:pointer}.signup-role+.signup-role{margin-top:10px}.signup-role input{position:absolute;opacity:0;width:1px;height:1px}.signup-role-surface{display:flex;align-items:center;gap:14px;border:1.5px solid var(--auth-border);border-radius:14px;padding:16px;background:#fff;transition:border-color .15s ease,background .15s ease}.signup-role input:checked+.signup-role-surface{background:#f0f7f2;border-color:var(--auth-green)}.signup-role input:not(:disabled)+.signup-role-surface:hover{border-color:var(--auth-green)}.signup-role-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:#edf3ef;color:var(--auth-green);flex-shrink:0}.signup-role input:checked+.signup-role-surface .signup-role-icon{background:var(--auth-green);color:#fff}.signup-role-copy{display:flex;flex-direction:column;gap:5px}.signup-role-copy strong{font-size:14px}.signup-role-copy>span{font-size:11px;color:var(--auth-muted);line-height:1.5}.signup-radio-mark{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:19px;height:19px;margin-left:auto;border:1.5px solid #b5c8bc;border-radius:50%;color:transparent}.signup-role input:checked+.signup-role-surface .signup-radio-mark{background:var(--auth-green);border-color:var(--auth-green);color:#fff}.signup-helper{margin:-6px 0 2px;font-size:11px;line-height:1.6;color:var(--auth-muted)}.signup-agreement{display:flex;align-items:flex-start;gap:10px;padding:2px 0}.signup-agreement input{accent-color:var(--auth-green);width:18px;height:18px;margin:2px 0 0;flex-shrink:0;cursor:pointer}.signup-agreement label{font-size:12px;line-height:1.8;color:var(--auth-muted);cursor:pointer}.signup-agreement a{color:var(--auth-green);font-weight:600;text-underline-offset:3px}.signup-divider{margin:-2px 0;font-size:11px}.signup-field-error,.signup-field-hint{margin:1px 0 0;font-size:11px;line-height:1.6}.signup-field-hint{display:flex;align-items:center;gap:5px;color:var(--auth-muted)}.signup-field-hint.is-valid{color:var(--auth-green)}.signup-field-error{color:#b91c1c}.signup-password-requirements{font-size:12px;color:var(--auth-muted);line-height:1.6;overflow-wrap:anywhere}.signup-password-requirements ul{list-style:none;margin:4px 0 0;padding:0}.signup-password-requirements li{display:flex;gap:6px;margin-top:3px}.signup-password-requirements p{margin:6px 0 0}.signup-password-requirements .is-met{color:var(--auth-green)}.signup-password-requirements .is-missing{color:#b91c1c}.signup-check{flex-shrink:0;width:14px}.signup-form .auth-input[aria-invalid=true]{border-color:#b91c1c;background:snow}.signup-password{position:relative}.signup-password input{padding-right:68px}.signup-password button{position:absolute;top:2px;right:4px;bottom:2px;min-width:52px;border:none;border-radius:9px;background:transparent;color:var(--auth-green);font:inherit;font-size:12px;font-weight:600;cursor:pointer}.signup-review{display:flex;flex-direction:column;gap:7px;padding:18px;border:1px solid var(--auth-border);border-radius:14px;background:var(--auth-field-bg);overflow-wrap:anywhere}.signup-review-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.signup-review-heading>span{font-size:11px;font-weight:600;color:var(--auth-muted)}.signup-review>strong{font-size:16px}.signup-review-email{font-size:12px;color:var(--auth-muted);line-height:1.5}.signup-review-role{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:12px;margin-top:7px;border-top:1px solid var(--auth-border)}.signup-review-role>span{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--auth-green);font-weight:600}.signup-review .auth-link{font-size:11px;min-height:32px}.signup-address-toggle{display:flex;align-items:flex-start;gap:10px;padding:4px 0;cursor:pointer}.signup-address-toggle input{accent-color:var(--auth-green);width:18px;height:18px;flex-shrink:0;margin:1px 0 0}.signup-address-toggle>span{display:flex;flex-direction:column;gap:7px}.signup-address-toggle strong{font-size:12px;line-height:1.6}.signup-address-toggle>span>span{font-size:11px;color:var(--auth-muted);line-height:1.6}.signup-optional{display:inline-block;margin-left:5px;font-size:10px;font-weight:400;color:var(--auth-muted)}.signup-address-fields{margin-top:20px}.signup-next-note{display:flex;align-items:flex-start;gap:8px;margin:0;font-size:11px;line-height:1.7;color:var(--auth-muted)}.signup-next-note svg{flex-shrink:0;margin-top:1px;color:var(--auth-green)}.signup-actions{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;margin-top:8px}.signup-actions.is-first{grid-template-columns:1fr;margin-top:0}.signup-continue{display:flex;align-items:center;justify-content:center;gap:10px;margin:0;min-height:48px;font-size:14px}.signup-back{min-height:48px;padding:10px 22px;border:1px solid var(--auth-border);border-radius:12px;background:#fff;color:var(--auth-text);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.signup-back:hover:not(:disabled){background:var(--auth-field-bg);border-color:var(--auth-green)}.signup-card button:disabled:not(.signup-steps button){cursor:not-allowed;opacity:.6}.signup-card a:focus-visible,.signup-card button:focus-visible,.signup-card input:focus-visible,.signup-card select:focus-visible,.signup-card textarea:focus-visible,.signup-role input:focus-visible+.signup-role-surface{outline:3px solid rgba(30,107,60,.45);outline-offset:3px}.signup-support{margin:24px 0 0;padding-top:18px;border-top:1px solid #edf2ee;text-align:center;font-size:11px;color:var(--auth-muted)}.signup-support .auth-link{font-size:11px}.signup-error{margin-bottom:18px;line-height:1.6}.signup-aside{overflow:hidden;border-radius:20px;background:linear-gradient(155deg,#e8f3ed,#f3f6ec);border:1px solid #dce8de}.signup-photo{overflow:hidden;aspect-ratio:1.75}.signup-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:70% 35%}.signup-aside-copy{padding:28px}.signup-campus-tag{display:inline-flex;align-items:center;gap:7px;font-size:9px;font-weight:700;letter-spacing:1.1px;color:var(--auth-green)}.signup-campus-tag>span{width:6px;height:6px;border-radius:50%;background:#c38c0d}.signup-aside h2{margin:16px 0;font-family:Space Grotesk,sans-serif;font-size:33px;line-height:1.13;letter-spacing:-1px;font-weight:700}.signup-aside h2 span{color:var(--auth-green)}.signup-aside p{margin:0;max-width:300px;font-size:12px;line-height:1.8;color:var(--auth-muted)}.signup-aside-footer{display:flex;align-items:center;gap:8px;margin-top:24px;padding-top:18px;border-top:1px solid #d4e2d8;font-size:10px;color:var(--auth-green)}.signup-aside-footer svg{flex-shrink:0}.signup-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (max-width:900px){.signup-card{padding:28px}.signup-body{gap:30px}.signup-aside-copy{padding:22px}.signup-aside h2{font-size:28px}}@media (max-width:720px){.signup-wrap{align-items:flex-start;padding:24px 16px}.signup-card{max-width:520px}.signup-body{grid-template-columns:minmax(0,1fr);padding-top:28px}.signup-aside{display:none}.signup-steps{padding:10px 12px;gap:8px}.signup-steps button{flex-direction:column;gap:6px;width:100%;text-align:center;font-size:10px}.signup-content{padding-top:0}}@media (max-width:480px){.signup-wrap{padding:16px 12px}.signup-card{padding:22px 18px 24px;border-radius:22px}.signup-header{gap:10px;margin-bottom:22px}.signup-header p{font-size:0}.signup-header .auth-link{font-size:12px;padding:10px 0 10px 10px}.signup-steps{gap:0;padding:8px 3px}.signup-role-surface{gap:10px;padding:13px}.signup-role-copy>span{font-size:10.5px}.signup-address-fields input,.signup-address-fields select,.signup-address-fields textarea,.signup-form .auth-input{font-size:16px}.signup-eyebrow{margin-bottom:13px}}@media (prefers-reduced-motion:reduce){.signup-progress-fill,.signup-role-surface{transition:none}}