PageSourceSearch

https://tailor-get-noticed.com/_next/static/chunks/3fx3j9462rlvs.js?dpl=dpl_Ff1kfnSQ7sSLxH73BoYiPKDBd5Zr

js tailor-get-noticed.com collected 2026-09-24 14:18:58 UTC 151,770 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52683,e=>{"use strict";var t=e.i(43476),a=e.i(71645),s=e.i(62473),n=e.i(50951),r=e.i(92817),i=e.i(51172);function l(){let[e,s]=(0,a.useState)(!1);return((0,a.useEffect)(()=>{let e=new URL(window.location.href);if("ready"===e.searchParams.get("winback")){s(!0),e.searchParams.delete("winback"),window.history.replaceState({},"",e.toString());let t=setTimeout(()=>s(!1),15e3);return()=>clearTimeout(t)}},[]),e)?(0,t.jsx)("div",{className:"bg-[#1A2744] text-white border-b border-[#C9A84C]",children:(0,t.jsxs)("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 py-3 flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"text-center sm:text-left flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-semibold",children:"✓ Your free TAILOR session is ready"}),(0,t.jsx)("p",{className:"font-playfair italic text-xs text-[#C9A84C] mt-0.5",children:"Paste a job ad below and we’ll run the full optimisation. Valid for 7 days."})]}),(0,t.jsx)("button",{onClick:()=>s(!1),className:"text-xs text-slate-300 hover:text-white px-2 py-1 transition-colors","aria-label":"Dismiss",children:"Dismiss"})]})}):null}var o=e.i(38449);function d(){let[e,s]=(0,a.useState)(null),[n,r]=(0,a.useState)(!1),[i,l]=(0,a.useState)(null),[d,c]=(0,a.useState)(()=>Date.now()),x=(0,a.useCallback)(async e=>{let t=e?`/api/free-first-analysis/status?installId=${encodeURIComponent(e)}`:"/api/free-first-analysis/status";try{let e=await fetch(t,{cache:"no-store"});e.ok&&s(await e.json())}catch{}},[]);(0,a.useEffect)(()=>{x((0,o.getStoredInstallId)());let e=e=>{let t=e.detail;"string"==typeof t&&x(t)},t=()=>x((0,o.getStoredInstallId)());return window.addEventListener("tailor:install-id-captured",e),window.addEventListener("focus",t),()=>{window.removeEventListener("tailor:install-id-captured",e),window.removeEventListener("focus",t)}},[x]),(0,a.useEffect)(()=>{let e=setInterval(()=>c(Date.now()),6e4);return()=>clearInterval(e)},[]);let m=async()=>{if(!n){r(!0),l(null);try{let e=await fetch("/api/free-first-analysis/claim",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})});if(e.ok)await x((0,o.getStoredInstallId)());else{let t=(await e.json().catch(()=>({}))).error;"capped"===t||"expired"===t||"disabled"===t||"already_redeemed"===t||"has_welcome_bundle"===t?await x((0,o.getStoredInstallId)()):"ip_already_claimed"===t?l("ip_shared"):l(t??"unknown")}}catch{l("network")}finally{r(!1)}}};if(!e)return null;if(e.claimedAndUnused)return(0,t.jsx)("div",{className:"bg-[#FDF6E3] border-b border-[#C9A84C] px-4 py-3",children:(0,t.jsxs)("div",{className:"max-w-6xl mx-auto text-center text-sm text-[#1A2744]",children:[(0,t.jsx)("span",{className:"font-semibold",children:"Your free CV + alignment report is ready."})," ","Drop your CV and a job ad below to use it."]})});if(!e.available)return null;let h=e.expiresAt?new Date(e.expiresAt).getTime():null,p=h?Math.max(0,h-d):0,u=Math.floor(p/36e5),g=Math.floor(p%36e5/6e4),b=u>0?`${u}h ${g}m`:`${g}m`;return(0,t.jsxs)("div",{className:"bg-[#1A2744] text-white border-b border-[#C9A84C]",children:[(0,t.jsxs)("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 py-3 flex flex-col sm:flex-row items-center justify-between gap-3",children:[(0,t.jsxs)("div",{className:"text-center sm:text-left flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-semibold",children:"Free for new sign-ups: tailored CV + alignment report, no credit card needed."}),(0,t.jsxs)("p",{className:"font-playfair italic text-xs text-[#C9A84C] mt-0.5",children:["See your fit scored against the ATS, the recruiter and the hiring manager."," ",(0,t.jsxs)("span",{className:"not-italic font-semibold",children:["Expires in ",b,"."]})]})]}),(0,t.jsx)("button",{onClick:m,disabled:n,className:"bg-[#C9A84C] text-[#1A2744] font-semibold px-5 py-2 rounded-md text-sm hover:bg-[#D4B25A] transition-colors disabled:opacity-60 disabled:cursor-not-allowed whitespace-nowrap",children:n?"Claiming…":"Claim my free analysis"})]}),i&&(0,t.jsx)("p",{className:"text-xs text-red-300 text-center pb-2 px-4",children:"ip_shared"===i?(0,t.jsxs)(t.Fragment,{children:["Another sign-up from this network already used the free first analysis. Only one free trial per network. Email"," ",(0,t.jsx)("a",{href:"mailto:[email protected]",className:"underline",children:"support"}
1)," ","if that’s not right."]}):(0,t.jsxs)(t.Fragment,{children:["Couldn't claim. ",i,". Try again or contact"," ",(0,t.jsx)("a",{href:"mailto:[email protected]",className:"underline",children:"support"}),"."]})})]})}let c="tailor_review_prompted";function x({show:e,onClose:s}){let[n,r]=(0,a.useState)(!1);(0,a.useEffect)(()=>{if(!e)return void r(!1);let t=!1;try{t="true"===localStorage.getItem(c)}catch{}r(!t)},[e]);let i=()=>{try{localStorage.setItem(c,"true")}catch{}r(!1),s()};return n?(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40 px-4",onClick:i,role:"dialog","aria-modal":"true","aria-labelledby":"review-modal-title",children:(0,t.jsxs)("div",{className:"relative bg-white rounded-xl shadow-2xl max-w-md w-full p-6 sm:p-7",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("button",{onClick:i,className:"absolute top-3 right-3 text-slate-400 hover:text-slate-600 text-xl leading-none w-7 h-7 flex items-center justify-center","aria-label":"Close",children:"×"}),(0,t.jsx)("h2",{id:"review-modal-title",className:"font-playfair text-2xl text-[#1A2744] mb-2",children:"Loved it?"}),(0,t.jsx)("p",{className:"text-sm text-slate-700 leading-relaxed mb-5",children:"It would really help us if you leave a quick review on the Chrome Web Store!"}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row gap-2 sm:justify-end",children:[(0,t.jsx)("button",{onClick:i,className:"px-4 py-2 text-sm text-slate-600 hover:text-slate-800 font-medium transition-colors",children:"Maybe later"}),(0,t.jsx)("button",{onClick:()=>{window.open("https://chromewebstore.google.com/detail/tailor-ai-cv-tailoring/deboimkolpjgjidkjodiiaeaoodhihec/reviews","_blank","noopener,noreferrer"),i()},className:"px-5 py-2 bg-[#C9A84C] text-[#1A2744] font-semibold rounded-md text-sm hover:bg-[#D4B25A] transition-colors",children:"Leave a review"})]})]})}):null}function m({show:e,onClose:s}){return((0,a.useEffect)(()=>{if(!e)return;let t=e=>{"Escape"===e.key&&s()};return document.addEventListener("keydown",t),document.body.style.overflow="hidden",()=>{document.removeEventListener("keydown",t),document.body.style.overflow=""}},[e,s]),e)?(0,t.jsx)("div",{className:"fixed inset-0 z-100 flex items-center justify-center p-4 bg-navy/60 backdrop-blur-xs",role:"dialog","aria-modal":"true",children:(0,t.jsx)("div",{className:"w-full max-w-md bg-white rounded-2xl shadow-2xl border border-slate-200 overflow-hidden",children:(0,t.jsxs)("div",{className:"relative p-6 sm:p-8",children:[(0,t.jsx)("button",{onClick:s,"aria-label":"Close",className:"absolute top-3 right-3 text-slate-400 hover:text-navy text-2xl leading-none w-8 h-8 flex items-center justify-center rounded-lg hover:bg-slate-100 transition-colors",children:"×"}),(0,t.jsx)("h2",{className:"font-playfair text-2xl sm:text-[28px] leading-tight text-navy font-bold pr-6",children:"That’s your full application optimised and ready to send."}),(0,t.jsx)("p",{className:"text-sm text-brand-gray mt-3 leading-relaxed",children:"An optimised and tailored CV, a matching cover letter and your interview prep, built for that one job in minutes. But you won’t apply to just one job ad. The same CV won’t clear every filter, and optimising each by hand takes an hour or two. TAILOR does it in minutes, for every job."}),(0,t.jsx)("a",{href:"/pricing?src=post-bundle",className:"mt-6 block w-full text-center bg-gold hover:bg-gold-dark text-navy font-black text-sm sm:text-base py-3 rounded-xl transition-colors",children:"Keep tailoring your applications →"}),(0,t.jsxs)("p",{className:"mt-4 text-xs text-brand-gray text-center",children:["Found it useful? A quick"," ",(0,t.jsx)("a",{href:"https://chromewebstore.google.com/detail/tailor-ai-cv-tailoring/deboimkolpjgjidkjodiiaeaoodhihec/reviews",target:"_blank",rel:"noopener noreferrer",className:"font-semibold text-navy underline underline-offset-2 hover:text-navy-light",children:"review on the Chrome Web Store"})," ","really helps us."]}),(0,t.jsx)("button",{onClick:s,className:"mt-3 block mx-auto text-xs text-slate-400 hover:text-brand-gray",children:"Maybe later"})]})})}):null}var h=e.i(61065),p=e.i(18940),u=e.i(56311);let g=[{name:"Romsai",location:"Manchester",rating:5,comment:"Been struggling with job applications and started wondering if my CV was the issue. I found this really useful tool that helps with everything from start to finish CVs, c
1over letters and even interview prep. It's affordable, simple to use and honestly made the whole process feel a lot less stressful"},{name:"Jamie H.",location:"Birmingham",rating:5,comment:"Got past the ATS for the first time in months. Like actually got an interview."},{name:"Priya S.",location:"Manchester",rating:5,comment:"I've been doing this hunt for almost a year. First tool that didn't just spit out the same template back at me."},{name:"Tom W.",location:"London",rating:5,comment:"The interview brief is the bit I keep coming back to. Walked into my last one knowing what to say about myself."},{name:"Laura M.",location:"Bristol",rating:5,comment:"Did six applications in one evening. Last week I'd have struggled to do one."},{name:"Marcus T.",location:"Leeds",rating:5,comment:"Honestly, my CV looks like ME now. Not like a robot wrote it."},{name:"Aisha K.",location:"Birmingham",rating:5,comment:"I'm not great at writing about myself. This pulled stuff out of my answers I would never have included."},{name:"David R.",location:"Glasgow",rating:5,comment:"Got two callbacks in a week after using this. Hadn't had any for the previous three months."},{name:"Beth C.",location:"Edinburgh",rating:5,comment:"The cover letter alone was worth it. I always hated writing them."},{name:"Megan P.",location:"Newcastle",rating:5,comment:"Used the kanban tracker to keep all my applications in one place. Finally feel organised."},{name:"Ravi N.",location:"Leicester",rating:4,comment:"Good tool. Could do with more guidance on what to put in the interview brief box, but the output is solid."},{name:"Hannah B.",location:"Brighton",rating:4,comment:"Tailoring is brilliant. Cover letter felt a bit generic on the first pass, ran it through again and it was better."},{name:"Jonathan E.",location:"Sheffield",rating:4,comment:"Did exactly what it said. The before and after score is a nice touch, kept me motivated."},{name:"Rebecca F.",location:"Liverpool",rating:4,comment:"Worth it for the CV alone. The other docs are nice extras."},{name:"Owen D.",location:"Norwich",rating:3,comment:"Decent. The CV came out well but I had to tweak the tone a bit, felt slightly too corporate for the small company I was applying to."}];function b(e){return{name:e.name,location:e.location,rating:e.rating,comment:e.comment,source:"sample"}}function f(e){return{name:e.display_name||"Anonymous",location:e.display_city||"",rating:e.rating,comment:e.comment,source:"db",viaCws:"cws"===e.source}}function y({reviews:e}={}){let s=e?[...e]:g.map(b),[n,r]=(0,a.useState)(s),[i,l]=(0,a.useState)(0),[o,d]=(0,a.useState)(!1),c=(0,a.useRef)(null);if((0,a.useEffect)(()=>{if(e)return;let t=!1;return fetch("/api/reviews/public",{cache:"no-store"}).then(e=>e.json()).then(e=>{if(t)return;let a=(e.reviews??[]).map(f);0!==a.length&&r(a)}).catch(()=>{}),()=>{t=!0}},[e]),(0,a.useEffect)(()=>{if(!o&&!(n.length<=1))return c.current=window.setTimeout(()=>{l(e=>(e+1)%n.length)},3e3),()=>{c.current&&window.clearTimeout(c.current)}},[i,o,n.length]),0===n.length)return null;let x=n[i],m="★".repeat(x.rating)+"☆".repeat(5-x.rating);return(0,t.jsxs)("section",{className:"rounded-2xl bg-white border border-slate-200 px-5 sm:px-8 py-8 sm:py-10","aria-label":"What people are saying about TAILOR",onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:[(0,t.jsx)("p",{className:"text-xs uppercase tracking-wider text-brand-gray font-semibold text-center mb-4",children:"What people are saying"}),(0,t.jsxs)("div",{className:"relative min-h-[180px] sm:min-h-[160px] flex flex-col items-center justify-center gap-4",children:[(0,t.jsx)("div",{className:"text-gold text-2xl tracking-widest","aria-label":`${x.rating} out of 5 stars`,children:m}),(0,t.jsxs)("blockquote",{className:"text-center text-navy text-base sm:text-lg leading-relaxed max-w-2xl px-4",children:["“",x.comment,"”"]}),(0,t.jsxs)("cite",{className:"not-italic text-sm text-brand-gray text-center",children:[x.name,x.location?` \xb7 ${x.location}`:"",x.viaCws&&(0,t.jsx)("span",{className:"block text-xs text-slate-400 mt-0.5",children:"via the Chrome Web Store"})]}),n.length>1&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{type:"button",onClick:function(){l(e=>(e-1+n.length)%n.length)},className:"absolute left-0 top-1/2 -translate-y-1/2 w-9 h-9 rounded-full bg-white border border-slate-200 text-navy hover:bg-slate-50 hover:border-navy transition-colors flex items-center justify-center text-lg font-bold","aria-label":"Previous review",children:"‹"}),(0,t.jsx)("button",{type:"button",onClick:function(){l(e=>(e+1)%n.length)},className:"absolute right-0 top-1/2 -translate-y-1/2 w-9 h-9 rounded-full bg-white border border-slate-200 text-navy hover:bg-slate-50 hover:border-navy transition-colors flex items-center justify-center text-lg font-bold","aria-label":"Next review",children:"›"})]})]}),n.length>1&&(0,t.jsx)("div",{className:"flex justify-center gap-1.5 mt-6 flex-wrap",children:n.map((e,a)=>(0,t.jsx)("button",{type:"button",onClick:()=>l(a),"aria-label":`Go to review ${a+1}`,"aria-current":a===i?"true":void 0,className:`w-2 h-2 rounded-full transition-colors ${a===i?"bg-navy":"bg-slate-300 hover:bg-slate-400"}`},a))})]})}var v=e.i(8745);
1let j="tailor_ext_nudge_dismissed";function w(){let[e,s]=(0,a.useState)(null);(0,a.useEffect)(()=>{try{s("1"===localStorage.getItem(j))}catch{s(!1)}},[]);let n=()=>{try{localStorage.setItem(j,"1")}catch{}s(!0)};return!1!==e?null:(0,t.jsxs)("section",{className:"rounded-2xl bg-navy text-white p-5 sm:p-6 grid grid-cols-1 md:grid-cols-2 gap-5 items-center",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-[10px] sm:text-xs uppercase tracking-wider text-gold font-semibold mb-1.5",children:"Now on the Chrome Web Store"}),(0,t.jsx)("h3",{className:"font-playfair text-base sm:text-lg leading-snug mb-1.5",children:"Next job ad: one click instead of paste-and-wait"}),(0,t.jsx)("p",{className:"text-xs sm:text-sm text-slate-300 leading-relaxed",children:"The TAILOR Chrome extension adds a button to LinkedIn, Indeed, Workday, Greenhouse and 50+ more sites so the JD comes straight to your saved CV. Free, no extra signup."})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-2 sm:items-end",children:[(0,t.jsx)("a",{href:"https://chromewebstore.google.com/detail/deboimkolpjgjidkjodiiaeaoodhihec",target:"_blank",rel:"noopener noreferrer",onClick:n,"aria-label":"Install TAILOR free from the Chrome Web Store",className:"inline-block hover:opacity-90 transition-opacity",children:(0,t.jsx)("img",{src:"/chrome-web-store-badge.png",alt:"Available in the Chrome Web Store",width:340,height:96,className:"h-auto w-full max-w-[240px] sm:max-w-[280px]"})}),(0,t.jsx)("button",{type:"button",onClick:n,className:"text-[10px] sm:text-xs text-slate-400 hover:text-white underline underline-offset-2 sm:text-right",children:"I have it · hide this"})]})]})}var N=e.i(59161),k=e.i(17704),S=e.i(66972),C=e.i(47604),A=e.i(59792),T=e.i(89472),I=e.i(2250);let R=a.default.forwardRef(function(e,a){return(0,t.jsxs)("svg",{ref:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[(0,t.jsx)("path",{d:"M5 4.5l7 5 7-5"}),(0,t.jsx)("path",{d:"M5 9.5l7 5 7-5"}),(0,t.jsx)("path",{d:"M5 14.5l7 5 7-5"})]})});function L({built:e}){return(0,t.jsxs)("article",{className:`relative overflow-hidden rounded-2xl bg-linear-to-br from-navy via-navy to-navy-light text-white shadow-lg h-full flex flex-col transition-opacity duration-500 ${e?"opacity-100":"opacity-60"}`,children:[(0,t.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-1.5 bg-gold","aria-hidden":!0}),e&&(0,t.jsx)("div",{"aria-hidden":!0,className:"absolute -right-12 -top-12 opacity-[0.08] rotate-12 text-gold",children:(0,t.jsx)(R,{className:"w-[240px] h-[240px]",strokeWidth:1.25})}),(0,t.jsx)("div",{className:"relative bg-gold text-navy px-5 sm:px-6 py-2.5 text-center",children:(0,t.jsx)("p",{className:"text-[11px] sm:text-xs uppercase tracking-[0.22em] font-black",children:"Print · Fold · Pocket · Walk in armed"})}),(0,t.jsxs)("div",{className:"relative flex-1 flex flex-col gap-4 p-6 sm:p-7",children:[(0,t.jsxs)("div",{className:"flex items-start gap-4",children:[(0,t.jsx)("div",{className:"shrink-0 inline-flex items-center justify-center w-14 h-14 rounded-xl bg-gold/15 ring-1 ring-gold/30 text-gold",children:(0,t.jsx)(R,{className:"w-8 h-8",strokeWidth:1.75,"aria-hidden":"true"})}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-[10px] uppercase tracking-[0.18em] font-bold text-gold mb-1",children:"Battle Card · Day of Interview"}),(0,t.jsx)("h3",{className:"font-playfair text-3xl sm:text-4xl text-white leading-[1.05] font-bold",children:"Walk in armed."}),(0,t.jsx)("p",{className:"text-gold-light text-sm font-semibold italic mt-2",children:"Your one-page interview cheat sheet, built from your own career."})]})]}),(0,t.jsx)("p",{className:"text-sm text-slate-200 leading-relaxed",children:"Every other interview cheat sheet on the internet is a generic template. This one isn’t. Every line is lifted directly from your own CV, your own answers, your own evidence."}),(0,t.jsxs)("ul",{className:"space-y-1.5 text-xs sm:text-sm text-slate-200 flex-1",children:[(0,t.jsxs)("li",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-gold shrink-0",children:"✦"}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{className:"text-white",children:"Your opening line"}),", pulled straight from your Tell Me About Yourself"]})]}),(0,t.jsxs)("li",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-gold shrink-0",children:"✦"}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{className:"text-white",children:"Your Strongest Five"}),". Hiring-case headlines from your own career."]})]}),(0,t.jsxs)("li",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-gold shrink-0",children:"✦"}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{className:"text-white",children:"Three Power Phrases"}),", calibrated to this role from your past achievements"]})]}),(0,t.jsxs)("li",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-gold shrink-0",children:"✦"}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{className:"text-white",children:"Five intelligent questions"})," ","to ask, anchored in this job description"]})]}),(0,t.jsxs)("li",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-gold shrink-0",children:"✦"}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{className:"text-white",children:"Your closing question"}),". The one designed to change the read of the whole interview."]})]})]}),(0,t.jsxs)("div",{className:"pt-2",children:[(0,t.jsx)("div",{className:`w-full rounded-xl font-bold py-3.5 px-4 text-sm shadow-lg text-center transition-colors duration-500 ${e?"bg-gold text-navy":"bg-white/10 text-white/40 border border-white/10 uppercase tracking-wider text-xs"}`,children:e?"Download Battle Card  ↓":"Building…"}),(0,t.jsx)("p",{className:"text-[11px] text-slate-400 text-center mt-2",children:".docx · one A4 page · print, fold, pocket"})]})]})]})}function O({built:e}){return(0,t.jsxs)("article",{className:`relative overflow-hidden rounded-2xl bg-linear-to-br from-navy via-navy to-navy-light text-white shadow-lg h-full flex flex-col transition-opacity duration-500 ${e?"opacity-100":"opacity-60"}`,children:[(0,t.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-1.5 bg-gold","aria-hidden":!0}
1),e&&(0,t.jsx)("div",{"aria-hidden":!0,className:"absolute -right-10 -top-10 text-[180px] leading-none select-none opacity-[0.08] rotate-12",children:"🎧"}),(0,t.jsx)("div",{className:"relative bg-gold text-navy px-5 sm:px-6 py-2.5 text-center",children:(0,t.jsx)("p",{className:"text-[11px] sm:text-xs uppercase tracking-[0.22em] font-black",children:"Hear it · Practise it · Walk in confident"})}),(0,t.jsxs)("div",{className:"relative flex-1 flex flex-col gap-4 p-6 sm:p-7",children:[(0,t.jsxs)("div",{className:"flex items-start gap-4",children:[(0,t.jsx)("div",{className:"text-4xl sm:text-5xl drop-shadow-lg shrink-0 leading-none",children:"🎧"}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-[10px] uppercase tracking-[0.18em] font-bold text-gold mb-1",children:"Audio Companion · Listen first"}),(0,t.jsx)("h3",{className:"font-playfair text-3xl sm:text-4xl text-white leading-[1.05] font-bold",children:"Hear it read aloud."}),(0,t.jsx)("p",{className:"text-gold-light text-sm font-semibold italic mt-2",children:"Read by James, our professional voice."})]})]}),(0,t.jsx)("p",{className:"font-playfair italic text-xl sm:text-2xl text-gold text-center leading-snug py-1",children:"“Tell me about yourself.”"}),(0,t.jsx)("p",{className:"text-sm text-slate-200 leading-relaxed",children:"The question every candidate dreads, the one that decides the next 60 minutes. Your answer is built using the SEAT structure — Skills, Experience, Achievement, Type of person — tailored to this exact job. Hear it read aloud by James, our professional voice. Practise the timing on the commute. Walk in already knowing how your 60-second answer sounds."}),(0,t.jsxs)("div",{className:"mt-auto",children:[(0,t.jsx)("div",{className:`w-full rounded-xl font-bold py-3.5 px-4 text-sm shadow-lg text-center transition-colors duration-500 ${e?"bg-gold text-navy":"bg-white/10 text-white/40 border border-white/10 uppercase tracking-wider text-xs"}`,children:e?"Generate audio  ↓":"Building…"}),(0,t.jsx)("p",{className:"text-[11px] text-slate-400 text-center mt-2",children:".mp3 · 60 to 90 seconds · download immediately"})]})]})]})}var E=e.i(52368),P=e.i(14940);function M({cvText:e,jdText:s,roleLine:n,executiveSummary:r,result:i,onComplete:l,hidePack:o}){let d=(0,E.useLocale)(),c=(0,P.vocab)(d),x=`${c.optimised.charAt(0).toUpperCase()}${c.optimised.slice(1)} ${c.CV}`,[m,h]=(0,a.useState)(new Set),p=[{key:"cv",matchName:`Optimised ${c.CV}`,icon:N.DocumentTextIcon,title:x,description:"Keyword-aligned, results-led. Times New Roman, max 2 pages A4."},{key:"alignment",matchName:"Alignment Report",icon:k.ChartBarSquareIcon,title:"Alignment Report",description:"T-chart, ATS score, recruiter verdict, hiring manager view, evidence gaps."},{key:"cover",matchName:"Cover Letter",icon:S.EnvelopeIcon,title:"Cover Letter",description:"Addresses evidence gaps directly, mirrors JD language."},{key:"interview",matchName:"Strategic Interview Briefing",icon:C.ChatBubbleLeftRightIcon,title:"Strategic Interview Briefing",description:"Presence in the Room, Power Phrases, the three things this interviewer cares about, six signature stories in STAR + CAR format."},{key:"company",matchName:"Company Research",icon:A.BuildingOffice2Icon,title:"Company / Org Research",description:"AI-generated company snapshot: overview, culture, key people and interview intelligence."},{key:"90day",matchName:"30 / 60 / 90 Day Implementation Plan",icon:T.CalendarDaysIcon,title:"30, 60, 90 Day Implementation Plan",description:"Executive summary, stakeholder map, three phases each with milestones and challenges to navigate, risk register, resource ask, 6 + 12 month horizon."}],u=i&&[i.targetJobTitle,i.targetCompany].filter(Boolean).join(" · ")||n,g=i?.executiveSummary||r,b="number"==typeof i?.initialMatchScore?i.initialMatchScore:void 0,f="number"==typeof i?.revisedMatchScore?i.revisedMatchScore:void 0;return(0,t.jsxs)("div",{className:"space-y-8",children:[(0,t.jsx)(I.AnalyseLoadingAnimationV2,{cvText:e,jdText:s,roleLine:u,executiveSummary:g,initialScore:b,revisedScore:f,onComplete:()=>{i&&l&&l()},onDocBuilt:(e,t)=>{h(e=>{let a=new Set(e);return a.add(t.name),a})}}),!o&&(0,t.jsxs)("section",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-5",children:[(0,t.jsx)("h2",{className:"text-lg font-bold text-navy",children:"Your Optimisation Pack"}),(0,t.jsx)("div",{className:"flex-1 h-px bg-slate-200"}),(0,t.jsxs)("span",{className:"text-xs text-brand-gray",children:[m.size," of ",p.length+2," ready"]})]}),(0,t.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-3",children:p.map(e=>(0,t.jsx)(B,{card:e,built:m.has(e.matchName)},e.key))}),(0,t.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-12 gap-3 mt-3",children:[(0,t.jsx)("div",{className:"lg:col-span-7",children:(0,t.jsx)(L,{built:m.has("Battle Card")})}),(0,t.jsx)("div",{className:"lg:col-span-5",children:(0,t.jsx)(O,{built:m.has("Audio Companion")})})]})]})]})}function B({card:e,built:a}){let s=e.icon;return(0,t.jsxs)("div",{className:`group relative overflow-hidden flex flex-col items-start gap-3 rounded-2xl border bg-white p-5 text-left shadow-xs transition-all duration-500 ${a?"border-slate-200 opacity-100":"border-slate-200 opacity-55"}
1`,children:[(0,t.jsx)("div",{"aria-hidden":!0,className:`pointer-events-none absolute -right-6 -bottom-6 rotate-12 text-gold transition-opacity duration-500 ${a?"opacity-[0.12]":"opacity-[0.08]"}`,children:(0,t.jsx)(s,{className:"w-[120px] h-[120px]",strokeWidth:1.25})}),(0,t.jsxs)("div",{className:"relative w-full flex items-start justify-between",children:[(0,t.jsx)("span",{className:`inline-flex items-center justify-center w-9 h-9 rounded-lg ring-1 transition-colors duration-500 ${a?"bg-gold/15 ring-gold/30 text-gold":"bg-slate-100 ring-slate-200 text-slate-400"}`,children:(0,t.jsx)(s,{className:"w-5 h-5",strokeWidth:1.75,"aria-hidden":"true"})}),(0,t.jsx)("span",{className:`text-xs font-medium transition-colors duration-500 ${a?"text-slate-400":"text-slate-300 uppercase tracking-wider"}`,children:a?"↓ .docx":"Building…"})]}),(0,t.jsx)("span",{className:`relative font-bold text-sm transition-colors duration-500 ${a?"text-navy":"text-slate-400"}`,children:e.title}),(0,t.jsx)("span",{className:`relative text-xs leading-relaxed transition-colors duration-500 ${a?"text-brand-gray":"text-slate-300"}`,children:e.description}),(0,t.jsx)("div",{className:"relative mt-auto w-full pt-2 border-t border-slate-100",children:(0,t.jsx)("span",{className:`text-xs font-semibold transition-colors duration-500 ${a?"text-gold":"text-slate-300"}`,children:a?"Download document":"Awaiting build…"})})]})}var D=e.i(68177),$=e.i(37865);let W="Senior Marketing Manager (Demand Generation)",G="Brightpath Software Ltd",H=68,F=82,V={targetRole:"Senior Marketing Manager (Demand Generation), Brightpath Software Ltd",executiveSummary:"Hannah brings a strong B2B SaaS marketing background, with hands-on experience in demand generation, marketing automation, and pipeline reporting. She has grown marketing-sourced pipeline significantly, managed paid channels, and delivered events as core demand drivers. Her experience with HubSpot, Salesforce, and GA4 is robust, and she has led a small team and managed agency partners. The main gaps are scale (team size, budget), depth of ABM, and structured experimentation/A/B testing. She is a one-step reach for this role, with evidence of readiness but will face competition from candidates with larger team/budget scope and deeper ABM or CRO experience.",tChart:[{theyWant:"Own and deliver the full-funnel demand generation strategy driving MQLs, SQLs and pipeline.",iHave:"Grew marketing-sourced pipeline from £600k to £1.4m at Cedar Financial Group; managed end-to-end marketing activity.",match:"STRONG"},{theyWant:"Build, run and optimise lead nurturing and marketing automation programmes in HubSpot.",iHave:"Managed email marketing and nurture campaigns in HubSpot for 31,000 contacts.",match:"STRONG"},{theyWant:"Keep data clean across HubSpot and Salesforce.",iHave:"Used HubSpot and Salesforce for campaign execution and reporting; no explicit mention of data hygiene.",match:"PARTIAL"},{theyWant:"Scale ABM programme across top 100 enterprise target accounts with sales.",iHave:"Trialled targeted, account-based approach for larger enterprise prospects with sales.",match:"PARTIAL"},{theyWant:"Own paid search (PPC), paid social and SEO as inbound demand channels against a cost-per-opportunity target.",iHave:"Owned paid search (Google, LinkedIn) and SEO, managed £18,000/month spend; ran paid social campaigns.",match:"STRONG"},{theyWant:"Run a programme of webinars and digital events as a core demand channel.",iHave:"Organised and hosted webinars and in-person events generating 600+ registrations annually.",match:"STRONG"},{theyWant:"Own marketing attribution and funnel reporting in GA4 and Salesforce; report marketing-sourced pipeline monthly.",iHave:"Used Salesforce and GA4 for monthly reporting to senior leadership on marketing-sourced pipeline.",match:"STRONG"},{theyWant:"Run a structured experimentation and conversion-rate-optimisation (A/B testing) programme.",iHave:"No evidence found.",match:"GAP"},{theyWant:"Own and manage the demand generation budget of around £1.2 million a year and report on ROI.",iHave:"Managed a £450,000 annual marketing budget and reported on pipeline contribution.",match:"PARTIAL"},{theyWant:"Lead, mentor and grow a team of four.",iHave:"Line-managed one marketing executive; managed agency and freelancer relationships.",match:"PARTIAL"},{theyWant:"At least 5 years in B2B marketing, minimum 2 years in a demand generation, growth or pipeline-focused role.",iHave:"6+ years in B2B marketing, 2+ years in demand generation-focused role.",match:"STRONG"},{theyWant:"Proven track record building demand generation programmes that measurably grew pipeline.",iHave:"Grew marketing-sourced pipeline from £600k to £1.4m at Cedar Financial Group.",match:"STRONG"},{theyWant:"Hands-on expertise with marketing automation (HubSpot or Marketo) and a CRM (Salesforce).",iHave:"Hands-on with HubSpot and Salesforce.",match:"STRONG"},{theyWant:"Strong analytical skills, comfort with GA4, multi-touch attribution and the MQL to SQL to pipeline funnel.",iHave:"Used GA4 and Salesforce for funnel reporting; no explicit mention of multi-touch attribution.",match:"PARTIAL"},{theyWant:"Hands-on PPC and SEO experience.",iHave:"Owned paid search (Google, LinkedIn) and SEO channels.",match:"STRONG"},{theyWant:"ABM experience targeting enterprise accounts.",iHave:"Trialled targeted, account-based approach for larger enterprise prospects.",match:"PARTIAL"},{theyWant:"Line-management experience.",iHave:"Line-managed one marketing executive.",match:"PARTIAL"},{theyWant:"Experience marketing a B2B SaaS or technology product.",iHave:"Marketing manager at Cedar Financial Group, a B2B SaaS provider.",match:"STRONG"},{theyWant:"A CIM qualification or equivalent.",iHave:"CIM Certificate in Professional Marketing.",match:"STRONG"}],atsView:{score:90,keywordsMatched:["demand generation","HubSpot","Salesforce","GA4","pipeline","paid search","paid social","SEO","account-based marketing","webinars","digital events","marketing automation","B2B SaaS","CIM"],keywordsMissing:["A/B testing","conversion-rate-optimisation","multi-touch attribution","team of four","£1.2 million budget"],formatNotes:["All sections clearly labelled.","Education and skills structured for ATS parsing.","Quantified results and named tools present.","No tables or graphics; ATS-friendly."],overallRating:"Very strong ATS match; only a few specialist keywords missing."}
1,recruiterView:{score:80,firstImpression:"Clear B2B SaaS marketing experience, strong pipeline growth, hands-on with key tools.",titleMatch:"Headline matches JD; current role is one step below.",levelMatch:"One step reach; managed one direct report, not a team of four.",topThirdAssessment:"Top third shows strong pipeline growth, HubSpot/Salesforce/GA4, paid channels, and events.",strengthsVisible:["Quantified pipeline growth","Hands-on with HubSpot, Salesforce, GA4","Owned paid channels and events","Line management and agency oversight"],redFlags:["No explicit A/B testing or CRO","Team/budget scale below JD","ABM experience is emerging, not scaled"],verdictIn10Seconds:"Strong B2B SaaS marketer with pipeline results, ready for a step up but needs to show readiness for bigger team and budget."},hiringManagerView:{score:78,levelAlignment:"Currently Marketing Manager, applying for Senior Marketing Manager; one step reach.",experienceRelevance:"Direct B2B SaaS and demand generation experience, strong pipeline and channel ownership.",achievementEvidence:"Quantified pipeline growth, database expansion, event-driven demand, paid channel management.",culturalFitIndicators:["Worked closely with sales","Owned reporting to senior leadership","Managed agency and internal relationships"],strategicFit:"Well-aligned for a growth-focused SaaS environment; will need to scale up ABM and experimentation.",overallVerdict:"Ready for a step up; strong on core requirements, but will need to address scale and experimentation gaps."},evidenceGaps:[{requirement:"Run a structured experimentation and conversion-rate-optimisation (A/B testing) programme.",severity:"HIGH",evidenceFound:"No evidence found.",recommendation:"Prepare to discuss how you would approach A/B testing and CRO, referencing analytical skills and campaign optimisation experience."},{requirement:"Lead, mentor and grow a team of four.",severity:"MEDIUM",evidenceFound:"Line-managed one marketing executive; no evidence of managing a team of four.",recommendation:"Emphasise people management experience and readiness to scale up; prepare examples of mentoring and agency management."},{requirement:"Own and manage the demand generation budget of around £1.2 million a year.",severity:"MEDIUM",evidenceFound:"Managed a £450,000 annual marketing budget.",recommendation:"Highlight budget management skills and readiness to step up to a larger budget."},{requirement:"Multi-touch attribution expertise.",severity:"LOW",evidenceFound:"Used GA4 and Salesforce for reporting; no explicit mention of multi-touch attribution.",recommendation:"Prepare to discuss attribution models and how you would implement them."},{requirement:"ABM at scale (top 100 enterprise accounts).",severity:"MEDIUM",evidenceFound:"Trialled targeted, account-based approach for larger enterprise prospects.",recommendation:"Be ready to discuss how you would scale ABM and what you learned from initial trials."}],warnings:["Do not overstate team management or budget scale.","Do not claim A/B testing or CRO experience unless you can evidence it.","Be ready to explain how you would scale up ABM and experimentation."],recommendations:["Prepare examples of analytical thinking and campaign optimisation to bridge the A/B testing gap.","Emphasise readiness to manage a larger team and budget, referencing agency and freelancer oversight.","Be specific about how you would scale ABM and implement structured experimentation."],strongestFive:[{headline:"Grew marketing-sourced pipeline by over £800k in two years.",evidence:"At Cedar Financial Group (2021–2023), increased marketing's reported contribution to the sales pipeline from £600,000 to £1.4 million."},{headline:"Expanded marketing database from 12,000 to 31,000 contacts.",evidence:"Managed HubSpot email marketing and nurture campaigns at Cedar Financial Group, growing the database by 19,000 contacts."},{headline:"Owned paid search, paid social and SEO channels with significant budget.",evidence:"Ran Google and LinkedIn ads with a monthly spend of £18,000, and managed SEO for Cedar Financial Group."},{headline:"Delivered high-performing events as a core demand channel.",evidence:"Organised and hosted webinars and in-person events generating over 600 registrations annually at Cedar Financial Group."},{headline:"Hands-on with HubSpot, Salesforce and GA4 for campaign execution and reporting.",evidence:"Used HubSpot for automation, Salesforce for pipeline reporting, and GA4 for analytics at Cedar Financial Group."}],firstThirtyDayImpact:["Deliver a full audit of current demand generation channels and pipeline contribution, as done monthly at Cedar Financial Group.","Map and segment the existing database for targeted nurture campaigns, using the approach that grew Cedar's database from 12,000 to 31,000.","Run a review of paid channel performance and event-driven lead sources, mirroring the monthly reporting process for £18,000/month spend at Cedar."],competitiveContext:{likelyCompet
1ition:["Internal promotions from existing Brightpath marketing team members","External Senior Marketing Managers from other SaaS or B2B tech firms","Candidates with ABM leadership experience at larger scale","Agency-side demand generation leads with multi-channel experience"],youStandOutOn:"You bring direct, quantified pipeline growth in a SaaS context, with hands-on ownership of HubSpot, Salesforce, and paid channels, and a proven record of scaling database and event-driven demand.",theyLikelyHave:"Competitors may have managed larger teams and budgets, deeper ABM or CRO/A/B testing experience, and more advanced attribution modelling."},companySpecificFitRead:[{priority:"Scale demand generation into a predictable, measurable pipeline machine",candidateMatch:"Grew pipeline from £600k to £1.4m at Cedar Financial Group, with monthly reporting in Salesforce and GA4.",strength:"STRONG"},{priority:"Expand account-based marketing across top 100 enterprise accounts",candidateMatch:"Trialled targeted ABM for enterprise prospects with sales at Cedar Financial Group.",strength:"MODERATE"},{priority:"Own and optimise paid channels and events as core demand drivers",candidateMatch:"Managed £18,000/month paid spend and delivered 600+ event registrations annually.",strength:"STRONGEST"},{priority:"Implement structured experimentation and CRO",candidateMatch:"No direct evidence of A/B testing or CRO; strong analytical reporting background.",strength:"WEAK"},{priority:"Lead and grow a high-performing marketing team",candidateMatch:"Line-managed one executive and managed agency partners; ready to scale up.",strength:"MODERATE"}]};var _=e.i(59230);let J=a.forwardRef(function({title:e,titleId:t,...s},n){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:n,"aria-labelledby":t},s),e?a.createElement("title",{id:t},e):null,a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}),Y=a.default.forwardRef(function(e,a){return(0,t.jsxs)("svg",{ref:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",...e,children:[(0,t.jsx)("path",{d:"M5 4.5l7 5 7-5"}),(0,t.jsx)("path",{d:"M5 9.5l7 5 7-5"}),(0,t.jsx)("path",{d:"M5 14.5l7 5 7-5"})]})}),q=["Parsing your documents…","Running T-chart analysis against the JD…","Tailoring CV content…","Generating alignment report…","Writing cover letter & interview brief…","Finalising your documents…"],U={bookmarked:{label:"Bookmarked",color:"text-slate-600",bg:"bg-slate-100",border:"border-slate-300"},applied:{label:"Applied",color:"text-blue-700",bg:"bg-blue-50",border:"border-blue-200"},interview:{label:"Interview",color:"text-amber-700",bg:"bg-amber-50",border:"border-amber-200"},offer:{label:"Offer",color:"text-green-700",bg:"bg-green-50",border:"border-green-200"},rejected:{label:"Rejected",color:"text-red-600",bg:"bg-red-50",border:"border-red-200"}};async function z(e,t){try{let t=await e.json();if(t&&"object"==typeof t){let e=t.error;if("string"==typeof e&&e.length>0)return e}}catch{}return t}function K({text:e,className:s=""}){let[n,r]=(0,a.useState)(!1),i=async()=>{try{await navigator.clipboard.writeText(e),r(!0),setTimeout(()=>r(!1),2e3)}catch{}};return(0,t.jsx)("button",{onClick:i,className:`text-xs px-2 py-1 rounded-lg border transition-all ${n?"bg-green-50 text-green-700 border-green-200":"bg-white text-brand-gray border-slate-200 hover:border-navy/30 hover:text-navy"} ${s}`,children:n?"✓ Copied":"Copy"})}function Q({icon:e,title:s,description:n,endpoint:r,result:i,ext:l="docx",savedSessionId:o}){let[d,c]=(0,a.useState)(!1),x=async()=>{c(!0);try{let e=await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...i,savedSessionId:o})});if(!e.ok)throw Error();let t=await e.blob(),a=(e.headers.get("Content-Disposition")??"").match(/filename="([^"]+)"/),s=a?.[1]??`document.${l}`,n=URL.createObjectURL(t),d=document.createElement("a");d.href=n,d.download=s,d.click(),URL.revokeObjectURL(n)}catch{alert("Download failed. Please try again.")}finally{c(!1)}};return(0,t.jsxs)("button",{onClick:x,disabled:d,className:"group relative overflow-hidden flex flex-col items-start gap-3 rounded-2xl border border-slate-200 bg-white p-5 text-left shadow-xs hover:shadow-lg hover:border-gold/50 hover:-translate-y-0.5 transition-all duration-200 disabled:opacity-60 disabled:translate-y-0",children:[(0,t.jsx)("div",{"aria-hidden":!0,
1className:"pointer-events-none absolute -right-6 -bottom-6 opacity-[0.07] rotate-12 text-gold group-hover:opacity-[0.12] transition-opacity",children:(0,t.jsx)(e,{className:"w-[120px] h-[120px]",strokeWidth:1.25})}),(0,t.jsxs)("div",{className:"relative w-full flex items-start justify-between",children:[(0,t.jsx)("span",{className:"inline-flex items-center justify-center w-9 h-9 rounded-lg bg-gold/15 ring-1 ring-gold/30 text-gold group-hover:bg-gold/25 group-hover:text-gold-dark group-hover:ring-gold/60 transition-colors",children:(0,t.jsx)(e,{className:"w-5 h-5",strokeWidth:1.75,"aria-hidden":"true"})}),(0,t.jsx)("span",{className:"text-xs text-slate-400 group-hover:text-gold font-medium transition-colors",children:d?"Fetching…":`↓ .${l}`})]}),(0,t.jsx)("span",{className:"relative font-bold text-navy text-sm",children:s}),(0,t.jsx)("span",{className:"relative text-xs text-brand-gray leading-relaxed",children:n}),(0,t.jsx)("div",{className:"relative mt-auto w-full pt-2 border-t border-slate-100",children:(0,t.jsx)("span",{className:"text-xs font-semibold text-gold group-hover:text-gold-dark transition-colors",children:d?"Please wait…":"Download document"})})]})}function Z({result:e,savedSessionId:a}){return(0,t.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-12 gap-3",children:[(0,t.jsx)("div",{className:"lg:col-span-7",children:(0,t.jsx)(X,{result:e,savedSessionId:a})}),(0,t.jsx)("div",{className:"lg:col-span-5",children:(0,t.jsx)(ee,{result:e,savedSessionId:a})})]})}function X({result:e,savedSessionId:s}){let n=(0,P.vocab)((0,E.useLocale)()),[r,i]=(0,a.useState)(!1),l=async()=>{i(!0);try{let t=await fetch("/api/generate-battle-card",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,savedSessionId:s})});if(!t.ok)throw Error();let a=await t.blob(),n=(t.headers.get("Content-Disposition")??"").match(/filename="([^"]+)"/),r=n?.[1]??"Battle_Card.docx",i=URL.createObjectURL(a),l=document.createElement("a");l.href=i,l.download=r,l.click(),URL.revokeObjectURL(i)}catch{alert("Download failed. Please try again.")}finally{i(!1)}};return(0,t.jsxs)("article",{className:"relative overflow-hidden rounded-2xl bg-linear-to-br from-navy via-navy to-navy-light text-white shadow-lg h-full flex flex-col",children:[(0,t.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-1.5 bg-gold","aria-hidden":!0}),(0,t.jsx)("div",{"aria-hidden":!0,className:"absolute -right-12 -top-12 opacity-[0.08] rotate-12 text-gold",children:(0,t.jsx)(Y,{className:"w-[240px] h-[240px]",strokeWidth:1.25})}),(0,t.jsx)("div",{className:"relative bg-gold text-navy px-5 sm:px-6 py-2.5 text-center",children:(0,t.jsx)("p",{className:"text-[11px] sm:text-xs uppercase tracking-[0.22em] font-black",children:"Print · Fold · Pocket · Walk in armed"})}),(0,t.jsxs)("div",{className:"relative flex-1 flex flex-col gap-4 p-6 sm:p-7",children:[(0,t.jsxs)("div",{className:"flex items-start gap-4",children:[(0,t.jsx)("div",{className:"shrink-0 inline-flex items-center justify-center w-14 h-14 rounded-xl bg-gold/15 ring-1 ring-gold/30 text-gold",children:(0,t.jsx)(Y,{className:"w-8 h-8",strokeWidth:1.75,"aria-hidden":"true"})}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-[10px] uppercase tracking-[0.18em] font-bold text-gold mb-1",children:"Battle Card · Day of Interview"}),(0,t.jsx)("h3",{className:"font-playfair text-3xl sm:text-4xl text-white leading-[1.05] font-bold",children:"Walk in armed."}),(0,t.jsx)("p",{className:"text-gold-light text-sm font-semibold italic mt-2",children:"Your one-page interview cheat sheet, built from your own career."})]})]}),(0,t.jsxs)("p",{className:"text-sm text-slate-200 leading-relaxed",children:["Every other interview cheat sheet on the internet is a generic template. This one isn’t. Every line is lifted directly from your own ",n.cv,", your own answers, your own evidence. Your achievements at your past employers, your numbers, the way you actually talk about your work. Read it in the lobby. Don’t take it in."]}),(0,t.jsxs)("ul",{className:"space-y-1.5 text-xs sm:text-sm text-slate-200 flex-1",children:[(0,t.jsxs)("li",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-gold shrink-0",children:"✦"}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{className:"text-white",children:"Your opening line"}),", pulled straight from your Tell Me About Yourself"]})]}),(0,t.jsxs)("li",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-gold shrink-0",children:"✦"}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{className:"text-white",children:"Your Strongest Five"}),". Hiring-case headlines from your own career."]})]}),(0,t.jsxs)("li",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-gold shrink-0",children:"✦"}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{className:"text-white",children:"Three Power Phrases"}),", calibrated to this role from your past achievements"]})]}),(0,t.jsxs)("li",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-gold shrink-0",children:"✦"}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{className:"text-white",children:"Five intelligent questions"})," to ask, anchored in this job description"]})]}),(0,t.jsxs)("li",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-gold shrink-0",children:"✦"}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{className:"text-white",children:"Your closing question"}),". The one designed to change the read of the whole interview."]})]})]}),(0,t.jsxs)("div",{className:"pt-2",children:[(0,t.jsx)("button",{type:"button",onClick:l,disabled:r,className:"w-full rounded-xl bg-gold text-navy font-bold py-3.5 px-4 text-sm shadow-lg hover:bg-gold-dark hover:shadow-xl hover:-translate-y-0.5 transition-all disabled:opacity-70 disabled:translate-y-0",children:r?"Fetching…":"Download Battle Card  ↓"}),(0,t.jsx)("p",{className:"text-[11px] text-slate-400 text-center mt-2",children:".docx · one A4 page · print, fold, pocket"})]})]})]})}function ee({result:e,savedSessionId:s}
1){let[n,r]=(0,a.useState)(!1),[i,l]=(0,a.useState)(null),[o,d]=(0,a.useState)(null),[c,x]=(0,a.useState)(s?"checking":"absent"),[m,h]=(0,a.useState)(!1),p=!!e.interviewBrief?.tellMeAboutYourself?.fullAnswer?.trim(),u=e.candidateName?.trim()||"TAILOR",g=`${u.replace(/\s+/g,"_")}_Tell_Me_About_Yourself.mp3`,b=s?`/api/audio-companion/${encodeURIComponent(s)}?download=1`:null;(0,a.useEffect)(()=>{if(!s)return void x("absent");let e=!1;return(async()=>{try{let t=await fetch(`/api/audio-companion/${encodeURIComponent(s)}`,{cache:"no-store"});if(e)return;if(!t.ok)return void x("absent");let a=await t.json();h(!!a.canRegenerate),x(a.exists?"exists":"absent")}catch{e||x("absent")}})(),()=>{e=!0}},[s]);let f=async()=>{if(p){r(!0),d(null);try{let t=await fetch("/api/generate-audio",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,savedSessionId:s})});if(!t.ok){let e=await t.json().catch(()=>({error:"Generation failed."}));throw Error(e.error||"Generation failed.")}let a=await t.blob(),n=URL.createObjectURL(a);l(n),s&&x("exists")}catch(e){d(e instanceof Error?e.message:"Generation failed.")}finally{r(!1)}}},y=i??("exists"===c&&b?b:null);return(0,t.jsxs)("article",{className:"relative overflow-hidden rounded-2xl bg-linear-to-br from-navy via-navy to-navy-light text-white shadow-lg h-full flex flex-col",children:[(0,t.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-1.5 bg-gold","aria-hidden":!0}),(0,t.jsx)("div",{"aria-hidden":!0,className:"absolute -right-10 -top-10 text-[180px] leading-none select-none opacity-[0.08] rotate-12",children:"🎧"}),(0,t.jsx)("div",{className:"relative bg-gold text-navy px-5 sm:px-6 py-2.5 text-center",children:(0,t.jsx)("p",{className:"text-[11px] sm:text-xs uppercase tracking-[0.22em] font-black",children:"Hear it · Practise it · Walk in confident"})}),(0,t.jsxs)("div",{className:"relative flex-1 flex flex-col gap-4 p-6 sm:p-7",children:[(0,t.jsxs)("div",{className:"flex items-start gap-4",children:[(0,t.jsx)("div",{className:"text-4xl sm:text-5xl drop-shadow-lg shrink-0 leading-none",children:"🎧"}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("p",{className:"text-[10px] uppercase tracking-[0.18em] font-bold text-gold mb-1",children:"Audio Companion · Listen first"}),(0,t.jsx)("h3",{className:"font-playfair text-3xl sm:text-4xl text-white leading-[1.05] font-bold",children:"Hear it read aloud."}),(0,t.jsx)("p",{className:"text-gold-light text-sm font-semibold italic mt-2",children:"Read by James, our professional voice."})]})]}),(0,t.jsx)("p",{className:"font-playfair italic text-xl sm:text-2xl text-gold text-center leading-snug py-1",children:"“Tell me about yourself.”"}),(0,t.jsx)("p",{className:"text-sm text-slate-200 leading-relaxed",children:"The question every candidate dreads, the one that decides the next 60 minutes. Hear your personalised answer read aloud by James, our professional voice. Practise the pacing on the commute. Walk in already knowing how the perfect answer to this question will sound."}),p?"checking"===c?(0,t.jsx)("div",{className:"mt-auto rounded-lg bg-white/5 border border-white/10 p-4 text-xs text-slate-300 italic text-center",children:"Checking for existing audio…"}):y?(0,t.jsxs)("div",{className:"mt-auto flex flex-col gap-3",children:[(0,t.jsx)("audio",{controls:!0,src:y,className:"w-full",style:{colorScheme:"dark"},children:"Your browser doesn’t support audio playback."}),(0,t.jsx)("a",{href:i??b??"#",download:g,className:"w-full text-center rounded-xl bg-gold text-navy font-bold py-3.5 px-4 text-sm shadow-lg hover:bg-gold-dark hover:shadow-xl hover:-translate-y-0.5 transition-all",children:"Download MP3  ↓"}),m&&(0,t.jsx)("button",{type:"button",onClick:f,disabled:n,className:"w-full rounded-xl border border-white/20 bg-white/5 hover:bg-white/10 text-white font-semibold py-2 px-4 text-xs transition-all disabled:opacity-60",children:n?"Re-generating…":"Re-generate audio"}),!i&&(0,t.jsx)("p",{className:"text-[11px] text-slate-400 text-center italic",children:"Audio kept for this session. Re-downloads are free."}),o&&(0,t.jsx)("p",{className:"text-[11px] text-red-300",children:o})]}):(0,t.jsxs)("div",{className:"mt-auto flex flex-col gap-3",children:[(0,t.jsx)("div",{className:"rounded-lg bg-amber-500/10 border border-amber-400/30 px-3 py-2.5 text-[11px] text-amber-100 italic",children:"One audio per analysis. Save the MP3 once it’s generated."}),(0,t.jsx)("button",{type:"button",onClick:f,disabled:n,className:"w-full rounded-xl bg-gold text-navy font-bold py-3.5 px-4 text-sm shadow-lg hover:bg-gold-dark hover:shadow-xl hover:-translate-y-0.5 transition-all disabled:opacity-70 disabled:translate-y-0",children:n?"Generating… (~15 seconds)":"Generate audio  ↓"}),(0,t.jsx)("p",{className:"text-[11px] text-slate-400 text-center",children:".mp3 · 60 to 90 seconds · download immediately"}),o&&(0,t.jsx)("p",{className:"text-[11px] text-red-300",children:o})]}):(0,t.jsx)("div",{className:"rounded-lg bg-white/5 border border-white/10 p-4 text-xs text-slate-300 italic leading-relaxed",children:"Audio is built from your Tell Me About Yourself answer. Run your analysis to generate one for this session."})]})]})}function et({result:e}){let a=e.tailoredCV;return(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsx)("p",{className:"text-sm text-brand-gray",children:"See exactly what TAILOR changed. The professional summary and experience bullets have been rebuilt around the role."}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"font-bold text-navy text-sm mb-3",children:"Professional Summary (Tailored)"}),(0,t.jsx)("div",{className:"rounded-xl border border-green-200 bg-green-50 p-4 space-y-2",children:a.professionalSummary.map((e,a)=>(0,t.jsxs)("div",{className:"flex gap-2 items-start",children:[(0,t.jsx)("span",{className:"text-green-600 font-bold shrink-0 mt-0.5",children:"+"}),(0,t.jsx)("p",{className:"text-sm text-brand-dark",children:e}),(0,t.jsx)(K,{text:e,className:"shrink-0 ml-auto"})]},a))})]}),a.workExperience.slice(0,3).map((e,a)=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("h3",{className:"font-bold text-navy text-sm mb-1",children:[e.jobTitle," ",(0,t.jsxs)("span",{className:"font-normal text-brand-gray",children:["@ ",e.company]})]}),(0,t.jsx)("div",{className:"rounded-xl border border-green-200 bg-green-50 p-4 space-y-2",children:e.bullets.map((e,a)=>(0,t.jsxs)("div",{className:"flex gap-2 items-start",children:[(0,t.jsx)("span",{className:"text-green-600 font-bold shrink-0 mt-0.5",children:"+"}),(0,t.jsx)("p",{className:"text-sm text-brand-dark",children:e}),(0,t.jsx)(K,{text:e,className:"shrink-0 ml-auto"})]},a))})]},a)),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"font-bold text-navy text-sm mb-3",children:"Key Competencies (Tailored)"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:a.keyCompetencies.map((e,a)=>(0,t.jsxs)("div",{className:"flex items-center gap-1 bg-navy/5 border border-navy/10 rounded-full px-3 py-1",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-navy",children:e}),(0,t.jsx)(K,{text:e})]},a))})]})]})}function ea({result:e}){let[s,n]=(0,a.useState)("idle"),[r,i]=(0,a.useState)(null),[l,o]=(0,a.useState)(""),d=async()=>{n("loading"),o("");try{let t=await fetch("/api/linkedin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json()).error);i(await t.json()),n("done")}catch(e){o(e instanceof Error?e.message:"Failed"),n("error")}};return"idle"===s?(0,t.jsxs)("div",{className:"text-center py-8 space-y-4",children:[(0,t.jsx)("div",{className:"text-4xl",children:"💼"}),(0,t.jsx)("p",{className:"text-sm text-brand-gray max-w-sm mx-auto",children:"Generate a LinkedIn headline, About section and skills list tailored to your target role, ready to copy-paste directly into your profile."}),(0,t.jsx)("button",{onClick:d,className:"px-6 py-2.5 rounded-xl bg-navy text-white text-sm font-semibold hover:bg-navy-light transition-colors",children:"Generate LinkedIn content"})]}):"loading"===s?(0,t.jsxs)("div",{className:"flex flex-col items-center gap-3 py-10",children:[(0,t.jsx)("div",{className:"w-8 h-8 rounded-full border-4 border-navy border-t-gold animate-spin"}),(0,t.jsx)("p",{className:"text-sm text-brand-gray",children:"Crafting your LinkedIn profile…"})]}):"error"===s?(0,t.jsx)("div",{className:"rounded-xl bg-red-50 border border-red-200 p-4 text-sm text-red-700",children:l}):r?(0,t.jsxs)("div",{className:"space-y-5",children:[(0,t.jsxs)("div",{className:"rounded-xl border border-slate-200 bg-white p-4 shadow-xs",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsx)("p",{className:"text-xs font-bold text-navy uppercase tracking-wide",children:"Headline"}),(0,t.jsx)(K,{text:r.headline})]}),(0,t.jsx)("p",{className:"text-sm font-semibold text-brand-dark",children:r.headline}),(0,t.jsxs)("p",{className:"text-xs text-brand-gray mt-1",children:[r.headline.length,"/220 characters"]})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-slate-200 bg-white p-4 shadow-xs",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsx)("p",{className:"text-xs font-bold text-navy uppercase tracking-wide",children:"About Section"}),(0,t.jsx)(K,{text:r.about})]}),(0,t.jsx)("p",{className:"text-sm text-brand-dark whitespace-pre-line leading-relaxed",children:r.about}),(0,t.jsxs)("p",{className:"text-xs text-brand-gray mt-2",children:[r.about.length,"/2,000 characters"]})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-slate-200 bg-white p-4 shadow-xs",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsxs)("p",{className:"text-xs font-bold text-navy uppercase tracking-wide",children:["Skills (",r.skills.length,")"]}),(0,t.jsx)(K,{text:r.skills.join(", ")})]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:r.skills.map((e,a)=>(0,t.jsx)("span",{className:"bg-slate-50 border border-slate-200 text-brand-slate text-xs font-medium px-2.5 py-1 rounded-full",children:e},a))})]}),(0,t.jsxs)("div",{className:"rounded-xl bg-gold-light border border-gold/30 p-4",children:[(0,t.jsx)("p",{className:"text-xs font-bold text-navy mb-1 uppercase tracking-wide",children:"Featured Section Tip"}),(0,t.jsx)("p",{className:"text-sm text-brand-dark",children:r.featuredNote})]}),(0,t.jsx)("button",{onClick:()=>n("idle"),className:"text-xs text-brand-gray hover:text-navy underline underline-offset-2",children:"Regenerate"})]}):null}function es({result:e}){let s,n=e.interviewBrief.likelyQuestions,[r,i]=(0,a.useState)(0),[l,o]=(0,a.useState)(""),[d,c]=(0,a.useState)(null),[x,m]=(0,a.useState)(!1),[h,p]=(0,a.useState)(""),[u,g]=(0,a.useState)(!1),b=n[r],f=async()=>
1{if(l.trim()){m(!0),c(null),p(""),g(!1);try{let t=await fetch("/api/practice",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({question:b.question,questionType:b.type,suggestedAnswer:b.suggestedAnswer,keyPoints:b.keyPoints,userAnswer:l,jobTitle:e.targetJobTitle})});if(!t.ok)throw Error((await t.json()).error);c(await t.json())}catch(e){p(e instanceof Error?e.message:"Evaluation failed")}finally{m(!1)}}};return(0,t.jsxs)("div",{className:"space-y-5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsxs)("span",{className:"text-xs text-brand-gray",children:["Question ",r+1," of ",n.length]}),(0,t.jsx)("div",{className:"flex-1 bg-slate-100 rounded-full h-1.5",children:(0,t.jsx)("div",{className:"bg-navy h-1.5 rounded-full transition-all",style:{width:`${(r+1)/n.length*100}%`}})}),(0,t.jsx)("span",{className:"text-xs font-semibold text-navy bg-navy/5 px-2 py-0.5 rounded-full",children:b.type})]}),(0,t.jsx)("div",{className:"rounded-xl bg-navy text-white p-5",children:(0,t.jsx)("p",{className:"text-sm font-semibold leading-relaxed",children:b.question})}),(0,t.jsxs)("details",{className:"text-xs text-brand-gray",children:[(0,t.jsx)("summary",{className:"cursor-pointer hover:text-navy font-medium",children:"Show key points to cover"}),(0,t.jsx)("ul",{className:"mt-2 space-y-1 pl-3",children:b.keyPoints.map((e,a)=>(0,t.jsxs)("li",{children:["• ",e]},a))})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-bold text-navy uppercase tracking-wide block mb-2",children:"Your Answer"}),(0,t.jsx)("textarea",{value:l,onChange:e=>o(e.target.value),placeholder:"Type your answer here… aim for 90–150 words",className:"w-full min-h-[140px] resize-y rounded-xl border border-slate-200 bg-white p-4 text-sm text-brand-dark focus:outline-hidden focus:ring-2 focus:ring-navy/30 font-sans leading-relaxed shadow-xs"}),(0,t.jsxs)("div",{className:"flex items-center justify-between mt-1",children:[(0,t.jsxs)("span",{className:"text-xs text-brand-gray",children:[l.trim().split(/\s+/).filter(Boolean).length," words"]}),(0,t.jsx)("button",{onClick:f,disabled:x||!l.trim(),className:"px-5 py-2 rounded-xl bg-gold text-navy text-sm font-bold hover:bg-gold-dark disabled:opacity-40 transition-colors",children:x?"Evaluating…":"Get Feedback →"})]})]}),h&&(0,t.jsx)("div",{className:"rounded-xl bg-red-50 border border-red-200 p-3 text-sm text-red-700",children:h}),d&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"rounded-xl border border-slate-200 bg-white p-5 shadow-xs",children:[(0,t.jsxs)("div",{className:"flex items-center gap-4 mb-4",children:[(0,t.jsxs)("div",{className:`text-3xl font-black ${(s=d.score)>=80?"text-green-700":s>=60?"text-amber-700":"text-red-600"}`,children:[d.score,(0,t.jsx)("span",{className:"text-lg",children:"/100"})]}),(0,t.jsx)("p",{className:"text-sm text-brand-dark flex-1",children:d.overallFeedback})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[d.strengths.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-xs font-bold text-green-700 uppercase tracking-wide mb-2",children:"Strengths"}),(0,t.jsx)("ul",{className:"space-y-1",children:d.strengths.map((e,a)=>(0,t.jsxs)("li",{className:"text-xs text-brand-dark flex gap-1.5",children:[(0,t.jsx)("span",{className:"text-green-500",children:"✓"}),e]},a))})]}),d.improvements.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-xs font-bold text-amber-700 uppercase tracking-wide mb-2",children:"Improve"}),(0,t.jsx)("ul",{className:"space-y-1",children:d.improvements.map((e,a)=>(0,t.jsxs)("li",{className:"text-xs text-brand-dark flex gap-1.5",children:[(0,t.jsx)("span",{className:"text-amber-500",children:"↑"}),e]},a))})]})]}),d.missedKeyPoints.length>0&&(0,t.jsxs)("div",{className:"mt-4 p-3 rounded-lg bg-red-50 border border-red-100",children:[(0,t.jsx)("p",{className:"text-xs font-bold text-red-700 uppercase tracking-wide mb-1",children:"Key Points Missed"}),(0,t.jsx)("ul",{className:"space-y-1",children:d.missedKeyPoints.map((e,a)=>(0,t.jsxs)("li",{className:"text-xs text-red-700",children:["• ",e]},a))})]})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-navy/10 bg-navy/5 p-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,t.jsx)("p",{className:"text-xs font-bold text-navy uppercase tracking-wide",children:"Model Answer"}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(K,{text:d.modelAnswer}),(0,t.jsx)("button",{onClick:()=>g(e=>!e),className:"text-xs text-brand-gray hover:text-navy underline underline-offset-2",children:u?"Hide":"Show"})]})]}),u&&(0,t.jsx)("p",{className:"text-sm text-brand-dark leading-relaxed",children:d.modelAnswer})]}),(0,t.jsxs)("div",{className:"flex gap-3 justify-between",children:[(0,t.jsx)("button",{onClick:()=>{c(null),o("")},className:"text-xs text-brand-gray hover:text-navy underline underline-offset-2",children:"Try again"}),(0,t.jsx)("button",{onClick:()=>{i(e=>(e+1)%n.length),o(""),c(null),p(""),g(!1)},className:"px-4 py-2 rounded-xl bg-navy text-white text-sm font-semibold hover:bg-navy-light transition-colors",children:"Next question →"})]})]})]})}function en({result:e}){let[s,n]=(0,a.useState)("thankyou"),[r,i]=(0,a.useState)(null),[l,o]=(0,a.useState)(!1),[d,c]=(0,a.useState)(""),[x,m]=(0,a.useState)(!1),[h,p]=(0,a.useState)(null),[u,g]=(0,a.useState)(!1),[b,f]=(0,a.useState)(""),y=async()=>{o(!0),i(null),c(""),m(!1);try{let t=await fetch("/api/followup-email",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,emailType:s})});if(!t.ok)throw Error((await t.json()).error);i(await t.json())}catch(e){c(e instanceof Error?e.message:"Failed")}finally{o(!1)}},v=async()=>{g(!0),p(null),f("");try{let t=await fetch("/api/salary-benchmark",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error((await t.json()).error);p(await t.json())}catch(e){f(e instanceof Error?e.message:"Failed")}finally{g(!1)}},j=r?[r.subject,"",r.greeting,"",...r.paragraphs,"",r.closing,r.signature].join("\n"):"",w=async()=>{try{await navigator.clipboard.writeText(j),m(!0),setTimeout(()=>m(!1),2500)}catch{}},N=e=>
1`\xa3${e.toLocaleString("en-GB")}`;return(0,t.jsxs)("div",{className:"space-y-8",children:[(0,t.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white shadow-xs p-6 space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-base font-bold text-navy mb-1",children:"Follow-up Email"}),(0,t.jsx)("p",{className:"text-xs text-brand-gray",children:"Generate a tailored email for after your interview. Edit the placeholder before sending."})]}),(0,t.jsx)("div",{className:"flex rounded-lg overflow-hidden border border-slate-200 text-xs w-full sm:w-auto",children:["thankyou","chaser"].map(e=>(0,t.jsx)("button",{onClick:()=>{n(e),i(null)},className:`flex-1 sm:flex-none sm:px-6 py-2.5 font-medium transition-colors whitespace-nowrap ${s===e?"bg-navy text-white font-semibold":"bg-white text-brand-gray hover:bg-slate-50"}`,children:"thankyou"===e?"Thank You":"Decision Chaser"},e))}),(0,t.jsx)("button",{onClick:y,disabled:l,className:"px-5 py-2.5 rounded-xl bg-gold text-navy text-sm font-bold hover:bg-gold-dark disabled:opacity-40 transition-colors",children:l?"Generating…":"Generate Email →"}),d&&(0,t.jsx)("p",{className:"text-sm text-red-600",children:d}),r&&(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"rounded-xl border border-slate-200 bg-slate-50 p-5 space-y-3 text-sm text-brand-dark font-sans leading-relaxed",children:[(0,t.jsxs)("p",{className:"text-xs font-bold text-navy uppercase tracking-wide",children:["Subject: ",(0,t.jsx)("span",{className:"font-normal normal-case text-brand-dark",children:r.subject})]}),(0,t.jsx)("hr",{className:"border-slate-200"}),(0,t.jsx)("p",{children:r.greeting}),r.paragraphs.map((e,a)=>(0,t.jsx)("p",{children:e},a)),(0,t.jsx)("p",{children:r.closing}),(0,t.jsx)("p",{className:"font-semibold",children:r.signature})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("button",{onClick:w,className:`text-xs px-3 py-1.5 rounded-lg border font-medium transition-all ${x?"bg-green-50 text-green-700 border-green-200":"bg-white text-brand-gray border-slate-200 hover:border-navy/30 hover:text-navy"}`,children:x?"✓ Copied to clipboard":"Copy email"}),(0,t.jsx)("p",{className:"text-xs text-brand-gray italic",children:"Replace [Interviewer Name] before sending."})]})]})]}),(0,t.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white shadow-xs p-6 space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-base font-bold text-navy mb-1",children:"Salary Benchmark"}),(0,t.jsxs)("p",{className:"text-xs text-brand-gray",children:["AI estimate for ",(0,t.jsx)("span",{className:"font-semibold",children:e.targetJobTitle}),". Verify with the sources listed below before negotiating."]})]}),(0,t.jsx)("button",{onClick:v,disabled:u,className:"px-5 py-2.5 rounded-xl bg-navy text-white text-sm font-bold hover:bg-navy/90 disabled:opacity-40 transition-colors",children:u?"Benchmarking…":"Get Salary Estimate →"}),b&&(0,t.jsx)("p",{className:"text-sm text-red-600",children:b}),h&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"rounded-xl border border-slate-200 bg-slate-50 p-5",children:[(0,t.jsxs)("div",{className:"flex items-end justify-between gap-2 mb-3",children:[(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("p",{className:"text-xs text-brand-gray mb-1",children:"Lower"}),(0,t.jsx)("p",{className:"text-lg font-bold text-brand-dark",children:N(h.low)})]}),(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("p",{className:"text-xs font-bold text-navy mb-1",children:"Midpoint"}),(0,t.jsx)("p",{className:"text-2xl font-black text-navy",children:N(h.mid)})]}),(0,t.jsxs)("div",{className:"text-center",children:[(0,t.jsx)("p",{className:"text-xs text-brand-gray mb-1",children:"Upper"}),(0,t.jsx)("p",{className:"text-lg font-bold text-brand-dark",children:N(h.high)})]})]}),(0,t.jsx)("div",{className:"w-full h-2 rounded-full bg-slate-200 overflow-hidden",children:(0,t.jsx)("div",{className:"h-2 rounded-full bg-linear-to-r from-brand-blue via-navy to-gold",style:{width:"100%"}})}),(0,t.jsx)("p",{className:"text-xs text-brand-gray mt-3 leading-relaxed",children:h.rationale})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-xs font-bold text-navy uppercase tracking-wide mb-2",children:"Factors affecting this range"}),(0,t.jsx)("ul",{className:"space-y-1",children:h.factors.map((e,a)=>(0,t.jsxs)("li",{className:"text-xs text-brand-dark flex gap-2",children:[(0,t.jsx)("span",{className:"text-slate-400",children:"•"}),e]},a))})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-amber-200 bg-amber-50 p-4 space-y-2",children:[(0,t.jsx)("p",{className:"text-xs font-bold text-amber-800",children:"⚠️ AI estimate only. Verify before negotiating"}),(0,t.jsx)("p",{className:"text-xs text-amber-700",children:"Cross-reference with these sources:"}),(0,t.jsx)("ul",{className:"space-y-1",children:h.sources.map((e,a)=>(0,t.jsxs)("li",{className:"text-xs text-amber-800 flex gap-2",children:[(0,t.jsx)("span",{children:"→"}),e]},a))})]})]})]})]})}function er({result:e}){let[s,n]=(0,a.useState)("gaps"),r=e.alignmentReport.supplementaryEvidence,i=[...r&&(r.used?.length||r.unverified?.length)?[{key:"supplementary",label:"What we did with your notes",count:(r.used?.length??0)+(r.unverified?.length??0),badgeColor:"bg-blue-100 text-blue-700",content:(0,t.jsxs)("div",{className:"space-y-4",children:[!!r.used?.length&&(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"text-xs font-bold text-green-700 mb-2 uppercase tracking-wide",children:["Used in your ","CV"]}),(0,t.jsx)("ul",{className:"space-y-2",children:r.used.map((e,a)=>(0,t.jsxs)("li",{className:"flex gap-3 text-sm text-brand-dark bg-green-50 rounded-lg p-3 border border-green-100",children:[(0,t.jsx)("span",{className:"text-green-600 shrink-0 font-bold",children:"✓"}),(0,t.jsx)("span",{children:e})]},a))})]}),!!r.unverified?.length&&(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-xs font-bold text-amber-700 mb-2 uppercase tracking-wide",children:"Couldn’t use yet"}),(0,t.jsx)("ul",{className:"space-y-2",children:r.unverified.map((e,a)=>(0,t.jsxs)("li",{className:"flex gap-3 text-sm text-brand-dark bg-amber-50 rounded-lg p-3 border border-amber-100",children:[(0,t.jsx)("span",{className:"text-amber-500 shrink-0 font-bold",children:"?"}),(0,t.jsx)("span",{children:e})]},a))}),(0,t.jsx)("p",{className:"text-[11px] text-brand-gray mt-2",children:"We only write in what you could defend in an interview. Add the detail above and re-run to include it."})]})]})}]:[],{key:"gaps",label:"Evidence Gaps",count:e.alignmentReport.evidenceGa
1ps.length,badgeColor:"bg-red-100 text-red-700",content:(0,t.jsx)("ul",{className:"space-y-3",children:e.alignmentReport.evidenceGaps.map((e,a)=>(0,t.jsx)("li",{className:"rounded-xl bg-slate-50 border border-slate-100 p-4",children:(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("span",{className:`text-xs font-bold px-2 py-1 rounded-lg shrink-0 ${"HIGH"===e.severity?"bg-red-100 text-red-700":"MEDIUM"===e.severity?"bg-amber-100 text-amber-700":"bg-green-100 text-green-700"}`,children:e.severity}),(0,t.jsxs)("div",{className:"space-y-1 flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-semibold text-navy",children:e.requirement}),(0,t.jsx)("p",{className:"text-xs text-brand-gray",children:e.evidenceFound}),(0,t.jsx)("p",{className:"text-xs text-brand-blue font-medium",children:e.recommendation})]})]})},a))})},{key:"warnings",label:"Warnings",count:e.alignmentReport.warnings.length,badgeColor:"bg-amber-100 text-amber-700",content:(0,t.jsx)("ul",{className:"space-y-2",children:e.alignmentReport.warnings.map((e,a)=>(0,t.jsxs)("li",{className:"flex gap-3 text-sm text-brand-dark bg-amber-50 rounded-lg p-3 border border-amber-100",children:[(0,t.jsx)("span",{className:"text-amber-500 shrink-0 font-bold",children:"⚠"}),(0,t.jsx)("span",{children:e})]},a))})},{key:"ats",label:"ATS Keywords",count:null,badgeColor:"",content:(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-xs font-bold text-green-700 mb-2 uppercase tracking-wide",children:"Potential match"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.alignmentReport.atsView.keywordsMatched.map((e,a)=>(0,t.jsx)("span",{className:"bg-green-50 text-green-700 text-xs px-2.5 py-1 rounded-full border border-green-200 font-medium",children:e},a))})]}),e.alignmentReport.atsView.keywordsMissing.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-xs font-bold text-red-600 mb-2 uppercase tracking-wide",children:"Missing / Weak"}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.alignmentReport.atsView.keywordsMissing.map((e,a)=>(0,t.jsx)("span",{className:"bg-red-50 text-red-600 text-xs px-2.5 py-1 rounded-full border border-red-200 font-medium",children:e},a))})]})]})},{key:"tchart",label:"T-Chart Analysis",count:null,badgeColor:"",content:(0,t.jsx)("div",{className:"overflow-x-auto rounded-xl border border-slate-200",children:(0,t.jsxs)("table",{className:"w-full text-xs",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"bg-navy text-white",children:[(0,t.jsx)("th",{className:"text-left p-3 font-semibold",children:"JD Requirement"}),(0,t.jsx)("th",{className:"text-left p-3 font-semibold",children:"Your Evidence"}),(0,t.jsx)("th",{className:"text-left p-3 font-semibold",children:"Match"})]})}),(0,t.jsx)("tbody",{children:e.alignmentReport.tChart.map((e,a)=>(0,t.jsxs)("tr",{className:a%2==0?"bg-white":"bg-slate-50",children:[(0,t.jsx)("td",{className:"p-3 text-brand-slate font-medium",children:e.theyWant}),(0,t.jsx)("td",{className:"p-3 text-brand-gray",children:e.iHave}),(0,t.jsx)("td",{className:"p-3",children:(0,t.jsx)("span",{className:`font-bold text-xs px-2 py-1 rounded-lg ${"STRONG"===e.match?"bg-green-100 text-green-700":"PARTIAL"===e.match?"bg-amber-100 text-amber-700":"bg-red-100 text-red-700"}`,children:e.match})})]},a))})]})})}];return(0,t.jsx)("div",{className:"space-y-2",children:i.map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-slate-200 bg-white overflow-hidden shadow-xs",children:[(0,t.jsxs)("button",{onClick:()=>{let t;return t=e.key,n(e=>e===t?null:t)},className:"flex w-full items-center justify-between px-5 py-4 text-left hover:bg-slate-50 transition-colors",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("span",{className:"font-semibold text-navy text-sm",children:e.label}),null!=e.count&&(0,t.jsx)("span",{className:`text-xs font-bold px-2 py-0.5 rounded-full ${e.badgeColor}`,children:e.count})]}),(0,t.jsx)("span",{className:`text-lg transition-transform ${s===e.key?"rotate-45":""} text-brand-gray`,children:"+"})]}),s===e.key&&(0,t.jsx)("div",{className:"border-t border-slate-100 p-5",children:e.content})]},e.key))})}function ei({subscription:e,isAdmin:a,bypassBilling:s,compTrial:n}){if(n){let{cap:e,remaining:a}=n;return(0,t.jsxs)("div",{className:`rounded-xl border px-4 py-2.5 text-xs font-semibold flex items-center gap-2 ${a<=0?"border-red-200 bg-red-50 text-red-800":(e>0?a/e:0)<=.34?"border-amber-200 bg-amber-50 text-amber-800":"border-emerald-200 bg-emerald-50 text-emerald-800"}`,children:[(0,t.jsx)("span",{"aria-hidden":"true",children:a<=0?"•":"✓"}),a>0?`Trial access: ${a} of ${e} session${1===e?"":"s"} left.`:"Trial used up. Subscribe to keep tailoring applications."]})}if(a||s)return(0,t.jsxs)("div",{className:"rounded-xl border border-emerald-200 bg-emerald-50 px-4 py-2.5 text-xs font-semibold text-emerald-800 flex items-center gap-2",children:[(0,t.jsx)("span",{"aria-hidden":"true",children:"✓"}),"Unmetered access (",a?"admin":"comp'd","). Caps don't apply to you."]});if(!e.isActive||null===e.cap)return null;let r=e.cap,i=e.remaining??0,l=e.used,o=e.tier,d=0===i,c=Math.max(1,Math.ceil(.2*r)),x=(()=>
1{if(("weekly"===o||"until_hired"===o)&&e.periodEnd){let t=new Date(e.periodEnd).toLocaleDateString("en-GB",{day:"numeric",month:"short"});return e.cancelAtPeriodEnd?`Plan ends ${t}`:`Renews ${t}`}return"pack"===o?"No expiry · one-off purchase":null})();return(0,t.jsxs)("div",{className:`rounded-xl border px-4 py-3 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 text-sm ${d?"border-red-300 bg-red-50 text-red-900":!d&&i<=c?"border-amber-300 bg-amber-50 text-amber-900":"border-slate-200 bg-white text-brand-dark"}`,role:"status","aria-live":"polite",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-baseline gap-x-2 gap-y-0.5",children:[(0,t.jsx)("span",{className:"font-semibold",children:d?`Cap reached, 0 of ${r} analyses remaining`:`${i} of ${r} ${1===i?"analysis":"analyses"} remaining`}),(0,t.jsxs)("span",{className:"text-xs opacity-75",children:["(","weekly"===o?"Weekly":"pack"===o?"Job Hunt Pack":"until_hired"===o?"Until Hired":"Subscription",l>0?` \xb7 ${l} used so far`:"",")"]})]}),x&&(0,t.jsx)("span",{className:"text-xs opacity-75",children:x})]})}function el({result:e,jdText:s,triggeredViaExtension:n,onSaved:r,autoSave:i}){let l=`${e.targetJobTitle}${e.targetCompany?` \xb7 ${e.targetCompany}`:""}`,[o,d]=(0,a.useState)(l),[c,x]=(0,a.useState)(!1),[m,h]=(0,a.useState)(!1),[p,u]=(0,a.useState)(!1),g=(0,a.useRef)(!1),b=async t=>{x(!0);try{let t=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({analysis:e,label:o,jobDescription:s??null,triggeredViaExtension:n??!1})});if(!t.ok)throw Error();let a=await t.json();h(!0),r(a)}catch{t?.auto?u(!0):alert("Could not save session. Please try again.")}finally{x(!1)}};return((0,a.useEffect)(()=>{!i||g.current||m||(g.current=!0,b({auto:!0}))},[i]),m)?(0,t.jsxs)("div",{className:"flex items-center gap-2 text-green-700 text-sm font-semibold",children:[(0,t.jsx)("span",{className:"w-5 h-5 rounded-full bg-green-100 flex items-center justify-center text-xs",children:"✓"}),"Saved to your board. Find it any time in Saved Sessions."]}):i&&!p?(0,t.jsxs)("div",{className:"flex items-center gap-2 text-brand-gray text-sm",children:[(0,t.jsx)("span",{className:"w-4 h-4 rounded-full border-2 border-navy/30 border-t-navy animate-spin","aria-hidden":"true"}),"Saving to your board…"]}):(0,t.jsxs)("div",{className:"flex items-center gap-3 flex-wrap",children:[(0,t.jsx)("input",{type:"text",value:o,onChange:e=>d(e.target.value),placeholder:"Session label…",className:"flex-1 min-w-[200px] rounded-xl border border-slate-200 bg-white px-4 py-2.5 text-sm text-brand-dark focus:outline-hidden focus:ring-2 focus:ring-navy/30 shadow-xs"}),(0,t.jsx)("button",{onClick:()=>b(),disabled:c||!o.trim(),className:"px-5 py-2.5 rounded-xl bg-navy text-white text-sm font-semibold hover:bg-navy-light disabled:opacity-50 transition-colors shadow-xs",children:c?"Saving…":"Save session"})]})}function eo({sessionId:e}){let[s,n]=(0,a.useState)("idle");if(!e)return null;let r=async()=>{n("loading");try{let t=await fetch(`/api/sessions/${e}/share`,{method:"POST"});if(!t.ok)throw Error();let{token:a}=await t.json(),s=`${window.location.origin}/share/${a}`;await navigator.clipboard.writeText(s),n("copied"),setTimeout(()=>n("idle"),3e3)}catch{n("idle"),alert("Could not generate share link.")}};return(0,t.jsx)("button",{onClick:r,disabled:"idle"!==s,className:`flex items-center gap-2 px-4 py-2 rounded-xl border text-sm font-semibold transition-all ${"copied"===s?"border-green-200 bg-green-50 text-green-700":"border-slate-200 bg-white text-navy hover:border-navy/40 hover:bg-slate-50"}`,children:"loading"===s?"⏳ Generating…":"copied"===s?"✓ Link copied!":"🔗 Share session"})}function ed({result:e,jdText:s,savedJobDescription:n,triggeredViaExtension:r,onSaved:i,onReset:l,fromSession:o,sessionId:d,isLoggedIn:c}){let[x,m]=(0,a.useState)("overview"),h=(0,P.vocab)((0,E.useLocale)());(0,a.useEffect)(()=>{if(o||d)return;let e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[o,d]);let p=[{icon:N.DocumentTextIcon,title:`${h.optimised.charAt(0).toUpperCase()}${h.optimised.slice(1)} ${h.CV}`,endpoint:"/api/generate-cv",ext:"docx",description:"Keyword-aligned, results-led. Times New Roman, max 2 pages A4."},{icon:k.ChartBarSquareIcon,title:"Alignment Report",endpoint:"/api/generate-report",ext:"docx",description:"T-chart, ATS score, recruiter verdict, hiring manager view, evidence gaps."},{icon:S.EnvelopeIcon,title:"Cover Letter",endpoint:"/api/generate-cover-letter",ext:"docx",description:"Addresses evidence gaps directly, mirrors JD language."},{icon:C.ChatBubbleLeftRightIcon,title:"Strategic Interview Briefing",endpoint:"/api/generate-interview-brief",ext:"docx",description:"Presence in the Room, Power Phrases, the three things this interviewer cares about, six signature stories in STAR + CAR format."},{icon:A.BuildingOffice2Icon,title:"Company / Org Research",endpoint:"/api/generate-company-research",ext:"docx",description:"AI-generated company snapshot: overview, culture, key people and interview intelligence."},{icon:T.CalendarDaysIcon,title:"30, 60, 90 Day Implementation Plan",endpoint:"/api/generate-90day-plan",ext:"docx",description:"Executive summary, stakeholder map, three phases each with milestones and challenges to navigate, risk register, resource ask, 6 + 12 month horizon."}],u=p.length+1,g=!o&&!d;return(0,t.jsxs)("div",{className:"space-y-8",children:[g&&(0,t.jsxs)("section",{role:"alert",className:"rounded-2xl border border-amber-300 bg-amber-50 px-5 py-3 flex items-start sm:items-center gap-3 text-amber-900",children:[(0,t.jsx)("span",{"aria-hidden":"true",className:"text-lg leading-none",children:"⚠️"}),(0,t.jsxs)("p",{className:"text-sm leading-snug flex-1",children:[(0,t.jsx)("span",{className:"font-semibold",children:"This analysis isn't saved yet."})," ","Scroll down and click ",(0,t.jsx)("em",{children:"Save session"})," ","before leaving this page, otherwise should you wish to re-run this analysis, it will consume an additional analysis credit."]})]}),(0,t.jsxs)("section",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-5",children:[(0,t.jsx)("h2",{className:"text-lg font-bold text-navy",children:"Your documents"}),(0,t.jsx)("div",{className:"flex-1 h-px bg-slate-200"}),(0,t.jsxs)("span",{className:"text-xs text-brand-gray",children:[u," documents ready"]})]}),(0,t.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-3",children:p.map(a=>(0,t.jsx)(Q,{...a,result:e,savedSessionId:d},a.endpoint))}),(0,t.jsx)("div",{className:"mt-3",children:(0,t.jsx)(Z,{result:e,savedSessionId:d})})]}),!o&&(0,t.jsx)(w,{}),!o&&(0,t.jsxs)("section",{className:"rounded-2xl border border-gold/30 bg-gold-light p-5 flex flex-col sm:flex-row items-start sm:items-center gap-4",children:[(0,t.jsx)("div",{className:"shrink-0",children:(0,t.jsx)("div",{className:"w-10 h-10 rounded-xl bg-gold/20 flex items-center justify-center text-xl",children:"📁"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("p",{className:"text-sm font-semibold text-navy mb-1",children:c?"Saved to your board":"Save this session"}),(0,t.jsx)("p",{className:"text-xs text-brand-gray mb-3",children:"Revisit before your interview. All documents can be re-downloaded any time."}),(0,t.jsx)(el,{result:e,jdText:s,triggeredViaExtension:r,onSaved:i,autoSave:c}
1)]})]}),o&&d&&(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(eo,{sessionId:d})}),o&&(0,t.jsx)("section",{className:"rounded-2xl border border-slate-200 bg-white p-5",children:(0,t.jsxs)("details",{open:!1,children:[(0,t.jsxs)("summary",{className:"cursor-pointer text-sm font-bold text-navy select-none",children:["Job description",(0,t.jsxs)("span",{className:"ml-2 text-xs font-normal text-brand-gray",children:["(the JD this ",h.CV," was tailored to)"]})]}),(0,t.jsx)("div",{className:"mt-3 text-sm text-brand-slate whitespace-pre-wrap leading-relaxed",children:n||(0,t.jsx)("span",{className:"text-slate-400 italic",children:"This session was saved before we started storing the job description on each bundle. JDs are saved automatically from now on, so any new session you save will show its full JD here."})})]})}),(0,t.jsxs)("section",{children:[(0,t.jsx)("div",{className:"flex gap-1 bg-slate-100 rounded-xl p-1 mb-5 flex-wrap",children:[["overview","Overview"],["diff","What Changed"],["linkedin","LinkedIn"],["practice","Practice Interview"],["postinterview","Post-Interview"]].map(([e,a])=>(0,t.jsx)("button",{onClick:()=>m(e),className:`px-4 py-2 rounded-lg text-sm font-semibold transition-all flex-1 ${x===e?"bg-white text-navy shadow-xs":"text-brand-gray hover:text-navy"}`,children:a},e))}),"overview"===x&&(0,t.jsx)(er,{result:e}),"diff"===x&&(0,t.jsx)(et,{result:e}),"linkedin"===x&&(0,t.jsx)(ea,{result:e}),"practice"===x&&(0,t.jsx)(es,{result:e}),"postinterview"===x&&(0,t.jsx)(en,{result:e})]}),(0,t.jsx)("div",{className:"flex justify-center pt-2",children:(0,t.jsx)("button",{onClick:l,className:"text-sm text-brand-gray hover:text-navy underline underline-offset-2 transition-colors",children:o?"← Back to sessions":"Start a new analysis"})})]})}function ec({session:e,onLoad:s,onDelete:n,onRename:r,onStatusChange:i}){let[l,o]=(0,a.useState)(!1),[d,c]=(0,a.useState)(e.label),[x,m]=(0,a.useState)(!1),h=e=>e>=75?"text-green-700 bg-green-50 border-green-200":e>=55?"text-amber-700 bg-amber-50 border-amber-200":"text-red-700 bg-red-50 border-red-200",p=new Date(e.createdAt).toLocaleDateString("en-GB",{day:"numeric",month:"short",year:"numeric"}),u=async()=>{if(!d.trim())return;let t=await fetch(`/api/sessions/${e.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({label:d})});t.ok?(r(e.id,d),o(!1)):alert(await z(t,"Could not rename this session. Please try again."))},g=async()=>{confirm("⚠️ Permanently delete this session?\n\nDeleting will permanently remove this saved session and all its analysis from your account. This cannot be undone.\n\nIf you no longer want to pursue this role, consider marking it as Rejected instead so you keep a record of your application history.\n\nClick OK to confirm deletion, or Cancel to keep this session.")&&(m(!0),(await fetch(`/api/sessions/${e.id}`,{method:"DELETE"})).ok?n(e.id):m(!1))},b=e.status??"bookmarked",f=U[b];return(0,t.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-xs hover:shadow-md hover:border-navy/20 transition-all flex flex-col gap-3",children:[l?(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("input",{autoFocus:!0,value:d,onChange:e=>c(e.target.value),onKeyDown:t=>{"Enter"===t.key&&u(),"Escape"===t.key&&(c(e.label),o(!1))},className:"flex-1 rounded-lg border border-slate-200 px-3 py-1.5 text-sm focus:outline-hidden focus:ring-2 focus:ring-navy/30"}),(0,t.jsx)("button",{onClick:u,className:"text-xs font-bold text-navy hover:underline",children:"Save"}),(0,t.jsx)("button",{onClick:()=>{c(e.label),o(!1)},className:"text-xs text-brand-gray hover:underline",children:"Cancel"})]}):(0,t.jsx)("button",{onClick:()=>o(!0),className:"text-sm font-bold text-navy text-left w-full hover:text-brand-blue transition-colors leading-snug",children:e.label}),(0,t.jsx)("p",{className:"text-xs text-brand-gray -mt-2",children:p}),(0,t.jsx)("select",{value:b,onChange:t=>{var a;return a=t.target.value,void i(e.id,a)},className:`text-xs font-semibold rounded-lg px-2 py-1 border cursor-pointer ${f.color} ${f.bg} ${f.border} w-fit`,children:Object.entries(U).map(([e,a])=>(0,t.jsx)("option",{value:e,children:a.label},e))}),(e.appliedAt||e.interviewAt)&&(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5 -mt-1",children:[e.appliedAt&&(0,t.jsxs)("span",{className:"text-[11px] font-medium text-brand-slate bg-slate-50 border border-slate-200 rounded-full px-2 py-0.5",children:["Applied ",eh(e.appliedAt)]}
1),e.interviewAt&&(0,t.jsxs)("span",{className:"text-[11px] font-semibold text-navy bg-gold-light/50 border border-gold/40 rounded-full px-2 py-0.5",children:["Interview ",eh(e.interviewAt)]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:`text-xs font-bold px-2.5 py-1 rounded-full border ${h(e.initialMatchScore)}`,children:["Before: ",e.initialMatchScore,"%"]}),(0,t.jsx)("span",{className:"text-slate-300 text-sm",children:"→"}),(0,t.jsxs)("span",{className:`text-xs font-bold px-2.5 py-1 rounded-full border ${h(e.revisedMatchScore)}`,children:["After: ",e.revisedMatchScore,"%"]})]}),(0,t.jsxs)("div",{className:"text-xs text-brand-gray space-y-1 border-t border-slate-100 pt-3",children:[(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"font-semibold text-brand-slate",children:"Candidate: "}),e.candidateName]}),(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"font-semibold text-brand-slate",children:"Role: "}),e.targetJobTitle]}),e.targetCompany&&(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"font-semibold text-brand-slate",children:"Company: "}),e.targetCompany]})]}),(0,t.jsxs)("div",{className:"flex gap-2 mt-auto",children:[(0,t.jsx)("button",{onClick:()=>s(e.id),className:"flex-1 rounded-xl bg-navy text-white text-xs font-bold py-2.5 hover:bg-navy-light transition-colors",children:"Load session"}),(0,t.jsx)("button",{onClick:()=>{i(e.id,"rejected")},disabled:x||"rejected"===b,className:"rounded-xl border border-slate-200 text-brand-gray text-xs px-3 py-2.5 hover:bg-red-50 hover:text-red-600 hover:border-red-200 transition-colors disabled:opacity-40 disabled:cursor-not-allowed",children:x?"…":"Reject"})]}),(0,t.jsx)("button",{onClick:g,disabled:x,className:"text-xs text-slate-400 hover:text-red-500 transition-colors text-center w-full pt-1 disabled:opacity-40 disabled:cursor-not-allowed",children:"Delete this session"})]})}function ex({sessions:e,onLoad:a,loadingId:s}){let n=(0,P.vocab)((0,E.useLocale)());if(0===e.length)return null;let r=[...e].reverse().slice(-10);return(0,t.jsxs)("div",{className:"rounded-2xl border border-slate-200 bg-white p-5 shadow-xs",children:[(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)("h3",{className:"font-bold text-navy text-sm",children:"Match Score History"}),(0,t.jsxs)("p",{className:"text-[11px] text-brand-gray mt-0.5",children:["Click any entry below to re-open that bundle (",n.CV,", documents and the original job description) without using another analysis credit."]})]}),(0,t.jsx)("div",{className:"space-y-3",children:r.map(e=>{let n=s===e.id,r=!!a,i=`space-y-1 rounded-lg ${r?"cursor-pointer px-2 py-1.5 -mx-2 hover:bg-slate-50 transition-colors":""} ${n?"opacity-60 pointer-events-none":""}`,l=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("p",{className:"text-xs text-brand-gray truncate max-w-[60%]",children:e.label}),(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs font-semibold",children:[(0,t.jsxs)("span",{className:"text-slate-400",children:[e.initialMatchScore,"%"]}),(0,t.jsxs)("span",{className:"text-gold font-bold",children:["→ ",e.revisedMatchScore,"%"]})]})]}),(0,t.jsxs)("div",{className:"relative h-3 rounded-full bg-slate-100 overflow-hidden",children:[(0,t.jsx)("div",{className:"absolute inset-y-0 left-0 bg-slate-300 rounded-full",style:{width:`${e.initialMatchScore}%`}}),(0,t.jsx)("div",{className:"absolute inset-y-0 left-0 bg-navy rounded-full transition-all",style:{width:`${e.revisedMatchScore}%`}})]})]});return r?(0,t.jsx)("button",{type:"button",onClick:()=>a?.(e.id),className:`w-full text-left ${i}`,"aria-label":`Re-open saved session: ${e.label}`,children:l},e.id):(0,t.jsx)("div",{className:i,children:l},e.id)})}),(0,t.jsxs)("p",{className:"text-xs text-brand-gray mt-3",children:["Showing last ",r.length," session",1!==r.length?"s":"",". Dark bar = tailored score"]})]})}function em({sessions:e}){return e.length<2?null:(0,t.jsxs)("div",{className:"rounded-2xl border border-amber-200 bg-amber-50 p-5",children:[(0,t.jsx)("h3",{className:"font-bold text-navy text-sm mb-1",children:"Skills Gap Tracker"}),(0,t.jsxs)("p",{className:"text-xs text-brand-gray",children:["You have ",e.length," saved sessions. Load individual sessions to review their evidence gaps. Patterns across multiple applications reveal which skills to prioritise developing."]})]})}function eh(e){let t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleDateString("en-GB",{day:"numeric",month:"short"})}function ep({label:e,onConfirm:s,onCancel:n}){let[r,i]=(0,a.useState)(""),[l,o]=(0,a.useState)(""),[d,c]=(0,a.useState)(!0),[x,m]=(0,a.useState)(null);return(0,t.jsx)("div",{className:"fixed inset-0 z-100 flex items-center justify-center p-4 bg-navy/60 backdrop-blur-xs",role:"dialog","aria-modal":"true",children:(0,t.jsxs)("div",{className:"w-full max-w-md bg-white rounded-2xl shadow-2xl border border-slate-200 p-6 sm:p-7",children:[(0,t.jsx)("h2",{className:"font-playfair text-2xl text-navy mb-1",children:"Nice one. When’s the interview?"}),(0,t.jsxs)("p",{className:"text-sm text-brand-gray mb-5",children:["For ",(0,t.jsx)("span",{className:"font-semibold text-navy",children:e}),". We’ll get your interview kit ready in good time."]}),(0,t.jsxs)("div",{className:"flex gap-3 mb-4",children:[(0,t.jsxs)("label",{className:"flex-1",children:[(0,t.jsx)("span",{className:"text-xs font-semibold text-brand-slate uppercase tracking-wide",children:"Date"}),(0,t.jsx)("input",{type:"date",value:r,onChange:e=>i(e.target.value),autoFocus:!0,className:"mt-1 w-full rounded-lg border border-slate-300 px-3 py-2.5 text-brand-dark focus:border-navy focus:ring-1 focus:ring-navy outline-hidden"})]}),(0,t.jsxs)("label",{className:"w-28",children:[(0,t.jsxs)("span",{className:"text-xs font-semibold text-brand-slate uppercase tracking-wide",children:["Time ",(0,t.jsx)("span",{className:"normal-case font-normal text-slate-400",children:"(opt)"})]}
1),(0,t.jsx)("input",{type:"time",value:l,onChange:e=>o(e.target.value),className:"mt-1 w-full rounded-lg border border-slate-300 px-3 py-2.5 text-brand-dark focus:border-navy focus:ring-1 focus:ring-navy outline-hidden"})]})]}),(0,t.jsxs)("label",{className:"flex items-start gap-3 rounded-xl border border-slate-200 p-3 mb-4 cursor-pointer hover:bg-slate-50 transition-colors",children:[(0,t.jsx)("input",{type:"checkbox",checked:d,onChange:e=>c(e.target.checked),className:"mt-0.5 h-4 w-4 rounded border-slate-300 text-navy focus:ring-navy"}),(0,t.jsxs)("span",{className:"text-sm text-brand-dark",children:[(0,t.jsx)("span",{className:"font-semibold",children:"Remind me before the interview"}),(0,t.jsx)("span",{className:"block text-xs text-brand-gray mt-0.5",children:"We’ll email your interview kit about two days before, so you’ve time to prepare."})]})]}),x&&(0,t.jsx)("p",{className:"text-sm text-red-600 bg-red-50 border border-red-200 rounded-lg px-3 py-2 mb-3",children:x}),(0,t.jsxs)("div",{className:"flex gap-3",children:[(0,t.jsx)("button",{onClick:n,className:"flex-1 rounded-lg border border-slate-300 text-brand-gray font-medium py-2.5 hover:bg-slate-50 transition-colors",children:"Cancel"}),(0,t.jsx)("button",{onClick:()=>{if(!r)return void m("Add the interview date so we can get you ready in time.");let e=new Date(`${r}T${l||"09:00"}`);Number.isNaN(e.getTime())?m("That date didn't look right. Try again."):e.getTime()<Date.now()?m("That date's already passed. Pick the upcoming interview date."):s(e.toISOString(),d)},className:"flex-1 rounded-lg bg-navy text-white font-medium py-2.5 hover:bg-navy-light transition-colors",children:"Save interview"})]})]})})}function eu({sessions:e,onLoad:s,onDelete:n,onRename:r,onStatusChange:i}){let[l,o]=(0,a.useState)(null),[d,c]=(0,a.useState)(null);return(0,t.jsx)("div",{className:"overflow-x-auto pb-2",children:(0,t.jsx)("div",{className:"flex gap-4 min-w-max",children:["bookmarked","applied","interview","offer","rejected"].map(a=>{let x=e.filter(e=>(e.status??"bookmarked")===a),m=U[a],h=d===a;return(0,t.jsxs)("div",{className:"w-64 shrink-0",onDragOver:e=>{l&&(e.preventDefault(),e.dataTransfer.dropEffect="move",d!==a&&c(a))},onDragLeave:e=>{e.currentTarget.contains(e.relatedTarget)||d===a&&c(null)},onDrop:e=>{e.preventDefault();let t=e.dataTransfer.getData("text/plain")||l;c(null),o(null),t&&i(t,a)},children:[(0,t.jsxs)("div",{className:`flex items-center gap-2 px-3 py-2 rounded-xl mb-3 ${m.bg} border ${m.border}`,children:[(0,t.jsx)("span",{className:`text-xs font-bold ${m.color}`,children:m.label}),(0,t.jsx)("span",{className:`ml-auto text-xs font-bold px-1.5 py-0.5 rounded-full ${m.bg} ${m.color}`,children:x.length})]}),(0,t.jsxs)("div",{className:`space-y-3 rounded-xl p-1 transition-colors ${h?"bg-navy/5 ring-2 ring-navy/30":""}`,children:[x.map(e=>(0,t.jsx)("div",{draggable:!0,onDragStart:t=>{t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e.id),o(e.id)},onDragEnd:()=>{o(null),c(null)},className:`cursor-grab active:cursor-grabbing transition-opacity ${l===e.id?"opacity-40":""}`,children:(0,t.jsx)(ec,{session:e,onLoad:s,onDelete:n,onRename:r,onStatusChange:i})},e.id)),0===x.length&&(0,t.jsx)("div",{className:"rounded-xl border-2 border-dashed border-slate-200 p-4 text-center text-xs text-brand-gray",children:h?"Drop here":"No applications"})]})]},a)})})})}function eg({onLoadSession:e}){let[s,n]=(0,a.useState)([]),[r,i]=(0,a.useState)(!0),[l,o]=(0,a.useState)(!1),[d,c]=(0,a.useState)(null),[x,m]=(0,a.useState)("kanban"),[h,p]=(0,a.useState)(null);(0,a.useEffect)(()=>{(async()=>{try{let e=await fetch("/api/sessions");if(401===e.status)return void o(!0);let t=await e.json();n(Array.isArray(t)?t:[])}catch{}finally{i(!1)}})()},[]);let u=async t=>{c(t);try{let a=await fetch(`/api/sessions/${t}`);if(!a.ok)throw Error();let s=await a.json();e(s.analysis,t,"string"==typeof s.jobDescription?s.jobDescription:null)}catch{alert("Could not load session.")}finally{c(null)}},g=async(e,t)=>{if(h){p(null),n(t=>t.map(t=>t.id===h.id?{...t,interviewAt:e}:t));try{let a=await fetch(`/api/sessions/${h.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:"interview",interview_at:e,remind_night_before:t})});if(!a.ok)throw Error(await z(a,"Could not save the interview date. Please try again."))}catch(e){n(e=>e.map(e=>e.id===h.id?{...e,status:h.prevStatus,interviewAt:null}:e)),alert(e instanceof Error?e.message:"Could not save the interview date. Please try again.")}}},b={onLoad:u,onDelete:e=>n(t=>t.filter(t=>t.id!==e)),onRename:(e,t)=>
1n(a=>a.map(a=>a.id===e?{...a,label:t}:a)),onStatusChange:async(e,t)=>{let a=s.find(t=>t.id===e),r=a?.status??"bookmarked";if(r===t)return;if("interview"===t){n(a=>a.map(a=>a.id===e?{...a,status:t}:a)),p({id:e,prevStatus:r,label:a?.label??"this application"});return}let i={status:t},l=new Date().toISOString(),o="applied"===t&&!a?.appliedAt;o&&(i.applied_at=l),n(a=>a.map(a=>a.id===e?{...a,status:t,...o?{appliedAt:l}:{}}:a));try{let t=await fetch(`/api/sessions/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!t.ok)throw Error(await z(t,"Could not move that card. Please try again."))}catch(t){n(t=>t.map(t=>t.id===e?{...t,status:r}:t)),alert(t instanceof Error?t.message:"Could not move that card. Please try again.")}}};return r?(0,t.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,t.jsx)("div",{className:"w-8 h-8 rounded-full border-4 border-navy border-t-transparent animate-spin"})}):l?(0,t.jsxs)("div",{className:"text-center py-16 space-y-3",children:[(0,t.jsx)("div",{className:"text-5xl",children:"🔒"}),(0,t.jsx)("p",{className:"font-bold text-navy",children:"Sign in to see your sessions"}),(0,t.jsx)("p",{className:"text-sm text-brand-gray max-w-sm mx-auto",children:"Saved sessions live with your account so you can pick them up from any device. Sign in via the button at the top right."})]}):0===s.length?(0,t.jsxs)("div",{className:"text-center py-16 space-y-3",children:[(0,t.jsx)("div",{className:"text-5xl",children:"📁"}),(0,t.jsx)("p",{className:"font-bold text-navy",children:"No saved sessions yet"}),(0,t.jsx)("p",{className:"text-sm text-brand-gray max-w-sm mx-auto",children:"Run an analysis, save it, and it will appear here whenever you need it before an interview."})]}):(0,t.jsxs)("div",{className:"space-y-5",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",children:[(0,t.jsxs)("p",{className:"text-sm text-brand-gray",children:[s.length," saved session",1!==s.length?"s":""]}),(0,t.jsx)("div",{className:"flex rounded-lg overflow-hidden border border-slate-200 text-xs",children:["list","kanban"].map(e=>(0,t.jsx)("button",{onClick:()=>m(e),className:`px-3 py-1.5 transition-colors capitalize ${x===e?"bg-navy text-white font-semibold":"bg-white text-brand-gray hover:bg-slate-50"}`,children:"list"===e?"📋 List":"📌 Application Progress"},e))})]}),"kanban"===x&&(0,t.jsxs)("div",{className:"rounded-xl bg-navy/5 border border-navy/10 px-4 py-3 flex items-start gap-3",children:[(0,t.jsx)("span",{className:"text-navy text-base shrink-0 mt-0.5",children:"💡"}),(0,t.jsxs)("p",{className:"text-xs text-brand-slate leading-relaxed",children:[(0,t.jsx)("span",{className:"font-semibold",children:"Application Progress board"}),". Each column is a stage in your search. ",(0,t.jsx)("span",{className:"font-semibold",children:"Drag any card"})," ","between columns to update its status, or use the dropdown on the card if you’re on mobile. Track every application from saved to offer in one view."]})]}),(0,t.jsx)(ex,{sessions:s,onLoad:u,loadingId:d}),(0,t.jsx)(em,{sessions:s}),"list"===x?(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:s.map(e=>(0,t.jsx)("div",{className:d===e.id?"opacity-60 pointer-events-none":"",children:(0,t.jsx)(ec,{session:e,...b})},e.id))}):(0,t.jsx)("div",{className:d?"opacity-60 pointer-events-none":"",children:(0,t.jsx)(eu,{sessions:s,...b})}),h&&(0,t.jsx)(ep,{label:h.label,onConfirm:g,onCancel:()=>{h&&(p(null),n(e=>e.map(e=>e.id===h.id?{...e,status:h.prevStatus}:e)))}})]})}function eb({to:e,durationMs:a,trigger:s,className:n}){let r=(0,$.useAnimatedNumber)(e,a,s);return(0,t.jsx)("span",{className:n,children:r})}function ef({score:e,label:a,accent:s,trigger:n,durationMs:r}){let i=(0,$.useAnimatedNumber)(e,r,n),l=2*Math.PI*42,o=i/100*l;return(0,t.jsxs)("div",{className:"flex flex-col items-center gap-2",children:[(0,t.jsxs)("svg",{width:"120",height:"120",viewBox:"0 0 120 120","aria-hidden":"true",children:[(0,t.jsx)("circle",{cx:"60",cy:"60",r:42,fill:"none",stroke:"#E2E8F0",strokeWidth:"10"}),(0,t.jsx)("circle",{cx:"60",cy:"60",r:42,fill:"none",stroke:"gold"===s?"#C9A84C":"#94A3B8",strokeWidth:"10",strokeDasharray:`${o} ${l}`,strokeLinecap:"round",transform:"rotate(-90 60 60)"}),(0,t.jsxs)("text",{x:"60",y:"62",textAnchor:"middle",dominantBaseline:"central",fill:"gold"===s?"#C9A84C":"#94A3B8",fontSize:"26",fontWeight:"bold",children:[i,"%"]})]}),(0,t.jsx)("span",{className:"text-xs uppercase tracking-wide text-brand-gray font-semibold",children:a})]})}function ey(){let e=(0,P.vocab)((0,E.useLocale)()),[s,n]=function(){let[e,t]=(0,a.useState)(!1),s=(0,a.useRef)(null);return[(0,a.useCallback)(a=>{if(s.current?.disconnect(),s.current=null,!a||e)return;let n=new IntersectionObserver(([e])=>{e.isIntersecting&&(t(!0),n.disconnect(),s.current=null)},{threshold:.35});n.observe(a),s.current=n},[e]),e]}(),r=H,i=F,l=[{label:"ATS",score:V.atsView.score}
1,{label:"Recruiter (15s scan)",score:V.recruiterView.score},{label:"Hiring manager",score:V.hiringManagerView.score}],o=V.recommendations.slice(0,3);return(0,t.jsxs)("section",{ref:s,className:"rounded-2xl bg-white border border-slate-200 shadow-xs p-5 sm:p-7 space-y-6",children:[(0,t.jsxs)("div",{className:"text-center space-y-1",children:[(0,t.jsx)("p",{className:"text-xs uppercase tracking-wider text-brand-gray font-semibold",children:"Sample run"}),(0,t.jsxs)("h3",{className:"font-playfair text-2xl sm:text-3xl text-navy",children:[(0,t.jsx)(eb,{to:r,durationMs:800,trigger:n})," → ",(0,t.jsxs)("span",{className:"text-gold",children:[(0,t.jsx)(eb,{to:i,durationMs:1500,trigger:n}),"."]})," ","The score that gets you read."]}),(0,t.jsxs)("p",{className:"text-sm text-brand-gray max-w-2xl mx-auto",children:["Hannah Whitfield",", a sample candidate, applying for ",W," at ",G,". One ",e.CV,", one JD, framework run unchanged. The same run also produced her cover letter, Strategic Interview Briefing, company research and 30, 60, 90 Day Implementation Plan."]})]}),(0,t.jsxs)("div",{className:"flex flex-col md:flex-row items-center justify-center gap-6 sm:gap-12 py-2",children:[(0,t.jsx)(ef,{score:r,label:"Before",accent:"muted",trigger:n,durationMs:800}),(0,t.jsx)("span",{className:"text-2xl text-gold font-black hidden md:inline",children:"→"}),(0,t.jsx)(ef,{score:i,label:"After TAILOR",accent:"gold",trigger:n,durationMs:1500})]}),(0,t.jsxs)("div",{className:"space-y-2 max-w-2xl mx-auto",children:[(0,t.jsx)("p",{className:"text-[10px] uppercase tracking-wider text-brand-gray font-semibold text-center",children:"How each audience would read it"}),(0,t.jsx)("div",{className:"grid grid-cols-3 gap-2 sm:gap-3",children:l.map(e=>{let a;return(0,t.jsxs)("div",{className:"rounded-xl bg-slate-50 border border-slate-200 px-3 py-2.5 text-center",children:[(0,t.jsx)("p",{className:"text-[10px] uppercase tracking-wide text-brand-gray font-semibold",children:e.label}),(0,t.jsxs)("p",{className:`text-lg font-bold mt-0.5 ${(a=e.score)>=75?"text-green-700":a>=55?"text-amber-700":"text-red-700"}`,children:[(0,t.jsx)(eb,{to:e.score,durationMs:1200,trigger:n}),(0,t.jsx)("span",{className:"text-xs text-brand-gray",children:"/100"})]})]},e.label)})})]}),(0,t.jsxs)("div",{className:"rounded-xl border border-slate-200 bg-slate-50 p-4 sm:p-5 space-y-2.5 max-w-2xl mx-auto",children:[(0,t.jsx)("p",{className:"text-[10px] uppercase tracking-wider text-brand-gray font-semibold",children:"What the framework flagged to lift her score"}),(0,t.jsx)("ul",{className:"space-y-1.5",children:o.map((e,a)=>(0,t.jsxs)("li",{className:"flex gap-2 items-start",children:[(0,t.jsx)(J,{className:"w-4 h-4 text-gold shrink-0 mt-0.5","aria-hidden":"true"}),(0,t.jsx)("span",{className:"text-xs sm:text-sm text-brand-slate leading-relaxed",children:e})]},a))}),(0,t.jsxs)("p",{className:"text-xs text-brand-gray italic pt-1 border-t border-slate-200/70",children:["The framework rewrites your ",e.cv," in your bundle."," ",(0,t.jsx)("a",{href:"#analyse-form",className:"underline underline-offset-2 hover:text-navy font-semibold not-italic",children:"See yours when you run your analysis ↓"})]})]}),(0,t.jsxs)("p",{className:"text-xs text-brand-gray text-center italic",children:["Every claim traceable to her ",e.cv,". Nothing fabricated."," ",(0,t.jsx)("a",{href:"/methodology",className:"underline underline-offset-2 hover:text-navy",children:"See how the framework works →"})]})]})}e.s(["default",0,function(){let e=(0,E.useLocale)(),o=(0,P.vocab)(e),[c,g]=(0,a.useState)("new");(0,a.useEffect)(()=>{"sessions"===new URLSearchParams(window.location.search).get("tab")&&g("sessions")},[]);let[b,f]=(0,a.useState)({mode:"paste",text:"",file:null}),[j,w]=(0,a.useState)({mode:"paste",text:"",file:null}),[I,R]=(0,a.useState)(""),[L,O]=(0,a.useState)(!1),[B,$]=(0,a.useState)(""),[W,G]=(0,a.useState)(""),[H,F]=(0,a.useState)(!1),[V,J]=(0,a.useState)(0),[U,z]=(0,a.useState)(null),[K,Q]=(0,a.useState)(!1),[Z,X]=(0,a.useState)(!1),[ee,et]=(0,a.useState)(!1),[ea,es]=(0,a.useState)(!1),[en,er]=(0,a.useState)(!1),[el,eo]=(0,a.useState)(void 0),[ec,ex]=(0,a.useState)(null),[em,eh]=(0,a.useState)(!1),[ep,eu]=(0,a.useState)(null),[eb,ef]=(0,a.useState)(null),[ev,ej]=(0,a.useState)(!1),[ew,eN]=(0,a.useState)(!1),[ek,eS]=(0,a.useState)(!1),eC=(0,p.useHasRated)(),[eA,eT]=(0,a.useState)(0),[eI,eR]=(0,a.useState)(""),[eL,eO]=(0,a.useState)(!1),[eE,eP]=(0,a.useState)(null),[eM,eB]=(0,a.useState)(!1),[eD,e$]=(0,a.useState)(!1),[eW,eG]=(0,a.useState)(""),[eH,eF]=(0,a.useState)(""),eV=(0,p.useReviewExitIntent)({enabled:!!U&&!1===eC&&!eM}),e_=async()=>
1{if(eA<1)return eP("Pick a star rating first."),!1;eO(!0),eP(null);try{let e=await fetch("/api/ratings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({flow:"analyse",subject_id:el??null,rating:eA,comments:eI.trim()||null,display_publicly:eD,display_name:eD&&eW.trim()||null,display_city:eD&&eH.trim()||null})});if(!e.ok)throw Error((await e.json()).error??"Could not save your feedback");return eB(!0),!0}catch(e){return eP(e instanceof Error?e.message:"Could not save your feedback"),!1}finally{eO(!1)}},{state:eJ,gate:eY,startSignIn:eq,modalElement:eU,refresh:ez}=(0,s.useAuthGate)();(0,a.useEffect)(()=>{try{let e=sessionStorage.getItem("tailor:form:v1");if(!e)return;let{cv:t,jd:a}=JSON.parse(e);t&&f(e=>e.text||e.file?e:{mode:"paste",text:t,file:null}),a&&w(e=>e.text||e.file?e:{mode:"paste",text:a,file:null})}catch{}},[]);let[eK,eQ]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e=(0,u.loadCvForPrefill)();e&&(f({mode:"paste",text:e,file:null}),eQ(!0),(0,u.clearCvPrefill)(),requestAnimationFrame(()=>{document.getElementById("analyse-form")?.scrollIntoView({behavior:"smooth",block:"start"})}))},[]),(0,a.useEffect)(()=>{try{let e="paste"===b.mode?b.text:"",t="paste"===j.mode?j.text:"";e||t?sessionStorage.setItem("tailor:form:v1",JSON.stringify({cv:e,jd:t})):sessionStorage.removeItem("tailor:form:v1")}catch{}},[b.text,b.mode,j.text,j.mode]),(0,a.useEffect)(()=>{let e=new URLSearchParams(window.location.search),t=e.get("stripe"),a=e.get("deleted"),s=!1;if(("success"===t||"cancelled"===t)&&(ef(t),e.delete("stripe"),s=!0,"success"===t)){let e=0,t=setInterval(()=>{ez(),++e>=5&&clearInterval(t)},1500)}if("1"===a&&(ej(!0),e.delete("deleted"),s=!0),s){let t=e.toString();window.history.replaceState({},"",window.location.pathname+(t?`?${t}`:""))}},[ez]),(0,a.useEffect)(()=>{let e=()=>{requestAnimationFrame(()=>{document.getElementById("analyse-form")?.scrollIntoView({behavior:"smooth",block:"start"})})},t=new URLSearchParams(window.location.search);if("extension"===t.get("from")){let a=t.get("jd");a&&(w({mode:"paste",text:a,file:null}),g("new"),eh(!0),e()),window.history.replaceState({},"",window.location.pathname)}let a=t=>{t.data?.type==="TAILOR_EXTENSION_JD"&&t.data?.jd&&(w({mode:"paste",text:t.data.jd,file:null}),g("new"),eh(!0),window.history.replaceState({},"",window.location.pathname),e(),window.postMessage({type:"TAILOR_EXTENSION_JD_ACK"},"*"))};return window.addEventListener("message",a),()=>window.removeEventListener("message",a)},[]),(0,a.useEffect)(()=>{if(!H)return;let e=e=>{e.preventDefault(),e.returnValue="TAILOR is still analysing your documents. Leaving now will cancel the process."};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[H]);let eZ="paste"===b.mode?b.text.trim().length>0:null!==b.file,eX="paste"===j.mode?j.text.trim().length>0:null!==j.file,e0=eZ&&eX&&!H,e1=async()=>{F(!0),eu(null),z(null),J(0);let e=e=>{let t=e.name||"upload",a=t.lastIndexOf("."),s=a>0?t.slice(a).toLowerCase().replace(/[^a-z0-9.]/g,""):"",n=(a>0?t.slice(0,a):t).normalize("NFKD").replace(/[^ -~]/g,"").replace(/[^A-Za-z0-9._-]+/g,"_").replace(/^[_.]+|[_.]+$/g,"").slice(0,80)||"upload",r=e.type||({".pdf":"application/pdf",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".doc":"application/msword",".txt":"text/plain",".rtf":"application/rtf"})[s]||"application/octet-stream";try{return new File([e],`${n}${s}`,{type:r})}catch{return e}};Q(!1),$(""),G("");{let t="upload"===b.mode?b.file:null,a="upload"===j.mode?j.file:null;if(t||a){let s=new FormData;t&&s.append("cv_file",e(t)),a&&s.append("jd_file",e(a)),fetch("/api/extract-text",{method:"POST",body:s}).then(e=>e.ok?e.json():null).then(e=>{e&&("string"==typeof e.cvText&&e.cvText.trim()&&$(e.cvText),"string"==typeof e.jdText&&e.jdText.trim()&&G(e.jdText))}).catch(()=>{})}}window.scrollTo({top:0,behavior:"smooth"});let t=setInterval(()=>J(e=>Math.min(e+1,q.length-1)),4e3);try{let t,a=em?{"x-tailor-source":"extension"}:{};if("upload"===b.mode&&b.file||"upload"===j.mode&&j.file){let s=new FormData;"upload"===b.mode&&b.file?s.append("cv_file",e(b.file)):s.append("cv_text",b.text),"upload"===j.mode&&j.file?s.append("jd_file",e(j.file)):s.append("jd_text",j.text),I.trim()&&s.append("notes",I.trim()),t=await fetch("/api/analyze",{method:"POST",body:s,headers:a})}else t=await fetch("/api/analyze",{method:"POST",headers:{"Content-Type":"application/json",...a},body:JSON.stringify({cvText:b.text,jdText:j.text,notes:I.trim()||void 0})});let s=await t.json();if(!t.ok){let e=s.error,t="unauthenticated"===e?"Please sign in to continue."
1:"no_subscription"===e?"You need an active plan to run a full analysis.":"cap_exhausted"===e?"You've used all the analyses included in your current plan period. It will reset on your next renewal.":"string"==typeof e&&e||"Analysis failed";throw("unauthenticated"===e||"no_subscription"===e)&&await ez(),Error(t)}er(!1),eo(void 0),z(s),"consumed"===t.headers.get("X-Tailor-Welcome-Bundle")?et(!0):(0,h.ratingSnoozeActive)()||es(!0),ez()}catch(t){console.error("[analyse] handleAnalyse failed",{cvMode:b.mode,jdMode:j.mode,cvFile:"upload"===b.mode&&b.file?{name:b.file.name,size:b.file.size,type:b.file.type}:void 0,jdFile:"upload"===j.mode&&j.file?{name:j.file.name,size:j.file.size,type:j.file.type}:void 0,error:t});let e=t instanceof Error?t.message:"Something went wrong. Please try again.";eu(/did not match the expected pattern/i.test(e)?"Your browser had trouble sending that file. Please paste the text in instead, or re-save the file and try again.":e)}finally{clearInterval(t),F(!1)}},e2=[["/health-check",`${o.CV} Health Check`],["/methodology","How It Works"],["/compare","Why TAILOR"]];return(0,t.jsxs)("div",{className:"min-h-screen bg-brand-light",children:[(0,t.jsx)("header",{className:"bg-navy shadow-lg",children:(0,t.jsxs)("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 py-3 sm:py-4 flex flex-col lg:flex-row lg:items-center gap-3",children:[(0,t.jsxs)("div",{className:"shrink-0 text-center lg:text-left",children:[(0,t.jsxs)("a",{href:"/","aria-label":"TAILOR home",className:"flex items-baseline gap-0.5 justify-center lg:justify-start hover:opacity-80 transition-opacity",children:[(0,t.jsx)("span",{className:"text-2xl font-black text-white tracking-tight",children:"TAILOR"}),(0,t.jsx)("span",{className:"text-gold font-black text-2xl",children:"."})]}),(0,t.jsx)("p",{className:"font-playfair italic text-slate-300 text-xs tracking-wide mt-0.5",children:"Your application made to measure. Optimised to get noticed."})]}),(0,t.jsxs)("nav",{className:"lg:ml-auto grid grid-cols-2 sm:grid-cols-4 lg:flex lg:flex-row items-center gap-1 bg-navy-dark rounded-xl p-1",children:[[["new","New Analysis"],["sessions","Saved Sessions"]].map(([e,a])=>(0,t.jsx)("button",{onClick:()=>{"new"===e&&U&&(z(null),eu(null),er(!1),eo(void 0),ex(null)),g(e)},className:`px-2 py-1.5 lg:px-3 lg:py-1.5 rounded-lg text-xs lg:text-sm font-semibold transition-all whitespace-nowrap text-center ${c===e?"bg-white text-navy shadow-xs":"text-slate-400 hover:text-white hover:bg-navy-light"}`,children:a},e)),e2.map(([e,a])=>(0,t.jsx)("a",{href:e,className:"px-2 py-1.5 lg:px-3 lg:py-1.5 rounded-lg text-xs lg:text-sm font-semibold transition-all whitespace-nowrap text-center text-slate-400 hover:text-white hover:bg-navy-light",children:a},e))]}),(0,t.jsx)("div",{className:"lg:ml-3 flex justify-center lg:justify-end shrink-0",children:(0,t.jsx)(n.UserPill,{state:eJ,onSignInClick:eq})})]})}),(0,t.jsx)(l,{}),(0,t.jsx)(i.WelcomeBundleBanner,{}),(0,t.jsx)(d,{}),(0,t.jsx)(x,{show:Z,onClose:()=>X(!1)}),(0,t.jsx)(m,{show:ee,onClose:()=>et(!1)}),(0,t.jsxs)("main",{className:"max-w-6xl mx-auto px-4 sm:px-6 py-6 sm:py-10 space-y-6 sm:space-y-8",children:["success"===eb&&(0,t.jsxs)("div",{className:"rounded-xl border border-green-200 bg-green-50 px-5 py-4 flex items-start gap-3",children:[(0,t.jsx)("span",{className:"text-green-600 text-xl shrink-0",children:"✓"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-bold text-green-800",children:"You’re subscribed."}),(0,t.jsx)("p",{className:"text-xs text-green-700 mt-0.5",children:"Your counter is updating now. You can run a full analysis whenever you’re ready."})]}),(0,t.jsx)("button",{onClick:()=>ef(null),className:"ml-2 text-green-400 hover:text-green-600 text-xl leading-none",children:"×"})]}),ev&&(0,t.jsxs)("div",{className:"rounded-xl border border-slate-200 bg-white px-5 py-4 flex items-start gap-3",children:[(0,t.jsx)("span",{className:"text-navy text-xl shrink-0",children:"✓"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-bold text-navy",children:"Account deleted."}),(0,t.jsx)("p",{className:"text-xs text-brand-gray mt-0.5",children:"All your data has been removed and any active subscription was cancelled. Thanks for trying TAILOR."})]}),(0,t.jsx)("button",{onClick:()=>ej(!1),className:"ml-2 text-slate-400 hover:text-navy text-xl leading-none",children:"×"})]}),"cancelled"===eb&&(0,t.jsxs)("div",{className:"rounded-xl border border-amber-200 bg-amber-50 px-5 py-4 flex items-start gap-3",children:[(0,t.jsx)("span",{className:"text-amber-600 text-xl shrink-0",children:"!"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-bold text-amber-800",children:"Checkout cancelled."}),(0,t.jsxs)("p",{className:"text-xs text-amber-700 mt-0.5",children:["No charge was made. You can try again any time, or stick with the free ",o.CV," Health Check."]})]}),(0,t.jsx)("button",{onClick:()=>ef(null),className:"ml-2 text-amber-400 hover:text-amber-600 text-xl leading-none",children:"×"})]}),(()=>{let e=eJ.subscription;if(!eJ.user||eJ.isAdmin||eJ.bypassBilling||!e.tier||null===e.remaining)return null;let a="pack"===e.tier?5:1;return e.remaining>a||ew?null:(0,t.jsxs)("div",{className:"rounded-xl border border-gold bg-gold-light px-5 py-4 flex items-start gap-3",children:[(0,t.jsx)("span",{className:"text-gold-dark text-xl shrink-0",children:"★"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-bold text-navy",children:0===e.remaining?"You're out of sessions for now.":`Only ${e.remaining} session${1===e.remaining?"":"s"} left this period.`}),(0,t.jsxs)("p",{className:"text-xs text-brand-slate mt-0.5",children:["Invite a friend. When they subscribe you get ",(0,t.jsx)("span",{className:"font-semibold text-navy",children:"+3 bonus sessions"})," ","added straight to your account, and they get 25% off their first week."," ",(0,t.jsx)("a",{href:"/account#invite",className:"font-semibold text-navy underline underline-offset-2 hover:text-navy-light",children:"Get your invite link →"})]})]}),(0,t.jsx)("button",{onClick:()=>eN(!0),className:"ml-2 text-gold-dark/70 hover:text-navy text-xl leading-none","aria-label":"Dismiss",children:"×"})]})})(),"new"===c&&(0,t.jsxs)(t.Fragment,{children:[(H||U&&!en)&&(0,t.jsx)(M,{cvText:"paste"===b.mode?b.text:B,jdText:"paste"===j.mode?j.text:W,roleLine:"Optimisation in progress",executiveSummary:"Compiling your personalised 
1summary as your documents finish building. The full executive read of your CV against this job description will appear here the moment your bundle lands.",result:U,hidePack:K,onComplete:()=>Q(!0)}),U&&K?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ed,{result:U,jdText:"paste"===j.mode?j.text:void 0,savedJobDescription:ec,triggeredViaExtension:em,onSaved:e=>eo(e.id),onReset:()=>{z(null),eu(null),er(!1),eo(void 0),ex(null),Q(!1),$(""),G(""),en&&g("sessions")},fromSession:en,sessionId:el,isLoggedIn:!!eJ.user}),ea&&!eM&&!1===eC&&(0,t.jsxs)("section",{className:"rounded-2xl border-2 border-gold bg-gold-light/50 p-6 sm:p-7 space-y-4 animate-review-card-attention",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("h2",{className:"font-playfair text-xl text-navy font-bold",children:"Did your Optimisation Pack help?"}),(0,t.jsx)("p",{className:"text-sm text-brand-gray leading-relaxed",children:"A quick rating helps us improve the tool, and your honest read matters more than a perfect score."})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[[1,2,3,4,5].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>eT(e),"aria-label":`Rate ${e} ${1===e?"star":"stars"}`,className:`text-3xl leading-none transition-transform hover:scale-110 ${e<=eA?"text-gold":"text-slate-300"}`,children:"★"},e)),eA>0&&(0,t.jsx)("span",{className:"ml-2 text-xs text-brand-gray italic",children:5===eA?"Loved it, thank you":eA>=3?"Glad it helped":"Sorry it missed the mark"})]}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("label",{htmlFor:"analyse-comments",className:"block text-xs font-semibold text-navy mb-1.5 uppercase tracking-wider",children:["Anything else? ",(0,t.jsx)("span",{className:"text-brand-gray font-normal normal-case",children:"(optional)"})]}),(0,t.jsx)("textarea",{id:"analyse-comments",value:eI,onChange:e=>eR(e.target.value),rows:3,maxLength:2e3,placeholder:"What was useful? What was missing?",className:"w-full rounded-xl border border-slate-300 px-3 py-2 text-sm focus:outline-hidden focus:ring-2 focus:ring-navy/30 focus:border-navy/60"})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("p",{className:"text-xs font-semibold text-navy uppercase tracking-wider",children:["Show on the TAILOR website? ",(0,t.jsx)("span",{className:"text-brand-gray font-normal normal-case",children:"(optional)"})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("input",{type:"text",value:eW,onChange:e=>eG(e.target.value),placeholder:"First name",maxLength:40,className:"flex-1 min-w-0 border border-slate-300 rounded-lg px-3 py-2 text-sm focus:outline-hidden focus:ring-2 focus:ring-navy/30 focus:border-navy/60"}),(0,t.jsx)("input",{type:"text",value:eH,onChange:e=>eF(e.target.value),placeholder:"City",maxLength:60,className:"flex-1 min-w-0 border border-slate-300 rounded-lg px-3 py-2 text-sm focus:outline-hidden focus:ring-2 focus:ring-navy/30 focus:border-navy/60"})]}),(0,t.jsxs)("label",{className:"flex items-start gap-2 text-xs text-brand-gray cursor-pointer select-none pt-1",children:[(0,t.jsx)("input",{type:"checkbox",checked:eD,onChange:e=>e$(e.target.checked),className:"mt-0.5 accent-navy"}),(0,t.jsx)("span",{children:"Yes, publish my review on the TAILOR website to help others find us. Leave the name + city blank to share anonymously. We’ll never show your email."})]})]}),eE&&(0,t.jsx)("p",{className:"text-xs text-red-600",children:eE}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3",children:[(0,t.jsx)("button",{type:"button",onClick:e_,disabled:eL||eA<1,className:"px-5 py-2.5 rounded-xl bg-navy text-white font-bold text-sm hover:bg-navy-light disabled:opacity-40 disabled:cursor-not-allowed transition-colors whitespace-nowrap",children:eL?"Saving…":"Send feedback"}),(0,t.jsx)("a",{href:"https://chromewebstore.google.com/detail/tailor-ai-cv-tailoring/deboimkolpjgjidkjodiiaeaoodhihec/reviews",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-navy font-semibold underline underline-offset-2 hover:text-gold-dark transition-colors",children:"Would you also leave a review on the Chrome Web Store? →"})]})]}),eM&&(0,t.jsxs)("section",{className:"rounded-2xl border-2 border-green-300 bg-green-50 p-6 text-center space-y-3",children:[(0,t.jsx)("p",{className:"font-bold text-green-800",children:"Thank y
1ou, feedback received."}),(0,t.jsx)("p",{className:"text-sm text-green-700",children:"A quick review on the Chrome Web Store helps real people find TAILOR."}),(0,t.jsx)("a",{href:"https://chromewebstore.google.com/detail/tailor-ai-cv-tailoring/deboimkolpjgjidkjodiiaeaoodhihec/reviews",target:"_blank",rel:"noopener noreferrer",className:"inline-block mt-1 text-sm text-navy font-semibold underline underline-offset-2 hover:text-gold-dark transition-colors",children:"Leave a review →"})]})]}):H||U&&!K?null:(0,t.jsxs)(t.Fragment,{children:[!em&&!eJ.user&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("section",{className:"rounded-2xl bg-navy text-white px-5 sm:px-8 py-10 sm:py-12 text-center space-y-5",children:[(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h1",{className:"font-playfair text-3xl sm:text-5xl font-bold leading-tight text-center",children:"Stop being ghosted."}),(0,t.jsx)("p",{className:"font-playfair text-xl sm:text-2xl text-gold leading-snug text-center",children:"Get past the ATS. Get past the recruiter. Get in front of the hiring manager."})]}),(0,t.jsxs)("div",{className:"mx-auto max-w-md rounded-2xl bg-white p-5 sm:p-6 shadow-xl text-center space-y-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("p",{className:"font-bold text-navy text-base sm:text-lg leading-snug",children:["Paste in your ",o.CV,", or upload it.",(0,t.jsx)("br",{}),"You’ll have your score back in seconds."]}),(0,t.jsxs)("p",{className:"text-xs sm:text-sm text-brand-gray mt-0.5",children:["You don’t even need a job ad. Just your ",o.CV,"."]})]}),(0,t.jsxs)("a",{href:"/health-check",className:"group flex items-center justify-center w-full px-6 py-3.5 rounded-xl bg-gold text-navy font-black text-base shadow-lg hover:bg-gold-dark hover:-translate-y-0.5 transition-all duration-200",children:["Get my free score ",(0,t.jsx)("span",{className:"ml-2 group-hover:ml-3 transition-all",children:"→"})]}),(0,t.jsx)("p",{className:"text-center text-[11px] sm:text-xs text-brand-gray",children:"Free. No sign-up, no credit card needed."})]}),(0,t.jsxs)("p",{className:"text-slate-300 max-w-xl mx-auto text-xs sm:text-sm leading-relaxed text-center",children:["You’ll see why you keep getting ghosted, what’s quietly costing you points, and how much higher your ",o.CV," could score once you fix it."]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 max-w-2xl mx-auto pt-1 text-left",children:[(0,t.jsxs)("a",{href:"/build-cv",className:"group rounded-xl bg-white/5 border border-white/15 px-4 py-3 hover:bg-white/10 transition-colors",children:[(0,t.jsxs)("p",{className:"text-sm font-semibold text-white",children:["No ",o.CV," yet?"]}),(0,t.jsxs)("p",{className:"text-xs text-slate-300 mt-0.5",children:["Start from scratch. We’ll walk you through it, free. It takes just minutes ",(0,t.jsx)("span",{className:"group-hover:ml-0.5 transition-all",children:"→"})]})]}),(0,t.jsxs)("a",{href:"#analyse-form",className:"group rounded-xl bg-white/5 border border-white/15 px-4 py-3 hover:bg-white/10 transition-colors",children:[(0,t.jsx)("p",{className:"text-sm font-semibold text-white",children:"Got a specific job in mind?"}),(0,t.jsxs)("p",{className:"text-xs text-slate-300 mt-0.5",children:["Optimise your whole application: ",o.CV,", cover letter, interview prep, and more ",(0,t.jsx)("span",{className:"group-hover:ml-0.5 transition-all",children:"→"})]})]})]})]}),(0,t.jsx)(ey,{}),(0,t.jsxs)("section",{className:"relative overflow-hidden rounded-2xl bg-gold-light border border-gold/30 px-5 sm:px-8 py-8 sm:py-10 text-center",children:[(0,t.jsx)(D.VoiceWaveform,{}),(0,t.jsxs)("div",{className:"relative z-10 space-y-3",children:[(0,t.jsx)("p",{className:"text-xs uppercase tracking-wider text-brand-gray font-semibold",children:"The question every candidate dreads"}),(0,t.jsx)("h2",{className:"font-playfair text-2xl sm:text-4xl font-bold text-navy leading-tight italic",children:"“Tell me about yourself.”"}),(0,t.jsx)("p",{className:"font-playfair text-lg sm:text-xl text-gold leading-snug max-w-2xl mx-auto pt-1",children:"The question every candidate blanks on."}),(0,t.jsxs)("div",{className:"text-sm sm:text-base text-brand-slate max-w-2xl mx-auto leading-relaxed pt-1 space-y-2",children:[(0,t.jsxs)("p",{children:["TAILOR writes your answer, tailored to the specific job ad, structured to ",(0,t.jsx)("strong",{className:"text-navy",children:"WIN"}),"."]}),(0,t.jsx)("p",{children:`Included in your application pack and ${o.optimised} in your voice, based on your career and built exclusively from your own experience.`}),(0,t.jsx)("p",{children:"Download the audio file to practice as needed."})]}),(0,t.jsx)("div",{className:"mt-6 mx-auto max-w-2xl rounded-2xl bg-navy text-white px-5 sm:px-7 py-5 sm:py-6 shadow-lg",children:(0,t.jsxs)("div",{className:"flex items-center gap-4 sm:gap-5",children:[(0,t.jsx)("div",{className:"shrink-0 inline-flex items-center justify-center w-14 h-14 sm:w-16 sm:h-16 rounded-xl bg-gold/15 ring-1 ring-gold/30 text-gold",children:(0,t.jsx)(_.SpeakerWaveIcon,{className:"w-7 h-7 sm:w-8 sm:h-8",strokeWidth:1.75,"aria-hidden":"true"})}),(0,t.jsxs)("div",{className:"min-w-0 text-left",children:[(0,t.jsx)("p",{className:"text-[10px] sm:text-[11px] uppercase tracking-[0.18em] font-bold text-gold mb-1",children:"New · Audio Companion"}),(0,t.jsx)("p",{className:"font-playfair text-lg sm:text-xl text-white leading-snug",children:"Hear your answer read aloud."}),(0,t.jsxs)("p",{className:"text-xs sm:text-sm text-slate-300 leading-relaxed pt-1",children:["James, our professional voice, reads your personalised and ",o.optimised," answer back to you. Leaving you to perfect your pacing so you can confidently walk into your interview already knowing how the perfect answer to this question will sound."]})]})]})})]})]}),(0,t.jsxs)("section",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"text-center space-y-1",children:[(0,t.jsx)("p",{className:"text-xs uppercase tracking-wider text-brand-gray font-semibold",children:"What you get from one job description"}),(0,t.jsx)("h3",{className:"font-playfair text-2xl sm:text-3xl text-navy",children:"Seven documents. One bundle. One run."}),(0,t.jsx)("p",{className:"font-playfair text-lg sm:text-xl text-gold leading-snug pt-1",children:"Everything you need to go from application to interview, in minutes."})]}),(0,t.jsxs)("div",{className:"text-center max-w-xl mx-auto pt-1 pb-2",children:[(0,t.jsx)("p",{className:"font-playfair italic text-base sm:text-lg text-navy",children:"Most people apply. The best candidates prepare."}),(0,t.jsx)("p",{className:"font-playfair font-bold text-xl sm:text-2xl text-navy leading-snug mt-3",children:"This does both with a single click."})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3",children:[{Icon:N.DocumentTextIcon,title:`${o.optimised.charAt(0).toUpperCase()}${o.optimised.slice(1)} ${o.CV}`,body:"Rebuilt around the JD. Same evidence, sharper signal.",tagline:`Rewrites your ${o.CV} to match the role, using your real experience.`},{Icon:k.ChartBarSquareIcon,title:"Alignment Report",body:"What they want vs what you have. Gaps flagged honestly, never hidden.",tagline:"Get the unfair advantage and instantly strengthen how well you match."},{Icon:S.EnvelopeIcon,title:"Cover Letter",body:"Addresses weaknesses before they become objections. Personal, not generic.",tagline:"Turns potential red flags into reasons to hire you."},{Icon:C.ChatBubbleLeftRightIcon,title:"Strategic Interview Briefing",body:`Presence in the Room, Power Phrases, the three things this interviewer is silently ${o.optimising} for, six signature stories in STAR + CAR.`,tagline:`The private briefing no other ${o.CV} tool produces.`},{Icon:A.BuildingOffice2Icon,title:"Company Research",body:"Know who you're meeting and what they care about, before you walk in.",tagline:"What they care about (so you sound like an insider)."},{Icon:T.CalendarDaysIcon,title:"30, 60, 90 Day Implementation Plan",body:"Executive summary, stakeholder map, three phases each with challenges to navigate, risk register, resource ask, 6 + 12 month horizon.",tagline:"The board-paper plan that earns you the second interview."}].map(({Icon:e,title:a,body:s,tagline:n})=>(0,t.jsxs)("div",{className:"relative overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-xs p-4 sm:p-5 space-y-1.5",children:[(0,t.jsx)("div",{"aria-hidden":!0,
1className:"absolute -right-6 -bottom-6 opacity-[0.05] rotate-12 text-navy pointer-events-none",children:(0,t.jsx)(e,{className:"w-[140px] h-[140px]",strokeWidth:1.25})}),(0,t.jsxs)("div",{className:"relative flex items-center gap-2.5",children:[(0,t.jsx)("span",{className:"inline-flex items-center justify-center w-9 h-9 rounded-lg bg-navy/5 text-navy shrink-0",children:(0,t.jsx)(e,{className:"w-5 h-5",strokeWidth:1.75,"aria-hidden":"true"})}),(0,t.jsx)("h4",{className:"font-bold text-navy text-sm",children:a})]}),(0,t.jsx)("p",{className:"relative text-xs text-brand-gray leading-relaxed",children:s}),n&&(0,t.jsx)("p",{className:"relative font-playfair text-sm text-gold italic leading-snug pt-0.5",children:n})]},a))}),(0,t.jsxs)("div",{className:"text-center pt-2 space-y-1.5",children:[(0,t.jsxs)("p",{className:"text-sm sm:text-base text-brand-slate",children:["All seven documents per session."," ",(0,t.jsx)("a",{href:"/pricing",className:"text-navy underline underline-offset-2 hover:text-navy-light font-semibold",children:"See plans"})]}),(0,t.jsxs)("p",{className:"text-xs text-brand-gray max-w-2xl mx-auto leading-relaxed",children:["Honest, evidence-based application enhancement. From ",o.CV," to interview prep, every claim traceable to your real experience."]})]})]}),(0,t.jsxs)("section",{className:"relative overflow-hidden rounded-2xl bg-linear-to-br from-navy via-navy to-navy-light text-white shadow-lg",children:[(0,t.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-1.5 bg-gold","aria-hidden":!0}),(0,t.jsx)("div",{"aria-hidden":!0,className:"absolute -right-14 -top-14 opacity-[0.07] rotate-12 text-gold",children:(0,t.jsx)(Y,{className:"w-[320px] h-[320px]",strokeWidth:1.1})}),(0,t.jsxs)("div",{className:"relative p-8 sm:p-10 space-y-6",children:[(0,t.jsxs)("div",{className:"text-center max-w-3xl mx-auto space-y-2",children:[(0,t.jsx)("p",{className:"text-[11px] uppercase tracking-[0.25em] font-bold text-gold",children:"The Battle Card · Included with every TAILOR run"}),(0,t.jsx)("h3",{className:"font-playfair text-3xl sm:text-4xl text-white leading-tight",children:"Walk in armed."}),(0,t.jsx)("p",{className:"text-base sm:text-lg text-gold-light font-semibold italic",children:"One page. Five weapons. Built from your career, not a template."})]}),(0,t.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-5 gap-3",children:["Your opening line","Your Strongest Five","Three Power Phrases","Five intelligent questions","Your closing question"].map((e,a)=>(0,t.jsxs)("div",{className:"rounded-lg bg-white/5 border border-gold/20 p-3 text-center",children:[(0,t.jsx)("p",{className:"text-[10px] uppercase tracking-wider font-bold text-gold mb-1",children:String(a+1).padStart(2,"0")}),(0,t.jsx)("p",{className:"text-xs sm:text-sm text-white font-semibold leading-snug",children:e})]},e))}),(0,t.jsx)("p",{className:"text-xs text-slate-400 text-center italic",children:".docx · one A4 page · print, fold, pocket"})]})]}),(0,t.jsx)(y,{}),(0,t.jsx)("div",{className:"text-center text-xs sm:text-sm text-brand-gray",children:(0,t.jsx)("p",{children:(0,t.jsx)("a",{href:"/cancel",className:"hover:text-navy underline-offset-2 hover:underline",children:"Cancel any time, no traps"})})}),(0,t.jsxs)("section",{className:"rounded-2xl bg-navy text-white p-6 sm:p-8 text-center space-y-5",children:[(0,t.jsxs)("div",{className:"max-w-2xl mx-auto",children:[(0,t.jsx)("p",{className:"text-xs uppercase tracking-wider text-gold font-semibold mb-1.5",children:"Now on the Chrome Web Store"}),(0,t.jsxs)("h3",{className:"font-playfair text-xl sm:text-2xl mb-1.5",children:["One click on any job ad and ",o.optimise," your application. Get Tailored."]}),(0,t.jsx)("p",{className:"text-sm text-slate-300 leading-relaxed",children:"The Chrome extension drops a button onto the job ad. One 
1click imports the description into TAILOR direct. No copy / paste. Six tailored documents in minutes."})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-3 items-center",children:[(0,t.jsx)("a",{href:"https://chromewebstore.google.com/detail/tailor-ai-cv-tailoring/deboimkolpjgjidkjodiiaeaoodhihec",target:"_blank",rel:"noopener noreferrer","aria-label":"Install TAILOR free from the Chrome Web Store",className:"inline-block hover:opacity-90 transition-opacity",onClick:()=>{try{let e=document.cookie.match(/(?:^|;\s*)tailor_anon_id=([^;]+)/)?.[1]??null,t=JSON.stringify({event_type:"cws_listing_click",source:"web",metadata:{location:"homepage_install_badge",anon_id:e}});navigator.sendBeacon?.("/api/installs/event",new Blob([t],{type:"application/json"}))}catch{}},children:(0,t.jsx)("img",{src:"/chrome-web-store-badge.png",alt:"Available in the Chrome Web Store",width:340,height:96,className:"h-auto w-full max-w-[280px] sm:max-w-[340px]"})}),(0,t.jsx)("p",{className:"text-xs text-slate-300 italic",children:"Click the badge to install free from the Chrome Web Store"})]})]}),(0,t.jsx)("div",{className:"text-center max-w-3xl mx-auto px-2",children:(0,t.jsxs)("p",{className:"text-xs sm:text-sm text-brand-gray leading-relaxed",children:[(0,t.jsx)("span",{className:"font-semibold text-navy",children:"When you click Add to Chrome,"})," ","you'll see two dialogs because TAILOR is brand new on the store. The first (",(0,t.jsx)("em",{children:"“Proceed with caution”"}),") is standard for any new extension. Click ",(0,t.jsx)("strong",{className:"text-navy",children:"Continue to install"}),". The second lists what TAILOR can do: read job ads on the supported job boards, detect when you're on a supported page and copy generated documents to your clipboard. Nothing else. Click ",(0,t.jsx)("strong",{className:"text-navy",children:"Add extension"})," ","and you're done."]})}),(0,t.jsxs)("section",{className:"rounded-2xl bg-gold-light border border-gold/30 p-6 sm:p-8 text-center space-y-4",children:[(0,t.jsxs)("div",{className:"max-w-2xl mx-auto",children:[(0,t.jsxs)("h3",{className:"font-playfair text-xl sm:text-2xl text-navy mb-1",children:["Ready to ",o.optimise," your whole application?"]}),(0,t.jsxs)("p",{className:"text-sm text-brand-gray",children:["Sending the same ",o.CV," out and hearing nothing back? Paste it with the job ad and you'll get the whole set, a tailored ",o.CV,", a cover letter, an interview brief and more, each built to clear the ATS, the recruiter and the hiring manager. No credit card needed."]})]}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row gap-3 justify-center",children:[(0,t.jsxs)("a",{href:"#analyse-form",className:"text-center px-5 py-2.5 rounded-xl bg-navy text-white font-bold text-sm hover:bg-navy-light transition-colors",children:["Paste your ",o.CV," below to start your full ",o.optimisation," session ↓"]}),(0,t.jsx)("a",{href:"/health-check",className:"text-center px-5 py-2.5 rounded-xl border border-navy text-navy font-semibold text-sm hover:bg-white transition-colors",children:"Or run a free Health Check →"})]})]})]}),!H&&em&&(0,t.jsxs)("section",{className:"rounded-2xl bg-navy text-white px-5 sm:px-8 py-6 text-center space-y-2",children:[(0,t.jsx)("h2",{className:"font-playfair text-2xl sm:text-3xl font-bold leading-snug",children:"JD imported. Ready when you are."}),(0,t.jsxs)("p",{className:"text-slate-300 max-w-xl mx-auto text-sm",children:["Add your ",o.CV," below and hit Analyse to run the full framework against the JD."]})]}),em&&(0,t.jsxs)("div",{className:"rounded-xl border border-green-200 bg-green-50 px-5 py-4 flex items-start gap-3",children:[(0,t.jsx)("span",{className:"text-green-600 text-xl shrink-0 mt-0.5",children:"✓"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsx)("p",{className:"text-sm font-bold text-green-800 leading-snug",children:"You've just completed the first step to maximising your chances of passing an ATS screen and impressing a Hiring Manager."}),(0,t.jsx)("p",{className:"text-xs text-green-700 mt-2 mb-1.5 font-semibold uppercase tracking-wide",children:"Your next steps:"}),(0,t.jsxs)("ul",{className:"space-y-1.5",children:[(0,t.jsxs)("li",{className:"flex items-start gap-2 text-xs text-green-800",children:[(0,t.jsx)("span",{className:"font-bold shrink-0",children:"1."}),(0,t.jsxs)("span",{children:[(0,t.jsxs)("strong",{children:["Upload your ",o.CV]})," ","in Step 1 on the left, any format works. Hit ",(0,t.jsx)("strong",{children:"Analyse & Tailor"})," ","and your tailored ",o.CV," will be ready in just minutes."]})]}),(0,t.jsxs)("li",{className:"flex items-start gap-2 text-xs text-green-800",children:[(0,t.jsx)("span",{className:"font-bold shrink-0",children:"2."}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{children:"Review your Alignment Report"}),". See exactly how well your experience matches this role and where the gaps are."]})]}),(0,t.jsxs)("li",{className:"flex items-start gap-2 text-xs text-green-800",children:[(0,t.jsx)("span",{className:"font-bold shrink-0",children:"3."}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{children:"Review your Cover Letter"}),". Crafted to address any gaps identified in your Alignment Report."]})]}),(0,t.jsxs)("li",{className:"flex items-start gap-2 text-xs text-green-800",children:[(0,t.jsx)("span",{className:"font-bold shrink-0",children:"4."}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{children:"Review your Strategic Interview Briefing"}),". Presence in the Room, Power Phrases and six STAR + CAR stories, built around this 
1specific role and interviewer."]})]}),(0,t.jsxs)("li",{className:"flex items-start gap-2 text-xs text-green-800",children:[(0,t.jsx)("span",{className:"font-bold shrink-0",children:"5."}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{children:"Review the generated Company/Organisation Research document"}),". Know who you're talking to before you walk in the door."]})]}),(0,t.jsxs)("li",{className:"flex items-start gap-2 text-xs text-green-800",children:[(0,t.jsx)("span",{className:"font-bold shrink-0",children:"6."}),(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{children:"Review your 30, 60, 90 Day Implementation Plan"}),". Stakeholder map, three phases with challenges to navigate, risk register and a 6 + 12 month horizon, shows you're already thinking like you're in the role."]})]})]}),(0,t.jsx)("p",{className:"text-xs text-green-700 mt-4 italic",children:"You will be invited to save this session, along with any other analysis sessions during your subscription, where you can reload and organise them in your Application Process Tracker."})]}),(0,t.jsx)("button",{onClick:()=>eh(!1),className:"ml-2 text-green-400 hover:text-green-600 shrink-0 text-xl leading-none",children:"×"})]}),eJ.user&&(0,t.jsx)(ei,{subscription:eJ.subscription,isAdmin:eJ.isAdmin,bypassBilling:eJ.bypassBilling,compTrial:eJ.compTrial}),eK&&(0,t.jsxs)("div",{className:"rounded-xl border border-green-200 bg-green-50 px-5 py-4 flex items-start gap-3",children:[(0,t.jsx)("span",{className:"text-green-600 text-xl shrink-0 mt-0.5",children:"✓"}),(0,t.jsxs)("div",{className:"flex-1",children:[(0,t.jsxs)("p",{className:"text-sm font-bold text-green-800 leading-snug",children:["We’ve pre-filled your ",o.CV," from your Health Check."]}),(0,t.jsx)("p",{className:"text-xs text-green-700 mt-1",children:"Just paste a job ad on the right and we’ll run the full bundle."})]}),(0,t.jsx)("button",{onClick:()=>eQ(!1),"aria-label":"Dismiss",className:"ml-2 text-green-400 hover:text-green-600 shrink-0 text-xl leading-none",children:"×"})]}),(0,t.jsxs)("section",{id:"analyse-form",className:"rounded-2xl bg-white border border-slate-200 shadow-xs p-4 sm:p-6 space-y-6 scroll-mt-6",children:[(0,t.jsxs)("div",{className:"flex flex-col md:flex-row gap-6 sm:gap-8",children:[(0,t.jsx)(r.DropZone,{label:`Your ${o.CV}`,step:"1",state:b,onChange:f}),(0,t.jsx)("div",{className:"hidden md:flex items-stretch",children:(0,t.jsx)("div",{className:"w-px bg-slate-100 self-stretch"})}),(0,t.jsx)(r.DropZone,{label:"Job Description",step:"2",state:j,onChange:w})]}),(0,t.jsxs)("div",{className:"border-t border-slate-100 pt-5",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>O(e=>!e),className:"flex items-center gap-2 text-sm font-semibold text-navy hover:text-gold transition-colors","aria-expanded":L,children:[(0,t.jsx)("span",{className:"text-brand-gray font-normal",children:"Optional"}),"Anything true about you that isn’t on your ",o.CV,"?",(0,t.jsx)("span",{className:`transition-transform ${L?"rotate-90":""}`,"aria-hidden":"true",children:"›"})]}),L&&(0,t.jsxs)("div",{className:"mt-3 space-y-2",children:[(0,t.jsxs)("p",{className:"text-xs text-brand-gray leading-relaxed",children:["Work you never wrote up, who you actually dealt with, a qualification, or paste your LinkedIn experience. Write it the way a good ",o.CV,"bullet reads: what you did, how, and the number that proves it. Always say where and when. We’ll tell you what we used and what we couldn’t, and we’ll never write in something you can’t back up in an interview."]}),(0,t.jsxs)("div",{className:"rounded-lg bg-slate-50 border border-slate-100 px-3 py-2 space-y-1",children:[(0,t.jsxs)("p",{className:"text-[11px] text-brand-gray",children:[(0,t.jsx)("span",{className:"font-semibold text-green-700",children:"Works:"})," ",(0,t.jsx)("span",{className:"italic",children:"Rebuilt reporting across 8 hotels at [employer] in 2025, cutting the monthly close from 5 days to 2."})," ",(0,t.jsx)("span",{className:"text-slate-400",children:"Action, how, and a number we can stand behind."})]}),(0,t.jsxs)("p",{className:"text-[11px] text-brand-gray",children:[(0,t.jsx)("span",{className:"font-semibold text-amber-700",children:"Won’t:"})," ",(0,t.jsx)("span",{className:"italic",children:"I’m great at reporting."})," ",(0,t.jsx)("span",{className:"text-slate-400",children:"Nothing to place it against, so we’ll ask you for the detail instead."})]})]}),(0,t.jsx)("textarea",{value:I,onChange:e=>R(e.target.value.slice(0,6e3)),rows:5,placeholder:"Ran the CRM migration at [employer] in 2023, moving 40 users onto one system inside a quarter\n\nPresented monthly to the owners at [employer] from 2023 to 2025, not just the GM\n\nOr paste your LinkedIn experience and we’ll match it to the right role by employer and dates",className:"w-full rounded-xl border border-slate-200 p-3 text-sm text-brand-dark placeholder:text-slate-400 focus:border-gold focus:ring-1 focus:ring-gold outline-hidden resize-y"}),(0,t.jsxs)("p",{className:"text-[11px] text-slate-400 text-right",children:[I.length,"/6000"]})]})]})]}),(0,t.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row items-center gap-3",children:[(0,t.jsxs)("button",{onClick:()=>eY(()=>eS(!0)),disabled:!e0,className:"group px-12 py-4 rounded-2xl bg-gold text-navy font-black text-base shadow-lg hover:bg-gold-dark hover:shadow-xl hover:-translate-y-0.5 disabled:opacity-40 disabled:cursor-not-allowed disabled:translate-y-0 transition-all duration-200",children:[o.Analyse," & ",o.Optimise," ",(0,t.jsx)("span",{className:"ml-2 group-hover:ml-3 transition-all",children:"→"})]}),(0,t.jsxs)("a",{href:"/build-cv",className:"group px-8 py-4 rounded-2xl bg-white border-2 border-navy text-navy font-bold text-sm hover:bg-navy hover:text-white hover:-translate-y-0.5 transition-all duration-200 text-center",children:["Don’t have a ",o.CV," yet? ",(0,t.jsx)("span",{className:"font-black",children:"Build one in just minutes"})," ",(0,t.jsx)("span",{className:"ml-1 group-hover:ml-2 transition-all",children:"→"})]})]}
1),!e0&&!H&&(0,t.jsxs)("p",{className:"text-xs text-brand-gray",children:["Add your ",o.CV," and a job description above to use the Tailor flow, or build a ",o.CV," from scratch on the right."]}),(0,t.jsxs)("p",{className:"text-xs text-brand-gray pt-1",children:["Just want to score your ",o.CV,"? ",(0,t.jsx)("a",{href:"/health-check",className:"underline underline-offset-2 hover:text-navy font-semibold",children:"Run the free Health Check →"})]})]}),ep&&(0,t.jsxs)("div",{className:"rounded-2xl bg-red-50 border border-red-200 p-5",children:[(0,t.jsx)("p",{className:"font-bold text-red-700",children:"Analysis failed"}),(0,t.jsx)("p",{className:"text-sm text-red-600 mt-1",children:ep})]})]})]}),"sessions"===c&&(0,t.jsxs)("section",{className:"rounded-2xl bg-white border border-slate-200 shadow-xs p-6",children:[(0,t.jsx)("h2",{className:"text-xl font-bold text-navy mb-1",children:"Saved Sessions"}),(0,t.jsx)("p",{className:"text-sm text-brand-gray mb-6",children:"Track your applications, load sessions before interviews and monitor your match score progress."}),(0,t.jsx)(eg,{onLoadSession:(e,t,a)=>{z(e),er(!0),eo(t),ex(a),Q(!0),g("new")}})]})]}),(0,t.jsx)(v.SiteFooter,{marginTop:"mt-16",navLinks:[{href:"/methodology",label:"How it works"},{href:"/blog",label:"Blog"},{href:"/health-check",label:"Free Health Check"},{href:"/pricing",label:"Pricing"},{href:"/terms",label:"Terms"},{href:"/privacy",label:"Privacy"},...eJ.user?[{href:"/account",label:"Account"}]:[]]}),eU,(0,t.jsx)(p.ReviewExitIntentModal,{visible:eV.visible,onClose:()=>eV.setVisible(!1),featureLabel:"TAILOR analysis",rating:eA,setRating:eT,comments:eI,setComments:eR,displayPublicly:eD,setDisplayPublicly:e$,displayName:eW,setDisplayName:eG,displayCity:eH,setDisplayCity:eF,onSubmit:e_,submitting:eL,error:eE}),ek&&(0,t.jsx)("div",{className:"fixed inset-0 z-60 flex items-center justify-center bg-black/50 px-4",role:"dialog","aria-modal":"true","aria-labelledby":"confirm-analyse-title",onClick:()=>eS(!1),children:(0,t.jsxs)("div",{className:"relative max-w-md w-full rounded-2xl bg-white border border-gold shadow-2xl p-6 sm:p-7",onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("h3",{id:"confirm-analyse-title",className:"font-playfair text-xl text-navy mb-3",children:"Before we start"}),(0,t.jsx)("p",{className:"text-sm text-brand-dark leading-relaxed",children:"Your analysis will take a couple of minutes to compile. Keep this tab open and don’t switch away as closing this tab when the analysis starts will use one of your analyses sessions."}),(0,t.jsxs)("div",{className:"mt-6 flex flex-col-reverse sm:flex-row gap-2 sm:justify-end",children:[(0,t.jsx)("button",{type:"button",onClick:()=>eS(!1),className:"px-4 py-2.5 rounded-xl border border-slate-300 text-brand-slate font-semibold text-sm hover:bg-slate-50 transition-colors",children:"Cancel"}),(0,t.jsx)("button",{type:"button",onClick:()=>{eS(!1),e1()},className:"px-5 py-2.5 rounded-xl bg-navy text-white font-bold text-sm hover:opacity-90 transition-opacity",children:"Continue →"})]})]})})]})}],52683)}]);

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.