PageSourceSearch

https://ahamatch.ai/_next/static/chunks/0y7sc5-y8xd40.js

js ahamatch.ai collected 2026-10-02 01:10:59 UTC 33,681 bytes, 430 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,96690,e=>{"use strict";var a=e.i(43476),t=e.i(71645),n=e.i(22016),r=e.i(18566),o=e.i(51969);let i=[{label:"Features",kind:"anchor",target:"features"},{label:"How It Works",kind:"anchor",target:"how"},{label:"Pricing",kind:"anchor",target:"pricing"},{label:"FAQ",kind:"anchor",target:"faq"},{label:"Contact",kind:"anchor",target:"contact"}],s=["features","how","pricing","faq","contact"];e.s(["default",0,function({hideAuth:e=!1}={}){let l=(0,r.usePathname)(),d=(0,r.useRouter)(),c="/"===l,[p,h]=(0,t.useState)(!1),[u,g]=(0,t.useState)(!1),[m,x]=(0,t.useState)(!1),[f,v]=(0,t.useState)("");function b(e,a){if(e.preventDefault(),c){let e=document.getElementById(a);if(e){let a=e.getBoundingClientRect().top+window.scrollY-80;window.scrollTo({top:a,behavior:"smooth"})}}else d.push(`/#${a}`);x(!1)}function w(e){return"anchor"===e.kind?c&&f===e.target:l===e.href}return(0,t.useEffect)(()=>{let e=()=>h(window.scrollY>24);return e(),window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},[]),(0,t.useEffect)(()=>{if("/login"===l||"/register"===l)return;let e=new AbortController;return fetch("/user/api/me",{credentials:"include",headers:{Accept:"application/json"},signal:e.signal}).then(e=>e.ok?e.json():null).then(e=>g(e?.authenticated===!0)).catch(e=>{e instanceof DOMException&&"AbortError"===e.name||g(!1)}),()=>e.abort()},[l]),(0,t.useEffect)(()=>{if(!c)return void v("");let e=()=>{v(s.find(e=>{let a=document.getElementById(e);if(!a)return!1;let t=a.getBoundingClientRect();return t.top<=120&&t.bottom>=120})||"")};return e(),window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},[c]),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("style",{children:`
2                .ed-nav {
3                    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
4                    padding: 0 clamp(20px, 4vw, 40px);
5                    background: rgba(250, 250, 248, 0.88);
6                    backdrop-filter: blur(14px) saturate(1.1);
7                    -webkit-backdrop-filter: blur(14px) saturate(1.1);
8                    transition: border-color 300ms var(--ed-ease-out);
9                    border-bottom: 1px solid transparent;
10                }
11                .ed-nav-scrolled {
12                    border-bottom-color: var(--ed-rule);
13                }
14                .ed-nav-inner {
15                    max-width: 1180px; margin: 0 auto;
16                    display: flex; align-items: center; justify-content: space-between;
17                    height: 68px;
18                }
19                .ed-logo {
20                    display: flex; align-items: center;
21                    text-decoration: none;
22                    color: var(--ed-ink);
23                }
24                /* Two wrappers — one for each breakpoint. Each wrapper contains
25                   a <BrandLogo> which renders both dark + light twins; global
26                   CSS (design-system.css .aha-brand-dark / .aha-brand-light)
27                   picks one per theme. Wrapper-level display handles the
28                   breakpoint swap; theme swap happens INSIDE the visible wrapper.
29                   Cleaner than a single 2D class product of breakpoint \xd7 theme. */
30                .ed-logo-desktop-wrap { display: block; }
31                .ed-logo-mobile-wrap  { display: none; }
32                @media (max-width: 767px) {
33                    .ed-logo-desktop-wrap { display: none; }
34                    .ed-logo-mobile-wrap  { display: block; }
35                }
36                /* Size of the visible img inside each wrapper. Applies to both
37                   dark + light twins (they share className). Only one is visible
38                   at any given time thanks to .aha-brand-* theme rules. */
39                /* Tight-cropped 10:1 horizontal art (wordmark fills 100% of
40                   slot height). 20px slot → 20px wordmark, ~200px wide. */
41                .ed-logo-size-horizontal {
42                    height: 20px;
43                    width: auto;
44                }
45                .ed-logo-size-icon {
46                    height: 30px;
47                    width: auto;
48                }
49                .ed-nav-links {
50                    display: flex; gap: clamp(18px, 2.6vw, 36px);
51                    list-style: none; margin: 0; padding: 0;
52                    align-items: center;
53                }
54                .ed-nav-links li { display: flex; align-items: center; }
55
56                a.ed-nav-link {
57                    display: inline-block;
58                    background: none; border: none;
59                    font-family: var(--ed-font-mono);
60                    font-size: 11px; font-weight: 500;
61                    letter-spacing: 2px; text-transform: uppercase;
62                    text-decoration: none; line-height: 1;
63                    color: var(--ed-ink-3);
64                    padding: 10px 2px;
65                    position: relative;
66                    transition: color 200ms var(--ed-ease-out);
67                    cursor: pointer;
68                }
69                a.ed-nav-link:hover {
70                    color: var(--ed-ink);
71                }
72                a.ed-nav-link.active {
73                    color: var(--ed-ink);
74                }
75                a.ed-nav-link.active::after {
76                    content: ""; position: absolute;
77                    left: 0; right: 0; bottom: 4px; height: 1px;
78                    background: var(--ed-accent);
79                }
80
81                .ed-cta-cluster { display: flex; align-items: center; gap: 16px; }
82                .ed-nav-login {
83                    font-family: var(--ed-font-mono);
84                    font-size: 11px; font-weight: 500;
85                    letter-spacing: 2px; text-transform: uppercase;
86                    color: var(--ed-ink-3);
87                    text-decoration: none;
88                    transition: color 180ms var(--ed-ease-out);
89                    padding: 8px 2px;
90                }
91                .ed-nav-login:hover { color: var(--ed-ink); }
92
93                .ed-nav-hamburger {
94                    display: none; width: 36px; height: 36px;
95                    background: transparent; border: 1px solid var(--ed-rule);
96                    border-radius: 8px;
97                    color: var(--ed-ink);
98                    cursor: pointer;
99                    align-items: center; justify-content: center;
100                    transition: background 180ms var(--ed-ease-out);
101                }
102                .ed-nav-hamburger:hover { background: var(--ed-bg-subtle); }
103
104                .ed-mob-menu {
105                    position: fixed; inset: 0; z-index: 200;
106                    background: var(--ed-bg-page);
107                    display: flex; flex-direction: column;
108                    align-items: stretch; padding: 72px 32px 32px;
109                    gap: 28px;
110                    transform: translateX(100%);
111                    transition: transform 320ms var(--ed-ease-drawer);
112                    pointer-events: none;
113                    overflow-y: auto;
114                }
115                .ed-mob-menu.open {
116                    transform: translateX(0); pointer-events: auto;
117                }
118                .ed-mob-close {
119                    position: absolute; top: 18px; right: 24px;
120                    background: transparent; border: none;
121                    color: var(--ed-ink);
122                    font-size: 28px; font-weight: 300; line-height: 1;
123                    cursor: pointer;
124                    width: 36px; height: 36px;
125                    display: flex; align-items: center; justify-content: center;
126                }
127                .ed-mob-menu a.ed-nav-link { font-size: 14px; padding: 8px 0; }
128                .ed-mob-sep { height: 1px; background: var(--ed-rule); margin: 8px 0; }
129
130                @media (max-width: 900px) {
131                    .ed-nav-links { display: none; }
132                    .ed-nav-login { display: none; }
133                    .ed-cta-cluster .ed-cta-ink { display: none; }
134                    .ed-nav-hamburger { display: flex; }
135                }
136            `}),(0,a.jsx)("nav",{className:`ed-nav ${p?"ed-nav-scrolled":""}`,"data-anim":"nav",children:(0,a.jsxs)("div",{className:"ed-nav-inner",children:[(0,a.jsxs)(n.default,{href:"/",className:"ed-logo","aria-label":"AhaMatch AI home",children:[(0,a.jsx)("span",{className:"ed-logo-desktop-wrap",children:(0,a.jsx)(o.default,{variant:"horizontal",width:440,height:44,priority:!0,fetchPriority:"high",className:"ed-logo-size-horizontal"})}),(0,a.jsx)("span",{className:"ed-logo-mobile-wrap",children:(0,a.jsx)(o.default,{variant:"icon",width:48,height:48,priority:!0,fetchPriority:"high",className:"ed-logo-size-icon"})})]}),(0,a.jsx)("ul",{className:"ed-nav-links",children:i.map(e=>(0,a.jsx)("li",{children:"anchor"===e.kind?(0,a.jsx)("a",{href:`/#${e.target}`,onClick:a=>b(a,e.target),className:`ed-nav-link ${w(e)?"active":""}`,children:e.label}):(0,a.jsx)(n.default,{href:e.href,className:`ed-nav-link ${w(e)?"active":""}`,children:e.label})},e.label))}),(0,a.jsxs)("div",{className:"ed-cta-cluster",children:[e?null:u?(0,a.jsxs)(n.default,{href:"/dashboard",className:"ed-cta-ink",children:["Dashboard ",(0,a.jsx)("span",{"aria-hidden":!0,
136children:"→"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.default,{href:"/login",className:"ed-nav-login",children:"Log in"}),(0,a.jsxs)(n.default,{href:"/register",className:"ed-cta-ink",children:["Sign up ",(0,a.jsx)("span",{"aria-hidden":!0,children:"→"})]})]}),(0,a.jsx)("button",{className:"ed-nav-hamburger",onClick:()=>x(!0),"aria-label":"Open menu",children:(0,a.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:(0,a.jsx)("path",{d:"M4 7h16M4 12h16M4 17h16"})})})]})]})}),(0,a.jsxs)("div",{className:`ed-mob-menu ${m?"open":""}`,children:[(0,a.jsx)("button",{className:"ed-mob-close",onClick:()=>x(!1),"aria-label":"Close menu",children:"×"}),i.map(e=>"anchor"===e.kind?(0,a.jsx)("a",{href:`/#${e.target}`,className:"ed-nav-link",onClick:a=>b(a,e.target),children:e.label},e.label):(0,a.jsx)(n.default,{href:e.href,className:"ed-nav-link",onClick:()=>x(!1),children:e.label},e.label)),(0,a.jsx)("div",{className:"ed-mob-sep"}),u?(0,a.jsxs)(n.default,{href:"/dashboard",className:"ed-cta-ink",onClick:()=>x(!1),style:{alignSelf:"flex-start"},children:["Dashboard ",(0,a.jsx)("span",{"aria-hidden":!0,children:"→"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.default,{href:"/login",className:"ed-nav-link",onClick:()=>x(!1),children:"Log in"}),(0,a.jsxs)(n.default,{href:"/register",className:"ed-cta-primary",onClick:()=>x(!1),style:{alignSelf:"flex-start"},children:["Sign up ",(0,a.jsx)("span",{className:"ed-cta-arrow","aria-hidden":!0,children:"→"})]})]})]})]})}])},41056,e=>{"use strict";e.i(47167);var a=e.i(43476),t=e.i(71645);let n=(0,t.createContext)(null);function r({clientId:e,nonce:a,locale:o,onScriptLoadSuccess:i,onScriptLoadError:s,children:l}){let d=function(e={}){let{nonce:a,locale:n,onScriptLoadSuccess:r,onScriptLoadError:o}=e,[i,s]=(0,t.useState)(!1),l=(0,t.useRef)(r);l.current=r;let d=(0,t.useRef)(o);return d.current=o,(0,t.useEffect)(()=>{let e=document.createElement("script");return e.src="https://accounts.google.com/gsi/client",n&&(e.src+=`?hl=${n}`),e.async=!0,e.defer=!0,e.nonce=a,e.onload=()=>{var e;s(!0),null==(e=l.current)||e.call(l)},e.onerror=()=>{var e;s(!1),null==(e=d.current)||e.call(d)},document.body.appendChild(e),()=>{document.body.removeChild(e)}},[a]),i}({nonce:a,onScriptLoadSuccess:i,onScriptLoadError:s,locale:o}),c=(0,t.useMemo)(()=>({locale:o,clientId:e,scriptLoadedSuccessfully:d}),[e,d]);return t.default.createElement(n.Provider,{value:c},l)}let o={large:40,medium:32,small:20};function i({onSuccess:e,onError:a,useOneTap:r,promptMomentNotification:s,type:l="standard",theme:d="outline",size:c="large",text:p,shape:h,logo_alignment:u,width:g,click_listener:m,state:x,containerProps:f,login_hint:v,...b}){let w=(0,t.useRef)(null),{clientId:k,locale:y,scriptLoadedSuccessfully:j}=function(){let e=(0,t.useContext)(n);if(!e)throw Error("Google OAuth components must be used within GoogleOAuthProvider");return e}(),N=(0,t.useRef)(e);N.current=e;let C=(0,t.useRef)(a);C.current=a;let z=(0,t.useRef)(s);return z.current=s,(0,t.useEffect)(()=>{var e,a,t,n,o,i,s,f,S;if(j)return null==(t=null==(a=null==(e=null==window?void 0:window.google)?void 0:e.accounts)?void 0:a.id)||t.initialize({client_id:k,callback:e=>{var a,t;if(!(null==e?void 0:e.credential))return null==(a=C.current)?void 0:a.call(C);let{credential:n,select_by:r}=e;N.current({credential:n,clientId:null!=(t=null==e?void 0:e.clientId)?t:null==e?void 0:e.client_id,select_by:r})},login_hint:v,...b}),null==(i=null==(o=null==(n=null==window?void 0:window.google)?void 0:n.accounts)?void 0:o.id)||i.renderButton(w.current,{type:l,theme:d,size:c,text:p,shape:h,logo_alignment:u,width:g,locale:y,click_listener:m,state:x}),r&&(null==(S=null==(f=null==(s=null==window?void 0:window.google)?void 0:s.accounts)?void 0:f.id)||S.prompt(z.current)),()=>{var e,a,t;r&&(null==(t=null==(a=null==(e=null==window?void 0:window.google)?void 0:e.accounts)?void 0:a.id)||t.cancel())}},[k,j,r,l,d,c,p,h,u,g,y,v]),t.default.createElement("div",{...f,ref:w,style:{height:o[c],...null==f?void 0:f.style}})}e.s(["default",0,function({onError:e,redirectTo:n="/dashboard"}){let[o,s]=(0,t.useState)(!1),l=async a=>{if(!a.credential)return void e?.("No credential returned from Google. Please try again.");s(!0);try{let t=await fetch("/auth/api/google",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:a.credential})}),r=await t.json();r.success?window.location.href=n:e?.(r.error||"Google sign-in failed. Please try again.")}catch(a){console.error("Google sign-in error:",a),e?.("Could not reach the server. Please try again.")}finally{s(!1)}};return(0,a.jsx)(r,{clientId:"579689884289-oira8pfgv2aunvjaa0voomv9remu4hq3.apps.googleusercontent.com",children:(0,a.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",margin:"12px 0",opacity:o?.6:1,pointerEvents:o?"none":"auto",transition:"opacity 0.2s",cursor:o?"wait":"pointer"},children:(0,a.jsx)(i,{onSuccess:l,onError:()=>{e?.("Google sign-in was cancelled or failed.")},theme:"outline",size:"medium",text:"continue_with",shape:"pill",width:"280",useOneTap:!1})})})}],41056)},94542,e=>{"use strict";var a=e.i(43476),t=e.i(71645),n=e.i(18566),r=e.i(22016),o=e.i(96690),i=e.i(41056);
136function s(){let e=(0,n.useRouter)(),s=(0,n.useSearchParams)(),[l,d]=(0,t.useState)(""),[c,p]=(0,t.useState)(""),[h,u]=(0,t.useState)(!1),[g,m]=(0,t.useState)(!1),[x,f]=(0,t.useState)(""),[v,b]=(0,t.useState)(!1),[w,k]=(0,t.useState)(null),y=(0,t.useCallback)(()=>k(null),[]);async function j(a){a.preventDefault(),f(""),b(!0);try{let a=await fetch("/auth/api/login",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:l,password:c,remember:g})}),t=await a.json();t.success?e.push("/dashboard"):t.verification_required?e.push(`/verify-email?email=${encodeURIComponent(t.email||l)}`):f(t.error||"Login failed. Please try again.")}catch(e){console.error("Login error:",e),f("Something went wrong. Please try again.")}finally{b(!1)}}return(0,t.useEffect)(()=>{let e=s.get("message"),a=s.get("error");if(a)k({message:a,type:"error"});else if(e){let a=e.toLowerCase().includes("success")?"success":"info";k({message:e,type:a})}},[s]),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("style",{children:`
137                /* ═════ Shared auth shell ═════ */
138                .ed-auth-shell {
139                    min-height: 100vh;
140                    padding-top: 68px; /* clear fixed nav */
141                    background: var(--ed-bg-page);
142                }
143                .ed-auth-grid {
144                    max-width: 1180px;
145                    margin: 0 auto;
146                    min-height: calc(100vh - 68px);
147                    display: grid;
148                    grid-template-columns: 1fr 1fr;
149                    gap: clamp(40px, 6vw, 96px);
150                    align-items: center;
151                    padding: clamp(40px, 6vw, 80px) clamp(20px, 4vw, 40px);
152                }
153
154                /* ═════ Left: editorial side-panel ═════ */
155                .ed-auth-side { max-width: 460px; }
156                .ed-auth-side .ed-eyebrow {
157                    display: flex; align-items: center; gap: 14px;
158                    font-family: var(--ed-font-mono);
159                    font-size: 11px; font-weight: 500;
160                    letter-spacing: 2.5px; text-transform: uppercase;
161                    color: var(--ed-ink-3);
162                    margin-bottom: 28px;
163                }
164                .ed-auth-side .ed-rule-short {
165                    width: 40px; height: 1px; background: var(--ed-ink);
166                    display: inline-block;
167                }
168                .ed-auth-side .ed-idx { color: var(--ed-ink); font-weight: 600; }
169
170                .ed-auth-welcome {
171                    font-family: var(--ed-font-display);
172                    font-variation-settings: "opsz" 96, "wght" 600, "SOFT" 100;
173                    font-size: clamp(40px, 5vw, 56px);
174                    font-weight: 600;
175                    line-height: 1.05;
176                    letter-spacing: -0.025em;
177                    color: var(--ed-ink);
178                    margin: 0 0 22px;
179                }
180                .ed-auth-welcome em {
181                    font-family: var(--ed-font-quote);
182                    font-style: italic;
183                    color: var(--ed-accent-ink);
184                }
185                .ed-auth-lede {
186                    font-family: var(--ed-font-body);
187                    font-size: 17px;
188                    line-height: 1.55;
189                    color: var(--ed-ink-2);
190                    margin: 0 0 40px;
191                    max-width: 400px;
192                }
193                .ed-auth-quote {
194                    border-top: 1px solid var(--ed-rule);
195                    padding-top: 28px;
196                    font-family: var(--ed-font-quote);
197                    font-style: italic;
198                    font-size: 19px;
199                    line-height: 1.45;
200                    color: var(--ed-ink-2);
201                    margin: 0 0 14px;
202                }
203                .ed-auth-quote::before {
204                    content: "" ";
205                    font-family: var(--ed-font-quote);
206                    font-size: 32px;
207                    color: var(--ed-accent);
208                    line-height: 0.5;
209                    display: inline;
210                    margin-right: 6px;
211                }
212                .ed-auth-quote::after {
213                    content: "" ";
214                    font-family: var(--ed-font-quote);
215                    font-size: 32px;
216                    color: var(--ed-accent);
217                    line-height: 0.5;
218                    display: inline;
219                    margin-left: 4px;
220                }
221                .ed-auth-attr {
222                    display: flex; align-items: center; gap: 12px;
223                    font-family: var(--ed-font-mono);
224                    font-size: 10px; letter-spacing: 2px;
225                    text-transform: uppercase;
226                    color: var(--ed-ink-3);
227                }
228                .ed-auth-attr::before {
229                    content: ""; width: 28px; height: 1px;
230                    background: var(--ed-ink-4);
231                }
232
233                /* ═════ Right: form surface ═════ */
234                .ed-auth-form {
235                    width: 100%;
236                    max-width: 440px;
237                    justify-self: end;
238                }
239                .ed-auth-heading {
240                    font-family: var(--ed-font-display);
241                    font-variation-settings: "opsz" 72, "wght" 600, "SOFT" 100;
242                    font-size: clamp(28px, 3vw, 36px);
243                    font-weight: 600;
244                    letter-spacing: -0.02em;
245                    line-height: 1.1;
246                    color: var(--ed-ink);
247                    margin: 0 0 6px;
248                }
249                .ed-auth-sub {
250                    font-size: 14.5px;
251                    color: var(--ed-ink-3);
252                    margin: 0 0 32px;
253                }
254
255                .ed-flash {
256                    border-radius: var(--ed-r-sm);
257                    padding: 12px 16px;
258                    margin-bottom: 20px;
259                    font-size: 13px;
260                    display: flex; align-items: center; justify-content: space-between;
261                    gap: 12px;
262                    border: 1px solid transparent;
263                    animation: ed-flash-in 280ms var(--ed-ease-out);
264                }
265                @keyframes ed-flash-in {
266                    from { opacity: 0; transform: translateY(-4px); }
267                    to { opacity: 1; transform: translateY(0); }
268                }
269                .ed-flash--error { background: rgba(220, 38, 38, 0.06); border-color: rgba(220, 38, 38, 0.22); color: #B91C1C; }
270                .ed-flash--success { background: rgba(5, 150, 105, 0.06); border-color: rgba(5, 150, 105, 0.22); color: #047857; }
271                .ed-flash--info { background: rgba(15, 23, 42, 0.04); border-color: var(--ed-rule-strong); color: var(--ed-ink-2); }
272                .ed-flash-close {
273                    background: none; border: none; cursor: pointer;
274                    color: inherit; opacity: 0.65; font-size: 18px;
275                    padding: 0 2px; line-height: 1;
276                }
277                .ed-flash-close:hover { opacity: 1; }
278
279                /* Google Sign-In divider (2026-05-30). */
280                .ed-auth-divider {
281                    display: flex; align-items: center; gap: 12px;
282                    margin: 4px 0 22px;
283                    font-family: var(--ed-font-mono);
284                    font-size: 10.5px; font-weight: 500;
285                    letter-spacing: 1.5px; text-transform: uppercase;
286                    color: var(--ed-ink-3);
287                }
288                .ed-auth-divider::before,
289                .ed-auth-divider::after {
290                    content: ""; flex: 1; height: 1px;
291                    background: var(--ed-rule);
292                }
293                .ed-auth-divider span { white-space: nowrap; }
294
295                .ed-field { margin-bottom: 18px; }
296                .ed-label {
297                    display: block;
298                    font-family: var(--ed-font-mono);
299                    font-size: 10.5px; font-weight: 600;
300                    letter-spacing: 2px; text-transform: uppercase;
301                    color: var(--ed-ink-3);
302                    margin-bottom: 8px;
303                }
304                .ed-input {
305                    width: 100%;
306                    box-sizing: border-box;
307                    font-family: var(--ed-font-body);
308                    font-size: 15px;
309                    color: var(--ed-ink);
310                    background: var(--ed-bg-card);
311                    border: 1px solid var(--ed-rule-strong);
312                    border-radius: var(--ed-r-sm);
313                    padding: 13px 16px;
314                    outline: none;
315                    transition: border-color 180ms var(--ed-ease-out), box-shadow 180ms var(--ed-ease-out);
316                }
317                .ed-input:focus {
318                    border-color: var(--ed-accent);
319                    box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.12);
320                }
321                .ed-input::placeholder { color: var(--ed-ink-4); }
322
323                .ed-pw-wrap { position: relative; }
324                .ed-pw-wrap .ed-input { padding-right: 46px; }
325                .ed-pw-toggle {
326                    position: absolute;
327                    right: 12px; top: 50%;
328                    transform: translateY(-50%);
329                    background: none; border: none;
330                    cursor: pointer;
331                    color: var(--ed-ink-3);
332                    padding: 4px;
333                    display: flex; align-items: center; justify-content: center;
334                    transition: color 160ms var(--ed-ease-out);
335                }
336                .ed-pw-toggle:hover { color: var(--ed-ink); }
337
338                .ed-row {
339                    display: flex; align-items: center; justify-content: space-between;
340                    margin-bottom: 28px;
341                }
342                .ed-check {
343                    display: inline-flex; align-items: center; gap: 9px;
344                    cursor: pointer;
345                    font-size: 13px; color: var(--ed-ink-2);
346                    user-select: none;
347                }
348                .ed-check-box {
349                    width: 16px; height: 16px;
350                    border: 1.5px solid var(--ed-rule-strong);
351                    border-radius: 3px;
352                    background: var(--ed-bg-card);
353                    display: flex; align-items: center; justify-content: center;
354                    transition: background 160ms var(--ed-ease-out), border-color 160ms var(--ed-ease-out);
355                }
356                .ed-check input { display: none; }
357                .ed-check input:checked + .ed-check-box {
358                    background: var(--ed-accent);
359                    border-color: var(--ed-accent);
360                }
361                .ed-link-sub {
362                    font-family: var(--ed-font-body);
363                    font-size: 13px;
364                    color: var(--ed-accent-ink);
365                    text-decoration: none;
366                    border-bottom: 1px solid var(--ed-accent);
367                    padding-bottom: 1px;
368                    transition: color 160ms var(--ed-ease-out), border-color 160ms var(--ed-ease-out);
369                }
370                .ed-link-sub:hover { color: var(--ed-ink); border-bottom-color: var(--ed-ink); }
371
372                .ed-submit {
373                    width: 100%;
374                    font-family: var(--ed-font-body);
375                    font-size: 15px;
376                    font-weight: 600;
377                    color: #FFFFFF;
378                    background: var(--ed-accent);
379                    border: 1px solid var(--ed-accent);
380                    border-radius: var(--ed-r-sm);
381                    padding: 14px;
382                    cursor: pointer;
383                    display: flex; align-items: center; justify-content: center; gap: 10px;
384                    transition: transform 180ms var(--ed-ease-out), box-shadow 180ms var(--ed-ease-out), background 180ms var(--ed-ease-out);
385                    box-shadow: 0 4px 14px rgba(249, 115, 22, 0.22);
386                }
387                .ed-submit:hover:not(:disabled) {
388                    background: #EA580C;
389                    border-color: #EA580C;
390                    transform: translateY(-1px);
391                    box-shadow: 0 8px 22px rgba(249, 115, 22, 0.30);
392                }
393                .ed-submit:active:not(:disabled) { transform: translateY(0) scale(0.98); }
394                .ed-submit:disabled { cursor: not-allowed; opacity: 0.7; transform: none; box-shadow: none; }
395
396                .ed-auth-foot {
397                    margin-top: 32px;
398                    text-align: center;
399                    font-size: 14px;
400                    color: var(--ed-ink-3);
401                }
402                .ed-auth-foot a {
403                    color: var(--ed-ink);
404                    font-weight: 600;
405                    text-decoration: none;
406                    border-bottom: 1px solid var(--ed-rule-strong);
407                    padding-bottom: 1px;
408                    transition: border-color 160ms var(--ed-ease-out);
409                }
410                .ed-auth-foot a:hover { border-bottom-color: var(--ed-accent); }
411
412                /* ═════ Responsive ═════ */
413                @media (max-width: 900px) {
414                    .ed-auth-grid {
415                        grid-template-columns: 1fr;
416                        gap: 40px;
417                        padding: clamp(28px, 4vw, 48px) 20px;
418                    }
419                    .ed-auth-side { display: none; }
420                    .ed-auth-form { justify-self: center; }
421                }
422                @media (max-width: 480px) {
423                    .ed-auth-shell { padding-top: 60px; }
424                    .ed-auth-heading { font-size: 26px; }
425                    .ed-input { font-size: 14.5px; padding: 12px 14px; }
426                }
427
428                @keyframes ed-spin { to { transform: rotate(360deg); } }
429                .ed-spinner { animation: ed-spin 0.8s linear infinite; }
430            `}),(0,a.jsx)(o.default,{}),(0,a.jsx)("main",{className:"ed-auth-shell",children:(0,a.jsxs)("div",{className:"ed-auth-grid",children:[(0,a.jsxs)("aside",{className:"ed-auth-side",children:[(0,a.jsxs)("div",{className:"ed-eyebrow",children:[(0,a.jsx)("span",{className:"ed-rule-short"}),(0,a.jsx)("span",{className:"ed-idx",children:"A / 01"}),(0,a.jsx)("span",{children:"Welcome back"})]}),(0,a.jsxs)("h1",{className:"ed-auth-welcome",children:["Pick up where you ",(0,a.jsx)("em",{children:"left off."})]}),(0,a.jsx)("p",{className:"ed-auth-lede",children:"Your saved jobs, tracked applications, and resume profiles are ready. Sign in to continue."}),(0,a.jsx)("p",{className:"ed-auth-quote",children:"The resume that lands the interview is rarely the one you think is your best."}),(0,a.jsx)("div",{className:"ed-auth-attr",children:"Editorial · on job search"})]}),(0,a.jsxs)("section",{className:"ed-auth-form",children:[(0,a.jsx)("h2",{className:"ed-auth-heading",children:"Log in to AHA Match"}),(0,a.jsx)("p",{className:"ed-auth-sub",children:"Enter your email and password to continue."}),w&&(0,a.jsxs)("div",{className:`ed-flash ed-flash--${w.type}`,role:"status",children:[(0,a.jsx)("span",{children:w.message}),(0,a.jsx)("button",{className:"ed-flash-close",onClick:y,"aria-label":"Dismiss",children:"×"})]}),x&&(0,a.jsx)("div",{className:"ed-flash ed-flash--error",role:"alert",children:(0,a.jsx)("span",{children:x})}),(0,a.jsxs)("form",{onSubmit:j,noValidate:!0,children:[(0,a.jsxs)("div",{className:"ed-field",children:[(0,a.jsx)("label",{className:"ed-label",htmlFor:"login-email",children:"Email"}),(0,a.jsx)("input",{id:"login-email",type:"email",className:"ed-input",value:l,onChange:e=>d(e.target.value),required:!0,autoComplete:"email",autoFocus:!0,placeholder:"[email protected]"})]}),(0,a.jsxs)("div",{className:"ed-field",children:[(0,a.jsx)("label",{className:"ed-label",htmlFor:"login-password",children:"Password"}),(0,a.jsxs)("div",{className:"ed-pw-wrap",children:[(0,a.jsx)("input",{id:"login-password",type:h?"text":"password",className:"ed-input",value:c,onChange:e=>p(e.target.value),required:!0,autoComplete:"current-password",placeholder:"Enter your password"}),(0,a.jsx)("button",{type:"button",className:"ed-pw-toggle",onClick:()=>u(!h),tabIndex:-1,"aria-label":h?"Hide password":"Show password",children:h?(0,a.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94"}),(0,a.jsx)("path",{d:"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19"}),(0,a.jsx)("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}):(0,a.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,a.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]})]}),(0,a.jsxs)("div",{className:"ed-row",children:[(0,a.jsxs)("label",{className:"ed-check",children:[(0,a.jsx)("input",{type:"checkbox",checked:g,onChange:e=>m(e.target.checked)}),(0,a.jsx)("span",{className:"ed-check-box",children:g&&(0,a.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"#fff",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,a.jsx)("polyline",{points:"20 6 9 17 4 12"})})}),"Remember me"]}),(0,a.jsx)(r.default,{href:"/forgot-password",className:"ed-link-sub",children:"Forgot password?"})]}),(0,a.jsxs)("button",{type:"submit",className:"ed-submit",disabled:v,children:[v&&(0,a.jsx)("svg",{className:"ed-spinner",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:(0,a.jsx)("path",{d:"M21 12a9 9 0 1 1-6.219-8.56"})}),v?"Signing in...":"Sign in"]})]}),(0,a.jsx)("div",{className:"ed-auth-divider",children:(0,a.jsx)("span",{children:"or continue with"})}),(0,a.jsx)(i.default,{onError:f}),(0,a.jsxs)("div",{className:"ed-auth-foot",children:["Don't have an account?"," ",(0,a.jsx)(r.default,{href:"/register",children:"Create one"})]})]})]})})]})}e.s(["default",0,function(){return(0,a.jsx)(t.Suspense,{fallback:(0,a.jsx)("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"var(--ed-bg-page, #FBF8F4)"},children:(0,a.jsx)("div",{style:{width:24,height:24,border:"2px s
430olid var(--ed-rule, #E7DFC7)",borderTopColor:"var(--ed-accent, #F97316)",borderRadius:"50%",animation:"ed-spin 0.6s linear infinite"}})}),children:(0,a.jsx)(s,{})})}])}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.