{
  "common": {
    "loading": "Loading...",
    "error": "Something went wrong",
    "retry": "Try again",
    "retryAction": "Retry",
    "retrying": "Retrying...",
    "save": "Save",
    "cancel": "Cancel",
    "back": "Back",
    "next": "Next",
    "submit": "Submit",
    "search": "Search",
    "noResults": "No results found",
    "viewAll": "View all",
    "uploading": "Uploading",
    "showLess": "Show less",
    "readMore": "Read more",
    "loadMore": "Load more",
    "loadingMore": "Loading more…",
    "close": "Close",
    "dismiss": "Dismiss",
    "candidate": "Candidate",
    "candidateWithId": "Candidate #{{ id }}",
    "saving": "Saving…",
    "locale": {
      "en": "EN",
      "fr": "FR",
      "nl": "NL"
    },
    "languageName": {
      "en": "English",
      "fr": "French",
      "nl": "Dutch"
    }
  },
  "activity": {
    "empty": "Nothing yet. Mia will log every step of your journey here.",
    "loadMore": "Load more",
    "loading": "Loading…",
    "seeAll": "See full activity"
  },
  "onboarding": {
    "welcomeGreeting": "Hi {{name}}! I'm",
    "welcomeMessage": "I'll help recruiters discover you. Ready to build your profile?",
    "letsGo": "Let's go",
    "resumePrompt": "Great. First, let's look at your professional history. Drop your resume below.",
    "dragDropResume": "Drag & drop your PDF here",
    "resumeFormats": "Supported formats: PDF (Max 5MB)",
    "pdfRequired": "Please upload a PDF file.",
    "videoRequired": "Please upload a video file (MP4, MOV, WebM).",
    "videoTooLarge": "Video is too large. Max 100 MB.",
    "videoTooLong": "The video is too long. Maximum duration is 65 seconds.",
    "videoTooShort": "The video is too short. Please record at least 50 seconds.",
    "videoDurationUnknown": "Unable to verify video duration. Please try a different file.",
    "videoNoContent": "The recorded video appears to be empty. Please check your camera and microphone permissions and record again.",
    "resumeTooLarge": "Resume is too large. Max 5 MB.",
    "uploadFailed": "Upload failed. Please try again.",
    "uploadDifferentFile": "Upload a different file",
    "videoPrompt": "Impressive background! Now, let's add a personal touch. Recruiters love to see the human behind the text.",
    "introPromptTitle": "1-Minute Intro Prompt",
    "tipWhoYouAre": "Who you are & what drives you.",
    "tipProblemsYouSolve": "The core problems you love solving.",
    "tipWhyFit": "Why you're a perfect fit for a forward-thinking team.",
    "recordVideo": "Record video",
    "videoGuideHelp": "Need help? View our video guide.",
    "orUploadVideo": "Or upload a video file",
    "recordNewVideo": "Record a new video",
    "synthesizingPrompt": "Synthesizing your profile... Hang tight, I'm finding your best match.",
    "profileComplete": "Profile Complete!",
    "completeMessage": "All set, {{name}}. Your profile goes to recruiters shortly. Use the time to take your tests and raise your score first.",
    "goToConsole": "Go to my console",
    "miaActive": "Mia is active",
    "stepReadingResume": "Reading your resume...",
    "stepExtractingSkills": "Extracting skills & experience...",
    "stepAnalyzingCareer": "Analyzing career trajectory...",
    "stepTranscribingVideo": "Transcribing video...",
    "stepAnalyzingCommunication": "Analyzing communication style...",
    "stepExtractingTraits": "Extracting personality traits...",
    "miaIsStarting": "Mia is starting up...",
    "stepBuildingProfile": "Building your profile...",
    "stepMatchingRoles": "Matching skills to roles...",
    "stepGeneratingInsights": "Generating insights...",
    "finishLater": "Finish later",
    "finishLaterHint": "Your progress is saved. Sign back in any time to resume.",
    "notifyMeTitle": "Mia is on it. You don't have to wait here.",
    "notifyMeBody": "This can take a few minutes. Close the tab or sign out, and I'll email you the moment your profile is ready.",
    "notifyMeCta": "Sign out and wait for Mia's email",
    "error": {
      "videoCorrupted": "The video appears to be corrupted or empty. Please record a new video.",
      "videoAnalysisFailed": "Video analysis failed. Please try again.",
      "resumeAnalysisFailed": "Resume analysis failed. Please try again.",
      "synthesisFailed": "Profile synthesis failed. Please try again.",
      "analysisTimedOut": "This is taking longer than it should. Nothing is wrong with your file, so please try again."
    }
  },
  "recorder": {
    "placeholderTitle": "Record your introduction video",
    "startCamera": "Start Camera",
    "startRecording": "Start Recording",
    "autoCompleteHint": "Recording completes automatically, {{time}} left. Speak until the end.",
    "stopRecording": "Stop Recording",
    "useRecording": "Use This Recording",
    "reRecord": "Re-record",
    "confirmTooShort": "Please record at least {{ seconds }} seconds.",
    "permissionDenied": "Camera access denied. Please allow camera and microphone access."
  },
  "videoPlayer": {
    "noVideo": "No video selected"
  },
  "nav": {
    "home": "Home",
    "login": "Log in",
    "register": "Sign up",
    "logout": "Log out",
    "console": "Console",
    "profile": "Profile",
    "invites": "Invitations",
    "earnings": "Earnings",
    "wallet": "Wallet",
    "inviteEarn": "Invite & Earn",
    "credits": "Credits",
    "search": "Search",
    "jobs": "Jobs",
    "settings": "Settings",
    "support": "Support",
    "admin": "Admin panel",
    "subscription": "Subscription",
    "language": "Language",
    "howItWorks": "How It Works",
    "lockedDuringOnboarding": "Complete onboarding to unlock",
    "myCandidates": "My Candidates",
    "myJourney": "My Journey",
    "events": "Events",
    "smartHr": "Smart HR",
    "advocatePosts": "Posts to share",
    "partnerEvents": "Partner events",
    "saved": "Saved",
    "savedSearches": "Saved searches",
    "savedCandidates": "Saved candidates",
    "testYourSkills": "Test Your Skills",
    "gpsPill": "Overall score",
    "menu": "Menu",
    "openMenu": "Open menu",
    "closeMenu": "Close menu",
    "explore": "Explore",
    "more": "More",
    "pipeline": "Pipeline",
    "partnerNetwork": "Partner network",
    "previewAsRecruiter": "Recruiter view",
    "promote": "Promote my profile",
    "coaching": "Coaching",
    "activity": "Activity",
    "miaRecord": "What Mia recorded",
    "comparisons": "Comparisons"
  },
  "siteNav": {
    "tagline": "Hiring that sees personality, not just paper. Discover who people truly are.",
    "copyright": "SNYPRA SRL. All rights reserved.",
    "candidates": "Candidates",
    "recruiters": "Recruiters",
    "companies": "Companies",
    "pricing": "Pricing",
    "partners": "Partner recruiters",
    "advocates": "Employee advocates",
    "events": "Events",
    "story": "Our story",
    "contact": "Contact",
    "videoGuide": "Video guide",
    "methodology": "How the tests work",
    "privacy": "Privacy policy",
    "terms": "Terms of use",
    "colPlatform": "Platform",
    "colMoreWaysIn": "More ways in",
    "colCompany": "Company",
    "colLegal": "Legal",
    "legalNotice": "Legal notice",
    "opportunities": "Opportunities"
  },
  "recruiterConsole": {
    "walletGate": {
      "title": "Load your wallet to start searching",
      "body": "Searching costs nothing, but it opens once your wallet has a balance: the profiles you open and the invites that are accepted are paid from it. Pick a pack, and your first load is matched if you're a founding recruiter.",
      "cta": "Load wallet"
    },
    "quotaWarn": {
      "body": "{{remaining}} of {{limit}} searches left today.",
      "cta": "See your quota"
    },
    "empty": {
      "title": "No matches yet, but don't stop here.",
      "body": "No candidates match this search today. Save it and I'll let you know the moment someone who fits joins the network.",
      "save": "Save this search",
      "newSearch": "Try a new search",
      "savedConfirm": "Saved. I'll watch for new matches",
      "hint": "Your saved searches are under Search, in Saved searches. You can turn alerts off any time.",
      "fluxTitle": "Nobody today. Which is exactly what a flow is for.",
      "fluxBody": "A flow re-runs this search every night and brings you the new profiles as soon as they join the network."
    },
    "smartHrBanner": {
      "title": "Turn this search into a flow",
      "body": "A saved search waits. With Smart HR it becomes a flow Mia runs for you, matching and sourcing candidates every day. It also unlocks your employer brand page, employee advocacy and sponsored events.",
      "emptyTitle": "Nobody today doesn't mean nobody.",
      "emptyBody": "A saved search waits for someone matching to sign up. With Smart HR, Mia goes looking: external sourcing plus your partner-recruiter and employee networks bring these profiles to you.",
      "cta": "Activate Smart HR"
    },
    "sort": {
      "match": "Best match",
      "demand": "Most in demand"
    },
    "saveModal": {
      "title": "Save this search",
      "notifyToggle": "Notify me when a match joins",
      "notifyHint": "You can mute notifications any time from your saved searches list.",
      "save": "Save",
      "saving": "Saving…",
      "limitReached": "You've hit the saved-searches limit. Delete one from Saved searches to add another.",
      "notSpecific": "This search is too open-ended to save: a saved search needs a role, skill, domain or city to watch for. Add one and search again.",
      "genericError": "Couldn't save this search. Try again in a moment."
    },
    "quotaCap": {
      "title": "You've hit today's search limit",
      "body": "You've used all {{limit}} searches in the last 24 hours. Take a breath; we'll open it back up as the window rolls. Your saved candidates and pipeline are still open.",
      "resetsAt": "New searches unlock at {{when}}.",
      "viewQuota": "View your quota",
      "myCandidates": "Go to my candidates"
    },
    "search": {
      "hero": {
        "title": "Tell me who you're looking for.",
        "subtitle": "I'll pulse through the network to find your perfect match."
      },
      "placeholder": "Describe your ideal candidate: traits, seniority, skills, domain, location…",
      "hint": "Press Enter to search · Shift + Enter for a new line",
      "cta": "Search",
      "searching": "Searching…",
      "dismiss": "Dismiss",
      "intentLabel": "Here's what I understood",
      "yearsExp": "years exp.",
      "newSearch": "Start a new search",
      "templatesTitle": "Suggested for you",
      "templateBasis": {
        "opening": "From one of your job adverts",
        "description": "From your hiring needs",
        "likely_role": "A role your company often hires",
        "popular": "Well represented on Snypra"
      },
      "templatesLoading": "Loading suggestions",
      "templatesHint": "A suggestion goes into the search box: adjust it, then search.",
      "templateNoCandidates": "no candidates yet",
      "results": {
        "found": {
          "one": "{{count}} match found",
          "other": "{{count}} matches found"
        },
        "noExact": "No exact match. The closest candidates are below",
        "topMatches": "Top matches",
        "thinking": "Mia is evaluating candidates",
        "empty": "No candidates match this search yet. Try broadening your criteria or check back as more candidates join."
      },
      "card": {
        "maskedRole": "Identity revealed on invitation",
        "competency": "Skills",
        "personality": "Personality",
        "miaThinks": "Mia thinks",
        "viewProfile": "View profile",
        "viewCostHint": "{{price}} · free re-view for {{dedupDays}} days",
        "viewFreeHint": "Free to open: you viewed this profile in the last {{dedupDays}} days",
        "invite": "Invite to interview",
        "invitePending": "Invitation sent",
        "viewInPipeline": "View in my candidates",
        "shortlist": "Save to shortlist",
        "playPreview": "Play screening preview",
        "screeningBadge": "Screening",
        "noSkills": "No skills listed",
        "testsIncomplete": "Tests not completed · {{done}}/4",
        "noTraits": "No trait data",
        "gpsTooltip": {
          "title": "Overall score (GPS)",
          "body": "GPS {{gps}}/1000 sums up the challenges this candidate has taken, across four sections: cognitive, skills, communication and personality.",
          "notRanking": "It is not a judgement of the person, and it is not part of the match score: it decides neither who comes up nor in what order. What it moves is the price.",
          "scale": "Price scales from {{min}} (GPS 0) to {{max}} (GPS 1000).",
          "flameNote": "Hot profile: +{{pct}} price multiplier ({{flames}} flame(s))."
        },
        "pausePreview": "Pause screening preview",
        "lookingFor": "Looking for"
      },
      "inviteConfirm": {
        "title": "Send an interview invitation?",
        "message": "Mia will draft the invitation, then you can review and edit before sending. Sending locks {{price}} from your wallet as escrow, refunded if the candidate declines or the invite expires.",
        "confirmLabel": "Continue to draft",
        "cancelLabel": "Not now"
      },
      "saveSearch": {
        "cta": "Save search & notify me",
        "saved": "Saved",
        "hint": "Mia will send you a note when a new candidate matches this search."
      },
      "broadenedHeader": "Broader matches",
      "broadenedCount": "{{ count }} additional candidates",
      "relaxationReason": {
        "location": "No strict location matches, so here are broader areas.",
        "seniority": "Seniority widened to nearby levels, so here are related candidates.",
        "language": "Language requirement relaxed, so here are candidates without a strict language match.",
        "role_family": "No exact role match, so here are related roles from the same field.",
        "domain": "No exact role match, so here are candidates from the same field, assessed by Mia."
      },
      "clarify": {
        "title": "Mia needs one more detail",
        "optionsLabel": "Try one of these",
        "notCounted": "This didn't count against your daily searches."
      },
      "noMatch": {
        "title": "Nobody matches this yet",
        "body": "No candidate on Snypra fits « {{query}} » right now. Save the search and Mia will alert you the moment one does.",
        "understood": "Mia understood:",
        "cta": "Save this search"
      },
      "unavailable": {
        "title": "Search is having trouble",
        "body": "Something went wrong on our side and Mia couldn't check these profiles properly. Rather than show unverified results, we'd rather you try again in a moment.",
        "retry": "Try again",
        "notCounted": "This didn't count against your daily searches."
      },
      "poolTruncated": "There were more candidates than Mia could assess in one pass. Narrow your search to be sure you're seeing the best matches."
    },
    "locationDefault": {
      "title": "No place in your query.",
      "body": "Showing every country, with {{place}} ranked first",
      "strictCta": "Search {{place}} only",
      "hint": "Name a place to target one: “Paris, France”, or “anywhere in France”.",
      "chipDefault": "default",
      "strictTitle": "Limited to {{place}} only.",
      "strictBody": "Candidates in other countries are not shown.",
      "strictReset": "Show all countries again",
      "chipStrict": "only"
    },
    "chipRemoval": {
      "pending": "You removed a criterion. The results below still include it.",
      "cta": "Search again"
    }
  },
  "traits": {
    "leadership": "Leadership",
    "communication": "Communication",
    "collaboration": "Collaboration",
    "adaptability": "Adaptability",
    "problem_solving": "Problem Solving",
    "ownership": "Ownership",
    "intellectual_curiosity": "Intellectual Curiosity",
    "emotional_intelligence": "Emotional Intelligence"
  },
  "recruiterSettings": {
    "title": "Settings",
    "subtitle": "Manage your profile, quota, and account.",
    "profile": {
      "title": "Profile",
      "displayName": "Display name",
      "language": "Preferred language",
      "save": "Save",
      "saving": "Saving…",
      "saved": "Saved."
    },
    "quota": {
      "title": "Search quota",
      "subtitle": "Your daily search limit grows as your account ages and you engage with candidates.",
      "loading": "Loading your quota…",
      "retry": "Retry",
      "usedToday": "searches used today",
      "remaining": "{{remaining}} remaining in this window.",
      "resetsAt": "Resets at {{when}}.",
      "overrideActive": "Admin override in effect.",
      "howToGrow": "How to grow your tier",
      "grow": {
        "t1": "After 7 days of good standing you move to tier 1 (10 searches/day).",
        "t2": "After 30 days with at least one accepted invitation you reach tier 2 (25 searches/day).",
        "t3": "After 90 days with {{spend}}+ loaded and regular activity you reach tier 3 (100 searches/day)."
      },
      "tier": {
        "t0": "Tier 0 · New",
        "t1": "Tier 1 · Settled",
        "t2": "Tier 2 · Proven",
        "t3": "Tier 3 · Established",
        "t4": "Tier 4 · Unlimited"
      }
    },
    "savedSearches": {
      "title": "Saved searches",
      "pointer": "Your saved searches live under Search, where you can open them, re-run them or manage alerts.",
      "manageCta": "Manage saved searches"
    },
    "notifications": {
      "title": "Notifications",
      "comingSoon": "Preference center coming soon. For now every notification uses your preferred language."
    },
    "account": {
      "title": "Account",
      "changePassword": "Change password",
      "signOut": "Sign out"
    }
  },
  "recruiterVerification": {
    "badge": {
      "verified": "Verified",
      "pending": "Pending verification",
      "rejected": "Not verified"
    },
    "pending": {
      "title": "Your account is under review",
      "body": "We verify every recruiter to protect our candidates. This usually takes less than 24 hours.",
      "hint": "Complete your company profile to speed up verification.",
      "completeProfile": "Complete my profile"
    },
    "submitted": {
      "title": "Verification submitted",
      "body": "Our team is reviewing your company information. You'll be notified as soon as the review is complete, usually within 24 hours.",
      "viewProfile": "View my profile"
    },
    "rejected": {
      "title": "Verification not approved",
      "body": "We were unable to verify your company at this time. If you believe this is an error, please reach out with additional documentation.",
      "reasonLabel": "Reason",
      "contactUs": "Contact us"
    },
    "roleAtCompany": "Your role",
    "selectRole": "Select your role",
    "roles": {
      "talentAcquisition": "Talent Acquisition / HR",
      "founderCeo": "Founder / CEO",
      "hiringManager": "Hiring Manager",
      "agencyRecruiter": "Agency Recruiter",
      "other": "Other"
    },
    "hiringContext": {
      "legend": "Who do you hire for?",
      "ownCompany": "For my own company",
      "ownCompanyHint": "You recruit for the company you work at (direct employer).",
      "onBehalf": "On behalf of client companies",
      "onBehalfHint": "You're an agency, headhunter, or independent recruiter placing candidates at other companies.",
      "both": "Both",
      "bothHint": "Your company places candidates for clients and also hires for itself."
    },
    "companyDescription": "Tell us about your company and hiring needs",
    "companyDescriptionHint": "Your answer helps Mia draft better invitations, and it is what our team reads when reviewing your company.",
    "companyDescriptionPlaceholder": "E.g. We're a 40-person fintech scale-up based in Brussels, building payment tools for SMEs. Over the next 6 months we're hiring a senior backend engineer (Python, distributed systems), a Head of Design and a growth marketer. Remote-first culture, writing matters, we value autonomy over titles.",
    "country": "Country",
    "countryLocked": "Set when you created your account, and it decides which company identifiers we ask for. Contact us if it is wrong.",
    "countries": {
      "BE": "Belgium",
      "FR": "France",
      "NL": "Netherlands"
    },
    "lockedNote": "Locked once your details are submitted for review. Contact us if you need this changed.",
    "errors": {
      "fieldLocked": "That answer was locked when your company was submitted for review. Contact us if it needs to change.",
      "companyNameIsEmail": "This looks like an email address. Enter your company's name, for example “Tom&Co”."
    }
  },
  "recruiterProfile": {
    "title": "Company profile",
    "subtitle": "This information helps Mia personalise your search and gives candidates context about your company.",
    "company": {
      "title": "Company information",
      "name": "Company name",
      "logo": "Company logo",
      "logoUpload": "Upload logo",
      "logoUploading": "Uploading…",
      "logoHint": "JPEG or PNG, max 5 MB.",
      "industry": "Industry",
      "industryPlaceholder": "e.g. Fintech, Healthcare, SaaS",
      "website": "Website",
      "websitePlaceholder": "https://",
      "size": "Company size",
      "sizePlaceholder": "Select size",
      "taxId": {
        "BE": "VAT number (TVA/BTW)",
        "FR": "VAT number (TVA)",
        "NL": "VAT number (BTW)"
      },
      "taxIdPlaceholder": {
        "BE": "BE0123.456.789",
        "FR": "FR12 345678901",
        "NL": "NL123456789B01"
      },
      "regId": {
        "BE": "Enterprise number (BCE/KBO)",
        "FR": "SIRET",
        "NL": "KVK number"
      },
      "regIdPlaceholder": {
        "BE": "0123.456.789",
        "FR": "123 456 789 00012",
        "NL": "12345678"
      },
      "address": "Company address",
      "street": "Street",
      "city": "City",
      "postalCode": "Postal code",
      "ownedByOrg": "These come from your company page. Change them there.",
      "editOnPage": "Manage it in Smart HR"
    },
    "identity": {
      "title": "Your identity",
      "name": "Full name",
      "email": "Email",
      "emailReadonly": "Managed by your account",
      "phone": "Phone",
      "phonePlaceholder": "+32 ...",
      "linkedIn": "LinkedIn profile",
      "linkedInPlaceholder": "https://linkedin.com/in/...",
      "language": "Preferred language",
      "languageLocked": "Language switching is disabled during the MVP while we finish translating every Mia output. We'll unlock it in a follow-up release.",
      "avatar": "Profile photo",
      "avatarUpload": "Upload photo",
      "avatarUploading": "Uploading…"
    },
    "activity": {
      "title": "Activity snapshot",
      "searches": "Searches this month",
      "invitesSent": "Invites sent",
      "invitesAccepted": "Invites accepted",
      "memberSince": "Member since"
    },
    "verification": {
      "submit": "Submit for verification",
      "submitting": "Submitting…",
      "fillRequired": "Fill in all mandatory fields (*) to submit.",
      "fillRequiredNamed": "Still needed before you can submit:",
      "submittedTitle": "Verification submitted",
      "submittedBody": "Our team is reviewing your company. You'll be notified within 24 hours."
    },
    "verificationGuide": {
      "title": "Complete your profile to get verified",
      "body": "We review every recruiter account to protect our candidates. Fill in the fields marked with * and save, and our team will verify your company within 24 hours.",
      "incomplete": "Some mandatory fields are still missing.",
      "ready": "All mandatory fields are complete. Your profile is ready for review."
    },
    "save": "Save",
    "saving": "Saving…",
    "saved": "Saved.",
    "errorGeneric": "Something went wrong. Please try again."
  },
  "salary": {
    "eyebrow": "Salary insight",
    "title": "Your market range",
    "expectationError": "We couldn't save that. Double-check the numbers and try again.",
    "confidence": {
      "high": "High confidence",
      "mid": "Medium confidence",
      "low": "Low confidence"
    },
    "expectation": {
      "title": "What you're asking for",
      "empty": "Add your target range so recruiters see it after an invite is accepted.",
      "add": "Add expectation",
      "edit": "Edit",
      "currency": "Currency",
      "seeking": "Seeking",
      "ideal": "Ideal",
      "maximum": "Maximum",
      "save": "Save",
      "saving": "Saving…",
      "cancel": "Cancel",
      "clear": "Clear"
    }
  },
  "recruiterDetail": {
    "updating": {
      "title": "This profile is being updated",
      "body": "Snypra now reads only what a candidate says, never how they look or sound. This profile was analysed before that change and will be redone the next time the candidate opens Snypra. You have not been charged."
    },
    "testAnalysis": {
      "emptyTitle": "No test data available",
      "emptyDesc": "This candidate hasn't completed any test challenges yet. Test data appears here automatically once they take the Test Your Skills assessment.",
      "validationDisclaimer": "Design-stage assessment, not yet independently validated. Use as one input alongside your own judgement, not as a sole hiring criterion.",
      "challengesDone": "{{done}}/{{total}} challenges completed",
      "suiteIncompleteTitle": "Not enough of the suite yet",
      "suiteIncompleteDesc": "This candidate has completed {{done}} of {{total}} challenges. The analysis reads all four sections together, so it needs every section started and at least {{required}} challenges overall.",
      "askToFinish": "Ask them to finish",
      "asking": "Sending…",
      "askSent": "Asked on {{date}}. You can ask again from {{next}}.",
      "askJustSent": "Asked. Mia has let them know which sections are missing.",
      "askNote": "Mia will tell them which sections are missing. The challenges are free for them, and you can send this once a week.",
      "sectionsUntouched": "A section at 0 has not been started. That is missing evidence, not a weak result: the analysis cannot speak to it at all.",
      "basedOn": "Based on {{done}} of {{total}} challenges:",
      "priority": {
        "high": "High priority",
        "medium": "Medium priority",
        "low": "Low priority"
      },
      "dimension": {
        "cognitive_ability": "Cognitive ability",
        "skill_depth": "Skill depth",
        "communication_effectiveness": "Communication effectiveness",
        "self_awareness": "Self-awareness",
        "problem_solving": "Problem solving",
        "leadership_potential": "Leadership potential",
        "adaptability": "Adaptability",
        "collaboration": "Collaboration"
      },
      "howItWorks": "How the tests work",
      "resultsHeading": "Test results",
      "sectionNotEntered": "Section not started"
    },
    "paywall": {
      "title": "Top up to view this profile",
      "body": "Each profile view costs {{price}} and is free for re-views within {{dedupDays}} days. Your wallet doesn't have enough balance to see this candidate's full synthesis right now.",
      "cta": "Go to wallet"
    },
    "notSearchable": {
      "title": "No longer visible in search",
      "body": "This candidate set their profile to private. They stay in your list because you already saved them, but they won't appear in new searches until they change it back."
    },
    "sendInvite": "Send Mia Invitation",
    "topUpToInvite": "Top up to invite"
  },
  "inviteSend": {
    "titleWithName": "Send a Mia-crafted introduction to {{firstName}}",
    "titleNoName": "Send a Mia-crafted introduction",
    "subtitle": "Mia drafts the introduction. You review, lightly edit, and send.",
    "drafting": "Mia is drafting your introduction…",
    "retry": "Try again",
    "subjectLabel": "Subject",
    "bodyLabel": "Introduction",
    "editHint": "You can edit Mia's draft, but the framing stays, because candidates trust Mia's voice.",
    "contextTitle": "About this candidate",
    "topTraits": "Cross-checked traits",
    "whyMatch": "Why I think this is a good match",
    "costReminder": "{{inviteCost}} escrowed on send",
    "costDetail": "Debited only if {{firstName}} accepts. Released if declined or expired in {{expiryDays}} days.",
    "balanceAvailable": "Available: {{current}} → {{after}} after escrow",
    "balanceLow": "Not enough available balance ({{current}}). Top up to send.",
    "cancel": "Cancel",
    "send": "Send introduction",
    "sending": "Escrowing {{inviteCost}}…",
    "sentTitle": "Invitation sent to {{firstName}}",
    "sentBody": "You'll be notified when they respond.",
    "done": "Done",
    "roleLabel": "Role you are hiring for",
    "rolePlaceholder": "e.g. Senior backend engineer",
    "roleChange": "Change",
    "roleFrom": {
      "flow": "From your flow “{{origin}}”",
      "search_match": "From your search “{{origin}}”",
      "recent_search": "From your most recent search “{{origin}}”. Change it if that is not this role."
    },
    "roleApply": "Draft with this role"
  },
  "recruiterOnboarding": {
    "guidedBy": "Guided by Mia",
    "skip": "Skip for now",
    "progress": "Tour progress",
    "goToStep": "Go to step {{step}} of {{total}}",
    "previous": "Back",
    "next": "Continue",
    "nextHighlight": "Next highlight",
    "placeholderNote": "Full content for this step lands in Day 4 of the sprint plan.",
    "step1": {
      "title": "Welcome to Snypra",
      "quote": "Hi, I'm Mia, Snypra's hiring intelligence. I'll show you how this works in under two minutes. By the end you'll know exactly what you're paying for.",
      "body": "Snypra isn't a job board. It's a smart hiring system where I decode every candidate's video and CV, score 8 personality dimensions, and write the introductions you send. You only see candidates I've prepared for you, and you only pay when something real happens."
    },
    "step2": {
      "title": "A real candidate profile",
      "subtitle": "This is exactly what you'll see when you open a candidate's profile. The data here is from a sample candidate I prepared for the tour.",
      "videoPlaceholder": "In real candidate profiles, you'd see a 60-second intro video here, recorded by the candidate. I read what they say in it alongside their CV, never how they look or sound.",
      "tooltips": {
        "radar": "No scores here. For each trait I show whether two different kinds of source agree on it: video, conversation, CV, tests. A trait only one source mentions is a question for the interview.",
        "narrative": "My free-form analysis. What kind of person they are at work, beyond the numbers. This is where I tell you what the scores actually mean for your team.",
        "competencies": "Technical and domain skills extracted from their CV with proficiency levels and years of evidence. Linked back to specific roles in their work history.",
        "positioning": "How I'd position this candidate to a hiring manager. Their differentiators, the gaps worth probing in an interview, and the questions I'd ask to validate the fit."
      }
    },
    "step3": {
      "title": "How invitations work",
      "subtitle": "You don't message candidates on Snypra. I draft a personal introduction for every invitation you send, built from the candidate's full synthesis and the context of your role.",
      "howStep1": {
        "title": "You click \"Send Mia Invitation\"",
        "body": "On any candidate's profile. I read their synthesis and your role context, and draft an introduction in your name."
      },
      "howStep2": {
        "title": "You review and lightly edit",
        "body": "Mia's voice stays: that is what makes candidates trust the invitation. You adjust the framing if you want to."
      },
      "howStep3": {
        "title": "You only pay if they accept",
        "body": "The invite's price is escrowed when you send: {{inviteFrom}} to {{inviteTo}} depending on what the candidate has proved, or {{noVideoFrom}} to {{noVideoTo}} for a profile without a video. If the candidate accepts, it's debited. If they decline or the invitation expires after {{expiryDays}} days, you get all of it back."
      },
      "callout": "Acceptance rate is the platform's quality metric. Because Mia curates every invitation, candidates take them seriously, and recruiters who send well land more meetings.",
      "exampleLabel": "Example invitation",
      "exampleTo": "To {{name}}'s inbox"
    },
    "step4": {
      "title": "Pricing",
      "subtitle": "No subscription. No tiers. You pay only for what you actually consume. Your wallet never expires.",
      "viewLabel": "Open a profile",
      "viewDetail": "Free for the same recruiter viewing the same candidate within {{dedupDays}} days.",
      "inviteLabel": "Accepted invitation",
      "inviteDetail": "Only billed when the candidate accepts. Declined or expired invitations cost nothing.",
      "summary": "Pay for outcomes, not access.",
      "packsHeading": "Wallet packs",
      "noVideoLine": "Without a video: {{from}} to {{to}}"
    },
    "step5": {
      "title": "Load your wallet",
      "subtitle": "Pick a pack to fund your wallet. You can mix views and invitations however you want once it's loaded.",
      "foundingTitle": "You're a founding recruiter",
      "foundingBody": "Your first wallet load is matched, capped at {{cap}}. Pick Trial or Starter below to claim your bonus, locked in for life.",
      "youGet": "You get",
      "bonus": "bonus",
      "redirecting": "Redirecting to Stripe…",
      "skipToConsole": "Skip for now, explore the empty interface",
      "cta": "Open my wallet"
    }
  },
  "recruiterSignup": {
    "title": "Join Snypra as a recruiter",
    "subtitle": "Mia helps you find the right people, not just any people. Set up your account in under a minute.",
    "creating": "Creating your account…",
    "submit": "Create my account",
    "alreadyHaveAccount": "Already have an account?",
    "signIn": "Sign in",
    "fields": {
      "fullName": "Full name",
      "email": "Work email",
      "companyName": "Company name",
      "country": "Country",
      "selectCountry": "Select your country",
      "countryHint": "We're rolling out gradually, and are currently available in Belgium, France and the Netherlands.",
      "language": "Language for Mia",
      "languageHint": "Mia uses this for emails, invitation drafts, and synthesis narratives. Cannot be changed later.",
      "password": "Password",
      "passwordHint": "Min. 12 characters, with at least one number and one symbol.",
      "showPassword": "Show password",
      "hidePassword": "Hide password",
      "tosPrefix": "I agree to the ",
      "tosTermsLink": "Terms of Service",
      "tosBetween": " and ",
      "tosPrivacyLink": "Privacy Policy",
      "tosSuffix": "."
    },
    "errors": {
      "fullNameRequired": "Please enter your full name.",
      "emailInvalid": "Please enter a valid email address.",
      "companyNameRequired": "Please enter your company name.",
      "companyNameIsEmail": "This looks like an email address. Enter your company's name, for example “Tom&Co”.",
      "countryRequired": "Please select your country.",
      "passwordRequired": "Please choose a password.",
      "passwordMinLength": "Password must be at least 12 characters.",
      "passwordNeedsDigit": "Password must contain at least one number.",
      "passwordNeedsSymbol": "Password must contain at least one symbol.",
      "tosRequired": "Please accept the Terms of Service to continue."
    }
  },
  "recruiterSavedSearches": {
    "eyebrow": "Saved searches",
    "title": "Your saved searches",
    "subtitle": "Mia watches these every morning. When new candidates fit, you'll see a summary here and in your inbox.",
    "loading": "Loading your saved searches…",
    "retry": "Retry",
    "error": "Failed to load saved searches.",
    "savedOn": "Saved {{when}}",
    "matchesAtSave": "{{n}} matches at save",
    "lastNotified": "Last updated {{when}}",
    "newMatchBadge": "{{n}} new",
    "totalTracked": "{{total}} total tracked ({{new}} new)",
    "empty": {
      "title": "No saved searches yet",
      "body": "Run a search in the console. If results are sparse or you want ongoing alerts, save it from there.",
      "cta": "Go to search console"
    },
    "action": {
      "open": "Open",
      "runNow": "Run now",
      "notify": "Alert me",
      "delete": "Delete"
    },
    "detail": {
      "eyebrow": "Saved search",
      "back": "Back to saved searches",
      "recentMatchesTitle": "Recent matches",
      "recentMatchesEmpty": "No recent matches yet. The next daily sweep will tell you if anyone fits.",
      "readiness": "Readiness",
      "viewProfile": "View profile",
      "nowPrivate": "Profile is currently private.",
      "missingId": "Saved search id missing from URL.",
      "error": "Failed to load saved search details."
    },
    "invalidBanner": {
      "title": "This saved search can no longer match anyone",
      "body": "The stored version of this query carries nothing the matching can act on. Run the search again and save it fresh.",
      "cta": "Run the search again",
      "badge": "Cannot match"
    }
  },
  "recruiterSavedCandidates": {
    "eyebrow": "Saved candidates",
    "title": "Your saved candidates",
    "subtitle": "Candidates you've shortlisted appear here. Remove them anytime.",
    "loading": "Loading your saved candidates…",
    "retry": "Retry",
    "error": "Failed to load saved candidates.",
    "savedOn": "Saved {{when}}",
    "readiness": "Readiness",
    "sortBy": "Sort by",
    "sort": {
      "recent": "Recently saved",
      "role": "Role"
    },
    "empty": {
      "title": "No saved candidates yet",
      "body": "Heart candidates from the search console to save them here for quick access.",
      "cta": "Go to search"
    },
    "action": {
      "viewProfile": "View profile",
      "remove": "Remove"
    },
    "readinessLevels": {
      "high": "High",
      "medium": "Medium",
      "low": "Low"
    }
  },
  "recruiterInvites": {
    "title": "Your invitations",
    "subtitle": "This page tracks your outbound invites. Accepted candidates move to Pipeline.",
    "loading": "Loading your invitations…",
    "findCandidates": "Find candidates",
    "tabs": {
      "pending": "Pending",
      "accepted": "Accepted",
      "declined": "Declined",
      "expired": "Expired"
    },
    "status": {
      "pending": "Pending",
      "accepted": "Accepted",
      "declined": "Declined",
      "expired": "Expired"
    },
    "empty": {
      "pending": "No pending invitations. Send one from a candidate's profile.",
      "accepted": "No accepted invitations yet. They'll appear here when candidates accept.",
      "declined": "No declined invitations.",
      "expired": "No expired invitations."
    },
    "sent": "Sent",
    "expiresIn": "Expires in",
    "days": "d",
    "acceptedAt": "Accepted",
    "declinedAt": "Declined",
    "expiredAt": "Expired",
    "escrowed": "{{amount}} escrowed",
    "charged": "{{amount}} charged",
    "refunded": "{{amount}} refunded",
    "acceptedHint": "Contact info revealed on this candidate's profile. Continue the conversation off-platform.",
    "declineReason": {
      "wrong_level": "Wrong level",
      "wrong_domain": "Wrong domain",
      "wrong_location": "Wrong location",
      "wrong_contract": "Wrong contract or hours",
      "not_looking": "Not looking right now",
      "company_concern": "Company concern",
      "other": "Other"
    },
    "viewInPipeline": "Open in Pipeline"
  },
  "inviteEarn": {
    "eyebrow": "Invite & Earn",
    "title": "Bring the people you rate",
    "subtitle": "Snypra pays you when recruiters reach out. Invite the people you'd vouch for: they land bonus credits on day one, and for six months you earn alongside every win they have.",
    "hero": {
      "linkLabel": "Your personal link"
    },
    "link": {
      "copy": "Copy",
      "copied": "Copied"
    },
    "share": {
      "message": "Come find work on Snypra with me. Recruiters reach out to you, and you get paid for your profile. Here's your way in:",
      "emailSubject": "An invite to Snypra",
      "whatsapp": "WhatsApp",
      "linkedin": "LinkedIn",
      "email": "Email",
      "more": "More",
      "linkedinPost": "I've been using Snypra to get discovered by recruiters. No cover letters, no application black holes. They reach out to you, and you get paid for your profile. If you're open to what's next, take a look 👇",
      "linkedinPanel": {
        "title": "Your LinkedIn post is ready",
        "copied": "Copied to your clipboard. Open LinkedIn and paste it in (Ctrl/Cmd+V).",
        "manual": "Copy the text above, then open LinkedIn and paste it into your post.",
        "open": "Open LinkedIn"
      }
    },
    "steps": {
      "title": "How it works",
      "detailsLink": "See the details",
      "step1": {
        "title": "Share your link",
        "body": "Send it to friends, family, your group chat, anyone you'd genuinely recommend."
      },
      "step2": {
        "title": "They join",
        "body": "They sign up, build their profile, and start with {{welcomeCr}} bonus credits from Snypra."
      },
      "step3": {
        "title": "You earn together",
        "body": "When they go live you get {{bonus}}, then {{rate}} of what they earn for six months, always on top and never from their pocket."
      }
    },
    "email": {
      "heading": "Prefer email? Send an invite",
      "placeholder": "friend@email.com",
      "send": "Send invite",
      "sending": "Sending…",
      "resending": "Resending…",
      "status": {
        "sent": "Invite on its way.",
        "resent": "We sent it again.",
        "already_invited": "Already invited. You can resend after a day if it didn't land.",
        "already_member": "They're already on Snypra with you.",
        "existing_user": "They already have a Snypra account.",
        "self": "That's your own address. Invite someone else!",
        "capped": "You've filled all 100 spots in your circle. Nice work.",
        "invalid_email": "That doesn't look like an email address."
      }
    },
    "stats": {
      "earned": "Earned together",
      "friends": "Friends earning",
      "circle": "Your circle"
    },
    "list": {
      "heading": "Your circle",
      "empty": "No one yet. Share your link and watch your circle grow.",
      "anonymous": "New friend",
      "joined": "Joined",
      "invited": "Invited",
      "resend": "Resend"
    },
    "journey": {
      "invited": "Invited",
      "joined": "Joined",
      "earning": "Earning"
    },
    "status": {
      "pending": "Invited",
      "joined": "Joined",
      "activated": "Earning",
      "expired": "Window closed"
    },
    "howItWorks": {
      "title": "How Invite & Earn works",
      "close": "Got it",
      "lead": "Everything you earn here is added by Snypra. The people you invite always keep all of what they make.",
      "d1": {
        "h": "You earn as they earn",
        "b": "For six months from the day they join, you get {{rate}} of their Snypra earnings, paid to your wallet, on top of theirs."
      },
      "d2": {
        "h": "A {{bonus}} head start",
        "b": "The first time someone you invited completes their profile and goes live to recruiters, you get a one-time {{bonus}}."
      },
      "d3": {
        "h": "Up to 100 friends",
        "b": "Invite as many as 100 people. Each one starts with 50 bonus credits for joining through you."
      },
      "note": "Referral earnings show up in your wallet, right next to everything else you make on Snypra."
    }
  },
  "wallet": {
    "eyebrow": "Available balance",
    "escrowed": "{{amount}} escrowed in pending invites",
    "totalLoaded": "{{amount}} loaded total",
    "topUpTitle": "Top up your wallet",
    "topUpSubtitle": "No subscription. Pay only for what you use. Your wallet never expires.",
    "vatNotice": "Prices exclude VAT. VAT is calculated at checkout based on your country and VAT status.",
    "youGet": "You get",
    "toSpend": "to spend",
    "redirecting": "Redirecting to Stripe…",
    "historyTitle": "Recent activity",
    "foundingTitle": "You're a founding recruiter",
    "foundingBody": "Your first wallet load is matched, up to the Starter pack. Pick Trial or Starter below to claim your bonus, locked in for life.",
    "redirectSuccess": "Payment successful! Your wallet will update in a moment as we process the credit.",
    "redirectCancelled": "Payment cancelled. No charge was made, so try again whenever you're ready.",
    "txTypes": {
      "load": "Wallet load",
      "loadBonus": "Founding bonus",
      "viewDebit": "Profile view",
      "inviteEscrow": "Invite escrow",
      "inviteDebit": "Invite accepted",
      "inviteRefund": "Invite refunded",
      "refund": "Refund",
      "recruiterTestAnalysisUnlock": "Test analysis unlock",
      "askMiaReserve": "Ask Mia time held",
      "askMiaSettle": "Ask Mia (voice)",
      "askMiaRelease": "Unused Ask Mia time returned",
      "askMiaAnswer": "Ask Mia (typed answer)",
      "recruiterSynthesisUnlock": "Synthesis unlock",
      "smartHrActivation": "Smart HR licence",
      "smartHrRenewal": "Smart HR renewal",
      "flowReach": "Flow delivery",
      "unknown": "Transaction",
      "adminGrant": "Administrative adjustment"
    },
    "filter": {
      "all": "All",
      "loads": "Loads",
      "views": "Views",
      "invites": "Invites",
      "unlocks": "Unlocks",
      "askMia": "Ask Mia",
      "smartHr": "Smart HR"
    },
    "downloadInvoice": "Download invoice",
    "bonusBadge": "Bonus",
    "foundingBadge": "Founding Recruiter",
    "empty": {
      "headline": "No transactions yet",
      "body": "Your wallet activity will show up here as you load funds, view candidates, and send invites.",
      "filtered": "No transactions match this filter."
    },
    "packs": {
      "trial": {
        "label": "Trial",
        "tagline": "Test Snypra with one real introduction"
      },
      "starter": {
        "label": "Starter",
        "tagline": "Enough to fill a single role end-to-end"
      },
      "growth": {
        "label": "Growth",
        "tagline": "Active multi-role recruiting"
      },
      "scale": {
        "label": "Scale",
        "tagline": "Agencies and continuous high-volume hiring"
      }
    },
    "stripe": {
      "productName": "Snypra wallet · {{label}} pack"
    },
    "txDetail": {
      "pack": "Pack {{name}}"
    }
  },
  "invites": {
    "eyebrow": "Your inbox",
    "title": "Invitations",
    "subtitle": "Curated introductions Mia drafted on behalf of recruiters who want to talk to you.",
    "received": "Received",
    "expiresIn": "Expires in {{days}} days",
    "unknownCompany": "A company on Snypra",
    "readAboutCompany": "Read about {{company}}",
    "youDeclined": "You declined",
    "roleLabel": "Role",
    "tabs": {
      "active": "Active",
      "accepted": "Accepted",
      "declined": "Declined",
      "expired": "Expired"
    },
    "status": {
      "pending": "Pending",
      "accepted": "Accepted",
      "declined": "Declined",
      "expired": "Expired"
    },
    "actions": {
      "accept": "Accept",
      "decline": "Decline"
    },
    "declineReasons": {
      "wrong_level": "Wrong seniority level",
      "wrong_domain": "Wrong domain or stack",
      "wrong_location": "Wrong location",
      "wrong_contract": "Wrong contract or hours",
      "not_looking": "Not looking right now",
      "company_concern": "Company isn't a fit",
      "other": "Other"
    },
    "acceptModal": {
      "title": "Accept this invitation?",
      "body": "The recruiter will get your full contact info and you'll earn {{amount}}. You can take the conversation from there.",
      "confirm": "Yes, accept",
      "submitting": "Accepting…"
    },
    "declineModal": {
      "title": "Decline this invitation?",
      "body": "Your decline helps Mia show you better matches in the future. Picking a reason is optional but appreciated.",
      "reasonLabel": "Reason (optional)",
      "freeTextLabel": "Anything else? (optional)",
      "freeTextPlaceholder": "Share more if it helps Mia learn what you're looking for…",
      "confirm": "Decline invitation",
      "submitting": "Declining…"
    },
    "empty": {
      "pending": {
        "headline": "No invitations yet",
        "body": "When recruiters discover your profile and want to talk, Mia will draft a personalized introduction and you'll see it here. In the meantime, share your profile to boost your visibility."
      },
      "accepted": {
        "headline": "No accepted invitations",
        "body": "Invitations you accept will show up here so you can keep track of recruiter conversations."
      },
      "declined": {
        "headline": "No declined invitations",
        "body": "Invitations you decline will appear here. Each decline helps Mia learn what you're not looking for."
      },
      "expired": {
        "headline": "No expired invitations",
        "body": "Invitations that you didn't respond to within 14 days will appear here."
      }
    },
    "notifications": {
      "rejectedTitle": "{{recruiter}} has decided not to move forward",
      "rejectedBody": "Thank you for the opportunity you gave them. Keep building your profile; other recruiters are watching."
    },
    "statusFilter": "Filter invitations by status"
  },
  "earnings": {
    "eyebrow": "Your earnings balance",
    "ledgerOnly": "Ledger only · payouts coming soon",
    "summaryTitle": "Where your earnings come from",
    "ledgerTitle": "Recent activity",
    "boostBadge": "BOOSTED",
    "summary": {
      "views": "Profile views",
      "invitesAccepted": "Invitations accepted",
      "socialBoost": "Social boost"
    },
    "eventTypes": {
      "view": "Profile viewed by a recruiter",
      "inviteAccepted": "You accepted an invitation",
      "socialBoost": "Social boost activated",
      "referral": "Referral earning"
    },
    "empty": {
      "headline": "Your earnings will show up here",
      "body": "As recruiters discover your profile and reach out, your earnings will accumulate in real time. Share your profile to double your view rate for 30 days."
    },
    "pageTitle": "Earnings"
  },
  "credits": {
    "eyebrow": "Your credit balance",
    "topUpTitle": "Get more credits",
    "topUpSubtitle": "Credits pay for coaching with Mia, by voice or in writing.",
    "vatNotice": "Prices exclude VAT. VAT is calculated at checkout based on your country.",
    "youGet": "You get",
    "creditsUnit": "credits",
    "redirecting": "Redirecting to Stripe…",
    "redirectSuccess": "Payment successful! Your credits will update shortly.",
    "redirectCancelled": "Payment cancelled. No charge was made.",
    "historyTitle": "Recent activity",
    "filter": {
      "all": "All",
      "purchased": "Purchased",
      "spent": "Spent"
    },
    "txTypes": {
      "signupBonus": "Signup bonus",
      "purchaseBoost": "Boost pack",
      "purchaseCoach": "Coach pack",
      "purchasePower": "Power pack",
      "unlockSynthesis": "Synthesis unlock",
      "unlockRecruiterView": "Recruiter view unlock",
      "unlockBundle": "Bundle unlock",
      "reuploadCv": "CV re-upload",
      "reuploadVideo": "Video re-record",
      "refundPurchase": "Purchase refund",
      "systemRefund": "System refund",
      "challengeEarn": "Challenge completed",
      "challengeUnlock": "Challenge unlocked",
      "unlockSalaryBenchmark": "Salary benchmark unlocked",
      "unlockTestReport": "Test report unlocked",
      "referralWelcomeBonus": "Referral welcome bonus",
      "adminGrant": "Credits granted",
      "coachingReserve": "Coaching time held",
      "coachingSettle": "Coaching (voice)",
      "coachingRelease": "Unused coaching time returned",
      "coachingAnswer": "Coaching (typed answer)",
      "unknown": "Transaction"
    },
    "empty": {
      "headline": "No credit activity yet",
      "body": "Your credits will appear here as you top up or talk with Mia.",
      "filtered": "No transactions match this filter."
    },
    "packs": {
      "boost": {
        "label": "Boost"
      },
      "coach": {
        "label": "Coach"
      },
      "power": {
        "label": "Power"
      }
    },
    "stripe": {
      "productName": "Snypra credits · {{label}} pack",
      "description": "{{credits}} credits · {{tagline}}"
    },
    "pageTitle": "Credits",
    "txDetail": {
      "challenge": "{{section}} · challenge {{index}}/10",
      "pack": "Pack {{name}}"
    },
    "coaching": {
      "title": "Credits pay for coaching with Mia",
      "body": "Talk your profile over with her, by voice or in writing. Pick a pack below; your credits arrive in seconds.",
      "open": "Go to coaching",
      "returnTitle": "Your session with Mia is waiting",
      "returnBody": "Top up below, then go back: you pick up where you left off, or start a new session if the last one closed.",
      "back": "Back to Mia"
    },
    "packMinutes": "About {{minutes}} minutes with Mia"
  },
  "reupload": {
    "confirmBody": "Mia reads the new file and writes a new version of your profile. Updating is free.",
    "confirm": "Update",
    "processing": "Processing…",
    "confirmTitleCv": "Update your CV?",
    "confirmTitleVideo": "Update your video?",
    "confirmWait": "After this update, the next one of the same kind opens {{days}} days later.",
    "waitCv": "You updated your CV recently. Your next CV update opens on {{date}}.",
    "waitVideo": "You updated your video recently. Your next video update opens on {{date}}.",
    "pdfOnly": "Please choose a PDF file.",
    "failed": "The update could not start. Please try again."
  },
  "privacyNotice": {
    "dismiss": "Dismiss",
    "video": {
      "title": "Protect your privacy",
      "body": "Please share only your first name (or a nickname). Avoid your full name, email, phone number, or social handles. This protects you from unwanted contact outside Snypra."
    }
  },
  "auth": {
    "loginTitle": "Welcome back",
    "loginSubtitle": "Sign in to your Snypra account",
    "registerTitle": "Get started",
    "registerSubtitle": "Create your Snypra account",
    "email": "Email address",
    "password": "Password",
    "confirmPassword": "Confirm password",
    "fullName": "Full name",
    "fullNamePlaceholder": "Youssef El Amrani",
    "forgotPassword": "Forgot password?",
    "noAccount": "Don't have an account?",
    "hasAccount": "Already have an account?",
    "signIn": "Sign in",
    "signingIn": "Signing in…",
    "signUp": "Create account",
    "creating": "Creating your account…",
    "withGoogle": "Continue with Google",
    "orContinueWith": "Or continue with",
    "backToHome": "Back to home",
    "languageForMia": "Language for Mia",
    "languageHint": "Mia uses this for emails, drafts and synthesis. Cannot be changed later.",
    "tosPrefix": "I agree to the ",
    "tosTermsLink": "Terms of Service",
    "tosBetween": " and ",
    "tosPrivacyLink": "Privacy Policy",
    "tosSuffix": ".",
    "roleSelect": "I am a...",
    "roleCandidate": "Candidate",
    "roleCandidateDesc": "Looking for my next opportunity",
    "roleRecruiter": "Recruiter",
    "roleRecruiterDesc": "Hiring for my team or clients",
    "roleAdvocate": "Advocate",
    "login": {
      "title": "Sign in",
      "subtitle": "Enter your credentials to access your portal.",
      "miaProcessingTitle": "Mia is still analyzing your profile.",
      "miaProcessingBody": "You can sign back in any time. I'll email you the moment your profile is ready to review."
    },
    "register": {
      "title": "Create your account",
      "subtitle": "Build your professional profile in under a minute.",
      "tabs": {
        "candidate": "I am a Candidate",
        "recruiter": "I am a Recruiter"
      },
      "flowNotice": {
        "paused": {
          "title": "This role is on hold right now",
          "body": "The company paused it, so we can't send you to their page. It may open again, and your profile is what gets you found for it, and for every other role on Snypra."
        },
        "closed": {
          "title": "This role has closed",
          "body": "The company has finished hiring for it. Your profile still counts: Snypra decodes what you're like to work with and puts you in front of the companies looking for it."
        }
      }
    },
    "aside": {
      "login": {
        "headline": "Welcome back.",
        "body": "Mia is ready to help you find your next match. Let's pick up where you left off."
      },
      "register-candidate": {
        "headline": "Start your journey.",
        "body": "Join the next generation of hiring. Mia listens to your story and matches your career heartbeat."
      },
      "register-recruiter": {
        "headline": "Hire with intent.",
        "body": "Mia helps you find the right people, not just any people. Set up your account in under a minute."
      },
      "check-inbox": {
        "headline": "Almost there.",
        "body": "Confirm your email so we know it's really you. Once verified, your account opens up."
      },
      "forgot-password": {
        "headline": "No worries.",
        "body": "Enter your email and we'll send you a link to reset your password."
      },
      "action": {
        "headline": "One more step.",
        "body": "We're confirming your action securely. This takes a moment."
      }
    },
    "checkInbox": {
      "title": "Check your email",
      "subtitle": "We sent you a verification link.",
      "body": "We sent a verification link to {{email}}. Click it to unlock your account, and this page will take you in automatically.",
      "resend": "Resend the email",
      "resending": "Sending…",
      "resendCooldown": "Resend available in {{seconds}}s",
      "resentOk": "Sent. Check your inbox again, and your spam folder.",
      "signOut": "Use a different email",
      "hint": "Already clicked the link? This page will redirect you as soon as we detect the verification.",
      "sendFailed": "We could not send the email just now. Press Resend. Nothing about your account has changed."
    },
    "forgot": {
      "title": "Reset your password",
      "subtitle": "We'll email you a secure reset link.",
      "send": "Send reset link",
      "sending": "Sending…",
      "sentBody": "If an account exists for {{email}}, a reset link is on its way. Check your inbox.",
      "hint": "The link expires after one hour. Didn't get it? Check your spam folder or try again.",
      "backToLogin": "Back to sign in"
    },
    "action": {
      "checking": "Checking your link…",
      "applying": "Applying…",
      "backToLogin": "Back to sign in",
      "reset": {
        "title": "Choose a new password",
        "subtitle": "Make it strong and unique.",
        "lead": "You're resetting the password for {{email}}.",
        "newPassword": "New password",
        "submit": "Update password",
        "submitting": "Updating…",
        "requestNew": "Request a new link",
        "successTitle": "Password updated",
        "successBody": "You can now sign in with your new password.",
        "goToLogin": "Sign in"
      },
      "verify": {
        "title": "Verifying your email",
        "subtitle": "Almost done.",
        "successTitle": "Email verified",
        "successBody": "{{email}} is now verified. Welcome to Snypra.",
        "continue": "Continue to Snypra",
        "handedOff": "Your address is confirmed. Carry on in the Snypra tab you already have open. You can close this one.",
        "continueHere": "Continue here instead"
      },
      "recover": {
        "title": "Restoring your email",
        "subtitle": "Reverting a recent change.",
        "successTitle": "Email restored",
        "successBody": "Your sign-in email has been reverted. Sign in with it to continue."
      },
      "unknown": {
        "title": "Invalid link",
        "subtitle": "We couldn't read this action.",
        "body": "This link is malformed or missing information. Please request a new one from the sign-in page."
      }
    },
    "linking": {
      "title": "One step to link your Google account",
      "body": "You already have a Snypra account for {{email}} with a password. Sign in with your password now and we'll link Google to it for next time.",
      "cancel": "Use a different email"
    },
    "passwordToggle": {
      "show": "Show password",
      "hide": "Hide password"
    },
    "errors": {
      "emailRequired": "Email is required",
      "emailInvalid": "Invalid email address",
      "passwordRequired": "Password is required",
      "passwordMin": "Minimum 6 characters",
      "passwordMin12": "Minimum 12 characters",
      "nameRequired": "Name is required",
      "nameMin": "Minimum 2 characters",
      "tosRequired": "Please accept the Terms of Service to continue.",
      "firebase": {
        "emailAlreadyInUse": "An account with this email already exists. Try signing in instead.",
        "invalidEmail": "Please enter a valid email address.",
        "operationNotAllowed": "This sign-in method is not enabled. Please contact support.",
        "weakPassword": "Password is too weak. Use at least 12 characters with a mix of letters, numbers, and symbols.",
        "userDisabled": "This account has been disabled. Please contact support.",
        "userNotFound": "No account found with this email. Check the address or create an account.",
        "wrongPassword": "Incorrect password. Try again or reset your password.",
        "invalidCredential": "Email or password is incorrect. Try again or reset your password.",
        "tooManyRequests": "Too many attempts. Please wait a moment and try again.",
        "networkRequestFailed": "Network error. Check your connection and try again.",
        "popupClosedByUser": "Sign-in window was closed before completing. Please try again.",
        "popupBlocked": "Your browser blocked the sign-in window. Allow popups for this site and try again.",
        "cancelledPopupRequest": "Another sign-in is already in progress. Please complete it first.",
        "accountExistsWithDifferentCredential": "An account with this email already exists with a different sign-in method. Sign in with that method to link your accounts.",
        "credentialAlreadyInUse": "These credentials are already linked to another account.",
        "requiresRecentLogin": "For your security, please sign in again to complete this action.",
        "expiredActionCode": "This link has expired. Please request a new one.",
        "invalidActionCode": "This link is invalid or has already been used. Please request a new one.",
        "missingPassword": "Please enter your password.",
        "missingEmail": "Please enter your email address.",
        "internalError": "Something went wrong on our end. Please try again.",
        "generic": "Sign-in failed. Please try again, or contact support if the problem persists."
      }
    }
  },
  "console": {
    "readinessScore": "Readiness Score",
    "readinessLabel": "Profile readiness",
    "readiness": {
      "moreRole": "+{{count}} other role.",
      "moreRoles": "+{{count}} other roles.",
      "nearlyOptimized": {
        "withRole": "Your profile is nearly optimized for {{role}} roles.",
        "generic": "Your profile is nearly optimized. Recruiters are seeing a strong candidate."
      },
      "growing": {
        "withRole": "Your profile is growing for {{role}} roles.",
        "generic": "Your profile is growing. A few improvements will boost your visibility."
      },
      "building": {
        "withRole": "Your profile is building for {{role}} roles.",
        "generic": "Your profile is building. Keep adding to strengthen your presence."
      }
    },
    "personalitySnapshot": "Personality Snapshot",
    "earningsPulse": "Earnings overview",
    "earnedThisMonth": "earned this month",
    "totalEarned": "total earned",
    "comingSoon": "Coming soon",
    "pendingInvites": "Pending Invites",
    "noInvitesYet": "No invitations yet. Complete your profile so recruiters can discover you.",
    "newInvitation": "New invitation",
    "viewAllInvites": "View all invitations",
    "accept": "Accept",
    "decline": "Decline",
    "quickActions": "Quick Actions",
    "newVideo": "New Video",
    "editResume": "Edit Resume",
    "statement": "Statement",
    "miaActivity": "Mia's Activity",
    "synthesisCreated": "Synthesis created",
    "profileCompleted": "Profile completed",
    "allMediaUploaded": "All media uploaded",
    "noRecentActivity": "No recent activity",
    "profileLive": "Your profile is live. Recruiters see your video, keywords, and resume.",
    "profileAnalyzing": "Mia is analyzing your profile. Hang tight.",
    "profilePrivate": "You've hidden your profile, so recruiters can't find you. Flip to public in settings when you're ready.",
    "profileDormant": "Your profile is paused in recruiter search because you had been away a long time. Nothing was deleted.",
    "profileDormantCta": "I'm still looking",
    "profileDormantError": "That didn't go through. Please try again.",
    "profilePendingAuto": "Mia is building your readiness. Recruiters will see you once your score crosses 65.",
    "profileIncomplete": "Complete your profile so recruiters can discover you.",
    "testProgressTitle": "Test Your Skills",
    "testProgressGps": "GPS",
    "testProgressTier": {
      "platinum": "Platinum",
      "gold": "Gold",
      "silver": "Silver",
      "bronze": "Bronze",
      "newcomer": "Newcomer"
    },
    "testProgressChallenges": "{{count}}/40 challenges",
    "welcomeTitle": "Welcome,",
    "welcomeMessage": "Upload your video and resume so Mia can analyze your personality and career profile.",
    "completeProfile": "Complete Your Profile",
    "analyzingTitle": "Mia is analyzing your profile...",
    "analyzingMessage": "I'm reviewing your video and resume. This usually takes a minute or two.",
    "viewProgress": "View Progress",
    "errorTitle": "Analysis needs attention",
    "errorMessage": "Something went wrong during analysis. Let's take a look.",
    "viewDetailsRetry": "View Details & Retry",
    "dismiss": "Dismiss",
    "tagLeadership": "#leader",
    "tagCommunication": "#communicator",
    "tagCollaboration": "#collaborative",
    "tagAdaptability": "#adaptable",
    "tagProblemSolving": "#problem-solver",
    "tagOwnership": "#driven",
    "tagCuriosity": "#curious",
    "tagEmotionalIntel": "#empathetic",
    "pageTitle": "Your console",
    "promoteCta": "Share it",
    "nextSteps": {
      "heading": "What to do next",
      "headingDone": "You are all caught up",
      "doneSummary": "Nothing outstanding right now.",
      "doneLabel": "Done",
      "finishProfile": {
        "title": "Finish your profile",
        "reason": "Recruiters cannot find you until it is done.",
        "reasonBelowBar": "Mia scores it below the bar to go out just yet.",
        "reasonAboveBar": "Mia scores it above the bar. Switch your visibility to public to go live now."
      },
      "takeTests": {
        "title": "Test your skills",
        "reason": "{{done}} of {{total}} done. The score sits on your card.",
        "reasonGrace": "~{{hours}}h before recruiters see you. {{done}} of {{total}} done."
      },
      "promote": {
        "title": "Share your profile",
        "reason": "One public page you can send to anyone."
      },
      "refer": {
        "title": "Refer someone",
        "reason": "They get bonus credits, you earn from their wins."
      },
      "coaching": {
        "title": "Talk it over with Mia",
        "reason": "Ask her about your strengths, your gaps and how recruiters read you."
      }
    },
    "whatMiaKnows": "What Mia knows about you",
    "tellMiaWhatChanged": "Tell Mia what changed",
    "talkWithMia": "Talk with Mia"
  },
  "profile": {
    "dock": {
      "label": "Profile actions",
      "update": "Tell Mia what changed",
      "more": "Show profile actions",
      "less": "Hide profile actions"
    },
    "title": "Your Profile",
    "seeAsRecruiter": "See as recruiter",
    "settingsLink": "Settings",
    "inviteEarnLink": "Invite & Earn",
    "privacy": {
      "title": "Privacy & visibility",
      "stealthLabel": "Stealth mode",
      "stealthDescription": "Hide your current employer from recruiters until you accept their invitation. Useful if you don't want your current company to know you're exploring opportunities. Mia will still let recruiters see your skills, traits and synthesis, just not where you currently work.",
      "stealthActiveNote": "Stealth mode is on, so your current employer is hidden until you accept an invite."
    },
    "videoTitle": "Your intro video",
    "videoSubtitle": "High-impact summary for hiring managers",
    "readinessScore": "Readiness Score",
    "views": "VIEWS",
    "replaceVideo": "Replace video",
    "recordVideo": "Record video",
    "noVideoYet": "No video recorded yet.",
    "personalDetails": "Personal Details",
    "currentLocation": "Current Location",
    "locationPlaceholder": "City, Country",
    "yearsOfExperience": "Years of Experience",
    "emailAddress": "Email Address",
    "updated": "Updated",
    "replaceResume": "Replace resume",
    "downloadPdf": "Download PDF",
    "uploadResume": "Upload resume",
    "noResumeYet": "No resume uploaded yet.",
    "activityTitle": "Activity",
    "activitySubtitle": "Every step of your journey with Mia, in reverse chronological order.",
    "synthesisInProgress": "Mia is still analyzing your profile. Suggested career paths will appear here soon.",
    "uploadForRoles": "Upload your video and resume so Mia can suggest career paths for you.",
    "synthesisError": "Something went wrong loading your career insights. Please try refreshing the page.",
    "saveProfileChanges": "Save Profile Changes",
    "saving": "Saving...",
    "dismiss": "Dismiss",
    "testsLink": "Test your skills",
    "pageTitle": "Your profile",
    "workPrefs": {
      "eyebrow": "Your preferences",
      "title": "What you're looking for",
      "subtitle": "Recruiters see this before they pay to view your profile or send you an invitation. None of it hides you from search. It means the invitations you get are ones somebody sent knowing the terms.",
      "edit": "Edit",
      "add": "Add your preferences",
      "saved": "Saved. Recruiters see this from now on.",
      "previewLabel": "How recruiters will see it",
      "empty": {
        "lead": "You haven't said what kind of work you're after.",
        "point1": "A recruiter hiring on a permanent contract can see you only want fixed-term, and skip you, instead of paying to invite you to a role you would have turned down.",
        "point2": "Nothing here removes you from a search. Contract, hours and availability are shown, never filtered.",
        "point3": "Takes about a minute, and you can change it whenever you like.",
        "cta": "Tell recruiters what you want"
      },
      "field": {
        "employmentTypes": "Contract types you'd accept",
        "workTime": "Full or part-time",
        "remotePreference": "How you want to work",
        "willingToRelocate": "Would you move for the right role?",
        "seekingStatus": "Where you are right now",
        "availableFrom": "When you could start",
        "noticeDays": "Days of notice",
        "startDate": "Available from"
      },
      "hint": {
        "employmentTypes": "Pick every type that works for you. Most people accept more than one.",
        "remotePreference": "This one also nudges your ranking on searches that mention remote or on-site work. It never excludes you.",
        "availabilityIncomplete": "Add the notice period or the date before saving."
      },
      "availability": {
        "immediate": "Right away",
        "notice": "After a notice period",
        "date": "From a date"
      }
    },
    "traits": {
      "title": "What Mia noticed",
      "intro": "No scores, here or for recruiters. Each trait is weighed by its best proof: a concrete situation and what you did in it counts as shown, saying it without an example counts as stated. Cross-checked means it is shown in one source and backed by another of a different kind: your conversation with Mia, your video, your tests. Doing more of the same adds nothing; one good example does."
    },
    "roles": {
      "title": "Where recruiters can find you",
      "subtitle": "Mia suggested these roles from your profile. Each role switched on puts you in the searches recruiters run for it. Switch off any role you do not want.",
      "askMia": "Ask Mia why",
      "included": "Included",
      "excluded": "Excluded",
      "switchLabel": "Show me in searches for {{role}}",
      "missing": "Not in your profile yet",
      "updateFailed": "Your choice could not be saved. Please try again."
    }
  },
  "synthesis": {
    "competencyHighlights": "Competency Highlights",
    "miasSynthesis": "Mia's Synthesis",
    "nextStepsTitle": "Next Steps",
    "journey": {
      "title": "Career Trajectory",
      "subtitle": "Strategic growth and professional evolution",
      "yearsExperience": "years experience",
      "trajectory": {
        "ascending": "Ascending",
        "lateral": "Lateral",
        "pivoting": "Pivoting",
        "returning": "Returning",
        "founding": "Founding"
      }
    },
    "proficiency": {
      "confirmed": "CONFIRMED",
      "expert": "EXPERT",
      "senior": "SENIOR"
    },
    "yearsLabel": "{{years}}y",
    "readMore": "Read more",
    "showLess": "Show less",
    "history": {
      "viewing": "Viewing v{{version}} ({{date}})",
      "switchToCurrent": "Switch to current"
    }
  },
  "preview": {
    "readinessScore": "Readiness",
    "miasFullAssessment": "Mia's Full Assessment",
    "hiringPartnerInsight": "Hiring Partner Insight",
    "resumeSignal": "Resume Signal",
    "videoSignal": "Video Signal",
    "competencyMatrix": "Competency Matrix",
    "shareProfile": "Share My Profile",
    "downloadPdf": "Download PDF",
    "backToConsole": "Back to Console",
    "yearsExp": "Years Exp",
    "availableNow": "Available Now",
    "highPotential": "High Potential",
    "readFullAssessment": "Read full assessment",
    "directQuote": "Direct Quote",
    "videoInsightsPlaceholder": "Video insights will be available once video timestamp analysis is implemented.",
    "recruiterAssessment": "Recruiter Assessment",
    "thirdPersonPerspective": "How recruiters perceive your profile",
    "match": "match",
    "summary": "Summary",
    "topSkills": "Top skills",
    "introVideo": "Introduction video",
    "technicalSkills": "Technical skills",
    "softSkills": "Soft skills",
    "languages": "Languages"
  },
  "settings": {
    "title": "Settings",
    "subtitle": "Manage your account, privacy, and preferences",
    "profilePhoto": "Profile Photo",
    "uploadPhoto": "Upload photo",
    "photoHint": "JPG or PNG, max 5MB",
    "accountInfo": "Account Information",
    "displayName": "Display Name",
    "email": "Email",
    "location": "Location",
    "locationPlaceholder": "City, Country",
    "locationHint": "Override the location detected from your resume",
    "language": "Language",
    "languageHint": "Set at registration",
    "save": "Save",
    "privacyVisibility": "Privacy & Visibility",
    "searchability": {
      "label": "Appear in recruiter search",
      "statusOn": "You're visible to recruiters",
      "statusOff": "You're hidden from search",
      "thresholdExplainer": "Readiness {{readiness}}/100. Auto mode makes you visible once you reach {{threshold}}.",
      "readinessLabel": "Readiness",
      "readinessThresholdLabel": "Visibility threshold",
      "readinessHintReached": "You've passed the threshold, so in auto mode you're visible now.",
      "readinessHintNotReached": "{{gap}} more point(s) to hit {{threshold}} and unlock visibility.",
      "modeAuto": "Auto (recommended)",
      "modeAutoDesc": "Visible once your readiness score reaches the threshold.",
      "modePublic": "Always public",
      "modePublicDesc": "Visible now regardless of readiness.",
      "modePrivate": "Always private",
      "modePrivateDesc": "Hidden from search. Invites already sent remain active."
    },
    "stealthMode": "Stealth Mode",
    "stealthModeDesc": "Hide your current employer from recruiters until you accept their invitation. Recruiters can still see your skills, traits and synthesis, just not your current employer. This is different from the searchability toggle above.",
    "signOut": "Sign out",
    "deleteAccount": {
      "title": "Delete Account",
      "description": "Permanently delete your account and all associated data",
      "freeAndClear": "Free of charge · this is your right under GDPR",
      "forfeitEarnings": "Any unwithdrawn earnings will be forfeited",
      "requestBtn": "Request account deletion",
      "emailSent": "Check your email to confirm. Your account will be deleted in {{graceDays}} days.",
      "scheduledMessage": "Your account will be deleted on {{date}}. You can cancel anytime during the grace period.",
      "cancelBtn": "Cancel deletion request",
      "cancelSuccess": "Deletion request cancelled",
      "confirming": "Confirming your request...",
      "confirmedTitle": "Deletion scheduled",
      "confirmFailedTitle": "Confirmation failed",
      "backToSettings": "Back to login",
      "sendingBtn": "Sending request...",
      "cancellingBtn": "Cancelling...",
      "dialogs": {
        "confirmDelete": {
          "title": "Delete your account?",
          "message": "This action is irreversible. All your data will be permanently deleted. Check your email to confirm the deletion request. Any unwithdrawn earnings will be forfeited.",
          "confirmLabel": "Delete my account",
          "cancelLabel": "Keep my account"
        },
        "cancelDeletion": {
          "title": "Cancel account deletion?",
          "message": "Your account will remain active and all your data will be preserved.",
          "confirmLabel": "Yes, cancel deletion",
          "cancelLabel": "No, keep schedule"
        }
      }
    },
    "workPrefs": {
      "label": "What you're looking for",
      "description": "Contract types, hours, work mode and when you could start. Recruiters see these before they pay to view you.",
      "cta": "Set your preferences"
    },
    "dataExport": {
      "label": "Download my data",
      "description": "One file with everything Snypra holds about you: your profile, your CV and video readings, Mia's full synthesis (yours and the recruiter's reading), your conversations with Mia, your tests, your credits and earnings, your invitations. Free, once a day.",
      "cta": "Prepare my file",
      "preparing": "Preparing your file…",
      "download": "Download the file (JSON)",
      "expires": "The link works until {{time}}.",
      "reused": "This is the file prepared earlier today; a new one can be prepared once it expires.",
      "errors": {
        "RATE_LIMITED": "Too many requests. Please try again in a few minutes.",
        "CANDIDATES_ONLY": "This export is for candidate accounts. Write to hello@snypra.co for a copy of your data.",
        "failed": "Your file could not be prepared. Please try again; if it keeps failing, write to hello@snypra.co."
      }
    }
  },
  "landing": {
    "heroTitle": "Meet the",
    "heroAccent": "person",
    "heroTitleEnd": "first.",
    "heroSubtitle": "Hiring makes you read the paper first and meet the human last. Snypra turns that around. You start with the person, in their own words, then everything that backs it up.",
    "ctaPrimary": "I'm hiring",
    "ctaSecondary": "I'm looking for a role",
    "card1Name": "Léa Moreau",
    "card1Role": "Pediatric Nurse",
    "card1Tag": "Composed",
    "card2Name": "Hugo Vermeer",
    "card2Role": "Executive Chef",
    "card2Tag1": "Calm under fire",
    "card2Tag2": "Hands-on",
    "card3Name": "Sanne de Vries",
    "card3Role": "Backend Engineer",
    "card3Tag": "Thinks out loud",
    "card4Name": "Tariq El Idrissi",
    "card4Role": "Account Executive",
    "card4Tag": "Reads the room",
    "faqTitle": "Honest answers.",
    "faq1Q": "What does Snypra actually do?",
    "faq1A": "Candidates share a CV, or talk their experience through with Mia instead, and can add a one-minute video. Mia reads what they say and writes a profile that captures personality, competencies, and where the person actually shines. Recruiters search in plain language and see ranked profiles with reasoning.",
    "faq2Q": "How much does it cost to hire?",
    "faq2A": "No subscription. Load a wallet, then pay {{baseViewPrice}} to {{maxViewPrice}} to view a profile and {{baseInvitePrice}} to {{maxInvitePrice}} only when a candidate accepts your invite. A profile without a video costs less: {{noVideoViewFrom}} to {{noVideoViewTo}} to view, {{noVideoInviteFrom}} to {{noVideoInviteTo}} on acceptance. Once you have viewed a profile, you can ask Mia about the candidate (full synthesis, interview kit, test analysis) for {{askMiaPerMinute}} a minute. Optional, and you pay only for the time you use.",
    "faq3Q": "What's the Mia Invite?",
    "faq3A": "Every invite is drafted by Mia, with the reasoning that matched the candidate to your role. {{baseInvitePrice}} to {{maxInvitePrice}} is held when you send ({{noVideoInviteFrom}} to {{noVideoInviteTo}} for a profile without a video) and only debited if they accept. If they decline, or do not reply within {{expiryDays}} days, you get all of it back.",
    "faq4Q": "Where is Snypra available?",
    "faq4A": "Snypra is not tied to one country. It works in three languages: English, French and Dutch.",
    "faq5Q": "How are candidates paid?",
    "faq5A": "Recruiters pay you in EUR every time they engage with your profile: {{viewEarnBase}} to {{maxViewEarn}} per view, {{inviteEarnBase}} to {{maxInviteEarn}} per accepted invite. Without a video on your profile it is {{noVideoViewEarnFrom}} to {{noVideoViewEarnTo}} and {{noVideoInviteEarnFrom}} to {{noVideoInviteEarnTo}}. It builds up as a balance that is yours. Cashing out through Stripe Connect is not open yet. Coaching with Mia, the one thing you can buy, is paid in credits on a separate account and never touches what you have earned.",
    "faq6Q": "How is my video used?",
    "faq6A": "Mia transcribes it and reads only your words, never your face, your voice or your setting. It is stored on Snypra, only verified recruiters can watch it, and we never sell or share it with third parties.",
    "ctaTitle": "Start with the person.",
    "ctaButton1": "Hire on Snypra",
    "ctaButton2": "Show what you're made of",
    "testimonialsTag": "In their words",
    "testimonialsTitle": "What our candidates say",
    "testimonial1": "A one-minute video is so easy to make. Mia created my profile quickly, it really makes the site easy to use, and thanks to Mia so many skills are highlighted. That's just great.",
    "testimonial2": "At first I was afraid to upload my video, but Snypra's support explained it stays private and I control my visibility. In the end I went for it and the coaching was excellent. I'd recommend it to anyone!",
    "testimonial3": "What I love about Snypra is that Mia really analyses my personality, not just my CV. Finally a platform that goes beyond paper!",
    "testimonial4": "Honestly, I didn't expect to get paid for my video. When they explained I earn money each time a recruiter watches my profile, I found it amazing. Plus it motivates you to make a really good video!",
    "forkEyebrow": "Who it is for",
    "forkTitle": "One profile,",
    "forkAccent": "three ways in.",
    "forkLede": "The same reading of a person serves the recruiter searching, the company building a pipeline, and the candidate being found. Pick the one that is you.",
    "forkHireTitle": "I'm hiring",
    "forkHireBody": "Describe the role in your own words. Snypra returns people who fit, and says so plainly when nobody does. You read a candidate properly before you make contact.",
    "forkHireCta": "See how hiring works",
    "forkWorkTitle": "I'm looking for a role",
    "forkWorkBody": "One video, one CV. Your profile then works in the background while you get on with your life, whether or not you are looking right now.",
    "forkWorkCta": "See what you get",
    "forkCompanyTitle": "We're a company",
    "forkCompanyBody": "An employer page worth landing on, roles that keep searching on their own, your team sharing them, and recruiters who reach an audience you cannot. You pay when someone actually arrives.",
    "forkCompanyCta": "See Smart HR",
    "forkAsidesLabel": "None of these is you?",
    "forkAsidePartner": "I'm an independent recruiter",
    "forkAsideAdvocate": "My employer invited me",
    "forkHirePoint1": "Plain language, not boolean. Describe the role the way you would to a colleague.",
    "forkHirePoint2": "You meet a person in their own words, not a row of keyword hits.",
    "forkHirePoint3": "Mia drafts the first message, carrying the reasoning that matched you both.",
    "forkHireQuery": "someone in logistics who has handled end-of-year peaks",
    "forkHireResultRole": "Logistics lead · Antwerp · 11 years",
    "forkHireResultReason": "Two end-of-year peaks on a 60-person depot, both without agency cover.",
    "faqEyebrow": "Before you ask",
    "ideaEyebrow": "The idea",
    "ideaTitle": "Every hire runs in the same order.",
    "ideaAccent": "It is the wrong one.",
    "ideaLede": "Hiring puts the person last. A CV has already narrowed the field before anyone has spoken a word.",
    "ideaOldLabel": "How it goes",
    "ideaOldStep1": "Read the CV",
    "ideaOldStep2": "Guess from it",
    "ideaOldStep3": "Meet the person",
    "ideaOldStep4": "Discover what the CV left out",
    "ideaOldNote": "Everyone who never reached step three was judged entirely on step one.",
    "ideaNewLabel": "How it goes here",
    "ideaNewStep1": "Meet the person",
    "ideaNewStep2": "See what they have done",
    "ideaNewStep3": "See what they can prove",
    "ideaNewStep4": "Talk, already knowing what to ask",
    "ideaNewNote": "The interview did not start when you booked it. It started the moment you met them.",
    "readsEyebrow": "What Mia reads",
    "readsTitle": "Three sources,",
    "readsAccent": "not one.",
    "readsLede": "A video on its own is an impression. A CV on its own is a record. Neither is enough, so there is a third.",
    "read1Title": "The video",
    "read1Body": "One minute, in their own words. How someone explains their work is most of what you were going to learn in the first ten minutes of an interview.",
    "read2Title": "The CV",
    "read2Body": "Where they have worked and what they delivered. Read next to the video, not instead of it.",
    "read3Title": "What they can prove",
    "read3Body": "Skills assessments a candidate chooses to take. This is the part a video and a CV genuinely cannot give you. A claim becomes evidence.",
    "readsNote": "Nothing here is scraped, and nothing is guessed from a name, a school or a postcode. Every source is something the candidate handed over on purpose.",
    "makesEyebrow": "What comes back",
    "makesTitle": "Mia does not tell you who to hire.",
    "makesAccent": "It tells you what is there.",
    "makesLede": "The report is evidence, not a verdict. It shows what the person said and did, what stands out, and what you should push on. The hiring decision stays yours.",
    "makesPanelLabel": "In the report",
    "makesRead": "A summary of how they work, and how their career actually hangs together.",
    "makesGap": "What stands out, and what concerns you should probe.",
    "makesAsk": "The questions worth asking, and the topics to go deep on.",
    "makesFit": "What they said, word for word, from the video.",
    "makesPanelFoot": "The candidate sees the same report and can challenge it. Nothing is written behind their back.",
    "ctaLede": "Searching costs nothing. You pay for the profiles you open and the invites you send."
  },
  "candidates": {
    "heroLine1": "Stop applying.",
    "heroLine2": "Recruiters come to you.",
    "heroLine3": "And your visibility pays.",
    "heroLede": "From the moment you sign up, you're in a hiring process. No job ads to search, no applications to send, no reply to wait for: recruiters invite you, and you decide what happens next.",
    "heroCta": "Create my profile",
    "heroNote": "Free. You only do it once.",
    "inboxTitle": "Your invitations",
    "inboxWhen": "this week",
    "inboxNew": "New",
    "inboxAccepted": "Accepted",
    "roleOperations": "Head of operations",
    "roleLogisticsCoord": "Logistics coordination",
    "roleProject": "Project management",
    "changeEyebrow": "What changes",
    "changeTitle": "Here, you don't knock on doors.",
    "changeAccent": "Recruiters knock on yours.",
    "changeOldLabel": "Elsewhere",
    "changeNewLabel": "On Snypra",
    "change1Old": "You search job ads.",
    "change1New": "Your profile is enough.",
    "change2Old": "You apply.",
    "change2New": "You get invited.",
    "change3Old": "You wait for an answer.",
    "change3New": "They wait for yours.",
    "change4Old": "You prepare on your own.",
    "change4New": "Mia is by your side.",
    "journeyEyebrow": "Your journey",
    "journeyTitle": "Five steps, zero applications.",
    "step1Title": "You tell Mia your story.",
    "step1Body": "One conversation, out loud or in writing. Mia asks the right questions and builds your profile from it: what you've done, what you can do, what you're looking for.",
    "step1Call": "Talking with Mia",
    "step1CallMeta": "Live · {{time}}",
    "step1Ready": "Your profile is ready",
    "step1Visible": "Visible",
    "step1Role": "Logistics manager · {{years}} years' experience",
    "chipOrganisation": "Organisation",
    "chipTeam": "Team leadership",
    "chipService": "Customer focus",
    "step2Title": "You take the tests.",
    "step2Body": "Four free tests that show what you're worth beyond words: reasoning, job skills, communication and personality. Each one earns you credits, and the better you do, the more your visibility pays.",
    "testCognitive": "Cognitive",
    "testSkills": "Skills",
    "testCommunication": "Communication",
    "testPersonality": "Personality",
    "testDone": "Done",
    "testProgress": "{{done}} of {{total}} challenges",
    "testTodo": "Not started",
    "step3Title": "Recruiters find you.",
    "step3Body": "They're looking for a person, not an application. You don't have to do a thing: every time a recruiter opens your profile, a share of what they pay comes to you.",
    "viewTitle": "A recruiter viewed your profile",
    "viewWhen1": "{{hours}} hours ago",
    "viewWhen2": "Yesterday",
    "viewPaid": "Paid",
    "step4Title": "You receive invitations.",
    "step4Body": "Each invitation explains why you fit the role. Accept to move forward, or decline without having to explain. Your name is only revealed to the recruiters you accept.",
    "inviteTitle": "{{company}} is inviting you",
    "inviteWhy": "Why you:",
    "inviteWhyBody": "six years coordinating teams in the field.",
    "inviteAccept": "Accept",
    "inviteDecline": "Decline",
    "step5Title": "Mia stays with you.",
    "step5Body": "Preparing for an interview, understanding how recruiters see you, knowing what to highlight: Mia coaches you, in writing or out loud.",
    "chatMia1": "Your interview at {{company}} is on Thursday. Shall we prepare together?",
    "chatMe": "Yes, especially the team leadership part.",
    "chatMia2": "Let's start from your last job: tell me about a time the team had to change plans.",
    "rankEyebrow": "Rankings",
    "rankTitle": "See where you stand.",
    "rankLede": "Your four tests add up to one overall score, from 0 to 1000. It places you among the candidates in your field, your country and the whole world. Here is Camille's week.",
    "rankTick1": "Your ranking is recalculated every day.",
    "rankTick2": "A low score never counts against you.",
    "storyScore": "Overall score",
    "storyRank": "Rank in the field",
    "storyOf": "of {{total}}",
    "ch1Day": "Monday",
    "ch1Text": "Camille finishes the Cognitive test and joins the field's ranking.",
    "ch2Day": "Wednesday",
    "ch2Text": "With the Skills test, Camille climbs {{places}} places.",
    "ch3Day": "Friday",
    "ch3Text": "Communication and Personality done: Camille is now in the top {{top}}.",
    "ch4Day": "The next Monday",
    "ch4Text": "Recruiters see the score on the profile, and every view now pays more.",
    "ch4Tab": "Next",
    "recruiterSees": "What a recruiter sees",
    "profileRef": "Profile no. {{ref}}",
    "scorePill": "Score {{score}}",
    "storyChapters": "Chapters",
    "storyPlay": "Play the story",
    "storyPause": "Pause",
    "videoEyebrow": "The video",
    "videoTitle": "Optional, but it counts.",
    "videoLede": "One minute to introduce yourself in your own words. A recruiter meets you before anything else, and every view and every accepted invitation pays you more.",
    "videoTick1": "No video? Your profile is still visible.",
    "videoTick2": "Mia only keeps your words, never your face or your voice.",
    "videoLink": "How to record yours",
    "videoPlay": "Watch Jordan's one-minute introduction",
    "moreEyebrow": "Go further",
    "moreTitle": "Your network works for you too.",
    "promoteTitle": "Get noticed.",
    "promoteBody": "As soon as your profile is visible, Snypra gives you a page in your name to share wherever you like. The more it's read, the more every view of your profile pays, up to twice as much.",
    "promotePage": "Your profile page",
    "promotePageSub": "Share it on your networks, or as a PDF",
    "promoteCopy": "Copy",
    "promoteReads": "Your page has been read {{count}} times",
    "promoteBonus": "Bonus active",
    "referTitle": "Refer people you trust.",
    "referBody": "Invite the people you trust. You get {{bonus}} when their profile becomes visible, then {{share}} of their earnings for {{months}} months. Snypra pays it: the people you refer lose nothing.",
    "referActive": "Referral active",
    "referVisible": "Profile visible",
    "referInvited": "Invited",
    "referCreating": "Creating a profile",
    "controlEyebrow": "Your control",
    "controlTitle": "You stay in control.",
    "controlAccent": "Always.",
    "maskedRef": "Candidate no. {{ref}}",
    "maskedPill": "Name hidden",
    "revealedPill": "Invitation accepted",
    "control1Title": "Hidden until you say yes",
    "control1Body": "Recruiters see a reference, not your name. Your name and contact details are only revealed to the recruiter whose invitation you accept. If you add a video, they see you in it.",
    "control2Title": "Discreet with your employer",
    "control2Body": "Stealth mode hides your current job from every recruiter you haven't accepted.",
    "control3Title": "No cold outreach",
    "control3Body": "A recruiter can only reach you through an invitation, and puts money on every one.",
    "control4Title": "Your data isn't for sale",
    "control4Body": "We never sell or share your profile or your video.",
    "control5Title": "Leave whenever you want",
    "control5Body": "Delete your account and your profile and video go with it. You have {{deleteGraceDays}} days to change your mind.",
    "faqEyebrow": "Questions",
    "faqTitle": "Before you sign up.",
    "faq1Q": "Is it really free?",
    "faq1A": "Yes. Your profile, your video, the tests and being found cost you nothing. Coaching with Mia uses credits, and you get {{signupCr}} when you sign up.",
    "faq2Q": "How much can I earn?",
    "faq2A": "With a video, each view of your profile pays you {{viewFrom}} to {{viewTo}}, and each accepted invitation {{inviteFrom}} to {{inviteTo}}. Without one, it's {{viewNoFrom}} to {{viewNoTo}}, and {{inviteNoFrom}} to {{inviteNoTo}}. Strong test results move you toward the top of the range. Withdrawals aren't open yet: your earnings build up in your balance.",
    "faq3Q": "What are the tests for?",
    "faq3A": "They're free and optional. The more challenges you finish and the better you do, the more each view and each accepted invitation pays you. A low score never counts against you: you simply stay at the starting rate.",
    "faq4Q": "Do I have to film myself?",
    "faq4A": "No. Your profile works without a video. With one, recruiters get to know you better and your visibility pays more.",
    "faq5Q": "Why would a recruiter pick me?",
    "faq5A": "Because they discover you through what you say, what you've done and what you've proven. That's a fairer starting point than a keyword filter.",
    "closeTitle": "Put your worth",
    "closeBody": "Hiring is changing direction. Join the people who no longer apply: talk to Mia once, and let recruiters come to you.",
    "closeCta": "I'm joining Snypra",
    "closeAccent": "first."
  },
  "recruiters": {
    "heroTitle": "The job in",
    "heroAccent": "one sentence.",
    "heroSubtitle": "Describe the work the way you would say it out loud. Mia brings back people who do it, and tells you when nobody does.",
    "heroCtaPrimary": "Start hiring",
    "heroCtaSecondary": "See the candidate side",
    "heroAnswerLabel": "Mia",
    "heroQuery1": "someone who has run a kitchen in Ghent",
    "heroResultName1": "Amina Touré",
    "heroResultRole1": "Sous-chef · Ghent · 9 years",
    "heroResultLine1": "She led the service, not just worked in it. Nine years in brigade, two on the pass.",
    "heroQuery2": "a backend engineer who has run payments at scale",
    "heroResultName2": "Wouter Claes",
    "heroResultRole2": "Backend engineer · Antwerp · 7 years",
    "heroResultLine2": "Held the on-call rota for a payments platform through two Black Fridays.",
    "heroQuery3": "a smart contract auditor, mainnet experience",
    "heroResultName3": "Sofia Duarte",
    "heroResultRole3": "Blockchain security engineer · Brussels · 11 years",
    "heroResultLine3": "Two mainnet audits published under her own name, both with the findings fixed.",
    "heroQuery4": "a data scientist who can explain a model to a board",
    "heroResultName4": "Mehdi Haddad",
    "heroResultRole4": "Data scientist · Brussels · 5 years",
    "heroResultLine4": "Took a churn model from a notebook to a board decision, twice.",
    "heroMatchLabel": "Match",
    "heroReadinessLabel": "Readiness",
    "heroThinking": "Reading your sentence",
    "heroPanelFoot": "And when nobody fits, Snypra says so: you get an empty result rather than the nearest profiles dressed up as matches.",
    "readEyebrow": "Reading a result",
    "readTitle": "The number answers",
    "readAccent": "your question.",
    "readLede": "The match score combines how the profile meets each criterion you named with Mia's reading of the profile against your query. Nothing you did not mention earns points on its own.",
    "readCardLabel": "One result",
    "readMatchLabel": "Match",
    "readMatchNote": "How completely this person answers the query you typed.",
    "readReadinessLabel": "Readiness",
    "readReadinessNote": "How ready this person is to step into a role, judged on the whole profile.",
    "readCardFoot": "When your search turns up little, Mia adds people from adjacent work in a section of their own, labelled as such. They are never presented as the answer to what you asked.",
    "openEyebrow": "Opening a profile",
    "openTitle": "Meet them properly",
    "openAccent": "before you reach out.",
    "openLede": "One profile gives you the person in full: how they speak, what they have built, and what they can prove.",
    "openListTitle": "What opening one shows",
    "openVideo": "Their one-minute video, played in full.",
    "openTrajectory": "Mia's assessment of them, written in the third person, with a line quoted straight from the video.",
    "openSkills": "Skills and competencies, with the seniority and the years behind each one.",
    "openTraits": "Their personality trait scores, across all eight dimensions.",
    "openReadiness": "Their readiness score, and Mia's reading of the profile against your query.",
    "openCostTitle": "{{noVideoViewFrom}} to {{viewPriceTo}} to open",
    "openCostBody": "Charged the first time only. Reopening the same profile costs nothing for {{reviewDays}} days.",
    "openCostSecond": "{{viewPriceFrom}} to {{viewPriceTo}} for a profile with a video, {{noVideoViewFrom}} to {{noVideoViewTo}} without one. Within each, the price rises with what the candidate has proved, and their profile holds that much more to read.",
    "inviteEyebrow": "Reaching out",
    "inviteTitle": "Mia writes the first",
    "inviteAccent": "message for you.",
    "inviteLede": "Every invite is drafted from that candidate's own synthesis and from the search that surfaced them. You review it, edit it lightly, and send.",
    "inviteNote": "Between {{invitePriceFrom}} and {{invitePriceTo}} is held when you send, not spent, depending on what the candidate has proved; {{noVideoInviteFrom}} to {{noVideoInviteTo}} if their profile has no video. It comes back on a decline, or after {{expiryDays}} days of silence. Only a yes debits it, and pays the candidate {{candidateGetsFrom}} to {{candidateGetsTo}} ({{noVideoGetsFrom}} to {{noVideoGetsTo}} without a video).",
    "invitePanelLabel": "How Mia drafts it",
    "inviteBeat1": "Opens on a specific marker from their video or their CV. Not on your job title.",
    "inviteBeat2": "It says what your company is looking for and where this person meets it. If there is a stretch, Mia names it as a bridge rather than hiding it.",
    "inviteBeat3": "Asks for one conversation, in plain language.",
    "invitePanelFoot": "Before you send, Mia gives you her reasoning in two or three sentences, so you can push back on it.",
    "kitEyebrow": "Ask Mia",
    "kitTitle": "The full evaluation",
    "kitAccent": "in a conversation.",
    "kitLede": "Once you have viewed a profile, ask Mia about the candidate, by voice or in writing, from {{askMiaPerMinute}} a minute. How to reach them still waits for their yes.",
    "kitPanelTitle": "What Mia can show you",
    "kitNarrative": "How they come across, against what their career actually did.",
    "kitSignals": "Why this person stands out, with the evidence underneath.",
    "kitGaps": "Written as concerns to probe in the interview, not as verdicts.",
    "kitPriorities": "The topics worth going deep on with this specific person.",
    "kitQuestions": "Drafted from what Mia actually found in their profile.",
    "kitCulture": "Where they thrive, and where they may struggle.",
    "kitFoot": "Written to help you decide, which means it names the risks as clearly as the strengths.",
    "spendEyebrow": "What it costs",
    "spendTitle": "No subscription,",
    "spendAccent": "no seats, no minimum.",
    "spendLede": "Top up a wallet and the balance never expires. Searching is free; you pay to open a profile, and you pay for an invite only if the candidate accepts it.",
    "spendSearchLabel": "A search",
    "spendSearchNote": "Free, with a daily allowance that starts small on a new account and lifts as the account gets older and busier.",
    "spendSavedLabel": "A saved search",
    "spendSavedNote": "It keeps working once you close the tab. One mail a day, and only when someone new fits.",
    "spendViewLabel": "Opening a profile",
    "spendViewNote": "First open only. Reopening the same profile is free for {{reviewDays}} days.",
    "spendInviteLabel": "An invite that is accepted",
    "spendInviteNote": "Held on send, returned on a decline or after {{expiryDays}} days, debited only on acceptance.",
    "spendKitLabel": "Ask Mia",
    "spendKitNote": "After a profile view. Voice is billed per second; a typed answer costs one minute.",
    "spendCompareLabel": "Comparing {{min}} to {{max}} candidates",
    "spendCompareNote": "Ticked from a search or your saved candidates, then talked through with Mia side by side. She never ranks them. Starting opens each profile at its usual price, and one you opened in the last {{reviewDays}} days is free. Her first brief costs nothing; each answer after it is {{perAnswer}}.",
    "packsTitle": "Wallet packs",
    "packBuys": "buys {{credit}}",
    "packsFoot": "The balance does not expire, and the amount behind a pending invite is set aside rather than taken.",
    "faqEyebrow": "Before you sign up",
    "faqTitle": "The awkward questions",
    "faq1Q": "What happens if nobody matches?",
    "faq1A": "Snypra says so. You get an empty result and the criteria it searched on, rather than the nearest profiles dressed up as matches. Where adjacent work exists, it arrives in a section of its own, labelled as such, and never as the answer to what you asked. A query Mia has to ask you a question about never counts against your daily allowance.",
    "faq2Q": "Can I see anything before I pay?",
    "faq2A": "Search results are free and carry the match, the readiness and Mia's reading for each person. Opening the profile itself costs {{viewPriceFrom}} to {{viewPriceTo}}, or {{noVideoViewFrom}} to {{noVideoViewTo}} when the profile has no video, and reopening it costs nothing for {{reviewDays}} days.",
    "faq3Q": "When do I see how to contact a candidate?",
    "faq3A": "Only once they accept your invite, and there is no way around it. Before that, Mia shows you what she read about them, never how to reach them. Sending an invite costs you nothing unless they accept.",
    "faq4Q": "What happens to the money if they say no?",
    "faq4A": "It comes back. The amount is held on send, released on a decline or after {{expiryDays}} days with no answer, and debited only on acceptance. A decline also tells Mia why, which changes what she shows you next.",
    "faq5Q": "How is this different from a CV database?",
    "faq5A": "A database answers every query with rows. Snypra will return nothing rather than return the wrong people, and the profiles behind it start with a minute of the person talking rather than a document about them.",
    "ctaTitle": "Ask for the person",
    "ctaAccent": "you actually need.",
    "ctaLede": "Searching costs nothing. If nobody fits, Snypra will tell you that too.",
    "ctaButton1": "Create a recruiter account",
    "ctaButton2": "See the candidate side",
    "kitNarrativeLabel": "The narrative",
    "kitSignalsLabel": "Standout signals",
    "kitGapsLabel": "Risk areas",
    "kitPrioritiesLabel": "Interview priorities",
    "kitQuestionsLabel": "Questions to ask",
    "kitCultureLabel": "Culture read"
  },
  "employers": {
    "heroTitle": "Hiring is how",
    "heroAccent": "you get seen.",
    "heroSubtitle": "Every open role puts you in front of people who have never heard of you. Smart HR runs it as marketing: an employer page, the content Mia writes for your networks, and the teams who carry it.",
    "heroCtaPrimary": "Activate Smart HR",
    "heroCtaSecondary": "Or go and search instead",
    "heroPanelLabel": "Everything converges on you",
    "heroKeyPool": "Never heard of you",
    "heroKeyAdvocate": "Your employees",
    "heroKeyPartner": "Partner recruiters",
    "heroPanelFoot": "Each of them posts on their own network. The people they reach come back to you.",
    "deliveryVisit": "A qualified visit",
    "deliveryVisitNote": "One real person arriving through a partner's link. Bots, repeat visits and your own previews are counted but never charged.",
    "deliverySignup": "A sign-up through the link",
    "deliverySignupNote": "Someone who followed that link and created a Snypra profile.",
    "deliveryCandidate": "A candidate who enters this flow",
    "deliveryCandidateNote": "Someone who lands in the flow you are running. A profile to open, not a lead to chase.",
    "deliveryPreselection": "Mia pre-selection, if you switch it on",
    "deliveryPreselectionNote": "Mia invites each new candidate in the flow to a short written conversation, then sends you a report. Charged from the same budget once the report exists. No partner earns on it.",
    "whatEyebrow": "What Smart HR is",
    "whatTitle": "Marketing,",
    "whatAccent": "aimed at hiring.",
    "whatLede": "Snypra's search sends you out to find people. Smart HR brings them to you: a page that says why someone would join you, content Mia writes for your networks, the people who share it, and an exact count of everyone they reached.",
    "pieceFlowsTitle": "Talent flows",
    "pieceFlowsBody": "Describe a need once, in your own words. Mia suggests flows from what she has read of your company, re-runs them every day, and the profiles that fit land in the flow instead of an inbox. You set the delivery budget, and nothing is debited until someone arrives.",
    "piecePageTitle": "A company page",
    "piecePageBody": "An employer-brand page, written by Mia from your own site and yours to edit. It answers why work here, not what jobs are open.",
    "pieceAdvocatesTitle": "Your employees",
    "pieceAdvocatesBody": "Mia writes the posts; each of your employees chooses whether to share one, and where. An advocate is not paid, never appears in recruiter search, and can stop whenever they want.",
    "pieceAdvocatesLink": "How advocacy works",
    "piecePartnersTitle": "Partner recruiters",
    "piecePartnersBody": "Independent and agency recruiters who can open one of your flows to their own network. They are paid on the same three events you are billed for.",
    "piecePartnersLink": "The partner side",
    "relayEyebrow": "Where your candidates come from",
    "relayTitle": "Your people post,",
    "relayAccent": "candidates arrive.",
    "relayLede": "Mia writes the content. Your employees and the partner recruiters share it from their own accounts, and the candidates who answer go straight into the flow it was written for.",
    "relayStop1Title": "Mia writes it",
    "relayStop1Note": "One post per network, in French, Dutch and English.",
    "relayStop2Title": "Your teams share it",
    "relayStop2Note": "Employees and partner recruiters, each from their own account.",
    "relayStop3Title": "On their networks",
    "relayStop3Note": "In front of their own audiences, well beyond Snypra.",
    "relayStop4Title": "Into your flow",
    "relayStop4Note": "The ones who fit the role, not a pile of applications to sort.",
    "relayKitTitle": "What each of them is handed",
    "relayKit": "A caption ready to post, a link that belongs to them alone, a QR code and a share card in your colours. They post it as it is, whenever they want.",
    "brandEyebrow": "Your employer page",
    "brandTitle": "A page",
    "brandAccent": "Google can read.",
    "brandLede": "Mia writes it from your own site and you correct it. It goes live at an address of its own, says why someone would join you, and keeps saying it between two hires.",
    "brandIndexNode": "Google's index",
    "brandPageNode": "Your page",
    "brandIndexTitle": "Indexed",
    "brandIndexNote": "Its own address, its own sitemap, and the tags a search engine reads before anything else.",
    "brandMeasureTitle": "Measured",
    "brandMeasureNote": "Impressions and positions, taken from Google Search Console. You can tell what your teams brought in from what arrived on its own.",
    "brandOutTitle": "Toward your own channels",
    "brandOutNote": "Every click from your page toward your site or your networks, counted by destination and free.",
    "brandOutboundSite": "Your website",
    "flowEyebrow": "What a flow costs",
    "flowTitle": "You set the ceiling,",
    "flowAccent": "the bill follows arrivals.",
    "flowLede": "A flow runs on a delivery budget, from {{minBudget}} up. Setting one moves no money: it is spent as the three events are measured, and when it runs out the flow pauses.",
    "flowNote": "Raise it, lower it or pause the flow whenever you like. A budget is a ceiling and not a payment in advance, so whatever is left is still yours.",
    "freeEyebrow": "The other half of the bill",
    "freeTitle": "Everything is counted,",
    "freeAccent": "including what is free.",
    "freeLede": "Your statement shows everything your page and your teams brought in: a total, then channel by channel, person by person, and each person on each channel. Most of it costs you nothing.",
    "freeadvocates": "Every person your employees' shares reach.",
    "freeownPosts": "Every post you publish on your own channels.",
    "freepageVisits": "Every visit to your company page.",
    "freeoutbound": "Every click from your employer page to your site or your socials.",
    "freebots": "Bots, your own previews, and repeat visits from the same person.",
    "freeFoot": "So when a partner tells you what they delivered, you can check it.",
    "freePrivacy": "Paying for a candidate who enters your flow buys the arrival, not the name: your invoice shows a reference. You learn who the person is the way you always do on Snypra, when they accept your invitation.",
    "partnerEyebrow": "What a partner earns",
    "partnerTitle": "The same events,",
    "partnerAccent": "both sides.",
    "partnerLede": "The partner recruiter who delivered an event is paid for that same event, at the moment you are billed for it. Delivery is the only thing that pays.",
    "partnerNote": "Their side is {{share}} of yours, event for event.",
    "ledgerEvent": "Event",
    "ledgerYouPay": "You pay",
    "ledgerTheyEarn": "They earn",
    "partnerPanelFoot": "The partner's side comes out of what you already paid. No commission on top.",
    "licenceEyebrow": "The licence",
    "licenceTitle": "One a year,",
    "licenceAccent": "by headcount.",
    "licenceLede": "The licence covers the marketing, not the hiring: your employer page, the content Mia writes for it, the employees and partner recruiters who carry it, and the reporting behind all of it. It comes out of the same wallet as the rest.",
    "perYear": "/ year",
    "tierSmallLabel": "Small",
    "tierSmallHeadcount": "Up to {{n}} people",
    "tierMidLabel": "Mid",
    "tierMidHeadcount": "Up to {{n}} people",
    "tierLargeLabel": "Large",
    "tierLargeHeadcount": "Any size",
    "quotaFlows": "{{n}} flows running at once",
    "quotaFlowsUnlimited": "Unlimited flows running at once",
    "quotaPartners": "{{n}} partner recruiters per flow",
    "quotaPartnersUnlimited": "Unlimited partner recruiters per flow",
    "quotaAdvocates": "{{n}} employee advocates",
    "quotaAdvocatesUnlimited": "Unlimited employee advocates",
    "licenceNote": "If a renewal fails, everything keeps working for {{graceHours}} hours. After that the page comes down and the flows pause; one successful payment brings all of it back exactly as it was.",
    "faqEyebrow": "Before you activate",
    "faqTitle": "The awkward questions",
    "faq1Q": "Is this for agencies?",
    "faq1A": "No. Smart HR is for companies hiring for themselves. If you place candidates for other companies, the search product and the partner network are what you want instead.",
    "faq2Q": "What happens if I stop paying?",
    "faq2A": "Your page comes down and your flows pause. Everything is kept as it is, and a single successful payment puts all of it back.",
    "faq3Q": "Can a partner recruiter see my candidates?",
    "faq3A": "A partner sees one thing: the flow you opened to them, and what they delivered into it. Your other flows and everyone already in your pipeline stay out of it.",
    "faq4Q": "What do my employees actually see?",
    "faq4A": "They see the posts your company publishes, each with the text and the link ready to share. That is the whole of the account: an advocate has no access to candidates and none to search, is not paid for sharing, and can leave whenever they want.",
    "faq5Q": "Do I have to spend on delivery at all?",
    "faq5A": "Only for talent flows. Your page, your posts and your employees' reach cost you nothing, however many people they reach. A flow is the part that runs on a delivery budget, and that budget is what puts the partner network to work.",
    "faq6Q": "Which networks does this reach?",
    "faq6A": "The ones your employees and partners already use: {{networks}}. Mia writes a separate caption for each, at the length that network allows, and everyone posts it from their own account.",
    "faq7Q": "Do I have to keep working on it?",
    "faq7A": "No. Your flows keep running on their own: every day, the new profiles that fit one are added to it. And if you have turned several profiles down, Mia proposes a corrected search and waits for you to approve it.",
    "ctaTitle": "Let them find",
    "ctaAccent": "you.",
    "ctaLede": "Activate Smart HR, publish your page, and open your first flow. You are charged when someone arrives, not before.",
    "ctaButton1": "Activate Smart HR",
    "ctaButton2": "See the search product"
  },
  "partners": {
    "heroTitle": "Three ways",
    "heroAccent": "to get paid.",
    "heroSubtitle": "The Snypra network is for recruiters who place candidates for other companies. You put a company's mission in front of your own audience, and you are paid on what that reach delivers, on the candidates you source and on the recruiters you bring in.",
    "heroCtaPrimary": "Join the network",
    "heroCtaSecondary": "I hire in-house",
    "heroPanelLabel": "What a mission link pays",
    "rungVisit": "A qualified visit",
    "rungSignup": "A sign-up through it",
    "rungCandidate": "A candidate who enters the flow",
    "heroPanelFoot": "Every event pays the same, the thousandth as much as the first. You are paid on the same events the company is billed for.",
    "joinEyebrow": "Getting in",
    "joinTitle": "Submitting",
    "joinAccent": "is joining.",
    "joinLede": "Declare what you cover, accept the terms, and you are listed straight away.",
    "joinNote": "Once you are listed, companies invite you onto missions and Snypra prepares each post for you: the caption, the image and your tracked link. You choose how it goes out. Review every one and share it yourself, or let us accept the invitations and publish to your LinkedIn on your behalf, at most {{publishCap}} a day. Every other network stays yours to post by hand.",
    "joinPanelLabel": "What you declare",
    "joinStep1": "The sectors and the countries you actually cover.",
    "joinStep2": "How you reach people, and roughly how many you reach.",
    "joinStep3": "That you place candidates for other companies, which is what makes you eligible.",
    "joinPanelFoot": "You can withdraw at any time, and a withdrawal stays withdrawn until you apply again.",
    "earnEyebrow": "The three streams",
    "earnTitle": "Three streams,",
    "earnAccent": "paid per event.",
    "earnLede": "You are paid for reach, for a candidate you sourced and for the recruiters you brought onto the platform. Each of the three is an event that either happened or did not.",
    "streamReachTitle": "Reach",
    "streamReachBody": "Share a company's mission with your audience. Every qualified visit, sign-up and candidate that arrives through your link pays, every time. A very large day settles over the days that follow rather than being lost.",
    "streamSourcingTitle": "Sourcing",
    "streamSourcingBody": "{{missionRate}} of a candidate's own earnings when you sourced them for a specific mission, {{personalRate}} when they came through your personal link. Your commission is paid by Snypra, so the candidate keeps everything they earned.",
    "streamNetworkTitle": "The recruiters you bring",
    "streamNetworkBody": "{{l1Rate}} of what a recruiter you brought in earns, and {{l2Rate}} of what theirs earn. Two levels, and no third.",
    "streamWindowNote": "Paid for {{windowMonths}} months",
    "earnNote": "All three run at the same time, and your console itemises every credit by the stream that produced it. So you can always see which of the three a payment came from, and what it was paid on.",
    "windowEyebrow": "The limit",
    "windowTitle": "Both commissions",
    "windowAccent": "have a limit.",
    "windowLede": "Not forever. Both run for {{windowMonths}} months: a sourcing commission from the moment a candidate is attributed to you, a network commission from the day that recruiter joined under you.",
    "windowBody": "The window stops a commission running forever. It never touches what you have already earned: credits on your balance stay yours when a window closes.",
    "windowSecond": "Reach is different: it carries no window. A mission runs for a fixed term, and when the term is up the link keeps paying on everything it still delivers.",
    "creditsEyebrow": "What you are paid in",
    "creditsTitle": "Credits,",
    "creditsAccent": "not cash.",
    "creditsLede": "The network pays in CR, worth {{creditValue}} each. You earn it; you cannot buy it.",
    "creditsIsLabel": "What CR is",
    "creditsIs": "A balance that comes off what you pay Snypra to open a profile. {{creditValue}} off your own costs, per credit.",
    "creditsIsNotLabel": "What CR is not",
    "creditsNot1": "It is not cash in your account. A credit comes off what you owe Snypra, and paying a balance out to a bank account is not open yet.",
    "creditsNot2": "It is not the euros a candidate earns. Their money and yours are separate, and neither comes out of the other.",
    "rankEyebrow": "How companies find you",
    "rankTitle": "Matched to a flow,",
    "rankAccent": "not to a directory.",
    "rankLede": "There is no directory to browse. Every time a company opens a flow, Snypra puts the partners who match it in front of them. Your sectors, your countries and your networks decide whether you are one of them.",
    "scoreevidence": "What you have actually delivered so far.",
    "scoreconversion": "How many of the people who followed your links went on to sign up.",
    "scorerelevance": "How well the sectors and countries you declared match what companies are hiring for right now.",
    "scorereach": "The size of the audience you can reach. Declaring a big number is not what makes you rise.",
    "rankFoot": "The more precisely you declare what you cover, the better the flows you are put in front of.",
    "faqEyebrow": "Before you join",
    "faqTitle": "The awkward questions",
    "faq1Q": "Do I have to be a recruiter?",
    "faq1A": "You have to place candidates for other companies. If you hire for your own, Smart HR is the product for you, and this network is where you would come looking for help.",
    "faq2Q": "What if a company disputes what I delivered?",
    "faq2A": "You and the company see the same numbers. Bots, repeat visits and your own clicks are taken out before anything counts, and the company's statement names exactly what was taken out.",
    "faq3Q": "Can I be removed?",
    "faq3A": "An administrator can suspend an account for abuse or quality, and that is sticky: neither reloading the page nor re-submitting lifts it. A company can also revoke you from its own flows, and that stops the links you already posted from paying. Withdrawing yourself is a different thing and it is reversible.",
    "faq4Q": "Is there a limit on how many companies I can work with?",
    "faq4A": "One company holds at most one of your mission slots at a time, and how many slots you have follows the audience you have had verified. On the company's side, its licence tier sets how many partners it can open a flow to.",
    "faq5Q": "Why credits instead of money?",
    "faq5A": "Because a credit is tied to something that actually happened: the same event the company was billed for, once bots, repeat visits and your own clicks have been removed. It comes straight off what you owe Snypra.",
    "ctaTitle": "Your audience",
    "ctaAccent": "already exists.",
    "ctaLede": "Declare what you cover, and start sharing the missions that match it.",
    "ctaButton1": "Join the network",
    "ctaButton2": "I hire in-house",
    "joinStep4": "How you share: every post reviewed by you, or published to your LinkedIn for you."
  },
  "advocates": {
    "heroTitle": "Your employer",
    "heroAccent": "asked you.",
    "heroSubtitle": "They would like you to share the occasional company post with your own network, from your own account, when you feel like it.",
    "heroAside": "You are here because somebody at your company invited you by email. That is the only way in.",
    "heroPanelLabel": "What arrives",
    "heroPanelBody": "A post your company wrote, with a link that belongs to you. You share it, or you do not.",
    "heroPanelFoot": "Nothing goes out in your name unless you switched it on yourself, and you can switch it off again.",
    "neverEyebrow": "The short version",
    "neverTitle": "Four things this account",
    "neverAccent": "cannot do.",
    "neverLede": "These are not rules you are asked to follow. An advocate account simply cannot do them.",
    "neverearn": "There is no money in it, so nothing here rewards you for posting more than you meant to.",
    "neversearchable": "You never appear in recruiter search. An advocate account carries no profile for anyone to find.",
    "nevercandidates": "You see no candidates, yours or anyone else's. Your panel counts how many people your links brought in, and stops there.",
    "neverclobber": "If you already use Snypra as a candidate or a recruiter, you carry on being one. Accepting adds a capability to the account you have.",
    "howEyebrow": "How it works",
    "howTitle": "A post arrives.",
    "howAccent": "You decide.",
    "howLede": "Your company writes a post and it arrives in your space, with a link that belongs to you. Whether you share it is entirely up to you.",
    "howNote": "The link is how a share gets counted. You and your company see the same three numbers: links, clicks and sign-ups. Neither of you is told who clicked.",
    "consentManualTitle": "Manual",
    "consentManualBody": "The default. The post arrives, you read it, and you share it yourself, wherever you want to share it. Nothing happens without you.",
    "consentAutoTitle": "Automatic",
    "consentAutoBody": "You connect your LinkedIn and let Snypra post for you, at most {{dailyCap}} post a day. It has to be an account you connected yourself, so nobody can switch this on for you.",
    "leaveEyebrow": "Stopping",
    "leaveTitle": "Either side",
    "leaveAccent": "can end it.",
    "leaveLede": "You can leave whenever you want, and your company can remove you. Both do the same thing: the link that let you in stops working, and the access is gone.",
    "leaveNote": "The posts stop arriving and the access ends. What you already shared stays on your own accounts, links included, and if you connected a social account, disconnecting it is its own switch.",
    "faqEyebrow": "Still open",
    "faqTitle": "The questions that are left",
    "faq1Q": "Will my employer see what I post?",
    "faq1A": "They see your email address next to three numbers: how many links you were given, how many people clicked them, and how many signed up. They also see whether you turned automatic sharing on. They do not see your account, your followers, or anything you post that is not one of theirs.",
    "faq2Q": "Do I have to share anything?",
    "faq2A": "No. A post that arrives and is ignored is the ordinary case, and nothing follows from it.",
    "faq3Q": "What if I do not want to share a particular post?",
    "faq3A": "Skip it. The reminders for that post stop, and the next one arrives as usual.",
    "faq4Q": "Can I turn off automatic sharing without leaving?",
    "faq4A": "Yes. Disconnecting the social account is its own switch, and it is separate from leaving. Everything goes back to arriving for you to share by hand.",
    "faq5Q": "Who can invite me?",
    "faq5A": "Only an organisation you belong to. The invitation goes to the address they already have for you, and the link inside it works once.",
    "ctaTitle": "Now you know",
    "ctaAccent": "what you are agreeing to.",
    "ctaLede": "If an invitation brought you here, the link in that email is where you accept.",
    "ctaButton1": "What your company is doing",
    "ctaButton2": "Looking for a job instead?"
  },
  "events": {
    "heroTitle": "Workshops you",
    "heroAccent": "did not apply for.",
    "heroSubtitle": "The Visibility Lab will run free, in-person workshops in Belgium, France and the Netherlands. There is nothing to apply for: when one near you fits your profile, an invitation arrives and you say yes or no.",
    "heroCtaPrimary": "Create my profile",
    "heroCtaSecondary": "Talk to us about sponsoring",
    "heroPanelLabel": "The short version",
    "heroFact1": "Free to attend, always.",
    "heroFact2": "In person, in a school, a university or a public agency.",
    "heroFact3": "You are invited because your profile fits, not because you signed up for a list.",
    "heroPanelFoot": "More invitations go out than there are seats, so answering early matters.",
    "formatsEyebrow": "Three formats",
    "formatsTitle": "Named for",
    "formatsAccent": "who is in the room.",
    "formatsLede": "What separates the three is who gets the invitation: each one is aimed at a moment in a career.",
    "audience_first_step": "Early career",
    "body_first_step": "For people at the start. The invitation list is junior profiles only.",
    "audience_discovery": "Early and mid career",
    "body_discovery": "Wider. Junior and mid profiles, for people still working out which direction is theirs.",
    "audience_career_boost": "Mid career and beyond",
    "body_career_boost": "For people with a track record: mid, senior, staff and lead profiles.",
    "formatsNote": "Leadership profiles are never invited to a workshop.",
    "attendEyebrow": "Getting invited",
    "attendTitle": "The invitation",
    "attendAccent": "comes to you.",
    "attendLede": "There is no sign-up list and no waiting list. When an event is confirmed, Snypra looks at who is nearby and whose profile matches the format, and sends the invitations.",
    "attendNote": "You can say no. Declining changes nothing about your profile, your visibility or your future invitations.",
    "attendPanelLabel": "How the list is chosen",
    "attendStep1": "Your profile has to be visible in search. Stealth mode keeps you out.",
    "attendStep2": "The format decides which seniority bands are eligible.",
    "attendStep3": "People living in the event's city come first, then the rest of the country.",
    "attendPanelFoot": "The list stops at five times the seats in the room.",
    "hostEyebrow": "Who runs the room",
    "hostTitle": "Hosted by people",
    "hostAccent": "who already do this.",
    "hostLede": "Snypra does not own venues. Every workshop is run with a partner who already works with the people in the room.",
    "hostType1": "Secondary schools",
    "hostType2": "Universities",
    "hostType3": "Public employment agencies",
    "hostFoot": "A host's staff get their own console to propose dates, manage the room and see who confirmed. If you run a school, a university or an agency and want to host one,",
    "sponsorEyebrow": "Sponsoring",
    "sponsorTitle": "Three tiers,",
    "sponsorAccent": "one event at a time.",
    "sponsorLede": "A company can sponsor a specific workshop. One payment, one event, one invoice, kept separate from your wallet.",
    "perEvent": "per event",
    "tierCommunityLabel": "Community",
    "tierCommunityBody": "Your name on the event and on its page.",
    "tierPartnerLabel": "Partner",
    "tierPartnerBody": "Everything above, and a presence in the room itself.",
    "tierHeadlineLabel": "Headline",
    "tierHeadlineBody": "The event is run with you. Your brand leads it, and it appears on your company page afterwards with the photos.",
    "sponsorNote": "Places per tier can be limited on a given event, and they are reserved before they are paid for. If you want a specific workshop, ask early rather than late.",
    "faqEyebrow": "Before you come",
    "faqTitle": "The practical questions",
    "faq1Q": "Does it cost anything to attend?",
    "faq1A": "No. Attending is always free. Sponsors pay for the event; the people in the room never pay anything.",
    "faq2Q": "Why was I not invited?",
    "faq2A": "Either there is no event near you yet, or the ones there are target a different stage of career. Both change over time, and neither is a judgement about your profile.",
    "faq3Q": "Where do these happen?",
    "faq3A": "In the {{countries}} countries Snypra operates in: Belgium, France and the Netherlands. Always in a real room, never online.",
    "faq4Q": "Will recruiters be there?",
    "faq4A": "Sometimes, when a company sponsors the event. A workshop is not a hiring fair, and nobody is obliged to talk to anybody.",
    "faq5Q": "Can my company host one?",
    "faq5A": "Hosting is for schools, universities and public employment agencies, because the room needs to belong to somebody the attendees already trust. A company can sponsor instead.",
    "ctaTitle": "Be findable",
    "ctaAccent": "before the invitation.",
    "ctaLede": "Invitations go to profiles, so the profile comes first. It takes a minute of video and the CV you already have.",
    "ctaButton1": "Create my profile",
    "ctaButton2": "Talk to us about sponsoring",
    "status": "The Visibility Lab is not open yet: no workshop has been scheduled and no invitation has gone out.",
    "hostFootLink": "write to us."
  },
  "pricing": {
    "heroTitle": "Every number,",
    "heroAccent": "on one page.",
    "heroSubtitle": "Nobody on Snypra pays a subscription. Candidates are paid, recruiters pay per action, and companies pay a licence plus what gets delivered.",
    "earned": "earned",
    "perYear": "/ year",
    "candEyebrow": "If you are looking",
    "candTitle": "You are paid",
    "candAccent": "to be here.",
    "candLede": "Being on Snypra costs nothing and pays a share of what recruiters spend on you. The only thing you can pay for is time with Mia, coaching you on your own profile.",
    "candJoinLabel": "Your profile, video, CV, visibility and updates",
    "candJoinNote": "Including the overview of what Mia knows about you, a copy of all your data, and {{signupCr}} credits at signup: about {{signupMinutes}} minutes of coaching.",
    "candViewLabel": "A recruiter opens your profile",
    "candViewNote": "First open in any {{reviewDays}} days. The range moves with what you have proved and with how many recruiters are looking, and is lower while your profile has no video.",
    "candAcceptedLabel": "You accept an invite",
    "candAcceptedNote": "Only on acceptance.",
    "candMore": "Earnings sit as a balance today; paying them out is not open yet.",
    "candMoreLink": "The whole candidate side.",
    "recEyebrow": "If you are hiring",
    "recTitle": "You pay",
    "recAccent": "per action.",
    "recLede": "No seats, no minimum, no subscription. You load a wallet, it does not expire, and you spend it on the profiles you open and the invites that land.",
    "recSearchLabel": "A search",
    "recSearchNote": "Free, with a daily allowance that grows as you use the account. A query Mia has to ask you a question about never counts against it.",
    "recViewLabel": "Opening a profile",
    "recViewNote": "First open only, then reopening the same profile is free for {{reviewDays}} days. The range moves with what that candidate has proved, and is lower when their profile has no video.",
    "recInviteLabel": "An invite that is accepted",
    "recInviteNote": "Held on send, returned on a decline or an expiry, debited only on acceptance.",
    "recAskMiaLabel": "Ask Mia about a candidate",
    "recAskMiaNote": "By voice, billed per second, or {{perAnswer}} per typed answer, once you have viewed the profile. Mia shows the full hiring synthesis, the interview kit and the skills-test analysis, up to {{views}} new views a talk.",
    "recCompareLabel": "Comparing {{min}} to {{max}} candidates",
    "recCompareNote": "Ticked from a search or your saved candidates, then talked through with Mia side by side. She never ranks them. Starting opens each profile at its usual price, and one you opened in the last {{reviewDays}} days is free. Her first brief costs nothing; each answer after it is {{perAnswer}}.",
    "packsTitle": "Wallet packs",
    "packBuys": "buys {{credit}}",
    "packsFoot": "The balance never expires, and an invite in escrow is held out of it rather than taken from it.",
    "recMore": "Contact details only open once a candidate has accepted your invite.",
    "recMoreLink": "The whole recruiter side.",
    "recMethod": "In Ask Mia, the skills-test analysis reads a candidate's forty challenges.",
    "recMethodLink": "How the tests are built and scored.",
    "empEyebrow": "If you hire for your own company",
    "empTitle": "A licence,",
    "empAccent": "then delivery.",
    "empLede": "Smart HR is an annual licence by headcount. On top of it you pay only for delivery you can see, against a budget you set.",
    "empLicenceLabel": "The Smart HR licence",
    "empLicenceNote": "By declared headcount, three tiers. Charged from the same wallet, so there is no separate subscription.",
    "empFlowLabel": "Opening a talent flow",
    "empFlowNote": "A flow runs on a delivery budget, from {{minBudget}} up. Setting one debits nothing.",
    "empVisitLabel": "A qualified visit",
    "empVisitNote": "One real person, through a partner's link. Bots, repeat visits and your own checks are counted and never charged.",
    "empSignupLabel": "A sign-up through the link",
    "empSignupNote": "Somebody who followed it and created a profile.",
    "empCandidateLabel": "A candidate who enters the flow",
    "empCandidateNote": "Somebody who actually lands in the flow you are running.",
    "empPreselectionLabel": "Mia pre-selection, if you switch it on",
    "empPreselectionNote": "Mia invites each new candidate in the flow to a short written conversation, then sends you a report. Charged from the same budget once the report exists. No partner earns on it.",
    "empMore": "Everything that is measured and never billed is itemised on your statement.",
    "empMoreLink": "The whole employer side.",
    "empEvents": "Workshop sponsorship, when the Visibility Lab opens:",
    "empEventsLink": "the Visibility Lab.",
    "rulesEyebrow": "The rules behind the table",
    "rulesTitle": "Three things are true",
    "rulesAccent": "of all of it.",
    "rule1": "Nobody pays a subscription. Every amount is either a licence for a year, or something that happened.",
    "rule2": "Euros and credits are separate accounts, and neither one ever turns into the other.",
    "rule3": "A balance never expires. Money set aside for something that has not happened yet stays on your balance until it does.",
    "ctaTitle": "Nothing here",
    "ctaAccent": "is a monthly bill.",
    "ctaLede": "Pick the side you are on and start. Signing up asks for no card.",
    "ctaButton1": "I'm looking for a role",
    "ctaButton2": "I'm hiring",
    "heroIndexLabel": "Which one are you?",
    "heroIndexCand": "A candidate",
    "heroIndexCandWhat": "You are paid",
    "heroIndexRec": "A recruiter",
    "heroIndexRecWhat": "You pay per action",
    "heroIndexEmp": "A company hiring for itself",
    "heroIndexEmpWhat": "A licence, then delivery",
    "noVideoRate": "Without a video",
    "candCoachVoiceLabel": "Coaching with Mia, by voice",
    "candCoachVoiceNote": "Billed per connected second, and only while you are connected. Mia goes through your full synthesis, how a recruiter reads you, your salary range and your test reports with you.",
    "candCoachTypedLabel": "Coaching with Mia, in writing",
    "candCoachTypedNote": "Per answer Mia writes. Your credit is shown before you start and during the session; nothing is charged beyond it.",
    "perMinute": "per minute",
    "perAnswer": "per answer",
    "perProfile": "per profile",
    "perConversation": "per conversation"
  },
  "contact": {
    "heroTag": "Get in touch",
    "heroTitleLine1": "Let's build",
    "heroTitleAccent": "something great",
    "heroSubtitle": "A question about your profile, or a role you are trying to fill. Write to us in English, French or Dutch.",
    "sidebarTitle": "Direct line",
    "sidebarEmail": "Email",
    "typeCandidate": "I'm a candidate",
    "typeRecruiter": "I'm a recruiter",
    "fieldName": "Full name",
    "fieldEmail": "Email address",
    "fieldCompany": "Company name (optional)",
    "fieldPhone": "Phone number (optional)",
    "fieldMessage": "Your message or question…",
    "submitButton": "Connect with us",
    "submitError": "Something went wrong. Please try again.",
    "successTitle": "Message sent",
    "successMessage": "Thanks for reaching out. We read every message and will come back to you.",
    "locationsTitle": "Where we are.",
    "locationsSubtitle": "Snypra is a Belgian company, working in English, French and Dutch.",
    "belgiumHq": "Registered office",
    "estaimpuisLocation": "Estaimpuis, Belgium",
    "faqCtaTitle": "Your question may already",
    "faqCtaDescription": "How Mia reads a profile, what a recruiter actually sees, and what anything costs.",
    "faqCtaLink": "Read the FAQ",
    "whoLegend": "You are",
    "hintName": "Marieke Vandenberghe",
    "hintEmail": "you@company.com",
    "hintCompany": "Where you work",
    "hintPhone": "+32 470 18 92 44",
    "hintMessage": "What can we help with?",
    "faqCtaAccent": "have an answer.",
    "faqCtaPricing": "See pricing"
  },
  "videoGuide": {
    "heroTag": "Video guide",
    "heroTitle": "Your personality speaks louder than a CV",
    "heroSubtitle": "A short video lets you tell one real story in your own words: what you did, how you went about it, what you chose. Here's how to make one that shows it.",
    "whyTag": "Why video?",
    "whyTitle": "A resume tells what you did. A video shows who you are.",
    "whyP1": "A one-minute video lets you explain what a CV only lists: the problem you faced, the call you made, what happened next. Recruiters watch it to meet you; Mia reads what you say.",
    "whyP2": "Mia reads your CV and the words of your video together. She does not read your face, your voice or your setting, only what you say.",
    "whyQuote": "I'm not looking for someone who reads well on paper. I'm looking for someone who can tell me what they did, why, and what they learned from it.",
    "whyQuoteAuthor": "The Snypra philosophy",
    "lookTitle": "What we look for",
    "lookSubtitle": "There are no right or wrong answers. We just want to see the real you.",
    "look1Title": "Be natural",
    "look1Desc": "Don't read a script and don't recite your CV. Speak in your own words, as you would to a colleague. Mia reads what you say, not how you say it, so a real example is worth more than a polished sentence.",
    "look2Title": "Show your personality",
    "look2Desc": "Your way of working shows in what you did. Pick one situation and walk through it: what was at stake, what you decided, what changed. A specific story says more than any list of qualities.",
    "look3Title": "Pick your context",
    "look3Desc": "A chef can talk while cooking. A designer can sketch as they speak. Your surroundings tell a story too, so film wherever you feel most yourself: a workshop, a studio, a quiet corner.",
    "dontTitle": "Don't",
    "dontDesc": "Avoid these common pitfalls that hide the real you.",
    "dontBullet1": "Reading from a script or teleprompter",
    "dontBullet2": "Reciting your resume bullet points",
    "dontBullet3": "Trying to sound like someone you're not",
    "doTitle": "Do",
    "doDesc": "These habits will help your authentic self come through.",
    "doBullet1": "Speak naturally, like you're telling a story to a friend",
    "doBullet2": "Talk about what drives you, what excites you, what matters",
    "doBullet3": "Give one concrete example: the situation, your choice, the result",
    "scriptTag": "Example script",
    "scriptTitle": "A script you can draw inspiration from",
    "scriptSubtitle": "Notice how it lists no qualities. It tells one concrete story, and the qualities show through it.",
    "scriptRecordingLabel": "Recording · Snypra pitch",
    "scriptLine1": "Hi, my name is Léa.",
    "scriptLine2": "Last spring, our studio lost its biggest client two weeks before a launch.",
    "scriptLine3": "I offered to rebuild the campaign with two colleagues, and we split the work by what each of us did best.",
    "scriptLine4": "We shipped on time, and the client who replaced them renewed for a second year.",
    "scriptLine5": "What I took from it: I'd rather ask for help on day one than explain a delay on day ten.",
    "scriptLine6": "That's what I'm looking for next: a team where I can own a launch from the brief to the delivery.",
    "scriptLine7": "I can't wait to meet you so we can talk about what we can accomplish together. Thanks for listening!",
    "scriptLine8": "So, see you soon?",
    "scriptDuration": "0:50 to 1:00 recommended",
    "tipsTitle": "Practical tips",
    "tipsSubtitle": "Simple things that make a big difference to your video.",
    "findYourContextTitle": "Find your context",
    "findYourContextTag": "FILM WHERE YOU WORK",
    "findYourContextCard1Title": "The culinary lead",
    "findYourContextCard1Context": "Context: the kitchen",
    "findYourContextCard2Title": "The designer",
    "findYourContextCard2Context": "Context: the studio",
    "findYourContextCard3Title": "The architect",
    "findYourContextCard3Context": "Context: on site",
    "tip1Title": "Look at the lens, not the screen",
    "tip1Desc": "Eye contact builds connection. Place the camera at eye level and speak to it like you would a person.",
    "tip2Title": "Talk like you mean it",
    "tip2Desc": "Forget formal. Talk as you would to a colleague over coffee, and when you make a point, back it with something you actually did.",
    "tip3Title": "Lighting over gear",
    "tip3Desc": "Natural light from a window is all you need. Avoid sitting with a bright window behind you, because it turns you into a silhouette.",
    "tip4Title": "Choose a quiet space",
    "tip4Desc": "A calm room with minimal background noise helps us focus on you. No need for silence, just nothing distracting.",
    "tip5Title": "Keep it short",
    "tip5Desc": "Aim for 50 seconds to a minute. Long enough to share who you are, short enough to stay engaging.",
    "tip6Title": "One take is enough",
    "tip6Desc": "Don't obsess over perfection. A single natural take is far more powerful than a heavily edited one.",
    "ctaTitle": "Ready to",
    "ctaDesc": "Create your profile, record your video, and let Mia show employers who you really are.",
    "ctaButton": "Create your profile",
    "ctaAccent": "give it a try?",
    "ctaButton2": "See the candidate side"
  },
  "methodology": {
    "heroEyebrow": "How the tests work",
    "heroTitle": "Forty challenges.",
    "heroAccent": "And where every number comes from.",
    "heroSubtitle": "Before you pay for a reading of someone's results, you should be able to check the instrument that produced them: what the four sections are, where the cognitive framework comes from, how each question is written, and what the score does and does not mean.",
    "familiesEyebrow": "The four families",
    "familiesTitle": "Four sections,",
    "familiesAccent": "and skills count most.",
    "familiesLede": "Ten challenges each, and they do not weigh the same: some say more than others about how a person will do the job.",
    "family": {
      "skills": {
        "name": "Skills",
        "desc": "Written against this candidate's own profile, role and seniority: multiple choice, scenarios, code review, debugging, architecture, strategy, problem solving and domain depth."
      },
      "cognitive": {
        "name": "Cognitive",
        "desc": "Six kinds of reasoning, in the same order and on the same clock for everyone. The questions themselves are still written for each candidate."
      },
      "communication": {
        "name": "Communication",
        "desc": "Ten recorded answers, thirty seconds to two minutes each, scored against a rubric written for that specific prompt: structure, clarity, empathy, specificity, and the rest. Mia grades the transcript of what you said."
      },
      "personality": {
        "name": "Personality",
        "desc": "Self-description, values, work style, situational judgement, conflict, motivation, stress, team role, blind spots and a five-year reflection."
      }
    },
    "familiesFoot": "Skills count most, because that section is written from the job you are actually applying for. Personality counts least, because you are the one answering it about yourself.",
    "ladderEyebrow": "The cognitive ladder",
    "ladderTitle": "Ten fixed slots,",
    "ladderAccent": "the same for every candidate.",
    "ladderLede": "Dimension, item type and time budget are fixed slot by slot, identically for everyone who takes it. Only the content of the item changes.",
    "ladderCaption": "About {{minutes}} minutes for the section. Time goes up with difficulty, not down: a harder item gets longer to think, not less.",
    "ladderColSlot": "Slot",
    "ladderColTier": "Tier",
    "ladderColDimension": "Dimension",
    "ladderColItem": "Item type",
    "ladderColTime": "Time",
    "ladderFoot": "The item families are standard ones: matrix reasoning, mental rotation, number series, verbal analogy, logic grids, expected value. The fixed ladder that orders them is ours.",
    "seconds": "{{n}}s",
    "scafDimension": {
      "fluid": "Fluid reasoning",
      "spatial": "Spatial",
      "quantitative": "Quantitative",
      "verbal": "Verbal",
      "deduction": "Logical deduction",
      "decision": "Decision-making"
    },
    "archetype": {
      "nextInSequence": "Next in sequence",
      "mentalRotation": "Mental rotation",
      "numberSeries": "Number series",
      "matrixReasoning": "Matrix reasoning",
      "verbalAnalogy": "Verbal analogy",
      "logicGrid": "Logic grid",
      "expectedValue": "Expected value",
      "dataInterpretation": "Data interpretation",
      "spatialGrid": "Spatial grid",
      "analogyCompletion": "Analogy completion"
    },
    "writtenEyebrow": "How an item is written",
    "writtenTitle": "Personalised content,",
    "writtenAccent": "fixed difficulty.",
    "writtenLede": "Two things have to be true at once: the questions are about this candidate's actual work, and the difficulty is the same for candidates who never saw the same question.",
    "writtenFixedTitle": "The difficulty is never the model's decision",
    "writtenFixedBody": "Slot one is easy, slot ten is expert, and that scale is set in advance. Mia writes what goes in a slot; she never decides what a slot is worth.",
    "writtenGuardTitle": "No two candidates answer the same paper",
    "writtenGuardBody": "Every item, in all four sections, is written for the candidate it is given to, from their own profile and role. There is no shared question bank, so there is nothing to pass around and no answer key to find.",
    "scoringEyebrow": "Scoring",
    "scoringTitle": "Forty answers,",
    "scoringAccent": "one number.",
    "scoringLede": "The Global Power Score runs 0 to 1000. Three rules build it.",
    "scoring": {
      "item": {
        "title": "A hard question is worth more than an easy one",
        "body": "An expert question counts double an easy one, and in the cognitive section a right answer at the top of the ladder is worth four at the bottom."
      },
      "section": {
        "title": "Each section lands on 0 to 250",
        "body": "A section you half finish cannot score like a whole one. The score follows what you actually took, and 250 means every answer right."
      },
      "composite": {
        "title": "The four sections blend into one",
        "body": "The four sections combine at 35, 25, 25 and 15 per cent, and finishing all forty is worth a further ten. Rank and percentile are recomputed nightly, globally and then by country, region and role family."
      }
    },
    "integrityEyebrow": "Integrity",
    "integrityTitle": "What is watched,",
    "integrityAccent": "and who decides.",
    "integrityLede": "A timed challenge records more than the answer, and {{n}} signals raise a flag.",
    "signal": {
      "fastPerfect": "A near-perfect score returned in under fifteen per cent of the time allowed.",
      "veryShort": "A high score on a session shorter than ten seconds.",
      "pasted": "Three or more paste events into a written answer.",
      "llmShaped": "Prose matching several patterns typical of generated text at once.",
      "switching": "Five or more tab switches or window focus losses during a timed challenge. From twenty, it is a strong signal, and three flagged answers in one section go to review together.",
      "timeExceeded": "An answer submitted after the time limit has run out."
    },
    "integrityFoot": "A flag deducts nothing on its own and blocks nobody. It goes to a person, because every one of these has an innocent explanation. Only if they confirm it does that answer stop counting toward your score, and what it costs is fixed by the rule rather than chosen by the reviewer. The one thing the score reacts to with nobody looking is the clock, and only in the cognitive section: under that fifteen per cent, or past the limit, an answer earns no speed bonus.",
    "limitsEyebrow": "What this is not",
    "limitsTitle": "The limit,",
    "limitsAccent": "stated plainly.",
    "limitsBody1": "Our cognitive framework is our own. The item families it draws on are long-established in the literature, and the way we assemble, score and weight them is not: there is no published norming sample behind these scores and no independent validation study.",
    "limitsBody2": "These scores are a consistent, comparable record of what a candidate actually did, on a ladder that does not move between candidates, with the evidence attached to every claim. They are not a psychometric instrument in the regulated sense of the phrase.",
    "limitsRule": "Use this as one input among several, and never as the only reason to hire or not hire someone.",
    "closeTitle": "You have checked",
    "closeBody": "The cross-test analysis is one reading of a candidate across the four families, written against what they actually answered, and it states how much of the suite it had to work from.",
    "closeCtaPrimary": "See pricing",
    "closeCtaSecondary": "For recruiters",
    "groundedEyebrow": "Where the dimensions come from",
    "groundedTitle": "Standard dimensions,",
    "groundedAccent": "our own assembly.",
    "groundedLede": "The cognitive section measures six things, and we did not invent them. They were chosen from a review of CHC theory, the Wechsler scales and Woodcock-Johnson IV, and each one names the factor and the standard test it comes from.",
    "groundedAside": "Four more need reaction-time measurement this format cannot deliver. They are not scored:",
    "groundedWeights": "The weighting order follows the same literature: work samples predict job performance best, cognitive ability next, self-reported personality least. The order is theirs, the exact numbers are ours.",
    "groundedRefs": "Carroll (1993) · McGrew (2009) · Raven (2000) · Wechsler (2008) · Stanovich and West (2000) · Schmidt and Hunter (1998)",
    "setAsideJoin": ", ",
    "dimension": {
      "fluid": {
        "name": "Fluid reasoning",
        "anchor": "Raven's-style progressive matrices"
      },
      "spatial": {
        "name": "Spatial visualisation",
        "anchor": "Block design, paper folding"
      },
      "quantitative": {
        "name": "Quantitative reasoning",
        "anchor": "Number series"
      },
      "verbal": {
        "name": "Verbal comprehension",
        "anchor": "Vocabulary and similarities"
      },
      "deduction": {
        "name": "Logical deduction",
        "anchor": "Syllogisms, logic grids"
      },
      "uncertainty": {
        "name": "Decisions under uncertainty",
        "anchor": "Gambling task, Bayesian updating"
      }
    },
    "setAside": {
      "workingMemory": "working memory",
      "speed": "processing speed",
      "attention": "attentional control",
      "flexibility": "cognitive flexibility"
    },
    "decidedEyebrow": "Who decides",
    "decidedTitle": "The score is automatic.",
    "decidedAccent": "The decision is not.",
    "decidedLede": "No hiring decision here is taken by a machine. Snypra produces scores, readings and flags; a person reads them and decides. In data-protection terms, there is no decision based solely on automated processing.",
    "decidedFoot": "A candidate's rights over their own data, and how to exercise them, are on the",
    "decidedFootLink": "privacy policy.",
    "decided": {
      "noAuto": {
        "label": "No automatic rejection",
        "body": "Rejecting, shortlisting and ranking someone out are each a recruiter's action, never the system's."
      },
      "noFilter": {
        "label": "The score is not a filter",
        "body": "A search runs on the constraints the recruiter typed. Nothing in it reads a candidate's score."
      },
      "flags": {
        "label": "A flag alone changes nothing",
        "body": "A person reviews it. Only if they confirm it does that answer stop counting toward your score, and what it costs is fixed by the rule rather than chosen by them."
      },
      "evidence": {
        "label": "Every claim carries its answer",
        "body": "A decision taken on a reading can therefore be explained afterwards, line by line."
      }
    },
    "closeAccent": "the instrument.",
    "decidedStop": "This is where the automatic part ends. A person reads what it produced and makes the call.",
    "dimensionStep": "Show {{name}}"
  },
  "story": {
    "heroTag": "Why we built this",
    "heroTitle": "We changed the order.",
    "heroSubtitle": "Hiring reads the paper and meets the person last. We built Snypra to run that in the other order: a minute of video first, and the CV as backing rather than as the gate.",
    "problemQuoteLabel": "What paper leaves out",
    "problemQuote": "Resumes are two-dimensional snapshots of three-dimensional humans.",
    "problemTitle": "Paper goes first.",
    "problemP1": "For decades hiring has started with a PDF, and a PDF is a summary somebody wrote about themselves under pressure. People who would have been obvious in a room get filtered out by a keyword search before anybody meets them.",
    "problemBold": "Leadership cannot be quantified in a bullet point. Communication style doesn't fit in a skills section.",
    "problemP2": "We changed one thing and left the rest of hiring alone. Not the paperwork, not the interview, not the shortlist. Only which of the two a recruiter meets first.",
    "solutionTag": "What Mia does with it",
    "solutionTitlePrefix": "Mia: The",
    "solutionTitleAccent": "Synthesis.",
    "badgeTrait": "Eight traits, with the evidence for each",
    "badgeCompetency": "Skills and a career read from the CV",
    "solutionCardTitle": "Beyond the Resume",
    "solutionCardDescription": "Mia does not just read. She watches the video for how somebody explains their work, reads the CV for what they have done, and writes back one reading of the two together instead of two scores side by side.",
    "intelligenceTitle": "The Intelligence Layer",
    "intelligenceDescription": "Video analysis, personality scoring and competency extraction, synthesised into one reading rather than three reports.",
    "futureTag": "Where this goes next",
    "futureTitle": "Three markets first.",
    "step1Title": "English, French, Dutch",
    "step1Description": "The three languages Snypra works in today. We would rather be properly usable in three languages than half-translated in thirty.",
    "step2Title": "Paying candidates out",
    "step2Description": "Candidates already earn in euros every time a recruiter engages with them, and today that sits as a balance. Opening the cash-out is the next thing we owe them.",
    "step3Title": "Hiring that does not stop",
    "step3Description": "A company describes what it looks for once, and the search keeps running instead of being reopened every time a role does. That part exists today as talent flows; making it the normal way to hire is the work ahead.",
    "ctaTitle": "Write your next chapter.",
    "ctaCandidate": "Join as a Candidate",
    "ctaRecruiter": "Hire with Mia",
    "orderPaper": "The CV",
    "orderPerson": "The person",
    "orderBefore": "Before",
    "orderNow": "Today"
  },
  "legal": {
    "kicker": "Legal notice",
    "heroTitle": "Who you are dealing with.",
    "heroSubtitle": "The company behind Snypra, where it is registered, and which law applies. No small print, because none of this benefits from being hard to find.",
    "updated": "Last updated {{revised}}",
    "section01": "The company",
    "identityBody": "Snypra is operated by {{entity}}, a company incorporated in Belgium. Snypra is not a trading name of anyone else: the platform and the company are the same legal person.",
    "labelEntity": "Legal name",
    "labelEnterpriseNumber": "Enterprise number",
    "labelVat": "VAT number",
    "labelRegisteredOffice": "Registered office",
    "labelContact": "Contact",
    "registeredOffice": "Estaimpuis, Belgium",
    "registerNote": "The full registered address is on file with the Belgian Crossroads Bank for Enterprises and can be looked up against enterprise number {{enterpriseNumber}}. It appears on every invoice we issue.",
    "section02": "Publication and hosting",
    "publisherTitle": "Publisher",
    "publisherBody": "{{entity}} is responsible for the content published on this site. Write to us at {{email}} about anything on it.",
    "hostingTitle": "Hosting",
    "hostingBody": "The site is served by Google (Firebase Hosting). The platform runs on Google Cloud servers in Belgium (europe-west1) and its data is stored in Google Cloud's European multi-region.",
    "section03": "Applicable law",
    "lawBody": "These pages, and any contract formed through the platform, are governed by Belgian law.",
    "courtBody": "Any dispute we cannot settle between us goes before the Business Court of Hainaut, Tournai division.",
    "consumerBody": "If you are a consumer, this does not take away the protection of your own country's mandatory rules. In Belgium you may also bring a consumer dispute to the Consumer Mediation Service.",
    "section04": "Your data",
    "controllerBody": "{{entity}} is the controller of the personal data processed through Snypra, and can be reached about it at {{email}}.",
    "supervisoryBody": "You can lodge a complaint with the Belgian Data Protection Authority, Rue de la Presse 35, 1000 Brussels, which is our supervisory authority.",
    "privacyLink": "Read the privacy policy",
    "section05": "Intellectual property",
    "ipBody": "The Snypra name, the platform and everything published on it belong to {{entity}}, except for the content you upload, which stays yours.",
    "termsLink": "Read the terms of use"
  },
  "terms": {
    "sidebarTitle": "Legal Framework",
    "sidebarUpdated": "Last updated {{revised}}",
    "navIntroduction": "Introduction",
    "navConduct": "User Conduct",
    "navIP": "Intellectual Property",
    "navPrivacy": "Privacy & Data",
    "navTermination": "Termination",
    "needHelp": "Need Help?",
    "needHelpDescription": "Questions regarding these terms? Our team is available for clarification.",
    "contactSupport": "Contact Support",
    "heroTitle": "Terms of Service",
    "heroSubtitle": "Welcome to Snypra. These terms govern your use of our hiring platform and define the relationship between SNYPRA SRL, the company that operates it, and its users.",
    "section01": "Introduction & Scope",
    "section02": "User Conduct",
    "section03": "Intellectual Property",
    "section04": "Privacy & Data",
    "section05": "Termination",
    "introBody": "By accessing or using the Snypra platform, you agree to be bound by these Terms of Service. If you do not agree with any part of these terms, you must immediately cease all use of our services.",
    "eligibilityTitle": "User Eligibility",
    "eligibilityBody": "Users must be at least 18 years of age and possess the legal capacity to enter into binding contracts.",
    "amendmentsTitle": "Amendments",
    "amendmentsBody": "We reserve the right to update these terms at any time. Significant changes will be notified via email.",
    "conductBody": "To maintain the integrity of our hiring community, all members are expected to adhere to high standards of professional conduct.",
    "conduct1": "Provide accurate, truthful, and current professional information, credentials, and media content.",
    "conduct2": "Respect the intellectual property, privacy, and confidentiality of other users and organizations.",
    "conduct3": "Refrain from any activities that could compromise the platform's security or integrity of Mia's assessments.",
    "conduct4": "Do not attempt to manipulate, reverse-engineer, or circumvent Mia's personality trait scoring or matching algorithms.",
    "ipBody1": "All content on Snypra, including but not limited to the platform design, user interface, matching algorithms, personality trait models, and proprietary analysis methodologies, is the exclusive property of SNYPRA SRL.",
    "ipUserContent": "User Content:",
    "ipUserContentBody": "By uploading video presentations, resumes, and profile information, you grant SNYPRA SRL a worldwide, non-exclusive, royalty-free license to use, display, and process said content solely for the purpose of facilitating hiring assessments and professional connections.",
    "privacyBody": "Snypra is committed to protecting your personal data. Mia processes video recordings and resumes to generate personality trait assessments and competency profiles. This processing is essential to the core service we provide.",
    "videoDataTitle": "Video Data",
    "videoDataBody": "Video recordings are stored securely and processed by Mia to read personality traits. That processing runs through the technology providers listed in our Privacy Policy, which do not use your video to train their models and keep it only for a limited period for security checks. We never sell it, and it is not shared beyond that processing and the recruiters you make your profile visible to.",
    "aiAssessmentsTitle": "Mia's Assessments",
    "aiAssessmentsBody": "Mia's reading of your personality traits and what she records are produced by an automated system. You can ask for any of it to be reviewed or corrected, and flag a finding directly from your profile. Deleting your account removes all of it.",
    "terminationBody1": "Either party may terminate the use of SNYPRA SRL's services at any time. Upon termination, your right to access the platform will cease immediately.",
    "terminationBody2": "Upon account deletion, Snypra will remove your personal data, video recordings, resumes, and Mia's assessments within {{deletionDays}} days, except where retention is required by law.",
    "terminationBody3": "Snypra reserves the right to suspend or terminate accounts that violate these terms, particularly those that attempt to manipulate Mia's assessments, misrepresent professional qualifications, or engage in discriminatory hiring practices.",
    "figureCaption": "Trust & Integrity",
    "governingLawTitle": "Governing law",
    "governingLawBody": "These terms are governed by Belgian law. Any dispute we cannot settle between us goes before the Business Court of Hainaut, Tournai division. If you are a consumer, this does not take away the protection of your own country's mandatory rules.",
    "legalNoticeLink": "Full company details",
    "kicker": "Legal framework"
  },
  "privacy": {
    "sidebarTitle": "Privacy Policy",
    "sidebarUpdated": "Last updated {{revised}}",
    "navCollection": "Data Collection",
    "navAI": "How Mia Works",
    "navStorage": "Data Storage",
    "navSharing": "Data Sharing",
    "navRights": "Your Rights",
    "navCookies": "Cookies",
    "dpoTitle": "Data Protection",
    "dpoDescription": "Questions about how we handle your data? Our team is here to help.",
    "dpoContact": "Contact Us",
    "heroTitle": "Privacy Policy",
    "heroSubtitle": "At Snypra, your privacy is fundamental. This policy explains how Mia and our platform collect, process, and protect your personal data.",
    "section01": "Data Collection",
    "section02": "How Mia Works",
    "section03": "Data Storage & Security",
    "section04": "Data Sharing",
    "section05": "Your Rights",
    "section06": "Cookies & Tracking",
    "collectionBody": "Snypra collects information necessary to provide our hiring services. We collect only what is needed and are transparent about how we use it.",
    "accountInfoTitle": "Account Information",
    "accountInfoBody": "Name, email address, role (candidate or recruiter), preferred language, and authentication credentials.",
    "candidateMediaTitle": "Candidate Media",
    "candidateMediaBody": "Video presentations (max {{videoMb}}MB) and resumes (PDF/DOCX, max {{resumeMb}}MB) uploaded for analysis by Mia.",
    "aiProcessingBody": "Mia processes your data to generate personality trait assessments and competency profiles. This is the core of our service and involves:",
    "videoAnalysisLabel": "Video Analysis:",
    "videoAnalysisBody": "Mia transcribes your video and reads only your words: what you did, the examples you give, the choices you explain. She does not read your face, your voice, your appearance or your surroundings.",
    "resumeParsingLabel": "Resume Parsing:",
    "resumeParsingBody": "Mia extracts structured competencies, skills, experience, and education from your resume.",
    "personalitySynthesisLabel": "Personality Synthesis:",
    "personalitySynthesisBody": "Mia reads 8 personality traits (leadership, communication, collaboration, adaptability, problem-solving, ownership, intellectual curiosity, emotional intelligence) from what you showed in your CV, your video, your talks with her and your tests. Each trait is said in words, by how firmly the evidence shows it: not shown yet, stated, shown once, cross-checked, or shown twice and cross-checked. No trait is given a score.",
    "findingsLabel": "What Mia records:",
    "findingsBody": "A finding is one short sentence Mia writes about a trait: something you showed, in her own words, never a quote of yours. She can also note a topic to cover in an interview, chosen from a fixed list of neutral topics, and only once you have said enough on a subject to make it fair. Findings never concern health, origin, religion, age, gender or any other sensitive subject. You read them under \"What Mia recorded\" on your profile, and recruiters read the same ones from the moment they are recorded.",
    "searchOrderLabel": "When a company searches:",
    "searchOrderBody": "Mia reads profiles against the company's search to judge whether they fit the role, using a model run by Anthropic in the United States. Then, among profiles that match about equally, those whose findings show the qualities asked for come first. Findings change only that order, within a small margin: they never add you to the results or remove you from them. A person at the company reads the profiles and decides whom to contact.",
    "preselectionLabel": "Pre-selection conversations:",
    "preselectionBody": "When a company whose search matched you asks to learn more, we invite you to a short written conversation with Mia, our AI assistant. Taking part is your choice: the company cannot tell whether you declined or simply did not answer, and not taking part changes nothing about how you are found. If you start, the transcript and a summary go to that company only, never to another, and you see exactly what they receive. Mia never asks about health, religion, origin or any other sensitive subject. If the company has marked some answers as decisive, you see which ones before you start; an answer that clearly does not meet one can mean your profile does not go forward for that role, and you are told which condition and can ask a person at the company to review it. Mia invites only people whose match with the company's search is strong enough. A profile whose match is very weak may be set aside for that role without an invitation; this is never based on missing information, a person at the company can reverse it, and it changes nothing about how others find you. Not answering never counts against you. The conversation is kept for 12 months, then deleted; deleting your account removes it at once.",
    "profileTalkLabel": "Telling Mia about yourself:",
    "profileTalkBody": "Instead of uploading a CV, you can build your profile in a conversation with Mia, written or, where it is offered, spoken. A spoken conversation is turned into text by Google Cloud in the EU: the recording is not kept, and nothing is read from your voice. Mia drafts your profile from what you said, and nothing is saved until you have checked it. The transcript is kept for 12 months, then deleted, and no recruiter ever reads it.",
    "aiImportantLabel": "Important:",
    "aiImportantBody": "Mia's assessments are probabilistic, not definitive. They are designed to assist, not replace, human hiring decisions.",
    "storageBody": "All data is stored securely using Firebase infrastructure (Google Cloud Platform). Data is encrypted in transit and at rest.",
    "cloudStorageTitle": "Cloud Storage",
    "cloudStorageBody": "Videos and resumes are stored in Firebase Cloud Storage with UID-scoped access controls. Only you and authorized Cloud Functions can access your files.",
    "profileDataTitle": "Profile Data",
    "profileDataBody": "Structured profile data and Mia's assessments are stored in Firestore with role-based security rules. Recruiters can view candidate profiles but cannot modify them.",
    "sharingBody": "SNYPRA SRL does not sell your personal data. We share information only as necessary to provide our services:",
    "sharingRecruitersLabel": "With recruiters:",
    "sharingRecruitersBody": "Your profile, your competencies, how firmly each trait is shown and what Mia recorded are visible to recruiters searching for candidates. Your video is viewable by recruiters you are matched with.",
    "sharingAILabel": "Technology partners:",
    "sharingAIBody": "Your CV, video, talks with Mia and test answers are analysed with technology partners: Google, and Anthropic in the United States, where the transfer is covered by the European Commission's standard contractual clauses. These providers do not use your data to train their models. They may keep it for a limited period for security and abuse checks (for Anthropic, 30 days as standard), then delete it.",
    "sharingLegalLabel": "Legal requirements:",
    "sharingLegalBody": "We may disclose information when required by law, regulation, or legal process.",
    "rightsBody": "Under GDPR and applicable data protection laws, you have the following rights regarding your personal data:",
    "accessTitle": "Access & Portability",
    "accessBody": "Get a copy of all personal data we hold about you in a structured, machine-readable format (JSON), free of charge. Candidates download it themselves from Settings, once a day; it includes the full synthesis, both perspectives. Anyone else can write to hello@snypra.co.",
    "rectificationTitle": "Rectification",
    "rectificationBody": "Ask us to correct inaccurate personal data or an assessment by Mia you believe is wrong. You can flag any finding directly from \"What Mia recorded\" on your profile: a person on our team reviews it, and a finding that is withdrawn is removed from your profile and from everything Mia writes about you.",
    "erasureTitle": "Erasure",
    "erasureBody": "Request deletion of your account and all associated data within {{deletionDays}} days: videos, resumes, and every assessment Mia wrote about you, including the copies held by companies that paid to read one. What such a company keeps is the receipt alone, with no assessment attached.",
    "rightsContactPrefix": "To exercise any of these rights, contact our data protection team via the",
    "rightsContactLink": "contact page",
    "cookiesBody": "Snypra uses essential cookies for authentication and session management via Firebase. One optional first-party measurement cookie is used on shared links, and only if you agree to it. We do not use advertising pixels or third-party analytics tools that profile you across other sites.",
    "essentialCookiesTitle": "Essential Cookies Only",
    "essentialCookiesBody": "Firebase Authentication session tokens and language preference. These are strictly necessary and cannot be disabled.",
    "figureCaption": "Your data, your rights",
    "measurementCookiesTitle": "Measurement Cookie (optional)",
    "measurementCookiesBody": "When you arrive through a link an employee or partner recruiter shared, we can set a first-party id (`__session`) that expires after 12 months. It exists so a visitor is counted once rather than once per reload, and we only set it if you agree. We store a hash of it, never the raw value or your IP address, and the per-visit records are deleted after 180 days.",
    "controllerLine": "{{entity}} is the controller of the personal data processed through Snypra.",
    "complaintBody": "You also have the right to lodge a complaint with the Belgian Data Protection Authority, Rue de la Presse 35, 1000 Brussels, which is our supervisory authority.",
    "retentionTitle": "Retention",
    "retentionBody": "We keep your profile, videos, resume and Mia's assessments while your account is open. A company that has viewed your profile can ask Mia about you, from the same evidence your profile shows. What Mia showed a company about you in Ask Mia is kept for one year from the last time that company worked with your application, and is then deleted. It is also deleted when you delete your account.",
    "kicker": "Data protection",
    "navMarketing": "Marketing email",
    "section06Marketing": "Marketing Email",
    "marketingBody": "Snypra sends two kinds of email, and they are governed differently. Email about your account, your invitations, your invoices and your sign-in is part of the service itself and cannot be switched off. Newsletters and product announcements are marketing, and you can stop them at any time.",
    "marketingUsersTitle": "If you have a Snypra account",
    "marketingUsersBody": "We may write to you about Snypra because you are a user of it: Book VI of the Belgian Code of Economic Law allows a company to email its own customers about its own similar services, provided every message carries a way to stop. Your settings page has a Marketing switch, and turning it off stops these emails while leaving your account, invitation and invoice email untouched.",
    "marketingContactsTitle": "If you do not have an account",
    "marketingContactsBody": "We hold some addresses that belong to no Snypra account: someone met at an event, a company mailbox, a person who wrote to us. We record why we may write to each one, and an address with no recorded reason is held and never mailed. Writing to us through the contact form is a request for an answer, not permission to market to you.",
    "marketingStopTitle": "Stopping them",
    "marketingStopBody": "Every marketing email carries an unsubscribe link at the bottom and a one-click header your mail client can use. Both stop the same thing, immediately. A message already on its way may still arrive. Your account, invitation and invoice email is unaffected, because it is not marketing and there is nothing there to opt out of.",
    "marketingMeasureTitle": "What we measure",
    "marketingMeasureBody": "Whether a message was delivered, bounced, or reported as spam, and whether you unsubscribed. That is all. We do not track whether you opened an email and we do not track which links you clicked: there is no tracking pixel and no link rewriting in anything we send."
  },
  "cookieConsent": {
    "title": "We use cookies",
    "description": "This site uses essential cookies to keep you signed in and remember your language preference. Everything else is optional and off until you say otherwise. No advertising cookies, no third-party trackers.",
    "privacyLink": "Read our privacy policy",
    "acceptAll": "Got it",
    "managePreferences": "Manage preferences",
    "savePreferences": "Save preferences",
    "alwaysOn": "Always on",
    "essential": {
      "label": "Essential cookies",
      "description": "Required for authentication and language preferences. Cannot be disabled."
    },
    "analytics": {
      "label": "Analytics cookies",
      "description": "Help us understand how you use Snypra to improve the experience. Currently not in use."
    },
    "measurement": {
      "label": "Measurement cookie",
      "description": "A first-party id (`__session`, 12 months) set when you arrive through a shared link, if you agree to it. It lets us count each visitor once instead of counting reloads. Decline and we still count the visit, just without recognising you on a later day."
    },
    "rejectAll": "Reject optional"
  },
  "notFound": {
    "title": "Page not found",
    "description": "We can't find that page. It may have moved or been removed.",
    "backHome": "Back to home",
    "backToApp": "Back to your dashboard"
  },
  "seo": {
    "home": {
      "title": "Snypra · Hire personality, not paper",
      "description": "Snypra decodes a one-minute video pitch and your resume to reveal the personality behind the paper. Find who truly fits."
    },
    "candidates": {
      "title": "For candidates · Stop applying · Snypra",
      "description": "Stop applying. Tell Mia your story once, recruiters come to you, and your visibility pays. Free, in three languages, with Mia by your side."
    },
    "recruiters": {
      "title": "For recruiters · Search by intent · Snypra",
      "description": "Search by intent, not by keyword. Snypra tells you when nobody fits instead of filling the page, and the invite money is held until the candidate answers."
    },
    "employers": {
      "title": "Smart HR for employers · Snypra",
      "description": "Inbound hiring for companies hiring for themselves: a company page, talent flows, employee advocacy and a partner network, on a budget you set."
    },
    "partners": {
      "title": "For partner recruiters · Snypra",
      "description": "For recruiters who place candidates for other companies. Share a company's mission with your own audience and get paid on reach, candidates and referrals."
    },
    "advocates": {
      "title": "For employee advocates · Snypra",
      "description": "Your employer asked you to share the occasional company post. You earn nothing, you never appear in recruiter search, and you can stop at any time."
    },
    "events": {
      "title": "The Visibility Lab · Free workshops · Snypra",
      "description": "Free, in-person workshops in Belgium, France and the Netherlands. You do not apply: if one near you fits your profile, an invitation arrives."
    },
    "pricing": {
      "title": "Pricing · Every number on one page · Snypra",
      "description": "Candidates are paid to be here, recruiters pay per action with no subscription, and companies pay an annual licence plus measured delivery."
    },
    "story": {
      "title": "Our story · Why we built this · Snypra",
      "description": "Why we built a platform that decodes who people really are, beyond the resume, and what we think hiring keeps getting wrong about paper."
    },
    "contact": {
      "title": "Contact · Support, partnerships and press · Snypra",
      "description": "Questions about your account, a partnership, the press, or how Snypra works? Write to the team behind the platform and we will come back to you."
    },
    "videoGuide": {
      "title": "Video guide · Record your minute · Snypra",
      "description": "How to record the one-minute video that shows employers who you really are: what to say, how to frame it, and the mistakes to avoid."
    },
    "methodology": {
      "title": "How the tests work · The full method · Snypra",
      "description": "The method behind the Snypra assessment: four test families and their weights, the cognitive ladder, how the score is built, and what it is not."
    },
    "legal": {
      "title": "Legal notice · The company behind Snypra",
      "description": "The company behind Snypra: legal name, enterprise number, VAT, applicable law, competent court and supervisory authority."
    },
    "terms": {
      "title": "Terms of use · What you agree to · Snypra",
      "description": "The terms you agree to when you use Snypra: what the platform does, what it charges for, and what each side owes the other."
    },
    "privacy": {
      "title": "Privacy policy · What we hold, and why · Snypra",
      "description": "What personal data Snypra collects, why it is processed, how long it is kept, and the rights you can exercise over it at any time."
    },
    "notFound": {
      "title": "Page not found · Snypra",
      "description": "The page you're looking for doesn't exist."
    },
    "app": {
      "title": "Console · Snypra",
      "description": "Your Snypra console."
    },
    "auth": {
      "login": {
        "title": "Log In, Snypra",
        "description": "Sign in to your Snypra account."
      },
      "register": {
        "title": "Sign Up, Snypra",
        "description": "Create your Snypra account and get discovered."
      },
      "recruiterSignup": {
        "title": "Recruiter Sign Up, Snypra",
        "description": "Join Snypra as a recruiter and discover the personality behind every candidate."
      },
      "checkInbox": {
        "title": "Check your inbox, Snypra",
        "description": "Verify your email to finish setting up your Snypra account."
      },
      "forgotPassword": {
        "title": "Forgot password, Snypra",
        "description": "Reset your Snypra password in a few seconds."
      },
      "action": {
        "title": "Account action, Snypra",
        "description": "Confirm your email or reset your password on Snypra."
      },
      "confirmDeletion": {
        "title": "Confirm Account Deletion, Snypra",
        "description": "Confirm your account deletion request."
      },
      "cancelDeletion": {
        "title": "Cancel Account Deletion, Snypra",
        "description": "Cancel your pending account deletion request."
      }
    },
    "recruiterNetwork": {
      "title": "Recruiter network · Snypra",
      "description": "Amplify company openings to your audience and earn credits."
    }
  },
  "recruiterPreview": {
    "backToSearch": "Back to search",
    "backToFlow": "Back to the flow",
    "backToSavedSearch": "Back to the saved search",
    "pipelineBanner": "This candidate accepted your invite. Open in My Candidates",
    "invitePending": "Invite pending",
    "inviteDeclined": "Invite declined",
    "inviteExpired": "Invite expired",
    "viewInPipeline": "Open in My Candidates",
    "shortlisted": "Shortlisted",
    "saveForLater": "Save for later",
    "testSkills": {
      "viewPrice": "View price: {{price}}"
    }
  },
  "recruiterMyCandidates": {
    "title": "My Candidates",
    "subtitle": "Candidates who accepted your invites. Track their journey from acceptance to hire.",
    "filter": {
      "all": "All",
      "active": "Active",
      "hired": "Hired",
      "rejected": "Not a fit"
    },
    "sort": {
      "label": "Sort",
      "recent": "Recent activity",
      "accepted": "Accept date"
    },
    "source": {
      "label": "Source",
      "all": "All searches",
      "custom": "Custom searches",
      "none": "No search context"
    },
    "stage": {
      "accepted": "Accepted",
      "interviewing": "Interviewing",
      "offer": "Offer",
      "hired": "Hired",
      "rejected": "Closed",
      "withdrawn": "Withdrawn"
    },
    "lastActivity": "Last activity",
    "readinessAria": "Readiness score: {{score}} out of 100",
    "hasPhone": "Phone number available",
    "hasLinkedin": "LinkedIn profile available",
    "empty": {
      "title": "No candidates yet",
      "body": "Once a candidate accepts your invite they land here. Start by finding someone great.",
      "cta": "Search candidates"
    },
    "emptyFilter": "No candidates match this filter.",
    "showAll": "Show all"
  },
  "pipelineOriginChip": {
    "emptyLabel": "No search context",
    "tooltip": {
      "empty": "This candidate was added manually or via a pre-P9C flow."
    },
    "aria": {
      "pool": "From search: {{label}}",
      "custom": "From custom search: {{label}}",
      "empty": "No search context",
      "flow": "Came through the flow: {{label}}"
    },
    "flowUnnamed": "Came through a flow"
  },
  "recruiterCandidateDetail": {
    "backToList": "Back to My Candidates",
    "acceptedOn": "Accepted on",
    "comingSoon": "Coming soon",
    "notFound": {
      "title": "Not available",
      "body": "This candidate isn't in your pipeline yet. They land here only after accepting an invite.",
      "cta": "Back to My Candidates"
    },
    "tabs": {
      "ariaLabel": "Candidate sections",
      "overview": "Overview",
      "mia": "Mia",
      "pipeline": "Pipeline"
    },
    "overview": {
      "quickFacts": "Quick facts",
      "headline": "Headline",
      "currentRole": "Current role",
      "seniority": "Seniority",
      "experienceYears": "Years of experience",
      "topSkills": "Top skills",
      "languages": "Languages",
      "readiness": "Readiness",
      "goToSynthesis": "Read the full synthesis",
      "downloadResume": "Download resume",
      "uploadedOn": "Uploaded"
    },
    "seniority": {
      "junior": "Junior",
      "mid": "Mid-level",
      "senior": "Senior",
      "staff": "Staff",
      "lead": "Lead",
      "executive": "Executive"
    },
    "contact": {
      "title": "Contact",
      "email": "Email",
      "phone": "Phone",
      "location": "Location",
      "linkedin": "LinkedIn",
      "snapshotTooltip": "Snapshot taken on {{date}}. Contact details are frozen at the moment of acceptance.",
      "snapshotAria": "About this contact snapshot"
    },
    "origin": {
      "title": "How they entered your pipeline",
      "query": "Search query",
      "role": "Role invited for",
      "skill": "Primary skill",
      "reasoning": "Why Mia suggested them",
      "searchRunOn": "Search run on",
      "viewSavedSearch": "View saved search",
      "empty": "This candidate was added manually or before search-origin tracking was introduced. No search context is recorded."
    },
    "stage": {
      "title": "Stage",
      "hint": "Move the candidate forward or close the loop.",
      "terminal": "This stage is final. No further transitions.",
      "transitionError": "Could not update stage. Please try again.",
      "action": {
        "interviewing": "Start interviewing",
        "offer": "Extend offer",
        "hired": "Mark hired",
        "rejected": "Close, didn't move forward",
        "withdrawn": "Mark withdrawn"
      }
    },
    "confirm": {
      "rejected": "Mark this candidate as not a fit? The candidate will be notified.",
      "withdrawn": "Mark this candidate as withdrawn? This is final.",
      "hired": "Mark this candidate as hired? This closes the loop and is final."
    },
    "confirmTitle": {
      "rejected": "Mark as not a fit?",
      "withdrawn": "Mark as withdrawn?",
      "hired": "Mark as hired?"
    },
    "compensation": {
      "eyebrow": "Compensation",
      "title": "Benchmark & expectation",
      "empty": "No compensation signal yet. Ask the candidate for their range, or ask Mia for a salary benchmark.",
      "benchmarkTitle": "Mia's benchmark",
      "benchmarkMissing": "No benchmark for this candidate yet. Mia can show you one when you ask her about them.",
      "expectationTitle": "Candidate's expectation",
      "expectationMissing": "The candidate hasn't shared a target range.",
      "median": "Median",
      "ideal": "Ideal",
      "verdict": {
        "below": "Below market, room to offer above ask.",
        "in-range": "In Mia's band, a fair meeting point.",
        "above": "Above market ceiling, negotiate carefully."
      }
    },
    "interviews": {
      "title": "Interviews",
      "historyTitle": "Interview history",
      "placeholder": "Interview scheduling arrives next sprint. You'll be able to book, reschedule and sync with your calendar from here."
    },
    "onboarding": {
      "title": "Onboarding",
      "placeholder": "Start date, welcome kit, and buddy assignment land in a future release. For now, treat this candidate as hired and align on next steps offline."
    },
    "notes": {
      "title": "Notes",
      "hint": "Private. Only you can see these.",
      "placeholder": "Record your impressions, next steps, references to check…",
      "chars": "characters",
      "saving": "Saving…",
      "saved": "Saved",
      "error": "Save failed"
    },
    "history": {
      "title": "Activity"
    },
    "pipelineV2": {
      "currentStage": "Current hiring stage",
      "engagementHistory": "Engagement history",
      "advanceTo": "Move to {{stage}}?",
      "advanceDesc": {
        "interviewing": "Start interviewing this candidate. You'll be able to schedule interviews and track engagement.",
        "offer": "Extend an offer. The candidate will be notified and can accept or decline.",
        "hired": "Close the loop on a successful hire. This is final."
      },
      "scheduleFirst": {
        "title": "Start interviewing",
        "desc": "Schedule the first interview. Scheduling automatically moves the candidate to the Interviewing stage.",
        "cta": "Schedule first interview"
      },
      "noCompletedInterviewWarn": "No interview has been marked as completed yet. You can still extend an offer, but consider recording the interview outcome first."
    }
  },
  "recruiterInterviews": {
    "newInterview": "Schedule interview",
    "syncComingSoon": "Sync to calendar (coming soon)",
    "syncTooltip": "Calendar sync arrives in a future release. For now, interviews live only inside Snypra.",
    "loading": "Loading interviews…",
    "empty": "No interviews scheduled yet.",
    "terminalNote": {
      "hired": "This candidate has been hired, so the interview list below is read-only reference.",
      "rejected": "This candidate is closed, so interview scheduling is disabled.",
      "withdrawn": "The candidate withdrew, so interview scheduling is disabled."
    },
    "upcoming": "Upcoming",
    "past": "Past",
    "minutes": "min",
    "edit": "Edit",
    "markCompleted": "Mark completed",
    "cancelAction": "Cancel",
    "confirmCancel": "Cancel this interview? The candidate will not see this action but the record will be kept.",
    "confirmCancelTitle": "Cancel this interview?",
    "statusCompleted": "Completed",
    "statusCancelled": "Cancelled",
    "statusPast": "Past",
    "form": {
      "titleCreate": "Schedule interview",
      "titleEdit": "Edit interview",
      "dateTime": "Date & time",
      "yourTime": "(your time)",
      "duration": "Duration",
      "durationCustom": "Custom duration in minutes",
      "location": "Location",
      "locationPlaceholder": "Google Meet link, office, phone…",
      "notes": "Agenda notes",
      "notesHint": "(private)",
      "notesPlaceholder": "Topics, questions, context…",
      "schedule": "Schedule",
      "save": "Save changes",
      "saving": "Saving…",
      "errorInvalidDate": "Pick a valid date and time.",
      "errorInvalidDuration": "Duration must be between 5 and 480 minutes.",
      "errorSave": "Could not save. Please try again."
    }
  },
  "admin": {
    "shell": {
      "badge": "Admin",
      "exitAdmin": "Back to my app",
      "signOut": "Sign out",
      "nav": {
        "users": "Users",
        "audit": "Audit log",
        "revenue": "Revenue",
        "llmUsage": "LLM usage",
        "monitoring": "Monitoring",
        "demand": "Demand",
        "miaEval": "Mia Eval",
        "moderation": "Moderation",
        "smartHr": "Smart HR",
        "seo": "SEO",
        "support": "Support",
        "mia": "Mia queue",
        "invoices": "Invoices",
        "recruiterReview": "Verification",
        "failures": "Failures",
        "marketing": "Marketing",
        "tests": "Tests",
        "miaConversations": "Mia conversations",
        "publisher": "Publisher"
      },
      "group": {
        "people": "People",
        "money": "Money",
        "smartHr": "Smart HR",
        "platform": "Platform",
        "growth": "Growth"
      }
    },
    "smartHrReview": {
      "title": "Smart HR eligibility review",
      "subtitle": "Recruiters whose declared role couldn't be auto-classified. Approving marks them a direct employer; excluding keeps classic search only. Decisions are locked against automatic recompute.",
      "loading": "Loading review queue…",
      "emptyQueue": "No pending reviews. The gate auto-classifies most recruiters.",
      "error": "Couldn't load the review queue.",
      "actionFailed": "Action failed. Try again.",
      "role": "Declared role",
      "action": {
        "approve": "Approve",
        "exclude": "Exclude"
      },
      "toast": {
        "approved": "Recruiter approved for Smart HR.",
        "excluded": "Recruiter excluded from Smart HR."
      }
    },
    "networkRoster": {
      "title": "Recruiter network roster",
      "subtitle": "Everyone in the network, plus anyone on hold. Not a queue: joining the network needs no approval, so nothing here is waiting on you. Suspend when the evidence says so; the hold is reversible and deletes nothing.",
      "empty": "Nobody has joined the network yet.",
      "score": "Score",
      "action": {
        "suspend": "Put on hold",
        "reinstate": "Lift the hold",
        "verifyReach": "Record audience",
        "clearReach": "Clear check"
      },
      "toast": {
        "suspended": "Recruiter put on hold.",
        "reinstated": "Hold lifted. Recruiter is live again.",
        "reachVerified": "Audience recorded.",
        "reachCleared": "Check cleared.",
        "reachInvalid": "Enter a whole number, zero or more."
      },
      "reach": {
        "declared": "Declared",
        "verified": "Verified",
        "claimed": "They claimed",
        "awaiting": "Asked to be checked"
      }
    },
    "users": {
      "title": "Users",
      "subtitle": "Search, review, and manage Snypra accounts.",
      "stub": "User management lands in the next admin sprint day.",
      "searchPlaceholder": "Search by email or name…",
      "loading": "Loading users…",
      "loadingMore": "Loading more…",
      "loadMore": "Load more",
      "emptyResults": "No users match those filters.",
      "error": "Failed to load users. Try again.",
      "filter": {
        "all": "All",
        "candidate": "Candidate",
        "recruiter": "Recruiter",
        "advocate": "Advocate",
        "admin": "Admin"
      },
      "column": {
        "user": "User",
        "role": "Role",
        "joined": "Joined",
        "status": "Status"
      },
      "status": {
        "active": "Active",
        "disabled": "Disabled",
        "deleted": "Soft-deleted",
        "deletionRequested": "Deletion requested",
        "deletionScheduled": "Deletion scheduled"
      },
      "detail": {
        "back": "Back to users",
        "loading": "Loading user…",
        "error": "Failed to load user. Try again.",
        "actionFailed": "Action failed. Try again.",
        "emailVerified": "Email verified",
        "emailUnverified": "Email not verified",
        "claim": {
          "admin": "Admin claim"
        },
        "actions": {
          "title": "Admin actions",
          "setQuota": "Set search quota override",
          "flag": "Flag account for abuse",
          "unflag": "Clear abuse flag",
          "forceVerify": "Force email verify",
          "promoteAdmin": "Grant admin role",
          "revokeAdmin": "Revoke admin role",
          "softDelete": "Soft-delete user",
          "restore": "Restore user",
          "approveRecruiter": "Approve recruiter",
          "rejectRecruiter": "Reject recruiter",
          "grantCredits": "Grant credits",
          "grantWallet": "Grant wallet EUR"
        },
        "grant": {
          "creditsTitle": "Grant credits to this candidate",
          "creditsBody": "The granted credits are booked as a platform expense (not revenue). The candidate sees the new balance immediately and gets a notification.",
          "creditsAmountLabel": "Amount (credits)",
          "creditsAmountPlaceholder": "e.g. 100",
          "walletTitle": "Grant wallet EUR to this recruiter",
          "walletBody": "The granted amount is booked as a bonus (not revenue) and is NOT invoice-eligible. The recruiter sees the new balance immediately and gets a notification.",
          "walletAmountLabel": "Amount (EUR)",
          "walletAmountPlaceholder": "e.g. 50.00",
          "reasonLabel": "Reason (audit-logged)",
          "reasonPlaceholder": "Short explanation. Appears on the audit log and in the notification sent to the user.",
          "confirm": "Grant",
          "errorAmountRequired": "An amount is required.",
          "errorReasonRequired": "A reason is required.",
          "errorCreditsInvalid": "Credits must be a whole number ≥ 1.",
          "errorWalletInvalid": "Wallet amount must be greater than 0."
        },
        "verification": {
          "pending": "Pending verification",
          "approved": "Verified",
          "rejected": "Rejected"
        },
        "reject": {
          "title": "Reject recruiter",
          "body": "Provide a reason for rejecting this recruiter. The recruiter will be notified.",
          "placeholder": "Reason for rejection (optional)",
          "confirm": "Reject"
        },
        "info": {
          "title": "Account",
          "uid": "UID",
          "joined": "Joined",
          "language": "Language",
          "providers": "Sign-in providers"
        },
        "company": {
          "title": "Company verification",
          "name": "Company name",
          "country": "Country",
          "role": "Function",
          "email": "Work email",
          "taxId": "Tax ID",
          "regId": "Company registration",
          "website": "Website",
          "phone": "Phone",
          "address": "Address",
          "size": "Company size",
          "description": "About",
          "submittedAt": "Verification submitted",
          "contactName": "Contact name",
          "hiringContext": "Hires for",
          "industry": "Industry",
          "linkedIn": "LinkedIn",
          "sizeValue": "{{band}} employees",
          "founding": "Founding recruiter",
          "foundingYes": "Yes",
          "foundingNo": "No",
          "approvedAt": "Approved",
          "rejectedAt": "Rejected",
          "rejectionReason": "Rejection reason"
        },
        "quota": {
          "title": "Search quota",
          "tier": "Tier",
          "used": "Used today",
          "override": "Override",
          "resetsAt": "Resets at"
        },
        "audit": {
          "title": "Recent activity",
          "empty": "No audit entries yet."
        },
        "toast": {
          "quotaUpdated": "Quota override updated.",
          "invalidNumber": "Please enter a valid number.",
          "flagged": "Account flagged.",
          "unflagged": "Abuse flag cleared.",
          "emailVerified": "Email marked verified.",
          "promoted": "Admin role granted.",
          "revoked": "Admin role revoked.",
          "softDeleted": "User soft-deleted.",
          "restored": "User restored.",
          "recruiterApproved": "Recruiter approved.",
          "recruiterRejected": "Recruiter rejected.",
          "creditsGranted": "Credits granted. Candidate notified.",
          "walletGranted": "Wallet credit granted. Recruiter notified.",
          "followupSent": "Follow-up email sent."
        },
        "notes": {
          "title": "Admin notes",
          "placeholder": "Write an internal note about this user…",
          "add": "Add note",
          "loading": "Loading notes…",
          "empty": "No admin notes yet.",
          "delete": "Delete"
        },
        "onboarding": {
          "title": "Onboarding follow-up",
          "resume": "Resume",
          "video": "Video",
          "done": "Uploaded",
          "missing": "Missing",
          "step": "Onboarding step",
          "complete": "Profile is complete. No follow-up needed.",
          "sendFollowUp": "Send follow-up email",
          "sending": "Sending…",
          "hint": "An email will be sent in the candidate's preferred language.",
          "followupSent": "Follow-up sent on {{ date }}",
          "error": "Onboarding error",
          "byConversation": "Built in a conversation"
        },
        "notFound": {
          "title": "This account no longer exists",
          "body": "The user record for this ID has been deleted. If you arrived from the recruiter queue, the company record outlived the account, and you can remove it from that page."
        }
      },
      "paths": {
        "title": "How profiles are built",
        "byCv": "From a CV",
        "byConversation": "In a conversation with Mia",
        "abandoned": "{{n}} started, not finished"
      }
    },
    "revenue": {
      "title": "Revenue",
      "subtitle": "Every ledger, classified. Cash taken, what it cost, what was spent.",
      "loading": "Loading revenue data…",
      "error": "Failed to load revenue data.",
      "empty": "No revenue data for this range.",
      "export": "Export CSV",
      "column": {
        "period": "Period"
      },
      "range": {
        "label": "Date range",
        "d7": "7 days",
        "d30": "30 days",
        "d90": "90 days",
        "d365": "12 months"
      },
      "netCash": "Net cash taken",
      "meta": {
        "rows": "Ledger rows",
        "escrow": "Escrow movement",
        "window": "Window"
      },
      "sponsorshipFailed": "Event sponsorships could not be read. Every other figure on this page is complete.",
      "unclassified": {
        "title": "Unclassified transactions",
        "body": "These types are written by the platform and classified nowhere, so they are in none of the totals below. Add them to shared/revenue_registry.py."
      },
      "board": {
        "cash": "Cash in",
        "cost": "Cost and liability",
        "costHint": "Partner credits minted, candidate earnings accrued, and platform-funded bonuses. None of this is revenue.",
        "recognition": "Balance spent",
        "recognitionHint": "What customers spent balance they had already paid for. Recognition, not new cash.",
        "margin": "Smart HR delivery margin",
        "byPeriod": "By period",
        "noneCash": "No customer payments in this range.",
        "noneCost": "No cost recorded in this range."
      },
      "margin": {
        "period": "Month",
        "billed": "Billed",
        "partner": "Partner share",
        "ambassador": "Ambassador",
        "kept": "Kept",
        "unpaid": "Owed, unpaid",
        "untrusted": "unreconciled",
        "hint": "Fully loaded: what remained after the partner's half and the ambassador chain. An unpaid figure means a partner is owed credits settlement will not retry."
      },
      "netCashNote": "Customer payments less refunds. Excludes bonuses granted, escrow held and balance spent.",
      "stream": {
        "wallet_topup": "Wallet top-up",
        "wallet_bonus": "Founding match bonus",
        "profile_view": "Profile view",
        "invite_escrow_held": "Invite escrow held",
        "invite_escrow_released": "Invite escrow released",
        "invite_accepted": "Invite accepted",
        "synthesis_unlock": "Hiring synthesis unlock",
        "test_analysis_unlock": "Test analysis unlock",
        "smart_hr_licence": "Smart HR licence (first year)",
        "smart_hr_renewal": "Smart HR licence renewal",
        "flow_delivery": "Flow delivery",
        "ask_mia_held": "Ask Mia · time held",
        "ask_mia_released": "Ask Mia · time released",
        "ask_mia_voice": "Ask Mia · voice minutes",
        "ask_mia_typed": "Ask Mia · typed answer",
        "wallet_refund": "Refund",
        "credit_pack_boost": "Credit pack · Boost",
        "credit_pack_coach": "Credit pack · Coach",
        "credit_pack_power": "Credit pack · Power",
        "credit_signup_bonus": "Signup bonus",
        "credit_referral_welcome": "Referral welcome bonus",
        "credit_admin_grant": "Admin credit grant",
        "credit_challenge_earn": "Challenge reward",
        "credit_unlock_synthesis": "Self-synthesis unlock",
        "credit_unlock_mirror": "Recruiter-view mirror",
        "credit_unlock_bundle": "Synthesis + mirror bundle",
        "credit_unlock_salary": "Salary benchmark",
        "credit_unlock_test_report": "Test report",
        "credit_challenge_unlock": "Challenge unlock",
        "credit_reupload_cv": "CV re-upload",
        "credit_reupload_video": "Video re-upload",
        "credit_refund_purchase": "Credit purchase refund",
        "credit_refund_system": "System credit refund",
        "credit_coaching_held": "Coaching time held",
        "credit_coaching_released": "Coaching time released",
        "credit_coaching_voice": "Coaching · voice minutes",
        "credit_coaching_typed": "Coaching · typed answer",
        "partner_flow_reach": "Partner delivery reward",
        "partner_ambassador_l1": "Ambassador commission (L1)",
        "partner_ambassador_l2": "Ambassador commission (L2)",
        "partner_sourced_commission": "Sourced-earnings commission",
        "partner_redeem_view": "Partner CR redeemed",
        "earn_profile_view": "Candidate earning · view",
        "earn_invite_accepted": "Candidate earning · invite accepted",
        "earn_referral": "Candidate earning · referral",
        "earn_social_boost_marker": "Boost period activated",
        "event_sponsorship": "Event sponsorship"
      }
    },
    "monitoring": {
      "title": "Monitoring",
      "subtitle": "Search performance, digest health, and demand cluster status from the last 24 hours.",
      "stub": "The monitoring dashboard is coming in the next sprint day.",
      "loading": "Loading monitoring data…",
      "error": "Failed to load monitoring data.",
      "noSnapshot": "No monitoring snapshot yet. The daily snapshot runs at 05:30 UTC.",
      "search": {
        "title": "Search performance",
        "total": "Total searches",
        "zeroRate": "Zero-result rate",
        "mean": "Mean latency",
        "rolePromoted": "Role promoted",
        "relaxed": "Relaxed queries"
      },
      "digests": {
        "title": "Scheduled jobs",
        "adminRuns": "Admin digest runs",
        "adminItems": "Admin items sent",
        "adminErrors": "Admin errors",
        "notifRuns": "Notification runs",
        "notifItems": "Notif items sent",
        "notifErrors": "Notif errors"
      },
      "clusters": {
        "title": "Demand clusters",
        "total": "Total clusters",
        "alerts": "Alert-worthy"
      }
    },
    "demand": {
      "title": "Demand clusters",
      "subtitle": "Saved-search demand grouped by role and location.",
      "stub": "The demand triage queue is coming in the next sprint day.",
      "loading": "Loading clusters…",
      "error": "Failed to load demand clusters.",
      "emptyResults": "No clusters match that filter.",
      "recruiters": "Recruiters",
      "searches": "Saved searches",
      "tier": "Top tier",
      "oldest": "Oldest",
      "updated": "Updated",
      "clusterId": "Cluster",
      "highTrust": "High trust",
      "alertBadge": "Alert",
      "miaKeywords": "Mia-interpreted roles",
      "sampleQueries": "Sample raw queries",
      "filter": {
        "all": "All",
        "new": "New",
        "sourcing": "Sourcing",
        "dismissed": "Dismissed"
      },
      "status": {
        "new": "New",
        "sourcing": "Sourcing",
        "dismissed": "Dismissed"
      },
      "action": {
        "source": "Mark sourcing",
        "dismiss": "Dismiss",
        "reopen": "Re-open"
      }
    },
    "miaEval": {
      "title": "Mia evaluation",
      "subtitle": "Quality gate for Mia invite drafts. Rate a sample, see the aggregate signal.",
      "stub": "The evaluation tool is coming in the next sprint day.",
      "tabRate": "Rate invites",
      "tabSummary": "Summary",
      "startDesc": "Pull a random sample of recent Mia invite drafts and score each on 5 quality axes.",
      "startBtn": "Sample 10 invites",
      "sampling": "Sampling…",
      "noInvites": "No invites found in the last 30 days.",
      "reasoning": "Mia reasoning",
      "notesPlaceholder": "Optional rater notes…",
      "submitBtn": "Submit & next",
      "submitting": "Submitting…",
      "submitted": "Rating submitted.",
      "submitFailed": "Failed to submit rating.",
      "axis": {
        "relevance": "Relevance",
        "tone": "Tone",
        "length": "Length",
        "personalization": "Personalization",
        "safety": "Safety"
      },
      "goSignal": "Go · quality acceptable",
      "noGoSignal": "No-go · quality below threshold",
      "totalRatings": "Total ratings",
      "invitesRated": "Invites rated",
      "raters": "Raters",
      "noRatings": "No ratings yet. Pull a sample and start rating."
    },
    "moderation": {
      "title": "Content moderation",
      "subtitle": "Flagged candidates awaiting review.",
      "stub": "The moderation surface is coming in the next sprint day.",
      "loading": "Loading flagged content…",
      "error": "Failed to load flagged content.",
      "emptyQueue": "No flagged candidates. The moderation queue is clear.",
      "actionFailed": "Action failed. Try again.",
      "mediaFailed": "Could not open that file. It may have been removed.",
      "popupBlocked": "Your browser blocked the new tab. Allow pop-ups for this site to open candidate media.",
      "viewVideo": "Video",
      "viewResume": "Resume",
      "readiness": "Readiness",
      "action": {
        "clear": "Clear flag",
        "rerecord": "Force re-record",
        "suspend": "Suspend"
      },
      "toast": {
        "cleared": "Flag cleared. Candidate is eligible for search again.",
        "rerecord": "Re-record forced. Candidate notified.",
        "suspended": "Candidate suspended."
      },
      "findings": {
        "title": "Flagged findings",
        "subtitle": "Candidates asked for these to be checked. Keeping closes the flag; withdrawing removes the finding from every reader.",
        "empty": "No finding is waiting.",
        "note": "Candidate note",
        "keep": "Keep",
        "withdraw": "Withdraw",
        "loadError": "The flags could not be loaded.",
        "actionError": "The decision could not be saved.",
        "kept": "Finding kept.",
        "withdrawn": "Finding withdrawn.",
        "flaggedOn": "flagged {{date}}"
      }
    },
    "support": {
      "title": "Support inbox",
      "subtitle": "Triage and reply to every candidate + recruiter ticket.",
      "loading": "Loading tickets…",
      "loadingThread": "Loading thread…",
      "empty": "No tickets match those filters.",
      "error": "Failed to load tickets.",
      "selectPrompt": "Pick a ticket on the left to open the thread.",
      "messages": "Messages",
      "updated": "Updated",
      "opened": "Opened",
      "closed": "Closed",
      "back": "Back to list",
      "closedNotice": "This ticket is closed. Further replies are not accepted.",
      "filter": {
        "statusLabel": "Status filter",
        "all": "All",
        "open": "Open",
        "inProgress": "In progress",
        "resolved": "Resolved",
        "closed": "Closed"
      },
      "role": {
        "label": "Role filter",
        "all": "Everyone",
        "candidate": "Candidates",
        "recruiter": "Recruiters"
      },
      "category": {
        "profile": "Profile",
        "synthesis": "Synthesis",
        "credits": "Credits",
        "invite": "Invite",
        "bug": "Bug",
        "other": "Other",
        "billing": "Billing",
        "wallet": "Wallet",
        "credit": "Credits",
        "search": "Search",
        "unlock": "Unlock"
      },
      "status": {
        "open": "Open",
        "in_progress": "In progress",
        "resolved": "Resolved",
        "closed": "Closed",
        "transitioned": {
          "in_progress": "Marked in progress.",
          "resolved": "Marked resolved.",
          "closed": "Closed."
        }
      },
      "from": {
        "admin": "Support"
      },
      "reply": {
        "label": "Reply to the user",
        "placeholder": "Write your reply…",
        "send": "Send reply",
        "sending": "Sending…",
        "sent": "Reply sent.",
        "failed": "Reply failed. Try again."
      },
      "action": {
        "resolve": "Mark resolved",
        "close": "Close ticket"
      }
    },
    "llmUsage": {
      "title": "LLM usage",
      "subtitle": "Model spend by feature, product area and model · every call site, from the usage ledger.",
      "loading": "Loading LLM usage…",
      "error": "Failed to load LLM usage.",
      "empty": "No model calls in this range.",
      "range": {
        "label": "Date range",
        "d7": "7 days",
        "d30": "30 days",
        "d90": "90 days"
      },
      "dimLabel": "Group by",
      "dim": {
        "feature": "Feature",
        "area": "Product area",
        "model": "Model"
      },
      "totalCost": "Model spend",
      "callCount": "{{calls}} calls",
      "tokens": "Tokens",
      "avgLatency": "Avg latency",
      "failures": "Failures",
      "billableCost": "Cost of paid deliverables",
      "budget": "Monthly budget",
      "perDay": "Cost per day",
      "breakdown": "Breakdown",
      "cutover": "Usage has been recorded since {{date}}. Anything before that is unmeasured, not free.",
      "truncated": "Only the first {{rows}} calls in this window were read, so every figure below is a floor rather than a total. Narrow the range.",
      "col": {
        "name": "Name",
        "calls": "Calls",
        "tokens": "Tokens",
        "latency": "Latency",
        "failures": "Failures",
        "cost": "Cost"
      },
      "feature": {
        "video_analysis": "Video trait analysis",
        "transcription": "Video transcription",
        "transcript_analysis": "Transcript analysis",
        "resume_analysis": "Resume parsing",
        "synthesis": "Profile synthesis",
        "document_ocr": "Document OCR fallback",
        "job_analysis": "Job description analysis",
        "conversation": "Mia conversation",
        "matching": "Search query parsing",
        "relevance_gate": "Search relevance gate",
        "evidence_judge": "Search evidence judge",
        "invite_draft": "Invite drafting",
        "prospect_extraction": "Partner prospect extraction",
        "skills_generation": "Skills challenge generation",
        "skills_grading": "Skills challenge grading",
        "personality_generation": "Personality challenge generation",
        "personality_grading": "Personality challenge grading",
        "cognitive_generation": "Cognitive challenge generation",
        "cognitive_grading": "Cognitive challenge grading",
        "communication_generation": "Communication challenge generation",
        "communication_grading": "Communication challenge grading",
        "cognitive_item_probe": "Cognitive item probe",
        "salary_benchmark": "Salary benchmark",
        "test_report": "Candidate test report",
        "test_analysis": "Recruiter test analysis",
        "company_research": "Company research",
        "company_page_generation": "Company page generation",
        "flow_suggestion": "Talent-flow suggestions",
        "flow_tuning": "Flow constraint tuning",
        "social_post_generation": "Amplification post generation",
        "event_matching": "Event sponsor pitch",
        "campaign_copy": "Campaign copy drafting",
        "search_templates": "Search suggestions",
        "preselection_turn": "Mia pre-selection chat turn",
        "onboarding_turn": "Mia onboarding talk turn",
        "onboarding_extraction": "Mia onboarding profile draft",
        "onboarding_trait_scoring": "Mia onboarding trait reading",
        "coaching_turn": "Mia coaching turn",
        "ask_mia_turn": "Ask Mia turn (recruiter)",
        "ask_mia_compare_turn": "Ask Mia comparison turn (recruiter)",
        "ask_mia_compare_brief": "Ask Mia comparison brief",
        "ask_mia_report": "Ask Mia complete report",
        "profile_update_turn": "Mia profile update talk turn",
        "profile_update_extraction": "Mia profile update draft",
        "preselection_extraction": "Mia pre-selection report",
        "public_search_copy": "Public search page copy"
      },
      "area": {
        "candidate_pipeline": "Candidate pipeline",
        "search": "Search",
        "test_your_skills": "Test Your Skills",
        "smart_hr": "Smart HR",
        "paid_reports": "Paid reports",
        "recruiter_tools": "Recruiter tools",
        "visibility_lab": "Visibility Lab",
        "platform_marketing": "Snypra marketing"
      },
      "notYetRecording": "No model calls recorded yet. Usage is measured from this deploy onward, so this is not a reading of zero spend."
    },
    "audit": {
      "title": "Audit log",
      "subtitle": "Every admin action and security event, searchable.",
      "stub": "The audit viewer lands in the next admin sprint day.",
      "filterAction": "Action",
      "filterActionPlaceholder": "e.g. admin_role_granted",
      "filterTarget": "Target UID",
      "filterTargetPlaceholder": "Paste a user uid…",
      "search": "Search",
      "loading": "Loading audit log…",
      "loadingMore": "Loading more…",
      "loadMore": "Load more",
      "emptyResults": "No audit entries match those filters.",
      "error": "Failed to load audit entries.",
      "actor": "Actor",
      "target": "Target",
      "showDiff": "Show details",
      "actorSentinel": {
        "serverAutoPromote": "Server · auto-promote",
        "serverQuotaGate": "Server · quota gate",
        "serverAdminSuspend": "Server · admin suspend",
        "serverScheduled": "Server · scheduled job",
        "clientSelf": "User (self)"
      }
    },
    "reachAbuse": {
      "title": "Reach-abuse queue",
      "events": "{{n}} event(s) held",
      "subtitle": "Every gate here DEFERS; nothing is deleted. Releasing puts the events back into the next settlement run, and confirming is the only action on the platform that voids earnings.",
      "empty": "Nothing held. Every measured event settled normally.",
      "truncated": "The queue could not be read. This is not an empty queue. Try again.",
      "action": {
        "release": "Release",
        "confirm": "Confirm abuse"
      },
      "toast": {
        "released": "Released. They settle on the next run.",
        "confirmed": "Confirmed as abuse. Those events will never settle."
      },
      "reason": {
        "mission_cap": "Daily cap for one mission",
        "partner_cap": "Daily cap for one partner",
        "ip_bucket_cap": "Too many from one machine",
        "flow_daily_cap": "The flow's daily budget",
        "partner_ineligible": "Partner is not active",
        "zero_conversion": "Traffic that converts nobody"
      }
    },
    "mia": {
      "title": "Mia · publishing queue",
      "subtitle": "Three posts a day, seven days a week, across the whole platform. Mia only takes a flow whose budget buys reach the partner network is not supplying.",
      "loading": "Loading the queue…",
      "error": "The queue could not be loaded.",
      "schedule": "Schedule",
      "blocker": {
        "flagOff": {
          "title": "Publishing is switched off.",
          "body": "The queue keeps filling so the backlog stays visible, but no slot will post until enable_mia_publishing is on."
        },
        "paused": {
          "title": "The queue is paused.",
          "body": "Rows keep their place and their score. Nothing posts until it is resumed."
        },
        "notProvisioned": {
          "title": "Mia has not been set up yet.",
          "body": "Connecting her LinkedIn below creates her Snypra record at the same time. Nothing publishes until both are done."
        },
        "notConnected": {
          "title": "Mia's LinkedIn is not connected.",
          "body": "She is set up and cannot post. Use the button below, then sign in to LinkedIn as Mia and approve."
        }
      },
      "partner": {
        "title": "Mia's account",
        "help": "Mia is a platform identity, not a person: there is no login and nobody signs in as her. Connecting opens LinkedIn's consent screen, where you sign in with Mia's LinkedIn credentials and approve. Her Snypra record is created automatically.",
        "account": "Snypra record",
        "provisioned": "Set up",
        "notProvisioned": "Not set up",
        "linkedin": "LinkedIn",
        "connected": "Connected",
        "notConnected": "Not connected",
        "connect": "Connect Mia's LinkedIn",
        "reconnect": "Reconnect",
        "disconnect": "Disconnect"
      },
      "tuning": {
        "title": "Priority",
        "help": "Three weighted terms decide who gets the next slot. Licence tier is a weight, never an ordering: a small customer who has waited must be able to outrank a large one served today.",
        "room": "Unserved reach",
        "tier": "Licence tier",
        "starvation": "Time waited",
        "cooldown": "Cooldown (days)",
        "pause": "Pause the queue",
        "resume": "Resume the queue"
      },
      "queue": {
        "title": "Waiting",
        "empty": "Nothing is waiting. Every funded flow is covered by the partner network.",
        "room": "{{room}} of {{target}} daily visits unserved"
      },
      "history": {
        "title": "Recent",
        "empty": "Nothing has run yet."
      },
      "state": {
        "queued": "Queued",
        "held": "Held",
        "publishing": "Publishing",
        "published": "Published",
        "failed": "Failed",
        "skipped": "Skipped",
        "stood_down": "Stood down"
      },
      "standDown": {
        "covered": "A partner covered the reach",
        "unfunded": "Budget exhausted",
        "flow_closed": "The flow closed",
        "flow_gone": "The flow was deleted",
        "stale": "Waited too long",
        "entry_closed": "The search was closed or expired"
      },
      "action": {
        "hold": "Hold",
        "release": "Release",
        "skip": "Skip"
      },
      "toast": {
        "hold": "Held.",
        "release": "Back in the queue.",
        "skip": "Skipped.",
        "configSaved": "Saved.",
        "failed": "That did not work.",
        "badWeight": "A weight must be zero or more.",
        "disconnected": "LinkedIn disconnected.",
        "languageSaved": "Language updated.",
        "captionSaved": "Post saved."
      },
      "language": {
        "label": "Posts in",
        "fromFlow": "follows the flow",
        "overridden": "set by an admin",
        "fromEntry": "follows the search"
      },
      "publicSearch": {
        "badge": "Public search"
      },
      "caption": {
        "label": "The post",
        "hint": "Keep {link} exactly once: it becomes the tracked link to the search. Never name the company.",
        "save": "Save the post",
        "edited": "edited by an administrator",
        "problem": {
          "copy_unavailable": "Mia could not write this post. Write it here, or it will not go out.",
          "names_company": "Mia's post named the company and was discarded. Write it here without the name."
        },
        "refused": {
          "empty": "The post is empty.",
          "too_long": "The post is too long for LinkedIn.",
          "link_placeholder": "The post must contain {link} exactly once.",
          "names_company": "The post names the company. A post outlives its consent: write it without the name."
        }
      }
    },
    "seo": {
      "title": "Search visibility",
      "subtitle": "Every company page derives its own SEO from the page the company wrote, so there is nothing to configure here. This says whether that machinery is running.",
      "loading": "Loading…",
      "error": "Could not load the SEO status.",
      "pipelines": {
        "title": "Pipelines"
      },
      "gsc": {
        "title": "Search Console",
        "health": {
          "ok": "Reading Google's figures",
          "error": "The last pull failed",
          "not_configured": "No property configured",
          "never_run": "Configured, never run"
        },
        "lastRun": "Last run {{at}}",
        "counts": "{{day}} · {{pages}} pages · {{withData}} with data · {{noData}} with none",
        "hint": "Needs GSC_PROPERTY set, the runtime service account added as a user on the property, and serviceAccountTokenCreator granted to it on itself."
      },
      "indexnow": {
        "title": "IndexNow",
        "health": {
          "ok": "Pushing changes to Bing",
          "not_configured": "No key configured",
          "by_design": "Off · this is not the public host"
        },
        "none": "Nothing submitted in the last 30 days."
      },
      "sitemap": {
        "title": "Company sitemap",
        "count": "{{pages}} published pages · {{urls}} URLs",
        "hint": "Generated per request, and advertised in robots.txt on the public host only."
      },
      "pages": {
        "title": "Pages",
        "none": "No company page is published yet.",
        "unreadable": "{{count}} page(s) could not be read. That is our failure, not Google's verdict.",
        "page": "Page",
        "state": "State",
        "impressions": "Shown",
        "clicks": "Clicks",
        "ctr": "Click rate",
        "position": "Position",
        "queries": "Top searches",
        "status": {
          "ok": "measured",
          "no_data": "not indexed",
          "not_measured": "not measured",
          "unreadable": "unreadable"
        }
      }
    },
    "invoices": {
      "title": "Invoices",
      "subtitle": "Every invoice issued, and proof the series has no holes.",
      "loading": "Loading the invoice registry…",
      "error": "Failed to load the invoice registry.",
      "empty": "No invoices issued in {{year}}.",
      "yearLabel": "Year",
      "continuous": "{{prefix}}-{{year}} is complete",
      "broken": "{{prefix}}-{{year}} is not complete",
      "counts": "{{observed}} invoices, {{first}} to {{last}}.",
      "counter": "The counter last issued {{counter}}.",
      "counterUnread": "The counter could not be read, so only interior holes were checked.",
      "gaps": "Numbers allocated and carried by no document:",
      "duplicates": "Numbers issued more than once:",
      "counterBehind": "The counter is behind the documents, so the next invoice would reuse a number already issued. This needs fixing before the next sale.",
      "truncated": "The register could not be read to the end, so the continuity check below is withheld.",
      "partial": "The read stopped at its ceiling, so these figures cover part of the year. A series cannot be called continuous over a set that was not read in full.",
      "total": "{{count}} invoices, {{amount}}",
      "tableCaption": "Invoices issued, by series number",
      "download": "Download invoice {{number}}",
      "downloadFailed": "That invoice could not be downloaded.",
      "col": {
        "number": "Number",
        "issued": "Issued",
        "buyer": "Buyer",
        "source": "Product",
        "amount": "Amount",
        "actions": "Actions"
      },
      "source": {
        "wallet_transactions": "Wallet top-up",
        "sponsorships": "Event sponsorship"
      },
      "uninvoiced": "{{n}} eligible charges carry no invoice number. The series above is unbroken because these never entered it.",
      "uninvoicedFailed": "The uninvoiced-charge check could not run, so the verdict above is incomplete.",
      "completeNote": "The series is unbroken and every eligible charge carries a number."
    },
    "smartHrConsole": {
      "loading": "Loading…",
      "error": "Failed to load Smart HR data.",
      "notRecorded": "not recorded",
      "nav": {
        "orgs": "Organisations",
        "settlement": "Settlement",
        "review": "Review queues",
        "label": "Smart HR sections"
      },
      "licence": {
        "none": "No licence",
        "active": "Active",
        "grace": "Grace",
        "lapsed": "Lapsed",
        "activating": "Activating",
        "tier": "Tier",
        "expires": "Expires",
        "boughtBy": "Bought by",
        "setupBy": "Set up by"
      },
      "orgs": {
        "title": "Organisations",
        "subtitle": "Licence state, flows and delivery spend, per company.",
        "empty": "No organisations yet.",
        "count": "Organisations",
        "licensed": "Licensed",
        "spend": "Delivery spend",
        "truncated": "Not every company could be read, so this ranking is incomplete.",
        "flows": "{{n}} flows",
        "noFlows": "No talent flows."
      },
      "flow": {
        "spendOfBudget": "Spent, of budget"
      },
      "events": {
        "loading": "Loading events…",
        "empty": "No measured events on this flow.",
        "charged": "Charged",
        "notCharged": "Measured, not charged",
        "truncated": "Older events are not shown.",
        "col": {
          "when": "When",
          "tier": "Event",
          "partner": "Partner",
          "outcome": "Outcome",
          "price": "Price"
        },
        "summary": "{{total}} events · {{charged}} billed · {{refused}} not billed",
        "billed": "Billed"
      },
      "outcome": {
        "charged": "Charged",
        "deferred": "Deferred",
        "refused": "Not charged"
      },
      "settlement": {
        "title": "Settlement",
        "subtitle": "What the delivery meter charged and paid, run by run.",
        "runs": "Runs",
        "charged": "Charged",
        "minted": "Credits minted",
        "withErrors": "Runs with errors",
        "empty": "No settlement runs recorded in this window. Runs are recorded from the deploy that added this page onward.",
        "owedTitle": "{{cr}} CR owed to partners and not paid",
        "owedBody": "The company was charged and the credit never reached the partner. Settlement will not retry these.",
        "attempts": "{{n}} attempts",
        "abandoned": "abandoned",
        "col": {
          "when": "When",
          "scanned": "Scanned",
          "due": "Due",
          "flows": "Flows",
          "charged": "Charged",
          "minted": "Credits",
          "errors": "Errors"
        }
      }
    },
    "recruiterReview": {
      "title": "Recruiter verification",
      "subtitle": "Companies awaiting a decision, and accounts that have not finished the form.",
      "loading": "Loading the queue…",
      "error": "The queue could not be loaded.",
      "awaiting": "Awaiting your decision",
      "awaitingEmpty": "Nothing to review. Every submitted company has a decision.",
      "stillFilling": "Signed up, form not submitted",
      "stillFillingEmpty": "Every recruiter who signed up has submitted their company.",
      "submittedAt": "Submitted",
      "signedUp": "Signed up",
      "review": "Review",
      "missingLabel": "Still missing:",
      "missing": {
        "companyName": "Company name",
        "role": "Role",
        "hiringContext": "Hires for",
        "taxId": "VAT number",
        "regId": "Company number"
      },
      "orphan": {
        "heading": "Account deleted, record left behind",
        "explain": "These recruiters never verified their email, so the daily sweep deleted their account seven days after signup. The company record stayed. There is nothing to review: the person is gone and the page for them no longer exists.",
        "purge": "Delete record",
        "purgeFailed": "The record could not be deleted."
      }
    },
    "dialogs": {
      "softDelete": {
        "title": "Soft-delete this user?",
        "message": "They will lose access immediately. The action is restorable.",
        "confirm": "Soft-delete"
      },
      "grantAdmin": {
        "title": "Grant admin access?",
        "message": "{{email}} will gain full admin privileges across the platform.",
        "confirm": "Grant admin"
      },
      "revokeAdmin": {
        "title": "Revoke admin access?",
        "message": "This user will lose all admin privileges.",
        "confirm": "Revoke"
      },
      "approveRecruiter": {
        "title": "Approve this recruiter?",
        "message": "They will gain full platform access.",
        "confirm": "Approve"
      },
      "followUp": {
        "title": "Send follow-up email?",
        "message": "This will send an onboarding reminder to {{email}} in their preferred language.",
        "confirm": "Send email"
      },
      "deleteNote": {
        "title": "Delete this note?",
        "confirm": "Delete"
      },
      "releaseEvents": {
        "title": "Release these events?",
        "message": "{{count}} event(s) held by \"{{reason}}\" go back into the next settlement run and pay normally. Use this when the cap was right in general and wrong here.",
        "confirm": "Release"
      },
      "confirmAbuse": {
        "title": "Confirm this as abuse?",
        "message": "{{count}} event(s) become non-billable and will never settle: the company is not charged and the partner is not paid. This is the only action on the platform that voids earnings, and it cannot be undone here.",
        "confirm": "Confirm abuse"
      },
      "approveSmartHr": {
        "title": "Approve for Smart HR?",
        "message": "{{company}} will be able to activate Smart HR as a direct employer.",
        "confirm": "Approve"
      },
      "clearVerification": {
        "title": "Clear this verification?",
        "message": "{{company}}’s audience goes back to being their own declaration. Use this when the wrong account was checked, or their pages have changed. It does NOT record a zero.",
        "confirm": "Clear"
      },
      "liftHold": {
        "title": "Lift the hold?",
        "message": "{{company}} returns to the network directory with their history intact.",
        "confirm": "Reinstate"
      },
      "forceReRecord": {
        "title": "Force re-record?",
        "message": "The candidate will be required to record a new video before their profile is visible again.",
        "confirm": "Force re-record"
      },
      "suspendCandidate": {
        "title": "Suspend this candidate?",
        "message": "They will lose access to the platform immediately.",
        "confirm": "Suspend"
      },
      "quotaOverride": {
        "title": "Quota override",
        "message": "Integer ≥ 0. Leave empty to clear the override and fall back to the tier default.",
        "placeholder": "e.g. 50",
        "confirm": "Save"
      },
      "dismissCluster": {
        "title": "Dismiss this demand cluster?",
        "message": "Optional: add a reason so other admins can understand the dismissal.",
        "placeholder": "Reason (optional)",
        "confirm": "Dismiss"
      },
      "excludeSmartHr": {
        "title": "Exclude from Smart HR?",
        "message": "{{company}} keeps classic search but cannot activate Smart HR. State the reason (kept in the audit trail).",
        "confirm": "Exclude"
      },
      "suspendNetwork": {
        "title": "Put this recruiter on hold?",
        "message": "{{company}} disappears from the network directory and loses every earning surface. Nothing they own is deleted: the hold is reversible. State the reason (kept in the audit trail).",
        "confirm": "Suspend"
      },
      "verifyReach": {
        "title": "What do they actually reach?",
        "message": "{{company}} declares {{declared}}. Open the pages on the row, then enter the number you actually counted. Zero is a valid answer: it records \"I looked and there is nobody there\", which is different from nobody having looked.",
        "confirm": "Record"
      },
      "purgeOrphan": {
        "title": "Delete this record?",
        "message": "The account behind {{company}} is already gone. This deletes the leftover company record permanently. Nothing else is affected.",
        "confirm": "Delete record"
      }
    },
    "failures": {
      "title": "Pipeline failures",
      "subtitle": "Every analysis that did not finish, with the diagnosis that says why.",
      "loading": "Loading failures…",
      "empty": "Nothing failed in this view.",
      "filterStage": "Filter by pipeline",
      "filterState": "Filter by state",
      "sweptOnly": "Timed out",
      "swept": "timed out",
      "resolve": "Mark handled",
      "resolving": "Marking…",
      "resolvedMark": "Handled",
      "stage": {
        "all": "All",
        "resume": "CV",
        "video": "Video",
        "synthesis": "Synthesis",
        "tests": "Tests",
        "campaign": "Campaign"
      },
      "state": {
        "unresolved": "Open",
        "resolved": "Handled",
        "all": "All"
      },
      "loadError": "We could not load the failure list. This is our problem, not an empty list.",
      "retry": "Try again",
      "needsOps": "needs a human"
    },
    "marketing": {
      "nav": {
        "label": "Marketing sections",
        "campaigns": "Campaigns",
        "contacts": "Contacts",
        "lists": "Lists",
        "deliverability": "Deliverability"
      },
      "loadFailed": {
        "title": "We could not load this.",
        "body": "This is not an empty list: the request failed. Try again, or check the console for the reason."
      },
      "blocked": {
        "title": "Sending is stopped",
        "feature_disabled": "Marketing campaigns are switched off in this environment. Campaigns can still be written and armed; nothing will be sent.",
        "operator_paused": "An operator paused sending. Campaigns stay armed and resume where they stopped.",
        "global_cap_zero": "The platform-wide daily cap is zero, so nothing can go out today."
      },
      "problem": {
        "no_copy": "There is no copy yet. Draft or write at least one language.",
        "default_locale_missing": "The default language is {{locale}} and there is no copy in it. Every recipient whose own language is missing gets the default.",
        "force_locale_missing": "Every recipient is being forced into {{locale}}, and there is no copy in it. Write it, or turn the override off.",
        "force_locale_unknown": "{{locale}} is not a language this platform sends. Pick EN, FR or NL, or turn the override off.",
        "no_subject": "{{locale}}: no subject line.",
        "body_invalid": "{{locale}} · the body is not valid. {{detail}}",
        "placeholder_link": "{{locale}}: a button still points at the placeholder Mia left. Set where it goes.",
        "no_audience": "No audience chosen.",
        "no_list_selected": "The audience is a list, but no list is selected.",
        "list_not_found": "No list has the id {{list_id}}. Pick it from the list menu; the id is not the name you gave it.",
        "no_send_time": "No send time set.",
        "send_time_past": "The send time is in the past.",
        "bad_timezone": "{{timezone}} is not a timezone this server knows.",
        "send_window_too_narrow": "The send window is under {{minimum_hours}}h. The worker runs every 15 minutes, so a narrower one can be missed entirely.",
        "audience_unavailable": "The audience could not be resolved. {{detail}}",
        "audience_empty": "This audience reaches nobody right now.",
        "wrong_language": "{{locale}}: this text is written in {{found}}, not {{expected}}. Everyone who reads this language would get the wrong version."
      },
      "draftProblem": {
        "translation_failed": "{{locale}} · the translation did not come back. {{detail}}",
        "structure_changed": "{{locale}}: the translation changed the block structure. It is here to read, but check it before sending.",
        "wrong_language": "{{locale}}: the text came back in {{found}}, not {{locale}}. It was left out rather than sent in the wrong language. Try again."
      },
      "status": {
        "all": "All",
        "draft": "Draft",
        "scheduled": "Scheduled",
        "materialising": "Building the list",
        "sending": "Sending",
        "paused": "Paused",
        "sent": "Sent",
        "cancelled": "Cancelled"
      },
      "campaigns": {
        "title": "Campaigns",
        "subtitle": "Everything Snypra has sent, is sending, or is about to.",
        "filterLabel": "Filter by status",
        "newName": "Name this campaign",
        "create": "New campaign",
        "empty": "No campaigns yet.",
        "noSubject": "No subject line yet",
        "col": {
          "status": "Status",
          "progress": "Progress",
          "sendAt": "Send time"
        }
      },
      "audienceKind": {
        "candidate": "Candidates",
        "recruiter": "Recruiters",
        "company": "Companies",
        "partner": "Partner network",
        "investor": "Investors",
        "general": "General"
      },
      "basis": {
        "none": "No basis",
        "explicit": "Explicit consent",
        "soft_opt_in": "Existing user",
        "b2b_generic": "Company mailbox",
        "hint": {
          "none": "These contacts are visible and cannot be mailed. Record a basis before sending to them.",
          "explicit": "They actively asked for it. Say what happened and when, because that is exactly what an audit asks for.",
          "soft_opt_in": "Derived from a Snypra account, never declared by hand.",
          "b2b_generic": "A company mailbox such as info@ or contact@. Belgian law does not exempt a named individual at the same company."
        }
      },
      "contacts": {
        "title": "Contacts",
        "subtitle": "Everyone Snypra holds an address for, and why it may write to them.",
        "importTitle": "Add contacts",
        "importHint": "Paste addresses, one per line or as CSV. Declare why Snypra may write to them: a contact with no basis is held and never mailed.",
        "paste": "Addresses",
        "pastePlaceholder": "ann@example.com\njan@example.be",
        "basis": "Why we may write",
        "evidence": "Evidence",
        "importLanguage": "Language for rows that do not say",
        "importLanguageNone": "Leave unset",
        "importLanguageHint": "A file with its own language column still wins, row by row. Left unset, each campaign's own default decides.",
        "evidencePlaceholder": "Wap'Innov stand, 2026-09-03, paper opt-in card",
        "import": "Import",
        "importResult": "{{created}} added, {{updated}} updated, {{rejected}} rejected.",
        "errorsTruncated": "Only the first hundred problems are listed; the count above is exact.",
        "adopt": "Bring in the contact form",
        "adoptResult": "{{adopted}} brought in, {{skipped}} skipped. They arrive with no basis and cannot be mailed.",
        "filterLabel": "Filter by basis",
        "allBases": "All",
        "empty": "No contacts yet.",
        "col": {
          "email": "Address",
          "basis": "Basis",
          "sendable": "Can be mailed",
          "added": "Added"
        },
        "unsubscribed": "Unsubscribed",
        "resubscribe": "Undo unsubscribe"
      },
      "lists": {
        "title": "Lists",
        "subtitle": "Named groups of contacts, curated by hand.",
        "newName": "Name this list",
        "create": "New list",
        "empty": "No lists yet.",
        "members": "{{count}} members",
        "membershipHint": "Being on a list is not a reason to mail somebody. Each contact's own consent decides that, and it is checked again at send.",
        "addLabel": "Add existing contacts",
        "addPlaceholder": "ann@example.com, jan@example.be",
        "add": "Add",
        "addResult": "{{added}} added.",
        "addUnknown": "{{count}} are not contacts yet, so they were not added.",
        "remove": "Remove from list",
        "delete": "Delete list",
        "missingContact": "This contact no longer exists",
        "notSendable": "cannot be mailed"
      },
      "deliverability": {
        "title": "Deliverability",
        "subtitle": "What actually happened to the mail, and the two switches that stop it.",
        "controls": "Controls",
        "pause": "Pause all sending",
        "resume": "Resume sending",
        "pauseReason": "Why",
        "globalCap": "Platform daily cap",
        "saveCap": "Save cap",
        "capHint": "A rolling twenty-four hours, across every campaign. It bounds the sending reputation, which is built slowly and lost in an afternoon.",
        "syncTitle": "SendGrid's own suppression lists",
        "syncHint": "Addresses SendGrid is already refusing that we cannot see. Every send to them has logged as a success, because SendGrid answers 202 for a suppressed recipient. Run the dry run first.",
        "dryRun": "Dry run",
        "sync": "Import them",
        "syncResult": "{{found}} found, {{imported}} imported.",
        "suppressions": "Do not mail",
        "allReasons": "All",
        "noSuppressions": "Nobody is suppressed.",
        "lift": "Lift",
        "events": "Recent events",
        "noEvents": "No events yet. They arrive once the SendGrid webhook is configured.",
        "col": {
          "email": "Address",
          "reason": "Reason",
          "since": "Since",
          "event": "Event",
          "template": "Template",
          "when": "When"
        }
      },
      "reason": {
        "hard_bounce": "Bounced",
        "blocked": "Blocked",
        "spam_report": "Marked as spam",
        "unsubscribed": "Unsubscribed",
        "sendgrid_global": "On SendGrid's list",
        "manual": "Added by hand"
      },
      "scope": {
        "campaign": "campaigns",
        "all": "everything"
      },
      "skip": {
        "suppressed": "on the do-not-mail list",
        "opted_out": "opted out of marketing",
        "no_consent": "no consent recorded",
        "email_unverified": "address never verified",
        "account_closing": "account being deleted",
        "account_disabled": "account disabled",
        "no_address": "no address on file",
        "filtered": "did not match the filters",
        "contact_missing": "contact record is gone",
        "unreachable": "could not be reached"
      },
      "recipientState": {
        "queued": "Queued",
        "sending": "Sending",
        "sent": "Sent",
        "skipped": "Skipped",
        "failed": "Failed"
      },
      "counter": {
        "audience_total": "Audience",
        "sent": "Accepted",
        "delivered": "Delivered",
        "bounced": "Bounced",
        "skipped": "Skipped",
        "failed": "Failed",
        "unsubscribed": "Unsubscribed",
        "spam_reports": "Spam reports"
      },
      "block": {
        "heading": "Heading",
        "paragraph": "Paragraph",
        "quote": "Quote",
        "button": "Button",
        "image": "Image",
        "divider": "Divider",
        "spacer": "Space",
        "stat_row": "Stat row",
        "eyebrow": "Label",
        "media_text": "Image + text",
        "logo_row": "Logo row"
      },
      "editor": {
        "title": "Campaign",
        "back": "All campaigns",
        "tabsLabel": "Campaign sections",
        "tab": {
          "compose": "Compose",
          "audience": "Audience",
          "schedule": "Schedule",
          "review": "Review",
          "report": "Report"
        },
        "problems": "Before this can be scheduled:",
        "localeLabel": "Language",
        "localeMissing": "No copy in this language yet",
        "briefTitle": "Ask Mia to draft it",
        "briefHint": "Mia writes it in one language and carries it into the other two. She never writes a link, so buttons come back with a placeholder you replace.",
        "goal": "What this email is for",
        "audienceBrief": "Who is reading",
        "keyPoints": "Points to make, one per line",
        "askMia": "Ask Mia",
        "subject": "Subject line",
        "preheader": "Preview line",
        "buttonLabel": "Button label",
        "buttonHref": "Where it goes",
        "imageSrc": "Image URL",
        "imageAlt": "Describe the image",
        "logoHref": "Link (optional)",
        "moveUp": "Move up",
        "moveDown": "Move down",
        "removeBlock": "Remove",
        "save": "Save",
        "saved": "Saved.",
        "saveFailed": "That did not save.",
        "draftFailed": "Mia could not draft this one.",
        "previewFailed": "The audience could not be resolved.",
        "readOnly": "Only a draft can be edited. Move it back to draft to change the copy.",
        "noCopy": "No copy in this language yet.",
        "audienceKind": "Send to",
        "kindSegment": "Snypra accounts",
        "kindList": "A list",
        "listId": "List",
        "defaultLocale": "Language for contacts who never told us",
        "defaultLocaleHint": "Anyone on this list with no language of their own is sent this one.",
        "forceLocale": "Force one language for everybody",
        "forceLocaleOff": "Off: each person gets their own",
        "forceLocaleHint": "Overrides even the people who told us they read another language. Use it when you know the whole list better than the data does.",
        "viaDefault": "({{n}} with no language of their own)",
        "forcedNote": "Everyone is being sent {{locale}}, including anyone who declared a different language.",
        "pickList": "Choose a list",
        "noLists": "No lists yet. Create one on the Lists page, then come back.",
        "listsFailed": "The lists could not be read, so the menu is empty. This does not mean you have none; try again.",
        "localeUnused": "You have copy in {{locales}}, and nobody in this audience reads those languages. Check the language column on the contacts you imported.",
        "filterRole": "Role",
        "filterLanguage": "Language",
        "any": "Any",
        "preview": "Count them",
        "reachable": "can be reached right now",
        "truncated": "The scan hit its ceiling, so this is a floor rather than the whole audience.",
        "sendAt": "Start sending at (UTC)",
        "timezone": "Recipients' timezone",
        "timezoneHint": "The send window is read in this timezone, because an hour means something to the person receiving it.",
        "dailyCap": "Most per day",
        "throttle": "Most per run",
        "windowStart": "Not before",
        "windowEnd": "Not after",
        "windowHint": "The worker runs every fifteen minutes; a window under an hour can be missed entirely.",
        "testTitle": "Send yourself a copy",
        "testHint": "No recipient rows, no caps. The unsubscribe link is real, and clicking it genuinely unsubscribes that address.",
        "testTo": "Addresses",
        "sendTest": "Send test",
        "testResult": "{{sent}} sent, {{failed}} failed.",
        "testSent": "Test on its way.",
        "testFailed": "The test did not go out.",
        "lifecycle": "Lifecycle",
        "schedule": "Arm this campaign",
        "unschedule": "Back to draft",
        "pause": "Pause",
        "resume": "Resume",
        "cancel": "Stop for good",
        "done": {
          "schedule": "Armed. Sending starts at the time you set.",
          "unschedule": "Back in draft.",
          "pause": "Paused.",
          "resume": "Sending again.",
          "cancel": "Stopped. The records of who was already mailed are kept."
        },
        "failed": {
          "schedule": "It cannot be armed yet.",
          "unschedule": "That did not work.",
          "pause": "That did not work.",
          "resume": "That did not work.",
          "cancel": "That did not work."
        },
        "counterHint": "Accepted means SendGrid took it; delivered means a receiving server did. They are different numbers.",
        "allRecipients": "All",
        "noRecipients": "No recipients yet.",
        "col": {
          "email": "Address",
          "state": "State",
          "sent": "Accepted",
          "delivered": "Delivered"
        },
        "notFound": {
          "title": "This campaign no longer exists.",
          "body": "It was deleted, or the link is wrong. Trying again will not help."
        },
        "eyebrowText": "Small label above the headline",
        "mediaHeading": "Headline beside the image",
        "mediaText": "Text beside the image",
        "mediaEmphasis": "One line to stand out (optional)",
        "imageSide": "Image on the",
        "sideLeft": "left",
        "sideRight": "right",
        "logoRowLabel": "Row label, e.g. Organised by",
        "addLogo": "Add a logo",
        "removeLogo": "Remove this logo",
        "uploadImage": "Upload an image",
        "uploaded": "Image uploaded.",
        "uploadFailed": "That image did not upload. PNG or JPEG, under 5 MB.",
        "statValue": "The number, e.g. 1,203",
        "statLabel": "What it counts",
        "addStat": "Add a figure",
        "removeStat": "Remove this figure"
      }
    },
    "tests": {
      "title": "Test Your Skills",
      "subtitle": "Who is taking what, what it scores, what it costs, and what the flags say.",
      "nav": {
        "sessions": "Sessions",
        "scores": "Scores",
        "economics": "Economics",
        "integrity": "Integrity",
        "label": "Test sections"
      },
      "loading": "Loading",
      "empty": "Nothing to show yet.",
      "error": "That did not load. Try again.",
      "loadMore": "Load more",
      "retry": "Try again",
      "allSections": "All sections",
      "section": {
        "cognitive": "Cognitive",
        "skills": "Skills",
        "communication": "Communication",
        "personality": "Personality"
      },
      "sessions": {
        "title": "Sessions",
        "subtitle": "One row per challenge a candidate opened, newest first.",
        "col": {
          "candidate": "Candidate",
          "section": "Section",
          "challenge": "Challenge",
          "started": "Started",
          "completed": "Completed",
          "score": "Score",
          "status": "Status"
        },
        "voided": "Voided",
        "notCompleted": "Not finished",
        "empty": "No challenge has been opened yet.",
        "note": "A challenge nobody opened is not a session, so it does not appear here."
      },
      "scores": {
        "title": "Scores",
        "subtitle": "Composite and per-section results across every candidate who has any.",
        "stat": {
          "candidates": "Candidates with progress",
          "scored": "With a completed challenge",
          "meanComposite": "Mean composite",
          "completed": "Challenges completed"
        },
        "col": {
          "candidate": "Candidate",
          "composite": "Composite",
          "completed": "Completed",
          "percentile": "Percentile",
          "badges": "Badges",
          "updated": "Updated"
        },
        "bySection": "By section",
        "sectionCandidates": "Candidates",
        "sectionMean": "Mean score",
        "empty": "No candidate has a test score yet."
      },
      "economics": {
        "title": "Economics",
        "subtitle": "What the tests cost us, what they move in credits, and what the scores are worth.",
        "stat": {
          "modelSpend": "Model spend",
          "calls": "Model calls",
          "tokens": "Tokens",
          "failures": "Failed calls"
        },
        "attribution": {
          "title": "Attribution",
          "attributed": "{{count}} calls name a candidate",
          "unattributed": "{{count}} do not and are shown as unmeasured, never as zero",
          "since": "Attribution starts {{date}}",
          "none": "No call in this window names a candidate. Cost per candidate cannot be shown for it."
        },
        "byFeature": "By feature",
        "byCandidate": "By candidate",
        "col": {
          "feature": "Feature",
          "candidate": "Candidate",
          "cost": "Cost",
          "calls": "Calls",
          "tokens": "Tokens"
        },
        "credits": {
          "title": "Credits moved",
          "spent": "Spent unlocking",
          "earned": "Earned completing",
          "net": "Net",
          "unavailable": "Credit movement could not be read for this window."
        },
        "scoreValue": {
          "title": "What the scores set",
          "subtitle": "A test pays no wage. It sets four prices, and this is what they add up to above a candidate with no score at all.",
          "candidates": "Candidates with a score",
          "viewPrice": "Profile view, recruiter pays",
          "viewEarn": "Profile view, candidate earns",
          "invitePrice": "Invite, recruiter pays",
          "inviteEarn": "Invite, candidate earns"
        },
        "truncated": "This window was too large to read completely. The figures understate it.",
        "empty": "No model spend recorded in this window."
      },
      "integrity": {
        "title": "Integrity",
        "subtitle": "Flagged answers, the evidence behind them, and what the rule proposes.",
        "status": {
          "evidence": "Evidence only",
          "open": "Needs a decision",
          "applied": "Applied",
          "dismissed": "Dismissed"
        },
        "rule": {
          "R1_MEDIUM_SIGNAL": "A strong signal on one answer",
          "R2_LOW_CLUSTER": "Several weak signals on one answer",
          "R3_SECTION_PATTERN": "Flags on several answers of one section"
        },
        "flag": {
          "FAST_PERFECT_SCORE": "Near-perfect score in a fraction of the time",
          "EXCESSIVE_PASTE_EVENTS": "Pasted repeatedly while answering",
          "POTENTIAL_LLM_ANSWER": "Writing shaped like a generated answer",
          "VERY_SHORT_SESSION": "High score in under ten seconds",
          "TAB_SWITCHING": "Switched tabs repeatedly",
          "FOCUS_LOSS": "Left the window repeatedly",
          "TIME_EXCEEDED": "Submitted after the time limit"
        },
        "severity": {
          "low": "Weak",
          "medium": "Strong"
        },
        "proposal": "The rule proposes setting aside {{count}} answer(s).",
        "noProposal": "The rule proposes nothing here. These flags are on record and no answer is affected.",
        "noDiscretion": "The rule decides the consequence. You confirm it or you close the case. There is nothing here to set.",
        "evidenceTitle": "Evidence",
        "proposedLabel": "Proposed",
        "voidedLabel": "Already set aside",
        "apply": "Apply",
        "dismiss": "Dismiss",
        "cancel": "Cancel",
        "applyDialog": {
          "title": "Apply the rule?",
          "message": "These answers stop counting toward the score. Nothing is taken from the candidate, and they are told. This cannot be undone here.",
          "confirm": "Apply"
        },
        "dismissDialog": {
          "title": "Close without acting",
          "message": "Pick the reason. Nothing changes for the candidate and they are not told."
        },
        "dismissReason": {
          "plausible_explanation": "There is a plausible innocent explanation",
          "signal_too_weak": "The signals do not support it",
          "handled_elsewhere": "Handled another way"
        },
        "toast": {
          "applied": "Applied. The score has been recalculated.",
          "dismissed": "Case closed.",
          "failed": "That did not go through."
        },
        "resolvedBy": "Resolved by {{actor}}",
        "reopened": "Reopened by new flags",
        "empty": "No candidate has been flagged.",
        "recordedFrom": "Cases are recorded from {{date}}. Integrity flags raised before that date are in telemetry and have no case here."
      }
    },
    "miaConversations": {
      "title": "Mia conversations",
      "subtitle": "Pre-selection conversations across every flow: the switches, what a conversation costs, and the reports that never reached a company.",
      "loading": "Loading conversations",
      "error": "The conversations could not be loaded.",
      "retryLoad": "Try again",
      "deployOff": "The switch below is on, but this environment was deployed with the feature off. Nothing will be offered until a deploy turns it on.",
      "config": {
        "title": "Switches",
        "enabled": "Offer new conversations",
        "enabledHelp": "Off stops new invitations and new starts. Conversations already in progress can still be finished.",
        "on": "On",
        "off": "Off",
        "turns": "Candidate messages per conversation ({{min}} to {{max}})",
        "ttl": "Days an invitation stays open ({{min}} to {{max}})",
        "save": "Save",
        "newOnly": "Changes apply to invitations sent from now on. A conversation keeps the limits it started with.",
        "autoDecisions": "Let Mia accept and set aside candidates",
        "autoDecisionsHelp": "Off: Mia records whether the must-haves were met and the recruiter decides. On: she accepts or sets aside on a clear answer; anything unclear stays with the recruiter. Keep this off on production until counsel has confirmed the AI Act position."
      },
      "cost": {
        "title": "Cost against the fee",
        "fee": "Billed per completed conversation",
        "avg": "Average model cost ({{n}} completed)",
        "max": "Most expensive completed",
        "unbilled": "Model cost of unbilled conversations",
        "sample": "Over the last {{n}} conversations.",
        "scope": "Counts every answer and every report Mia wrote. A model call that failed is not here; the LLM usage console has every call."
      },
      "failed": {
        "title": "Reports that failed",
        "help": "Each of these conversations completed, but its report failed three times. The company has not seen it and has not been billed.",
        "attempts": "{{n}} attempts",
        "retry": "Try again",
        "none": "No failed reports."
      },
      "sessions": {
        "title": "Recent conversations",
        "company": "Company and flow",
        "status": "Status",
        "turns": "Messages",
        "cost": "Model cost",
        "report": "Report",
        "invited": "Invited",
        "none": "No conversation has been offered yet."
      },
      "status": {
        "invited": "Invited",
        "active": "In progress",
        "completed": "Completed",
        "declined": "Declined",
        "expired": "Expired",
        "abandoned": "Abandoned",
        "cancelled": "Cancelled",
        "paused": "Paused",
        "unknown": "Unknown"
      },
      "report": {
        "pending": "Being written",
        "ready": "Ready",
        "failed": "Failed"
      },
      "toast": {
        "saved": "Saved.",
        "requeued": "Back in the queue. The next hourly pass will write it.",
        "failed": "That did not go through. Try again."
      },
      "voice": {
        "title": "Voice",
        "deployOff": "Voice is switched off on this deployment (ENABLE_VOICE_RELAY). These settings are stored, but no talk can switch to voice until a deploy turns it on.",
        "lang": {
          "en": "English",
          "fr": "French",
          "nl": "Dutch"
        },
        "name": "Voice",
        "rate": "Speaking rate ({{min}} to {{max}})",
        "cap": "Minutes of voice per talk ({{min}} to {{max}})",
        "stt": "Speech-to-text, USD per minute ({{min}} to {{max}})",
        "tts": "Text-to-speech, USD per million characters ({{min}} to {{max}})",
        "invalid": "A value is outside its range. Nothing has been saved.",
        "newOnly": "Applies to talks that switch to voice from now on. A talk already on voice keeps the voice, the rates and the cap it started with.",
        "metering": "The two rates only meter what a talk costs us. Nothing is charged from them. The service region is not a setting: voice always runs on the EU endpoints.",
        "unreadable": "The voice settings could not be read. Reload the page to try again."
      }
    },
    "publisher": {
      "title": "Publisher",
      "subtitle": "The searches shown on the public opportunities page. Nothing is public until it is published here.",
      "new": "New entry",
      "notice": {
        "saved": "Saved.",
        "published": "Published. It is now on the opportunities page.",
        "closed": "Closed. It is no longer public.",
        "created": "Draft created. Check every field before publishing.",
        "translated": "Languages updated."
      },
      "error": {
        "INVALID_ENTRY": "Some fields are missing or not valid. The marked fields need attention.",
        "NO_COMPANY_CONSENT": "This company has not agreed to be named. Publish its company page first, or untick the name and publish it anonymised.",
        "DEADLINE_PASSED": "The deadline must be in the future.",
        "NOT_PUBLISHABLE": "This entry is already published.",
        "NOT_PUBLISHED": "Only a published entry can be closed.",
        "SOURCE_NOT_FOUND": "That flow or saved search no longer exists.",
        "UNKNOWN_FIELDS": "The server refused a field this page sent. Reload the page and try again.",
        "INVALID_DEADLINE": "The deadline is not a valid date.",
        "MALFORMED_RESPONSE": "The server answered in a form this page cannot read. Reload the page.",
        "UNKNOWN": "That did not work. Try again in a moment.",
        "TRANSLATION_FAILED": "A language could not be written, so nothing was published. The marked language says why.",
        "COPY_NAMES_COMPANY": "The text names the company. The page shows the name itself, and only with the company's consent: take it out of the marked fields."
      },
      "import": {
        "title": "New entry",
        "cancel": "Cancel",
        "help": "The query is copied. The source stays as it is, and a saved search stays private.",
        "mode": {
          "flow": "Talent flow",
          "recruiter_search": "Recruiter search",
          "manual": "From scratch"
        },
        "flow": "Talent flow",
        "noFlows": "No talent flow exists yet.",
        "pick": "Choose…",
        "recruiter": "Recruiter ID",
        "loadSearches": "Show saved searches",
        "recruiterHelp": "Saved searches are private, so they are listed for one recruiter at a time.",
        "search": "Saved search",
        "creating": "Creating…",
        "create": "Create draft"
      },
      "field": {
        "language": "Language",
        "title": "Title",
        "summary": "Summary",
        "summaryHelp": "What the page says, in this language. Mia wrote it from the search; change anything.",
        "chips": "What Mia understood",
        "deadline": "Deadline",
        "deadlineHelp": "The search stays live until the end of that day.",
        "location": "Place",
        "country": "Country (ISO code)",
        "city": "City",
        "remote": "Remote",
        "employmentType": "Contract",
        "notStated": "Not stated",
        "salary": "Salary",
        "salaryMin": "Minimum",
        "salaryMax": "Maximum",
        "currency": "Currency",
        "unit": "Period",
        "salaryHelp": "Optional. Shown on the page and to Google Jobs.",
        "company": "Company"
      },
      "lang": {
        "en": "English",
        "fr": "French",
        "nl": "Dutch"
      },
      "filter": {
        "label": "Filter by status",
        "all": "All"
      },
      "status": {
        "draft": "Draft",
        "published": "Published",
        "closed": "Closed",
        "expired": "Expired"
      },
      "list": {
        "label": "Entries"
      },
      "loading": "Loading entries…",
      "loadFailed": "The entries could not be loaded.",
      "retry": "Try again",
      "empty": {
        "title": "No public search yet",
        "body": "Import a talent flow or a recruiter search, check it, then publish it.",
        "filtered": "No entry has this status."
      },
      "untitled": "Untitled",
      "anonymous": "Anonymised",
      "kpi": {
        "views": "{{n}} views",
        "clicks": "{{n}} clicks",
        "signups": "{{n}} sign-ups",
        "until": "until {{date}}"
      },
      "editor": {
        "label": "Editor",
        "none": "Choose an entry to edit it."
      },
      "source": {
        "flow": "From a talent flow",
        "recruiter_search": "From a recruiter search",
        "manual": "Written by hand"
      },
      "publishedOn": "Published {{date}}",
      "metric": {
        "views": "Views",
        "unique_views": "Unique visitors",
        "cta_clicks": "Clicks",
        "signups": "Sign-ups",
        "help": "Measured on the public page. These numbers cannot be edited."
      },
      "employment": {
        "FULL_TIME": "Full-time",
        "PART_TIME": "Part-time",
        "CONTRACTOR": "Contractor",
        "TEMPORARY": "Temporary",
        "INTERN": "Internship",
        "VOLUNTEER": "Volunteer",
        "PER_DIEM": "Per diem",
        "OTHER": "Other"
      },
      "unit": {
        "HOUR": "per hour",
        "DAY": "per day",
        "WEEK": "per week",
        "MONTH": "per month",
        "YEAR": "per year"
      },
      "company": {
        "name": "Name the company",
        "consentYes": "The company has agreed: its company page is published.",
        "consentNo": "No consent yet: the entry will show the anonymised label below.",
        "noOrg": "No company is linked. The entry is shown anonymised.",
        "anonymisedLabel": "Anonymised label",
        "anonymisedHelp": "Shown when the company is not named, for example: Hospitality · Brussels."
      },
      "action": {
        "save": "Save",
        "saving": "Saving…",
        "publish": "Publish",
        "republish": "Publish again",
        "publishing": "Publishing…",
        "close": "Close",
        "closing": "Closing…",
        "publishNote": "Publishing writes all three languages, tells the search engines on production, and queues one post on Mia's LinkedIn, which you can edit or hold in Mia's queue before it goes out."
      },
      "mia": {
        "drafted": "Mia wrote the page from the search: read it before publishing.",
        "unavailable": "Mia could not write the page, so the source's own text is below. Edit it by hand, or try Translate later.",
        "names_company": "Mia's draft named the company, so it was not kept. Rewrite the text below without the name.",
        "skipped": "Write a title and a summary, then use Translate."
      },
      "translations": {
        "title": "Other languages",
        "help": "The page is published in all three languages. Mia writes these from the {{source}} text; edit any of them by hand.",
        "missing": "not written",
        "stale": "out of date",
        "edited": "edited by hand",
        "staleHelp": "This text was written from an earlier version of the source. Publishing keeps your words; use Rewrite to replace them.",
        "translate": "Translate",
        "translating": "Mia is writing…",
        "refresh": "Rewrite all",
        "refreshHelp": "Translate fills what is missing or out of date and keeps your edits. Rewrite all replaces every language, your edits included.",
        "problem": {
          "translation_failed": "Mia could not write this language. Try again, or write it by hand.",
          "names_company": "Mia's text named the company, so it was not kept. Try again, or write it by hand.",
          "wrong_language": "Mia answered in the wrong language, so it was not kept. Try again, or write it by hand."
        }
      },
      "linkedin": {
        "queued": "LinkedIn: queued",
        "held": "LinkedIn: on hold",
        "publishing": "LinkedIn: posting",
        "published": "LinkedIn: posted",
        "failed": "LinkedIn: failed",
        "skipped": "LinkedIn: skipped",
        "stood_down": "LinkedIn: cancelled"
      }
    }
  },
  "support": {
    "title": "Support",
    "subtitle": "Search the FAQ first. If it's not there, open a ticket and we'll come back to you.",
    "faq": {
      "title": "Quick help",
      "hint": "Common issues and fast fixes before you open a ticket.",
      "candidate": {
        "reuploadFailed": {
          "title": "My CV upload failed",
          "body": "Refresh the page and try again from your profile. If it still doesn't work after a few minutes, open a ticket below and tell us what happened. We'll sort it out."
        },
        "synthesisStuck": {
          "title": "My analysis hasn't appeared",
          "body": "Your analysis starts once your CV and video are both uploaded. Give it 2 to 3 minutes. If nothing shows up after 10 minutes, open a ticket with the \"Analysis\" category and we'll get it moving."
        },
        "signupCreditsMissing": {
          "title": "Where are my welcome credits?",
          "body": "You get 50 free credits the first time you sign in. Open the Credits page to check your balance. If it still shows 0 after a minute, open a \"Credits\" ticket."
        },
        "inviteNotVisible": {
          "title": "A recruiter said they invited me but I don't see it",
          "body": "Check your Invitations tab. If nothing shows up after a minute, ask the recruiter which email address they used: it has to match the email on your Snypra account. If it still isn't there, open an \"Invitations\" ticket."
        },
        "videoUploadFailed": {
          "title": "My video won't upload",
          "body": "Videos need to be shorter than 60 seconds and smaller than 100 MB. Try recording straight from Snypra instead of uploading a file. If it still doesn't work, open a \"Profile\" ticket."
        }
      },
      "recruiter": {
        "walletNotUpdated": {
          "title": "My wallet balance didn't update after payment",
          "body": "Payments can take up to 2 minutes to show up after checkout. Refresh the page after 2 minutes. If your balance is still missing, open a \"Wallet\" ticket and we'll check the payment for you."
        },
        "searchNoResults": {
          "title": "My search returns no candidates",
          "body": "Open the \"Show details\" strip below the search bar: one of your filters might be so strict that it rules everyone out. Try removing the country or the seniority to widen your search. If it's still empty, open a \"Search\" ticket."
        },
        "inviteNotSent": {
          "title": "I sent an invitation but the candidate hasn't received it",
          "body": "Invitations go to the candidate's verified email address. Check your invitation history to confirm it was sent. If it says \"sent\" but the candidate tells you no email arrived, open a \"Bug\" ticket."
        },
        "chargeLooksWrong": {
          "title": "A charge looks wrong, or I was charged twice",
          "body": "A double-click never charges you twice, and reopening a profile you have already opened is free for a while. When you ask Mia about a candidate, a few minutes are set aside as the talk starts and only the seconds you were connected are kept; the rest comes back when it ends. If a charge still looks wrong, open a \"Billing\" ticket and we'll refund the extra amount within 1 working day."
        },
        "invoiceMissing": {
          "title": "I can't download an invoice for a transaction",
          "body": "Invoices are available for wallet top-ups you've paid for. Credits you received as a gift, like a founding-recruiter bonus or a credit our team added, have no invoice because you didn't pay for them. If an invoice is missing for something you actually paid for, open a \"Billing\" ticket."
        }
      }
    },
    "form": {
      "title": "Open a new ticket",
      "hint": "We reply within 1 business day. Ops gets a page the moment you submit.",
      "categoryLabel": "Category",
      "categoryPlaceholder": "Pick a category",
      "subjectLabel": "Subject",
      "subjectPlaceholder": "One line that sums it up",
      "bodyLabel": "Describe what's happening",
      "bodyPlaceholder": "What did you do, what did you expect, what happened instead?",
      "includeContextLabel": "Include page context",
      "includeContextHint": "Adds your current URL, locale, and browser info to help us diagnose faster. Opt-in for privacy.",
      "submit": "Send ticket",
      "submitting": "Sending…",
      "successToast": "Ticket sent. We're on it."
    },
    "categories": {
      "candidate": {
        "profile": "Profile / Account",
        "synthesis": "Synthesis",
        "credits": "Credits",
        "invite": "Invitations",
        "bug": "Bug / Error",
        "other": "Other"
      },
      "recruiter": {
        "billing": "Billing",
        "wallet": "Wallet",
        "credit": "Credit issue",
        "search": "Search / Matching",
        "bug": "Bug / Error",
        "other": "Other"
      }
    },
    "status": {
      "open": "Open",
      "in_progress": "In progress",
      "resolved": "Resolved",
      "closed": "Closed"
    },
    "list": {
      "title": "Your tickets",
      "empty": "You haven't filed any tickets yet.",
      "openAria": "Open ticket"
    },
    "thread": {
      "back": "Back to tickets",
      "authorYou": "You",
      "authorAdmin": "Snypra support",
      "replyLabel": "Reply",
      "replyPlaceholder": "Type your reply…",
      "send": "Send",
      "sending": "Sending…",
      "closedNote": "This ticket is closed. File a new one if you need further help."
    },
    "errors": {
      "categoryRequired": "Please pick a category.",
      "subjectRequired": "Subject is required.",
      "bodyRequired": "Please describe the issue.",
      "replyEmpty": "Reply cannot be empty.",
      "createFailed": "Couldn't send the ticket. Try again in a moment.",
      "replyFailed": "Couldn't send the reply. Try again in a moment."
    }
  },
  "partner": {
    "title": "Your events",
    "subtitle": "The workshops you're hosting with Snypra: logistics, status and the full history.",
    "loading": "Loading…",
    "noEvents": "No events assigned yet. Your Snypra contact will match you with upcoming workshops.",
    "format": {
      "first_step": "First Step",
      "discovery": "Discovery",
      "career_boost": "Career Boost"
    },
    "status": {
      "draft": "Draft",
      "partner_matching": "Being matched",
      "scheduled": "Scheduled",
      "sponsorship_open": "Sponsors joining",
      "confirmed": "Confirmed",
      "live": "Live",
      "completed": "Completed",
      "archived": "Archived",
      "cancelled": "Cancelled"
    },
    "detail": {
      "back": "All events",
      "capacity": "{{n}} seats",
      "timeline": "Event history",
      "rsvpForecast": "{{n}} attending"
    },
    "logistics": {
      "title": "Logistics",
      "confirmedChip": "Logistics ✓",
      "confirmed": "Logistics confirmed. Thank you!",
      "notesLabel": "Anything the team should know (room, access, equipment…)",
      "cta": "Confirm the logistics",
      "updateCta": "Update the notes",
      "confirming": "Sending…",
      "hint": "Confirming tells the Snypra team the venue and date work on your side."
    },
    "activity": {
      "created": {
        "title": "Event created",
        "body": "{{title}}"
      },
      "status_changed": {
        "title": "Status: {{from}} → {{to}}",
        "body": "{{reason}}"
      },
      "details_updated": {
        "title": "Details updated",
        "body": ""
      },
      "partner_assigned": {
        "title": "Partner assigned",
        "body": "{{partner_name}}"
      },
      "logistics_confirmed": {
        "title": "Logistics confirmed",
        "body": "{{notes}}"
      }
    },
    "sponsors": {
      "title": "Sponsors",
      "empty": "Sponsors join once the event opens for sponsorship. They'll appear here.",
      "signed": "Agreement signed",
      "status": {
        "proposed": "Proposed",
        "reserved": "Reserved",
        "paid": "Confirmed",
        "cancelled": "Cancelled"
      }
    },
    "attendance": {
      "title": "Attendance",
      "saved": "Attendance recorded. Thank you!",
      "countLabel": "How many people attended?",
      "notesLabel": "Notes (optional)",
      "cta": "Report attendance",
      "saving": "Saving…",
      "invalidCount": "Enter a valid number of attendees."
    },
    "assets": {
      "title": "Photos & summary",
      "hint": "Photos and a short recap feed the sponsors' public event section. Share the good moments.",
      "addPhoto": "Add a photo",
      "remove": "Remove photo",
      "summaryLabel": "How did it go? (a few sentences)",
      "cta": "Submit",
      "saving": "Submitting…",
      "saved": "Submitted. Thank you!",
      "empty": "Add a summary and/or at least one photo.",
      "invalidPhoto": "Photos only, up to 10 MB.",
      "tooMany": "Maximum 12 photos.",
      "uploadFailed": "The upload failed. Please try again."
    },
    "errors": {
      "notPartner": "Your partner access isn't active.",
      "eventGone": "This event is no longer available.",
      "notEditable": "This event can no longer be changed.",
      "notReportable": "Reporting opens once the event is live.",
      "disabled": "This feature isn't available yet.",
      "generic": "Something went wrong. Please try again."
    }
  },
  "advocate": {
    "title": "Advocate space",
    "subtitle": "Your company's news, ready to share with your networks. Always your call.",
    "loading": "Loading…",
    "revokedBody": "Your advocate access has ended. If that's unexpected, ask your company to invite you again.",
    "channels": {
      "linkedin": "LinkedIn",
      "x": "X",
      "instagram": "Instagram",
      "facebook": "Facebook"
    },
    "inbox": {
      "title": "Posts to share",
      "empty": "Nothing waiting. When your company publishes news, it lands here.",
      "skip": "Skip this one",
      "twoStepHint": "The text is on your clipboard with your personal link. Paste it, adjust anything you like, and post. Your link counts the visits; there is nothing to report back."
    },
    "consent": {
      "title": "How you take part",
      "auto": "Share automatically",
      "autoNeedsConnection": "Needs a connected account. Coming soon.",
      "manual": "I share each one myself",
      "manualHint": "Posts arrive here with the text ready. Nothing is ever posted for you.",
      "autoCap": "At most {{n}} post a day on your account, however many roles are open.",
      "autoHint": "We publish for you when your company shares a role. You can switch back any time."
    },
    "connections": {
      "title": "Connected accounts",
      "connected": "Connected",
      "autoHint": "Connect to enable auto-publishing.",
      "disconnect": "Disconnect",
      "connect": "Connect LinkedIn",
      "soon": "LinkedIn connection is coming soon.",
      "denied": "You declined the LinkedIn permission, so no account was connected.",
      "expired": "That took a little too long and the link expired. Start the connection again.",
      "error": "Something went wrong. Try again."
    },
    "history": {
      "title": "Your activity",
      "empty": "Posts you've handled will appear here.",
      "skipped": "Skipped",
      "autoPublished": "Posted for you"
    },
    "leave": {
      "cta": "Leave the advocate program",
      "confirmTitle": "Leave the program?",
      "confirmBody": "You'll stop receiving posts to share. Your company can invite you again later.",
      "confirmCta": "Leave"
    },
    "errors": {
      "notActive": "Your advocate access isn't active.",
      "taskGone": "This post is no longer available.",
      "disabled": "This feature isn't available yet.",
      "generic": "Something went wrong. Please try again."
    },
    "join": {
      "title": "Become an advocate",
      "body": "Your company invited you to share its news with your networks. You choose what to share, and nothing is ever posted without you.",
      "joiningAs": "Joining as {{email}}",
      "cta": "Accept the invitation",
      "joining": "Joining…",
      "doneTitle": "Welcome aboard!",
      "doneBody": "You're on the list. New posts to share will land in your inbox and in your email.",
      "goToInbox": "Open my posts",
      "invalidTitle": "This link is incomplete",
      "invalidBody": "Open the invitation link from your email again.",
      "home": "Back to the home page",
      "consentHint": "Joining only means you will receive posts to share. Every share stays your decision.",
      "loading": "One moment…",
      "loadingSlow": "First open of the day, so waking the service can take a few seconds.",
      "sendLink": "Email me a sign-in link",
      "linkSentTitle": "Check your inbox",
      "linkSentBody": "We sent a sign-in link to {{ email }}. Open it on this device to finish joining.",
      "signInInstead": "Sign in another way",
      "errors": {
        "invalidToken": "This invitation is no longer valid. Ask your company to send a new one.",
        "emailNotVerified": "Verify your email address first, then open this link again.",
        "disabled": "This feature isn't available yet.",
        "linkUnavailable": "Passwordless sign-in isn't set up yet. Sign in another way to continue.",
        "invalidEmail": "That email address looks invalid.",
        "linkExpired": "This sign-in link has expired. Request a new one.",
        "generic": "Something went wrong. Please try again.",
        "linkNotSent": "We couldn't send the link just now. Try again in a moment; your invitation is still valid.",
        "emailRequired": "Enter your email address first."
      },
      "reEntryTitle": "Welcome back",
      "reEntryBody": "This link has already been used. Enter your email address and we'll send you a fresh sign-in link.",
      "reEntryHint": "If that address is on your company's list, a link is on its way. The link works once and expires quickly.",
      "emailLabel": "Your email address",
      "sending": "Sending…",
      "setupTitle": "Two optional settings, changeable any time.",
      "confirmEmailBody": "Confirm the email address this link was sent to and we'll sign you in.",
      "confirmEmailCta": "Sign in"
    },
    "impact": {
      "title": "Your impact",
      "breakdownTitle": "Where it came from",
      "rowSummary": "{{shares}} shares · {{reach}} people reached · {{signups}} sign-ups · {{candidates}} candidates",
      "kinds": {
        "role": "Open roles",
        "event": "Events",
        "brand": "Employer brand",
        "other": "Other"
      }
    }
  },
  "smartHr": {
    "console": {
      "activated": "Smart HR activated",
      "wizardHeading": "Activate Smart HR",
      "resumeTitle": "Your Smart HR licence is active. Finish setting it up",
      "resumeBody": "You have paid for the year. What is left is the part that makes it work: your sources, your company page and the roles you want watched.",
      "resumeCta": "Continue setup",
      "dockLabel": "Smart HR activation"
    },
    "title": "Smart HR",
    "subtitle": "Turn your company into a talent magnet: a public brand page and standing talent flows, built with you in six steps.",
    "loading": "Loading…",
    "retry": "Try again",
    "stageOf": "Step {{n}}/{{total}}",
    "stages": {
      "s1": "Why Smart HR",
      "s2": "Plan & payment",
      "s3": "Consent & sources",
      "s4": "Research",
      "s5": "Your company page",
      "s6": "Your talent flows"
    },
    "pay": {
      "intro": "Smart HR is an annual licence, and you pay for it now: before we read a page of your site, before Mia writes anything, and before a company page is published in your name.",
      "dueLine": "{{tier}} licence",
      "renewalNote": "Renews from your wallet each year. We tell you 7 days before, and a failed renewal gives you 48 hours to top up before anything is interrupted.",
      "cta": "Pay {{price}}",
      "paying": "Paying…",
      "alreadyActive": "Your licence is active, so there is nothing to pay. Carry on where you left off.",
      "perYear": " / year",
      "afterLine": "Left after this"
    },
    "wizard": {
      "automation": {
        "label": "How should this flow run?",
        "autoHint": "Mia handles it end to end: she writes the kit and picks the employees and partner recruiters who will carry it. Sharing is always their own choice, and your public company page is always published by you.",
        "manualHint": "You stay in control at every step: draft, approve and share when you're ready.",
        "launchSummary": "Mia will run {{ n }} of these as an automated agent."
      }
    },
    "notAvailable": {
      "title": "Smart HR isn't open yet",
      "body": "We couldn't reach Smart HR right now. It may not be enabled for your account yet, so try again in a moment."
    },
    "excluded": {
      "title": "Smart HR is for companies hiring directly",
      "body": "Your account is registered as a recruitment intermediary, so Smart HR isn't available. You keep full access to search, invitations and your pipeline."
    },
    "pendingReview": {
      "title": "Your company is being reviewed",
      "body": "We couldn't automatically confirm that your company hires directly. Our team is reviewing it, and you'll be able to continue as soon as it's approved."
    },
    "sources": {
      "title": "Your sources",
      "intro": "Tell us where to look. We only read the addresses you give us here, and only with your explicit permission.",
      "website": "Company website",
      "careerPage": "Career page (optional)",
      "linkedin": "LinkedIn page (optional)",
      "linkedinHint": "Used as context only. We never extract content from LinkedIn.",
      "consentLabel": "I authorize Snypra to analyze these public sources to build my company profile and page.",
      "submit": "Save and continue",
      "submitting": "Saving…",
      "websitePrefilled": "Taken from your company profile. Change it if research should read a different address."
    },
    "research": {
      "title": "Analysis in progress",
      "intro": "We read your declared sources and build your enriched company profile: sector, culture, tone, and the roles you typically hire.",
      "start": "Start the analysis",
      "running": "Analyzing…",
      "sector": "Sector",
      "offers": "{{n}} open roles detected",
      "roles": "{{n}} likely roles, inferred by Mia",
      "skip": {
        "bad_content_type": "That link is not a web page.",
        "blocked_domain": "This domain cannot be read.",
        "fetch_failed": "The page could not be reached.",
        "invalid_url": "That address could not be read.",
        "linkedin_never_scraped": "LinkedIn is never read automatically. It is kept as context only.",
        "no_consent": "Not read, because you had not given consent yet.",
        "no_readable_content": "This page loaded but had no readable text, so it is probably built in the browser. Paste a description instead.",
        "private_address": "That address is not reachable from the public internet.",
        "robots_disallowed": "This site asks not to be read automatically.",
        "too_many_redirects": "The page redirected too many times."
      },
      "failed": {
        "noSources": "We couldn't read anything from your site, because it builds its content in the browser and we don't run scripts. Add a description to your company profile and start again, and we'll build your profile from that.",
        "generic": "The analysis didn't complete. Try again in a moment."
      },
      "failure": {
        "no_sources_fetched": "Nothing on your site could be read, and your company profile has no description to fall back on.",
        "internal_error": "Something went wrong on our side."
      },
      "lowEvidence": {
        "body": "No page on your site could be read, because it builds its content in the browser. This profile comes from what you declared, your pages' titles and the career URLs in your sitemap, so review it closely before publishing."
      }
    },
    "feed": {
      "scrape_started": "Reading your sources",
      "page_fetched": "Page analyzed",
      "page_skipped": "Page skipped",
      "research_started": "Building your company profile",
      "research_complete": "Company profile ready",
      "research_failed": "Analysis failed",
      "page_metadata_only": "Page loaded but rendered no text",
      "sitemap_leads_found": "Open roles found in your sitemap",
      "job_postings_found": "Open roles read on your careers site"
    },
    "page": {
      "generateTitle": "Your company page",
      "generateIntro": "We'll draft your public page from your company profile, covering story, culture and values, in English, French and Dutch. You review and edit everything before it goes live.",
      "generateCta": "Draft my page",
      "generating": "Drafting…",
      "regenCta": "Regenerate",
      "regenTitle": "Regenerate the page copy?",
      "regenBody": "Your manual edits to the text will be overwritten. Your logo, video and publish status are kept.",
      "regenConfirm": "Regenerate",
      "stateDraft": "Draft · only you can see it",
      "stateLive": "Live",
      "publishCta": "Publish",
      "publishTitle": "Publish your page?",
      "publishBody": "Your page becomes publicly visible at {{path}}. You can unpublish at any time.",
      "publishConfirm": "Publish",
      "unpublishCta": "Unpublish",
      "unpublishTitle": "Unpublish your page?",
      "unpublishBody": "Your page at {{path}} will no longer be publicly visible.",
      "unpublishConfirm": "Unpublish",
      "published": "Your page is live.",
      "unpublished": "Your page is now private.",
      "save": "Save changes",
      "saving": "Saving…",
      "saved": "Changes saved.",
      "preview": {
        "device": "Preview width",
        "desktop": "Desktop",
        "mobile": "Mobile"
      },
      "logo": "Logo",
      "video": "Company video",
      "uploadLogo": "Upload logo",
      "uploadVideo": "Upload video",
      "logoSaved": "Logo updated.",
      "videoSaved": "Video updated.",
      "teamVideo": "Team video (HR / CEO)",
      "uploadTeamVideo": "Upload team video",
      "teamVideoSaved": "Team video updated.",
      "brandColor": "Brand colour",
      "brandColorHint": "The colour every tone below is derived from. Override any of them on its own.",
      "previewHint": "See exactly what candidates will see: the real page, in a new tab.",
      "openPreview": "Open full preview",
      "logoInvalid": "The logo must be an image under 5 MB.",
      "videoInvalid": "The video must be a video file under 100 MB.",
      "uploadFailed": "Upload failed. Try again.",
      "fields": {
        "headline": "Headline",
        "description": "Company story",
        "culture": "Culture",
        "values": "Values",
        "valuesHint": "One value per line (max 6).",
        "hiringPitch": "Hiring pitch",
        "snypraReason": "Why we hire this way",
        "snypraReasonHint": "Your own words. The four facts shown under it on the page are fixed and are not editable.",
        "talentIntro": "Intro above the profiles"
      },
      "busy": "Saving… your changes are locked while this finishes.",
      "hero": "Cover image",
      "uploadHero": "Upload a cover",
      "heroSaved": "Cover image saved",
      "heroInvalid": "Choose an image under 5 MB.",
      "heroHint": "Optional. A cover replaces the generated background.",
      "industry": "Industry",
      "industryHint": "Sets the page background. Suggested from your company research, and you can change it.",
      "livePreview": "Live preview",
      "livePreviewHint": "Updates as you type.",
      "industryNone": "Not set yet",
      "social": {
        "label": "Where else people can find you",
        "hint": "Your website shows next to the sign-up button. The rest become the follow row at the foot of your page. Leave a field empty to remove it.",
        "suggested": "found on your site",
        "field": {
          "website": "Website",
          "linkedin": "LinkedIn",
          "x": "X",
          "instagram": "Instagram",
          "facebook": "Facebook",
          "youtube": "YouTube",
          "tiktok": "TikTok"
        },
        "placeholder": {
          "website": "https://…",
          "linkedin": "https://www.linkedin.com/company/…",
          "x": "https://x.com/…",
          "instagram": "https://www.instagram.com/…",
          "facebook": "https://www.facebook.com/…",
          "youtube": "https://www.youtube.com/@…",
          "tiktok": "https://www.tiktok.com/@…"
        }
      },
      "unsaved": "You have unsaved changes.",
      "discard": "Discard",
      "brand": {
        "roles": {
          "solid": "Solid",
          "accent": "Accent",
          "ink": "Deep",
          "tint": "Background tint"
        },
        "drives": {
          "solid": "Buttons and the roles you are hiring for",
          "accent": "Section numbers, markers and links",
          "ink": "The closing band at the foot of the page",
          "tint": "The hero, the cards and the glows. Applied as a very light wash so text on it stays readable"
        },
        "derived": "Derived",
        "reset": "Reset",
        "aaPass": "AA",
        "aaFail": "below AA",
        "harmonies": "Harmonies",
        "harmony": {
          "faithful": "Faithful",
          "warm": "Warm",
          "deep": "Deep",
          "muted": "Muted"
        }
      },
      "uploading": "Sending",
      "leaveTitle": "Leave without saving?",
      "leaveBody": "You have unsaved changes to this page. Closing now discards them.",
      "leaveConfirm": "Discard and close",
      "removeTitle": "Remove this file?",
      "removeConfirm": "Remove",
      "removed": "File removed.",
      "remove": {
        "action": "Remove",
        "logo": "Your page will fall back to the initials mark until you upload another logo.",
        "video": "The hero will fall back to the generated background until you upload another film.",
        "team_video": "The \"Life inside\" section disappears from your page until you upload another clip.",
        "hero": "The hero will fall back to the generated background until you upload another cover."
      },
      "localeLabel": "Editing language"
    },
    "nav": {
      "back": "Back",
      "toFlows": "On to your talent flows",
      "pageRequired": "Write your company page before continuing, because every kit links to it.",
      "pagePublishRequired": "Publish your company page before continuing, because every post links to it and an unpublished page holds them all back.",
      "flowsLoading": "Wait for every proposal to appear before launching, because the ones still arriving would be left behind.",
      "toPay": "See your plan",
      "toSources": "Continue",
      "budgetRequired": "Set a delivery budget on {{titles}} before starting it."
    },
    "flows": {
      "generateIntro": "Based on your job offers and your market, we propose standing talent flows: candidate pools that keep filling themselves.",
      "generateCta": "Generate my flow proposals",
      "generating": "Generating proposals…",
      "reviewIntro": "Review each proposed flow: rename it, ignore it, or keep it selected for launch. Ignoring a duplicate merges your list.",
      "rename": "Rename",
      "renameSave": "Save",
      "ignore": "Ignore",
      "ignoreTitle": "Ignore this flow?",
      "ignoreBody": "\"{{title}}\" will be archived. You can reactivate it later from your dashboard.",
      "ignoreConfirm": "Ignore",
      "alreadyActive": "Active",
      "origin": {
        "mia_suggested": "Suggested",
        "detected_offer": "From your offers",
        "mode_flux": "From a search",
        "manual": "Manual"
      },
      "modeFluxHint": "Need another flow? Run a search from your console and activate \"Flow mode\".",
      "loading": "Loading your talent flows…",
      "arriving": "{{n}} proposal(s) so far, and we are still writing the rest.",
      "capRoom": "Your plan runs {{cap}} flows at a time, and {{selected}} are selected. Pick the ones you want first.",
      "capReached": "{{selected}} of {{cap}} selected, which is what your plan runs at once. Untick one to swap it.",
      "activation": {
        "title": "Start this flow",
        "briefTitle": "Brief Mia",
        "budget": {
          "title": "Delivery budget",
          "summary": "{{amount}}, spent only on measured delivery.",
          "adjust": "Adjust"
        },
        "mode": {
          "title": "Who approves what goes out",
          "manualHint": "Manual: Mia writes the content kit, then waits for you. You approve it and choose your network before anything goes out.",
          "autoHint": "Automatic: Mia approves the kit and picks your network herself, as soon as it is written. You can switch back at any time."
        },
        "mia": {
          "title": "Mia pre-selection",
          "price": "{{price}} per completed conversation",
          "priceTipLabel": "How it is charged",
          "priceTip": "Taken from this flow's delivery budget. Nothing is charged for a conversation nobody finished, and nothing at all before the flow starts.",
          "lede": "Mia talks with each matched candidate from the very first matches, then sends you a report.",
          "modesTipLabel": "Manual or automatic",
          "modesTip": "Pre-selection works the same in both modes. Automatic hands the content and the network to Mia; what she asks candidates is always your brief.",
          "briefSaved": "Brief saved",
          "review": "Review the brief"
        },
        "briefLede": "Mia starts talking with the first matches as soon as the flow is live, so her brief is saved before it starts.",
        "money": {
          "budget": "Budget {{amount}}",
          "needsBudget": "Set a budget of at least {{min}} to start.",
          "mia": "Mia pre-selection: {{price}} per completed conversation, from this budget"
        },
        "next": "Next: brief Mia",
        "back": "Back",
        "activate": "Activate",
        "activateWithMia": "Activate with pre-selection"
      }
    },
    "flux": {
      "toggle": "Flow mode",
      "cardTitle": "Your flow will be:",
      "titleLabel": "Flow name",
      "quotaNote": "This search used your daily quota as usual. The flow itself never consumes searches.",
      "activeTitle": "Your flow is live",
      "activeBody": "\"{{title}}\" is active. Mia checks every day for new candidates who match and notifies you.",
      "goToFlows": "See my flows",
      "walletCta": "Top up my wallet",
      "stateOn": "On",
      "stateOff": "Off",
      "toggleHintOn": "Your next search can become a permanent flow: Mia checks for new matching candidates every day, and your networks of employees and partner recruiters carry the role for you.",
      "toggleHintOff": "Turn this on before searching to make the search permanent: daily matching, plus your networks carrying the role. Off, this is a one-off search you can save.",
      "cardLede": "These results are today's. A flow keeps looking every night and surfaces whoever arrives.",
      "standingLabel": "What it will look for",
      "ledgerLabel": "What you pay for",
      "priceVisit": "Qualified visit",
      "priceSignup": "Sign-up",
      "priceCandidate": "Candidate who joins it",
      "budgetFloor": "You set a budget, from {{min}}, and only pay for what arrives.",
      "sameRanking": "These are the results a normal search returns, in the same order. Flow mode changes what this search can become, not what it finds.",
      "createCta": "Create this flow",
      "creating": "Creating…",
      "startCta": "Start this flow",
      "goToFlow": "Open this flow",
      "readyTitle": "Your flow is saved",
      "readyBody": "\"{{title}}\" is not running yet. Set its budget, choose who approves what goes out and whether Mia pre-selects, then start it."
    },
    "hub": {
      "flows": "Flows",
      "companyPage": "Company page",
      "overview": "Overview",
      "network": "Network"
    },
    "amp": {
      "noOrg": "Amplification comes with Smart HR. Activate it first.",
      "source": {
        "org_activation": "Our company page",
        "flow_activation": "We're hiring",
        "milestone": "Still hiring",
        "event_sponsorship": "Event",
        "event_recap": "Event recap"
      },
      "status": {
        "draft": "Draft",
        "approved": "Approved",
        "dispatched": "Sent to your network"
      },
      "save": "Save changes",
      "saving": "Saving…",
      "approve": "Approve",
      "pullBack": "Back to draft",
      "roster": {
        "inviteLabel": "Invite an employee by email",
        "invitePlaceholder": "colleague@company.com",
        "inviteCta": "Invite",
        "inviting": "Inviting…",
        "copyLink": "Copy the join link",
        "linkCopied": "Link copied ✓",
        "revoke": "Remove",
        "revokeConfirmTitle": "Remove this advocate?",
        "revokeConfirmBody": "{{email}} will stop receiving your kits and their invite link expires. You can re-invite them later.",
        "revokeConfirmCta": "Remove",
        "reachLine": "{{links}} links · {{clicks}} clicks · {{signups}} signups",
        "status": {
          "invited": "Invited",
          "active": "Active",
          "revoked": "Removed"
        },
        "consent": {
          "manual": "Manual",
          "auto": "Automatic"
        },
        "outcome": {
          "invited": "Invitation sent.",
          "resent": "Invitation re-sent.",
          "already_invited": "Already invited. The email can be re-sent after 24h.",
          "already_active": "This person is already an advocate.",
          "capped": "You've reached the 100-advocate limit.",
          "invalid_email": "That doesn't look like a valid email address.",
          "emailUnavailable": "Invitation created, but the email couldn't be sent. Copy the join link below and share it yourself."
        },
        "empty": "No advocates yet. Invite your first colleague above.",
        "truncated": "Reach numbers cover the most recent activity."
      },
      "errors": {
        "disabled": "Amplification isn't available yet.",
        "researchRequired": "Run the company research first, because your kits are grounded in your profile.",
        "notEditable": "Approved and sent kits can't be edited. Pull it back to draft first.",
        "invalidVariants": "One of the texts is empty or over its channel limit.",
        "generic": "Something went wrong. Please try again.",
        "pageNotPublished": "Publish your company page first, because every kit links to it.",
        "alreadyDispatched": "That kit has already gone out to your network, so its audience can't be changed now.",
        "noAmplifiersYet": "Nobody can carry this kit yet. Invite an employee or a partner recruiter first.",
        "brandKitPending": "A brand kit is already waiting for you. Read that one first.",
        "generationFailed": "Mia could not write the kit. Try again in a moment."
      },
      "feed": {
        "audienceLineAll": "Aimed at everyone on your team and {{recruiters}} partner recruiter(s). Change this in the network feeds.",
        "audienceLineCount": "Aimed at {{employees}} person(s) on your team and {{recruiters}} partner recruiter(s). Change this in the network feeds."
      },
      "dispatch": "Send to your network…"
    },
    "automation": {
      "readiness": {
        "employees": "Employees",
        "partners": "Partner recruiters",
        "autoConnectedHint": "on automatic, with a connected account"
      },
      "blocker": {
        "company_page_unpublished": "Your company page is still a draft. Every kit links to it, so nothing goes out to your network until you publish it.",
        "social_oauth_dark": "Connecting accounts isn't available yet, so your network shares by hand.",
        "no_connected_account": "Nobody is on automatic with a connected account yet, so your network shares by hand."
      },
      "reason": {
        "company_page_unpublished": "Company page not published",
        "enrichment_pending": "Waiting for the company analysis",
        "previous_post_pending": "The previous kit is still waiting for your validation",
        "awaiting_approval": "Waiting for you to validate the kit",
        "awaiting_content": "Waiting for your content kit. Your network is contacted once you send it.",
        "no_connected_account": "No connected account",
        "social_oauth_dark": "Ready for your network to share by hand",
        "amplification_off": "Amplification is off",
        "flag_off": "Not enabled",
        "not_auto": "Set to manual",
        "no_amplifiers_matched": "No matching partner found",
        "error": "Something went wrong",
        "step_manual_selection": "It is up to you to open this role to your network. Your available partners then carry it in turn.",
        "amplifier_publish_throttled": "Held back so nobody gets two posts in a day",
        "no_amplifiers_yet": "Nobody can carry this kit yet. Invite an employee or a partner recruiter.",
        "amplifiers_at_capacity": "Your partners are each carrying another of your roles. This kit goes out to them as their terms end, oldest wait first.",
        "no_candidates_yet": "Nobody in the pool matches this brief yet. It starts again on its own as soon as somebody does."
      },
      "stage": {
        "analysis": "Flow analysis",
        "matching": "Initial matching",
        "generation": "Kit written",
        "publication": "Kit validation",
        "amplifier_selection": "Amplifier selection",
        "amplification": "Sent to the network"
      },
      "status": {
        "started": "In progress",
        "completed": "Done",
        "blocked": "Waiting",
        "failed": "Failed",
        "pending": "Pending"
      },
      "count": {
        "matched_total": "candidates found",
        "advocates": "employees reached",
        "recruiters": "partners reached",
        "invited": "partners invited",
        "degraded_to_manual": "asked to share by hand"
      }
    },
    "dashboard": {
      "title": "Talent flows",
      "subtitle": "Your standing searches. Mia watches for new matching candidates every day.",
      "noOrg": "Talent flows come with Smart HR. Activate it to give your searches a life of their own.",
      "startWizard": "Discover Smart HR",
      "statActive": "Active",
      "statMatched": "Matched",
      "noFlows": "No flows yet. Turn a search into a flow with Flow mode, or let Mia propose some from your company profile.",
      "noFlowsConsoleCta": "Search with Flow mode",
      "status": {
        "proposed": "Proposed",
        "active": "Active",
        "paused": "Paused",
        "paused_budget_exhausted": "Budget spent",
        "paused_insufficient_funds": "Wallet empty",
        "paused_licence_lapsed": "Licence lapsed",
        "archived": "Archived"
      },
      "statusHint": {
        "paused_budget_exhausted": "This flow spent its {{budget}} and stopped. Raise the budget and it picks up where it left off; nothing was lost.",
        "paused_insufficient_funds": "There was not enough in your wallet to pay for what this flow delivered. Top up and it starts again; the delivery is waiting, not lost.",
        "paused_licence_lapsed": "Your Smart HR licence lapsed, so every flow stopped and your company page went offline. Nothing was deleted; renew to bring both back."
      },
      "matched": "{{n}} matched",
      "lastRun": "Last run {{when}}",
      "capReached": "Your plan runs {{cap}} flows at a time, and they are all running. Pause one to start another.",
      "activate": "Activate",
      "setBudget": "Set a budget",
      "raiseBudget": "Raise the budget",
      "topUp": "Top up",
      "renewLicence": "Renew",
      "resume": "Resume",
      "reactivate": "Re-activate",
      "pause": "Pause",
      "archive": "Archive",
      "archiveConfirmTitle": "Archive this flow?",
      "archiveConfirmBody": "\"{{title}}\" will stop matching and every partner mission on it is retired, so the links already shared stop sending anyone to your page and your partners are told. Its history is kept and you can re-activate it any time.",
      "archiveConfirmCta": "Archive",
      "delete": "Delete",
      "deleteConfirmTitle": "Delete this flow?",
      "deleteConfirmBody": "“{{title}}” never went live, so nothing is attached to it: no candidates, no spend, no partner. It will be removed for good.",
      "deleteConfirmCta": "Delete",
      "budget": {
        "toggle": "Delivery budget",
        "none": "No budget · this flow cannot start",
        "running": "{{spent}} of {{budget}}",
        "exhausted": "Budget spent ({{budget}})",
        "estimating": "Estimating what your network can deliver…"
      },
      "rowMenu": {
        "title": "More actions",
        "label": "More actions · {{title}}"
      },
      "groups": {
        "running": "Running",
        "paused": "Paused",
        "notStarted": "Not started",
        "archived": "Archived",
        "newBadge": "New"
      }
    },
    "events": {
      "title": "Event opportunities",
      "subtitle": "Sponsor a Visibility Lab workshop and meet future candidates in person.",
      "suggestedForYou": "Matched to you",
      "sponsorCta": "Sponsor",
      "manageCta": "Manage",
      "formats": {
        "first_step": "First Step",
        "discovery": "Discovery",
        "career_boost": "Career Boost"
      },
      "state": {
        "open": "Open",
        "awaitingSignature": "Signature needed",
        "awaitingPayment": "Payment needed",
        "paid": "Sponsored"
      }
    },
    "sponsor": {
      "back": "Back to Smart HR",
      "chooseTitle": "Choose your sponsorship",
      "reserveCta": "Reserve",
      "tiers": {
        "community": "Community",
        "partner": "Partner",
        "headline": "Headline"
      },
      "perks": {
        "community": {
          "0": "Logo on event materials",
          "1": "Listed on your company page"
        },
        "partner": {
          "0": "Booth + speaking slot",
          "1": "Invite candidates directly"
        },
        "headline": {
          "0": "Exclusive event branding",
          "1": "Priority talent capture"
        }
      },
      "signTitle": "Sign the sponsorship agreement",
      "signBody": "Read the agreement, then confirm to move on to payment. No charge yet.",
      "reservedSummary": "{{tier}} sponsorship · {{amount}}. Your slot is held.",
      "readAgreement": "Read the agreement (PDF)",
      "signCta": "I agree",
      "cancelHold": "Release this hold",
      "payTitle": "Complete your sponsorship",
      "signedSummary": "{{tier}} sponsorship · {{amount}}. Agreement signed.",
      "payBody": "You'll be taken to our secure payment page. An invoice is issued automatically.",
      "payCta": "Pay {{amount}}",
      "doneTitle": "You're sponsoring this event",
      "doneBody": "Your {{tier}} sponsorship is confirmed. It now appears on your company page.",
      "downloadInvoice": "Download invoice",
      "doneCta": "Back to Smart HR",
      "closed": "This event is no longer open for sponsorship.",
      "errors": {
        "disabled": "The Visibility Lab isn't available yet.",
        "notOpen": "This event isn't open for sponsorship.",
        "slotFull": "No slots left on this tier. Try another tier.",
        "alreadySponsor": "Your company already sponsors this event.",
        "notReserved": "Reserve a tier first.",
        "agreementRequired": "Sign the agreement before paying.",
        "paidSupport": "This sponsorship is paid, so contact support to make changes.",
        "payment": "Payment is temporarily unavailable. Please try again.",
        "download": "The document couldn't be downloaded. Please try again."
      }
    },
    "flowDetail": {
      "back": "All flows",
      "eyebrow": "Talent flow",
      "amp": {
        "offHint": "Open this flow to independent recruiters, who will share it and source candidates for credits.",
        "onHint": "This flow is open. Invite recruiters below; they share it and source candidates.",
        "roster": "Your network",
        "suggested": "Suggested recruiters",
        "refresh": "Refresh",
        "empty": "No partner recruiter fits this role yet. Fit is scored on coverage, meaning sector and country, and on what a partner has already delivered.",
        "invite": "Invite",
        "revoke": "Remove",
        "fit": "Fit {{score}}",
        "tracking": {
          "status": {
            "suggested": "suggested",
            "accepted": "accepted",
            "rejected": "rejected"
          }
        },
        "status": {
          "invited": "Invited",
          "active": "Active"
        },
        "addResult": {
          "not_eligible": "That recruiter isn't eligible for the network anymore.",
          "auto_accepted": "That recruiter publishes automatically, so they joined this flow straight away and had nothing to accept."
        },
        "gateManualHint": "You choose whom to invite. The available partners in your network carry this role in turn.",
        "gateAutoHint": "Mia picks by fit and score. You can still add or remove anyone.",
        "activityLine": "{{shares}} shares · {{visitors}} visitors · {{invited}} invited",
        "noActivityYet": "Nothing shared yet",
        "fitHint": "Fit = geography + sector overlap + the amplification score this partner has earned + channel breadth.",
        "reason": {
          "amplification_bronze": "Bronze · no delivered results yet",
          "amplification_gold": "Gold · a strong track record",
          "amplification_platinum": "Platinum · strongest on both results and coverage",
          "amplification_silver": "Silver · real results delivered",
          "geo_match": "Covers your country",
          "geo_match_company": "Covers your company's country · this role states no location",
          "industry_overlap": "Works in your sector",
          "multi_channel": "Shares on several channels"
        },
        "unscorable": {
          "geo": "This flow names no place, so no partner can be ranked on geography, which is the largest single part of the fit score. A location comes from the words the flow was created from; if Mia proposes a revised query for this flow, accepting it is the way to give it one today.",
          "industry": "This flow's title matches no sector we recognise, so sector affinity cannot be scored. Partners are still ranked on coverage and results."
        },
        "allApproved": "Every partner here is a recruiter whose account Snypra has approved. Open a name to see their audience, what they have produced on this flow, and how they rank.",
        "waiting": {
          "body": "{{deferred}} of your partners are each carrying another of your roles, so this kit is waiting to reach them. It has waited {{days}} days.",
          "frees": "The first frees up on {{date}}."
        },
        "unavailable": {
          "count": {
            "one": "{{n}} partner in your network is not available for this role right now.",
            "other": "{{n}} partners in your network are not available for this role right now."
          },
          "frees": "The first frees up on {{date}}.",
          "heldByPaused": "The reason: your paused role “{{title}}”, until {{date}}.",
          "whyLabel": "Why some partners are not shown",
          "why": "A partner carries one of your roles at a time, on a 5-day mission. A role paused for more than 24 hours releases its partners. Only partners who can start now are offered here."
        },
        "onThisFlowUntil": "On this role until {{date}}"
      },
      "notFound": "This flow no longer exists.",
      "empty": "Nothing here yet. Mia checks for new matching candidates every morning.",
      "tab": {
        "all": "All",
        "suggested": "To review",
        "accepted": "Accepted",
        "rejected": "Rejected"
      },
      "decision": {
        "suggested": "To review",
        "accepted": "Accepted",
        "rejected": "Rejected",
        "invited": "Invited"
      },
      "reason": {
        "wrong_level": "Wrong level",
        "wrong_domain": "Wrong field",
        "wrong_location": "Wrong location",
        "wrong_skills": "Skills mismatch",
        "not_relevant": "Not relevant",
        "other": "Other"
      },
      "matchedOn": "Matched {{when}}",
      "invite": {
        "pending": "Invite sent",
        "accepted": "In your pipeline",
        "declined": "Invite declined",
        "expired": "Invite expired"
      },
      "whyReject": "Why isn't this a fit?",
      "accept": "Good fit",
      "rejectCta": "Not a fit",
      "view": "View profile",
      "viewInvite": "View & invite",
      "sourcedBy": "Sourced by {{name}}",
      "aRecruiter": "a recruiter",
      "revision": {
        "title": "Mia suggests a tune-up",
        "apply": "Apply revision",
        "dismiss": "Dismiss"
      },
      "sections": {
        "candidates": "Candidates",
        "kit": "Brand kit",
        "amplifiers": "Amplifiers",
        "tracking": "Results"
      },
      "kit": {
        "empty": "Mia has not written anything for this flow yet. A kit appears as soon as the flow goes active.",
        "gateManualHint": "Mia writes it, you approve it. Nothing goes out to your network until you do.",
        "gateAutoHint": "Mia writes it and validates it for you. You can still read and edit anything still in draft.",
        "nothingPending": "Nothing is waiting for you.",
        "dispatchedTitle": "Out with your network",
        "own": {
          "title": "Share from your own channels",
          "optional": "Optional",
          "intro": "You can post this yourself and have it counted. It is never a step: your network is what carries the role, and nothing here holds anything up.",
          "empty": "Your own links appear once a kit is validated."
        },
        "networkKitHint": "This is the copy your network received. `{link}` is where each amplifier's own tracked link is dropped in: they each get their own link, QR code and visual card built from this text, which is what lets you see who drove which visitors in Tracking below.",
        "heldTitle": "Validated, waiting to go out",
        "heldBody": "Mia has validated this kit. It leaves the moment someone can carry it, so invite an employee or a partner recruiter.",
        "reachedNobody": "This kit went out before anyone could carry it, so it reached nobody. Invite an employee or a partner recruiter, and the next one will travel.",
        "readyTitle": "Validated · ready to send",
        "readyBody": "Each person decides for themselves whether and where they share it.",
        "recipientsTitle": "These amplifiers will receive it",
        "recipientTeamAll": "Everyone on your team",
        "recipientTeamCount": "{{n}} on your team",
        "validateAmplifiers": "Send to the network",
        "sendFromNetwork": "Validated and waiting. You send it from the Network step, where you choose who carries it.",
        "voice": {
          "company": "Your voice",
          "amplifier": "Partner voice"
        },
        "voiceHint": {
          "company": "What you post on your own channels, and what your employees share. First person, because you are the one hiring.",
          "amplifier": "What a partner recruiter posts when they relay this to their network. They are not hiring, so it names you."
        },
        "dispatching": "Sending…",
        "recipientsChosenTitle": "Your network for this role"
      },
      "tracking": {
        "empty": "Nothing has been measured for this role yet. Numbers appear as soon as a shared link is opened.",
        "axisLabel": "Break the results down by",
        "axis": {
          "global": "Overall",
          "channel": "By channel",
          "amplifier": "By amplifier",
          "amplifierChannel": "Amplifier × channel"
        },
        "channel": "Channel",
        "amplifier": "Amplifier",
        "shares": "Shares",
        "visitors": "Visitors",
        "visitorsHint": "Each person counted once",
        "signups": "Sign-ups",
        "invited": "Joined / invited",
        "channelEmpty": "Per-channel results start once your amplifiers share through a channel link.",
        "chartLabel": "Delivery over time",
        "chartEmpty": "Nothing counted on this flow yet",
        "chartEmptyHint": "The curve fills in day by day as your partners share this flow."
      },
      "settings": {
        "mode": {
          "manual": "Manual",
          "auto": "Automatic"
        },
        "modeHint": {
          "manual": "You validate the kit, then the amplifiers. Nothing goes out to your network until both are done.",
          "auto": "Mia validates the kit and picks the amplifiers, then the kit goes out to your network."
        },
        "gate1": "Validate the kit",
        "gate2": "Validate the amplifiers",
        "gateBy": {
          "manual": "You",
          "auto": "Mia"
        },
        "noPublishNote": "Those two are the whole of it. Posting is done by the people who amplify, and each of them decides that for themselves."
      },
      "steps": {
        "prematching": "Pre-matching",
        "content": "Content",
        "network": "Network",
        "amplification": "Amplification",
        "status": {
          "pending": "Not started",
          "started": "Running",
          "completed": "Done",
          "blocked": "Waiting",
          "failed": "Failed",
          "halted": "Paused"
        },
        "gate1": "You validate the kit",
        "gate2": "You validate the amplifiers",
        "gateAuto": "Mia handles this",
        "reached": "{{n}} people reached so far"
      },
      "header": {
        "delivery": "Delivery",
        "settings": "Flow settings",
        "pause": "Pause this flow",
        "resume": "Resume this flow",
        "pauseHint": "Matching stops and distribution stops with it: links already shared stop sending anyone to your page, and stop being charged. Arrivals already on their way still complete, so a few euros can land after you pause.",
        "resumeHint": "Matching runs straight away and distribution picks up where it stopped: the links your partners already shared start working again, with no need for them to repost. Visits received while it was on hold were never charged.",
        "resumeBlocked": {
          "no_budget": "This flow has no delivery budget yet. Set one here and it starts again.",
          "below_minimum": "This flow's budget is below the {{min}} minimum. Raise it here and it starts again.",
          "exhausted": "This flow stopped because it ran out of budget. Raise it here and it starts again."
        },
        "kpis": "Results so far",
        "stopped": {
          "title": "This flow is not delivering",
          "paused": "You paused it. The links your partners already shared stop sending anyone to your page, and stop being charged.",
          "paused_budget_exhausted": "It spent its budget. Delivery has stopped and the links already shared no longer bring anyone in, so raise the budget and it picks up where it left off.",
          "paused_insufficient_funds": "Your wallet could not cover what it delivered. Delivery has stopped; top up and it starts again, because the delivery is waiting rather than lost.",
          "paused_licence_lapsed": "Your Smart HR licence lapsed, so every flow stopped and your company page went offline. Nothing was deleted; renew to bring both back.",
          "archived": "It is archived. Its partner missions are retired and the links already shared no longer bring anyone to your page.",
          "partners": "Your partners have been told, and their own invite links keep working for them."
        }
      },
      "drawer": {
        "title": "Delivery",
        "close": "Close",
        "kit": "Brand kit",
        "network": "Network",
        "tracking": "Results",
        "kitEmpty": "No kit yet. Mia writes one when the flow goes live.",
        "networkEmpty": "No amplifier on this flow yet.",
        "billing": "Billing",
        "ariaLabel": "Delivery sections",
        "preselection": "Pre-selection"
      },
      "actionRequired": {
        "title": "Waiting on you",
        "generating": "Mia is writing the kit for this role: captions, tracked link and card. It lands here in under a minute.",
        "kit": "Read what Mia wrote, change anything you want, then validate it. Nothing leaves before you do.",
        "amplifiers": "Choose who carries this role. You can add or remove anyone.",
        "heldNoAmplifiers": "The kit is ready and waiting. It goes out the moment someone can carry it, so invite an employee or a partner recruiter and it leaves on its own.",
        "dispatch": "Your network is chosen. Send them the kit and their missions start.",
        "changeAmplifiers": "Change who receives it",
        "amplifying": "{{posting}} of {{carrying}} partners have posted this role so far.",
        "carrierStats": "{{visitors}} visitor(s) · {{signups}} sign-up(s)",
        "carrierUntil": "until {{date}}",
        "contentFailed": "Mia could not finish writing this role's content kit. Nothing was sent and nothing was charged. Try again.",
        "retryContent": "Write the kit again",
        "retryingContent": "Writing it now…",
        "network": "The content is approved and nothing has gone out yet. Open this role to your network: your available partners will carry it in turn.",
        "chooseNetwork": "Choose the network"
      },
      "menu": {
        "automation": "Automation",
        "amplification": "Amplification",
        "amplificationOpen": "Open",
        "amplificationClosed": "Closed",
        "amplificationOpenHint": "Partner recruiters keep being proposed, and the kit keeps going out to them.",
        "amplificationClosedHint": "Every partner mission on this flow is retired: no new partner, no new distribution, and the links already shared stop sending anyone to your page. Candidate matching carries on.",
        "archive": "Archive this flow"
      },
      "location": {
        "title": "Where is this role?",
        "add": "Add a place",
        "confirm": "Confirm the place",
        "lede": "Partners are ranked on geography before anything else, because it is the largest single part of the affinity score.",
        "narrows": "This also narrows who Mia proposes: candidates outside this country stop matching this flow. That is why we never set it for you.",
        "countryLabel": "Country",
        "cityLabel": "City (optional)",
        "cityNote": "Shown to partners so they know where to look. It is not matched on.",
        "save": "Save the place",
        "saving": "Saving…",
        "inferred": "We assumed {{place}}.",
        "inferredFrom": {
          "company_address": "from your company address",
          "application_country": "from your sign-up country",
          "org_snapshot": "from where your company is registered"
        }
      },
      "whyMatch": "Why Mia matched this",
      "invalidBanner": {
        "title": "This flow's query can no longer match anyone",
        "body": "The stored version of this query carries nothing the matching can act on, so no candidates will be suggested until it is recreated from a search.",
        "cta": "Run the search again"
      },
      "place": {
        "stated": "set by your team",
        "jobPosting": "from this job posting",
        "unknown": "no country set",
        "unset": "Anywhere"
      },
      "partner": {
        "heading": "Partner",
        "snypraApproved": "Account approved by Snypra. Every partner in the network is.",
        "linkedInVerified": "Verified via LinkedIn",
        "inNetwork": "In your network",
        "notInNetwork": "Not yet invited",
        "platformChannel": "Snypra's own channel",
        "audience": "Audience",
        "reach": {
          "declared": "Declared",
          "requested": "Verification requested",
          "verified": "Verified by Snypra"
        },
        "openChannel": "Open",
        "onThisFlow": "On this flow",
        "stat": {
          "shares": "posts published",
          "visitors": "unique visitors",
          "signups": "sign-ups",
          "inFlow": "candidates who entered"
        },
        "whilePaused": "{{n}} arrived while this flow was not delivering. Measured, free, and paying this partner nothing.",
        "noMission": "This partner has not been sent this flow yet, so there is nothing to measure.",
        "declared": "What this partner says about themselves",
        "errors": {
          "unavailable": "This partner's profile could not be opened. They may have left the network since this page loaded."
        },
        "withYou": "With your company",
        "missions": {
          "one": "{{n}} flow carried",
          "other": "{{n}} flows carried"
        },
        "noHistory": "You have not sent this partner a flow yet, so there is nothing to measure.",
        "historyUnavailable": "This partner's history with you could not be read. The figures below are unaffected.",
        "platformScore": "Score earned across Snypra: {{score}}/100",
        "platformScoreTip": "What this partner has produced across the whole platform, as a single earned score. The counters above are yours alone: what a partner delivers for another company is that company's business, and never appears here."
      },
      "miaOff": {
        "state": "Mia pre-selection is off.",
        "turnOn": "Turn it on"
      }
    },
    "launch": {
      "intro": "Pick the roles Smart HR should carry. Each one runs on a delivery budget you set here: nothing is debited now, and a role only spends when someone arrives.",
      "balanceLine": "Your wallet balance",
      "cta": "Start these flows",
      "launching": "Launching…",
      "doneTitle": "You're live",
      "doneBody": "Your page is live and {{flows}} flow(s) are now carrying your roles. New matching candidates appear here every morning.",
      "ctaNoFlows": "Finish setup",
      "noFlowsNote": "You can start flows later from your Smart HR space. Your page and your licence are already in place.",
      "budgetOverWallet": "These budgets add up to {{total}} and your wallet holds {{available}}. Each one is a ceiling rather than a charge, so nothing is blocked, but a flow will pause if the wallet runs dry before it does.",
      "budgetToSet": "To set",
      "budgetLabel": "Delivery budget"
    },
    "budget": {
      "title": "Delivery budget",
      "lede": "From {{min}}, changeable at any time. Setting a budget debits nothing: it is a ceiling, and you are charged only when someone actually arrives.",
      "price": {
        "visitAmount": "{{price}}",
        "visit": "a qualified visitor",
        "signupAmount": "{{price}}",
        "signup": "a sign-up through the link",
        "candidateAmount": "{{price}}",
        "candidate": "a candidate a partner brings into this flow"
      },
      "label": "What this flow may spend",
      "set": "Set budget",
      "update": "Update",
      "saving": "Saving…",
      "saved": "Budget saved.",
      "spent": "{{spent}} spent of {{budget}}",
      "dailyCap": "billed at most {{cap}} a day",
      "exhausted": "The budget is spent and this flow has paused. Raise it and it starts again; nothing was lost.",
      "willStop": "That is below what this flow has already spent, so it will stop bringing you candidates.",
      "estimate": {
        "title": "Estimate",
        "visits": "≈ {{low}} to {{high}} qualified visitors",
        "signups": "≈ {{low}} to {{high}} sign-ups",
        "candidates": "≈ {{low}} to {{high}} candidates entering this flow",
        "spend": "≈ {{low}} to {{high}} spent",
        "basis": {
          "measured": "From your own results so far, across {{partners}} partners with a declared audience of {{audience}}.",
          "platform": "From platform averages, because you have not run enough yet for your own figures. {{partners}} partners, declared audience {{audience}}."
        },
        "free": "Your employee advocates add roughly {{reach}} more, and that reach is never billed.",
        "capped": "Your network could bring in more than this budget pays for.",
        "noNetwork": "No partners are on this flow yet, so there is no basis for an estimate. Invite partners from your network and this fills in.",
        "basisShort": {
          "measured": "Based on your own results · {{partners}} partner(s)",
          "platform": "Based on platform averages · {{partners}} partner(s)"
        }
      },
      "errors": {
        "range": "A budget must be between {{min}} and {{max}}.",
        "balance": "Your wallet does not hold enough to run this budget. Top it up and set it again.",
        "tracking": "Delivery tracking is briefly unavailable, so this flow cannot be measured, and an unmeasurable flow must not spend. Try again shortly.",
        "licence": "Your Smart HR licence is not active, so a flow cannot spend.",
        "notFound": "That flow no longer exists."
      },
      "exact": "Or type an exact amount",
      "presetsLabel": "Common budgets",
      "pricesTitle": "What this budget pays for",
      "pricesTip": "You are billed per measured arrival, never for reach. Your own employees and your company posts are measured too, and never billed.",
      "beyondSlider": "The slider stops at {{ceiling}}. The amount you typed is the one that will be saved.",
      "runOutTitle": "When the budget runs out",
      "runOut": "Delivery stops. The links your partners already shared stop sending anyone to your page and stop being charged, and your partners are told why. Nothing is deleted: raise the budget and everything starts again from where it stopped.",
      "overrunNote": "Arrivals already on their way when it runs out are still completed and charged, so the final total can land a little above the ceiling you set.",
      "edit": "Change budget",
      "summaryOf": "of {{budget}}",
      "summaryRemaining": "{{remaining}} left",
      "summaryNone": "No budget yet, so nothing is being delivered. Set one and this flow starts spending only when someone actually arrives."
    },
    "billing": {
      "title": "Billing statement",
      "lede": "Every event this flow was charged for, and every one it was not. We are both the meter and the beneficiary, so the rows are here rather than just the total.",
      "month": "Month",
      "exportCsv": "Export CSV",
      "generated": "Generated {{when}}",
      "partnerGone": "Former partner",
      "truncated": "This month has more events than one statement can show. The rows above are the first of them; ask support for the full period.",
      "settlesLater": "settles later",
      "reconciled": "Reconciled: these rows sum exactly to {{total}} debited from your wallet across {{n}} charge(s).",
      "reconcileMismatch": "These rows total {{statement}} but your wallet was debited {{wallet}} for this flow. Don't pay the difference; send us this statement.",
      "reconcileUnknown": "We could not read your full wallet history for this month, so these rows have not been reconciled against it. That is not a discrepancy.",
      "charged": {
        "title": "Charged",
        "keyedOn": "Listed by the day you were charged. The two expensive tiers wait 48 hours, so an arrival on the 31st is charged on the 2nd.",
        "total": "Total charged",
        "none": "Nothing was charged for this flow this month."
      },
      "notCharged": {
        "title": "Measured, not charged",
        "keyedOn": "Listed by the day it happened: nothing here was billed, so there is no billing date to sort it by.",
        "none": "Nothing was measured for this flow this month."
      },
      "orgWide": {
        "title": "Free reach, across your company",
        "scope": "Measured for your whole company rather than for this flow, and never billed. Your employees and your own pages carry it for free.",
        "advocates": "visits from your employee advocates",
        "company": "visits from your own channel posts",
        "pageVisits": "visits to your company page",
        "pageCta": "clicks on your page's call to action",
        "outbound": "clicks from your page to your own sites",
        "neverBilled": "never billed"
      },
      "tier": {
        "visit": "Qualified visitor",
        "signup": "Sign-up",
        "candidate": "Candidate joined",
        "mia_session": "Mia conversation"
      },
      "reason": {
        "bot": "Bot or link-preview fetch",
        "self": "The sharer opening their own link",
        "not_partner_link": "Advocate or company-channel link · never billed",
        "no_flow": "A partner link tied to no role",
        "not_unique": "A repeat visit from someone already counted",
        "unverifiable_visitor": "A visitor we cannot count only once: without measurement consent there is no stable identifier",
        "other_flow": "A candidate another role paid to reach",
        "unknown_tier": "Unrecognised event",
        "pending_settlement": "Waiting out the 48-hour window",
        "mission_daily_cap": "Above one partner's daily limit on this role",
        "partner_daily_cap": "Above one partner's daily limit overall",
        "ip_bucket_cap": "Several visits from one connection in a day",
        "flow_daily_cap": "Above this role's daily spending limit",
        "partner_not_active": "A partner who is no longer active",
        "zero_conversion": "Held for review · clicks with no sign-ups behind them"
      },
      "csv": {
        "section": "Section",
        "date": "Date",
        "tier": "Event",
        "channel": "Channel",
        "partner": "Partner",
        "subject": "Reference",
        "quantity": "Quantity",
        "unitPrice": "Unit price",
        "total": "Total",
        "reason": "Reason",
        "settlesLater": "Settles later",
        "yes": "Yes",
        "no": "No"
      },
      "errors": {
        "unavailable": "The billing records could not be read just now. Try again in a moment; nothing is lost."
      },
      "tableCaption": "Every event charged to this flow this month, with its date, its partner and its amount.",
      "chargedEvents": {
        "one": "{{n}} billable event",
        "other": "{{n}} billable events"
      },
      "emptyMonth": {
        "title": "Nothing happened on this flow this month",
        "body": "No visitor, no sign-up, no candidate, so nothing was charged and nothing was withheld. Pick another month above, or open Network to see who is carrying this flow."
      }
    },
    "errors": {
      "disabled": "Smart HR isn't enabled for your account yet.",
      "notEligible": "Smart HR is reserved for companies hiring directly.",
      "consentRequired": "Please authorize the analysis of your sources first.",
      "invalidWebsite": "Enter a valid website address (https://…).",
      "invalidCareerUrl": "The career page address isn't a valid URL.",
      "flowsDisabled": "Talent flows aren't enabled for your account yet.",
      "insufficientBalance": "Your wallet balance doesn't cover this launch. Top up your wallet and come back; your selection is kept.",
      "flowCap": "You're running as many flows at once as your plan includes. Pause or archive one, or move up a plan.",
      "budgetRequired": "A flow runs on a delivery budget. Set one of at least {{min}} and it can start; nothing leaves your wallet until someone actually arrives.",
      "researchRequired": "Mia needs to finish researching your company first. Go back a step and run the analysis.",
      "rateLimited": "Too many attempts. Wait a few minutes and try again.",
      "notOrgMember": "You don't have access to this company's Smart HR.",
      "pageNotPublished": "Publish your company page first, because every kit links to it.",
      "generationTimeout": "Writing your page took longer than expected. Try again; nothing was lost.",
      "generic": "Something went wrong. Try again in a moment.",
      "invalidUrl": "That \"{{field}}\" address is not a valid link. Check it and try again.",
      "invalidSocialHost": "That \"{{field}}\" address does not point at {{field}}. Paste the link to your {{field}} page.",
      "licenceRequired": "Your Smart HR licence is not active. Renew it to carry on.",
      "setupIncomplete": "Finish setting up your Smart HR space first.",
      "queryNotSpecific": "This search is too broad to become a flow. Narrow it down and try again.",
      "flowNotDeletable": "Only a flow that never went live can be deleted. Archive this one instead: its history is kept."
    },
    "activity": {
      "subtitle": "Every automated step taken for your company, newest first, including the ones that stopped and why.",
      "scopeLabel": "Filter activity",
      "scope": {
        "all": "All",
        "brand": "Company",
        "flow": "Flows"
      },
      "empty": "Nothing has run yet. Activity appears here as soon as your first flow goes active.",
      "capped": "Showing the {{n}} most recent steps.",
      "clear": "Clear",
      "showHistory": "Show history ({{n}})",
      "hideHistory": "Hide history",
      "emptySinceClear": "Nothing new since you last cleared this.",
      "showMore": "Show more",
      "flowFilter": "Flow",
      "allFlows": "All flows",
      "day": {
        "today": "Today",
        "yesterday": "Yesterday",
        "earlier": "Earlier"
      }
    },
    "overview": {
      "title": "Smart HR · {{org}}",
      "subtitle": "What is running, what went out in your name, and anything that stopped.",
      "awaiting": "{{n}} kit(s) waiting for your validation",
      "stalled": "{{n}} automated step(s) stopped · see why",
      "stalledDismiss": "Dismiss · a new halt will raise this again",
      "hiring": "Hiring",
      "activeFlows": "Active flows",
      "matched": "Candidates matched",
      "toFlows": "Open flows",
      "mode": {
        "auto": "Automatic. Mia validates the kit and picks the amplifiers; the kit then goes out to your network.",
        "manual": "Manual. You validate the kit, then the amplifiers, before anything goes out to your network."
      },
      "companyPage": "Company page",
      "activity": "Activity",
      "pageVisits": "Page visits",
      "pageCtaClicks": "CTA clicks",
      "pageSignups": "Sign-ups",
      "pageEdit": "Edit",
      "pageNone": "You have not created your company page yet. It is the page every tracked link points to, and until it exists what your network shares has nowhere to land.",
      "pageCreate": "Create the page",
      "pageHoldsDispatch": "Your page is still a draft, so nothing goes out to your network yet: a shared link would land on a page that is not live. Publish it to release them.",
      "addNeed": "Add a role",
      "reach": "What your network reaches",
      "reachLine": "{{n}} people can carry your content automatically right now.",
      "modeLabel": "Who validates, by default",
      "modeTip": "This is about YOUR two checkpoints: validating the kit Mia writes, then validating which amplifiers receive it. It sets the starting position for every new flow, and each flow can change it in its own settings. It does not decide how a partner publishes, because each partner chooses that for themselves.",
      "awaitingBrand": "{{n}} brand kit(s) awaiting your validation",
      "brandKits": {
        "ownIntro": "You can post this yourself and have it counted. It is optional: this kit exists for your own channels, and nothing here holds anything up.",
        "readyTitle": "Validated · ready to publish",
        "readyHint": "Validated. This one is for your own channels: publish it below, whenever you like. It never goes to your partner network.",
        "title": "Brand kits",
        "empty": "Nothing yet. Mia writes a kit when your company activates, sponsors an event or hits a milestone."
      },
      "brandKit": {
        "cta": "Create a brand kit",
        "creating": "Mia is writing…",
        "open": "Brand kit",
        "intro": "Ready-to-publish content for your own channels.",
        "introTip": "A caption per network, a tracked link, a QR code and a share card. Entirely optional: your network amplifies without it, and this never goes to them.",
        "empty": "No brand kit yet."
      },
      "pageOutbound": "Clicks to your channels",
      "pageOutboundDetail": "Break down by channel",
      "pageSignupsNote": "A sign-up is not an entry into a flow. Mia only puts forward candidates who match a flow's criteria, so someone who signs up from your page may never appear in one.",
      "pageSignupsNoteAria": "What this number counts",
      "splitHint": "{{organic}} organic · {{amplified}} amplified",
      "notActivated": {
        "title": "Smart HR is not active yet",
        "body": "Activation starts from your console, where Mia walks you through it and shows what the licence covers before anything is charged.",
        "cta": "Go to my console"
      },
      "search": {
        "title": "In Google Search",
        "notMeasured": "Not measured yet. Google's figures arrive the day after a page is published, and take a few days to become final.",
        "notIndexed": "Not indexed yet. Google has not shown this page in a result. A new page usually takes a few days to a few weeks; nothing is wrong.",
        "impressions": "Times shown",
        "clicks": "Clicks",
        "ctr": "Click rate",
        "position": "Average position",
        "day": "Figures for {{day}}. Google publishes its data with a two-day delay.",
        "queriesTitle": "What people searched for, last {{days}} days",
        "queriesWithheld": "Google withholds searches made by too few people, so no query is listed yet."
      },
      "chart": {
        "title": "Over time",
        "rangeLabel": "Period",
        "range": {
          "d7": "7 days",
          "d30": "30 days",
          "d90": "90 days",
          "m12": "12 months"
        },
        "coverage": "Day-by-day counting started on {{date}}, so shorter ranges do not reach further back. The lifetime totals above and 12 months cover everything.",
        "empty": "Nothing counted in this period",
        "emptyRange": "No visits in this window. Switch to 12 months to see the history you already have.",
        "emptyEver": "Your page has not been visited yet. The curve appears with the first visitors.",
        "emptyPeriod": "No visits counted in this period."
      }
    },
    "network": {
      "title": "Your network",
      "subtitle": "Two networks carry your roles: the people inside your company, and the independent recruiters who partner with you.",
      "employees": {
        "title": "Employees",
        "intro": "The people inside your company who share your roles. They earn nothing, because this is voluntary advocacy.",
        "reachable": "Can be reached"
      },
      "partners": {
        "title": "Partner recruiters",
        "intro": "Independent recruiters who amplify your roles and source candidates for them.",
        "empty": "No partner recruiters yet. “Find partners” suggests some for a flow.",
        "activityLine": "{{shares}} shares · {{visitors}} visitors · {{signups}} sign-ups",
        "discover": "Find partners",
        "discoverFor": "Ranked for which flow?",
        "discoverNoFlows": "Activate a flow first, because partners are ranked by how well they fit one.",
        "verifiedVia": "Verified via LinkedIn",
        "declared": "Declared by the partner",
        "filterIndustry": "Industry",
        "filterCountry": "Country",
        "filterTier": "Tier",
        "filterAny": "Any",
        "filterClear": "Clear filters",
        "filterEmpty": "No partner matches these filters. Widen them to see the ranked list again.",
        "revokeConfirmTitle": "Remove this partner?",
        "revokeConfirmBody": "They leave your network and every mission they hold for your flows closes. Anything they already delivered stays counted and paid. You can invite them again later.",
        "revokeConfirmCta": "Remove",
        "recommended": "Recommended",
        "reachTier": {
          "nano": "Small audience",
          "micro": "Growing audience",
          "mid": "Wide audience",
          "macro": "Large audience",
          "mega": "Very large audience"
        },
        "plan": {
          "sized_to_budget": "We recommend {{n}} of {{total}}, enough to keep this flow's budget busy at about {{visits}} qualified visits a day. Add more if you want; the budget still caps what you pay.",
          "all_available": "We recommend all {{n}}, which is everyone who fits this flow. Your budget could absorb more reach than the network currently has.",
          "no_budget": "Set a delivery budget on this flow and we will size the network to it.",
          "no_candidates": ""
        }
      },
      "reach": {
        "employeesLabel": "Employees on auto",
        "line": "{{n}} people can carry your posts automatically right now: {{employees}} employees and {{partners}} partner recruiters. Everyone else still receives the kit and shares it by hand.",
        "partnersLabel": "Partners on auto"
      },
      "pref": {
        "always": "Always",
        "hint": "A standing choice about this partner. “Always” keeps them in the running for every one of your flows, even when they fall below the fit threshold. They still carry one role at a time, like everyone else. With no choice, Mia ranks them flow by flow.",
        "label": "In your flows",
        "never": "Never",
        "none": "Mia decides",
        "employeeHint": "A standing choice about this person. Your active employees already receive every kit, so the only useful choice here is to leave someone out of your flows.",
        "revokeDiffEmployee": "“Never” keeps them on your roster and leaves them out of your flows. “Remove” ends their ambassador role, so they receive nothing further.",
        "revokeDiffPartner": "“Never” keeps them in your network and leaves them out of your flows. “Remove” ends the membership and closes their missions."
      }
    },
    "pitch": {
      "title": "Hire the way people actually find work",
      "lede": "Smart HR is not another place to post a job. It gives your company a public brand page, turns your employees into advocates, opens your roles to independent recruiters, and measures every person all of that reaches.",
      "benefit": {
        "page": {
          "icon": "captive_portal",
          "title": "A public employer-brand page",
          "body": "Mia researches your company and writes it: your culture, your values, the roles you hire. Hosted, indexed, and yours."
        },
        "advocates": {
          "icon": "diversity_3",
          "title": "An employee advocacy programme",
          "body": "Invite your team to share your openings on their own networks. They keep the consent; you keep the reach. Free, because your own staff are never charged to you."
        },
        "partners": {
          "icon": "handshake",
          "title": "An external recruiter network",
          "body": "Independent recruiters bring you people from pools you cannot reach. You only pay when they actually deliver."
        },
        "tracking": {
          "icon": "insights",
          "title": "Reach you can actually see",
          "body": "Real visitors, real sign-ups, real candidates, per channel and per partner and per role. No impressions, no estimates."
        }
      },
      "tiers": {
        "title": "One annual licence, by company size",
        "perYear": "{{price}} / year",
        "yours": "Your size",
        "flows": "{{n}} flows running at once",
        "flowsUnlimited": "Unlimited flows at once",
        "partners": "Up to {{n}} partner recruiters per role",
        "partnersUnlimited": "Unlimited partner recruiters",
        "roster": "A network of up to {{n}} partner recruiters",
        "advocates": "Up to {{n}} employee advocates",
        "advocatesUnlimited": "Unlimited employee advocates",
        "small": {
          "name": "Small",
          "size": "Up to 50 people"
        },
        "mid": {
          "name": "Mid",
          "size": "51 to 500 people"
        },
        "large": {
          "name": "Large",
          "size": "500+ people"
        }
      },
      "mechanic": {
        "title": "You pay for the people who arrive, not for opening the role",
        "lede": "Every role runs on a delivery budget you set, from {{min}}. Nothing leaves your wallet until someone actually arrives:",
        "visitPrice": "{{price}}",
        "visit": "a real person opens a partner's link",
        "signupPrice": "{{price}}",
        "signup": "that person creates a Snypra account",
        "candidatePrice": "{{price}}",
        "candidate": "a candidate a partner brings you, matched to this very role",
        "note": "A role that brings you nobody costs you nothing beyond what it measured. Your own employees' reach, your company's own posts and every visit to your page stay free: measured, shown to you, never billed."
      },
      "cta": "Set up Smart HR",
      "ctaNote": "Paid from your Snypra wallet. No subscription, no card on file."
    },
    "preselection": {
      "title": "Mia pre-selection",
      "menuLabel": "Mia pre-selection",
      "configure": "Configure",
      "on": "On",
      "off": "Off",
      "lede": "Mia invites each new candidate on this flow to a short written conversation, then sends you a report.",
      "price": "{{price}} per completed conversation",
      "objective": "What should Mia find out?",
      "objectivePlaceholder": "For example: check availability and motivation for a kitchen role starting in spring.",
      "objectiveHint": "{{n}} characters left",
      "fields": "Points to cover ({{n}} of {{max}})",
      "customLabel": "Your own question",
      "customPlaceholder": "For example: experience with HACCP",
      "customRemove": "Remove this question",
      "customAdd": "Add your own question",
      "protectedHint": "Mia never asks about age, family, health, religion, origin, union membership, sexual orientation, political opinions or a criminal record.",
      "freeMode": "Free mode",
      "freeModeOn": "Once your questions are covered, Mia may explore the job-related topics the candidate brings up.",
      "freeModeOff": "Mia sticks to your objective and your questions, then wraps up.",
      "save": "Save and switch on",
      "saved": "Saved. New candidates entering this flow will be invited.",
      "readReport": "Read Mia's report",
      "status": {
        "invited": "Invited to talk with Mia",
        "in_conversation": "Talking with Mia",
        "completed": "Conversation with Mia done",
        "not_started": "No conversation with Mia",
        "cancelled": "Conversation closed"
      },
      "errors": {
        "generic": "That did not save. Please try again.",
        "MIA_CONVERSATIONS_UNAVAILABLE": "Mia pre-selection is not available yet.",
        "SETTLEMENT_UNAVAILABLE": "Flow billing is not running, so pre-selection cannot start.",
        "PRESELECTION_NEEDS_BUDGET": "Set a delivery budget on this flow first: conversations are charged against it.",
        "LICENCE_REQUIRED": "An active Smart HR licence is needed.",
        "FLOW_ARCHIVED": "An archived flow cannot change this setting.",
        "PRESELECTION_OBJECTIVE_REQUIRED": "Tell Mia what to find out.",
        "PRESELECTION_OBJECTIVE_TOO_LONG": "The objective is too long.",
        "PRESELECTION_TOO_MANY_FIELDS": "Too many points: keep it to eight.",
        "PRESELECTION_TOO_MANY_CUSTOM_FIELDS": "At most three questions of your own.",
        "PRESELECTION_CUSTOM_LABEL_INVALID": "Each question of your own needs a short label with letters or digits.",
        "PRESELECTION_DUPLICATE_FIELD": "The same point is listed twice.",
        "PRESELECTION_FIELD_PROTECTED": "Mia cannot ask about this:",
        "PRESELECTION_ROLE_NOTES_TOO_LONG": "The notes about the role are too long.",
        "PRESELECTION_MUST_HAVE_INVALID": "One of the must-have conditions is not valid.",
        "PRESELECTION_MUST_HAVE_NOT_ALLOWED": "That question cannot be a must-have.",
        "PRESELECTION_TOO_MANY_MUST_HAVES": "At most five must-haves.",
        "PRESELECTION_MUST_HAVE_PAST_DATE": "An availability deadline must be in the future.",
        "PRESELECTION_TARGETING_INVALID": "These thresholds are not valid.",
        "PRESELECTION_MIN_MATCH_OUT_OF_RANGE": "The minimum match is out of range.",
        "PRESELECTION_LOW_FLOOR_OUT_OF_RANGE": "The weak-match threshold must sit well under the minimum."
      },
      "protected": {
        "age": "age.",
        "family": "family situation.",
        "health": "health.",
        "religion": "religion or belief.",
        "origin": "origin or nationality.",
        "union": "union membership.",
        "orientation": "sexual orientation.",
        "political": "political opinions.",
        "criminal": "criminal record."
      },
      "report": {
        "title": "Mia's report",
        "loading": "Loading the report",
        "noScore": "What the candidate said, in their words. No score and no recommendation: the decision is yours.",
        "candidateNote": "The candidate's note on this report",
        "summary": "Summary",
        "answers": "Answers",
        "status": {
          "unclear": "(unclear)",
          "declined": "Preferred not to say",
          "not_covered": "Did not come up"
        },
        "evidenceLabel": "Show message {{n}}",
        "alignment": "Where it meets the role",
        "followUps": "Worth raising in person",
        "transcript": "The conversation ({{n}} messages)",
        "candidate": "Candidate",
        "pending": "Mia is still writing this report.",
        "fromProfile": "from the candidate's profile"
      },
      "roleNotes": "What Mia can tell candidates about the role (optional)",
      "roleNotesPlaceholder": "For example: permanent contract, a team of six, two days a week in the Brussels office.",
      "roleNotesHint": "Mia answers questions about the role from your flow and from this note only. She never invents a salary, a benefit or a date.",
      "musts": {
        "title": "Must-haves ({{n}} of {{max}})",
        "hint": "Mia asks for a precise answer. The candidate sees the list of must-haves before starting, but never your thresholds or your salary ceiling. A candidate who clearly misses one is set aside, told which one, and can ask for a person to review their application. Any unclear answer comes back to you.",
        "isTrue": "The answer must be yes.",
        "maxWeeks": "No more than",
        "onOrBefore": "Available on or before",
        "maxEur": "No more than",
        "maxEurHint": "Mia compares with the low end of the range the candidate gives: if that figure fits your budget, the must-have is met.",
        "oneOf": "Accepted work modes",
        "languages": "Required languages (e.g. fr, nl)",
        "mode": {
          "on_site": "On site",
          "hybrid": "Hybrid",
          "remote": "Remote"
        },
        "tipLabel": "How must-haves work",
        "empty": "Choose a question above, such as notice period or salary, or add your own, to make it a must-have.",
        "switchLabel": "Must-have: {{q}}",
        "maxEurTipLabel": "How salary is compared",
        "customUnnamed": "Your question",
        "needsValue": "Enter a valid value for this must-have.",
        "weeksUnit": "weeks",
        "eurUnit": "a year"
      },
      "backfill": {
        "title": "Candidates already on this flow",
        "lede": "Mia invites new candidates as they arrive. You can also invite those already on the flow whom you have not decided on yet.",
        "check": "See how many",
        "start": "Invite them ({{n}})",
        "state": {
          "running": {
            "other": "Invitations are going out in batches: {{n}} sent so far.",
            "one": "Invitations are going out in batches: {{n}} sent so far."
          },
          "done": {
            "one": "Done: {{n}} candidate invited.",
            "other": "Done: {{n}} candidates invited."
          },
          "stopped_budget": {
            "other": "Paused: the budget cannot cover another conversation ({{n}} invited). Add budget, then invite again to continue.",
            "one": "Paused: the budget cannot cover another conversation ({{n}} invited). Add budget, then invite again to continue."
          },
          "stopped_off": {
            "other": "Stopped because Mia pre-selection is off or the flow is not running ({{n}} invited).",
            "one": "Stopped because Mia pre-selection is off or the flow is not running ({{n}} invited)."
          }
        },
        "errors": {
          "PRESELECTION_NOT_ACTIVE": "Mia pre-selection must be on, on a running flow.",
          "RATE_LIMITED": "Too many attempts. Please wait a few minutes.",
          "generic": "That did not work. Please try again."
        },
        "retrying": {
          "one": "{{n}} candidate could not be invited yet (they already have several open invitations). They will be tried again over the next days.",
          "other": "{{n}} candidates could not be invited yet (they already have several open invitations). They will be tried again over the next days."
        },
        "startSetAsideOnly": "Set aside the weak matches ({{n}})",
        "invitedCount": {
          "one": "{{n}} candidate would be invited.",
          "other": "{{n}} candidates would be invited."
        },
        "previewCost": "Maximum cost: {{max}} if every conversation is completed. Your current budget covers {{affordable}}.",
        "asideCount": {
          "other": "{{n}} would be set aside (weak match)",
          "one": "{{n}} would be set aside (weak match)"
        },
        "keptCount": {
          "one": "{{n}} would stay on your list",
          "other": "{{n}} would stay on your list"
        },
        "splitJoin": "{{aside}} and {{kept}}.",
        "tipLabel": "Who can be invited",
        "skippedBudget": {
          "one": "{{n}} candidate was not invited because the budget could not reserve their conversation. Raise the budget to invite the next ones.",
          "other": "{{n}} candidates were not invited because the budget could not reserve their conversation. Raise the budget to invite the next ones."
        }
      },
      "decision": {
        "retained": "Retained by Mia",
        "not_retained": "Set aside by Mia",
        "to_review": "To review: Mia could not decide",
        "reviewRequested": "the candidate asked for a person to review",
        "notApplied": "recorded only, status unchanged",
        "customCondition": "one of your questions",
        "low_match": "Set aside by Mia · weak match",
        "wasNotRetained": "Mia had set this candidate aside"
      },
      "saveChanges": "Save",
      "activity": {
        "title": "Mia pre-selection",
        "configure": "Settings",
        "loading": "Loading what Mia is doing",
        "error": "We could not load pre-selection activity. It will try again on its own.",
        "empty": "Mia has not invited anyone on this flow yet.",
        "sessions": {
          "invited": {
            "other": "invited",
            "one": "invited"
          },
          "in_conversation": {
            "other": "in conversation",
            "one": "in conversation"
          },
          "completed": {
            "other": "finished",
            "one": "finished"
          },
          "not_started": {
            "other": "not started",
            "one": "not started"
          },
          "cancelled": {
            "other": "withdrawn",
            "one": "withdrawn"
          }
        },
        "outcomesLabel": "Mia's outcomes",
        "targetingLabel": "Candidates Mia did not invite",
        "filters": {
          "retained": {
            "other": "accepted by Mia",
            "one": "accepted by Mia"
          },
          "not_retained": {
            "other": "set aside by Mia",
            "one": "set aside by Mia"
          },
          "to_review": {
            "one": "for you to review",
            "other": "for you to review"
          },
          "review_requested": {
            "one": "asks for a review",
            "other": "ask for a review"
          },
          "low_match": {
            "other": "set aside, weak match",
            "one": "set aside, weak match"
          },
          "kept": {
            "one": "stays on your list, not invited",
            "other": "stay on your list, not invited"
          }
        },
        "clearFilter": "Show all",
        "money": "{{reserved}} reserved for open invitations · {{charged}} charged",
        "partial": "Filtered from the {{n}} most recent candidates; the counts above cover every candidate.",
        "stripLabel": "Mia pre-selection: see the detail in Delivery",
        "panelTitle": "Mia's conversations",
        "kpi": {
          "invited": "Invited",
          "inConversation": "In progress",
          "completed": "Completed",
          "toReview": "To review"
        }
      },
      "targeting": {
        "reason": {
          "match": "Invited by Mia",
          "person_accepted": "Invited by Mia: you accepted this candidate",
          "decided": "Not invited: already decided",
          "no_score": "Not invited by Mia: no match score yet",
          "not_relevant": "Not invited by Mia: she judged this an indirect match, and you invite direct matches only",
          "between": "Not invited by Mia: match below your minimum",
          "data_gaps": "Not invited by Mia: the match rests on missing information",
          "low_match": "Set aside by Mia: weak match",
          "would_set_aside": "Not invited by Mia: weak match (automatic decisions are off)",
          "no_verdict": "Not invited by Mia: this match predates the relevance check"
        },
        "title": "Who Mia invites",
        "hint": "Mia invites the candidates who reach your threshold. Those below it who are not set aside stay on your list: the decision is yours.",
        "minMatch": "Invite from",
        "requireRelevant": "Only profiles that match the role directly",
        "setAside": "Set aside profiles that are too far off, without contacting them",
        "lowFloor": "Below",
        "setAsideHint": "Mia never sets aside a profile whose match rests on missing information. The candidate is not contacted, and you can bring them back in one click. This only applies where automatic decisions are switched on for your account; otherwise Mia only flags them.",
        "tipLabel": "How Mia chooses whom to invite",
        "setAsideTipLabel": "When a candidate is set aside",
        "previewTitle": "Among the candidates already on this flow, with these thresholds",
        "previewInvited": {
          "one": "{{n}} invited",
          "other": "{{n}} invited"
        },
        "previewAside": {
          "one": "{{n}} set aside",
          "other": "{{n}} set aside"
        },
        "previewKept": {
          "one": "{{n}} stays on your list",
          "other": "{{n}} stay on your list"
        },
        "saveToApply": "Save to apply these thresholds, then invite the candidates already on the flow from Delivery › Pre-selection.",
        "pctSuffix": "match",
        "invalidMin": "Choose an invitation threshold between {{min}} and {{max}}.",
        "invalidFloor": "The set-aside threshold ({{floor}}) must stay at least {{gap}} points below the invitation threshold ({{min}}). Lower it to {{suggest}} or less."
      },
      "ledeTip": "Mia writes on your behalf and asks the questions you choose below. The candidate chooses whether to take part.",
      "ledeTipLabel": "How Mia pre-selection works",
      "switchLabel": "Mia pre-selection on this flow",
      "priceTip": "Charged to this flow's delivery budget. Nothing is charged for a conversation nobody finished.",
      "priceTipLabel": "How it is charged",
      "sections": {
        "brief": "Mia's brief",
        "questions": "The questions"
      },
      "roleNotesTipLabel": "What Mia answers about the role",
      "protectedTipLabel": "Topics Mia never raises"
    }
  },
  "companyPage": {
    "loading": "Loading…",
    "notFound": {
      "title": "This page isn't available",
      "body": "The company page you're looking for doesn't exist or isn't public.",
      "home": "Back to Snypra"
    },
    "player": {
      "close": "Close the video"
    },
    "story": "Who we are",
    "culture": "Culture & values",
    "eyebrow": "We're hiring",
    "preview": "Preview",
    "previewMissing": "Not on your page yet. Add these in the editor to show them:",
    "media": {
      "title": "Life inside",
      "company": "Inside the company",
      "team": "Meet the team",
      "pauseLoop": "Pause the background video",
      "playLoop": "Play the background video"
    },
    "talentCloud": "Profiles we look for",
    "sponsoredEvents": "Sponsored events",
    "cta": "Create my profile",
    "ctaNote": "No application form to fill in. Your profile is matched to our roles automatically.",
    "deliveredBy": "Delivered by Snypra",
    "events": {
      "intro": "Workshops we support in the field, alongside schools and public partners.",
      "formats": {
        "first_step": "First Step",
        "discovery": "Discovery",
        "career_boost": "Career Boost"
      },
      "tiers": {
        "community": "Community sponsor",
        "partner": "Partner sponsor",
        "headline": "Headline sponsor"
      },
      "upcomingHeading": "Upcoming",
      "pastHeading": "Past events"
    },
    "talent": {
      "hiringNow": "Hiring now",
      "typicalRole": "A role we typically hire for"
    },
    "ourWay": {
      "title": "How being found here works",
      "facts": {
        "personality": {
          "title": "We read people, not paper",
          "body": "Your profile is a short video and a synthesis of how you work. There is no CV screen standing between you and us."
        },
        "network": {
          "title": "One profile, many doors",
          "body": "Your profile stays visible to every company on the network at the same time. A no from us is not a no from the network."
        },
        "earnings": {
          "title": "You earn as you are discovered",
          "body": "You receive from {{viewEarnFrom}} every time a company opens your profile, and from {{acceptEarnFrom}} when you accept an invitation. Both rise with what you have proved, up to {{viewEarnTo}} and {{acceptEarnTo}}. Without a video on your profile, the same moments pay {{noVideoViewEarnFrom}} to {{noVideoViewEarnTo}} and {{noVideoAcceptEarnFrom}} to {{noVideoAcceptEarnTo}}."
        },
        "coaching": {
          "title": "You get told how you land",
          "body": "A real read on how your profile comes across, where the gaps are, and what is worth working on next."
        }
      }
    },
    "website": "Our website",
    "social": {
      "title": "Follow us",
      "lead": "See what our team is building, day to day, before you ever talk to us.",
      "field": {
        "website": "Website",
        "linkedin": "LinkedIn",
        "x": "X",
        "instagram": "Instagram",
        "facebook": "Facebook",
        "youtube": "YouTube",
        "tiktok": "TikTok"
      },
      "aria": {
        "website": "Website (opens in a new tab)",
        "linkedin": "LinkedIn (opens in a new tab)",
        "x": "X (opens in a new tab)",
        "instagram": "Instagram (opens in a new tab)",
        "facebook": "Facebook (opens in a new tab)",
        "youtube": "YouTube (opens in a new tab)",
        "tiktok": "TikTok (opens in a new tab)"
      }
    }
  },
  "grace": {
    "pill": "Your profile goes live in ~{{hours}}h.",
    "banner": "Your profile is qualified and becomes visible to recruiters in about {{hours}}h.",
    "testsCta": "Boost your tests first"
  },
  "notifications": {
    "bell": {
      "title": "Notifications",
      "empty": "You're all caught up.",
      "loading": "Loading…",
      "markAllRead": "Mark all as read",
      "today": "Today",
      "yesterday": "Yesterday",
      "earlier": "Earlier"
    },
    "prefs": {
      "title": "Notifications",
      "intro": "Choose how we reach you. Security and transactional alerts are always on.",
      "loading": "Loading preferences…",
      "error": "Could not update your preferences. Please try again.",
      "alwaysOn": "Always on",
      "categoryHeader": "Category",
      "channel": {
        "in_app": "In-app",
        "email": "Email"
      },
      "category": {
        "account": "Security & account",
        "transactions": "Payments & receipts",
        "product": "Product updates",
        "engagement": "Activity",
        "marketing": "Marketing"
      },
      "categoryDesc": {
        "account": {
          "candidate": "Sign-in events, verification, account reviews.",
          "recruiter": "Sign-in events, verification, account reviews."
        },
        "transactions": {
          "candidate": "Credit purchases, earnings receipts, refunds, invoices.",
          "recruiter": "Wallet top-ups, charges, refunds, invoices."
        },
        "product": {
          "candidate": "Your readiness, fresh analyses, new Mia syntheses of your profile.",
          "recruiter": "Platform updates, new search capabilities, pricing and product changes."
        },
        "engagement": {
          "candidate": "Invitations, profile views, accepted matches, interviews.",
          "recruiter": "Candidate replies, saved-search hits, pipeline updates, interviews."
        },
        "marketing": {
          "candidate": "Newsletters and product announcements.",
          "recruiter": "Newsletters and product announcements."
        }
      },
      "digest": {
        "heading": "Email delivery",
        "intro": "Pick how often we email you for activity and product updates. Security and payments are always sent right away.",
        "realtime": {
          "label": "Real-time",
          "desc": "Email me as each event happens."
        },
        "daily": {
          "label": "Daily digest",
          "desc": "Bundle non-urgent updates into one morning email."
        },
        "off": {
          "label": "In-app only",
          "desc": "No emails. I'll check the bell myself."
        }
      }
    },
    "emailVerified": {
      "title": "Email verified",
      "body": "Your email address is now confirmed."
    },
    "passwordReset": {
      "title": "Password reset",
      "body": "Your password was successfully reset."
    },
    "accountLinked": {
      "title": "Accounts linked",
      "body": "Your Google sign-in is now linked to this account."
    },
    "accountFlagged": {
      "title": "Account under review",
      "body": "Snypra has flagged your account for review. Support will reach out if action is required."
    },
    "quotaOverridden": {
      "title": "Search quota updated",
      "body": "Your daily search allowance has been adjusted by an admin."
    },
    "forcedRerecord": {
      "title": "Please re-record your video",
      "body": "Your onboarding video needs to be recorded again. Head to your profile to retry."
    },
    "recruiterApproved": {
      "title": "Your account is verified",
      "body": "Your company has been verified. You now have full access to search and invite candidates."
    },
    "recruiterRejected": {
      "title": "Verification not approved",
      "body": "We were unable to verify your company. Contact us if you believe this is an error."
    },
    "walletTopup": {
      "title": "Wallet top-up confirmed",
      "body": "{{pack_label}}: {{amount_credited_eur}} credited to your wallet."
    },
    "creditsPurchased": {
      "title": "Credits added",
      "body": "{{credits_amount}} credits from {{pack_label}} are now on your account."
    },
    "walletGrantedByAdmin": {
      "title": "Wallet credit from the Snypra team",
      "body": "{{amount_eur}} was added to your wallet by an admin. Reason: {{reason}}"
    },
    "creditsGrantedByAdmin": {
      "title": "Credits from the Snypra team",
      "body": "{{amount_cr}} credits were added to your account by an admin. Reason: {{reason}}"
    },
    "supportTicketReceived": {
      "title": "We've received your support ticket",
      "body": "Ticket \"{{subject}}\" is now in the queue. We'll reply as soon as we can."
    },
    "supportTicketReplied": {
      "title": "Your support ticket has an update",
      "body": "A Snypra team member replied on \"{{subject}}\". Status: {{status}}."
    },
    "refundIssued": {
      "title": "Refund issued",
      "body": "A refund has been processed. Check your wallet for the updated balance."
    },
    "profileVisible": {
      "title": "You're visible to recruiters",
      "body": "Your readiness score crossed {{readiness}}, so Mia will start surfacing you in searches."
    },
    "testCompletionRequested": {
      "title": "{{company_name}} is waiting on your test results",
      "body": "They have already accepted you and would like the full cross-test reading. It needs all four sections started and at least {{required}} challenges: you are at {{done}}. Challenges are free, and each section you complete earns you credits."
    },
    "testAnalysisNowAvailable": {
      "title": "The test analysis is ready",
      "body": "{{candidate_ref}} has done enough of the suite. Ask Mia for the test analysis on their profile."
    },
    "testAnalysisExpiring": {
      "title": "Your Ask Mia records expire in {{days}} days",
      "body": "What Mia showed you about this candidate reaches its retention limit. Download the test analysis PDF to keep it, or work the candidate again to keep the records for another year."
    },
    "graceTestsNudge1": {
      "title": "Your quiet window is ticking",
      "body": "Recruiters can't see you for another {{hours_left}}h. Complete your tests now so your score is at full strength when you go live."
    },
    "candidateDormantNudge": {
      "title": "Your profile is still here",
      "body": "We haven't seen you for about {{idle_days}} days. Everything is where you left it."
    },
    "candidateVisibilityPauseWarning": {
      "title": "Your profile leaves search in {{notice_days}} days",
      "body": "You haven't used Snypra in a long time. Sign in once and nothing changes. Nothing is ever deleted."
    },
    "candidateVisibilityPaused": {
      "title": "Your profile is paused in search",
      "body": "New recruiter searches no longer show you. Nothing was deleted, and one click puts you back."
    },
    "candidateVisibilityRestored": {
      "title": "You're back in recruiter search",
      "body": "Welcome back. Your profile is visible again, exactly as you left it."
    },
    "graceTestsNudge2": {
      "title": "{{hours_left}}h before you're visible",
      "body": "Your tests aren't finished, so recruiters see a \"tests not completed\" marker. There's still time to finish them."
    },
    "quotaWarning": {
      "title": "Search quota running low",
      "body": "You've used most of today's search allowance."
    },
    "synthesisReady": {
      "title": "Your new analysis is ready",
      "body": "Mia has refreshed your profile. Open your dashboard to see what's changed."
    },
    "candidateProfileUpdated": {
      "title": "{{candidate_name}} just leveled up",
      "body": "A candidate you've connected with updated their profile. {{diff_summary}}"
    },
    "recruiterUnlockRefreshed": {
      "title": "Refreshed synthesis available",
      "body": "A candidate you've unlocked has a new version of their synthesis."
    },
    "tierUpgraded": {
      "title": "Trust tier upgraded",
      "body": "Your daily search quota just grew."
    },
    "savedSearchMatch": {
      "title": "{{match_count}} new matches on your saved search",
      "body": "Your saved search \"{{search_label}}\" picked up {{match_count}} new candidate(s) in the last 24h."
    },
    "flowMatchFound": {
      "title": "{{match_count}} new candidates in your talent flow",
      "body": "Your flow \"{{flow_title}}\" picked up {{match_count}} new candidate(s) in the last 24h."
    },
    "flowSuggested": {
      "title": "{{count}} talent flow(s) proposed",
      "body": "Mia turned {{org_name}}'s profile into {{count}} proposed flow(s). Review and activate them when ready."
    },
    "flowRevisionSuggested": {
      "title": "A flow revision is ready",
      "body": "Mia tuned \"{{flow_title}}\" from your feedback. Review and apply."
    },
    "ampPostReady": {
      "title": "{{company_name}} has a post for you to share",
      "body": "\"{{post_title}}\" is ready. Copy the prepared text and post it, or skip it. Your call."
    },
    "ampPostAwaitingApproval": {
      "title": "A publication is waiting for you",
      "body": "Mia wrote “{{post_title}}” for your company. Review it and publish when you are happy with it."
    },
    "ampReachSummary": {
      "title": "Your publication is out",
      "body": "“{{post_title}}” went out to {{advocates}} people on your team and {{recruiters}} partner recruiters.",
      "digestTitle": "Your kits reached new people",
      "digestBody": "{{kits}} kit(s) went out to employees and partners who joined your network since the last dispatch."
    },
    "eventSponsorSuggestion": {
      "title": "Sponsorship opportunity: {{event_title}}",
      "body": "A workshop in {{city}} matches your hiring. Meet your future candidates in person."
    },
    "eventInvitation": {
      "title": "You're invited: {{event_title}}",
      "body": "A hands-on career workshop in {{event_city}}, and your profile matches exactly who it's for."
    },
    "ampNetworkInvite": {
      "title": "You're invited to amplify hiring",
      "body": "{{org_name}} invited you to their recruiter network. Share their roles with your audience and earn credits."
    },
    "ampNetworkPartnerAdded": {
      "title": "Mia added {{partner_name}} to your network",
      "body": "{{partner_name}} qualified as a recruiting partner and matched « {{flow_title}} », so I invited them to carry it."
    },
    "ampNetworkPartnerAvailable": {
      "title": "{{partner_name}} can carry {{flow_title}}",
      "body": "They qualified as a recruiting partner and match this role. You pick your own partners here, so nothing has gone out in your name."
    },
    "ampNetworkPartnerJoined": {
      "title": "{{partner_name}} joined your recruiter network",
      "body": "They accepted your invitation. Every kit you send from here reaches them too."
    },
    "networkRecruiterCrEarned": {
      "title": "You earned credits",
      "body": "You earned {{amount}} CR from your network activity. Spend it on candidate views."
    },
    "networkQualificationActive": {
      "title": "You're live in the recruiter network",
      "body": "Your qualification is active at {{tier}} tier, score {{score}}/100. Companies can now select you to amplify their roles."
    },
    "flowCandidateSubmitted": {
      "title": "A recruiter submitted a candidate",
      "body": "{{recruiter_name}} submitted a candidate to your flow \"{{flow_title}}\". Review them in the flow."
    },
    "missionAssigned": {
      "title": "New mission: {{company_name}}",
      "body": "{{company_name}} opened \"{{flow_title}}\" to you. Share it and earn on every candidate who joins."
    },
    "smartHrLicenceExpiring": {
      "title": "Smart HR renews in {{days_left}} days",
      "body": "{{price_eur}} will be debited from your wallet for {{org_name}}. If it's short, you get 48 hours before the page goes offline, and nothing is deleted."
    },
    "smartHrLicenceRenewed": {
      "title": "Smart HR renewed",
      "body": "{{price_eur}} debited for {{org_name}}. Your licence now runs until {{expires_at}}."
    },
    "smartHrLicenceLapsed": {
      "title": "Smart HR paused, nothing deleted",
      "body": "{{org_name}}'s page is offline and {{paused_flows}} flow(s) are paused. Pay {{price_eur}} and everything comes back on."
    },
    "smartHrFlowPaused": {
      "title": "“{{flow_title}}” has spent its budget",
      "body": "It spent its {{budget_eur}} and stopped delivering, so the links your partners shared no longer bring anyone to your page and you're not charged for them. Raise the budget and it picks up where it left off."
    },
    "ambassadorChildJoined": {
      "title": "A recruiter joined through your link",
      "body": "A new recruiter signed up with your ambassador link. You earn a share of what they make from network activity."
    },
    "profileViewed": {
      "title": "A recruiter viewed your profile",
      "body": "Someone's looking at your Mia synthesis right now."
    },
    "miaPreselectionReminder": {
      "title": "Still time to answer {{company_name}}",
      "body": "Your conversation about the {{role_title}} role is still open, and still optional."
    },
    "miaPreselectionReportReady": {
      "title": "A conversation report is ready",
      "body": "A candidate for {{role_title}} finished their conversation with Mia."
    },
    "miaPreselectionWithdrawn": {
      "title": "This conversation was closed",
      "body": "{{company_name}} is no longer running pre-selection for {{role_title}}. Nothing else changes for you."
    },
    "miaPreselectionInvited": {
      "title": "{{company_name}} would like to hear from you",
      "body": "Mia has a few questions about the {{role_title}} role, and it is entirely up to you."
    },
    "inviteReceived": {
      "title": "You've got an invitation",
      "body": "{{recruiter_name}} at {{company_name}} wants to connect."
    },
    "inviteAccepted": {
      "title": "Invitation accepted",
      "body": "{{candidate_name}} accepted your invitation."
    },
    "inviteDeclined": {
      "title": "Invitation declined",
      "body": "{{candidate_name}} declined your invitation."
    },
    "inviteExpired": {
      "title": "Invitation expired",
      "body": "Your invitation expired before a response came back."
    },
    "candidateRejected": {
      "title": "Update from a recruiter",
      "body": "A recruiter has decided not to move forward at this time."
    },
    "interviewScheduled": {
      "title": "Interview scheduled",
      "body": "A recruiter has scheduled an interview with you. Open your journey for the details."
    },
    "interviewStatusChanged": {
      "title": "Interview updated",
      "body": "The status of one of your interviews has changed."
    },
    "interviewRescheduled": {
      "title": "Interview rescheduled",
      "body": "Your interview time has been updated. Open your journey to see the new slot."
    },
    "interviewCancelled": {
      "title": "Interview cancelled",
      "body": "A scheduled interview has been cancelled."
    },
    "interviewCompleted": {
      "title": "Interview completed",
      "body": "Your interview is marked as completed."
    },
    "stageAdvanced": {
      "title": "You're being interviewed",
      "body": "The recruiter has advanced you to the interviewing stage."
    },
    "stageOfferExtended": {
      "title": "Offer extended",
      "body": "The recruiter has extended you an offer. Open your journey for the next steps."
    },
    "savedByRecruiter": {
      "title": "You've been shortlisted",
      "body": "A recruiter has saved you to their shortlist."
    },
    "stageHired": {
      "title": "You've been hired",
      "body": "Congratulations. The recruiter has closed the loop on your hire."
    },
    "candidateTestSectionCompleted": {
      "title": "Candidate completed a test section",
      "body": "A candidate you shortlisted finished the {{section_label}} test section. Their scores are updated."
    },
    "badgeEarned": {
      "title": "Badge Earned: {{badge_label}}",
      "body": "You unlocked the {{badge_label}} badge: {{badge_description}}"
    },
    "challengeGraded": {
      "title": "Challenge results are in",
      "body": "Your answer has been scored: {{score}}/100. Open the challenge to see Mia's feedback.",
      "bodyPerfected": "Perfect run, {{score}}/100! Open the challenge to see Mia's feedback.",
      "bodyFailed": "We couldn't finish scoring your answer. Nothing is lost, so open the challenge to try again."
    },
    "testReportReady": {
      "title": "Your test report is ready",
      "body": "Mia has written up how your test went. Open it to read your full report."
    },
    "testChallengesReady": {
      "title": "Your {{section_label}} test is ready",
      "body": "Mia has finished building your challenges. Open the section to start."
    },
    "missionStopped": {
      "title": "A role you're sharing has stopped",
      "body": "\"{{flow_title}}\" is no longer delivering, so the link you shared has stopped earning. Your own invite link still works."
    },
    "missionResumed": {
      "title": "A role you're sharing is running again",
      "body": "\"{{flow_title}}\" is delivering again, so the link you already shared is earning again. No need to repost."
    },
    "smartHrFlowUnfunded": {
      "title": "“{{flow_title}}” stopped, wallet empty",
      "body": "It delivered {{due_eur}} your wallet could not cover. Top up and it settles and starts again: the delivery is waiting, not lost."
    },
    "standingQueryInvalid": {
      "title": "A standing search can no longer match",
      "body": "“{{query_label}}” has nothing the matching can act on. Recreate it from a search to start receiving candidates again."
    },
    "testIntegrityActionApplied": {
      "title": "Your test score has been recalculated",
      "body": "Some of your {{section_label}} answers were set aside after an integrity review. Open Snypra to see your score, or reply if you think this is wrong."
    },
    "miaPreselectionNotRetained": {
      "title": "About your conversation for {{role_title}}",
      "body": "One of your answers does not meet a condition {{company_name}} set. See which one, and ask a person to review it if you think it is wrong."
    },
    "miaPreselectionReviewRequested": {
      "title": "A candidate asked for a review",
      "body": "A candidate Mia set aside on {{role_title}} asked for a person to look again. They are back among the candidates to review."
    },
    "findingsRecorded": {
      "title": "Mia recorded something new",
      "body": "Recruiters can read it on your profile. See what she recorded, and flag anything that is wrong."
    }
  },
  "candidateJourney": {
    "title": "My Journey",
    "subtitle": "Every recruiter who's actively engaging with you lives here.",
    "loading": "Loading your journey…",
    "backToList": "Back to My Journey",
    "recruiterLabel": "Recruiter pipeline",
    "acceptedOn": "Accepted on",
    "currentStage": "Current stage",
    "nextInterview": "Next interview:",
    "engagementHistory": "Engagement history",
    "interviews": "Interviews",
    "upcoming": "Upcoming",
    "past": "Past",
    "minutes": "min",
    "addToCalendar": "Add to calendar",
    "noInterviews": "No interviews scheduled yet.",
    "empty": {
      "title": "No active pipelines",
      "body": "Once a recruiter invites you and you accept, you'll see the hiring journey here."
    },
    "notFound": {
      "title": "Not available",
      "body": "This recruiter hasn't added you to their active pipeline, or the entry has been removed."
    },
    "status": {
      "scheduled": "Scheduled",
      "completed": "Completed",
      "cancelled": "Cancelled"
    },
    "website": "Website",
    "aboutCompany": "About the company",
    "recruiterContact": "Your recruiter",
    "email": "Email",
    "phone": "Phone"
  },
  "demo": {
    "banner": {
      "message": "You're browsing the Snypra demo. No backend, no real payments.",
      "cta": "Enter the demo →",
      "dismiss": "Dismiss"
    },
    "pill": {
      "label": "Demo mode",
      "explainer": "This build has no backend. State is per-browser and resets on demand.",
      "switchPersona": "Switch persona",
      "resetDemo": "Reset demo state"
    },
    "inactive": {
      "title": "Demo mode is not active on this build.",
      "hint": "This route is only meaningful when the app is served with --configuration demo.",
      "home": "Go home"
    },
    "picker": {
      "pill": "Demo mode · no backend",
      "heroTitle": "Choose a persona to enter the demo.",
      "heroSub": "Every persona is backed by in-memory fixtures: no Firestore, no LLM calls, no network activity after this page loads. State persists to your browser's localStorage; tap Reset demo any time to start over.",
      "continueCurrent": "Continue as current persona →",
      "sectionRecruiters": "Recruiters",
      "sectionTech": "Tech",
      "sectionOps": "Operations",
      "sectionCommercial": "Commercial",
      "sectionCreative": "Creative",
      "sectionBusiness": "Business support",
      "freshTitle": "Start fresh · synthesis demo",
      "freshHeadline": "Watch Mia build a profile in real time",
      "freshBlurb": "Pick an archetype and see the 3-step synthesis pipeline run end-to-end. Lands you on the candidate console as a brand-new persona.",
      "footerReset": "Reset demo state",
      "footerBackToLanding": "Back to landing"
    },
    "newCandidate": {
      "pill": "Demo · the synthesis magic moment",
      "heroTitle": "Pick an archetype to build a fresh profile.",
      "heroSub": "In the real product, Mia generates your synthesis from your CV and video upload. In demo mode, pick an archetype and watch a simulated synthesis run, with the same loading states and the same final view.",
      "backCta": "← Back to persona picker",
      "progressPill": "Synthesis · in progress",
      "progressTitle": "Building your Snypra profile…",
      "archetypeLabel": "Archetype:",
      "stepResumeLabel": "Parsing your CV",
      "stepResumeHint": "Extracting skills, experience, education",
      "stepTraitsLabel": "Extracting personality traits",
      "stepTraitsHint": "8 dimensions · video + resume signal",
      "stepNarrativeLabel": "Generating Mia's narrative",
      "stepNarrativeHint": "Synthesis · positioning · development plan",
      "doneMessage": "Profile ready. Taking you to your console…"
    },
    "stripeSuccess": {
      "demoTag": "demo · no payment taken",
      "confirmingTitle": "Confirming your purchase…",
      "confirmingSub": "Processing the fake transaction.",
      "completeTitle": "Payment successful",
      "backToCredits": "Back to credits",
      "backToWallet": "Back to wallet",
      "backToApp": "Back to app",
      "footnote": "In the live product this is a real Stripe Checkout session. In demo mode we just credit your in-memory ledger and send you back.",
      "errorTitle": "Couldn't complete the purchase",
      "errorSub": "Query string was malformed or the demo persona isn't set.",
      "errorBack": "Back to persona picker"
    }
  },
  "testYourSkills": {
    "errors": {
      "gradingUnavailable": "We couldn't grade your response just now. Please try again in a moment.",
      "resultUnavailable": "The result couldn't be loaded. Please try again.",
      "gradingEmptyResponse": "We couldn't hear an answer to grade. Check that your microphone is on, then record and submit again.",
      "gradingTimeout": "Grading is taking longer than expected. Please try submitting again.",
      "emptyAnswer": "Please provide an answer before submitting."
    },
    "nav": {
      "tests": "Tests",
      "rankings": "Rankings",
      "earnings": "Earnings"
    },
    "hero": {
      "title": "Your Skills, Verified",
      "subtitle": "Prove your abilities across 4 dimensions. Mia scores every challenge with detailed feedback. Build your overall score: the higher it climbs, the more you earn per profile view and invite.",
      "challengesDone": "done",
      "showAllBadges": "+{{count}} more",
      "inDemand": "In demand"
    },
    "gpsInfo": {
      "title": "How your GPS is built",
      "body": "Your overall score runs from 0 to 1000. It is a single number that combines all four tests, so no single challenge defines you.",
      "composition": "It is a weighted blend: Skills {{skills}}, Cognitive {{cognitive}}, Communication {{communication}}, Personality {{personality}}. Each test contributes up to 250 points, and completing all 40 challenges adds a completion boost.",
      "meaning": "A higher score reflects stronger, more consistent evidence across the four tests. Your score updates after every graded challenge.",
      "scale": "Every graded challenge nudges it up, and finishing all 40 adds a completion boost."
    },
    "howItWorks": {
      "takeTitle": "Take Challenges",
      "takeDesc": "10 per section, progressively harder, and free. Finishing a section earns {{cr}} credits, once, for coaching with Mia.",
      "scoreTitle": "Get Scored by Mia",
      "scoreDesc": "Mia grades every challenge with detailed feedback per dimension. Your GPS builds after every challenge.",
      "earnTitle": "Boost Your Value",
      "earnDesc": "Two things raise what you earn per view and per invite: the number of challenges you finish, and your score. Finishing weighs the heavier of the two, and neither can move you below the base rate."
    },
    "progress": {
      "globalScore": "Global Performance Score",
      "completed": "{{count}}/40 challenges completed",
      "overall": "Overall progress"
    },
    "generation": {
      "retry": "Retry generation",
      "building": "Building your test...",
      "failedCognitive": "Mia couldn't generate your cognitive challenges right now. Please try again.",
      "failedSkills": "Mia couldn't generate your skills challenges right now. Please try again.",
      "failedCommunication": "Mia couldn't generate your communication challenges right now. Please try again.",
      "failedPersonality": "Mia couldn't generate your personality challenges right now. Please try again.",
      "failedGeneric": "Mia couldn't generate your test right now. Please try again.",
      "stage": {
        "queued": "Getting your test ready",
        "readingProfile": "Reading your profile",
        "writingChallenges": "Writing your challenges",
        "checkingDifficulty": "Checking the difficulty",
        "finishing": "Almost there"
      },
      "etaMinutes": "About {{minutes}} min left",
      "etaSoon": "Any moment now",
      "leaveHint": "You can close this page. Mia will let you know the moment it is ready.",
      "stepOf": "Step {{index}} of {{total}}"
    },
    "intro": {
      "header": "About this section",
      "coverage": "Coverage",
      "progression": "Progression",
      "defaultCoverage": "10 challenges, increasing in difficulty",
      "defaultProgression": "Start with foundations, advance to mastery",
      "defaultClosing": "Take your time. There are no wrong answers, only your authentic perspective."
    },
    "sections": {
      "moreBadges": "+{{count}} more →",
      "gpsLabel": "GPS",
      "score": "score",
      "start": "Start",
      "continue": "Continue",
      "review": "Review",
      "close": "Close",
      "cta": "Start test",
      "cognitiveDesc": "Logic, patterns, numbers: measure your reasoning speed and accuracy",
      "skillsDesc": "Role-based challenges tailored to your profile and target career",
      "communicationDesc": "Record video responses and get feedback on what you say and how you structure it",
      "personalityDesc": "Self-reflection challenges that reveal your traits and work style",
      "methodology": {
        "trigger": "How it works",
        "scoringLabel": "Scoring",
        "robustnessLabel": "Why it's fair",
        "methodLabel": "How it's built",
        "validationLabel": "Validation",
        "cognitive": {
          "title": "How the Cognitive test works",
          "measures": "Ten timed items across six reasoning families: logic, patterns, spatial, numerical, verbal and data interpretation.",
          "method": "Items follow a fixed easy-to-expert ladder (SCAF), one reasoning family per slot, with deterministic complexity floors enforced at generation, so difficulty is structural rather than self-reported.",
          "scoring": "Each item sits on the fixed ladder with enforced complexity floors, so a challenge marked hard is genuinely hard.",
          "robustness": "The ladder and time limits are identical for every candidate, which makes scores directly comparable.",
          "validation": "Research-anchored design with mechanically enforced difficulty. Not yet independently validated against job performance."
        },
        "skills": {
          "title": "How the Skills test works",
          "measures": "Ten items calibrated to your field and seniority.",
          "method": "Items are tailored to your role. Multiple-choice answer keys are isolated from the question and shuffled per candidate.",
          "scoring": "Multiple-choice answers are graded on an exact match; open answers are assessed against a structured rubric.",
          "robustness": "Difficulty follows a fixed ladder per question rather than any self-report.",
          "validation": "Design-stage. Multiple-choice grading is deterministic; open answers use a structured rubric, not yet validated against human raters."
        },
        "communication": {
          "title": "How the Communication test works",
          "measures": "Short spoken-video prompts, graded on the words: clarity, structure and specifics.",
          "method": "Each prompt records for a fixed target duration, so samples are comparable across candidates.",
          "scoring": "Each recording runs its full target length, then is assessed on defined criteria.",
          "robustness": "The same prompts and durations apply to everyone, so there is no early-stop advantage.",
          "validation": "Design-stage. Assessed on defined criteria; not yet validated against trained human raters."
        },
        "personality": {
          "title": "How the Personality test works",
          "measures": "Scenario responses mapped to eight work-style dimensions.",
          "method": "Responses to work scenarios are mapped to the eight dimensions, with a structured check on depth.",
          "scoring": "Answers are assessed for depth against a defined ladder; generic answers score lower at the higher tiers.",
          "robustness": "Structured dimensions keep results consistent and easy to interpret.",
          "validation": "Design-stage self-report with a structured depth check. Not a clinical instrument."
        }
      },
      "challengeCount": "{{done}}/{{total}} challenges",
      "challengeTotal": "{{total}} challenges",
      "backToTests": "Back to tests",
      "earnOnce": "+{{cr}} CR when completed",
      "askMia": "Go over it with Mia"
    },
    "conditions": {
      "title": "Before you start",
      "timed": "This challenge is timed, so plan for about {{minutes}} of focused work. The clock starts when you press Start.",
      "untimed": "No hard time limit. Still, pick a quiet moment so you can finish in one sitting.",
      "uninterrupted": "Stay on this page: switching tabs or leaving mid-challenge is recorded and can consume your attempt.",
      "oneAttempt": "One attempt only. Once you start, leaving before submitting counts as a used challenge.",
      "grading": "Mia scores your answer right after you submit; your result and CR reward arrive within a minute.",
      "notNow": "Not now",
      "start": "Start challenge",
      "resume": "Resume challenge"
    },
    "challenge": {
      "agree": "Agree",
      "agreeStrongly": "Strongly Agree",
      "analyzing": "Mia is analyzing your response...",
      "analyzingHint": "This usually takes about 20 seconds for video challenges. You'll see your results automatically.",
      "available": "Start",
      "cancel": "Cancel",
      "closeResult": "Close",
      "codeSnippet": "Code to review",
      "completed": "Completed",
      "denominator": "Denominator",
      "disagree": "Disagree",
      "disagreeStrongly": "Strongly Disagree",
      "earnCr": "+{{amount}} CR",
      "enterNumber": "Enter a number",
      "evaluating": "Processing answer",
      "evaluatingHint": "Mia is scoring your answer. You can safely leave; we'll notify you the moment it's ready.",
      "expired": "Expired",
      "feedback": "Feedback",
      "inProgress": "In progress",
      "indexOfTen": "Challenge {{index}}/10",
      "loading": "Loading this challenge…",
      "locked": "Locked",
      "lockedTeaser": "Open it to see this challenge.",
      "maxScore": "Max Score",
      "neutral": "Neutral",
      "notFound": "Challenge not found",
      "numerator": "Numerator",
      "pasteDisabledHint": "Type your answer live. Pasting is disabled for this challenge.",
      "perfected": "Perfected",
      "rankItems": "Rank by dragging items",
      "referenceShape": "Reference shape",
      "result": "Your Result",
      "resume": "Resume challenge",
      "score": "Score",
      "selectChips": "Select all that apply",
      "selectOption": "Select an option",
      "speedBonusPoints": "+{{points}} pts toward your section score",
      "submit": "Submit",
      "submitting": "Submitting...",
      "timeTaken": "Answered in {{taken}}s of {{limit}}s",
      "timeUp": "Time's up. Submitting your current answer.",
      "typeHere": "Type your answer here...",
      "unlocking": "Opening…",
      "viewResult": "View result",
      "yourAnswer": "Your answer",
      "yourSelection": "Your selection",
      "open": "Open"
    },
    "dimensions": {
      "accuracy": "Accuracy",
      "speedBonus": "Speed Bonus",
      "completeness": "Completeness",
      "reasoning": "Reasoning",
      "domain_knowledge": "Domain Knowledge",
      "self_awareness": "Self Awareness",
      "depth_of_reflection": "Depth of Reflection",
      "authenticity": "Authenticity",
      "reasoning_quality": "Reasoning Quality",
      "clarity": "Clarity",
      "structure": "Structure",
      "empathy": "Empathy",
      "persuasion": "Persuasion",
      "listening": "Listening",
      "vocabulary": "Vocabulary",
      "fluency": "Fluency",
      "professionalism": "Professionalism",
      "diplomacy": "Diplomacy",
      "logic": "Logical Reasoning",
      "inspiration": "Inspiration",
      "decisiveness": "Decisiveness",
      "specificity": "Specificity",
      "constructiveness": "Constructiveness",
      "impact": "Impact",
      "assertiveness": "Assertiveness",
      "vision": "Vision",
      "adaptability": "Adaptability"
    },
    "communication": {
      "preparePrompt": "Read the prompt. Recording starts in...",
      "recordDuration": "Record up to {{ seconds }}s",
      "startNow": "Start Now",
      "retry": "Retry",
      "confirm": "Submit Recording",
      "uploading": "Uploading your video...",
      "readyToSubmit": "Recording complete. Ready to submit!",
      "strengths": "Strengths",
      "areasToImprove": "Areas to Improve",
      "yourRecording": "Your Recording",
      "videoUnavailable": "Video playback unavailable. The recording may have expired.",
      "previousRecordingAvailable": "Your previous recording is still available.",
      "recordAgain": "Record again",
      "retryGrading": "Retry grading",
      "instruction": {
        "tips": "Structure your answer in three parts: set the context, give your main response, then a brief reflection. Mia scores your words: speak clearly so each one is heard, give a concrete example, and keep it concise."
      }
    },
    "personality": {
      "traitAlignment": "Trait Alignment",
      "strengths": "Strengths",
      "areasToImprove": "Areas to Improve",
      "instruction": {
        "self_description": "Say how you would describe yourself professionally.",
        "values_ranking": "Drag to reorder items from most to least important to you.",
        "work_style": "Rate how much you agree with each statement.",
        "situational_judgment": "Choose how you would most likely respond.",
        "conflict_style": "Describe how you typically handle conflict, with a specific example: the situation, what you did, and what you took away from it.",
        "motivation": "Share what genuinely drives you, and ground it in a concrete example from your work rather than generalities.",
        "stress_response": "Describe how you manage pressure, with a real example: the situation, how you responded, and the result.",
        "team_role": "Explain the role you naturally take in a team, and illustrate it with a concrete example of how you show up.",
        "blind_spots": "Reflect honestly on an area you're working to improve: name it, give an example, and describe how you're addressing it.",
        "career_reflection": "Describe where you want to grow next and why it matters to you, with a concrete step you're already taking."
      }
    },
    "celebration": {
      "challengeComplete": "Challenge Complete!",
      "earnedLabel": "earned",
      "continueBtn": "Continue"
    },
    "families": {
      "engineering": "Engineering",
      "culinary": "Culinary",
      "marketing": "Marketing",
      "sales": "Sales",
      "product": "Product",
      "design": "Design",
      "data": "Data",
      "operations": "Operations",
      "finance": "Finance",
      "hr": "Human Resources",
      "legal": "Legal",
      "creative": "Creative",
      "other": "Other fields"
    },
    "rankings": {
      "awaitingCohort": "Awaiting a cohort",
      "betterThan": "You score higher than {{pct}} of candidates",
      "challengeCount": "{{count}}/40",
      "climbLeaderboard": "Each completed section boosts your global ranking.",
      "completeMore": "Complete more challenges to climb the leaderboard!",
      "computeHint": "Rankings are computed daily. Check back after you complete your first challenge.",
      "country": "Country",
      "nearbyLeaderboard": "Nearby Leaderboard",
      "noData": "Your ranking appears after your first graded challenge. Complete one to join the board.",
      "noNearbyPeers": "No peers around your position yet. Every graded challenge moves you up this list.",
      "notRankedYet": "Not ranked yet",
      "pageTitle": "Rankings",
      "pendingAll": "A ranking needs a group. These four ladders open as soon as enough other candidates have finished their tests. There is nothing for you to do.",
      "powerScore": "Overall score",
      "region": "Region",
      "regions": {
        "AF": "Africa",
        "APAC": "Asia-Pacific",
        "EU": "Europe",
        "LATAM": "Latin America",
        "ME": "Middle East",
        "NA": "North America"
      },
      "scaleNote": "Your Global Power Score runs 0 to 1000. The band you are in is highlighted.",
      "scaleTitle": "Where you sit on the scale",
      "scope": {
        "field": "Your field",
        "global": "Worldwide",
        "region": "Region",
        "country": "Country"
      },
      "tooFewTitle": "Not enough candidates yet",
      "topPercent": "Top {{pct}}",
      "worldwide": "Worldwide",
      "you": "You",
      "rankedAt": "Ranking as of {{date}}",
      "scoreMovedSince": "your score has changed since"
    },
    "earnings": {
      "tier": {
        "diamond": "Diamond",
        "platinum": "Platinum",
        "gold": "Gold",
        "silver": "Silver",
        "bronze": "Bronze",
        "newcomer": "Newcomer"
      },
      "heroTitle": "Your Earning Rates",
      "perView": "per profile view",
      "perInvite": "per accepted invite",
      "gpsLabel": "Overall score: {{gps}}",
      "percentile": "Top {{pct}}",
      "milestones": "Milestone Unlocks",
      "progress": "{{count}}/{{total}} challenges completed",
      "balance": "Current Balance",
      "badges": "Badges Earned",
      "balanceNote": "As you complete more challenges, your earning rate per view and invite increases, because recruiters pay a premium for verified candidates.",
      "noData": "No test data yet",
      "noDataHint": "Complete some challenges to unlock earning rate bonuses and see your impact here.",
      "startTesting": "Start Testing",
      "engagement": "Your Reach",
      "views": "Profile views",
      "shortlists": "Shortlists",
      "invitesLabel": "Invites",
      "engagementNote": "Recruiter activity from the last 30 days. More engagement means higher earning rates."
    },
    "badges": {
      "tier": {
        "bronze": "Bronze",
        "silver": "Silver",
        "gold": "Gold",
        "platinum": "Platinum",
        "special": "Special"
      },
      "sections": {
        "hidden": "Getting Started",
        "cognitive": "Cognitive",
        "skills": "Skills",
        "communication": "Communication",
        "personality": "Personality",
        "achievement": "Achievements",
        "crossSection": "All-Section",
        "final": "Legend",
        "engagement": "Engagement"
      },
      "labels": {
        "first_try": "First Try",
        "explorer": "Explorer",
        "dedicated": "Dedicated",
        "cognitive_bronze": "Cognitive Bronze",
        "cognitive_silver": "Cognitive Silver",
        "cognitive_gold": "Cognitive Gold",
        "cognitive_platinum": "Cognitive Platinum",
        "skills_bronze": "Skills Bronze",
        "skills_silver": "Skills Silver",
        "skills_gold": "Skills Gold",
        "skills_platinum": "Skills Platinum",
        "communication_bronze": "Comm Bronze",
        "communication_silver": "Comm Silver",
        "communication_gold": "Comm Gold",
        "communication_platinum": "Comm Platinum",
        "personality_bronze": "Personality Bronze",
        "personality_silver": "Personality Silver",
        "personality_gold": "Personality Gold",
        "personality_platinum": "Personality Platinum",
        "perfect_challenge": "Perfect Score",
        "speed_demon": "Speed Demon",
        "improver": "Improver",
        "all_bronze": "All-Section Bronze",
        "all_silver": "All-Section Silver",
        "all_gold": "All-Section Gold",
        "all_platinum": "All-Section Platinum",
        "persistent": "Persistent",
        "viewed_10": "In the Spotlight",
        "viewed_50": "Rising Star",
        "shortlisted_5": "On the Radar",
        "shortlisted_20": "Highly Watched",
        "invited_3": "In Demand",
        "invited_10": "Hot Property",
        "hot_1": "Ignited",
        "hot_3": "Inferno"
      },
      "descriptions": {
        "first_try": "Complete your very first challenge",
        "explorer": "Complete at least 1 challenge in all 4 sections",
        "dedicated": "Complete 20 or more challenges",
        "cognitive_bronze": "Complete 3 cognitive challenges",
        "cognitive_silver": "Complete 5 cognitive challenges",
        "cognitive_gold": "Complete 8 cognitive challenges",
        "cognitive_platinum": "Complete all 10 with avg score ≥ 90",
        "skills_bronze": "Complete 3 skills challenges",
        "skills_silver": "Complete 5 skills challenges",
        "skills_gold": "Complete 8 skills challenges",
        "skills_platinum": "Complete all 10 with avg score ≥ 90",
        "communication_bronze": "Complete 3 communication challenges",
        "communication_silver": "Complete 5 communication challenges",
        "communication_gold": "Complete 8 communication challenges",
        "communication_platinum": "Complete all 10 with avg score ≥ 90",
        "personality_bronze": "Complete 3 personality challenges",
        "personality_silver": "Complete 5 personality challenges",
        "personality_gold": "Complete 8 personality challenges",
        "personality_platinum": "Complete all 10 with avg score ≥ 90",
        "perfect_challenge": "Score 100 on any challenge",
        "speed_demon": "Complete a challenge in under 30 seconds",
        "improver": "Show improvement of 5+ points in any section",
        "all_bronze": "Reach Bronze in all 4 sections",
        "all_silver": "Reach Silver in all 4 sections",
        "all_gold": "Reach Gold in all 4 sections",
        "all_platinum": "Reach Platinum in all 4 sections",
        "persistent": "Complete all 40 challenges",
        "viewed_10": "Receive 10 profile views",
        "viewed_50": "Receive 50 profile views",
        "shortlisted_5": "Get shortlisted 5 times",
        "shortlisted_20": "Get shortlisted 20 times",
        "invited_3": "Have 3 invites accepted",
        "invited_10": "Have 10 invites accepted",
        "hot_1": "Reach 1 flame rating",
        "hot_3": "Reach 3 flames rating"
      },
      "lockedName": "Locked badge",
      "lockedTier": "Secret",
      "lockedHint": "Keep going to reveal this one."
    },
    "error": {
      "analysisTakingLonger": "Analysis is taking longer than expected. We will notify you when complete.",
      "analysisTimedOut": "Analysis timed out. Your response was submitted, so check back shortly.",
      "analysisCancelled": "Analysis cancelled. Your response was submitted, so check back shortly.",
      "failedToLoadChallenge": "This challenge couldn't be loaded. Head back to the section and try again.",
      "submissionFailed": "Your answer couldn't be sent. Check your connection and try again; nothing was lost.",
      "generationFailed": "Your challenges couldn't be built just now. Try again in a moment.",
      "failedToGenerate": "Failed to generate challenges",
      "generationFailedRetry": "Generation failed. Please retry.",
      "failedToLoadRankings": "Failed to load rankings",
      "uploadFailed": "Upload failed",
      "mustBeSignedIn": "You must be signed in to upload.",
      "validationTooShort": "Recording too short. Please record the full duration.",
      "validationTooLong": "Recording too long. Please stay within the time limit.",
      "validationTooLarge": "Video file too large. Maximum is 100 MB.",
      "validationInvalidType": "Unsupported video format. Please use WebM.",
      "validationGeneric": "Recording invalid. Please try again.",
      "tabSwitchDetected": "You left the test page. This has been recorded. Repeated incidents may affect your score.",
      "pasteDetected": "Copy-paste detected. This challenge has been flagged for review."
    },
    "warning": {
      "leaveWarning": "You are about to leave the test. Your session will be terminated and you may be penalized."
    },
    "abandon": {
      "title": "Leave this challenge?",
      "message": "If you leave now, this challenge counts as a wrong answer. You won't earn any credits and it can't be retried.",
      "confirm": "Leave and forfeit",
      "cancel": "Keep going"
    },
    "difficulty": {
      "easy": "Easy",
      "medium": "Medium",
      "medium_hard": "Medium-hard",
      "hard": "Hard",
      "expert": "Expert"
    },
    "challengeTypes": {
      "multiple_choice": "Multiple choice",
      "constructed": "Constructed response",
      "scenario": "Scenario",
      "code_review": "Code review",
      "problem_solving": "Problem solving",
      "architecture": "Architecture",
      "debug": "Debugging",
      "domain_deep_dive": "Domain deep-dive",
      "strategy": "Strategy",
      "self_description": "Self-description",
      "values_ranking": "Values ranking",
      "work_style": "Work style",
      "situational_judgment": "Situational judgment",
      "conflict_style": "Conflict style",
      "motivation": "Motivation",
      "stress_response": "Stress response",
      "team_role": "Team role",
      "blind_spots": "Blind spots",
      "career_reflection": "Career reflection",
      "self_introduction": "Self-introduction",
      "star_experience": "STAR experience",
      "persuasion": "Persuasion",
      "conflict_resolution": "Conflict resolution",
      "feedback_delivery": "Feedback delivery",
      "client_presentation": "Client presentation",
      "difficult_conversation": "Difficult conversation",
      "team_motivation": "Team motivation",
      "vision_casting": "Vision casting",
      "crisis_communication": "Crisis communication"
    },
    "skills": {
      "strengths": "Strengths",
      "areasToImprove": "Areas to Improve",
      "instruction": {
        "multiple_choice": "Select the best answer from the options below.",
        "scenario": "Structure your response in three parts: (1) how you read the situation, (2) the approach you'd take and its trade-offs, (3) the outcome or next steps you'd expect.",
        "code_review": "Point out each issue you find, explain why it's a problem, and propose a concrete fix. Cover correctness, readability and edge cases.",
        "problem_solving": "Show your reasoning step by step: restate the problem, work through your approach, then give your solution and how you'd verify it.",
        "architecture": "Describe your proposed design, justify the key decisions and their trade-offs, and note the main risks or alternatives you weighed.",
        "debug": "Identify the bug, explain the root cause, give the corrected code or fix, and say how you'd confirm it works.",
        "domain_deep_dive": "Answer with concrete depth: state your position, back it with specific examples or evidence, and address the nuances or exceptions.",
        "strategy": "Lay out your strategy in clear steps: the goal, your plan to reach it, the key trade-offs, and how you'd measure success."
      }
    },
    "cognitive": {
      "areasToImprove": "Areas to Improve",
      "instruction": {
        "mc_single": "Select the one correct answer from the options below.",
        "numeric": "Enter the exact number as your answer.",
        "fraction": "Provide the numerator and denominator separately.",
        "constructed": "Show your reasoning, not just the result: explain each step that leads to your answer, then state your conclusion clearly."
      },
      "logicGrid": {
        "instruction": "Use the clues to work out who has what. Tap a cell to cycle through the options.",
        "groupLabel": "Logic grid assignment table",
        "entityHeader": "Who",
        "cellLabel": "{{entity}} · {{category}}: {{value}}",
        "unassigned": "not set",
        "clear": "Clear"
      },
      "spatialGrid": {
        "instruction": "Tap the highlighted cell to cycle through the shapes and complete the pattern.",
        "groupLabel": "Pattern grid · fill the missing cells",
        "cellLabel": "Fill the missing cell at row {{row}}, column {{col}}",
        "clear": "Clear"
      },
      "strengths": "Strengths",
      "tier": {
        "E1": "Easy · tier E1",
        "E2": "Easy · tier E2",
        "H1": "Hard · tier H1",
        "H2": "Hard · tier H2",
        "H3": "Hard · tier H3",
        "H4": "Hard · tier H4",
        "M1": "Medium · tier M1",
        "M2": "Medium · tier M2",
        "M3": "Medium-hard · tier M3",
        "X1": "Expert · tier X1"
      },
      "tierWeight": "counts {{weight}}× toward your section score"
    }
  },
  "errors": {
    "generic": {
      "unknown": "Something went wrong. Please try again.",
      "unauthenticated": "Please sign in again to continue.",
      "permissionDenied": "You don't have access to this action.",
      "accountNotVerified": "Your account is pending verification.",
      "emailNotVerified": "Please verify your email before continuing. Check your inbox for the link."
    },
    "wallet": {
      "notFound": "We couldn't find your wallet. Refresh the page and try again.",
      "forbidden": "This wallet isn't yours to view.",
      "stripeSessionFailed": "We couldn't start the payment. Please try again in a moment.",
      "stripeUnavailable": "Wallet payments are temporarily unavailable. Please try again later.",
      "packRequired": "Please choose a top-up pack.",
      "packInvalid": "That top-up pack isn't available.",
      "packUnavailable": "Enterprise pricing is sales-led. Contact us to discuss.",
      "billingProfileIncomplete": "Complete your billing profile before topping up (company, VAT/SIRET and address).",
      "invalidTypeFilter": "Unknown transaction filter. Please refresh the page.",
      "insufficientBalance": "Insufficient wallet balance. Top up your wallet to continue."
    },
    "invite": {
      "idRequired": "Missing invite reference. Please refresh the page.",
      "notFound": "This invitation is no longer available.",
      "forbidden": "You can't act on this invitation.",
      "subjectRequired": "Please add a subject line before sending.",
      "draftedTextRequired": "Please write your invite message before sending.",
      "selfNotAllowed": "You can't send an invite to yourself.",
      "validationError": "Some of the invite details are invalid. Please review and try again.",
      "createFailed": "We couldn't send this invite right now. Please try again.",
      "insufficientBalance": "Insufficient wallet balance. Top up your wallet to continue.",
      "invalidDeclineReason": "Please pick a valid reason to decline.",
      "invalidDeclineText": "The decline note must be text.",
      "candidateIdRequired": "Missing candidate reference. Please refresh the page.",
      "candidateNoSynthesis": "Mia is still analyzing this candidate. Try again in a moment.",
      "recruiterProfileNotFound": "Complete your recruiter profile before sending invites.",
      "recruiterNameMissing": "Add your name to your profile before sending invites.",
      "recruiterCompanyMissing": "Add your company to your profile before sending invites.",
      "miaDraftFailed": "Mia couldn't draft this invite right now. Please try again.",
      "roleSignalRequired": "Tell Mia which role you are hiring for and she will draft the introduction.",
      "candidateUserNotFound": "This candidate's account is incomplete, so Mia cannot draft an introduction."
    },
    "search": {
      "queryRequired": "Please type what you're looking for.",
      "queryTooShort": "Tell Mia a little more: at least 3 characters.",
      "queryTooLong": "That's a lot. Keep your search under 500 characters.",
      "quotaExceeded": "You've reached your daily search limit. It resets tomorrow.",
      "walletEmpty": "Your wallet is empty. Top it up to search."
    },
    "credit": {
      "accountNotFound": "We couldn't find your credit account. Refresh the page and try again.",
      "packRequired": "Please choose a credit pack.",
      "packInvalid": "That credit pack isn't available.",
      "filterInvalid": "Unknown credit filter. Please refresh the page.",
      "insufficient": "You don't have enough credits for this. Top up to continue."
    },
    "earnings": {
      "forbidden": "These earnings aren't yours to view."
    },
    "referral": {
      "disabled": "Invite & Earn isn't available right now.",
      "selfInvite": "You can't invite your own address.",
      "capReached": "You've reached your invite limit.",
      "emailRequired": "Enter a valid email address."
    },
    "salary": {
      "versionIdRequired": "Missing synthesis reference. Refresh and try again.",
      "miaFailed": "Mia couldn't generate your benchmark right now. Your credits are held, so try again and we'll finish without charging you twice.",
      "currencyInvalid": "Pick a supported currency (EUR, USD, or GBP).",
      "amountInvalid": "Please enter a whole number.",
      "amountOutOfRange": "That amount looks off. Please check the value.",
      "amountOrderInvalid": "Your ranges should read seeking ≤ ideal ≤ maximum.",
      "synthesisVersionNotFound": "We can't find that version of your profile. Refresh the page and try again."
    },
    "pipeline": {
      "notFound": "This candidate isn't in your pipeline.",
      "forbidden": "You don't have access to this pipeline record.",
      "stageUnknown": "Unknown stage. Please refresh the page.",
      "stageUnchanged": "This candidate is already at that stage.",
      "stageInvalidTransition": "You can't move this candidate straight to that stage.",
      "notesInvalid": "Your note must be text. Please try again."
    },
    "interview": {
      "notFound": "We couldn't find that interview. Refresh the page and try again.",
      "argsRequired": "Missing interview reference. Please refresh the page.",
      "scheduledAtInvalid": "The interview date and time are invalid.",
      "durationInvalid": "Please enter the interview length in minutes.",
      "patchInvalid": "Those interview changes are invalid. Please review and try again.",
      "validationError": "Some interview details are invalid. Please review and try again.",
      "invalidStatusTransition": "You can't change the interview to that status."
    },
    "settings": {
      "photoTooLarge": "Photo must be under 5MB.",
      "photoUploadFailed": "We couldn't upload your photo. Please try again.",
      "updateFailed": "We couldn't save that change. Please try again.",
      "deletionFailed": "Failed to request account deletion. Please try again.",
      "deletionRateLimited": "Account deletion can only be requested once every 30 days. Please try again later.",
      "cancelDeletionFailed": "Failed to cancel deletion. Please try again."
    },
    "unlock": {
      "inviteRequired": "Send an invite and get it accepted before unlocking the full profile.",
      "profileUpdating": "This profile is being updated. Nothing was charged; it will be available again after the candidate's next visit."
    },
    "testAnalysis": {
      "suiteIncomplete": "This candidate has not done enough of the test suite yet. The cross-test analysis needs every section started, and enough challenges overall.",
      "generationFailed": "Mia could not write this analysis right now. You have not been charged. Please try again in a moment.",
      "aiUnavailable": "Mia is unavailable right now. Nothing has been charged. Please try again shortly.",
      "requestInviteRequired": "You can only ask a candidate who has accepted your invitation.",
      "alreadyAvailable": "This candidate has done enough of the suite. The analysis can be purchased now.",
      "requestAlreadySent": "You have already asked this candidate recently. You can ask again in a few days."
    },
    "testChallenge": {
      "notFound": "This challenge could not be found. Please refresh and try again.",
      "alreadyCompleted": "You've already completed this challenge.",
      "notPlayable": "This challenge isn't available to answer right now.",
      "prerequisiteNotMet": "Complete the previous challenge before starting this one.",
      "crSpendFailed": "We couldn't process the credits for this challenge. Please try again.",
      "generationFailed": "We couldn't prepare your challenges just now. Please try again in a moment.",
      "excessivePaste": "A lot of pasting was detected. Your response was submitted and flagged for review.",
      "evaluating": "This answer is still being scored. We'll notify you the moment it's done.",
      "invalidAnswerOption": "That answer isn't one of the offered options. Please pick one of the choices shown.",
      "contentMissing": "This challenge couldn't be loaded. No credits were spent, so please try again later."
    },
    "workPrefs": {
      "invalid": "We couldn't read those preferences. Please try again.",
      "invalidValue": "One of those choices isn't one we recognise. Reload the page and try again.",
      "unknownField": "Your browser sent something we don't recognise. Reload the page and try again."
    }
  },
  "candidateEvents": {
    "title": "Event invitations",
    "subtitle": "In-person workshops we've matched to your profile. Free to attend.",
    "loading": "Loading…",
    "empty": "No event invitations yet. We'll let you know when a workshop near you fits your profile.",
    "formats": {
      "first_step": "First Step",
      "discovery": "Discovery",
      "career_boost": "Career Boost"
    },
    "attend": "I'll attend",
    "decline": "Can't make it",
    "going": "You're attending",
    "notGoing": "You said you can't make it",
    "changeToNo": "Change to can't make it",
    "changeToYes": "Change to attending",
    "rsvpLabel": "Respond to this invitation",
    "errors": {
      "closed": "This event is no longer taking responses.",
      "notFound": "This invitation is no longer available.",
      "disabled": "Events aren't available yet.",
      "generic": "Something went wrong. Try again in a moment."
    }
  },
  "recruiterCredits": {
    "loading": "Loading…",
    "disabled": "The recruiter network isn't available yet.",
    "balanceLabel": "Your credits",
    "crUnit": "CR",
    "eurEquivalent": "≈ {{eur}} of platform credit",
    "howTitle": "How credits work",
    "howBody": "Earn CR by amplifying company flows and sourcing candidates. Credits offset your own platform charges, such as profile views and invites, at {{rate}} per CR.",
    "ladder": {
      "visit": "A real person opens your mission link",
      "signup": "That person creates a Snypra account",
      "candidate": "Mia places them in the role you shared"
    },
    "closedLoopNote": "Credits are earned, never bought, and today they can't be withdrawn as cash. They only reduce what you pay to use Snypra.",
    "historyTitle": "Activity",
    "emptyHistory": "No credits yet. Join the recruiter network to start earning.",
    "withdrawal": {
      "soon": "Withdrawal coming soon (beta)",
      "today": "Today your credits reduce what you pay to use Snypra, at {{rate}} per CR."
    },
    "txTypes": {
      "flowReach": "Flow delivery",
      "sourcedEarningCommission": "Sourcing commission",
      "networkCommissionL1": "Network commission (level 1)",
      "networkCommissionL2": "Network commission (level 2)",
      "redeemView": "Credits redeemed on a profile view",
      "unknown": "Transaction"
    }
  },
  "recruiterNetwork": {
    "sourcing": {
      "title": "Source candidates by email",
      "hintScoped": "They arrive on this role through your mission link, so they count on this mission: the same link, a different route. Mia does the placing.",
      "hintGeneric": "Invite anyone to Snypra by email. They join through your personal link and stay credited to you, whatever role they end up in.",
      "emailPlaceholder": "name@email.com",
      "add": "Add",
      "pasteToggle": "Paste a list",
      "oneByOne": "Add one at a time",
      "listPlaceholder": "Paste emails, one per line or comma-separated",
      "addList": "Add all",
      "invalid": "invalid",
      "remove": "Remove",
      "someInvalid": "Invalid addresses won't be sent.",
      "send": "Send ({{count}})",
      "sending": "Sending…",
      "clear": "Clear",
      "disabled": "Sourcing isn't available yet.",
      "outcomeTitle": "Results",
      "dailyLeft": "{{n}} sourcing invites left today.",
      "tableTitle": "Who you've sourced",
      "resend": "Resend",
      "resending": "Resending…",
      "outcome": {
        "sent": "Sent",
        "resent": "Re-sent",
        "already_invited": "Already contacted. Wait before resending",
        "already_member": "Already on Snypra. Submit them instead",
        "existing_user": "Already on Snypra. Submit them instead",
        "self": "That's your own address",
        "capped": "Daily limit reached",
        "invalid_email": "Not a valid address"
      },
      "status": {
        "sent": "Contacted",
        "joined": "Joined",
        "in_flow": "In flow"
      },
      "resume": {
        "drop": "Drop a CV to pull the email",
        "reading": "Reading the CV…",
        "privacy": "We read only the email and name, then delete the file. Nothing is stored.",
        "found": "Found an email. Check it below before sending.",
        "foundNamed": "Found {{name}}. Check the address below before sending.",
        "noEmail": "No email found in that CV. Add it by hand.",
        "failed": "Couldn't read that CV. Try another file.",
        "tooLarge": "That file is too large (max 10MB).",
        "invalidType": "Upload a PDF or Word document."
      },
      "titleScoped": "Source people for this role"
    },
    "title": "Recruiter network",
    "subtitle": "As an independent recruiter, amplify companies' hiring to your audience and earn credits.",
    "info": {
      "crValue": "{{cr}} CR",
      "ladder": {
        "visit": "A real person opens your link",
        "signup": "They create a Snypra account",
        "candidate": "Mia places them in the role"
      }
    },
    "integrity": {
      "title": "Your links are measured",
      "summary": "Every visit on your links is measured, and only real ones are paid.",
      "detail": {
        "bots": "Bots and your own views never count. Previews of your own kit and any automated agent are recognised and excluded: they cost the company nothing and pay you nothing.",
        "unique": "We count unique visitors, not clicks. The same person reloading your link stays one visitor.",
        "deferred": "Unusual bursts are held, never deleted. Above a daily ceiling an event stays yours and settles on a later pass. The ceiling rises on its own once your links convert, so bringing real people lifts it.",
        "suspension": "Repeated anomalies end the membership. Traffic that converts nobody stops the meter on both sides, and a suspended membership stops earning immediately."
      },
      "scoreLine": "Your amplification score is built from the people you actually brought: sign-ups through your own mission links, candidates accepted, hires. Inflated traffic converts nobody, so it lowers your score rather than raising it."
    },
    "qualification": {
      "notEligible": "The network is for agency and independent recruiters. Your account hires for your own company.",
      "industriesLabel": "Sectors you cover (up to {{max}})",
      "countriesLabel": "Where you recruit",
      "channelsLabel": "Where you share",
      "reachHint": "Your own estimate, until we verify it. It counts for little in the score; your actual results on Snypra count for much more.",
      "linkedinHint": "Connecting puts your real name and photo on your card, and is what lets us post for you.",
      "linkedinConnected": "Connected. Your identity is verified.",
      "linkedinConnect": "Connect",
      "linkedinSoon": "LinkedIn connection is coming soon.",
      "terms": "I accept the network terms: I share roles honestly, I don't misrepresent the companies I amplify, and I understand credits are spent on Snypra, and that paying a balance out to a bank account is not open yet.",
      "submit": "Join the network",
      "submitting": "Joining…",
      "edit": "Update your coverage",
      "scoreOf": "Amplification score {{score}}/100",
      "tiers": {
        "bronze": "Bronze",
        "silver": "Silver",
        "gold": "Gold",
        "platinum": "Platinum"
      },
      "breakdown": {
        "platform": "Results on Snypra",
        "industry_relevance": "Industry relevance",
        "geo_relevance": "Geographic relevance",
        "historical": "Conversions you drove",
        "social_verified": "Verified social account",
        "declared_reach": "Audience size (declared)"
      },
      "industries": {
        "tech": "Tech",
        "finance": "Finance",
        "healthcare": "Healthcare",
        "retail": "Retail",
        "manufacturing": "Manufacturing",
        "logistics": "Logistics",
        "hospitality": "Hospitality",
        "construction": "Construction",
        "education": "Education",
        "public_sector": "Public sector",
        "energy": "Energy",
        "media": "Media",
        "legal": "Legal",
        "consulting": "Consulting",
        "real_estate": "Real estate",
        "nonprofit": "Nonprofit"
      },
      "postingMode": {
        "label": "How you share",
        "manual": "I review each post before sharing",
        "auto": "Do it for me",
        "autoNeedsConnection": "Connect an account first to share automatically.",
        "manualDetail": "You accept each company invitation yourself, and nothing is posted to your accounts.",
        "autoDetail": "We accept company invitations for you and post to LinkedIn on your behalf, at most {{n}} a day. X, Instagram and Facebook stay manual: only LinkedIn lets us post for you."
      },
      "breakdownHint": "Industry and geography are scored against the roles companies have open right now, so your score moves as the market does.",
      "profileLegend": "Your profile",
      "profileHint": "This is what a company reads on your card. You write it, so it is shown as declared, and none of it affects your score.",
      "declaredBadge": "Declared",
      "headlineLabel": "Headline",
      "headlinePlaceholder": "e.g. Independent tech recruiter, Paris",
      "currentPositionLabel": "Current position",
      "currentPositionPlaceholder": "e.g. Founder, Northlight Talent",
      "summaryLabel": "About you",
      "breakdownTitle": "How your score is built",
      "breakdownTotal": "Total {{score}} / {{max}}",
      "demandUnavailable": "No company has a role open right now, so there is nothing for the two relevance bands to match against. They are not counting against you.",
      "bandHow": {
        "platform": "Shares, accepted candidates and hires you delivered here",
        "historical": "People who signed up through your own mission links",
        "industry_relevance": "How well your sectors match the roles open right now",
        "geo_relevance": "How well your countries match the roles open right now",
        "social_verified": "Connect LinkedIn so your account is verified, not just declared",
        "declared_reach": "Your own estimate, deliberately small because you wrote it"
      },
      "bandDark": {
        "industry_relevance": "No company has a sector open right now, so there is nothing to match against",
        "geo_relevance": "No open role names a country right now, so there is nothing to match against"
      },
      "connect": {
        "connected": "LinkedIn connected.",
        "denied": "You declined the LinkedIn authorisation. Nothing was connected, and nothing you had typed was lost.",
        "expired": "That LinkedIn link expired before it could be used. Try connecting again.",
        "error": "We could not complete the LinkedIn connection. Nothing you had typed was lost, so you can try again.",
        "restored": "We kept everything you had filled in."
      },
      "channelsHint": "Pick the platforms you share on, and tell us where to find you on each. The link is what a company looks at, and what we check your audience against.",
      "channelUrlLabel": "Your page",
      "channelReachLabel": "Followers there",
      "channelUrlPlaceholder": {
        "linkedin": "https://www.linkedin.com/in/…",
        "x": "https://x.com/…",
        "instagram": "https://www.instagram.com/…",
        "facebook": "https://www.facebook.com/…"
      },
      "verify": {
        "requested": "Verification requested. We will look at the pages above.",
        "verified": "Audience verified by Snypra.",
        "pending": "Someone at Snypra will open the pages above and record what you really reach. Until then this stays your own estimate."
      },
      "joinTitle": "Join the recruiter network",
      "coverageTitle": "Your coverage",
      "coverageIntro": "The sectors and countries you really cover. Companies search on them, and they carry two of the six parts of your score.",
      "coverageScoreLink": "See what this moves in your score",
      "settingsTitle": "Network settings",
      "rulesTitle": "The rules you agreed to",
      "step": {
        "you": "You",
        "coverage": "Coverage",
        "sharing": "Where you share",
        "consent": "How you share"
      },
      "stepPosition": "Step {{n}} of {{total}}",
      "previous": "Back",
      "next": "Continue",
      "needSector": "Pick at least one sector to continue.",
      "needTerms": "Accept the network terms to join.",
      "you": {
        "lead": "What a company reads on your card. None of it is scored, so writing more here cannot move your ranking.",
        "knownTitle": "We already have"
      },
      "coverage": {
        "lead": "The sectors and countries you really cover. This is what companies search on when they look for a partner."
      },
      "sharing": {
        "lead": "Add the accounts you actually post from. A company looks at these pages, and so do we when we check your audience."
      },
      "summaryPlaceholder": "ex. Fifteen years placing backend engineers in Brussels and Lille. I know the market and the people in it.",
      "industriesPicked": "{{n}} of {{max}} chosen",
      "channelsEmpty": "No account yet. Add the ones you post from, so a company can look and so your audience can be checked.",
      "channelAdd": "Add a network",
      "channelRemove": "Remove {{channel}}",
      "reachTotalLabel": "Audience you have declared",
      "linkedinConnecting": "Opening LinkedIn…",
      "linkedinDisconnect": "Disconnect LinkedIn",
      "linkedinDisconnectConfirm": "Disconnecting takes 5 points off your score and puts you back on manual posting. Your missions, your links and your credits are untouched, and you can reconnect whenever you like.",
      "linkedinDisconnectDo": "Disconnect",
      "audienceVerified": "Audience verified",
      "scoreOpen": "See how your amplification score is built",
      "bandFull": "Full",
      "bandDone": {
        "platform": "You have produced everything this part can count.",
        "historical": "You have produced everything this part can count.",
        "industry_relevance": "Your sectors match what is open right now.",
        "geo_relevance": "Your countries match what is open right now.",
        "social_verified": "Your LinkedIn account is connected, so your identity is verified rather than declared.",
        "declared_reach": "Your audience is large enough to fill this part."
      },
      "leave": "Leave the network",
      "leaveConfirm": "You stop receiving missions and your links stop earning. Nothing is deleted: the credits you earned stay yours, what you declared is kept, and coming back is the same one click that joining was.",
      "leaveDo": "Leave the network"
    },
    "loading": "Loading…",
    "loadingSlow": "First open of the day, so waking the service can take a few seconds.",
    "disabled": "The recruiter network isn't available yet.",
    "invitesTitle": "Invitations",
    "accept": "Accept",
    "decline": "Decline",
    "missionsTitle": "Your missions",
    "missionsHint": "One mission per open role. You bring people to it, through your channels or your own address book. Mia decides who fits.",
    "settling": "Your first deliveries are settling: visits within the hour, sign-ups and candidates after 48 hours.",
    "payTitle": "How you are paid",
    "linkNote": "The same link every time, so everything you share on this channel keeps counting together.",
    "mode": {
      "auto": "Automatic. Snypra publishes this for you on LinkedIn, and every other channel is yours to share by hand.",
      "manual": "Manual. You publish, we count. Pick a channel and the link is minted for it.",
      "published": "Already published on your LinkedIn. The other networks are still yours to post, and the link below counts them all together."
    },
    "noMissions": "No missions yet. Accept a company's invitation and you'll get one for every role they open.",
    "channels": {
      "linkedin": "LinkedIn",
      "x": "X",
      "instagram": "Instagram",
      "facebook": "Facebook"
    },
    "copied": "Copied ✓",
    "joinPost": {
      "title": "Grow the network",
      "hint": "You're in. Invite other recruiters with your link and you earn a share of what they make.",
      "copy": "Copy post",
      "markShared": "I shared it",
      "dismiss": "Not now",
      "published": "Shared. Thanks for growing the network.",
      "viewOnLinkedIn": "View the post on LinkedIn",
      "failed": "LinkedIn refused this post, so nothing was published. Share it yourself below; the link still works."
    },
    "kpi": {
      "shares": {
        "one": "{{n}} share",
        "other": "{{n}} shares"
      },
      "clicks": {
        "one": "{{n}} unique visit",
        "other": "{{n}} unique visits"
      },
      "signups": {
        "one": "{{n}} sign-up",
        "other": "{{n}} sign-ups"
      },
      "joined": {
        "one": "{{n}} joined",
        "other": "{{n}} joined"
      },
      "earned": "CR",
      "whileStopped": {
        "one": "{{n}} while paused",
        "other": "{{n}} while paused"
      },
      "missionsLabel": "Missions",
      "clicksLabel": "Unique visits",
      "signupsLabel": "Sign-ups",
      "joinedLabel": "Joined",
      "whileStoppedLabel": "While paused"
    },
    "posts": {
      "title": "What the company published",
      "autoPublished": "Posted for you",
      "available": "Ready to share",
      "heldBack": "Held back, {{n}} a day",
      "view": "See the post"
    },
    "errors": {
      "generic": "Something went wrong. Try again in a moment.",
      "shareKit": "Couldn't prepare the share. Try again."
    },
    "sourcingLink": {
      "title": "Your personal sourcing link",
      "hint": "Share this anywhere. Candidates who join through it are credited to you, and you earn a share of what they go on to make.",
      "copy": "Copy link"
    },
    "earnings": {
      "cr": "{{cr}} CR",
      "types": {
        "flow_reach": "Missions",
        "commission": "Earnings commission",
        "network_commission": "Your network's activity"
      }
    },
    "ambassador": {
      "title": "Activity sponsorship",
      "hint": "Invite recruiters you rate. When they earn credits through network activity, Snypra pays you a share on top; it never comes out of their credits.",
      "copy": "Copy link",
      "direct": "Direct",
      "indirect": "Indirect",
      "earned": "Paid to you",
      "topTitle": "Top of your network",
      "memberFallback": "Referred recruiter",
      "paidYou": "{{cr}} CR to you",
      "empty": "Nobody has joined through your link yet.",
      "rates": "{{l1}} of a direct recruiter's activity credits, {{l2}} for an indirect one, for {{months}} months from the day they join. Two levels only, never more. You earn when they earn: there is no bounty for the sign-up itself.",
      "unavailable": "Sponsorship isn't available on your account yet.",
      "emptyCta": "Copy your link",
      "share": {
        "label": "Send it",
        "whatsapp": "WhatsApp",
        "email": "Email",
        "text": "I am part of Snypra's independent recruiter network. Companies open their roles to us and we get paid for the people we actually bring. Worth a look if you recruit.",
        "subject": "The Snypra recruiter network"
      }
    },
    "buckets": {
      "missions": "Missions",
      "sourcing": "Candidates",
      "parrainage": "Sponsorship"
    },
    "totalLabel": "Credits earned",
    "discover": {
      "eyebrow": "Independent recruiters",
      "statementLead": "Companies open their roles to the network. You bring",
      "statementAccent": "the people you already know.",
      "lead": "Snypra connects independent recruiters and agencies with companies hiring here. You pick what you take on, and nothing is assigned to you. Credits you earn are spent on Snypra, on profile views and invitations. Paying a balance out to a bank account is not open yet.",
      "waysTitle": "Three ways it pays",
      "missions": {
        "name": "Missions",
        "who": "A company's brief",
        "body": "A company opens a role to the network and you share it with your audience. You're paid at each step the person you sent actually reaches.",
        "crWorth": "1 CR is worth {{value}} against what you spend on Snypra."
      },
      "sourcing": {
        "name": "Sourcing",
        "who": "Your own book",
        "onFlow": "You source them onto an open role",
        "onInvite": "You invite them with your personal link",
        "note": "Of what the candidate earns here, for {{months}} months. Paid by Snypra, never taken from them.",
        "body": "Invite candidates you already know, or put one forward for an open role. You earn when they are viewed and when they advance, plus a share of what they earn here."
      },
      "parrainage": {
        "name": "Sponsorship",
        "who": "Another recruiter's work",
        "direct": "The recruiter you bring in",
        "indirect": "The recruiters they bring in",
        "note": "Of what they earn here, for {{months}} months. Paid by Snypra, and they keep everything.",
        "body": "Bring another recruiter into the network and you earn a share of what their work pays them, and a smaller share from the recruiters they bring. They always keep their full amount, because the share comes from Snypra rather than from them. You earn when they earn: there is no bounty for the sign-up itself."
      },
      "joinTitle": "Joining",
      "facts": {
        "instantTerm": "You're in right away",
        "instantBody": "No review, no waiting list. Fill this in and you're a member.",
        "declareTerm": "You declare your coverage",
        "declareBody": "The sectors, countries and channels you actually work. Companies use it to find you.",
        "creditsTerm": "Credits, not cash",
        "creditsBody": "What you earn is spent on Snypra, on viewing profiles and sending invitations."
      },
      "cta": "Join the network",
      "ctaReturning": "Rejoin the network",
      "ctaNote": "Takes a minute. You can leave whenever you want.",
      "invited": {
        "one": "{{n}} company has invited you to amplify their hiring. Join the network to accept.",
        "other": "{{n}} companies have invited you to amplify their hiring. Join the network to accept."
      }
    },
    "suspended": {
      "title": "Your network access is on hold",
      "body": "We've paused your membership while we look into your account. Nothing you've earned has been touched, and your credits are still yours to spend. Get in touch and we'll walk you through it.",
      "contact": "Contact us"
    },
    "sourcingEarnings": {
      "title": "Sourcing earnings",
      "empty": "Nothing yet. You earn here once a candidate you brought starts earning on Snypra.",
      "hint": "{{onFlow}} of what a candidate earns here when you source them onto an open role, {{onInvite}} when they arrive through your personal link, for {{months}} months. Paid by Snypra, never taken from them."
    },
    "activity": {
      "amplify": {
        "title": "Amplify this role",
        "status": {
          "idle": "Not started",
          "kit_opened": "Caption taken",
          "shared": "Posted",
          "earning": "Earning"
        },
        "settling": "Visits settle within the hour, the other two after 48 hours. A role that is paused or out of budget stops sending people to the company page and those visits pay nothing, but everything delivered while it was running stays paid."
      }
    },
    "invitesHint": "A company has asked you to amplify for them. Here is who they are.",
    "orgInvite": {
      "openRoles": "{{n}} open roles",
      "viewCompany": "See their page",
      "autoAccepted": "You share automatically, so we accept company invitations for you. They arrive below as missions, already open."
    },
    "autoPublish": {
      "pending": "You share automatically: we post this to your LinkedIn for you. The other networks stay yours to post.",
      "done": "Posted to your LinkedIn for you. The other networks are still yours to post.",
      "failed": "We could not post this to your LinkedIn, and we will try again. The kit below is yours to share now if you prefer."
    },
    "delivery": {
      "chip": {
        "paused": "On hold",
        "ended": "Closed"
      },
      "reason": {
        "paused_by_company": "{{company}} put this role on hold, so the link you shared no longer sends anyone to their page and they are not charged for it.",
        "budget_exhausted": "{{company}} has spent this role's delivery budget, so the link you shared has stopped sending people to their page until they raise it.",
        "insufficient_funds": "{{company}}'s wallet ran dry, so this role stopped delivering until they top it up.",
        "licence_lapsed": "{{company}}'s Smart HR licence lapsed, so all of their roles stopped and their company page went offline.",
        "archived": "{{company}} closed this role for good. Nothing you delivered is lost: it has all been counted and paid.",
        "amplification_closed": "{{company}} closed this role to partners, so the link you shared no longer sends anyone to their page.",
        "no_budget": "This role has no delivery budget, so it is not sending anyone anywhere yet.",
        "not_launched": "This role has not launched yet.",
        "paused": "This role stopped delivering.",
        "ended": "This role is closed."
      },
      "stillYours": "Your post keeps working for you: anyone who signs up through it is still yours, and still earns you a share of what they make on Snypra."
    },
    "noMissionsCta": "Widen your coverage"
  },
  "brandKit": {
    "channelLabel": "Choose a channel",
    "copied": "Copied",
    "compose": "Open the composer",
    "prepare": "Prepare my kit",
    "preparing": "Preparing…",
    "prepareHint": "Your tracked link is created the first time you open a channel and stays the same afterwards, so everything you share on it keeps counting together.",
    "caption": {
      "title": "Ready-to-post caption",
      "copy": "Copy the caption"
    },
    "link": {
      "title": "Your tracked link",
      "hint": "Already inside the caption. The QR code and the visual card carry this exact link, so a scan and a click count as the same share.",
      "copy": "Copy the link"
    },
    "qr": {
      "title": "QR code",
      "alt": "QR code opening the tracked link for this role",
      "hint": "For a poster, a slide or a badge.",
      "download": "Download the QR (PNG)"
    },
    "card": {
      "title": "Visual card",
      "alt": "Shareable card showing the role, the company and the QR code",
      "hint": "1200×630, sized for a post, a story or a screen.",
      "download": "Download the card (PNG)",
      "rendering": "Painting your card…",
      "unavailable": "The card cannot be generated in this browser. The caption, the link and the QR code all still work.",
      "eyebrow": "We're hiring",
      "scanHint": "Scan to discover the company"
    },
    "alreadyPublished": "Already published",
    "alreadyPublishedNote": "This post is already on this network. You can still prepare the kit and post again by hand; it is the same link either way."
  },
  "trackingTiles": {
    "reach": "People reached",
    "clicks": "Clicks",
    "signups": "Sign-ups",
    "candidates": "Candidates",
    "reachHint": "Reach counts each visitor once. Clicks counts every visit, including repeats.",
    "empty": "No visits yet. Numbers appear here within minutes of the first click on a shared link.",
    "truncated": "Partial count: there are more links here than we total in one pass."
  },
  "shared": {
    "faqAsk": {
      "lede": "If what you need to know is not here, write to us. We answer in your own language.",
      "link": "Talk to us"
    },
    "identity": {
      "maskedName": "Candidate #{{id}}",
      "revealedOnInvite": "Identity revealed on invitation"
    },
    "matchScore": {
      "label": "Match",
      "adjacent": "Adjacent",
      "incompleteData": "Partial data",
      "incompleteDataBody": "Some of what this query asks about is not on this candidate's profile yet, so those dimensions count as neutral in the score:",
      "gap": {
        "seniority": "Seniority",
        "experience": "Years of experience",
        "location": "Location",
        "traits": "Personality profile"
      }
    },
    "workPrefs": {
      "title": "What they are looking for",
      "subtitle": "Stated by the candidate. Nothing here filters your search; it is here so you know before you spend.",
      "notStated": "This candidate has not stated what they are looking for.",
      "notStatedShort": "Preferences not stated",
      "inferred": "Read from their CV, not stated by them",
      "inferredShort": "from CV",
      "more": "+{{count}} more",
      "employmentType": {
        "label": "Contract",
        "permanent": "Permanent",
        "fixed_term": "Fixed-term",
        "freelance": "Freelance",
        "internship": "Internship",
        "apprenticeship": "Apprenticeship",
        "temp_agency": "Temp agency"
      },
      "workTime": {
        "label": "Hours",
        "full_time": "Full-time",
        "part_time": "Part-time",
        "either": "Full or part-time"
      },
      "remotePreference": {
        "label": "Work mode",
        "remote": "Remote",
        "hybrid": "Hybrid",
        "onsite": "On-site"
      },
      "willingToRelocate": {
        "label": "Mobility",
        "yes": "Open to relocating",
        "no": "Not open to relocating"
      },
      "seekingStatus": {
        "label": "Looking",
        "actively_looking": "Actively looking",
        "open": "Open to offers",
        "not_looking": "Not looking right now"
      },
      "availableFrom": {
        "label": "Available",
        "immediate": "Right away",
        "notice": "{{days}} days’ notice to serve",
        "date": "From {{date}}"
      },
      "salary": {
        "label": "Asking",
        "perYear": "{{range}} per year",
        "ideal": "Target {{amount}}"
      }
    },
    "dialog": {
      "confirm": "Confirm",
      "cancel": "Cancel"
    }
  },
  "appUpdate": {
    "message": "A new version of Snypra is available.",
    "reload": "Reload",
    "dismiss": "Dismiss"
  },
  "whatsNew": {
    "menuItem": "What's new",
    "heading": "What's new in {{ version }}",
    "released": "Released {{ date }}",
    "unread": "New release notes",
    "kind": {
      "added": "New",
      "changed": "Changed",
      "fixed": "Fixed"
    },
    "history": {
      "title": "Earlier releases"
    }
  },
  "miaInsight": {
    "analyzing": "Mia is reading this profile…",
    "empty": "No analysis yet.",
    "synthesisTitle": "Personality & career synthesis",
    "communicationTitle": "Communication quality"
  },
  "profileKit": {
    "someone": "A Snypra profile",
    "metaFallback": "Personality decoded by Mia. Meet this profile on Snypra.",
    "strengthsHeading": "What stands out",
    "cta": "Run this search yourself",
    "gateCta": "See the rest on Snypra",
    "queryLabel": "A recruiter search on Snypra",
    "resultLabel": "How this profile answers it",
    "revokedTitle": "This link is no longer active",
    "revokedBody": "The person who shared it has turned it off. Ask them for a new one.",
    "traitsHeading": "Eight dimensions, by evidence",
    "skillsHeading": "Works with",
    "availabilityHeading": "Looking for",
    "asideNoContact": "Introductions happen on Snypra, with the candidate's consent.",
    "pdfLiveNote": "This is a snapshot. The live version, and anything that has changed since, is at the link below.",
    "pdf": {
      "eyebrow": "This is not a CV",
      "cta": "The rest is on Snypra",
      "ctaVideo": "The full video is on Snypra",
      "ctaBody": "Scan the code. You will find the recruiter search this profile answers, how they work across eight dimensions, and a ten-second extract of their video. Mia's reading of each dimension, and the full sixty seconds, are on Snypra once you sign in.",
      "ctaFree": "Searching is free. Introductions happen on Snypra, with the candidate's consent.",
      "provedWhat": "Timed challenges across four sections: cognitive, skills, communication and personality. Scored by Snypra, not self-reported."
    },
    "testsHeading": "Has proved",
    "testsChallenges": "challenges",
    "testsSections": "sections",
    "testsBadges": "badges",
    "portraitAlt": "{{name}}, in their own words",
    "previewBadge": "{{seconds}}s preview",
    "previewOverLead": "That was ten seconds. The rest is on Snypra.",
    "replay": "Play again",
    "unmute": "Turn the sound on",
    "mute": "Turn the sound off",
    "evidence": {
      "cross_checked": "Cross-checked",
      "not_cross_checked": "Not cross-checked"
    }
  },
  "promote": {
    "navLabel": "Promote my profile",
    "title": "Promote my profile",
    "lede": "A page that shows a recruiter search and you as its answer. Share it where you like; the introduction still happens on Snypra.",
    "gate": {
      "graceTitle": "Almost live",
      "graceBody": "Your profile goes visible to recruiters in about {{hours}}h. The kit opens the moment it does.",
      "graceCta": "Take a skills test while you wait",
      "pendingAutoTitle": "Not visible yet",
      "pendingAutoBody": "Waiting will not change this one. Recruiters see profiles that read as finished, and yours is not there yet.",
      "pendingAutoCta": "See what is missing",
      "dormantBody": "You had been away a while, so we stopped showing you in new recruiter searches. Nothing was deleted, and one click puts you back.",
      "dormantCta": "Go to my console",
      "privateTitle": "You chose private",
      "privateBody": "Your profile is hidden from recruiter search, so there is nothing to share yet. You can change that in settings.",
      "privateCta": "Open settings",
      "incompleteTitle": "Finish your profile first",
      "incompleteBody": "Mia needs your CV and a short video before there is anything to show.",
      "incompleteCta": "Continue",
      "analyzingTitle": "Mia is reading your profile",
      "analyzingBody": "This takes a few minutes. Come back and your kit will be here."
    },
    "mint": "Create my kit",
    "copy": "Copy",
    "copied": "Copied",
    "preview": "See what a stranger sees",
    "channel": {
      "linkedin": "LinkedIn",
      "x": "X",
      "email": "Email",
      "link": "Direct link"
    },
    "qrHeading": "QR code",
    "qrHint": "For a slide, a badge or a printed page.",
    "qrDownload": "Download",
    "sectionsHeading": "What the page shows",
    "section": {
      "identity": "Your first name and city",
      "role": "Role, seniority and skills",
      "traits": "The eight dimensions, and which are cross-checked",
      "strengths": "What stands out",
      "availability": "What you are looking for",
      "video": "A ten-second clip of you speaking",
      "tests": "How many challenges you have completed",
      "photo": "Your photo"
    },
    "sectionsNote": "Scores, your synthesis and your contact details are never on this page.",
    "viewsHeading": "Who opened it",
    "viewsNote": "Opens, not recruiters. A recruiter reading your full profile shows up in your earnings.",
    "regenerate": "Replace the link",
    "regenerateHint": "The old link stops working immediately.",
    "revoke": "Turn the link off",
    "revokeHint": "The page goes dead. You can create a new one later.",
    "copiedWarning": "A link you have already shared may have been copied or screenshotted. Replacing it stops the page, not the copies.",
    "offTitle": "Your link is off",
    "offBody": "Nobody can open your kit right now.",
    "boostActiveTitle": "Your views are paying ×{{multiplier}}",
    "boostActiveBody": "{{readers}} people have read your page. That rate applies to profile views until {{date}}. Share again after that and it starts over.",
    "boostIdleTitle": "The more you are read, the more a view pays",
    "boostIdleBody": "From 50 real readers a profile view pays ×1.5, and it climbs to ×2 at 300. Reading counts, sharing does not: a click on a share button opens a compose window and proves nothing. The rate applies for 30 days after your last reader.",
    "boostNext": "{{n}} more readers for ×{{multiplier}}",
    "boostMax": "Top rung. A profile view pays ×{{multiplier}}.",
    "boostReadersHint": "People, not opens. The same person reloading counts once, and you do not count yourself.",
    "pdfDownload": "Download a one-page PDF",
    "pdfHint": "For a career fair, a printed hand-out or an attachment. Generated fresh each time, never stored.",
    "link": {
      "live": "Live"
    },
    "kit": {
      "heading": "Your kit",
      "lede": "What you actually post. Mia writes it from your profile, one piece per network, because the same text pasted three times reads as exactly that.",
      "write": "Write my kit",
      "rewrite": "Rewrite my kit",
      "notWritten": "Mia has not written your kit yet. The drafts below are generic until she does.",
      "copyPost": "Copy post and link",
      "open": "Open LinkedIn",
      "openPrefilled": "Open, already filled in",
      "reset": "Back to Mia's version",
      "linkedinPasteNote": "LinkedIn no longer accepts text from a link, so copy first and paste into the box that opens.",
      "subjectLabel": "Subject",
      "bodyLabel": "Message",
      "why": {
        "linkedin": "Read by people who already know your work. Concrete beats enthusiastic.",
        "x": "Read by strangers moving fast. One line, and the link still has to fit.",
        "email": "Read by someone who owes you nothing. Formal, specific, short."
      },
      "tabs": "What to post, per network",
      "rewriteWait": "Rewrite in {{seconds}}s"
    },
    "guard": {
      "title": "Always send them to your page",
      "body": "Every draft below points at your Snypra link. Keep it that way: on Snypra a recruiter pays to view your profile and pays again to reach you, and you earn on both. The match is checked before either happens. Someone who replies straight to your inbox skips all of it: no check, and nothing for you."
    },
    "default": {
      "linkedin": "Snypra decoded how I work, and put a real recruiter search next to the result.\n\nThe page takes a minute to read.",
      "x": "Snypra decoded how I work. This is what came out.",
      "emailSubject": "My Snypra profile",
      "emailBody": "Snypra reads a profile the way a recruiter searches, and this page shows the search and my profile as its answer.\n\nIt takes about a minute to read if the subject is relevant to you."
    },
    "sectionsLede": "Nothing here is on unless you say so. Change it and every open link follows immediately.",
    "sectionHint": {
      "identity": "Your first name only. Never your surname, your employer or how to reach you.",
      "photo": "The picture from your settings. Turn it off and the page draws your initial instead.",
      "role": "Your job title, your seniority and up to six skills.",
      "traits": "High, middle or low on each of the eight. Never the score itself.",
      "strengths": "The two or three that came out highest, named.",
      "availability": "Contract types, working time and roughly when. Never a date or a salary.",
      "video": "Ten seconds, muted, then a door. The rest is only inside Snypra.",
      "tests": "How many challenges you finished. Never how you scored on them."
    },
    "eyebrow": "Promote",
    "query": {
      "label": "The search your page answers",
      "pending": "Mia has not yet proven a recruiter search against your profile."
    },
    "kpi": {
      "opens": "Opens",
      "readers": "Readers",
      "rate": "Per profile view",
      "open": "Where the opens came from, and what a view is worth"
    },
    "menu": {
      "label": "Link settings",
      "linkGroup": "The link itself"
    },
    "assetsHeading": "To take with you",
    "download": "Download",
    "confirm": {
      "replace": {
        "title": "Replace this link?",
        "body": "You get a working page at a new address. Every link you have already posted, printed or sent stops working straight away, and the copies of it stay copies.",
        "cta": "Replace it"
      },
      "disable": {
        "title": "Turn this page off?",
        "body": "The page goes dead for everyone, including the links you have already shared. You can create a new one later, but it will be at a new address. This one does not come back.",
        "cta": "Turn it off"
      }
    },
    "error": {
      "mint": "Your page could not be created. Try again.",
      "refresh": "Mia could not rewrite your kit. Your link and your existing copy are untouched.",
      "regenerate": "The link could not be replaced. Your current one still works.",
      "revoke": "The link could not be turned off. Your page is still live.",
      "sections": "That setting did not save. The page still shows what it showed before.",
      "rateLimited": "Mia has rewritten your kit a few times already. Try again in about {{seconds}} seconds. Each rewrite asks her to write four new texts from scratch."
    }
  },
  "wapinnov": {
    "eyebrow": "WAP'INNOV 2026 · PUBLIC PRIZE",
    "headingNominee": "Snypra is nominated for Wap'Innov 2026.",
    "headingLaureate": "Snypra won Wap'Innov 2026.",
    "lede": "Nominated in the Startups category of the Wallonie picarde innovation prize, the region's award for companies changing how their industry works.",
    "voteUntil": "The public vote is open until 19 November.",
    "cta": "Vote for Snypra",
    "ctaAria": "Vote for Snypra on notele.be (opens in a new tab)",
    "stripMessage": "Snypra is nominated for Wap'Innov 2026",
    "stripCta": "Vote for us",
    "stripDismiss": "Dismiss this announcement",
    "stripAriaLabel": "Wap'Innov 2026",
    "organisedBy": "Organised by",
    "euAlt": "Co-funded by the European Union and Wallonia"
  },
  "noscript": {
    "requiresJs": "Snypra needs JavaScript to run. This page is showing you a summary; enable JavaScript to use it."
  },
  "candidateMia": {
    "back": "Back to your console",
    "loading": "Loading the conversation",
    "eyebrow": "Pre-selection with Mia",
    "forCompany": "for {{company}}",
    "missing": {
      "title": "This conversation is not available",
      "body": "The link may be mistyped, or the conversation belongs to another account."
    },
    "intro": {
      "lede": "{{company}} is interested in your profile and would like to know you a little better before going further. They asked Mia to have a short written conversation with you.",
      "disclosureTitle": "You will be talking to an AI assistant",
      "disclosureBody": "Mia is Snypra's AI assistant. She writes on behalf of {{company}}, asks the questions below and answers what she can about the role. She does not score you and does not decide anything: a person at {{company}} reads the summary and decides.",
      "askedTitle": "What {{company}} asked Mia to find out",
      "askedNone": "No specific points: Mia will follow the company's objective.",
      "duration": "About ten minutes, in writing, at your own pace.",
      "skip": "You can skip any question, and stop at any time.",
      "shared": "What you choose to share, the summary and the conversation itself are passed to {{company}}.",
      "language": "Mia will write in {{language}}, the language {{company}} chose for this role.",
      "start": "Start the conversation",
      "consent": "Starting it means you have read the information on this page.",
      "decline": "No thanks",
      "declineConfirmLabel": "Confirm that you decline",
      "declineConfirm": "Decline this conversation? {{company}} will not be told that you said no, and nothing else changes for you.",
      "declineYes": "Yes, decline",
      "declineNo": "Keep it open",
      "expires": "This invitation stays open until {{date}}.",
      "mustsTitle": "What {{company}} considers decisive",
      "mustsHow": "Your answers to these points are compared with the conditions {{company}} set before this conversation. If one is clearly not met, you will be told which, and you can ask a person at {{company}} to review it. If you prefer not to answer, you are never set aside for that."
    },
    "languageName": {
      "en": "English",
      "fr": "French",
      "nl": "Dutch"
    },
    "chat": {
      "end": "End the conversation",
      "endConfirm": "End now? What you have already said will be passed on.",
      "endYes": "Yes, end it",
      "endNo": "Keep going",
      "openingFailed": "Mia could not begin the conversation just now. You can ask her to try again.",
      "openingRetry": "Try again"
    },
    "done": {
      "title": "Thank you, the conversation is over",
      "lede": "This is exactly what {{company}} receives. It carries no score and no recommendation: a person at {{company}} reads it and decides.",
      "declined": "You preferred not to say",
      "transcript": "{{company}} can also read the conversation itself.",
      "showTranscript": "Read the conversation ({{n}} messages)",
      "fromProfile": "from your profile"
    },
    "note": {
      "title": "Something to correct?",
      "body": "If the summary gets something wrong, add a note. It is shown to the company next to the summary.",
      "label": "Your note",
      "save": "Save the note",
      "saved": "Your note is saved and will be shown with the summary."
    },
    "closed": {
      "declined": "You declined this conversation.",
      "expired": "This invitation has expired.",
      "abandoned": "This conversation was closed before anything was shared.",
      "cancelled": "{{company}} is no longer running pre-selection for this role, so the conversation was closed.",
      "nothingChanges": "Nothing else changes for you, and your profile stays exactly as it was."
    },
    "presets": {
      "salary_expectation": "Salary expectation",
      "notice_period": "Notice period",
      "availability_date": "Earliest start date",
      "mobility": "Mobility and commute",
      "remote_preference": "Remote or on-site preference",
      "work_authorisation": "Authorised to work in the country",
      "languages": "Working languages",
      "motivation_for_role": "Motivation for this role"
    },
    "errors": {
      "generic": "Something went wrong. Please try again.",
      "SESSION_EXPIRED": "This invitation has expired.",
      "PRESELECTION_WITHDRAWN": "The company is no longer running this conversation.",
      "SESSION_NOT_OPEN": "This conversation is no longer open.",
      "TURN_IN_PROGRESS": "Mia is still answering your previous message.",
      "TURN_LIMIT_REACHED": "You have reached the message limit for this conversation.",
      "MESSAGE_TOO_LONG": "That message is too long. Please shorten it.",
      "MIA_UNAVAILABLE": "Mia could not answer just now. Your message is saved: send it again in a moment.",
      "DISCLOSURE_OUTDATED": "This page has been updated. Please reload it before starting.",
      "MIA_CONVERSATIONS_UNAVAILABLE": "Conversations with Mia are paused for the moment. Please come back later.",
      "REPORT_NOT_READY": "The summary is not ready yet.",
      "NOTE_WINDOW_CLOSED": "Notes can no longer be added to this summary.",
      "RATE_LIMITED": "Too many attempts. Please wait a moment.",
      "REVIEW_ALREADY_REQUESTED": "You have already asked for a review.",
      "NOTHING_TO_REVIEW": "There is no decision to review.",
      "ALREADY_DECIDED_BY_A_PERSON": "A person has already made a decision on your profile."
    },
    "card": {
      "title": "A company would like to hear from you",
      "inProgress": "In progress",
      "expires": "Open until {{date}}",
      "invited": "Invitation"
    },
    "must": {
      "is_true": "the answer needs to be yes",
      "max_weeks": "at most {{n}} weeks",
      "on_or_before": "available by {{date}}",
      "max_eur": "compared with the company's budget for the role",
      "one_of": "{{modes}}",
      "includes_all": "working in {{langs}}",
      "mode": {
        "on_site": "on site",
        "hybrid": "hybrid",
        "remote": "remote"
      }
    },
    "notRetained": {
      "lede": "Your profile will not go forward for this role at {{company}}, because this answer does not meet a condition they set:",
      "how": "If you think this is wrong, or your situation has changed, a person at {{company}} can look at it again.",
      "ask": "Ask a person to review",
      "requested": "Your request has been sent. A person at {{company}} will decide.",
      "nothingElse": "Nothing else changes: your profile stays visible to other companies.",
      "alreadyDecided": "A person at {{company}} has already looked at your profile again and made the decision."
    },
    "wait": {
      "stepDone": "Conversation finished",
      "stepReading": "Mia is reading your answers again and writing the summary",
      "stepReport": "The summary for {{company}} appears here",
      "usual": "This usually takes less than a minute. This page updates by itself.",
      "slow": "This is taking longer than usual. You can close this page: the summary will be waiting for you here.",
      "failedTitle": "The summary could not be written yet",
      "failed": "Your conversation is saved. The Snypra team will start the summary again; it only reaches {{company}} once it is written."
    }
  },
  "miaThread": {
    "threadLabel": "Your conversation with Mia",
    "you": "You",
    "retry": "Send again",
    "writing": "Mia is writing",
    "inputLabel": "Your message",
    "placeholder": "Write your answer. Enter to send, Shift+Enter for a new line.",
    "turnsLeft": "{{n}} messages left",
    "send": "Send"
  },
  "onboardingTalk": {
    "choice": {
      "prompt": "How would you like to build your profile?",
      "cvTitle": "Upload your CV",
      "cvBody": "A PDF. Mia reads it in about a minute.",
      "talkTitle": "Tell Mia about yourself",
      "talkBody": "No CV needed: a conversation of about twenty minutes about your work, typed or spoken.",
      "orTalk": "No CV at hand? Tell Mia about yourself instead."
    },
    "intro": {
      "title": "Before you start",
      "points": {
        "what": "Mia is Snypra's AI assistant. She asks about your work, one question at a time.",
        "voice": "You can talk to Mia or write to her. If you talk, your speech is turned into text in the EU, the recording is not kept, and nothing is read from your voice.",
        "form": "Nothing is read from how you write or speak: not your spelling, your accent, your style or how fluent you are. Only what you say counts.",
        "draft": "Mia then drafts your profile. You check and correct it, and nothing is saved until you do.",
        "skip": "You can skip any question or stop at any time. Mia never asks for your phone number or email: you type those in the form at the end.",
        "kept": "The conversation is kept for 12 months, then deleted. No recruiter ever reads it."
      },
      "start": "Start the conversation",
      "starting": "Mia is getting ready…",
      "backToCv": "Upload a CV instead",
      "welcomeBack": "Welcome back",
      "welcomeBackBody": "Your conversation with Mia is where you left it. She will recap what you told her, then carry on.",
      "startVoice": "Talk with Mia",
      "startText": "Write instead",
      "resume": "Continue the conversation",
      "resumeVoice": "Continue by talking",
      "resumeText": "Continue in writing"
    },
    "chat": {
      "end": "I have said enough",
      "endConfirm": "End now? Mia drafts your profile from what you have said so far.",
      "endYes": "Yes, draft my profile",
      "endNo": "Keep going",
      "openingFailed": "Mia could not begin the conversation just now. You can ask her to try again.",
      "openingRetry": "Try again",
      "switchToVoice": "Talk instead of typing"
    },
    "drafting": {
      "title": "Mia is drafting your profile",
      "body": "This usually takes under a minute. You can stay on this page."
    },
    "draftFailed": {
      "title": "Mia could not write your draft",
      "body": "She tried several times without success. You can build your profile from your CV instead."
    },
    "closed": {
      "title": "This conversation has ended",
      "body": "It ended before Mia heard enough to draft a profile, and it cannot be reopened. You can build your profile from your CV."
    },
    "useCv": "Upload my CV",
    "saved": "Your profile is saved. Next: your video.",
    "topics": {
      "roles": "your work experience",
      "earlier_roles": "what you did before your most recent role",
      "education": "your education",
      "skills": "your skills",
      "languages": "your languages",
      "location": "where you are based",
      "work_preferences": "what you are looking for",
      "example_problem": "a problem you solved at work",
      "example_lead": "a time you led or helped others forward",
      "example_change": "a change you had to adapt to"
    },
    "readback": {
      "title": "Check your profile",
      "intro": "Mia wrote this from your conversation. Correct anything that is wrong or missing: nothing is saved until you press Save.",
      "gaps": "The conversation did not cover {{topics}}. You can add it here.",
      "thin": "You mentioned {{topics}}, without going into detail. You can add the details here, for example in a role's description.",
      "unsure": "Mia was not sure: please check",
      "roles": "Experience",
      "roleN": "Role {{n}}",
      "roleTitle": "Job title",
      "roleCompany": "Employer",
      "roleStart": "Start year",
      "roleEnd": "End year",
      "roleEndCurrent": "Empty if current",
      "roleDescription": "What you did",
      "noRoles": "No experience yet. Add a role, an internship or volunteering if you have one.",
      "addRole": "Add a role",
      "education": "Education",
      "educationN": "Education {{n}}",
      "degree": "Degree or diploma",
      "field": "Field",
      "school": "School",
      "year": "Year finished",
      "noEducation": "No education listed yet.",
      "addEducation": "Add an education",
      "remove": "Remove",
      "skills": "Skills and tools",
      "commaHint": "Separate them with commas.",
      "languages": "Languages",
      "languagesHint": "With the level you give each one, separated by commas: French (native), English (fluent).",
      "city": "City",
      "country": "Country",
      "lookingFor": "What you are looking for",
      "lookingForHint": "From what you told Mia, as recruiters will see it. You can change it at any time in Settings.",
      "keepPreferences": "Save this to my preferences. Anything you stated before and did not mention here stays as it is.",
      "contact": "Contact (optional)",
      "contactHint": "A recruiter sees these only after you accept their invitation.",
      "phone": "Phone",
      "linkedin": "LinkedIn profile",
      "save": "Save my profile",
      "saving": "Saving…",
      "errors": {
        "PHONE_INVALID": "That phone number does not look right. Use digits, spaces and an optional +.",
        "LINKEDIN_INVALID": "That is not a LinkedIn profile link (linkedin.com/in/…).",
        "PROFILE_EMPTY": "Add at least one role, an education or some skills.",
        "PROFILE_ALREADY_CONFIRMED": "Your profile is already saved.",
        "ONBOARDING_NOT_OFFERED": "Your profile already comes from a CV.",
        "REPORT_NOT_READY": "Your draft is not ready yet. Try again in a moment.",
        "INVALID_REQUEST": "Something in the form is too long or not readable. Shorten it and try again.",
        "RATE_LIMITED": "Too many tries in a short time. Wait a few minutes.",
        "generic": "Your profile could not be saved. Try again."
      }
    },
    "skip": {
      "explain": "No video? Mia can build your profile from what you told her and from your tests, and recruiters can find it. Without a video, a profile view or an accepted invitation pays you less.",
      "cta": "Continue without a video for now",
      "started": "Mia is building your profile without a video.",
      "waiting": "Mia needs one more source before she can build your profile: take a test, or record your video.",
      "testsCta": "Take a test",
      "canRecord": "You can still record your video at any time."
    },
    "errors": {
      "ONBOARDING_NOT_OFFERED": "The conversation with Mia is for new profiles. Yours already has one.",
      "SESSION_NOT_OPEN": "This conversation is no longer open.",
      "TURN_IN_PROGRESS": "Mia is still answering your last message.",
      "TURN_LIMIT_REACHED": "You have used all your messages. Mia is drafting your profile.",
      "MESSAGE_TOO_LONG": "That message is too long. Split it in two.",
      "MIA_UNAVAILABLE": "Mia could not answer just now. Send your message again.",
      "DISCLOSURE_OUTDATED": "This page is out of date. Reload it and start again.",
      "MIA_CONVERSATIONS_UNAVAILABLE": "The conversation with Mia is switched off for now. You can upload your CV.",
      "RATE_LIMITED": "Too many tries in a short time. Wait a few minutes.",
      "generic": "Something went wrong. Try again.",
      "VOICE_UNAVAILABLE": "Talking with Mia is not available right now. You can carry on in writing.",
      "CHANNEL_MISMATCH": "This conversation moved to the other mode in another window. Reload the page to continue."
    },
    "voice": {
      "state": {
        "idle": "Ready when you are",
        "connecting": "Connecting…",
        "listening": "Mia is listening",
        "thinking": "Mia is thinking",
        "speaking": "Mia is speaking",
        "ended": "Call ended",
        "dropped": "The line dropped",
        "failed": "The call could not continue"
      },
      "timeLeft": "Time left: ",
      "mia": "Mia",
      "you": "You",
      "hint": "Speak naturally. Mia waits until you have finished before she answers.",
      "capSoon": "About two minutes left on this call. You can carry on in writing afterwards.",
      "join": "Join the call",
      "rejoin": "Rejoin the call",
      "interrupt": "Interrupt Mia",
      "done": "I have finished",
      "switchToText": "Switch to typing",
      "leave": "Leave the call",
      "privacy": "Your speech is turned into text in the EU. The recording is not kept, and nothing is read from your voice.",
      "errors": {
        "MIC_DENIED": "Your browser did not give access to the microphone. Allow it in the address bar, or carry on in writing.",
        "UNAUTHENTICATED": "Your session has expired. Reload the page to continue.",
        "VOICE_CAP_REACHED": "This call has reached its time limit. You can carry on in writing.",
        "VOICE_UNAVAILABLE": "Talking with Mia is not available right now. You can carry on in writing.",
        "CHANNEL_MISMATCH": "This conversation is set to writing. Choose to talk again, or carry on in writing.",
        "SESSION_NOT_OPEN": "This conversation has ended.",
        "TURN_LIMIT_REACHED": "You have reached the end of this conversation.",
        "MIA_UNAVAILABLE": "Mia could not answer that. Please say it again.",
        "VOICE_OUT_UNAVAILABLE": "Mia's voice did not come through. Her answer is written above.",
        "generic": "Something went wrong with the call. You can rejoin, or carry on in writing.",
        "COACHING_INSUFFICIENT_CREDITS": "There is no credit left to hold for this call. Top up, then call again.",
        "ASK_MIA_INSUFFICIENT_FUNDS": "Your wallet has nothing left to hold for this call. Top up, then call again."
      },
      "creditSoon": "About a minute of credit left on this call. Top up to keep talking."
    }
  },
  "priceMedia": {
    "noVideo": "No video, so a lower price",
    "noVideoEarnings": "No video on your profile, so a lower rate. Adding one raises it."
  },
  "profileOverview": {
    "title": "What Mia knows about you",
    "subtitle": "Mia's reading of your profile, from everything you have shared.",
    "subtitleVersion": "Mia's reading of your profile, version {{version}} of {{date}}.",
    "goDeeper": "Go deeper with Mia",
    "tools": "Tools"
  },
  "profileUpdate": {
    "back": "Back to my profile",
    "title": "Tell Mia what changed",
    "lede": "Mia already has your profile. Tell her only what is new: a role, a course, a skill, a move, what you are looking for now. You check the updated profile before anything is saved.",
    "waitPoint": "Updating is free. The next update opens {{days}} days after this one starts.",
    "wait": {
      "title": "You updated your profile recently",
      "body": "Updates are spaced {{days}} days apart. Your next one opens on {{date}}."
    },
    "endConfirm": "End the conversation now? Mia drafts your update from what you have said so far.",
    "drafting": "Mia is updating your profile",
    "draftFailed": {
      "title": "Mia could not write your update",
      "body": "She tried several times without success. This did not use up your update: you can start again now.",
      "again": "Start again"
    },
    "saved": "Your profile is updated.",
    "closed": "It ended before Mia heard a change to add. The next update opens {{days}} days after this one started.",
    "errors": {
      "PROFILE_UPDATE_NOT_OFFERED": "This update is for profiles built in a conversation with Mia. A CV profile updates by uploading a new CV.",
      "CHANNEL_NOT_OFFERED": "This way of talking with Mia is not offered here."
    }
  },
  "coaching": {
    "title": "Coaching with Mia",
    "lede": "Talk your profile over with Mia: what stands out, what a recruiter reads in it, what to say about your experience, what to do next. She can show you your synthesis, the recruiter's reading, a salary benchmark or a test report as you talk.",
    "unavailable": {
      "title": "Coaching is not open yet",
      "body": "Mia is not taking coaching sessions right now. Your profile and your credits are unaffected."
    },
    "intro": {
      "title": "Before you start",
      "welcomeBack": "Your session is waiting",
      "points": {
        "what": "Mia is an automated assistant, not a person. She coaches you on your own search; nothing here is shared with recruiters.",
        "sees": "She reads your profile, your synthesis, your test results, how a recruiter sees you and your last sessions with her, to answer you.",
        "billing": "You pay in credits as you go: per second on a call, per answer when you type. You see what is left the whole time, and nothing is charged before Mia answers.",
        "suggests": "If you mention something your profile lacks, Mia may offer to add it. Nothing is added unless you press Add.",
        "voice": "On a call, what you say is transcribed and Mia answers aloud. Only your words are used, never your voice or your tone."
      },
      "startVoice": "Call Mia",
      "startText": "Write to Mia",
      "resumeVoice": "Resume by voice",
      "resumeText": "Resume in writing",
      "starting": "Opening…",
      "needCredit": "A session needs at least {{cr}} CR free to start."
    },
    "topUp": "Top up credits",
    "meter": {
      "balance": "Your credit",
      "left": "Credit left",
      "byVoice": "By voice",
      "typed": "In writing",
      "minutes": "≈ {{n}} min",
      "answers": "Answers: {{n}}",
      "billed": "Billed on this call: {{n}} min",
      "lastAnswer": "Your credit pays for one more answer.",
      "noAnswer": "Your credit does not cover another answer. Top up to carry on."
    },
    "rate": {
      "perMinute": "{{cr}} CR per minute",
      "perAnswer": "{{cr}} CR per answer"
    },
    "switchToVoice": "Call instead",
    "end": "End the session",
    "endConfirm": "End now? What you added is saved to your profile when the session closes.",
    "endYes": "Yes, end it",
    "endNo": "Keep talking",
    "views": {
      "synthesis": "Your synthesis",
      "recruiter_view": "How a recruiter reads you",
      "salary_benchmark": "Salary benchmark",
      "test_report": "Test report",
      "open": "Open",
      "close": "Close"
    },
    "view": {
      "eyebrow": "Shown by Mia",
      "strengths": "Strengths",
      "growth": "Room to grow",
      "plan": "What to work on",
      "signals": "What stands out",
      "gaps": "What a recruiter will ask about",
      "priorities": "Interview priorities",
      "next": "Next steps",
      "factors": "What moves the range",
      "rangeLabel": "Salary range",
      "min": "Low",
      "median": "Median",
      "max": "High",
      "capReached": "Mia has prepared {{cap}} new views in this session, the most one session holds. Ask her again in your next one.",
      "unavailable": "Not available yet: it needs a profile analysis or a completed test section first.",
      "rendering": "Mia is preparing this one. It appears here in about a minute.",
      "failed": "Mia could not prepare this one. It was not counted; ask her again."
    },
    "suggestions": {
      "youSaid": "You said: “{{quote}}”",
      "add": "Add",
      "notNow": "Not now",
      "fields": {
        "role": "Role",
        "skill": "Skill",
        "language": "Language",
        "certification": "Certification",
        "achievement": "Achievement",
        "finding": "Finding",
        "other": "Profile"
      },
      "eyebrow": "Add to your profile?",
      "adding": "Adding…",
      "findingNote": "This is what Mia would record about you. A recruiter can read it, so add it only if it is right.",
      "addedAtEnd": "Added. It is saved to your profile when the session ends.",
      "applied": "Added to your profile",
      "dismissed": "Not added",
      "expired": "Not added: the session ended before you chose."
    },
    "ended": {
      "title": "Session ended",
      "body": "You can open another whenever you like; your credit carries over.",
      "applied": "What you added is being saved to your profile.",
      "outOfCredit": "Your credit ran out",
      "outOfCreditBody": "Mia stopped where your credit did. Top up, then come back here to start a new session; what you added is kept.",
      "again": "New session",
      "toProfile": "Back to my profile",
      "transcript": "Your conversation"
    },
    "errors": {
      "COACHING_INSUFFICIENT_CREDITS": "Not enough free credit for this. Top up and try again.",
      "COACHING_NOT_OFFERED": "Coaching is not offered on this account.",
      "CHANNEL_NOT_OFFERED": "This way of talking with Mia is not offered here.",
      "SUGGESTION_ALREADY_DECIDED": "You already answered this one.",
      "SUGGESTION_NOT_FOUND": "This suggestion is no longer available.",
      "COACHING_DAILY_LIMIT": "You have started the most sessions possible for today. Your credit is untouched; you can start again tomorrow."
    },
    "offerError": {
      "title": "We could not load coaching",
      "body": "Something went wrong on our side. Nothing was charged, and your credits are unaffected.",
      "retry": "Try again"
    },
    "talk": {
      "typed": "Typed session",
      "voice": "Voice session",
      "writing": "Mia is writing…"
    },
    "session": {
      "title": "In this session",
      "added": "Profile additions: {{n}}"
    },
    "history": {
      "title": "Your earlier sessions",
      "voice": "Call",
      "typed": "Written",
      "minutes": "{{n}} min",
      "exchanges": "Messages: {{n}}",
      "reader": "Session of {{when}}",
      "gone": "The content of this session is no longer kept."
    }
  },
  "traitEvidence": {
    "title": "What Mia noticed",
    "recruiterIntro": "No scores. Shown means a concrete situation and what the candidate did in it; stated means they say it without an example. Cross-checked means it is shown in one kind of source and backed by another (conversation, video, tests). Anything below that is a question for the interview, not a missing trait.",
    "level": {
      "none": "Not covered yet",
      "not_shown": "Not shown yet",
      "stated": "Stated",
      "shown": "Shown once",
      "cross_checked": "Cross-checked",
      "firm": "Shown twice, cross-checked"
    },
    "from": "From:",
    "source": {
      "video_analysis": "Video",
      "conversation": "Conversation with Mia",
      "tests": "Tests",
      "profile": "Profile"
    },
    "disagree": "Your sources read this differently. A concrete example in your next update will settle it.",
    "step": {
      "video": "Record a video to show more",
      "tests": "Take a test to back it up",
      "update": "Tell Mia what changed"
    },
    "split": "Sources differ",
    "radarLegend": "The shape shows how firmly each trait is shown, never how strong the person is."
  },
  "miaRecord": {
    "title": "What Mia recorded",
    "subtitle": "What Mia concluded from your talks, tests and video. Recruiters read this on your profile from the moment it is recorded.",
    "shows": "What you showed",
    "topics": "To cover in an interview",
    "topicSentence": "A recruiter may want to hear more about {{topic}}.",
    "topicsCap": "A recruiter reads up to {{max}} of these topics on your profile. They are subjects to prepare, not weaknesses.",
    "disagreement": "Your sources differ on this quality, so a recruiter reads it as a point to verify in an interview.",
    "flag": "Flag this",
    "flagLabel": "What is wrong with it? (optional)",
    "flagSend": "Send for review",
    "flagHelp": "Our team will read it. It stays on your record until they decide.",
    "flagged": "Under review",
    "kept": "Reviewed and kept",
    "flagError": "Your flag could not be sent. Please try again.",
    "loadError": "Your record could not be loaded. Please try again later.",
    "emptyTitle": "Nothing recorded yet",
    "emptyBody": "Mia records what she concludes from your talk, your video and your tests.",
    "emptyCta": "Go to the tests",
    "source": {
      "conversation": "From your talk",
      "tests": "From a test",
      "video_analysis": "From your video",
      "coaching": "From coaching",
      "profile": "From your CV"
    },
    "topicNames": {
      "setting_direction": "how you set a direction",
      "bringing_others_along": "how you bring others along",
      "explaining_clearly": "how you explain things clearly",
      "adapting_to_the_audience": "how you adapt to your audience",
      "shared_decisions": "how you make decisions with others",
      "handling_disagreement": "how you handle disagreement",
      "handling_change": "how you handle change",
      "handling_setbacks": "how you handle setbacks",
      "breaking_down_problems": "how you break down a problem",
      "measuring_results": "how you measure results",
      "owning_outcomes": "how you take on an outcome",
      "following_through": "how you see things through",
      "learning_new_things": "how you learn new things",
      "questioning_assumptions": "how you question assumptions",
      "noticing_others_needs": "how you notice what others need",
      "giving_feedback": "how you give feedback"
    }
  },
  "candidateFindings": {
    "title": "What Mia recorded",
    "intro": "From this candidate's talks, tests and video. The candidate reads the same record.",
    "toVerify": "To verify in an interview",
    "topicSentence": "How {{topic}}.",
    "traitSentence": "The sources differ on {{trait}}: a point to verify in an interview.",
    "topics": {
      "setting_direction": "they set a direction",
      "bringing_others_along": "they bring others along",
      "explaining_clearly": "they explain things clearly",
      "adapting_to_the_audience": "they adapt to their audience",
      "shared_decisions": "they make decisions with others",
      "handling_disagreement": "they handle disagreement",
      "handling_change": "they handle change",
      "handling_setbacks": "they handle setbacks",
      "breaking_down_problems": "they break down a problem",
      "measuring_results": "they measure results",
      "owning_outcomes": "they take on an outcome",
      "following_through": "they see things through",
      "learning_new_things": "they learn new things",
      "questioning_assumptions": "they question assumptions",
      "noticing_others_needs": "they notice what others need",
      "giving_feedback": "they give feedback"
    },
    "recordedOn": "Recorded {{date}}",
    "introCandidate": "What recruiters read about you, word for word. You can flag a finding for review."
  },
  "traitEvidenceCard": {
    "intro": {
      "recruiter": "No score. Each axis shows how firmly the trait is shown: a concrete example counts, a claim counts less, and cross-checked means a second kind of source backs it.",
      "candidate": "No score, here or for recruiters. Each axis shows how firmly the trait is shown: a concrete example of what you did counts, a claim counts less, and cross-checked means a second kind of source backs it."
    },
    "proof": "Evidence",
    "proofTitle": "The evidence behind the graph",
    "recordLink": "See every finding and flag one",
    "scale": "From the centre outward"
  },
  "askMia": {
    "retry": "Try again",
    "topUp": "Top up the wallet",
    "switchToVoice": "Switch to a call",
    "entry": {
      "title": "Ask Mia about this candidate",
      "lede": "Talk the profile over with Mia: the full hiring synthesis, the interview kit, the gaps to check and the test analysis, in words.",
      "cta": "Ask Mia",
      "resume": "Return to your talk with Mia",
      "error": "The price of a talk could not be loaded.",
      "unavailable": "Talking with Mia is not available right now.",
      "needsView": "Open this candidate's profile first: a talk with Mia follows a profile view.",
      "endOther": "End that talk",
      "endingOther": "Ending…",
      "endOtherNote": "What Mia already answered stays under “From your conversations with Mia”."
    },
    "trigger": {
      "details": "What a talk with Mia covers",
      "includes": "In a talk, Mia can show you",
      "fine": "Mia's first message is free. After that you pay from your wallet, per answer or per connected second.",
      "start": "Start a talk"
    },
    "rate": {
      "both": "{{minute}} per minute on a call · {{answer}} per answer in writing",
      "typed": "{{answer}} per answer",
      "perAnswer": "{{eur}} per answer",
      "perMinute": "{{eur}} per minute"
    },
    "records": {
      "title": "From your conversations with Mia",
      "empty": "Nothing yet. What Mia shows you in a talk is kept here, free to read again.",
      "error": "Your records could not be loaded.",
      "shownOn": "Shown on {{when}}",
      "updatedSince": "Profile updated since",
      "downloadPdf": "Download as PDF",
      "downloadAll": "Download everything (PDF)"
    },
    "drawer": {
      "title": "Ask Mia",
      "close": "Close"
    },
    "intro": {
      "lede": "Before you start",
      "paused": "Your talk is waiting where you left it.",
      "points": {
        "what": "Mia is an automated assistant, not a person. She advises you on this one candidate; nothing you say is shown to them.",
        "decides": "She reads the profile, the synthesis and the tests for you. The decision to invite stays yours.",
        "billing": "You pay from your wallet as you go: per second on a call, per answer in writing. You see what is left the whole time, and nothing is charged before Mia answers.",
        "records": "What she shows you is kept on the candidate's profile, free to read again, for as long as your account is active.",
        "voice": "On a call, what you say is transcribed and Mia answers aloud. Only your words are used, never your voice or your tone."
      },
      "typed": "In writing",
      "voice": "On a call",
      "startText": "Write to Mia",
      "startVoice": "Call Mia",
      "resumeText": "Resume in writing",
      "starting": "Opening…",
      "opening": "Mia is reading the profile. Her first message is on its way.",
      "endsOther": "Your open talk about another candidate will be closed when this one starts.",
      "topUpFirst": "A talk needs at least {{eur}} free in your wallet to start."
    },
    "meter": {
      "left": "Wallet left",
      "wallet": "Free in your wallet:",
      "minutes": "≈ {{n}} min on a call",
      "answers": "Answers: {{n}}",
      "billed": "billed on this call: {{n}} min",
      "lastAnswer": "Your wallet pays for one more answer.",
      "noAnswer": "Your wallet does not cover another answer. Top up to carry on."
    },
    "end": {
      "cta": "End the talk",
      "confirm": "End this talk? You can start a new one at any time.",
      "yes": "End it",
      "no": "Keep talking"
    },
    "ended": {
      "title": "Talk ended",
      "body": "What Mia showed you is kept on this profile, under “From your conversations with Mia”.",
      "outOfFunds": "Your wallet ran out",
      "outOfFundsBody": "Mia closed the talk when your wallet could not pay for more. What she showed you is kept on this profile.",
      "again": "Start a new talk",
      "transcript": "The conversation"
    },
    "views": {
      "eyebrow": "Mia showed you",
      "shown": "What Mia showed",
      "hiring_synthesis": "Hiring synthesis",
      "full_report": "Complete report",
      "interview_kit": "Interview kit",
      "gaps": "Gaps to check",
      "test_analysis": "Test analysis",
      "salary_benchmark": "Salary benchmark",
      "state": {
        "rendering": "Being written by Mia, about a minute. It appears here when ready.",
        "cap_reached": "Not shown: this talk has used its included renders.",
        "unavailable": "Not available for this candidate yet.",
        "failed": "Could not be prepared. Ask Mia again."
      }
    },
    "view": {
      "roleFit": "Fit for the role",
      "signals": "Standout signals",
      "traits": "How they work",
      "gaps": "Gaps",
      "priorities": "What to probe",
      "questions": "Questions to ask",
      "quotes": "In their words",
      "toVerify": "To check in interview",
      "dimensions": "By test dimension",
      "strengths": "Strengths",
      "development": "To develop",
      "factors": "What moves the range",
      "cultureFit": "Culture fit",
      "thrives": "Thrives in",
      "struggles": "May struggle in",
      "management": "Management style",
      "team": "In a team",
      "communication": "Communication",
      "trajectory": "Career path",
      "median": "Median",
      "rangeAria": "Market range from {{min}} to {{max}} {{currency}}, median {{median}}",
      "empty": "Mia had nothing to show here.",
      "more": "Detail",
      "less": "Less",
      "shows": "What the evidence shows",
      "notYet": "Not shown yet"
    },
    "prompts": {
      "title": "Ask Mia about this",
      "lede": "Mia goes through the rest of the profile with you, in a talk.",
      "signals": {
        "label": "What stands out",
        "question": "What stands out about this candidate, and what backs it?"
      },
      "gaps": {
        "label": "Possible gaps",
        "question": "What gaps should I check with this candidate before inviting them?"
      },
      "interviewKit": {
        "label": "Interview kit",
        "question": "Can you prepare an interview kit for this candidate?"
      },
      "cultureFit": {
        "label": "Culture fit",
        "question": "What kind of team and culture would this candidate thrive in?"
      },
      "traits": {
        "label": "How they work",
        "question": "How does this candidate work, trait by trait, and what is it based on?"
      },
      "communication": {
        "label": "Communication",
        "question": "How does this candidate communicate?"
      },
      "trajectory": {
        "label": "Career path",
        "question": "How do you read this candidate's career path?"
      },
      "tests": {
        "label": "Their test results",
        "question": "What do this candidate's test results tell me?"
      }
    },
    "errors": {
      "ASK_MIA_INSUFFICIENT_FUNDS": "Your wallet does not have enough free to start a talk. Top up, then try again.",
      "ASK_MIA_VIEW_REQUIRED": "Open this candidate's profile first: a talk with Mia follows a profile view.",
      "ASK_MIA_OPEN_ELSEWHERE": "You are in a talk with Mia about another candidate. End it there first.",
      "ASK_MIA_DAILY_LIMIT": "You have reached today's number of talks with Mia. You can start again tomorrow.",
      "ASK_MIA_NOT_OFFERED": "Talking with Mia is not available right now.",
      "CHANNEL_NOT_OFFERED": "Calls are not available right now. You can write to Mia instead."
    },
    "tests": {
      "title": "Mia's reading of the tests",
      "body": "Mia reads all four sections together: where the answers agree, where they pull apart, and what to probe in an interview. Ask her in a talk; the reading is then kept on this profile."
    },
    "compare": {
      "tick": "Compare",
      "bar": {
        "cta": "Compare with Mia ({{n}})",
        "hint": "Tick 2 to 10 candidates to compare them with Mia.",
        "full": "Ten at most.",
        "clear": "Clear",
        "resume": "Resume the comparison"
      },
      "close": "Close",
      "retry": "Try again",
      "topUp": "Top up",
      "confirm": {
        "title": "Compare with Mia",
        "lede": "Each profile you have not opened in the last 30 days is a profile view. Mia then sets them side by side for you, free.",
        "view": "Profile view {{eur}}",
        "seen": "Opened in the last 30 days: free",
        "unavailable": "Not available now: left out, not charged",
        "total": "Charged now",
        "then": "Then, talking with Mia",
        "perAnswer": "{{eur}} per answer",
        "wallet": "Free in your wallet",
        "criteria": "What matters for the role (optional)",
        "criteriaHint": "e.g. negotiation in English, managing a small team",
        "disclosure": "Mia is an automated assistant, not a person. She sets out the evidence; she never ranks candidates, and the choice stays yours.",
        "endsOpen": "Starting this comparison ends the one you have open. It stays in your history.",
        "tooFew": "At least two of these candidates must be available to compare.",
        "topUpFirst": "Your wallet needs {{eur}} free: the views and one answer.",
        "go": "Confirm and compare ({{eur}})",
        "starting": "Opening the comparison…",
        "error": "The price could not be loaded.",
        "off": "Comparing with Mia is not available right now.",
        "credits": "Paid with partner credits",
        "creditsValue": "{{cr}} CR ({{eur}})",
        "fromWallet": "From your wallet"
      },
      "drawer": {
        "title": "Comparison with Mia"
      },
      "brief": {
        "eyebrow": "Side by side",
        "title": "What separates them",
        "writing": "Mia is writing the side-by-side reading. It takes about a minute.",
        "failed": "Mia could not write the side-by-side reading. Your next message asks her again.",
        "criteriaGiven": "What matters, in your words:",
        "candidate": "Candidate {{label}}",
        "standsOut": "Stands out",
        "unknown": "Not known yet",
        "question": "To ask",
        "criteria": "On what matters for the role",
        "shown": "Shows it",
        "stated": "States it",
        "notShown": "Nothing on it",
        "talkAbout": "Talk about this candidate",
        "pdf": "Download the comparison (PDF)",
        "profile": "View profile"
      },
      "end": {
        "cta": "End the comparison",
        "confirm": "End this comparison? You keep the side-by-side reading.",
        "yes": "End it",
        "no": "Keep going"
      },
      "ended": "This comparison has ended.",
      "errors": {
        "ASK_MIA_COMPARE_CHANGED": "A price or a profile changed since you looked. Nothing was charged: check the new total.",
        "ASK_MIA_COMPARE_SIZE": "Compare between 2 and 10 candidates.",
        "ASK_MIA_INSUFFICIENT_FUNDS": "Your wallet does not have enough free for these views and one answer. Nothing was charged.",
        "ASK_MIA_DAILY_LIMIT": "You have reached today's number of talks with Mia. You can start again tomorrow.",
        "ASK_MIA_OPEN_ELSEWHERE": "A talk with Mia is already open. End it first.",
        "VIEW_TRACK_FAILED": "The views could not be charged. Nothing was charged: try again."
      },
      "paused": "This comparison was paused after a day without a message. Nothing is charged while it waits.",
      "source": {
        "search": "Candidates from your search",
        "saved": "Candidates from your saved list"
      },
      "list": {
        "title": "Your comparisons",
        "lede": "Every comparison you ran with Mia, newest first. Open one to read the side-by-side reading again or download it.",
        "empty": "You have not compared candidates yet. Tick two or more in a search, then compare them with Mia.",
        "toSearch": "Go to search",
        "error": "Your comparisons could not be loaded.",
        "fromSearch": "From your search",
        "fromSaved": "From your saved candidates",
        "fromSelection": "Candidates you picked",
        "count": "{{n}} candidates",
        "criteria": "What matters:",
        "open": "Open",
        "ended": "Ended",
        "purged": "Its content was deleted 12 months after it ended. The record of it stays."
      }
    }
  },
  "opportunities": {
    "seo": {
      "listTitle": "Opportunities · Who companies are looking for · Snypra",
      "listDescription": "Companies hiring through Snypra right now. Each search is live: create your profile and the company can find you."
    },
    "list": {
      "title": "Who companies are looking for right now",
      "lede": "Each card is a search a company is running on Snypra today.",
      "empty": "No search is open right now. New ones appear here as companies start them."
    },
    "detail": {
      "back": "All opportunities",
      "cta": "This is me: join Snypra"
    },
    "fact": {
      "company": "Company",
      "place": "Place",
      "remote": "Remote",
      "contract": "Contract",
      "salary": "Salary",
      "deadline": "Open until",
      "published": "Published"
    },
    "metric": {
      "views": "views",
      "cta_clicks": "clicks",
      "signups": "sign-ups"
    },
    "employment": {
      "FULL_TIME": "Full-time",
      "PART_TIME": "Part-time",
      "CONTRACTOR": "Freelance",
      "TEMPORARY": "Temporary",
      "INTERN": "Internship",
      "VOLUNTEER": "Volunteer",
      "PER_DIEM": "Day work",
      "OTHER": "Other"
    },
    "unit": {
      "HOUR": "hour",
      "DAY": "day",
      "WEEK": "week",
      "MONTH": "month",
      "YEAR": "year"
    },
    "gone": {
      "title": "This search is closed",
      "body": "The company is no longer looking through this page. Other searches are still open."
    },
    "notFound": {
      "title": "This search does not exist",
      "body": "The link may be mistyped, or the search was never published."
    },
    "loadFailed": "The searches could not be loaded.",
    "retry": "Try again",
    "how": {
      "title": "You don't apply here. You become visible.",
      "step1Title": "One profile",
      "step1Body": "You create one profile, not an application for this one job.",
      "step2Title": "Seen by every company",
      "step2Body": "Every company hiring on Snypra can read it, not just this one.",
      "step3Title": "You decide",
      "step3Body": "If one of them is interested, it invites you. You accept or decline. Your contact details stay hidden until you accept.",
      "note": "No CV to send, no application to file. It's free for candidates."
    }
  }
}
