{
  "avatarUpload": {
    "label": "Your photo",
    "helper": "Shown only to your Circle. Any photo from your phone or computer.",
    "alt": "Your photo",
    "signInAgain": "Please sign in again.",
    "badType": "Please pick a photo.",
    "tooLarge": "That photo is too large (max 50 MB).",
    "uploading": "Uploading…",
    "upload": "Upload photo",
    "change": "Change photo",
    "updated": "Photo updated ✓",
    "uploadError": "Couldn't upload — try again",
    "remove": "Remove photo",
    "removeConfirm": "Remove your photo?",
    "removed": "Photo removed",
    "removeError": "Couldn't remove photo — try again"
  },
  "brand": {
    "name": "Cozy Check-ins",
    "tagline": "A warm hello, every day."
  },
  "styleGuide": {
    "title": "Style Guide",
    "subtitle": "The look, voice, and feel of Cozy Check-ins.",
    "colors": "Colors",
    "typography": "Typography",
    "buttons": "Buttons",
    "ridge": "The Ridge",
    "ridgeNote": "A three-layer Appalachian ridge sits at the foot of warm screens — a quiet horizon, like the view from the porch.",
    "voice": "Voice",
    "voiceSample": "Tap the green button when you've had your coffee. Your Circle will know you're up and about.",
    "language": "Language",
    "jurisdiction": "Jurisdiction"
  },
  "buttons": {
    "checkIn": "I'm doing alright today",
    "secondary": "Tell my Circle",
    "ghost": "Not today",
    "heartNote": "The green button is the heart of the app."
  },
  "samples": {
    "displayHeadline": "Good morning, Mom.",
    "handwritten": "— love, the porch"
  },
  "voice": {
    "useThese": "Say this",
    "avoidThese": "Not this",
    "use": ["Mom", "Dad", "your folks", "Your Circle", "trusted local", "the green button", "tap"],
    "avoid": ["user", "patient", "wellness", "emergency contacts", "AI-powered"]
  },
  "consent": {
    "preview": "By tapping the green button, you're letting the folks in Your Circle know you're doing alright today. We never share your location."
  },
  "privacy": {
    "us_va": "Virginia residents: your check-ins stay with Your Circle. Read the full notice.",
    "mx": "Mexico residents: your check-ins stay with your Circle. Read the privacy notice.",
    "other": "Your check-ins stay with Your Circle. Read the full notice."
  },
  "orgImpact": {
    "loading": "Loading…",
    "noOrg": "No organization found for this account.",
    "back": "← Back to console",
    "title": "Impact & Funding",
    "subtitle": "Participation, safety, reliability, and connection — for funders and renewals.",
    "adminOnly": "Only an organization admin can view impact data.",
    "footnote": "Counts are de-identified and aggregate. A daily check-in proves contact. Cost and hours-saved figures are estimates based on the inputs shown.",
    "csvNote": "De-identified monthly aggregates.",
    "openLink": "Impact & Funding",
    "export": {
      "csv": "Export CSV",
      "pdf": "Grant report (PDF)"
    },
    "report": {
      "preparedFor": "Prepared for",
      "range": "Date range",
      "generated": "Generated"
    },
    "range": {
      "thisMonth": "This month",
      "ytd": "Year to date",
      "t12": "Trailing 12 months",
      "all": "All time",
      "custom": "Custom",
      "from": "From month",
      "to": "To month"
    },
    "kpi": {
      "activeSeniors": "Active seniors",
      "responseRate": "Response rate",
      "daysIndependent": "Check-ins made",
      "alertsDelivered": "Family alerts delivered",
      "falseAlarms": "Checked in after the family was told",
      "smsDelivery": "Texts sent successfully"
    },
    "chart": {
      "responseRate": "Response rate over time",
      "callsConnected": "Calls connected",
      "noData": "No data in this range yet."
    },
    "empty": {
      "title": "No data yet",
      "body": "This fills in once members start checking in.",
      "smallTitle": "Fewer than 5 families so far",
      "smallBody": "Numbers show for a month once 5 or more families check in that month. This keeps every family private."
    },
    "error": {
      "body": "We couldn't load impact data right now — please try again in a moment.",
      "retry": "Try again"
    },
    "derived": {
      "title": "Efficiency & cost",
      "estimate": "Estimates — based on the assumptions you enter below.",
      "programCost": "Your monthly program cost (USD)",
      "enterCost": "e.g. 500",
      "costPerSenior": "Cost per senior served",
      "minutesPerCall": "Minutes saved per manual call (assumption)",
      "hoursSaved": "Estimated volunteer hours saved"
    },
    "summary": "{{org}}: {{activeSeniors}} older adults reached, a {{responseRate}} daily check-in response rate, and {{days}} check-ins made over {{range}}.",
    "estimateTag": "estimate",
    "methodology": {
      "title": "Methodology & privacy",
      "body": "Counts come from Cozy Check-ins' own records: the daily check-in log and the notification log. They include families linked to your organization and families who signed up through your partner link. Response rate = check-ins made ÷ check-ins scheduled. Only whole, finished months are shown, and a month with fewer than 5 active families is not shown. Cost and hours-saved figures are estimates based on the values you enter.",
      "privacy": "All figures are aggregated and de-identified — no individual is named."
    },
    "email": {
      "button": "Email report",
      "dialogTitle": "Email impact report",
      "dialogDesc": "We'll email a plain-text summary of the current range to you, so you can forward it to a funder or partner.",
      "messageLabel": "Optional message",
      "messagePlaceholder": "A short note to include in the report…",
      "send": "Send",
      "sending": "Sending…",
      "cancel": "Cancel",
      "sent": "Report sent to your email.",
      "error": "Couldn't send the report.",
      "subject": "{{org}} — Impact & Funding report ({{range}})",
      "methodology": "All figures aggregated and de-identified."
    },
    "groups": {
      "outputs": "Outputs",
      "outputsHint": "What the program delivered during this period.",
      "outcomes": "Outcomes",
      "outcomesHint": "Check-ins made and who was reached. Counts only, no names."
    },
    "narrative": {
      "title": "Program context (optional)",
      "hint": "Add short narrative context for funders. Included in the PDF and email.",
      "programLabel": "Program narrative",
      "programPlaceholder": "Describe the program, population served, and this period's highlights…",
      "testimonialLabel": "Testimonial (anonymized)",
      "testimonialPlaceholder": "A short quote from a participant or family member…",
      "testimonialHelper": "Please remove names and identifying details before sharing."
    },
    "goals": {
      "title": "Goals vs. actual (optional)",
      "hint": "Set targets for this period. Actuals appear beneath each KPI.",
      "responseRateGoal": "Response rate goal (%)",
      "activeSeniorsGoal": "Active seniors goal",
      "callsConnectedGoal": "Check-in calls connected goal",
      "goalLabel": "Goal",
      "actualLabel": "Actual"
    },
    "sroi": {
      "title": "Estimated social return (optional)",
      "tag": "Illustrative estimate",
      "hint": "A rough, editable estimate for grant narratives — not a measured program outcome.",
      "costLabel": "Program cost for this period (USD)",
      "benchmarkLabel": "Benchmark $ returned per $1 invested",
      "estimatedReturn": "Estimated social return",
      "perSenior": "Per senior served",
      "caption": "Illustrative estimate based on published research on social-connection programs — not a measured outcome of this program.",
      "citationLabel": "Citation (editable)",
      "citationDefault": "Adapted from published social-connection program benchmarks."
    },
    "demographics": {
      "title": "Demographics (US, aggregate)",
      "hint": "Optional, self-reported. Aggregated and de-identified.",
      "empty": "No demographic responses yet. Members can share these optional details on their profile.",
      "suppressed": "Other / not shown (<5)",
      "cat": {
        "ageBand": "Age",
        "gender": "Gender",
        "raceEthnicity": "Race / Ethnicity",
        "livesAlone": "Lives alone",
        "areaType": "Area",
        "incomeBand": "Household income",
        "veteranStatus": "Veteran status"
      },
      "val": {
        "woman": "Woman",
        "man": "Man",
        "nonbinary": "Nonbinary",
        "self_describe": "Self-describe",
        "white": "White",
        "black": "Black or African American",
        "hispanic_latino": "Hispanic or Latino",
        "asian": "Asian",
        "aian": "American Indian or Alaska Native",
        "nhpi": "Native Hawaiian or Pacific Islander",
        "mena": "Middle Eastern or North African",
        "multiracial": "Two or more races",
        "other": "Other",
        "yes": "Yes",
        "no": "No",
        "unknown": "Unknown",
        "rural": "Rural",
        "suburban": "Suburban",
        "urban": "Urban",
        "prefer_not": "Prefer not to say"
      }
    },
    "verifyTitle": "Verify it's you",
    "verifyBody": "This information needs an extra security check.",
    "privacy": {
      "smallGroupsNote": "Months with fewer than 5 active families are not shown, so no one family can be picked out."
    }
  },
  "adminOrgInvite": {
    "title": "Invite an organization",
    "subtitle": "Create an invite link for a new org partner. They'll set up their account and land in their dashboard.",
    "orgNameLabel": "Organization name",
    "orgNamePh": "e.g. Tazewell County Council on Aging",
    "emailLabel": "Owner's email",
    "emailPh": "name@agency.org",
    "submit": "Create invite",
    "submitting": "Creating…",
    "error": "Couldn't create the invite. (Only platform admins can do this.)",
    "successTitle": "Invite created",
    "successBody": "We emailed the link to {{email}}. You can also copy it below.",
    "linkLabel": "Invite link",
    "copy": "Copy",
    "copied": "Copied",
    "another": "Create another",
    "sentTitle": "Invites sent",
    "sentEmpty": "No invites yet.",
    "statusPending": "Waiting",
    "statusUsed": "Used",
    "statusExpired": "Expired",
    "linkWorksUntil": "Link works until {{date}}",
    "revoke": "Revoke",
    "revokeConfirm": "Revoke this invite? Its link stops working.",
    "revokeYes": "Yes, revoke",
    "revokeKeep": "Keep it",
    "revoking": "Revoking…",
    "revoked": "Invite revoked. Its link no longer works.",
    "revokeFailed": "Couldn't revoke the invite.",
    "alreadyUsed": "This invite was already used.",
    "listFailed": "Couldn't load the invites.",
    "listNeedsMfa": "Two-step sign-in is needed to see the invites.",
    "verify": "Verify"
  },
  "orgInvite": {
    "loading": "Checking your invite…",
    "invalidTitle": "This invite link isn't valid",
    "invalidBody": "Double-check the link, or ask whoever invited you to send a new one.",
    "expiredTitle": "This invite has expired",
    "expiredBody": "Invite links last 7 days. Ask for a fresh one.",
    "usedTitle": "This invite was already used",
    "usedBody": "This link has already set up an organization. Try logging in instead.",
    "title": "Set up {{org}}",
    "intro": "Create a password for {{email}} to finish setting up your organization.",
    "passwordLabel": "Create a password",
    "confirmLabel": "Confirm password",
    "shortPassword": "Use at least 12 characters.",
    "mismatch": "Those passwords don't match.",
    "create": "Create my organization",
    "creating": "Setting up…",
    "accountExists": "That email already has an account. Please log in first, then contact us to finish org setup.",
    "errorBody": "Something went wrong. Please try again.",
    "acceptedTitle": "You're in!",
    "acceptedBody": "Add Cozy Check-ins to your home screen and turn on alerts so you don't miss anything.",
    "continueToConsole": "Continue to Org Console"
  },
  "checkin": {
    "cozy": {
      "eyebrow": "Your daily check-in",
      "tagline": "A little hello, every day",
      "today": "Today",
      "disclaimer": "Cozy Check-ins is a daily check-in, not an emergency or medical-alert service. In an emergency, call 911.",
      "footer": "Checking in, not checking up.",
      "language": "Language"
    },
    "otherDevice": "This phone is not registered for check-ins, so this did not count. Look for a text from Cozy Check-ins with a link, and open it on your own phone.",
    "moodPrompt": "How are you feeling today?",
    "moodSaved": "Mood saved — Your Circle can see how you're feeling.",
    "mood": {
      "good": "Great",
      "okay": "So-so",
      "notSoGood": "Low"
    },
    "bmButton": "Check in",
    "bmConfirmedBefore": "You're all checked in,",
    "bmConfirmedAfter": "!",
    "bmCheckedInAt": "Checked in at {{time}}",
    "bmKnowsOne": "{{contacts}} knows you checked in. 💚",
    "bmKnowsMany": "{{contacts}} know you checked in. 💚",
    "bmComeBackTomorrow": "Come back tomorrow at {{time}}.",
    "bmAddNote": "Add a note for {{contacts}}",
    "bmOptional": "(optional)",
    "bmNotePlaceholder": "How are you feeling today?",
    "bmSending": "Sending…",
    "bmShare": "Share with My Circle",
    "bmNoteError": "Couldn't send — please try again.",
    "bmNoteShared": "✓ Note shared with {{contacts}}",
    "bmNotReadyTitle": "Your check-in isn't ready yet",
    "bmComeBackAtPrefix": "Come back at ",
    "bmComeBackAtSuffix": " to check in.",
    "bmBookmarkHint": "Bookmark this page — it's your daily check-in home.",
    "greeting": "Hello, {{name}}",
    "ready": "Tap when you're ready",
    "timeLabel": "Your check-in time: {{time}}",
    "button": "Check in today",
    "buttonAria": "Check in today, {{name}}",
    "sunGlyphAlt": "Morning sun",
    "confirmTitle": "You're set for today, {{name}}.",
    "confirmCheckAlt": "Check-in confirmed",
    "quote": "Every morning brings new potential — but only if you make the most of it.",
    "quoteAttribution": "— Ralph Marston",
    "notified": "{{contacts}} have been notified. See you tomorrow at {{time}}.",
    "listJoin": " and ",
    "enablePush": "Turn on reminders on this phone",
    "pushEnabled": "Reminders on ✓",
    "pushDenied": "No problem — you'll still get your text reminder.",
    "waiting": "Your {{time}} check-in is waiting — tap below to check in.",
    "catchupCta": "Check in for today",
    "catchupHint": "Your {{time}} check-in time has already passed today — tap to check in.",
    "push": {
      "on": "Reminders on ✓",
      "iosTitle": "Put Cozy on your Home Screen 💛",
      "iosBody": "This lets Cozy send your daily reminder like an app.",
      "iosStep1": "1. Tap Share",
      "iosStep2": "2. Tap Add to Home Screen",
      "headingIos": "One last thing",
      "headingOther": "Finish setting up your reminders",
      "buttonIos": "Set up my reminders",
      "buttonOther": "Set up my reminders",
      "busy": "One moment…",
      "blocked": "Your phone didn't allow reminders. Your usual message will still arrive.",
      "howTo": "Tap the button below. When your phone asks, tap Allow.",
      "unblock": "To fix it: tap the lock next to the web address at the top, tap Permissions, tap Notifications, then tap Allow. Then tap the button again."
    },
    "bigButton": "Check-in",
    "notYet": "Not yet",
    "moreOptions": "More options",
    "textSize": {
      "label": "Text size",
      "large": "Large text",
      "larger": "Larger text",
      "largest": "Largest text"
    },
    "turnOn": {
      "oneMoment": "One moment…",
      "title": "Finish setting up your daily reminder",
      "button": "Set up my reminders",
      "hint": "Then tap Allow.",
      "allow": "Now tap Allow",
      "allowHint": "It's on the box that just popped up.",
      "doneTitle": "✓ All set!",
      "doneBody": "Your daily reminder will show up on this phone.",
      "doneButton": "Done",
      "blockedTitle": "Your phone said no. Here's how to fix it:",
      "blocked1": "1. Tap the small icon to the left of the web address, at the top.",
      "blocked2": "2. Tap Notifications (it may be under Permissions).",
      "blocked3": "3. Choose Allow. Then come back and tap Try again.",
      "tryAgain": "Try again",
      "unsupported": "This phone can't show reminders from Cozy. Your text messages will keep coming.",
      "ok": "OK",
      "needChrome": "Your reminders work in Chrome.",
      "needSafari": "Your reminders work in Safari.",
      "openChrome": "Open in Chrome",
      "openSafari": "Open in Safari",
      "braveTitle": "Brave needs one switch turned on:",
      "brave1": "1. Open Brave's menu, then tap Settings.",
      "brave2": "2. Tap Privacy and security.",
      "brave3": "3. Turn on “Use Google services for push messaging.” Then come back and tap Try again.",
      "iosApp1": "1. Open your iPhone's Settings.",
      "iosApp2": "2. Tap Notifications, then Cozy.",
      "iosApp3": "3. Turn on Allow Notifications. Then come back and tap Try again.",
      "macSafari1": "1. At the top of the screen, click Safari, then Settings.",
      "macSafari2": "2. Click Websites, then Notifications.",
      "macSafari3": "3. Next to cozycheckins.com, choose Allow. Then come back and tap Try again.",
      "proveLook": "Look at the top of your screen. It can take a few seconds.",
      "proveAsk": "Tap the Cozy Check-ins message that just popped up.",
      "proveNo": "I don't see it",
      "hiddenTitle": "Your phone hid it. Here's how to show it:",
      "hiddenAndroid1": "1. Open your phone's Settings.",
      "hiddenAndroid2": "2. Tap Notifications, then App notifications, then {{browser}}. Turn it on.",
      "hiddenAndroid3": "3. Tap {{browser}} again, then Sites. Turn it on and choose Alert. Then come back and tap Try again.",
      "hiddenIos1": "1. Open your iPhone's Settings.",
      "hiddenIos2": "2. Tap Notifications, then Cozy.",
      "hiddenIos3": "3. Turn on Allow Notifications and Banners. Then come back and tap Try again.",
      "hiddenOther1": "1. Open your computer's Settings.",
      "hiddenOther2": "2. Open Notifications, then find your web browser.",
      "hiddenOther3": "3. Turn its notifications on. Then come back and tap Try again.",
      "hiddenTexts": "Your text messages will keep coming.",
      "app1": "1. Open your phone's Settings.",
      "app2": "2. Tap Apps, then Cozy Check-ins.",
      "app3": "3. Tap Notifications and turn them on. Then come back and tap Try again."
    }
  },
  "invite": {
    "loading": "Just a moment…",
    "invalidTitle": "This invite link can't be opened",
    "invalidBody": "It may have expired or already been used. Please ask the person who invited you to send a new one.",
    "heading": "A warm invitation",
    "intro": "Hi — {{inviter}} ({{relationship}}) would like to set you up with {{brand}}, a friendly daily check-in text. Receiving these texts is completely your choice.",
    "how": "Each day at {{time}}, you'd tap a green button on your phone. If you don't tap it, {{inviter}} gets a text.",
    "promise": "No location tracking. No data shared beyond your check-in.",
    "accept": "Yes — text me my daily check-in",
    "decline": "No thanks — don't text me",
    "optionalNote": "This is your choice. If you tap \"No thanks,\" we won't text you and no account is created.",
    "readFull": "Read the full notice",
    "privacyTitle": "Plain-language privacy notice",
    "vaCollected": "What we collect: your name, your phone number, and your daily check-in status (tapped or not tapped).",
    "vaShared": "Who sees it: only the people in Your Circle that the person inviting you has added.",
    "_vaRetention_TODO": "LEGAL REVIEW NEEDED: retention period in vaRetention is set to 24 months to match purge_old_check_ins(). Confirm with counsel whether the applicable VA rules require a different period before this string is treated as final.",
    "vaRetention": "How long we keep it: check-in history is kept for 24 months, then deleted automatically.",
    "vaRights": "You can ask us to delete everything at any time, no questions asked.",
    "mxNoticeTitle": "Privacy notice",
    "mxControllerLabel": "Data controller",
    "mxControllerValue": "Cozy Check-ins",
    "mxDataLabel": "Data we collect",
    "mxDataValue": "Name, mobile number, and your daily check-in status (tapped or not tapped).",
    "mxSensitiveLabel": "Sensitive data",
    "mxSensitiveValue": "This app does not collect sensitive data (health, biometric, location, or financial data).",
    "mxPurposesLabel": "Purposes",
    "mxPurposesValue": "To record your daily check-in for the people in Your Circle, and if you don't check in, to send them a text.",
    "mxTransferTitle": "International data transfer",
    "mxTransferBody": "Your data will be transferred to and stored in the United States. The recipients are the app itself and the providers that carry our messages and power our helpers: Telnyx, Inc. (SMS and phone calls), Twilio, Inc. (phone number checks), Meta Platforms, Inc. (WhatsApp delivery and our support inbox), and — only if you use Phone Help — Google LLC and Anthropic, PBC, all based in the United States. The full list, with what each one receives, is on our Service Providers page.",
    "mxTransferCheckbox": "I agree that my data will be transferred to and stored in the United States.",
    "goodbyeTitle": "Thank you for letting us know.",
    "goodbyeBody": "{{inviter}} has been told you'd rather not. No account was created. Take care.",
    "acceptedTitle": "All set — welcome.",
    "acceptedBody": "Taking you to your morning check-in…",
    "almostDoneTitle": "Almost done — check your phone.",
    "almostDoneBody": "We just texted you. Reply YES to that message to finish setting up. Your first check-in arrives at your scheduled time.",
    "smsConsent": "I agree to receive recurring SMS check-in reminders from Cozy Check-ins at my phone number. Message frequency varies. Message and data rates may apply. Reply STOP to unsubscribe or HELP for help.",
    "smsPrivacyLink": "Privacy Policy",
    "smsTermsLink": "SMS Terms"
  },
  "nav": {
    "how": "How it works",
    "pricing": "Pricing",
    "blog": "Blog",
    "orgs": "For organizations",
    "waitlist": "Join the waitlist",
    "applyBeta": "Join the waitlist",
    "joinBeta": "Get started",
    "signIn": "Sign in",
    "home": "Home"
  },
  "footer": {
    "tagline": "a warm hello, every day",
    "privacy": "Privacy Policy",
    "smsTerms": "SMS Terms",
    "terms": "Terms of Service",
    "refunds": "Refund Policy",
    "contact": "Contact",
    "about": "About",
    "copyright": "© 2026 Cozy Check-ins. All rights reserved. No marketing texts, no data sold, no location tracking.",
    "legalEntity": "Cozy Checkins LLC · 800 E Main St - Ste 330 PMB 1015, Wytheville, VA 24382 · support@cozycheckins.com",
    "voiceTerms": "Voice Call Terms",
    "providers": "Service Providers",
    "download": "Get the app"
  },
  "swam": {
    "alt": "Certified SWaM: Small, Women and Minority-Owned, by the Virginia Department of Small Business & Supplier Diversity",
    "footerLine": "Virginia SWaM-certified small business · SBSD #846850",
    "title": "Virginia SWaM-certified",
    "body": "Cozy Checkins LLC is certified by the Virginia Department of Small Business and Supplier Diversity (SBSD) as a Small and Micro business under the SWaM program, certification #846850. We're listed in the state's SWaM directory.",
    "verify": "Look us up in the SWaM directory"
  },
  "home": {
    "metaTitle": "Cozy Check-ins — Daily check-ins for older adults",
    "metaDescription": "Your parent gets a daily check-in with one big button, as a phone notification or a text. One tap, and their whole Circle sees they checked in. Nothing to learn.",
    "ogDescription": "Your parent gets a daily check-in with one big button, as a phone notification or a text. One tap, and their whole Circle sees they checked in.",
    "heroEyebrow": "THE DAILY CHECK-IN THAT FEELS LIKE FAMILY",
    "heroTitle": "Cozy Check-ins: daily check-ins for older adults.",
    "heroBody": "Your parent gets a daily check-in with one big button — a text, or a phone notification from the Cozy Check-ins app. One tap, and their whole Circle sees they checked in. No smartphone? A short daily call instead. Nothing to download, nothing to learn.",
    "ctaGetStarted": "Join the waitlist",
    "ctaSeeHow": "See how it works",
    "tryEyebrow": "TRY IT — TAP THE BUTTON",
    "tryHint": "← go on, give it a tap",
    "btnImOkay": "Check in\ntoday",
    "btnSet": "You're set\nfor today",
    "parentsLabel": "Parents",
    "editPhotos": "✏ Edit diagram photos",
    "howEyebrow": "HOW IT WORKS",
    "howTitle": "Three taps to peace of mind",
    "howBody": "Nothing to learn. Your parent taps one button in a daily text or a daily phone notification. No smartphone? They get a short daily phone call instead and press 1 (US numbers).",
    "step1Title": "You set it up",
    "step1Body": "Enter your parents' number. We text them a setup link — or, on paid plans, if they don't have a smartphone, we call them (US numbers). Done in 5 minutes. No app store download for them — their button can sit right on their home screen.",
    "step2Title": "Parents tap their button",
    "step2Body": "One big porch-light button at the check-in time you choose — up to three times a day — or one press of 1 on their daily call. No login, no password, no confusion.",
    "step3Title": "Their Circle sees the check-in",
    "step3Body": "Their check-in shows up for everyone in the Circle. If they miss it, the system lets everyone know.",
    "howClosing": "That's it. One notification or text, one tap — or one call, one press. Nothing to learn.",
    "pricingTitle": "Simple, neighborly pricing",
    "planFree": "Hometown Phone",
    "planFreeFeatures": [
      "1 check-in call a day for each parent (US numbers)",
      "Both parents included, each with their own number",
      "2 family members in the Circle",
      "A text to the family if the call is missed",
      "No smartphone needed, nothing to download"
    ],
    "planFreeCta": "Join the waitlist",
    "planPlus": "Hometown Family",
    "planPlusFeatures": [
      "2 check-ins per day",
      "Both parents included, each with their own number",
      "Up to 3 family members in the parents' Circle",
      "Full SMS cascade if they miss",
      "Check-in confirmation to everyone",
      "One automated reminder call a day if a check-in is missed",
      "Daily phone-call check-in for a parent without a smartphone (US numbers)"
    ],
    "planPlusFootnote": "",
    "planPlusCta": "Start Hometown Family",
    "planFamily": "Hometown Plus",
    "planFamilyFeatures": [
      "3 check-ins per day",
      "Both parents included, each with their own number",
      "Up to 3 family members in the parents' Circle",
      "Full SMS cascade if they miss",
      "Up to 3 trusted friends or neighbors",
      "One automated reminder call a day if a check-in is missed",
      "Daily phone-call check-in for a parent without a smartphone (US numbers)"
    ],
    "planFamilyFootnote": "The only plan where a real neighbor is part of the safety net.",
    "planFamilyCta": "Start Hometown Plus",
    "pricingDisclaimer": "By joining, you agree to receive SMS notifications about daily check-ins. Reply STOP to opt out anytime. Message & data rates may apply. See our",
    "trialNote": "Your first paid plan starts with a 14-day free trial, no card needed. Then a 30-day money-back guarantee on your first payment. The free trial needs your own phone number on your account. If your own number is an internet-only number, like Google Voice or TextNow, you can't get the free trial, but you can still subscribe. Your parent's number doesn't affect the trial.",
    "usPricesNote": "These prices are for the United States, in US dollars.",
    "mxListHeading": "Live in Mexico?",
    "mxListBody": "Prices for Mexico aren't out yet. Join the Mexico waitlist and we'll let you know as soon as they're ready.",
    "orgsTitle": "Built for organizations too",
    "orgsBody": "Senior centers, VFW posts — manage your whole community from one simple dashboard.",
    "orgsContact": "We welcome all organizations, big or small.",
    "orgsContactCta": "Let's talk →",
    "orgWaitlistHeading": "Get in touch about your organization",
    "orgWaitlistSubhead": "Tell us who you are and we'll reach out about a pilot for your organization.",
    "orgWaitlistNameLabel": "Your name",
    "orgWaitlistNamePlaceholder": "Your name",
    "orgWaitlistEmailLabel": "Work email",
    "orgWaitlistEmailPlaceholder": "you@organization.org",
    "orgWaitlistButton": "Request org info",
    "orgWaitlistSubmitting": "Sending…",
    "orgWaitlistFinePrint": "We'll only use this to reach out about a pilot for your organization.",
    "orgWaitlistSuccess": "Thanks — we'll be in touch about a pilot for your organization.",
    "orgWaitlistErrNameRequired": "Please enter your name.",
    "orgWaitlistErrEmailInvalid": "Please enter a valid email address.",
    "orgWaitlistErrEmailTaken": "We already have that email — please use a different one.",
    "orgWaitlistErrEmailBlocked": "Please use a work or permanent email — temporary addresses aren't accepted.",
    "orgWaitlistErrNetwork": "Something went wrong. Please try again.",
    "orgWaitlistCheckStuck": "The security check didn't finish.",
    "orgWaitlistCheckStuckHint": "If trying again doesn't work, open this page in another browser, or turn off your browser's tracker and ad blocking for this site.",
    "orgWaitlistCheckRetry": "Try again",
    "orgWaitlistCheckCode": "Code",
    "orgWaitlistCheckTap": "Tick the box above to continue.",
    "blogEyebrow": "FROM THE BLOG",
    "blogTitle": "Gentle guides for families and communities",
    "blogBody": "Practical, non-medical ways to help older adults stay independent — for families, senior centers, and community groups.",
    "blogReadMore": "Read more on the blog →",
    "faqEyebrow": "QUESTIONS FAMILIES ASK",
    "faqTitle": "A few quick questions, answered",
    "faqs": [
      {
        "q": "Do my parent and I need to download an app?",
        "a": "Your parent never needs an app store download. The daily check-in is a text with one button, or a notification from their Cozy Check-ins page: Android phones turn notifications on right in the browser, and an iPhone (iOS 16.4 or later) needs Cozy Check-ins added to the Home Screen first (Share, then Add to Home Screen) — no App Store. Prefer an app for a more hands-on daily check-in? Cozy Check-ins works like one from the home screen — always optional. You'll set everything up from any web browser; your own alerts can come as notifications too, which on an iPhone also means Cozy Check-ins on your Home Screen. If your parent doesn't have a smartphone at all, Cozy Check-ins can call them instead: one short automated call each day, and they press 1 to check in (US numbers).",
        "more": {
          "label": "Read how the daily check-in call works",
          "href": "/blog/daily-check-in-call-for-parent-without-smartphone"
        }
      },
      {
        "q": "Is this a medical alert or an emergency service?",
        "a": "No. Cozy Check-ins is a non-medical daily check-in for everyday peace of mind — not an emergency device and not a substitute for 911. Many families use it alongside a medical alert. In an emergency, always call 911. If you're comparing options, Cozy Check-ins is a non-medical senior check-in service: one daily check-in tap, and family is alerted if it's missed."
      },
      {
        "q": "What happens if my parent misses a check-in?",
        "a": "If your parent doesn't tap their button, the family Circle you've chosen is notified so someone can reach out. It's a gentle nudge to a real person who cares — not an automated emergency response."
      },
      {
        "q": "Will it track my parent's location?",
        "a": "Never. No GPS, no cameras, no location tracking. Cozy Check-ins only knows your parent tapped their check-in button — presence, not surveillance. We don't sell data."
      },
      {
        "q": "Is there a contract, or can I cancel anytime?",
        "a": "No long-term contract — Cozy Check-ins is month-to-month, and you can cancel anytime. If it's not the right fit for your family, you're free to stop whenever you like."
      },
      {
        "q": "Will my parent find it annoying?",
        "a": "Most don't — there's almost nothing to it: one friendly \"good morning\" notification or text, and one tap, on their terms. They stay in control. It's checking in, not checking up."
      },
      {
        "q": "My mom refuses to wear her medical alert pendant. How can I know she checked in each day?",
        "a": "You're not alone — many older adults leave the pendant in a drawer. Cozy Check-ins doesn't ask her to wear anything. Each day she gets one friendly notification or text and taps one button to check in; if she doesn't, you and the rest of her Circle are notified so someone can call. It isn't a replacement for an alert pendant in a fall or emergency — it's the everyday check-in signal that a pendant she won't wear can't give you."
      }
    ],
    "ctaReadyTitle": "Ready for a calmer morning?",
    "ctaReadyNote": "No app store download for your parent. Reply STOP anytime."
  },
  "privacyStop": {
    "title": "Stop this privacy request?",
    "body": "Someone made a privacy request on your Cozy Check-ins account. If it wasn't you, stop it here.",
    "button": "Stop the request",
    "result_stopped": "Stopped. Nothing will be released for this request. If you didn't make it, change your password and your privacy passcode.",
    "result_stopped_late": "Stopped. The 72-hour hold had already ended, so our team may already have acted on it. No copy of the data was downloaded, and none can be now. If you didn't make this request, change your password and your privacy passcode, and write to support@cozycheckins.com.",
    "result_stopped_after_download": "Stopped, but a copy of the data had already been downloaded. Nothing more will be released for this request. If you didn't make it, change your password and your privacy passcode now, and write to support@cozycheckins.com.",
    "result_already_stopped": "This request was already stopped. Nothing more will be released for it.",
    "result_invalid": "This link doesn't work anymore. If you need help, write to support@cozycheckins.com.",
    "result_error": "Something went wrong. Please try again in a minute. If it keeps failing, write to support@cozycheckins.com."
  },
  "recoveryStop": {
    "title": "Stop a sign-in request",
    "body": "Didn't ask to get back into your Cozy Check-ins account? Press the button and we'll freeze the request. Nobody can use it after that.",
    "button": "This wasn't me — stop it",
    "result_frozen": "Stopped. Nobody can use that request. Our team has been told. Consider changing your password.",
    "result_already_frozen": "This request was already stopped. Nothing more to do.",
    "result_already_used": "That request was already used to add a new device. Our team has been told right away and will contact you. Please change your password now.",
    "result_invalid": "This link isn't valid anymore.",
    "result_error": "Something went wrong. Please try again, or email support@cozycheckins.com."
  },
  "privacyPage": {
    "metaTitle": "Privacy Policy — Cozy Check-ins",
    "metaDescription": "How Cozy Check-ins collects, uses, and protects your data. We never sell or share mobile information with third parties or affiliates for marketing.",
    "title": "Privacy Policy",
    "effective": "Effective date: {{date}}",
    "intro": "Cozy Check-ins is a daily check-in service operated from Virginia, USA. Contact:",
    "mobileTitle": "Mobile information & SMS",
    "mobileBold": "No mobile information will be shared with third parties or affiliates for marketing or promotional purposes.",
    "mobileBody": "Mobile phone numbers and SMS opt-in/consent data are never sold and are not shared with any third parties or affiliates for their own marketing or promotional purposes. We use a small number of service providers (such as Supabase, Telnyx, Twilio, Meta for WhatsApp, Resend, and Stripe) only to operate the service — the full list is on our Service Providers page.",
    "collectTitle": "What we collect",
    "collectBody1": "For the senior: name, mobile number, time zone, check-in times, and daily check-in status and history; if the family adds them, a home address (shown to trusted neighbors only when the family owner allows it) and a profile photo; and, if the senior uses them, daily notes and photos shared with Your Circle. For family members and trusted contacts: name, email address, mobile number, role, and an optional profile photo. To help us improve Cozy Check-ins and show funders and partner organizations where families need us: an age range for the senior and for everyone with an account, the senior's city and state, and, if you choose to add them, the senior's ZIP code and male or female, and your own country, state, city, and ZIP code. We use these only for statistics; anyone outside Cozy Check-ins sees only totals, never names. For each account: email address, a password (kept scrambled by our sign-in provider), the privacy passcode (kept scrambled), and plan status (payments go directly to Stripe; we never see your full card number). To keep accounts secure and prevent abuse: the devices you trust for sign-in, the network (IP) address of requests, and, to keep each free trial to one per family, scrambled (hashed) copies of the phone numbers, network address, and device marker used for a trial. We also keep timestamped consent records (including device and approximate network info), language and jurisdiction, and what you send us through Report a problem or support. Photos are optional, never required to use the service, and never used for facial recognition or advertising.",
    "collectApp": "The Cozy Check-ins phone app (Android) asks only for permission to show notifications. It cannot read your location, contacts, camera, microphone, or files on its own; a photo is uploaded only when you pick one. To deliver notifications, it keeps a device token from Google's Firebase Cloud Messaging. On the senior's own phone, it saves the phone's model and system version so the family can help with that phone.",
    "collectBody2Pre": "We do",
    "collectBody2Not": "not",
    "collectBody2Mid1": "track your location (no GPS), do",
    "collectBody2Mid2": "sell data, and do",
    "collectBody2Post": "use it for advertising.",
    "useTitle": "How we use it",
    "useBody": "To send the daily reminder you opted into, notify Your Circle of a missed check-in, send a check-in update when a missed check-in is resolved, and keep a consent/activity record. We also use it to run your account and plan, keep sign-in secure, prevent abuse and repeat free trials, answer support requests, fix problems (error reports have phone numbers removed), and understand and improve the service with statistics that can't identify you.",
    "visitsTitle": "Visits to our website",
    "visitsBody": "When you open one of our public pages (like the home page or the blog), we count the visit with PostHog: which page, the site you came from (for example Google), your browser, device type, screen size, language and time zone, and how long the page stayed open. We also count a few steps on the way to joining: a tap on a join button, starting or sending the waitlist form or the sign-up form, the robot check stopping one of them, and an account being made. Each is counted like a page visit, with the same details listed above plus the name of the step. For this we put nothing on your device (no cookies), build no profile, and never record your screen, what you type, or any other click. Web addresses are cut short before they are sent, so codes and search words are removed. Signed-in pages, links that carry a code, and the Cozy Check-ins app are never counted, and if your browser sends Do Not Track or Global Privacy Control, nothing is counted. Like any website, PostHog sees your device's network (IP) address when the count arrives; we ask it not to look up a location from it. Cozy Check-ins also keeps its own daily totals for these pages (how many visits each page had, the kind of place they came from, such as a search engine or social media, the time on screen, and the same join steps), with no network address or device details. We use these counts only to learn how families find us.",
    "storiesTitle": "Stories you send us",
    "storiesBody": "If you send us a story from your dashboard, we keep it with your account and read it. We share it only the way you choose when you send it: not at all, with the first name and state you type, or with no name. You can ask us to remove it at any time at support@cozycheckins.com, and deleting your account deletes your stories.",
    "smsTitle": "SMS Messaging",
    "smsBody": "We send recurring transactional SMS only to recipients who personally opt in on their own handset. Message frequency varies (typically about one check-in per day, plus alerts if a check-in is missed). Message and data rates may apply. Reply HELP for help or STOP to unsubscribe at any time. Mobile phone numbers and SMS opt-in/consent data are never sold and are never shared with third parties or affiliates for their marketing or promotional purposes.",
    "seenTitle": "Who sees it",
    "seenBody": "Only the people in Your Circle you designated. Data is stored encrypted in the United States. If your check-ins are sponsored by an organization (such as a senior center), that organization's authorized staff can see the basic profile information needed to run check-ins for the members it sponsors — first name, mobile number, check-in status, and an optional profile photo. Organizations cannot see members of other families or other organizations.",
    "mxTitle": "Mexico users and ARCO rights",
    "mx": [
      "The personal data we process includes name, mobile number, time zone, daily check-in time and status, an optional profile photo, and consent records. When an organization sponsors the check-ins, its authorized staff can see that basic information for the members it sponsors. Your data is transferred to and stored in the US with your consent. The party responsible for it is Cozy Checkins LLC; our address and contact details are at the foot of this page.",
      "**ARCO rights.** The person the data is about — for example, the senior — or their legal representative can ask at any time for access to it, to rectify or cancel it, or to oppose a particular use of it. It is free.",
      "**How to ask.** In the app, the family owner can make requests on our [privacy & data access page](/privacy/data-access) with their privacy passcode; for security, each request made in the app is held for up to 72 hours, and we email the account holder as soon as it is made. Anyone can also write to [support@cozycheckins.com](mailto:support@cozycheckins.com) — no account or passcode needed.",
      "**What an email request must include.** The name of the person the data is about and an email address or other way to reply; a document proving their identity — or, when a representative asks, proof of both people's identities and a document showing the representation; the right being exercised and, except for access, which data it concerns (for a correction, also what should change and any document that supports it); and anything else that helps us find the data. If something is missing, we will ask for it.",
      "**Deadlines.** We give our answer within 20 business days of receiving a request and, if the request is granted, carry it out within the following 15 business days. Each deadline can be extended once, by an equal period, when the case justifies it, and we will say why. The hold of up to 72 hours runs inside these deadlines, not on top of them.",
      "**How access is delivered.** In the app, the copy can be downloaded only from the family owner account that made the request with its passcode, for 7 days once the hold ends; after that, a new request is needed. For a request by email, we hand over a copy only after confirming the identity of the person or their representative; we answer by email and agree with them on how to deliver it.",
      "**Complaints to the authority.** If the person is not satisfied with our answer, or does not get one in time, they can file a data-protection complaint with Mexico's Secretaría Anticorrupción y Buen Gobierno within 15 business days of our answer, or once the deadline to answer has passed."
    ],
    "rightsTitle": "Your rights",
    "rights": [
      "You can ask for a copy of your information, ask us to correct or delete it, or ask us to stop a particular use of it. Requests are free, and we act on them within 30 days of receiving them (the deadlines for Mexico are in the section above). Consent records, and a record of each privacy request (its kind, when it was made, and each step our system recorded as we handled it), are kept as legal records.",
      "**In the app.** The family owner of a Circle can make requests on the [privacy & data access page](/privacy/data-access). Each request needs the privacy passcode chosen at signup (an account without one can set it on that page). The passcode is separate from the account password, and we store it only in scrambled (hashed) form.",
      "**By email.** Anyone can write to [support@cozycheckins.com](mailto:support@cozycheckins.com) instead — including the senior, another member of the Circle, or someone legally authorized to act for them. No account or passcode is needed; we confirm identity another way before we act. A forgotten passcode is reset the same way.",
      "**The 72-hour hold.** For security, every privacy request made in the app is held for up to 72 hours before we release any information or act on it. We email the account holder as soon as a request is made. If you didn't make it, the Stop link in that email stops it right away; a request that isn't stopped goes ahead when the hold ends. The hold counts toward our response time; it is not added to it.",
      "**Getting the copy.** When the hold ends, the copy you asked for can be downloaded on the privacy & data access page for 7 days; after that, a new request is needed. Daily notes are included only if the senior has turned on \"Allow my family to download my check-in history and notes.\" Requests to correct, delete, or stop a use go to our team when the hold ends.",
      "**Deleting in Settings.** Separately, the family owner can delete a senior's profile and data at any time in Settings, and you can close your own account there (after deleting any profile you own; an organization account is closed through support). Both take effect right away. We keep consent records, and the dates, times and outcomes of past check-ins with the personal details removed, as the record of what the service did. Backup copies are deleted automatically within 35 days, so deleted data can stay in them until then. Step by step: [Delete your account](/privacy/delete-account)."
    ],
    "changesTitle": "Changes to this policy",
    "changesBody": "We may update this Privacy Policy at any time, at our sole discretion. Changes take effect when the updated policy is posted on this page, with a revised effective date, and posting here is the notice of those changes — we are not required to give advance notice. If a change meaningfully affects how we handle sensitive information or your SMS consent, we will take reasonable steps to bring it to your attention. Your continued use of Cozy Check-ins after a change means you accept the updated policy; if you don't agree, you can stop using the service and delete your data using the rights described above.",
    "footerPre": "For adults only — not for anyone under 18. Reply STOP to opt out of texts. See",
    "footerLink": "SMS Terms",
    "providersLinkPre": "Every company that processes data for us, and what each one handles, is listed on our",
    "providersLinkText": "Service Providers page"
  },
  "refundsPage": {
    "title": "Refund Policy",
    "intro": "This page shows the refund, free-trial, cancellation and plan-change rules from section 7 of our [Terms of Service](/terms), word for word.",
    "refundTitle": "Refunds",
    "cancelTitle": "Cancel any time",
    "planEndsTitle": "When a plan ends",
    "trialTitle": "14-day free trial",
    "switchTitle": "Changing plans",
    "contactTitle": "Questions",
    "contactPre": "Questions about a refund? Reach us at"
  },
  "termsPage": {
    "metaTitle": "Terms of Service — Cozy Check-ins",
    "metaDescription": "The terms for using Cozy Check-ins, a gentle daily check-in for families. Cozy Check-ins is not an emergency or medical service.",
    "title": "Terms of Service",
    "effective": "Effective date: {{date}}",
    "intro": "Cozy Check-ins is a daily check-in that helps families stay in touch. These Terms are the agreement between you and Cozy Checkins LLC (\"Cozy Check-ins,\" \"we,\" \"us\") for using cozycheckins.com, our apps, texts, calls, and related services (together, the \"Service\"). By creating an account, tapping a check-in link, or replying to one of our messages, you agree to these Terms and to our [Privacy Policy](/privacy).",
    "sections": [
      {
        "title": "1. What Cozy Check-ins is — and is not",
        "paragraphs": [
          "Cozy Check-ins sends a daily reminder to an older adult (we call her \"the senior\" or \"Mom\" — it can be anyone you care about). She taps one button or replies to a message to check in — or, if she checks in by phone call, presses 1 on her daily call. If she doesn't, we let the people in her Circle know so someone can reach out.",
          "Cozy Check-ins is a helper, not a safety system. It is **not** a medical alert device, a health-monitoring service, a fall detector, a personal emergency response system, or a substitute for in-person care, professional medical care, or emergency services. It does not diagnose, treat, or give medical advice.",
          "Cozy Check-ins never contacts 911, police, fire, or EMS. If a check-in is missed, it only notifies the people you chose. You and your Circle decide what happens next."
        ]
      },
      {
        "title": "2. Who can use the Service",
        "paragraphs": [
          "You must be at least 18 years old to create an account or to be added to a Circle. Cozy Check-ins is for adults only.",
          "If you add another person — the senior, a family member, or a trusted neighbor — you promise that you have their permission to share their name and phone number with us, and that they are willing to receive messages from Cozy Check-ins. The senior herself always gives the final okay: her reminders start only after she opts in from her own phone (see the [SMS Terms](/sms-terms) and [Voice Call Terms](/voice-terms)).",
          "You are responsible for keeping every phone number in your Circle current. If a number changes or stops belonging to the person you added, update or remove it right away."
        ]
      },
      {
        "title": "3. How check-ins work",
        "paragraphs": [
          "At the time you choose, we send the senior a reminder. Depending on what she picked, that may arrive as a push notification, a text message (SMS), an email, or — for phone-call check-ins — an automated phone call. WhatsApp messages and service in Mexico are coming soon; numbers in Mexico (+52) will never be texted by SMS.",
          "If she doesn't check in within her grace window, we notify her Circle in the order you set up. The steps used depend on your plan, as listed on our plan pages: for example, a daily check-in call (Hometown Phone), push notifications and text messages (SMS), an automated reminder call to her, and a heads-up to a trusted local who can walk over (Hometown Plus).",
          "Messages and calls travel over phone carriers, WhatsApp, app-store push services, email providers, and the internet. Any of them can be delayed, blocked, or fail. We do our best to deliver every reminder and alert, but **we cannot guarantee that any message or call is sent, received, or read**, and you should not rely on Cozy Check-ins as your only way of looking after someone."
        ]
      },
      {
        "title": "4. Messages, calls, and consent",
        "paragraphs": [
          "Everything we send is transactional — reminders, missed-check-in alerts, check-in confirmations, invitations, and account notices. We never send marketing texts.",
          "Text messaging is governed by our [SMS Terms](/sms-terms). Phone-call check-ins, reminder calls after a missed check-in and masked calling are governed by our [Voice Call Terms](/voice-terms). Anyone can stop texts and automated calls to their number at any time by replying **STOP** to any Cozy Check-ins text, pressing 9 on any Cozy Check-ins call, or by emailing support@cozycheckins.com. Stopping messages to the senior's number pauses her check-ins, so please tell her family first."
        ]
      },
      {
        "title": "5. Your account and sign-in links",
        "paragraphs": [
          "Family members and organization staff sign in with an email address, a password, and optionally a second factor. The senior does not need an account — she uses a personal link we send to her phone, or, for phone-call check-ins, simply presses 1 on her daily call. Treat that link like a key: anyone who has it can check in on her behalf. Do not forward it, and let us know at once if a phone or link is lost or stolen.",
          "Family owners also choose a privacy passcode, at signup or later on the privacy & data access page. It is separate from the password, and every privacy request made in the app needs it (see our [Privacy Policy](/privacy)). Keep it to yourself. If you forget it, our support team can reset it after confirming it's you.",
          "You are responsible for everything that happens through your account or link until you tell us it was compromised."
        ]
      },
      {
        "title": "6. Organizations",
        "paragraphs": [
          "Senior centers, agencies, and other organizations can sponsor check-ins for their members. If you accept these Terms on behalf of an organization, you confirm that you are authorized to do so, and the organization is responsible for its staff.",
          "An organization must obtain each member's permission before enrolling them, must keep member phone numbers accurate, and must use member information only to run check-ins and respond to missed ones. Authorized staff can see the basic information needed for that job — first name, phone number, check-in status, and an optional photo. Staff never see members of other organizations or other families."
        ]
      },
      {
        "title": "7. Plans, payments, and billing",
        "paragraphs": [
          "Cozy Check-ins offers paid plans, billed as recurring subscriptions through our payment processor, Stripe; we never see or store your full card number. By subscribing, you authorize us to charge your payment method at the start of each billing period until you cancel.",
          "You can cancel any time from your billing settings. Cancellation takes effect at the end of the current billing period, and you keep paid features until then.",
          "We may change prices. If the price of a plan you are on changes, we will let you know by email before the new price applies. Taxes may be added where required.",
          "If a subscription ends or a payment cannot be collected, the plan pauses: Cozy Check-ins stops scheduling daily check-ins, so reminders, calls and alerts stop too, and nobody in the Circle is alerted if she doesn't check in. A check-in already scheduled for that day may still finish. Check-ins start again when a plan is active.",
          "Your first paid plan starts with a 14-day free trial. There is one free trial per family account, and it covers every parent on the account; a parent's phone number that already had a free trial on another account does not get another one. No card is needed to start it. If you add a payment method before the trial ends, the plan's price is charged to it when the trial ends and billing continues as described above. If no payment method is on file when the trial ends, the subscription ends, the plan pauses as described above, and nothing is charged.",
          "30-day money-back guarantee. Your first payment on a paid plan, monthly or annual, is covered by a 30-day money-back guarantee. The 30 days count from the date of that first charge; trial days do not count. You can ask for it from your billing page within those 30 days, once per account. When every check passes, the first payment is refunded in full to the original payment method right away and the plan ends; otherwise Cozy Check-ins reviews the request and emails you the decision. After those 30 days there are no refunds, unless the Service failed or the problem was our fault.",
          "Changing plans. You can switch plans from your billing settings, and the switch takes effect right away. Stripe, our payment processor, works out what you owe for the switch and gives credit for the unused time on your current plan: if you owe more, it is charged to your payment method at once; if you owe less, the rest is kept as a credit toward your next bills and is not refunded. During a free trial, switching plans keeps the trial."
        ]
      },
      {
        "title": "8. Acceptable use",
        "paragraphs": [
          "Use Cozy Check-ins kindly and only for its purpose: looking after people who have agreed to be looked after. Do not use it to monitor, track, or pressure anyone without their knowledge; to enroll a phone number you do not have permission to use; to send spam or anything unlawful; to interfere with the Service or probe its security without our written permission; or to resell it without an agreement with us.",
          "We may suspend or close accounts that break these rules, and we may remove a phone number that asks us to stop."
        ]
      },
      {
        "title": "9. Your information",
        "paragraphs": [
          "Our [Privacy Policy](/privacy) explains what we collect, why, and how to access or delete it. We keep the Service running with a small number of vetted [service providers](/providers). We never sell personal information, never share mobile numbers or consent data with third parties for their marketing, and never use your data for advertising.",
          "You own the information you give us. You give us permission to use it only to run the Service for you."
        ]
      },
      {
        "title": "10. Changes, suspension, and ending the Service",
        "paragraphs": [
          "We are a small team and the Service will keep improving. We may add, change, or remove features. If we retire a feature or the Service, we will give reasonable notice where we can.",
          "You can close your account and delete your data at any time with the in-app tools in Settings, or ask us to through our [privacy & data access page](/privacy/data-access) or by email. Our [Privacy Policy](/privacy) explains what we keep after a deletion and how privacy requests work: requests made in the app need the privacy passcode and are held for up to 72 hours before we act on them. We may suspend or terminate access if you break these Terms, if we must for legal or safety reasons, or if an account has been inactive for a long time. Sections 1, 11, 12, 13, and 14 survive termination."
        ]
      },
      {
        "title": "11. Disclaimers",
        "paragraphs": [
          "The Service is provided \"as is\" and \"as available.\" To the fullest extent the law allows, we disclaim all warranties, express or implied, including fitness for a particular purpose, and we do not promise that the Service will be uninterrupted, error-free, or that every message or call will be delivered on time or at all.",
          "Cozy Check-ins is not an emergency service. If you or someone in your Circle is in danger, call 911 or your local emergency number right away."
        ]
      },
      {
        "title": "12. Limitation of liability",
        "paragraphs": [
          "To the fullest extent the law allows, Cozy Checkins LLC, its members, and its service providers are not liable for any indirect, incidental, special, consequential, or punitive damages, or for any injury, illness, loss of life, or property loss, arising from use of or inability to use the Service — including a missed, delayed, or undelivered reminder, alert, or call.",
          "Our total liability for any claim related to the Service is limited to the amount you paid us in the 12 months before the claim, or US$100 if you paid nothing. Some places do not allow these limits, so they may not fully apply to you."
        ]
      },
      {
        "title": "13. Your responsibility to us",
        "paragraphs": [
          "If you add someone's phone number without their permission, misuse the Service, or break these Terms, and that causes a claim against us, you agree to cover our reasonable costs of dealing with that claim."
        ]
      },
      {
        "title": "14. Governing law and disputes",
        "paragraphs": [
          "These Terms are governed by the laws of the Commonwealth of Virginia, USA, without regard to its conflict-of-law rules. If we have a disagreement, please email us first — most things can be sorted out with a conversation. Anything that can't be resolved informally will be brought in the state or federal courts located in Virginia, and you agree to their jurisdiction.",
          "If you live in Mexico or another place whose consumer-protection laws give you rights we cannot limit, nothing in these Terms takes those rights away."
        ]
      },
      {
        "title": "15. Changes to these Terms",
        "paragraphs": [
          "We may update these Terms from time to time. When we do, we will change the effective date at the top of this page, and for meaningful changes we will also let account holders know by email or in the app. Continuing to use the Service after a change means you accept the updated Terms."
        ]
      }
    ],
    "contactTitle": "16. Contact",
    "contactPre": "Questions about these Terms? Reach us at",
    "contactMid": "or visit our",
    "contactLink": "contact page",
    "notEmergencyTitle": "Cozy Check-ins is not an emergency service",
    "notEmergencyBody": "Cozy Check-ins is not an emergency or medical service. It helps families stay in touch through daily check-ins. It is not a medical alert system, a health-monitoring device, or an emergency-response service, and it is not a substitute for professional medical care, in-person care, or emergency services. Cozy Check-ins does not contact 911, police, fire, or EMS — if a check-in is missed, it simply notifies the people in your family Circle. Messages, calls, and alerts may be delayed or fail to deliver due to phone, carrier, internet, or service issues, so please don't rely on Cozy Check-ins as your only safety measure. If you or your family member is having an emergency, call 911 (or your local emergency number) right away."
  },
  "smsTermsPage": {
    "metaTitle": "SMS Terms — Cozy Check-ins",
    "metaDescription": "SMS program terms for Cozy Check-ins daily check-in reminders and family alerts. Transactional only. Reply STOP to opt out, HELP for help.",
    "title": "SMS Terms",
    "programLabel": "Program name:",
    "intro": "sends recurring, transactional text messages: a daily check-in reminder to an older adult who opted in, and missed-check-in alerts, check-in updates, and invitations to the family members and trusted contacts she designated. We never send marketing or promotional texts.",
    "optInTitle": "Opt-in",
    "optInPre": "The senior opts in on her own mobile phone by tapping",
    "optInBold": "Yes — text me my daily check-in",
    "optInMid": "on the consent screen reached from an SMS invitation, then replying",
    "optInYes": "YES",
    "optInPost": "(or SI) to the confirmation text. Daily reminders begin only after that reply. Family members and trusted contacts opt in when they accept an invitation from the family or organization that added them. Consent is never a condition of buying anything.",
    "freqTitle": "Message frequency",
    "freqPre": "Recurring — about",
    "freqBold": "one message per scheduled check-in",
    "freqMid": " (most families use one per day; paid plans allow up to three), plus alerts to the Circle when a check-in is missed and a check-in update when it is resolved. Message frequency varies.",
    "freqRates": "Message and data rates may apply.",
    "helpTitle": "Help & opt-out",
    "helpPre": "For help, reply",
    "helpHelp": "HELP",
    "helpMid1": "to any message, or email",
    "helpMid2": ". To opt out, reply",
    "helpStop": "STOP",
    "helpMid3": "at any time — you'll get one confirmation text, then no more messages or automated calls to that number. If the senior replies STOP, her daily check-ins end, her number comes off her family's account, and her family is told; to start again she texts START and her family adds her again. Reply",
    "helpStart": "START",
    "helpPost": "to opt back in.",
    "whatsappTitle": "WhatsApp and Mexico",
    "whatsappBody": "WhatsApp check-ins and service in Mexico are coming soon. Until then, Cozy Check-ins sends nothing to phone numbers in Mexico (+52), and it never sends them SMS. When WhatsApp check-ins start, they will need the same opt-in, WhatsApp messages will be delivered by Meta under its own terms, and you will be able to stop them at any time by replying STOP or by blocking the Cozy Check-ins number in WhatsApp.",
    "carriersTitle": "Carriers",
    "carriersBody1": "Carriers (including but not limited to AT&T, T-Mobile, Verizon) are",
    "carriersBold": "not liable",
    "carriersBody2": "for delayed or undelivered messages. Cozy Check-ins cannot guarantee that any text is delivered or read, and it is not an emergency service — see our",
    "carriersTermsLink": "Terms of Service",
    "privacyTitle": "Privacy",
    "privacyPre": "See our",
    "privacyLink": "Privacy Policy",
    "privacyMid": ". Mobile phone numbers and SMS opt-in and consent data are never sold and will not be shared with third parties or affiliates for marketing or promotional purposes. We use a small number of service providers only to deliver the Service. Contact:"
  },
  "contactPage": {
    "metaTitle": "Contact Us — Cozy Check-ins",
    "metaDescription": "Get in touch with the Cozy Check-ins team. We'd love to hear from you.",
    "ogDescription": "Reach the Cozy Check-ins team by email — a real person replies within a business day.",
    "title": "Contact us",
    "body": "Questions, feedback, or trouble signing in? Drop us a line and a real person will write back.",
    "reply": "We usually reply within a business day."
  },
  "downloadPage": {
    "metaTitle": "Get the App — Cozy Check-ins",
    "metaDescription": "How to put Cozy Check-ins on a phone: for your parent, for family, and for a trusted neighbor. Add it from the browser today. App Store and Google Play: coming soon.",
    "title": "Get the app",
    "intro": "Cozy Check-ins runs in the web browser that is already on the phone. Adding it to the home screen gives it an icon like any other app and lets notifications through. Here is how, for each person in the Circle.",
    "storesTitle": "App Store and Google Play",
    "storesBody": "Coming soon. Until then, the home-screen version is the same app, with nothing missing.",
    "howTitle": "How to get it",
    "iosTitle": "iPhone — Safari",
    "androidTitle": "Android — Chrome",
    "steps": {
      "ios": [
        "Tap the Share button at the bottom of Safari (the square with an arrow pointing up).",
        "Scroll down and tap \"Add to Home Screen.\"",
        "Tap \"Add\" in the top corner. The Cozy Check-ins icon is now on the home screen."
      ],
      "android": [
        "Tap the ⋮ menu at the top right of Chrome.",
        "Tap \"Add to Home Screen.\" On some phones it says \"Install app.\"",
        "Tap \"Add.\" The Cozy Check-ins icon is now on the home screen."
      ]
    },
    "notificationsTitle": "Notifications",
    "parents": {
      "eyebrow": "For your parent",
      "title": "Their check-in button",
      "what": "One big button, once a day. Your parent taps it and everyone in their Circle sees the check-in.",
      "howIntro": "On your parent's phone, open their check-in page: it's the link in the text Cozy sent them. Then:",
      "push": "If the daily check-in arrives as a notification, allow notifications from Cozy Check-ins when the phone asks. On an iPhone that question only appears after the icon is on the Home Screen and Cozy is opened from there (iOS 16.4 or later).",
      "optional": "The icon is optional. On paid plans the check-in comes as a daily text with one button, and a parent without a smartphone can check in by phone call instead (US numbers)."
    },
    "family": {
      "eyebrow": "For family",
      "title": "The family app",
      "what": "See the check-in the moment it happens, and hear right away when one is missed.",
      "howIntro": "On your phone, sign in at cozycheckins.com/login. Then:",
      "push": "Missed-check-in alerts come through this app, so allow notifications when asked; without them you won't hear when a check-in is missed. On an iPhone, add the icon first, open Cozy from it, then turn on alerts in Settings."
    },
    "friends": {
      "eyebrow": "For friends and neighbors",
      "title": "The trusted-neighbor app",
      "what": "A trusted friend or neighbor nearby gets the same alert when a check-in is missed, so someone close can stop by.",
      "sees": "What a trusted neighbor sees: whether today's check-in happened; your parent's phone number and address, so they can call or stop by; and two buttons, \"On my way\" and \"I'm here,\" that tell the family what they did. They see the family's own numbers only if the family owner chooses to share them.",
      "howIntro": "The family owner sends them an invite link. On their phone, they open that link, sign in, and then:",
      "push": "Same as family: alerts come through the app, so allow notifications when asked."
    },
    "signIn": "Sign in",
    "moreHelp": "More help (step-by-step pictures)",
    "helpPre": "Stuck on a step? Write to",
    "helpMid": "or use the",
    "helpLink": "contact page",
    "picker": {
      "title": "Put Cozy on this phone",
      "question": "Whose phone is this?",
      "choice": {
        "parent": "My parent's",
        "family": "Mine (family)",
        "friends": "A friend or neighbor's"
      },
      "parent": "Your parent's icon is added from their own check-in page, so it opens their button. On their phone, open the link in the text Cozy sent them, then add it to the Home Screen from there.",
      "parentSteps": "See the steps for your parent",
      "install": {
        "family": "Install the Family app",
        "friends": "Install the Friends app"
      },
      "installing": "Installing…",
      "oneTap": "Your phone will ask once. Tap Install.",
      "ios": "iPhones don't have an install button for websites. Tap the Share button in Safari, then \"Add to Home Screen\":",
      "android": "If no Install button appears, use the ⋮ menu in Chrome:",
      "noPrompt": "Your phone didn't open the install window. Use the ⋮ menu in Chrome instead:",
      "computer": "Open this page on your phone to put Cozy on its home screen.",
      "qrTitle": "On a computer? Scan this with your phone's camera.",
      "qrHint": "It opens this page on your phone, ready to install.",
      "qrAria": "QR code that opens this page on your phone",
      "done": "Done. Cozy is on your home screen.",
      "after": {
        "family": "Open Cozy from the new icon and sign in.",
        "friends": "Open Cozy from the new icon and sign in. Haven't joined yet? Open the invite link your family sent you first."
      },
      "alreadyApp": "You're already in the Cozy app."
    }
  },
  "blogIndex": {
    "metaTitle": "Cozy Check-ins Blog — Gentle guides for checking on the people you love",
    "metaDescription": "Practical, non-medical guides for families: how to check on an aging parent without hovering, free options, and choosing a daily check-in service.",
    "eyebrow": "FROM THE COZY CHECK-INS BLOG",
    "title": "Gentle guides for families and communities",
    "body": "Practical, non-medical ways to help older adults stay independent — for families, senior centers, and community groups.",
    "empty": "No posts yet — check back soon.",
    "pageOf": "Page {{page}} of {{total}}",
    "older": "Older posts →",
    "newer": "← Newer posts",
    "allPostsPage": "All posts — page {{page}}"
  },
  "blogPost": {
    "pdfDownload": "Download as PDF",
    "pdfMaking": "Making your PDF…",
    "pdfKeep": "Keep a copy to print or share with family.",
    "pdfFailed": "Sorry, the PDF could not be made. Please try again.",
    "listenStart": "Listen to this article",
    "listenPause": "Pause",
    "listenResume": "Keep listening",
    "listenStop": "Stop",
    "listenNowReading": "Reading the article aloud.",
    "listenPausedNote": "Paused.",
    "faqTitle": "Frequently asked questions",
    "backToBlog": "Back to all posts",
    "breadcrumbHome": "Home",
    "breadcrumbBlog": "Blog",
    "notFoundTitle": "Post not found",
    "notFoundBody": "That post doesn't exist or has moved.",
    "relatedTitle": "More from the blog",
    "seriesPart": "Part {{order}} of {{total}} in this series",
    "seriesPrev": "Previous",
    "seriesNext": "Next",
    "metaBy": "By {{author}}",
    "metaUpdated": "Last updated {{date}}",
    "ctaEyebrow": "A WARM HELLO, EVERY DAY",
    "ctaTitle": "Peace of mind, in five minutes.",
    "ctaStart": "Join the waitlist",
    "ctaSee": "See how it works",
    "ctaNote": "No app needed for your parent — optional app coming soon, never required.",
    "authorBlurb": "Cozy Check-ins is a daily check-in for older adults — one tap in a daily text, or a short daily phone call for a parent without a smartphone. No app needed for them (an optional app is coming — always optional).",
    "tocTitle": "IN THIS ARTICLE"
  },
  "joinOrg": {
    "pitch": "{{orgName}} uses Cozy Check-ins to look after loved ones — create your family account to get started.",
    "cta": "Create my family account",
    "haveAccount": "Already have an account?",
    "signIn": "Sign in",
    "disclaimer": "Cozy Check-ins is not an emergency service.",
    "notFoundTitle": "This join link isn't active",
    "notFoundBody": "The organization link you followed doesn't exist or is no longer active.",
    "notFoundHome": "Go to the home page",
    "approvalNote": "{{orgName}} approves each family that joins.",
    "yourParents": "Your parents",
    "askJoin": "Ask to join {{orgName}}",
    "askPlan": "Ask to join {{orgName}}'s plan",
    "statePending": "Request sent {{date}}. Waiting for {{orgName}}.",
    "statePendingPlan": "Plan request sent {{date}}. Waiting for {{orgName}}.",
    "stateDeclined": "{{orgName}} didn't accept the request on {{date}}. Your plan stays the same.",
    "stateMember": "With {{orgName}}.",
    "stateMemberPlan": "On {{orgName}}'s plan.",
    "stateOtherOrg": "With another organization.",
    "addParent": "Add a parent",
    "requestError": "Couldn't send the request — please try again."
  },
  "signupPage": {
    "firstNameLabel": "Your first name",
    "firstNamePlaceholder": "Maria",
    "firstNameHelp": "Your family sees it. It can also appear in texts from Cozy Check-ins.",
    "title": "Join Cozy Check-ins",
    "subtitle": "An access code is required to create an account right now.",
    "subtitleInvited": "You were invited to a family's Circle. Create your account to join — no access code needed.",
    "subtitleOpen": "Create your account below.",
    "codeLabel": "Access code",
    "codePlaceholder": "Enter your invite code",
    "emailLabel": "Email",
    "emailPlaceholder": "you@example.com",
    "passwordLabel": "Password",
    "passwordPlaceholder": "At least 12 characters",
    "submit": "Create account",
    "submitting": "Creating account…",
    "ack": "I understand Cozy Check-ins is not an emergency service.",
    "agreePre": "I agree to the",
    "agreeLink": "Beta Tester Agreement",
    "agreePost": "(keep the beta confidential; no copying).",
    "ackHint": "Check the box above to create your account.",
    "ackHintBoth": "Check both boxes above to create your account.",
    "haveAccount": "Already have an account?",
    "signIn": "Sign in",
    "noCode": "Don't have a code? Cozy Check-ins is currently invite-only while we finish polishing things.",
    "disclaimerExpand": "Cozy Check-ins is not an emergency service — learn more",
    "disclaimerBody": "Not an emergency or medical service. Cozy Check-ins helps families stay in touch through daily check-ins. It is not a medical alert system, a health-monitoring device, or an emergency-response service, and it is not a substitute for professional medical care, in-person care, or emergency services. Cozy Check-ins does not contact 911, police, fire, or EMS — when a check-in is missed, it notifies the people in your family Circle. Messages and alerts may be delayed or fail to deliver due to phone, carrier, internet, or service issues, so please don't rely on Cozy Check-ins as your only safety measure. If you or your family member is having an emergency, call 911 (or your local emergency number) right away.",
    "accountCreatedSignIn": "Account created — please sign in to continue.",
    "checkEmailTitle": "Check your email",
    "checkEmailBody": "We sent a link to the address you entered — open it to confirm the inbox is yours, then choose your password. We do this so we can help you get back in later if you ever lose your phone.",
    "checkEmailNotSent": "Your account was created, but we couldn't send that email just now. Please write to support@cozycheckins.com and we'll send you a fresh confirmation link. A password reset won't finish this step, so it's worth contacting us rather than trying that.",
    "errors": {
      "invalidEmail": "Please enter a valid email address",
      "shortPassword": "Password must be at least 12 characters",
      "missingCode": "Please enter your access code",
      "ageRequired": "Please choose your age range.",
      "mustAck": "Please confirm you understand Cozy Check-ins is not an emergency service.",
      "mustAgree": "Please agree to the Beta Tester Agreement.",
      "invalidCode": "That access code isn't valid.",
      "weakPassword": "That password has appeared in a known data breach. Please choose a different one.",
      "emailTaken": "An account with that email already exists — try signing in instead.",
      "emailInvalid": "That email address isn't accepted. Try a different one.",
      "signupDisabled": "Sign-ups are currently disabled. Please try again later.",
      "busy": "Lots of families are signing up right now. Please try again in a little while.",
      "signupFailed": "Couldn't create your account — try a different email or sign in",
      "generic": "Sign-up is temporarily unavailable. Please try again later.",
      "invalidPhone": "Please enter a mobile number we can text.",
      "notInMexicoYet": "Cozy Check-ins is coming to Mexico soon. For now, use a US number.",
      "usOnly": "Cozy Check-ins texts US phone numbers only.",
      "verification": "Please complete the verification box.",
      "nameRequired": "Please enter your name.",
      "passcode_too_short": "Your privacy passcode needs at least 8 characters.",
      "passcode_too_long": "Your privacy passcode can be 64 characters at most.",
      "passcode_all_same": "Use more than one repeated character in your privacy passcode.",
      "passcode_mismatch": "The two privacy passcodes don't match."
    },
    "roleQuestion": "Who is this account for?",
    "roleFamily": "I'm setting this up for a parent",
    "roleSelf": "I'm checking in for myself",
    "seniorTitle": "Set up your own check-ins",
    "seniorSubtitle": "We'll email you a link to finish setting up. No password to invent right now.",
    "nameLabel": "Your name",
    "namePlaceholder": "Maria Lopez",
    "phoneLabel": "Your mobile number",
    "phonePlaceholder": "(555) 123-4567",
    "countryLabel": "Country",
    "timezoneLabel": "Your time zone",
    "checkInTimeLabel": "Daily check-in time",
    "seniorSubmit": "Send me the setup link",
    "seniorDone": "Check your email — if we can create your account, a setup link is on the way.",
    "seniorConsent": "I agree to receive Cozy check-in reminders and I understand this is not an emergency service.",
    "passcodeLabel": "Privacy passcode",
    "passcodeHelp": "A second secret code, separate from the password you'll choose. We ask for it to make sure it's really you: when you ask for a copy of your data or make another privacy request, and when you need to get back into your account after losing your phone and computer. Write it down somewhere safe. We keep it scrambled, so we can't look it up or tell it to you. At least 8 characters.",
    "passcodeConfirmLabel": "Type the passcode again",
    "checkStuck": "The security check didn't finish.",
    "checkStuckHint": "If trying again doesn't work, open this page in another browser, or turn off your browser's tracker and ad blocking for this site.",
    "seniorCheckStuckHint": "If trying again doesn't work, open this page in another browser, or turn off your browser's tracker and ad blocking for this site.",
    "checkRetry": "Try again",
    "checkCode": "Code",
    "checkTap": "Tick the box above to continue.",
    "seniorCheckTap": "Tick the box above to continue.",
    "noCodeLink": "Join the waitlist"
  },
  "verifyEmailPage": {
    "title": "Confirming your email",
    "confirmPrompt": "Tap the button to confirm your email.",
    "confirmButton": "Confirm my email",
    "confirming": "Confirming…",
    "alreadyConfirmed": "Your email is already confirmed. Please sign in.",
    "checking": "One moment — confirming this link…",
    "confirmed": "Thank you — your email is confirmed. Next, choose your password.",
    "expired": "This link has expired or has already been used. Write to support@cozycheckins.com and we'll send you a fresh one.",
    "waiting": "We sent a confirmation email to {{email}}. Open the message “Confirm your email for Cozy Check-ins” and tap “Confirm my email”. Not in your inbox? Look in your spam or junk folder. It can take a few minutes to arrive.",
    "waitingNoEmail": "We sent you a confirmation email. Open the message “Confirm your email for Cozy Check-ins” and tap “Confirm my email”. Not in your inbox? Look in your spam or junk folder. It can take a few minutes to arrive.",
    "badLink": "This link is missing the confirmation code, or the code has already been used. Please open the most recent “confirm your email” message we sent you. If you can't find it, write to support@cozycheckins.com and we'll send a fresh one — a password reset won't finish this step.",
    "failed": "We couldn't finish confirming your email. Please try the link again, or write to support@cozycheckins.com.",
    "reloginFailed": "Your email is confirmed, but we couldn't sign you in on this page. Choose your password with the link below — it sends a short email.",
    "choosePassword": "Choose my password",
    "goToLogin": "Go to sign in",
    "resendLabel": "Need a new link? Enter your email",
    "resendButton": "Send me a new link",
    "resendSending": "Sending…",
    "resendSent": "If that address still needs confirming, a new link is on its way.",
    "resendTooMany": "Too many requests for now. Please try again later, or write to support@cozycheckins.com.",
    "resendCheckFailed": "The security check didn't finish. Please wait for it to finish, then tap \"Send me a new link\" again.",
    "emailPlaceholder": "you@example.com",
    "otherAccount": "You're signed in to a different Cozy account in this browser. Sign out of it here to confirm this email.",
    "otherAccountButton": "Sign out here and confirm",
    "signingOut": "Signing out…",
    "timeout": "This is taking too long. Close other Cozy tabs and try again.",
    "tryAgain": "Try again"
  },
  "loginPage": {
    "title": "Sign In",
    "subtitle": "One green button each day for the older adult you love",
    "resetNotice": "Password updated. Sign in with your new password.",
    "idleNotice": "You were signed out after {{minutes}} minutes with no activity. Sign in again to keep going.",
    "tabsAriaLabel": "Sign-in method",
    "tabEmail": "Email",
    "tabPhone": "Phone",
    "emailLabel": "Email",
    "emailPlaceholder": "Email",
    "phoneLabel": "Phone",
    "phonePlaceholder": "+1 555 123 4567",
    "passwordLabel": "Password",
    "passwordPlaceholder": "Password",
    "forgot": "Forgot password?",
    "submit": "Sign In",
    "submitting": "Signing in…",
    "newHere": "New here? Get started →",
    "errors": {
      "invalidPhone": "Enter a valid phone number.",
      "tooMany": "Too many attempts — please wait a minute and try again.",
      "phoneSignIn": "Couldn't sign in — check your phone and password.",
      "emailSignIn": "Couldn't sign in — check your email and password"
    }
  },
  "forgotPassword": {
    "title": "Reset your password",
    "subtitle": "Enter your email and we'll send you a reset link.",
    "emailLabel": "Email",
    "emailPlaceholder": "you@example.com",
    "submit": "Send reset link",
    "submitting": "Sending…",
    "sentMessage": "If an account exists for that email, we've sent a password reset link. Check your inbox (and spam folder).",
    "back": "← Back to sign in"
  },
  "resetPassword": {
    "title": "Set a new password",
    "checking": "Verifying your reset link…",
    "invalid": "This link has expired or is invalid.",
    "requestNew": "Request a new reset link",
    "newPasswordLabel": "New password",
    "confirmLabel": "Confirm new password",
    "hint": "At least {{min}} characters. Mix uppercase and lowercase letters, a number and a symbol.",
    "submit": "Update password",
    "submitting": "Updating…",
    "errors": {
      "short": "Password must be at least {{min}} characters.",
      "mismatch": "Passwords don't match.",
      "updateFailed": "Couldn't update your password. The link may have expired — request a new one.",
      "weak": "That password isn't strong enough. Use at least {{min}} characters, mixing uppercase and lowercase letters, a number and a symbol (like ! or #).",
      "pwned": "That password has appeared in a known data breach. Please choose a different one.",
      "timeout": "This is taking too long. Close any other Cozy tabs, then try again."
    },
    "otherAccount": "This link is for a different account than the one signed in on this phone or computer, so it can't be used here.",
    "otherAccountSignOut": "Sign out, then ask for a new link"
  },
  "recoveryEmail": {
    "title": "Add a recovery email",
    "body": "We'll email a link to confirm this address. Once confirmed, you can sign in and reset your password by email.",
    "nudge": "Add an email so you can recover your account if you ever lose your phone.",
    "nudgeSkip": "Not now",
    "inputLabel": "Recovery email",
    "placeholder": "you@example.com",
    "submit": "Send confirmation",
    "submitting": "Sending…",
    "sent": "Check your inbox for a confirmation link. Your email becomes usable for recovery after you confirm it.",
    "pendingTitle": "Confirm your recovery email",
    "pendingBody": "We sent a link to {{email}}. Click it to finish setup — until then, this email can't be used for recovery.",
    "confirmedTitle": "Recovery email is set",
    "confirmedBody": "You can sign in with {{email}} and use Forgot password if you ever lose your phone.",
    "errors": {
      "invalid": "Enter a valid email address.",
      "generic": "Couldn't save that email. Try again."
    }
  },
  "addParent": {
    "backAria": "Back",
    "title": "Add my parent",
    "subtitle": "Takes about a minute. We'll text them the setup link.",
    "subtitleVoice": "Takes about a minute. We'll call them to set it up. No text needed.",
    "nameLabel": "Parent's first name",
    "namePlaceholder": "Mom, Dad, Sherry — whatever feels right",
    "phoneLabel": "Parent's mobile number",
    "phoneLabelVoice": "Parent's phone number (landline or cell)",
    "countryLabel": "Country",
    "countryUS": "United States",
    "countryMX": "Mexico",
    "languageLabel": "Language for their messages",
    "languageEnglish": "English",
    "languageSpanish": "Español",
    "languageHelper": "Pick the language your parent reads best — independent of country.",
    "previewE164": "We'll message {{phone}}",
    "previewCall": "We'll call {{phone}}",
    "countryPhoneMismatch": "Country and phone number don't match — check the country.",
    "phonePlaceholder": "+1 (276) 555-0100",
    "channelLabel": "How should we reach {{name}}?",
    "channelSms": "Text message",
    "channelWhatsapp": "WhatsApp",
    "channelSoon": "Coming soon",
    "channelPaid": "Paid plans",
    "channelNotOnPhonePlan": "Not on Hometown Phone",
    "channelPhonePlan": "Your plan is Hometown Phone, so check-ins come by phone call. For texts, choose Hometown Family on the Billing page.",
    "channelVoice": "Phone call (landline or basic cell phone)",
    "channelFallbackName": "your parent",
    "channelHelper": "Text works for most U.S. families.",
    "channelHelperFree": "We text the setup link once. Daily check-ins start once a plan is started.",
    "channelVoiceHelper": "For a landline or a basic cell phone in the U.S. We call once now to set it up, and daily calls start when they press 1. No text messages.",
    "channelMxLocked": "Mexican numbers use WhatsApp.",
    "timeLabel": "Parent's check-in time",
    "timeHint": "We'll text the check-in at this time, in their time zone.",
    "timeHintFree": "The check-in notification comes at this time, in their time zone.",
    "timeHintVoice": "We'll call at this time, in their time zone.",
    "tzLabel": "Your parent's time zone",
    "tzPlaceholder": "Select time zone",
    "tzUS": "United States",
    "tzMX": "Mexico",
    "locationLabel": "Where {{name}} lives",
    "zipLabel": "ZIP code",
    "locationHelper": "Helps us improve Cozy and show where families need it. Never shown to anyone.",
    "locationHelperPrefilled": "We filled in the state from the phone's area code — change it if that's not where they live. Never shown to anyone.",
    "smsTitle": "Cozy Check-ins daily check-ins",
    "smsBullet1": "Approximately 1 message per day.",
    "smsBullet2": "Message & data rates may apply.",
    "smsBullet3": "Reply HELP for help, STOP to cancel.",
    "smsBullet4": "Carriers are not liable for delayed or undelivered messages.",
    "smsBullet5": "We do not share mobile information with third parties or affiliates for marketing or promotional purposes.",
    "smsBullet6": "If your circle includes a partner organization, staff calls to {{name}} are logged (metadata only — never audio) and visible to your family.",
    "smsSeeBefore": "See our ",
    "smsSeeBetween": " and ",
    "smsSeeAfter": ".",
    "voiceTitle": "Cozy Check-ins daily check-in calls",
    "voiceSeeBefore": "See our ",
    "voiceSeeAfter": ".",
    "privacyLink": "Privacy Policy",
    "smsLink": "SMS Terms",
    "consentBefore": "I have ",
    "consentStrong": "my parent's permission",
    "consentAfter": " to enroll them in these messages, and I have shared the above information with them.",
    "consentAfterVoice": " to set up daily check-in calls to them, and I have shared the above information with them.",
    "submit": "Send invitation",
    "submitVoice": "Add and call now",
    "toastSent": "Invite sent to {{name}} ✓",
    "toastCalling": "Calling {{name}} now. Daily calls start once they press 1.",
    "toastCallFailed": "{{name}} is added, but the call didn't go through. Use \"Call now to set up\" in family settings to try again.",
    "toastError": "Could not send invite.",
    "fallbackName": "your parent",
    "orgChoiceTitle": "Joining {{org}}",
    "orgChoiceJoin": "Ask to join {{org}}",
    "orgChoicePlan": "Ask to join {{org}}'s plan",
    "orgChoiceNone": "Don't join {{org}} — keep my own plan",
    "orgChoiceNote": "{{org}} approves each family. Until then, your own plan stays.",
    "skipForNow": "Not adding a parent right now? Skip to dashboard",
    "joiningNote": "Asked to join a family's Circle instead? Don't add a parent here. Open the family's link on the phone or computer, and in the browser, you used to ask."
  },
  "seniorScreen": {
    "fallback": "Tap the link in your latest Cozy Check-ins text to check in.",
    "greeting": "Hi {{name}}! 👋",
    "waiting": "Waiting for today's check-in.",
    "todayLabel": "Today's check-in: {{time}}",
    "nextLabel": "Next check-in: {{time}}",
    "done": "You're all set for today ✓",
    "button": "Check in ✓",
    "confirming": "Just a moment…",
    "last14": "Last 14 days",
    "error": "Something went wrong. Please try again.",
    "ariaNoCheckin": "no check-in",
    "enablePush": "Turn on alerts on this phone",
    "pushEnabled": "Alerts on ✓",
    "pushDenied": "Alerts are turned off in your phone's settings.",
    "pushError": "Couldn't turn on alerts. Please try again.",
    "iosInstallTitle": "Get alerts on your iPhone",
    "iosInstallBody": "Tap the Share button, then “Add to Home Screen.” Open Cozy Check-ins from your Home Screen, then come back here to turn on alerts."
  },
  "familyApp": {
    "common": {
      "signOut": "Sign out",
      "couldntSignOut": "Couldn't sign out",
      "settings": "Settings",
      "back": "Back",
      "save": "Save",
      "saving": "Saving…",
      "cancel": "Cancel",
      "retry": "Retry",
      "couldntSave": "Couldn't save — try again",
      "couldntLoad": "Couldn't load",
      "signInToManage": "Sign in to manage notifications.",
      "yourLovedOne": "your loved one",
      "thisMember": "this member"
    },
    "tabs": {
      "home": "Home",
      "circle": "Circle",
      "settings": "Settings"
    },
    "testCall": {
      "admin": "Admin: place a test check-in call to {{name}}.",
      "button": "Send test call",
      "placing": "Placing test call…",
      "calling": "Calling now…",
      "failed": "Call failed"
    }
  },
  "memberView": {
    "roleFamilyMember": "Family member",
    "roleTrustedLocal": "Trusted local",
    "eyebrowYourCircle": "Your Circle",
    "eyebrowTrusted": "Trusted local",
    "checkingOn": "Checking on {{name}}",
    "howDoing": "How {{name}} is doing",
    "howDoingNoName": "How they're doing",
    "theyFallback": "the person you're checking on",
    "atTime": "at {{time}}",
    "streakDays": "{{count}}-day streak 🌱",
    "last14": "Last 14 days",
    "recentActivity": "Recent activity",
    "swingBy": {
      "title": "A quick swing-by",
      "helper": "Let the family know — no medical updates, just a kind heads-up.",
      "onMyWay": "On my way",
      "onMyWayDone": "On my way ✓",
      "here": "I'm here",
      "hereDone": "I'm here ✓",
      "sending": "Sending…",
      "thanks": "You let the family know — thank you.",
      "defaultError": "Couldn't send that — please try again."
    },
    "familyContact": {
      "title": "Family contact",
      "fallback": "Family contact",
      "for": "For {{name}}"
    },
    "familyContacts": {
      "title": "Family contact info",
      "noContact": "No contact info shared.",
      "role": "Family"
    },
    "seniorContact": {
      "label": "Tap to call or open in Maps",
      "noPhone": "No phone number on file.",
      "noAddress": "No address on file.",
      "awaitingYes": "Their phone number, address and photo show here once they say yes to their daily check-ins.",
      "hidden": "The family keeps contact details private."
    },
    "viewingAsFamily": "You're viewing {{name}}'s Circle as a family member. Only {{they}} and their family owner can change settings.",
    "viewingAsTrusted": "You're viewing {{name}}'s Circle as a trusted local. Only {{they}} and their family owner can change settings.",
    "thisPerson": "this person",
    "theyShort": "they",
    "avatarLabel": "Your photo",
    "avatarHelper": "Shown only to the family in their Circle. Any photo from your phone or computer.",
    "leave": {
      "title": "Leave this Circle",
      "body": "Removes you from {{name}}'s Circle. You'll stop getting alerts, and your photo and pending notifications are deleted. Their check-in history isn't affected.",
      "bodyShared": "Removes you from {{name}}'s Circle. Both parents in a family share one Circle, so you leave it for both of them. You'll stop getting alerts, and your photo and pending notifications are deleted. Their check-in history isn't affected.",
      "cta": "Leave this Circle",
      "confirmTitle": "Leave {{name}}'s Circle?",
      "confirmBody": "You'll be removed right away and signed out. You can only rejoin with a new invite.",
      "cancel": "Cancel",
      "confirm": "Yes, leave",
      "leaving": "Leaving…",
      "done": "You've left the Circle.",
      "error": "Could not leave the Circle."
    },
    "pausedUntil": "Check-ins are paused until {{date}} — no alerts until then.",
    "pausedByStop": "{{name}} replied STOP from their phone, so their daily check-ins ended."
  },
  "familyDashboard": {
    "topChromeSub": "Your Circle",
    "subnavDashboard": "Dashboard",
    "subnavSettings": "Settings",
    "yourFamily": "Your family",
    "inTheCircleCount": "{{count}} in the Circle",
    "yourFolks": "Your folks",
    "greetingWelcome": "Welcome back",
    "greetingMorning": "Good morning",
    "greetingAfternoon": "Good afternoon",
    "greetingEvening": "Good evening",
    "eyebrow": "A warm hello, every day",
    "noCircleYet": "No Circle yet",
    "noParentsYet": "No parents yet",
    "waitingFor": "Waiting for {{name}}",
    "couldntLoad": "Couldn't load",
    "waitingDetail": "We sent {{name}} their setup link. As soon as they tap it and check in, you'll see them here.",
    "addYourParent": "Add your parent",
    "signInPrefix": "",
    "signInLink": "Sign in",
    "or": " or ",
    "createAccount": "create an account",
    "signInSuffix": " to see your real Circle.",
    "today": "Today",
    "streakBadge": "{{count}}-day streak",
    "onceAdded": "Once you add a parent, their daily check-ins show up here.",
    "pendingFinishSetup": "We're waiting for {{name}} to finish setup. Their first check-in will show up here.",
    "resendSetupLink": "Resend setup link",
    "resendSetupLinkHelper": "Didn't arrive? Re-send the text.",
    "resendSetupLinkSent": "Setup link re-sent to {{name}}",
    "removeInvite": "Remove",
    "removeInviteConfirm": "Remove {{name}}? This cancels their invite.",
    "removeInviteRemoving": "Removing…",
    "removeInviteDone": "{{name}}'s invite was removed",
    "removeInviteFailed": "Couldn't remove the invite.",
    "signIn": "Sign in",
    "waiting": "Waiting",
    "sending": "Sending…",
    "reminderSent": "Reminder sent",
    "reminderLimit": "Already sent today",
    "textThemReminder": "Send {{name}} a check-in reminder",
    "themFallback": "them",
    "circleTitle": "The Circle",
    "circleLiveAllClear": "Live · check-ins flowing",
    "circleNothing": "Nothing to show yet",
    "circleLive": "Live",
    "circleSub": "Everyone who hears when there's a check-in from {{folks}}.",
    "circleDiagramEmpty": "Your Circle diagram will appear once you've added a parent.",
    "orgLabel": "Org",
    "roleFamilyOwner": "family owner",
    "roleFamilyMember": "family member",
    "roleTrustedFriend": "trusted friend",
    "orgWatches": "community partner · in the background",
    "last14": "Last 14 days",
    "allClearCount": "{{n}} of 14 checked in",
    "thisMonth": "This month",
    "allClearOfN": "{{n}} of {{total}} checked in",
    "allClearOfElapsed": "{{done}} of {{sofar}} days checked in",
    "dayStreak": "day streak",
    "nextCheckIn": "next check-in",
    "quickActions": "Quick actions",
    "adjustReminderTime": "Adjust reminder time",
    "manageCircle": "Manage the Circle",
    "addAnotherParent": "Add another parent",
    "recentActivity": "Recent activity",
    "activityCheckedIn": "{{name}} checked in",
    "activityCheckedInNoName": "Checked in",
    "activityMissed": "{{name}} missed check-in — Your Circle was alerted",
    "activityMissedNoName": "Missed check-in — Your Circle was alerted",
    "nothingToShow": "Nothing to show yet.",
    "noCheckinsYet": "No check-ins yet.",
    "inTheCircleTitle": "In the Circle",
    "personOne": "{{count}} person",
    "peopleMany": "{{count}} people",
    "addParentForCircle": "Add a parent to start building Your Circle.",
    "noCircleMembers": "No Circle members yet.",
    "rolePending": "pending",
    "bannerWaitTitle": "Waiting for today's check-in",
    "bannerWaitSub": "We'll let you know the moment anyone taps in.",
    "bannerAllClear": "Your folks checked in today",
    "bannerAllClearOne": "{{name}} checked in today",
    "bannerTheyFallback": "They",
    "bannerCheckedInAt": "Checked in at {{times}}",
    "bannerAllComplete": "All check-ins complete.",
    "bannerMissed": "Missed check-in today",
    "bannerMissedPlural": "Missed check-ins today",
    "bannerMissedAlerted": "Your Circle was alerted for {{names}}.",
    "bannerCircleAlerted": "Your Circle was alerted.",
    "todayDot": "Today · {{time}}",
    "weekdayDot": "{{wd}} · {{time}}",
    "nudgeQueued": "Nudge queued — they'll get a text shortly.",
    "nudgeQueuedPush": "Nudge sent — it shows on their phone as a notification.",
    "nudgeFailed": "Couldn't send the nudge.",
    "theFamily": "The {{name}} family",
    "dayStreakOne": "day streak",
    "circleSubMany": "Everyone who hears when there's a check-in from {{folks}}.",
    "nextCheckInTomorrow": "Tomorrow {{time}}"
  },
  "familySettings": {
    "groups": {
      "help": "Help",
      "admin": "Cozy staff",
      "people": "You & your parent",
      "checkins": "Check-ins & alerts",
      "account": "App & account"
    },
    "rows": {
      "adminTitle": "Staff switches & tests",
      "adminSummary": "Only Cozy staff can see this.",
      "opsTitle": "Open Ops",
      "opsSummary": "The Cozy staff dashboard. It asks for your two-step code.",
      "profileSummary": "Name, photo, phone and address",
      "yourNameSummary": "Your name, phone and address for alerts",
      "scheduleSummary": "When the daily check-in goes out",
      "notificationsSummary": "Phone notifications and text backup",
      "remindersTitle": "How {{name}} gets reminders",
      "remindersTitleFallback": "How your parent gets reminders",
      "remindersSummary": "Text or phone notification",
      "privacySummary": "Your data, trusted devices and sharing",
      "planSummary": "Your plan and billing",
      "dangerSummary": "Remove this parent and their history"
    },
    "tools": {
      "label": "Tests & tools",
      "testCheckinSummary": "Text {{name}} a test. Your Circle isn't alerted.",
      "testCheckinSummaryFallback": "Send a test text. Your Circle isn't alerted.",
      "pushSummary": "Check {{name}}'s phone and yours.",
      "pushSummaryFallback": "Check your parent's phone and yours.",
      "resetSummary": "Lost or replaced phone"
    },
    "title": "Family settings",
    "headerLabel": "Family settings",
    "subnavDashboard": "Dashboard",
    "subnavSettings": "Settings",
    "back": "Back",
    "setUpFor": "Set things up for {{name}}",
    "setUpForFolks": "Set things up for your folks",
    "couldntLoadPrefix": "Couldn't load — ",
    "retry": "retry",
    "signInToSee": "Sign in to see your real settings.",
    "waitingFinishSetup": "Waiting for {{name}} to finish setup",
    "waitingFinishSetupBody": "We sent {{name}} their setup link. Once they tap it and check in, their settings will appear here.",
    "resendSetupLink": "Resend setup link",
    "resendingSetupLink": "Sending…",
    "resendSetupLinkHelper": "Didn't arrive? Re-send the text.",
    "resendSetupLinkSent": "Setup link re-sent to {{name}}",
    "removeInvite": "Remove",
    "removeInviteConfirm": "Remove {{name}}? This cancels their invite.",
    "removeInviteRemoving": "Removing…",
    "removeInviteDone": "{{name}}'s invite was removed",
    "removeInviteFailed": "Couldn't remove the invite.",
    "parentFallback": "your parent",
    "themFallback": "them",
    "profileTitle": "{{name}}'s profile",
    "profileTitleFallback": "Your loved one's profile",
    "yourLovedOne": "Your loved one",
    "addParentBody": "Add your parent to start setting up their check-ins.",
    "addParent": "Add your parent",
    "photoHelper": "Add a photo — shown on the check-in screen. Any photo from your phone or computer.",
    "fieldName": "Name",
    "fieldPhone": "Phone",
    "fieldAddress": "Home address",
    "fieldAddressHint": "Shown to your trusted neighbor so they can check on {{seniorName}} in person.",
    "save": "Save",
    "saving": "Saving…",
    "couldntSave": "Couldn't save — try again",
    "familyOwner": "Family owner: {{name}}",
    "profileSaved": "Profile saved.",
    "phoneAwaitingYes": "Saved. We texted {{name}}'s new number. Daily check-ins start again when {{name}} replies YES.",
    "photo": {
      "notImage": "Please pick an image file.",
      "tooLarge": "Photo must be under 50 MB.",
      "notSignedIn": "Not signed in.",
      "noUrl": "Could not get photo URL.",
      "saved": "Photo saved.",
      "uploadFailed": "Upload failed — try again.",
      "ariaChange": "Change photo",
      "ariaAdd": "Add photo",
      "altFallback": "Senior photo",
      "remove": "Remove photo",
      "removed": "Photo removed",
      "removeFailed": "Couldn't remove the photo — try again.",
      "confirmRemove": "Remove this photo? This can't be undone."
    },
    "yourName": "Your name",
    "yourNameBody": "Shown in your greeting and Circle entry.",
    "displayName": "Display name",
    "nameSaved": "Name saved.",
    "signInInvite": "Sign in to invite to the Circle.",
    "signInTiming": "Sign in to update timing.",
    "signInNotifs": "Sign in to manage notifications.",
    "circle": {
      "title": "The Circle",
      "loading": "Loading the Circle…",
      "signInSee": "Sign in to see your real Circle.",
      "waitingFinish": "Waiting for {{name}} to finish setup.",
      "addParentStart": "Add a parent to start your Circle.",
      "noneYet": "No one's been added to the Circle yet.",
      "invitePending": " · invite pending",
      "ariaCancelInvite": "Cancel invite for {{name}}",
      "ariaRemove": "Remove {{name}}",
      "cancelInviteTitle": "Cancel this invite?",
      "removeTitle": "Remove {{name}} from the Circle?",
      "cancelInviteBody": "They won't be able to use this invite link anymore. You can re-invite them anytime.",
      "removeBody": "They'll no longer receive check-in updates or alerts for {{name}}. You can re-invite them anytime.",
      "cancelBtn": "Cancel",
      "cancelInvite": "Cancel invite",
      "remove": "Remove",
      "addSomeone": "Add a family member",
      "addToCircle": "Add to the Circle",
      "addToCircleSub": "Family or a trusted local. You text them a link.",
      "addAnotherParent": "Add another parent",
      "addTrusted": "Add a trusted local",
      "addTrustedSubPaid": "A neighbor who can walk over.",
      "addTrustedSubFree": "Upgrade for SMS backup & trusted local",
      "inviteCanceled": "Invite canceled.",
      "memberRemoved": "{{name}} removed from the Circle.",
      "couldntUpdateCircle": "Could not update the Circle.",
      "smsBackupOn": "Text-message backup on.",
      "smsBackupOff": "Text-message backup off.",
      "join": {
        "shareButton": "Share a link to join",
        "shareButtonSub": "Copy it, show a QR code, or text it. You approve each person.",
        "dialogTitle": "Share a link to join",
        "dialogBody": "Anyone with this link can ask to join the Circle. Nobody is added until you approve them.",
        "kindLabel": "Who is it for?",
        "kindFamily": "Family",
        "kindTrusted": "Trusted local",
        "making": "Making your link…",
        "tryAgain": "Try again",
        "qrAlt": "QR code for the link to join the Circle",
        "urlLabel": "Link",
        "copy": "Copy",
        "copied": "Link copied.",
        "copyFailed": "Couldn't copy. Press and hold the link to copy it.",
        "send": "Send",
        "textIt": "Text it from your phone",
        "whatsAppIt": "Send on WhatsApp",
        "emailIt": "Email",
        "shareFailed": "Couldn't open sharing. Copy the link instead.",
        "shareTitle": "Join our Cozy Circle",
        "shareTextFamily": "Our family uses Cozy Check-ins for our parent's daily check-ins: everyone in our Circle sees each day that they checked in. This link asks to join our Circle as family:",
        "shareTextTrusted": "Our family uses Cozy Check-ins for our parent's daily check-ins: everyone in our Circle sees each day that they checked in. This link asks to join our Circle as a trusted local:",
        "worksUntil": "Works until {{date}}.",
        "youApprove": "You'll see each request here and approve it before anyone is added.",
        "demoNote": "Demo: this is a sample link. It won't work.",
        "turnOff": "Turn off",
        "turnOffThis": "Turn off this link",
        "turnedOff": "Link turned off.",
        "couldntTurnOff": "Couldn't turn off the link.",
        "couldntCreate": "Couldn't make a link. Please try again.",
        "linksOn_one": "{{count}} link is on",
        "linksOn_other": "{{count}} links are on",
        "linksOnHelp": "A link that's on lets people ask to join until its date. Turn it off to stop new requests.",
        "linkRowFamily": "Family link · works until {{date}}",
        "linkRowTrusted": "Trusted local link · works until {{date}}",
        "waiting_one": "{{count}} waiting",
        "waiting_other": "{{count}} waiting",
        "spotsFamily_one": "{{count}} family spot open",
        "spotsFamily_other": "{{count}} family spots open",
        "spotsFamilyFull": "Family spots are full",
        "spotsTrusted_one": "{{count}} trusted local spot open",
        "spotsTrusted_other": "{{count}} trusted local spots open",
        "spotsTrustedFull": "Trusted local spots are full",
        "requestsTitle": "Asking to join",
        "requestsHelp": "They asked with a link you shared. Only approve someone you sent the link to yourself.",
        "approve": "Approve",
        "decline": "Decline",
        "approved": "Approved. Tell {{name}} to open your link again on their phone to finish joining.",
        "declined": "Request declined. They won't get a text.",
        "alreadyMember": "{{name}} is already in the Circle.",
        "alreadyDecided": "That request was already answered.",
        "closed": "That link was turned off, so its request closed.",
        "stale": "That request is more than 7 days old. Send them a new link.",
        "couldntDecide": "Couldn't update the request.",
        "create": {
          "trusted_needs_plus": "Trusted locals are on Hometown Plus.",
          "circle_full": "The Circle is full. Remove someone to make room, then share a link.",
          "too_many_links": "4 links are on. Turn one off, then try again.",
          "throttled": "That's a lot of links for one day. Try again tomorrow."
        },
        "approvedTrusted": "Invite sent to {{name}}. Their link works for 24 hours.",
        "circleFull": "The Circle is full. Make room, then approve.",
        "notVerifiedYet": "Number not confirmed yet. Save a code to text them:",
        "newCode": "New code",
        "textThisCode": "Your code for {{phone}} — text it to them from your phone:",
        "codeCopied": "Code copied.",
        "codeFailed": "Couldn't make a code. Please try again.",
        "codeTooEasy": "Pick a harder code. Not one digit over and over (111111), a run (123456), a repeat (121212), or part of their phone number.",
        "codeAlreadyVerified": "That number is already confirmed.",
        "waitingForCode": "When they type it on their page, Approve turns on here.",
        "numberVerified": "✓ Number confirmed by the person who asked.",
        "approveNeedsCode": "Text them a code first. Approve turns on once they type it.",
        "unverified": "Their number isn't confirmed yet. Text them the code and wait for them to type it.",
        "codeLabel": "Your 6-digit code",
        "codePlaceholder": "6 digits",
        "saveCode": "Save code",
        "codeHelp": "Make up any 6 digits and save them. Then text them to this number from your own phone. When they type the code on their page, Approve turns on."
      }
    },
    "schedule": {
      "title": "Check-in schedule",
      "dailyTime": "Daily check-in time",
      "loading": "Loading…",
      "grace": "Grace window",
      "graceMin": "{{n}} min",
      "beforeAlert": "Before the Circle is alerted",
      "change": "Change"
    },
    "notifs": {
      "title": "Notifications & timing",
      "subtitle": "How often we nudge your folks, and how soon the Circle gets a heads-up.",
      "escalation": "Escalation",
      "gentle": "Gentle",
      "gentleDesc": "Fewer nudges · Circle at +{{n}} min",
      "standard": "Standard",
      "standardDesc": "Current cadence · Circle at +{{n}} min",
      "persistent": "Persistent",
      "persistentDesc": "More nudges · Circle at +{{n}} min",
      "howOftenNudge": "How often we gently nudge {{name}} before your Circle is alerted.",
      "loveFallback": "your loved one",
      "graceWindow": "Grace window",
      "graceSlider": "Grace minutes before Circle is alerted",
      "alertedAfter": "Your Circle is alerted {{n}} minutes after a missed check-in.",
      "missAlertCant": "The Circle miss-alert can't be turned off — only delayed.",
      "voiceCall": "Voice reminder call",
      "paidPlans": "Paid plans",
      "voiceCallDesc": "Auto-calls the senior partway through the nudge sequence, once a day at most",
      "voicePaidOnly": "Voice reminder calls are available on paid plans.",
      "voiceCallPlans": "Hometown Family and Plus",
      "voiceCallPlansOnly": "Hometown Family and Hometown Plus can change reminder calls.",
      "trustedWithFamily": "Alert trusted neighbors with the family",
      "trustedWithFamilyDesc": "Off: neighbors hear 30 minutes after the family. On: at the same time.",
      "trustedPaidOnly": "Trusted-neighbor alerts are available on paid plans.",
      "timingUpdated": "Notification timing updated."
    },
    "timeline": {
      "title": "Contact timeline",
      "preview": "Preview",
      "previewBody": "This is a preview — it updates automatically when you change the Escalation or Grace settings above. You can't edit these rows directly.",
      "setTimeFirst": "Set a daily check-in time to preview the contact timeline.",
      "audienceParent": "Parent",
      "audienceCircle": "Circle",
      "audienceTrustedNeighbor": "Trusted neighbor",
      "channelPush": "push",
      "channelText": "text if the push fails",
      "channelCall": "call",
      "channelCheckinCall": "check-in call",
      "paid": "Paid",
      "paidChannelTip": "Part of the paid plans",
      "freePlanNote": "No plan on this account: daily check-ins are off until a plan is started.",
      "circleProtectedTip": "Circle is always alerted — this step can't be turned off.",
      "onTime": "on time",
      "minBefore": "{{n}} min before",
      "minAfter": "+{{n}} min",
      "audienceEveryone": "Everyone in the Circle"
    },
    "notifications": {
      "title": "Notifications",
      "push": "Push notifications",
      "pushDesc": "Check-in updates and gentle alerts on your phone",
      "pushOn": "Push notifications on.",
      "pushOff": "Push notifications off.",
      "smsBackup": "Text-message backup",
      "smsBackupDescPrefix": "Also sends a text message, not just a push · ",
      "howItWorks": "Alerts come as a notification on your phone first. If it isn't shown, we send a text instead.",
      "smsTermsLink": "SMS terms",
      "dailyDigest": "Daily morning digest",
      "dailyDigestDesc": "One calm summary at 9:00 AM",
      "comingSoon": "{{label}} — coming soon.",
      "dailyDigestLabel": "Daily digest",
      "missedAlerts": "Missed check-in alerts",
      "missedAlertsDesc": "Tell the whole Circle right away",
      "remindersOn": "Check-in reminders on.",
      "remindersOff": "Check-in reminders off."
    },
    "appearance": {
      "title": "Appearance",
      "body": "Pick the look that's easiest on your eyes — it applies everywhere.",
      "cream": "Warm cream",
      "day": "Daylight",
      "dusk": "Cozy dusk",
      "noir": "Noir night",
      "ariaTheme": "Theme {{id}}"
    },
    "privacy": {
      "title": "Privacy",
      "body": "Transactional only. No marketing texts, no data sold, no location tracking. ",
      "link": "Privacy & data"
    },
    "plan": {
      "title": "Your plan",
      "free": "No active plan",
      "phone": "Hometown Phone",
      "plus": "Hometown Plus",
      "family": "Hometown Family",
      "manageBilling": "Manage in billing",
      "upgrade": "Choose a plan to start daily check-ins",
      "manageBtn": "Manage billing"
    },
    "pause": {
      "paused": "Check-ins paused",
      "pause": "Pause check-ins",
      "desc": "Going on a trip together? Pause and nobody gets alerted.",
      "resume": "Resume",
      "pauseBtn": "Pause",
      "resumed": "Check-ins resumed.",
      "pausedToast": "Check-ins paused.",
      "couldntUpdate": "Couldn't update pause"
    },
    "danger": {
      "title": "Danger zone",
      "body": "Permanently remove {{name}} and their entire check-in history. This can't be undone.",
      "deleteBtn": "Delete this parent",
      "confirmTitle": "Delete {{name}}?",
      "confirmBody": "This permanently removes {{name}} and their check-in history — this can't be undone.",
      "thisParent": "this parent",
      "typeToConfirm": "Type ",
      "typeToConfirmSuffix": " to confirm",
      "typeNamePh": "Type {{name}}",
      "namePlaceholderFallback": "name",
      "cancel": "Cancel",
      "delete": "Yes, delete permanently",
      "deleting": "Deleting…",
      "deletedToast": "{{name}} was removed.",
      "parentFallback": "Parent",
      "deleteFailed": "Couldn't delete — please try again",
      "othersWarning_one": "1 other person is in this Circle. Deleting removes their access to {{name}} too — their own account stays.",
      "othersWarning_other": "{{count}} other people are in this Circle. Deleting removes their access to {{name}} too — their own accounts stay."
    },
    "sharing": {
      "title": "Sharing & privacy",
      "orgLabel": "Let {{orgName}}'s owner see our Circle",
      "orgDesc": "When this is on, the owner of {{orgName}} can see your family Circle for {{seniorName}} — every member's name, phone number, and address, plus {{seniorName}}'s own contact details. This is the organization's OWNER only. Their staff and volunteers can never see your family's or {{seniorName}}'s information through Cozy Check-ins — the owner would have to share it with them personally. Off by default; you can switch it back off anytime.",
      "trustedLabel": "Let our trusted neighbor see our contact info",
      "trustedDesc": "When this is on, the trusted neighbor you've added can see your family's contact card for {{seniorName}} — names, phone numbers, and address — so they can reach you fast if {{seniorName}} misses a check-in. When it's off, your neighbor only sees whether {{seniorName}} checked in, and nothing else about your family.",
      "trustedUpgrade": "Adding a trusted neighbor is a Hometown Plus feature. Upgrade to turn this on.",
      "saved": "Sharing setting saved.",
      "couldntSave": "Couldn't save — please try again."
    },
    "org": {
      "pending": "Asked to join {{org}} on {{date}}. Waiting for an answer.",
      "pendingPlan": "Asked to join {{org}}'s plan on {{date}}. Waiting for an answer.",
      "declined": "{{org}} didn't accept the request on {{date}}. Your plan stays the same.",
      "member": "With {{org}}. Your own plan stays.",
      "onPlan": "On {{org}}'s plan.",
      "withdraw": "Withdraw request",
      "withdrawConfirmTitle": "Withdraw the request to {{org}}?",
      "withdrawConfirmBody": "{{org}} won't see the request anymore. You can ask again later.",
      "withdrawYes": "Yes, withdraw",
      "withdrawDone": "Request withdrawn.",
      "leave": "Leave {{org}}",
      "leaveConfirmTitle": "Leave {{org}}?",
      "leaveConfirmBody": "{{org}} will stop seeing your parent's check-ins. Your own plan stays the same.",
      "leaveConfirmBodyPlan": "{{org}} will stop seeing your parent's check-ins and stop paying for the plan. If you don't have your own plan, daily check-ins stop until you start one.",
      "leaveYes": "Yes, leave",
      "leaveDone": "You left {{org}}.",
      "cancel": "Cancel",
      "actionError": "Something went wrong. Please try again."
    },
    "reschedule": {
      "title": "Change the check-in time",
      "titleNamed": "Change {{name}}'s check-in time",
      "description": "Check-ins that haven't happened yet move to the new time.",
      "dailyTime": "Daily check-in time",
      "timezone": "Time zone",
      "timezonePlaceholder": "Select time zone",
      "groupUs": "United States",
      "groupMx": "Mexico",
      "addMidday": "Add a midday check-in",
      "middayTime": "Midday check-in time",
      "addEvening": "Add an evening check-in",
      "eveningTime": "Evening check-in time",
      "cancel": "Cancel",
      "save": "Save schedule",
      "saving": "Saving…",
      "saved": "Schedule saved.",
      "failed": "Could not update schedule."
    },
    "yourNameBodyFull": "Shown in your greeting and Circle entry. Phone is used for missed check-in alerts. Kept private to your family.",
    "yourPhone": "Your phone number",
    "yourAddressOptional": "Your address (optional)",
    "alertsGoHere": "This is where missed check-in alerts are sent.",
    "remindersToggle": {
      "self": "Remind me about my check-in",
      "family": "Turn on check-in reminders for {{name}}",
      "lovedOne": "your loved one",
      "desc": "A friendly nudge each day so the check-in isn't forgotten."
    },
    "contactSaved": "Contact info saved ✓",
    "phoneCodeSent": "Saved. To finish changing your phone number, type the code we texted to it.",
    "newPhoneCodeNote": "We'll text a 6-digit code to this number. Missed check-in alerts move to it once you type the code.",
    "phoneNotConfirmed": "This number isn't confirmed yet, so missed check-in alerts can't be texted to it. Confirm it with a code.",
    "phoneConfirmCta": "Text me a code"
  },
  "serverLabels": {
    "checkedIn": "Checked in",
    "missed": "Missed",
    "waitingToday": "Waiting for today's check-in.",
    "checkedInDot": "Checked in.",
    "missedAlerted": "Missed check-in — Your Circle was alerted.",
    "familyOwner": "Family owner",
    "familyMember": "Family member",
    "trustedLocal": "Trusted local",
    "nudgeCooldown": "You nudged them a few minutes ago — give them a moment.",
    "nudgeDaily": "That's plenty of nudges for today — give them some space and try again tomorrow.",
    "phoneOnceADay": "Phone-call check-ins are once a day for now.",
    "callsOnlyNoTexts": "This person checks in by phone call, so texts to them are turned off.",
    "notInCanadaYet": "Cozy Check-ins isn't available in Canada yet.",
    "notInMexicoYet": "Cozy Check-ins is coming to Mexico soon. For now, use a US number.",
    "whatsappSoon": "WhatsApp is coming soon.",
    "callsArePaid": "Phone calls are part of the paid plans.",
    "noOpenCheckinToNudge": "There's no open check-in to nudge right now.",
    "noPushDeviceYet": "Their phone isn't set up for notifications yet.",
    "usOnly": "Cozy Check-ins texts US phone numbers only.",
    "waitingShort": "Waiting",
    "flagged": "Flagged",
    "orgJoin": {
      "linkInactive": "This join link isn't active.",
      "ownerOnly": "Only the family owner can do that.",
      "otherOrg": "This parent is already with another organization.",
      "tooMany": "That's a lot of requests for one day. Please try again tomorrow.",
      "busy": "Too many changes at once. Please wait a bit and try again.",
      "listFull": "The approved list is full.",
      "noNumbers": "No US phone numbers were found in that file.",
      "orgFull": "Your organization has reached its member limit. Contact support to raise it.",
      "notWaiting": "That request was already answered.",
      "otherPending": "This parent already has a request waiting with another organization.",
      "familyManaged": "This member's family manages their details.",
      "notMember": "This parent isn't with an organization.",
      "orgEnrolled": "The organization added this parent, so the organization manages it."
    },
    "circleFull": {
      "family": "This Circle is full: 3 family members is the most a plan allows.",
      "neighbors": "This Circle is full: 3 trusted neighbors is the most a plan allows."
    },
    "reschedule": {
      "ownerOnly": "Only the family owner can reschedule check-ins.",
      "eveningPaid": "An evening check-in is a Hometown Family feature.",
      "middayPaid": "A midday check-in is a Hometown Plus feature.",
      "saveFailed": "Could not update schedule — please try again."
    },
    "mexicoNoTexts": "Cozy Check-ins doesn't text or call Mexican numbers yet. Send the link from your own WhatsApp.",
    "mexicoCircleUseLink": "For a Mexican number, send a Circle link from your own WhatsApp: tap \"Send on WhatsApp\"."
  },
  "familyAppTabs": {
    "state": {
      "couldntLoad": "Couldn't load",
      "waitingFor": "Waiting for {{name}}",
      "noParents": "No parents yet",
      "noCircle": "No Circle yet",
      "retry": "Retry",
      "waitingDetail": "We sent {{name}} their setup link. As soon as they tap it and check in, you'll see them here.",
      "addYourParent": "Add your parent",
      "signIn": "Sign in",
      "signInSuffix": " to see your real Circle."
    },
    "home": {
      "yourCircle": "Your Circle",
      "greeting": "Good morning",
      "greetingName": "Good morning, {{name}}",
      "greetingWithName": "{{greeting}}, {{name}}",
      "allClear": "Checked in today",
      "stillToCheckIn": "{{count}} still to check in",
      "ofFolksTapped": "{{ok}} of {{total}} folks tapped in",
      "statusIn": "In",
      "statusLate": "Late",
      "statusWaiting": "Waiting",
      "sending": "Sending…",
      "reminderSent": "Reminder sent",
      "reminderLimit": "Already sent today",
      "textReminder": "Send reminder",
      "streakBadge": "{{count}}-day streak",
      "dayOne": "{{count}} day",
      "dayMany": "{{count}} days"
    },
    "reminders": {
      "recentNudges": "Recent check-ins & notes",
      "noRecent": "No recent activity yet.",
      "someone": "Someone",
      "nudgeQueued": "Nudge queued — they'll get a text shortly.",
      "nudgeFailed": "Couldn't send the nudge."
    },
    "circle": {
      "title": "The Circle",
      "hearsOne": "{{count}} person hears",
      "hearsMany": "{{count}} people hear",
      "whenTapIn": "when {{folks}} tap in.",
      "whenTapInOne": "when {{folks}} taps in.",
      "yourFolks": "your folks",
      "noMembers": "No Circle members yet.",
      "pendingSuffix": " · pending",
      "invite": "+ Invite family / friends",
      "contactName": "Contact {{name}}",
      "trustedFriend": "Trusted friend",
      "noContactSaved": "No phone or address saved yet.",
      "whenTapInFallback": "when your folks tap in."
    }
  },
  "org": {
    "noMembership": {
      "title": "You don't currently have access to an organization.",
      "body": "Access to an organization is by invitation only.",
      "signOut": "Sign out"
    },
    "familyCircle": {
      "title": "Family circle"
    },
    "common": {
      "save": "Save",
      "saving": "Saving…",
      "saveChanges": "Save changes",
      "cancel": "Cancel",
      "close": "Close",
      "delete": "Delete",
      "deleting": "Deleting…",
      "remove": "Remove",
      "removing": "Removing…",
      "add": "Add",
      "adding": "Adding…",
      "edit": "Edit",
      "loading": "Loading…",
      "noResults": "No results",
      "couldntSave": "Couldn't save — please try again.",
      "couldntLoad": "Couldn't load",
      "signOut": "Sign out",
      "admin": "Admin",
      "staff": "Staff",
      "yes": "Yes",
      "no": "No",
      "search": "Search",
      "actions": "Actions",
      "yourOrg": "your organization"
    },
    "console": {
      "title": "Org Console",
      "subtitle": "Manage members, staff, and check-in coverage.",
      "members": "Members",
      "staff": "Staff",
      "analytics": "Compliance analytics",
      "addMember": "Add member",
      "importMembers": "Import members",
      "bulkImport": "Bulk import",
      "familyInvites": "Family invite links",
      "exportCsv": "Export CSV",
      "noMembersYet": "No members yet",
      "addFirstMember": "Add your first member to get started.",
      "loadingOrg": "Loading the organization…",
      "couldntLoadOrg": "We couldn't load your organization",
      "refreshHint": "Please refresh the page. If this keeps happening, sign out and back in.",
      "noOrgYet": "No organization yet",
      "noOrgBody": "Sign in as an organization owner — or set one up — and your console will appear here.",
      "atGlance": "At a glance",
      "statCheckedIn": "Checked in",
      "statMissed": "Missed",
      "statFlagged": "Flagged",
      "statWaiting": "Waiting",
      "privacyStrip": "Staff see each member and their main family contact only.",
      "caseloadEyebrow": "Caseload",
      "loadingCaseload": "Loading caseload…",
      "noMembersDesc": "Add members to start seeing their daily check-ins.",
      "colMember": "Member",
      "colMainContact": "Main contact",
      "colToday": "Today",
      "colTime": "Time"
    },
    "row": {
      "viewHistoryAria": "View check-in history for {{name}}",
      "viewHistoryTitle": "Check-in history",
      "placeCallAria": "Place check-in call for {{name}}",
      "placeCallTitle": "Place AI check-in call",
      "editAria": "Edit {{name}}",
      "removeAria": "Remove {{name}}"
    },
    "push": {
      "enabling": "Enabling…",
      "alertsOn": "Alerts on",
      "alertsBlocked": "Alerts blocked",
      "enableAlerts": "Enable alerts",
      "alertsOnTitle": "Alerts enabled on this device",
      "alertsBlockedTitle": "Notifications blocked — allow in your browser settings",
      "enableAlertsTitle": "Enable push alerts for missed check-ins",
      "permissionDenied": "Notification permission was not granted.",
      "notConfigured": "Push is not configured.",
      "couldntReadKeys": "Could not read subscription keys.",
      "signInAgain": "Please sign in again.",
      "couldntSaveSub": "Could not save subscription.",
      "alertsEnabledToast": "Alerts enabled — you'll be notified on this device when someone misses a check-in.",
      "couldntEnable": "Could not enable alerts."
    },
    "sidebar": {
      "brand": "Org Console",
      "navCaseload": "Caseload"
    },
    "actions": {
      "call": "Call",
      "remind": "Remind",
      "notifyFamily": "Notify family",
      "comingSoon": "Coming soon"
    },
    "status": {
      "checked": "Checked in",
      "missed": "Missed",
      "flagged": "Needs attention",
      "waiting": "Waiting for today",
      "waitingShort": "Waiting",
      "planInactiveTitle": "Your organization's plan isn't active yet.",
      "planInactiveBody": "Daily check-ins for your members are off until it is. Contact Cozy Check-ins to turn your plan on."
    },
    "onboarding": {
      "colHeader": "Onboarding",
      "connected": "Family connected",
      "waitingFamily": "Waiting for family",
      "notStarted": "Awaiting confirmation",
      "filterAll": "All onboarding states",
      "summary": "{{connected}} connected · {{waiting}} waiting · {{notStarted}} awaiting confirmation"
    },
    "joinLink": {
      "title": "Branded join link",
      "subtitle": "Share this link or QR so families create their own account attached to your organization.",
      "urlLabel": "Public link",
      "copy": "Copy",
      "copyAria": "Copy join link",
      "copied": "Link copied",
      "copyFailed": "Couldn't copy — please copy the link manually.",
      "qrAlt": "QR code for the branded join link",
      "help": "Anyone who signs up through this link will be attached to {{orgName}} in your onboarding dashboard."
    },
    "stats": {
      "allClear": "checked in",
      "checkedIn": "Checked in",
      "stillWaiting": "Still waiting",
      "missed": "Missed",
      "thisMorning": "This morning",
      "ofChecked": "{{ok}} of {{total}} checked in",
      "emptyMorning": "0 of 0",
      "checkedTodayLabel": "checked in today",
      "needHandLabel": "need a hand",
      "stillToCheckLabel": "still to check in",
      "totalMembersLabel": "total members",
      "headerSummary": "{{pct}}% checked in · {{count}} need a hand",
      "todayWatched_one": "Today · {{count}} member watched over",
      "todayWatched_other": "Today · {{count}} members watched over",
      "needsAttention": "Needs attention",
      "everyoneChecked": "Everyone's checked in today.",
      "goodMorning": "Good morning",
      "welcomeAboard": "Welcome aboard",
      "noMembersYetHeading": "No members yet — add your first member",
      "noMembersYetBody": "Add a member to start daily check-ins. You'll see their status here every day."
    },
    "roster": {
      "title": "Member roster ({{count}})",
      "searchPlaceholder": "Search members…",
      "all": "All",
      "checked": "Checked in",
      "missed": "Missed",
      "waiting": "Waiting",
      "noMatch": "No members match.",
      "actionsFor": "Actions for {{name}}",
      "editMember": "Edit member",
      "sendTestCall": "Send test call",
      "inviteFamily": "Invite family / trusted person",
      "removeFromOrg": "Remove from organization",
      "placingCall": "Placing test call…",
      "callingNow": "Calling now…",
      "callFailed": "Call failed",
      "addPhoto": "Add photo",
      "changePhoto": "Change photo",
      "photoUpdated": "Photo updated"
    },
    "addMemberDialog": {
      "title": "Add a member",
      "subtitle": "Enroll someone in this organization's daily check-in.",
      "sectionMember": "Member",
      "sectionContact": "Family contact (optional)",
      "name": "Member's name",
      "nameHelp": "The person who gets the daily check-in.",
      "namePh": "First and last name",
      "phone": "Member's phone",
      "phoneHelp": "Where we text the daily check-in.",
      "phonePh": "(555) 123-4567",
      "contactName": "Family contact name (optional)",
      "contactPhone": "Family contact phone (optional)",
      "contactPhoneHelp": "Alerted if the member misses a check-in. Leave blank if none.",
      "timezone": "Timezone",
      "checkinTime": "Daily check-in time",
      "smsConsent": "I confirm this person has agreed to receive daily SMS check-in messages, and understands that any staff phone calls placed through Cozy Check-ins are logged (metadata only — never audio) and visible to their family.",
      "addBtn": "Add member",
      "adding": "Adding…",
      "added": "Member added.",
      "couldntAdd": "Couldn't add this member."
    },
    "editMemberDialog": {
      "title": "Edit member",
      "saved": "Changes saved.",
      "phoneAwaitingYes": "Changes saved. We texted {{name}}'s new number. Daily check-ins start again when they reply YES.",
      "couldntSave": "Couldn't save changes."
    },
    "removeMemberDialog": {
      "title": "Remove {{name}}?",
      "body": "{{name}} will be removed from {{org}}. If your organization added them, their daily check-ins stop, and this can't be undone. If a family added them, they stay with their family.",
      "confirm": "Yes, remove",
      "removed": "{{name}} was removed.",
      "couldntRemove": "Couldn't remove this member."
    },
    "callDialog": {
      "title": "Place a check-in call to {{name}}?",
      "body": "We'll call {{name}} now. This is logged for compliance.",
      "confirm": "Call now",
      "cancel": "Cancel"
    },
    "memberHistory": {
      "title": "{{name}} · check-in history",
      "subtitle": "The last 30 days of check-ins.",
      "downloadCsv": "Download CSV",
      "empty": "No check-ins yet.",
      "colDate": "Date",
      "colStatus": "Status",
      "colTime": "Time",
      "colNote": "Note",
      "statusOnTime": "On time",
      "statusLate": "Late",
      "statusMissed": "Missed",
      "statusManual": "Manual override",
      "statusPending": "Pending"
    },
    "bulkImport": {
      "title": "Bulk import members",
      "description": "Upload a CSV or PDF to import up to 5,000 members at once. CSV is recommended — include columns for name, phone, and optionally contact name, contact phone, check-in time, and timezone.",
      "dragDrop": "Drag and drop your file here",
      "browseHint": "or click to browse — CSV or PDF, up to 5,000 members",
      "downloadTemplate": "Download CSV template",
      "errFileType": "Please upload a .csv or .pdf file.",
      "errCsvNoData": "CSV has no data rows.",
      "errPdfNoRows": "No recognizable member rows found in the PDF. Try a CSV export instead.",
      "errReadFile": "Could not read file.",
      "pasteToggle": "Or paste a list",
      "pastePlaceholder": "Dorothy Peterson\t+12765550100\t08:00\tAmerica/New_York\tRobert Peterson\t+12765550101",
      "pasteHint": "Paste rows from a spreadsheet or email. Tab- or comma-separated. Columns: name, age (optional), phone, check-in time, timezone, contact name, contact phone.",
      "pasteReview": "Review pasted rows",
      "pasteEmpty": "Paste at least one row to continue.",
      "status": "{{count}} rows parsed.",
      "ready": "{{count}} ready",
      "needsAttention": "{{count}} need attention",
      "fixHint": "Fix or remove flagged rows to enable import.",
      "colName": "Member name",
      "colPhone": "Member phone",
      "colContactName": "Family contact name",
      "colContactPhone": "Family contact phone",
      "colAge": "Age",
      "colTime": "Time",
      "errNameReq": "Name is required",
      "errPhoneReq": "Phone is required",
      "errPhoneFmt": "Use E.164 like +12765550100",
      "errTimeFmt": "Use HH:MM (24h)",
      "errAgeFmt": "18+: a number like 78 or a range like 75-84",
      "consent": "I confirm these people agreed to receive daily SMS check-ins.",
      "back": "Back",
      "importBtn_one": "Import {{count}} member",
      "importBtn_other": "Import {{count}} members",
      "importingTitle": "Importing members…",
      "progress": "{{progress}} of {{total}} processed",
      "importedCount_one": "Imported {{count}} member.",
      "importedCount_other": "Imported {{count}} members.",
      "errorsCount_one": "{{count}} error.",
      "errorsCount_other": "{{count}} errors.",
      "errColRow": "Row",
      "errColName": "Name",
      "errColReason": "Reason",
      "doneBtn": "Done",
      "friendlyError": "Couldn't add this row. Please try again.",
      "removeRow": "Remove row"
    },
    "analytics": {
      "title": "Compliance analytics",
      "subtitle": "Check-in coverage across the organization.",
      "period": "Period",
      "last7": "Last 7 days",
      "last30": "Last 30 days",
      "last90": "Last 90 days",
      "downloadCsv": "Download CSV",
      "totalMembers": "Members",
      "checkinRate": "Check-in rate",
      "missedCount": "Missed",
      "escalations": "Escalations",
      "perMember": "Per-member breakdown",
      "colMember": "Member",
      "colChecked": "Checked",
      "colMissed": "Missed",
      "colRate": "Rate",
      "empty": "No activity in this period."
    },
    "assignCaseload": {
      "title": "Assign caseload to {{name}}",
      "subtitle": "Choose which members {{name}} covers.",
      "search": "Search members…",
      "assign": "Assign",
      "unassign": "Unassign",
      "noMembers": "No members to assign.",
      "saved": "Caseload updated.",
      "couldntSave": "Couldn't update the caseload."
    },
    "assignmentMode": {
      "title": "Who assigns members to staff",
      "subtitle": "Choose who decides which members each staff person is responsible for.",
      "ownerOnly": "Only me (owner)",
      "ownerOnlyHint": "Admins can manage staff, but only you choose which members each staff person watches over.",
      "ownerAndAdmins": "Owner and admins",
      "ownerAndAdminsHint": "Admins can also assign and remove members for staff."
    },
    "coveredBy": {
      "title": "Show \"Covered by {{org}}\" to families",
      "body": "When on, families linked to a member of this organization see a small badge naming the organization on their dashboard. No staff names or other details are shared.",
      "on": "On",
      "off": "Off",
      "saved": "Preference saved."
    },
    "coveredByChip": {
      "label": "Covered by {{org}}",
      "title": "Covered by {{org}}"
    },
    "familyOrgCard": {
      "fallback": "Your care organization",
      "onDutyToday": "On duty today"
    },
    "inviteCircle": {
      "title": "Invite family or trusted neighbor for {{name}}",
      "subtitle": "We'll text them a setup link. They'll be added to {{name}}'s Circle.",
      "name": "Their name",
      "namePh": "First and last name",
      "phone": "Their phone",
      "relationship": "Relationship to {{name}}",
      "kindFamily": "Family",
      "kindTrusted": "Trusted neighbor",
      "send": "Send invite",
      "sending": "Sending…",
      "sent": "Invite sent.",
      "failed": "Couldn't send the invite."
    },
    "inviteStaff": {
      "title": "Invite staff or coordinator",
      "subtitle": "Add someone who can see members and respond to alerts.",
      "name": "Name",
      "email": "Email",
      "role": "Role",
      "roleAdmin": "Admin",
      "roleStaff": "Staff",
      "send": "Send invite",
      "sending": "Sending…",
      "sent": "Invite sent.",
      "failed": "Couldn't send the invite."
    },
    "staffRoster": {
      "title": "Staff",
      "covers": "Covers {{count}}",
      "noStaffYet": "No staff yet.",
      "inviteStaff": "Invite staff",
      "removeStaff": "Remove from staff",
      "removed": "{{name}} was removed from staff.",
      "couldntRemove": "Couldn't remove this staff member.",
      "statusInvited": "Invited",
      "statusActive": "Active",
      "statusDeclined": "Declined"
    },
    "staffDashboard": {
      "title": "Staff dashboard",
      "onDuty": "I'm on duty",
      "onDutyHint": "Lets your team see you're available right now.",
      "onDutyOn": "You're on duty.",
      "onDutyOff": "You're off duty.",
      "couldntUpdate": "Could not update.",
      "myMembers": "My members",
      "assignedCount": "{{count}} assigned",
      "noneAssigned": "No members assigned to you yet.",
      "onNow": "On now",
      "noneOnDuty": "No one is on duty right now.",
      "since": "since {{time}}"
    },
    "settings": {
      "eyebrow": "Organization settings",
      "loadingTitle": "Loading the organization…",
      "loadingBody": "One moment.",
      "errorTitle": "We couldn't load your organization",
      "errorBody": "Please refresh the page. If this keeps happening, sign out and back in.",
      "noOrgTitle": "No organization yet",
      "noOrgBody": "Sign in as an organization owner — or set one up — and your settings will appear here.",
      "brandingTitle": "Brand & identity",
      "brandingSubtitle": "Your logo and color appear across this console and the staff app — saved to your account.",
      "uploadLogo": "Upload logo",
      "uploading": "Uploading…",
      "logoConstraint": "PNG, JPEG, or WEBP · max 1 MB",
      "logoBadType": "Logo must be a PNG, JPEG, or WEBP image.",
      "logoTooBig": "Logo must be 1 MB or smaller.",
      "logoUploaded": "Logo uploaded. Click Save to apply.",
      "uploadFailed": "Upload failed.",
      "orgName": "Organization name",
      "brandColor": "Brand color",
      "pickColor": "Pick brand color",
      "colorUsage": "Used as the accent across your organization pages.",
      "nameEmpty": "Organization name can't be empty.",
      "colorBad": "Brand color must be a #RRGGBB hex value.",
      "brandingSaved": "Branding saved.",
      "brandingFailed": "Couldn't save branding.",
      "coordTitle": "Coordinators & staff",
      "coordSubtitle": "Who can see members, take a call, and clear an alert.",
      "removeAria": "Remove {{name}}",
      "removedToast": "Removed {{name}} from staff.",
      "inviteCoord": "Invite a coordinator",
      "inviteCopied": "Invite link copied.",
      "windowTitle": "Check-in window",
      "windowOpens": "Opens",
      "windowRollup": "Roll-up",
      "windowSmart": "Smart reminder",
      "windowBody": "The assistant nudges anyone still waiting at 8:30, then escalates to a coordinator if there's no reply by 9:15.",
      "notifsTitle": "Notifications",
      "planTitle": "Your plan",
      "planTier": "Community 100",
      "planMeta": "Up to 100 members · $179/mo · renews Aug 1",
      "planMembersUsed": "{{used}} / {{total}} members",
      "planCoords": "{{count}} coordinators",
      "planSmartOn": "Smart reminders on",
      "manageBilling": "Manage billing",
      "comparePlans": "Compare plans",
      "billingPortal": "Opening billing portal…",
      "plansOpened": "Plans comparison opened.",
      "privacyTitle": "Privacy",
      "privacyBody": "We never sell member data and never track location. Records are kept for 24 months, then quietly deleted unless your state requires otherwise.",
      "exportMembers": "Export member data",
      "exportQueued": "Export queued — emailed when ready.",
      "pauseRunning": "Pause the program",
      "pausePaused": "Program paused",
      "pauseBody": "Closed for a holiday? Pause check-ins for everyone — no alerts fire.",
      "pauseBtn": "Pause",
      "resumeBtn": "Resume",
      "pausedToast": "Program paused.",
      "resumedToast": "Program resumed.",
      "coordRoleLead": "Lead coordinator · gets every alert",
      "coordRoleActivities": "Activities · Tue / Thu mornings",
      "coordRoleBackup": "Backup · weekends",
      "coordRoleNew": "Just added",
      "notifMiss": "Missed check-ins",
      "notifMissDetail": "Page the coordinator on call within 2 minutes",
      "notifAi": "Assistant escalations",
      "notifAiDetail": "Tell us when smart reminders give up",
      "notifMorning": "Morning roll-up at 9:15",
      "notifMorningDetail": "Who's in, who's waiting, who needs a hand",
      "notifWeekly": "Weekly board summary",
      "notifWeeklyDetail": "PDF emailed to leadership every Monday",
      "country": "Country",
      "countryUSHint": "United States — check-ins send by SMS, push, or email.",
      "countryMXCallout": "Coming soon for Mexico. When it opens, messages go by WhatsApp, push and email — never SMS.",
      "chooseOption": "Select…",
      "locationRequired": "Please add your city and state.",
      "backToFamily": "Back to family side",
      "twoFactor": {
        "title": "Two-factor authentication",
        "subtitle": "Required to open the Org console. Uses an authenticator app (1Password, Authy, Google Authenticator).",
        "checking": "Checking status…",
        "notSetUp": "Not set up yet. You'll be asked to enroll the next time you open the Org console.",
        "setUp": "Set up two-factor",
        "isOn": "Two-factor is on.",
        "codesLeft": "{{count}} of your backup codes are still unused.",
        "saveCodes": "Save these backup codes now — we won't show them again.",
        "copy": "Copy",
        "copied": "Copied",
        "saved": "I saved them",
        "regenerate": "Regenerate backup codes",
        "working": "Working…",
        "remove": "Remove two-factor",
        "removing": "Removing…",
        "cancel": "Cancel",
        "removeWarning": "Removing two-factor will lock you out of the Org console until you set it up again. Enter your current 6-digit authenticator code to confirm.",
        "demoCodes": "Backup codes are managed from the real Org console.",
        "demoRemove": "Two-factor is enforced on the real Org console.",
        "codesFailed": "Could not generate backup codes.",
        "enterCode": "Enter your current 6-digit authenticator code.",
        "removed": "Two-factor removed.",
        "badCode": "That code didn't match. Try the next one.",
        "rateLimited": "Too many attempts. Wait 15 minutes.",
        "removeFailed": "Could not remove two-factor."
      }
    },
    "createOrg": {
      "countryUS": "United States",
      "countryMX": "Mexico",
      "byInviteTitle": "Organization accounts are opened by Cozy Check-ins",
      "byInviteBody": "Cozy Check-ins opens each organization account and emails its director a private link to finish setting it up."
    },
    "bulkPhotos": {
      "title": "Bulk photos",
      "intro": "Drop a folder of photos to match them to members. Files named by phone or by name will match automatically.",
      "dropzone": "Drag a folder of photos",
      "hintNames": "Rename files to +15551234567.jpg or First Last.jpg",
      "chooseFiles": "Choose files",
      "chooseFolder": "Choose folder",
      "noImages": "No image files found",
      "back": "Back",
      "cancel": "Cancel",
      "done": "Done",
      "remove": "Remove",
      "uploadN": "Upload {{count}} photos",
      "uploadingBtn": "Uploading…",
      "matchedSummary": "{{matched}} of {{total}} files matched a member.",
      "status": {
        "matched": "Matched",
        "unmatched": "Unmatched",
        "ambiguous": "Ambiguous",
        "duplicate": "Duplicate"
      },
      "state": {
        "uploading": "Uploading…"
      },
      "summary": {
        "uploaded": "{{count}} uploaded",
        "errored": "{{count}} failed",
        "unmatchedTitle": "Files without a match",
        "stillMissing": "Members still without a photo ({{count}})"
      }
    },
    "sharing": {
      "seeFamiliesLabel": "See connected families",
      "seeFamiliesDesc": "When this is on, you — the organization's owner — can see the family Circle for members whose family has also chosen to share it: names, phone numbers, and addresses. Only YOU can see this. Your staff and volunteers never can through this app; you'd have to share it with them yourself. It appears only for families who have opted in on their side.",
      "seeFamiliesUpgrade": "Seeing connected families requires a paid organization plan.",
      "saved": "Preference saved.",
      "couldntSave": "Couldn't save — please try again."
    },
    "joinRequests": {
      "title": "Families asking to join",
      "body": "Families who used your join link appear here, with only each member's name and the last four digits of their phone number, so you can decide. Approved families stay private: they are not listed on your dashboard. Families you add to your plan use it for texts and calls.",
      "empty": "No families are waiting.",
      "loadError": "Couldn't load the requests.",
      "phoneEnding": "Phone ending {{last4}}",
      "requestedOn": "Asked {{date}}",
      "askedPlan": "Asked for your plan",
      "askedJoin": "Asked to join",
      "approveWithPlan": "Approve with our plan",
      "approveWithoutPlan": "Approve without our plan",
      "approve": "Approve",
      "decline": "Decline",
      "approvedToast": "{{name}} joined.",
      "approvedPlanToast": "{{name}} joined your plan.",
      "declinedToast": "The request for {{name}} was declined.",
      "unavailable": "That request is closed.",
      "error": "Couldn't save that — please try again.",
      "listTitle": "Approved list",
      "listBody": "Families whose member's number is on this list are approved once the member confirms that number from their own phone. Uploading a list never texts anyone.",
      "listCount_one": "{{count}} number on the list",
      "listCount_other": "{{count}} numbers on the list",
      "listWithPlan": "Families on this list who ask for your plan are added to it",
      "csvHint": "Any column with US phone numbers works.",
      "uploadCsv": "Upload a CSV",
      "uploading": "Uploading…",
      "noNumbers": "No phone numbers were found in that file.",
      "uploadDone": "Numbers added: {{added}}. Waiting families approved: {{approved}}.",
      "uploadSkipped": "Entries that weren't US phone numbers: {{skipped}}.",
      "clearList": "Clear the list",
      "clearConfirm": "Yes, clear the list",
      "cleared": "The approved list is empty."
    }
  },
  "appShell": {
    "skipMain": "Skip to main content",
    "notFoundTitle": "Page not found",
    "notFoundBody": "The page you're looking for doesn't exist or has been moved.",
    "disclaimerShort": "Cozy Check-ins is a daily check-in tool to help families stay connected. It is not a medical, monitoring, or emergency service and should not be relied on for emergencies. In an emergency, call 911.",
    "goHome": "Go home",
    "errorTitle": "This page didn't load",
    "errorBody": "Something went wrong on our end. You can try refreshing or head back home.",
    "tryAgain": "Try again",
    "signOut": "Sign out",
    "signedOutToast": "Signed out.",
    "navDashboard": "Dashboard",
    "navSettings": "Settings",
    "navMobileApp": "Mobile app",
    "memberCount_one": "{{count}} member",
    "memberCount_other": "{{count}} members",
    "coordinator": "Coordinator: {{name}}",
    "language": "Language"
  },
  "publicSignup": {
    "switch": {
      "title": "Public beta signup",
      "open": "Open",
      "closed": "Code only",
      "description": "On: anyone can create a family account after a robot check, and the homepage buttons go to sign-up. Off: only people with the beta access code, and the buttons go to the waitlist. Mexico stays on the waitlist either way.",
      "toggleAria": "Toggle public beta signup",
      "openedToast": "Signup is open to the public.",
      "closedToast": "Signup is back to code only.",
      "saveFailed": "Couldn't save — try again"
    }
  },
  "creamBackground": {
    "switch": {
      "title": "Old site's cream color",
      "on": "Cream",
      "off": "New look",
      "description": "On: the home page's background and the boxes on the parent check-in page use the old site's cream (day look only). Off: the new design's colors.",
      "toggleAria": "Turn the old site's cream color on or off",
      "onToast": "The home page's background and the boxes on the parent check-in page now use the old cream color.",
      "offToast": "The home page's background and the boxes on the parent check-in page are back to the new design's colors.",
      "saveFailed": "Couldn't save — try again"
    }
  },
  "nightLook": {
    "switch": {
      "title": "Night look",
      "on": "Follows the phone",
      "off": "Always day",
      "description": "On: the site turns dark when a visitor's phone or computer is in dark mode. Off: every page stays in the day look. Parent check-in pages are always in the day look.",
      "toggleAria": "Turn the night look on or off",
      "onToast": "Night look on: the site follows each visitor's dark mode. Reload a page to see it.",
      "offToast": "Night look off: every page stays in the day look. Reload a page to see it.",
      "saveFailed": "Couldn't save — try again"
    }
  },
  "sms": {
    "killSwitch": {
      "title": "SMS sending",
      "live": "Live",
      "paused": "Paused",
      "description": "One switch for every outbound text (reminders, invites, cascade alerts) and email. Paused: texts and emails wait in line and go out once sending is Live again; anything that waited more than 24 hours is dropped. Ops alerts and account-security emails still go out. Inbound replies (STOP / HELP / YES) keep working either way.",
      "toggleAria": "Toggle outbound SMS sending",
      "liveToast": "SMS sending is Live.",
      "pausedToast": "SMS sending is Paused.",
      "saveFailed": "Couldn't save — try again"
    }
  },
  "invitePage": {
    "brand": "Cozy Check-ins",
    "loading": "Loading your invite…",
    "invalidTitle": "This invite link has already been used or has expired.",
    "invalidBody": "Ask your family member to send you a new one.",
    "resendSent": "If this number is set up, a new link is on its way — check your texts.",
    "resendSending": "Sending…",
    "resendBtn": "Send me a new link",
    "greeting": "Hi {{name}}! 👋",
    "greetingNoName": "Hi there! 👋",
    "inviterIntro": "{{inviter}} set up Cozy Check-ins to stay connected with you.",
    "howItWorks": "Every day we'll send you one text. Tap one button to check in with {{inviter}}.",
    "noApp": "No app to download. Ever.",
    "nameLabel": "Does your name look right?",
    "nameHint": "Tap to change it if needed",
    "nameLabelEmpty": "What's your name?",
    "nameHintEmpty": "Type the name you go by",
    "nameRequired": "Please enter your name.",
    "submitting": "Just a moment…",
    "submit": "I'm Ready ✓",
    "genericError": "Something went wrong. Please try tapping again.",
    "acceptedTitle": "You're all set, {{name}}! 🎉",
    "acceptedBody": "We just sent you a text. Reply YES to it to finish setting up — then watch for your morning check-in!",
    "acceptedFollowup": "Check your texts from Cozy Check-ins now.",
    "acceptedBodyMx": "You're all set — your daily check-in will arrive over WhatsApp. No reply needed; just watch for your morning message.",
    "acceptedFollowupMx": "Look for your check-in on WhatsApp.",
    "howItWorksMxApp": "Every day a reminder shows up on your phone. Tap one button to check in with {{inviter}}.",
    "acceptedBodyMxApp": "You're all set. Tap the button below to open your page and turn on your daily reminder.",
    "openMyPage": "Open my check-in page"
  },
  "familyInvitePage": {
    "brand": "Cozy Check-ins",
    "loading": "Opening your invite…",
    "invalidTitle": "Hmm.",
    "invalidLinkNotValid": "This link isn't valid.",
    "invalidAlreadyOpened": "This link was already opened on a different phone.",
    "invalidExpired": "This link expired. Ask them to send a new one.",
    "invalidAlreadyUsed": "This link was already used.",
    "invalidGeneric": "This link isn't valid anymore.",
    "invalidNetwork": "Couldn't reach the server. Try again.",
    "invalidRetry": "Something went wrong. Try the link again.",
    "inviteHeading": "{{inviter}} invited you to join your loved one's Circle.",
    "needsAuthBody": "Sign in or create an account to accept — your invite will be waiting.",
    "createAccount": "Create account to accept",
    "haveAccount": "I already have an account",
    "readyBody": "You'll see your loved one's daily check-ins and get a text if they miss one.",
    "loadingBtn": "Loading…",
    "joinCircle": "Join the Circle",
    "notNow": "Not right now",
    "acceptedTitle": "You're in.",
    "acceptedBody": "Taking you to the dashboard…",
    "declinedTitle": "No worries.",
    "declinedBody": "We let the family know. Thanks for opening the message.",
    "invalidRecipientMismatch": "This invite is for a different phone number. Sign in with the account whose phone matches the invite, or ask the sender to resend it."
  },
  "circleInvitePage": {
    "brand": "Cozy Check-ins",
    "loading": "Opening your invite…",
    "invalidTitle": "Hmm.",
    "invalidAlreadyOpened": "This link was already used on a different phone.",
    "invalidExpired": "This link expired. Ask them to send a new one.",
    "invalidAlreadyUsed": "This link was already used on a different phone.",
    "invalidDeclined": "You already declined this invite.",
    "invalidGeneric": "This link isn't valid anymore.",
    "invalidNetwork": "Couldn't reach the server. Try again.",
    "invalidRetry": "Something went wrong. Try the link again.",
    "invalidExpiredShort": "This link expired.",
    "invalidAlreadyUsedShort": "This link was already used.",
    "heading": "{{inviter}} has invited you to be part of their loved one's Circle.",
    "body": "You'll get a text only if they miss their morning check-in.",
    "labelName": "The name you'll see for them",
    "namePlaceholder": "e.g. Eleanor",
    "nameHint": "Type the name you know them by. It can't be left blank.",
    "labelPassword": "Create a password (12+ characters)",
    "labelConfirmPassword": "Type your password again",
    "errNameRequired": "Please enter the name you'll use for this person.",
    "errNameLong": "Name is a little long — keep it under 80 characters.",
    "errPasswordShort": "Pick a password with at least 12 characters.",
    "errPasswordMismatch": "Passwords don't match.",
    "submitAccept": "I'll do it",
    "submitDecline": "Sorry, I can't",
    "acceptedTitleNew": "You're in.",
    "acceptedTitleExisting": "Welcome back.",
    "acceptedBodyExisting": "You already have an account — sign in to see this Circle.",
    "acceptedBodyNew": "Sign in with your phone and password to see your Circle.",
    "signIn": "Sign in",
    "declinedTitle": "No worries.",
    "declinedBody": "We won't text you. Thanks for opening the message.",
    "formIntro": "First, set up your own sign-in below. You'll use your phone number and the password you pick to open the dashboard later.",
    "passwordHint": "You'll sign in with your phone number and this password."
  },
  "circleJoinPage": {
    "loading": "Opening the link…",
    "titleFamily": "Ask to join a family's Circle",
    "titleTrusted": "Ask to join a Circle as a trusted local",
    "intro": "Someone in the family shared this link with you. Tell them who you are. They approve each person before anyone is added.",
    "whatFamily": "Circle members see the daily check-ins and hear from Cozy if one is missed.",
    "whatTrusted": "A trusted local hears from Cozy only if a daily check-in is missed.",
    "labelName": "Your name",
    "labelRelationship": "Your relationship",
    "rel": {
      "child": "Son or daughter",
      "grandchild": "Grandchild",
      "sibling": "Brother or sister",
      "spouse": "Spouse or partner",
      "other_family": "Other family",
      "neighbor": "Neighbor",
      "friend": "Friend",
      "other": "Other"
    },
    "labelPhone": "Your mobile number",
    "phoneHint": "US numbers only. The family sees your name and number so they know it's you.",
    "submit": "Ask to join",
    "submitting": "Sending…",
    "sentTitle": "Request sent.",
    "sentBody": "Keep this page open while the family approves you.",
    "sentClose": "You can also close it and open the same link again later, on this same phone or computer, in the same browser.",
    "sentNoShow": "The family doesn't see your request? If this number is already in their Circle, or already has an invitation waiting, there's nothing new for them to approve. Ask them which number to use.",
    "sentStepsTitle": "What happens next:",
    "sentSteps": [
      "Let the person who sent you the link know you asked to join.",
      "They'll text you a 6-digit code. Type it in the box below.",
      "Wait for them to tap “Approve” in Cozy Check-ins.",
      "Come back to this page and tap “Check again” below.",
      "When it says “You're approved!”, tap “Create my account” and follow the steps."
    ],
    "problemTitle": "Hmm.",
    "invalidBody": "This link isn't valid. Ask the person who sent it for a new one.",
    "expiredBody": "This link has expired or was turned off. Ask the person who sent it for a new one.",
    "busyBody": "Every open spot in this Circle already has a request waiting. Ask the person who sent the link to check Cozy, then try again.",
    "fullBody": "This Circle is full right now. Ask the person who sent the link to make room in Cozy, then try again.",
    "errorBody": "Something went wrong. Try the link again in a minute.",
    "errNameEmpty": "Please enter your name.",
    "errName": "Names can use letters, spaces, apostrophes, periods and hyphens only.",
    "errNameCommand": "Names can't include text-message words like STOP or HELP.",
    "errRelationship": "Choose your relationship.",
    "errPhone": "Enter a US mobile number, like (276) 555-0100.",
    "throttled": "Too many tries. Please wait a bit and try again.",
    "errGeneric": "Something went wrong. Please try again.",
    "errNetwork": "Couldn't reach Cozy. Check your connection and try again.",
    "checkAgain": "Check again",
    "startOver": "Not you? Start over",
    "approvedTitle": "You're approved!",
    "approvedBody": "Four quick steps, all on this same phone or computer, in this same browser:",
    "approvedSteps": [
      "Tap “Create my account” below. (Already have one? Tap “I already have an account” and skip to step 4.)",
      "Type your email, pick your age range, choose a privacy passcode, tick the box, and tap “Create account”.",
      "Open the email from Cozy Check-ins here, in this same browser, confirm it, and choose a password.",
      "Open the family's link again here and tap “Join the Circle”."
    ],
    "approvedSignedInBody": "Tap below to join the Circle.",
    "createAccount": "Create my account",
    "signIn": "I already have an account",
    "joinNow": "Join the Circle",
    "joining": "Joining…",
    "joinError": "Something went wrong. Please try again.",
    "approvedTextTitle": "You're approved!",
    "approvedTextBody": "Watch for a text from Cozy Check-ins with your link to join.",
    "joinedTitle": "You're in the Circle.",
    "joinedBody": "You'll see the daily check-ins and get Cozy's alerts in the app.",
    "openDashboard": "Open my dashboard",
    "claimExpiredTitle": "This approval ran out",
    "claimExpiredBody": "It's been more than 7 days. Ask to join again.",
    "askAgain": "Ask again",
    "noClaimTitle": "Open the family's link",
    "noClaimBody": "Open the link the family sent you, on the same phone or computer, and in the same browser, you used to ask to join.",
    "joinFullTitle": "The Circle is full",
    "joinFullBody": "There's no open spot right now. Ask the family to make room, then open the link again.",
    "joinUsedTitle": "Already used",
    "joinUsedBody": "This request was already used to join. Ask the family for a new link.",
    "languageLabel": "Language",
    "codeLabel": "Code from the family",
    "codeHint": "The person who sent you the link will text a 6-digit code to the number you typed. Type it here so they can approve you.",
    "codeSubmit": "Confirm code",
    "codeChecking": "Checking…",
    "codeVerified": "Your number is confirmed. The family can approve you now.",
    "code_wrong": "That code doesn't match. Check the text and try again.",
    "code_no_code": "No code is waiting for this request yet. Ask the family to tap “Get a code” in Cozy Check-ins and text it to you.",
    "code_locked": "Too many tries. Ask the family for a new code.",
    "code_error": "Couldn't check the code right now. Please try again in a moment."
  },
  "circleInvite": {
    "recoveryEmailLabel": "Email for account recovery (required)",
    "recoveryEmailHelp": "So you can sign in and reset your password if you ever lose your phone. We'll send a link to confirm it.",
    "recoveryEmailInvalid": "Enter a valid email address.",
    "recoveryEmailInUse": "That email is already used by another account. Try a different one.",
    "confirmEmailNotice": "Almost done — check your email and tap the link to confirm your recovery address. Until then, you can still sign in with your phone."
  },
  "billingPage": {
    "attentionTitle": "Your billing account needs attention.",
    "attentionBody": "Open Manage Billing to continue.",
    "metaTitle": "Billing — Cozy Check-ins",
    "metaDescription": "Manage your Cozy Check-ins subscription and plan.",
    "heading": "Plans & Billing",
    "subheading": "Choose a plan. Your first plan starts with a 14-day free trial, no card needed. Cancel anytime.",
    "subheadingTester": "Choose a plan. Your tester code gives your first plan a {{days}}-day free trial, no card needed. Cancel anytime.",
    "subheadingTrialing": "You're on your free trial until {{date}}. Nothing is charged before then. To keep daily check-ins going after that, add a card in Manage or cancel.",
    "subheadingHasPlan": "Your plan is below. Change or cancel it anytime.",
    "subheadingNoTrial": "Choose a plan. Cancel anytime.",
    "backDashboard": "← Back to dashboard",
    "pastDueStrong": "Payment failed.",
    "pastDueBody": "Your card couldn't be charged, so daily check-ins and the plan are off until it's fixed. Update your card from ",
    "manageBilling": "Manage billing",
    "pastDueTail": " to clear this right away.",
    "currentPlan": "Current plan:",
    "cancelsOn": "(cancels {{date}})",
    "manageOrCancel": "Manage or cancel",
    "switchNote": "Changing plans: Stripe credits the unused time on your current plan right away. If you owe more, it's charged then; if you owe less, the rest becomes credit for your next bills.",
    "currentPlanBtn": "Current plan",
    "comingSoon": "Coming soon",
    "startPlan": "Subscribe",
    "phonePlanBlocked": "Hometown Phone is for phone-call check-ins only. Set up for texts: {{names}}. Choose Hometown Family, or switch them to a phone call first (Settings → Reminder channel).",
    "phonePlanUnsure": "We couldn't check right now whether Hometown Phone fits your family. Please try again in a moment.",
    "switchPlan": "Switch to this plan",
    "checkoutDialogTitle": "Complete your subscription",
    "checkoutTrialLine": "{{days}}-day free trial, no card needed.",
    "footer": "To cancel, use Manage or cancel. Your plan keeps working until the end of your billing period.",
    "trialNote": "Your first plan starts with a 14-day free trial, no card needed. If no card is added by the end of the trial, the plan pauses — daily check-ins stop — until you add one and resume. One free trial per family. The free trial needs your own phone number on your account. If your own number is an internet-only number, like Google Voice or TextNow, you can't get the free trial, but you can still subscribe. Your parent's number doesn't affect the trial.",
    "trialNoteTester": "Your tester code gives your first plan a {{days}}-day free trial, no card needed. If no card is added by the end of the trial, the plan pauses — daily check-ins stop — until you add one and resume. One free trial per family.",
    "trialNoteTrialing": "Your free trial ends {{date}}. If no card is added by then, the plan pauses — daily check-ins stop — until you add one and resume. Nothing is charged during the trial.",
    "moneyBackNote": "30-day money-back guarantee on your first payment: the 30 days count from the first charge, and the first payment (monthly or annual) is refunded in full, once.",
    "refund": {
      "ask": "Cancel and get my money back",
      "title": "Money-back refund",
      "body": "In your first 30 days, this refunds your first payment in full and ends your plan right away. The 30 days count from the first charge. It covers the first payment only, once. If anything needs a closer look, we'll email you the decision.",
      "confirm": "Refund and end my plan",
      "cancel": "Cancel",
      "received": "Your request was received.",
      "refunded_now": "Done. Your first payment was refunded and your plan has ended. It can take a few business days to show on your card.",
      "already_requested": "Your request was already received.",
      "no_subscription": "There is no paid plan on this account.",
      "not_charged": "Your free trial is still running. Nothing has been charged yet.",
      "error": "Could not send the request. Please try again.",
      "window": "Your first payment was on {{first}}. You can ask for your money back until {{last}}.",
      "expired": "Your first payment was on {{first}}. The 30 days to ask for your money back ended on {{last}}.",
      "pending": "We got your request. You'll get an email with the decision.",
      "refunded": "Your first payment was refunded.",
      "reasonLabel": "Why are you asking? (optional)",
      "reasonNone": "Prefer not to say",
      "reasons": {
        "not_needed": "We don't need it anymore",
        "hard_to_use": "It was hard to use",
        "did_not_work": "It didn't work for us",
        "too_expensive": "It costs too much",
        "other": "Something else"
      },
      "noteLabel": "Anything else? (optional)",
      "noteHint": "Up to {{max}} characters. No links.",
      "note_refused": "Please remove any links from your note, and keep it short."
    },
    "portalError": "Could not open billing portal",
    "planPlusBlurb": "For families who want a bit more coverage.",
    "planPlusFeatures": [
      "2 check-ins per day",
      "Both parents included, each with their own number",
      "Up to 3 family members in the Circle",
      "Full SMS cascade if they miss",
      "Check-in confirmation to everyone",
      "One automated reminder call a day if a check-in is missed",
      "Daily phone-call check-in for a parent without a smartphone (US numbers)"
    ],
    "planFamilyBlurb": "The only plan where a real neighbor is part of the safety net.",
    "planFamilyFeatures": [
      "3 check-ins per day",
      "Both parents included, each with their own number",
      "Up to 3 family members in the Circle",
      "Full SMS cascade if they miss",
      "Up to 3 trusted friends or neighbors",
      "One automated reminder call a day if a check-in is missed",
      "Daily phone-call check-in for a parent without a smartphone (US numbers)"
    ],
    "cadenceMonthly": "Monthly",
    "cadenceYearly": "Yearly — 2 months free",
    "foundingBeta": "Founding member price",
    "normally": "normally {{price}}",
    "perMonth": "/month",
    "perYear": "/year",
    "startTrial": "Start 14-day free trial",
    "startTrialDays": "Start {{days}}-day free trial",
    "noPlanTitle": "No plan yet.",
    "noPlanBody": "Pick a plan to start the 14-day free trial. Daily check-ins begin once a plan is started.",
    "noPlanBodyTester": "Your tester code gives you a {{days}}-day free trial, no card needed. Pick a plan to start it. Daily check-ins begin once a plan is started.",
    "noPlanTitleReturning": "No active plan.",
    "noPlanBodyReturning": "Pick a plan to start again. Daily check-ins begin once a plan is started.",
    "noPlanBodyNoTrial": "Pick a plan to start. Daily check-ins begin once a plan is started.",
    "pausedTitle": "Your plan is paused.",
    "pausedBody": "The trial ended with no card on file, so daily check-ins are off. Add a card in Manage billing to resume.",
    "planPhoneName": "Hometown Phone",
    "planPhoneBlurb": "A daily check-in call. No smartphone needed.",
    "planPhoneFeatures": [
      "1 check-in call a day for each parent (US numbers)",
      "Both parents included, each with their own number",
      "2 family members in the Circle",
      "A text to the family if the call is missed",
      "Nothing for your parent to download"
    ],
    "periodLabel": "Billing period",
    "eyebrow": "Your plan",
    "noTrial": {
      "title": "No free trial on this checkout",
      "family_used": "Your family already used its free trial.",
      "no_owner_phone": "Your own phone number isn't on this account yet. Add it in Settings, under “Your phone number”, to get the free trial. Without it, you can still subscribe, but the plan starts as a paid plan.",
      "internet_number": "Your own phone number on this account is an internet-only number (like Google Voice or TextNow). You can subscribe, but can't get the free trial.",
      "identity_match": "Free trials are one per family, and this family's details match one that already had a trial.",
      "unconfirmed": "We couldn't confirm a free trial right now, so this would start as a paid plan. You can still use the 30-day money-back guarantee.",
      "moneyBack": "The 30-day money-back guarantee still applies to your first payment."
    }
  },
  "billingReturnPage": {
    "checkingTitle": "Checking your payment",
    "checkingBody": "One moment while we confirm this checkout.",
    "activeTitle": "You're all set 🎉",
    "activeBody": "Your subscription is active.",
    "processingTitle": "Payment received",
    "processingBody": "We're confirming your subscription. This usually takes a moment — please check the billing page again shortly.",
    "openTitle": "Checkout isn't finished",
    "openBody": "Checkout isn't complete yet. You can pick it back up from the billing page.",
    "expiredTitle": "Checkout expired",
    "expiredBody": "Checkout expired. No new subscription was activated from this session.",
    "invalidTitle": "We couldn't verify this checkout",
    "invalidBody": "We couldn't verify this checkout. If you think you were charged, check the billing page or contact support.",
    "closedTitle": "Checkout closed",
    "closedBody": "No payment was processed.",
    "backToBilling": "Back to billing",
    "dashboard": "Dashboard"
  },
  "parentPage": {
    "loading": "Loading…",
    "notSetUp": "Your dashboard isn't set up yet. Ask your family to send you a fresh login link.",
    "waitingYesTitle": "Daily check-ins haven't started yet",
    "waitingYesBody": "They start after a YES reply to the Cozy Check-ins text sent to this phone number, or after 1 is pressed on the setup call.",
    "signOut": "Sign out",
    "shareExportTitle": "Allow my family to download my check-in history and notes",
    "shareExportBody": "This is separate from your other settings. When you turn this on, the family owner can also download the notes you type, along with your daily check-ins from the last 12 months. To download them, they first make a privacy request, and we wait up to 72 hours. You can turn it off anytime.",
    "shareExportGrantedAt": "You allowed this on {{date}}.",
    "shareExportAria": "Allow my family to download my check-in history and notes",
    "shareExportOnToast": "Turned on — your family can now ask to download your notes.",
    "shareExportOffToast": "Turned off — your family can no longer download your notes.",
    "hello": "Hello,",
    "checkInToast": "All set — your family will see this. 💛",
    "moodSavedToast": "Mood saved! 💛",
    "checkedInTitle": "You're checked in for today.",
    "checkedInBody": "Your check-in is recorded, and your family can see it. 💛",
    "feelingToday": "Feeling {{label}} today.",
    "moodPrompt": "How are you feeling? (optional)",
    "mood": {
      "good": "Good",
      "okay": "So-so",
      "tired": "Tired",
      "lonely": "Lonely",
      "not_so_good": "Not so good"
    },
    "moodLower": {
      "good": "good",
      "okay": "so-so",
      "tired": "tired",
      "lonely": "lonely",
      "not_so_good": "not so good"
    },
    "hearGreeting": "Hear greeting",
    "speechGreeting": "Hello {{name}}! Your family is thinking of you. Please tap the big button below to check in.",
    "tapPrompt": "Tap to check in:",
    "saving": "Saving…",
    "imOkay": "I'm here — checking in",
    "voiceListening": "Listening… say \"I'm here\"",
    "voiceHold": "Hold to speak",
    "fromYourFamily": "From your family",
    "memoryAlt": "Memory photo from family",
    "memoryAltCaption": "Memory photo: {{caption}}",
    "friend": "Friend",
    "photoBadType": "Please choose a picture.",
    "photoReadFail": "Couldn't read that picture.",
    "photoUploadFail": "Photo upload failed — please try again.",
    "photoSaveFail": "Couldn't save that photo.",
    "voiceUnsupported": "Your phone doesn't support voice typing here. You can type your question instead.",
    "pushTitle": "Notifications on this phone",
    "pushOnBody": "This phone is set up. Your reminders will show up here.",
    "pushOffBody": "Turn on notifications so your daily reminder shows up on this phone.",
    "pushButton": "Turn on notifications",
    "pushWorking": "Working…",
    "pushEnabled": "Notifications are on for this phone.",
    "pushError": "That didn't work. Please try again.",
    "pushDenied": "Notifications are blocked in your phone's settings for this app. You can turn them back on there.",
    "setup": {
      "title": "Finish setting up",
      "intro": "Two quick things and your daily check-ins start.",
      "timezoneLabel": "Your time zone",
      "timeLabel": "What time each day?",
      "consent": "I agree to receive Cozy check-in reminders and I understand this is not an emergency service.",
      "submit": "Start my check-ins",
      "saving": "Saving…"
    }
  },
  "goPage": {
    "title": "Open your check-in link",
    "body": "Tap the link in the text message we sent you to open your daily check-in. Once you're on it, you can add it to your home screen and this icon will take you straight there.",
    "familyLink": "Family or friend? Sign in",
    "pickTitle": "Who's checking in?",
    "pickBody": "Tap your name.",
    "pickNoName": "Open my check-in",
    "pickNotListed": "Not on the list? Open the link in the text message we sent you."
  },
  "response": {
    "savedToast": "Saved.",
    "couldntSave": "Couldn't save outcome.",
    "escalatedToast": "Coordinator notified.",
    "couldntEscalate": "Couldn't escalate.",
    "noteLabel": "Add a short note (optional)",
    "notEmergency": "Not an emergency service. Do not use this in place of 911 or local emergency services.",
    "escalate": "Escalate",
    "escalateConfirmBtn": "Notify coordinator",
    "escalateConfirm": "Notify the coordinator about {{senior}}?",
    "cancel": "Cancel",
    "aStaffMember": "a staff member",
    "outcome": {
      "reached": "Reached",
      "visiting": "Visiting",
      "left_voicemail": "Voicemail",
      "no_answer": "No answer",
      "escalated": "Escalated"
    },
    "log": {
      "title": "Response log",
      "description": "How members were followed up with — the outcome each time someone reached out: reached, went to visit, left a voicemail, no answer, or escalated.",
      "openLink": "Open response log",
      "loading": "Loading…",
      "empty": "No responses logged yet.",
      "backToDashboard": "Back to dashboard"
    }
  },
  "calling": {
    "callButton": "Call {{senior}}",
    "placedToast": "Calling {{senior}} — your phone will ring shortly.",
    "couldntCall": "Couldn't place the call.",
    "noAudioNotice": "Calls are never recorded. Only metadata (time and length) is logged.",
    "locked": {
      "title": "Masked calling",
      "body": "Place calls through Cozy Check-ins without sharing your personal number. Calls are never recorded — only metadata (time and length) is logged. Available on the paid plan."
    },
    "log": {
      "title": "Call log",
      "description": "Every automated check-in call placed to a member — when it happened, how long it lasted, and the result. Calls are never recorded.",
      "openLink": "Open call log",
      "empty": "No calls placed yet.",
      "duration": "{{d}}"
    }
  },
  "family": {
    "recentStaffContact": {
      "title": "Recent staff contact",
      "line": "{{staff}} ({{org}}) called {{senior}} on {{time}}."
    }
  },
  "circleAddMember": {
    "couldntSendPrefix": "Could not send invite — {{reason}}",
    "couldntSend": "Couldn't send the invite.",
    "sent": "Invite sent to {{name}} ✓",
    "languageLabel": "Language",
    "languageEnglish": "English",
    "languageSpanish": "Español",
    "familyLinkTitle": "Add a family member to {{name}}'s Circle",
    "familyLinkBody": "Send this link from your phone. They ask to join, you approve them here, and they finish joining on their phone. Cozy doesn't text them.",
    "oneTitle": "Add someone to {{name}}'s Circle",
    "oneBody": "You text them a link from your own phone. Cozy doesn't send it.",
    "whoLabel": "Who are you adding?",
    "whoFamily": "Family",
    "whoTrusted": "Trusted local",
    "whoFamilyHelp": "Family members get an alert if a check-in is missed.",
    "whoTrustedHelp": "A neighbor who can walk over if needed. On Hometown Plus.",
    "step1": "Send them this link from your phone.",
    "step2": "They tap it and ask to join.",
    "familyStep3": "You approve them here. Then they open the link again to finish.",
    "trustedStep3": "You approve them here. Then Cozy texts them their invite."
  },
  "installCard": {
    "dismiss": "Dismiss",
    "installButton": "Install app",
    "installing": "Installing…",
    "installOneTap": "One tap — Cozy Check-ins lives on your home screen.",
    "installStepAndroid": "Tap the ⋮ menu at the top of your browser, then tap \"Add to Home Screen.\"",
    "installStepIos": "Tap the Share button at the bottom of Safari, then tap \"Add to Home Screen.\"",
    "installedChip": "App installed",
    "alertsButton": "Turn on alerts",
    "alertsEnabling": "Enabling…",
    "alertsOnChip": "Alerts on",
    "alertsDeniedHint": "Alerts are turned off in your browser settings.",
    "alertsIosWaitForInstall": "Add to your Home Screen first, then turn on alerts.",
    "allSet": "You're all set.",
    "reregister": "Re-register this device",
    "howToLink": "How to put Cozy on every phone — your parent's, family's, and a neighbor's",
    "family": {
      "title": "Get the app & turn on alerts",
      "subtitle": "Get the app and turn on alerts to hear the moment a check-in is missed. Texts are your backup.",
      "subtitleWithName": "Get the app and turn on alerts to hear the moment {{name}} misses a check-in. Texts are your backup.",
      "subtitleWithOrg": "So you never miss an alert from {{org}}."
    },
    "senior": {
      "title": "Add Cozy Check-ins to your home screen",
      "subtitle": "Tap once a day to check in.",
      "installButton": "Add to my home screen",
      "installing": "Adding…",
      "installedChip": "On your home screen",
      "installOneTap": "One tap — your check-in button will be right on your home screen."
    },
    "trusted": {
      "title": "Get the app & turn on alerts",
      "subtitle": "Get the app and turn on alerts to hear the moment a check-in is missed. Texts are your backup."
    },
    "org": {
      "title": "Get the app",
      "subtitle": "Open your Org Console in one tap.",
      "subtitleWithOrg": "Open the Org Console for {{org}} in one tap."
    },
    "staff": {
      "title": "Get the app",
      "subtitle": "Open your staff dashboard in one tap.",
      "subtitleWithOrg": "Open your staff dashboard for {{org}} in one tap."
    },
    "diagram": {
      "iosAria": "Diagram: tap the Share button, then Add to Home Screen",
      "androidAria": "Diagram: tap the three-dot menu, then Add to Home Screen",
      "share": "Share",
      "menu": "Menu",
      "addTo": "Add to",
      "homeScreen": "Home Screen"
    }
  },
  "delivery": {
    "title": "Delivery",
    "last": "last {{n}}",
    "empty": "No messages yet. Reminders and alerts will appear here.",
    "types": {
      "reminder": "Reminder",
      "cascade_alert": "Missed check-in alert",
      "confirmation": "Confirmation",
      "invite": "Invite",
      "message": "Message"
    },
    "toPush": " to device …{{id}}",
    "toPhone": " to phone …{{id}}",
    "toRecipient": " to …{{id}}",
    "status": {
      "delivered": "Delivered ✓",
      "sent": "Sent",
      "queued": "Queued…",
      "skippedSmsPaused": "Skipped (SMS paused)",
      "skipped": "Skipped",
      "failedWithCode": "Failed (code {{code}})",
      "failedCarrier": "Failed (carrier rejected)",
      "undeliveredWithCode": "Undelivered (code {{code}})",
      "undeliveredCarrier": "Undelivered (carrier rejected)",
      "pushNotSetUp": "Phone alert not set up on {{name}}'s phone (texts still go out)",
      "pushNotSetUpNoName": "Phone alert not set up on this phone (texts still go out)"
    },
    "retryHint": "We'll try again on the next reminder. If this keeps happening, double-check the phone number.",
    "channel": {
      "sms": "Text message",
      "push": "Push notification",
      "whatsapp": "WhatsApp"
    },
    "test_badge": "Test",
    "titleFor": "Delivery for {{name}}",
    "kinds": {
      "checked_in": "Checked-in notice",
      "missed_alert": "Missed check-in alert",
      "after_call": "After the check-in call",
      "reminderTo": "Reminder to {{name}}",
      "stop_notice": "Texts stopped (STOP)",
      "start_notice": "Texts restarted (START)",
      "neighbor_accepted": "Neighbor joined",
      "call": "Check-in call",
      "test": "Test message",
      "code": "Verification code"
    },
    "retryHintPush": "We'll try again on the next reminder. Texts still go out."
  },
  "memberDelivery": {
    "title": "Delivery & alerts",
    "subtitle": "Recent messages, check-in calls, and family alerts for this member.",
    "sections": {
      "member": "Member messages",
      "call": "AI check-in call",
      "family": "Family notified"
    },
    "empty": {
      "member": "No reminders or confirmations yet.",
      "call": "No check-in calls yet.",
      "family": "No family alerts yet."
    },
    "call": {
      "answered": "Answered ✓",
      "noAnswer": "No answer",
      "busy": "Busy",
      "failed": "Failed",
      "inProgress": "In progress…"
    },
    "channelChip": {
      "sms": "SMS",
      "whatsapp": "WhatsApp",
      "smsTitle": "This member receives messages by SMS.",
      "whatsappTitle": "Mexican number — messages send by WhatsApp, never SMS."
    }
  },
  "reminderChannel": {
    "title": "Reminder channel",
    "help": "How daily reminders and missed-check-in alerts are sent to this person.",
    "sms": "Text message (SMS)",
    "whatsapp": "WhatsApp",
    "whatsappSoon": "WhatsApp — coming soon",
    "sandboxNote": "WhatsApp delivery is in early testing. We'll send this person a quick setup text first.",
    "savedToast": "Reminder channel saved.",
    "errorToast": "Couldn't save — try again",
    "voice": "Phone call (for landlines and flip phones)",
    "voiceSetup": "We'll call this person now. The call explains the daily check-in calls, and they start once this person presses 1. Tip: ask them to say \"hello\" when they pick up — the call waits to hear a voice before it speaks, so it can tell a person from voicemail. If there's no answer, we call once more 15 minutes later.",
    "voiceSetupButton": "Call now to set up",
    "voiceCallAgainButton": "Call again",
    "lastCall": {
      "requested": "Last setup call: {{time}} — waiting for the call to finish.",
      "completed": "Last setup call: {{time}} — the call connected, but 1 wasn't pressed.",
      "no-answer": "Last setup call: {{time}} — no answer.",
      "busy": "Last setup call: {{time}} — the line was busy.",
      "failed": "Last setup call: {{time}} — the call could not be placed. Check the number, then try again.",
      "canceled": "Last setup call: {{time}} — the call was canceled."
    },
    "voiceCallingToast": "Calling now. Daily calls start once they press 1.",
    "voiceActiveNote": "This person gets an automated check-in call at their check-in time, with one more try 15 minutes later if the check-in still isn't recorded. Pressing 9 on a call stops all calls and texts.",
    "voiceNeedsSetupNote": "Check-in calls are paused until this person presses 1 on a setup call to their current number. Missed check-in alerts still go to the Circle.",
    "voiceStoppedNote": "This number asked Cozy Check-ins to stop all calls and texts, so no check-in calls are placed. Missed check-in alerts still go to the Circle.",
    "freePlanNote": "Without a plan, daily check-ins and reminders are off. They start when a plan is chosen.",
    "phonePlanNote": "On Hometown Phone, check-ins come by phone call. For texts, choose Hometown Family on the Billing page.",
    "fallbackName": "your parent",
    "freeTitle": "{{name}}'s daily reminder",
    "freeBody": "Without a plan, {{name}} gets no daily check-in yet.",
    "freeWorking": "Notifications are working on {{name}}'s phone ✓",
    "freePending": "{{name}}'s phone is set up — waiting for the first notification to show.",
    "freeReenable": "Notifications are off on {{name}}'s phone right now.",
    "freeNoDevice": "{{name}}'s phone isn't set up for notifications yet. The check-in page offers it the next time {{name}} opens it.",
    "freeLastShown": "Last notification delivered to the phone: {{time}}",
    "iphoneNote": "On iPhone (iOS 16.4 or later), notifications work once Cozy Check-ins is added to the Home Screen and opened from there.",
    "replyCode": {
      "title": "4-digit reply code",
      "help": "Off unless you turn it on. When it's on, each check-in text ends with a 4-digit code, and this person can check in by texting that code back. Either way, they can tap the link in the text, or press 1 when Cozy Check-ins calls.",
      "onToast": "4-digit code on. The next check-in text will include it.",
      "offToast": "4-digit code off. Check-in texts now carry the link only."
    }
  },
  "memberChannel": {
    "ariaGroup": "Delivery channel for this Circle member",
    "sms": "Text",
    "whatsapp": "WhatsApp"
  },
  "adminPush": {
    "title": "Push test (admin only)",
    "reregister": "Re-register this device for push",
    "registering": "Registering…",
    "sendTest": "Send test push to me",
    "queuing": "Queuing…",
    "help": "Admin tool. Register this device first, then send yourself a test. Delivery runs once a minute.",
    "registerSuccess": "This device is registered for push.",
    "registerError": "Couldn't register this device for push.",
    "registerErrorGeneric": "Couldn't register this device.",
    "queuedSuccess": "Queued — your phone should buzz within a minute.",
    "queueError": "Couldn't queue test push."
  },
  "adminEmail": {
    "title": "Email test (admin only)",
    "sendTest": "Send test email to me",
    "queuing": "Queuing…",
    "help": "Admin tool. Sends a test email to your account address through the real delivery pipeline. Delivery runs once a minute.",
    "queuedSuccess": "Queued — check your inbox within a minute.",
    "queueError": "Couldn't queue test email."
  },
  "testCheckin": {
    "title": "Send a test check-in now",
    "helper": "This won't alert your family circle — it's only for you to verify delivery.",
    "button": "Send a test check-in now",
    "sending": "Sending…",
    "success": {
      "sms": "Test sent by text message. Tap the link on the senior's phone to complete it.",
      "whatsapp": "Test sent on WhatsApp. Tap the link on the senior's phone to complete it.",
      "push": "Test push sent. Tap the notification on the senior's phone to complete it.",
      "pushThenText": "Test push sent. Tap it on the senior's phone to complete it. If it doesn't show within 3 minutes, we send a text instead."
    },
    "error": {
      "senior_pending": "This person's setup isn't finished yet, so no test was sent.",
      "senior_inactive": "This person's account isn't active, so no test was sent.",
      "reminders_disabled": "Daily reminders are turned off for this person — turn them on to send a test.",
      "no_phone": "No phone number on file for this person. Add one to send a test.",
      "opted_out": "This phone number has opted out of texts (replied STOP).",
      "sms_paused": "Sending is paused — turn it on to receive the test.",
      "rate_limited": "You just sent a test — please wait a minute before sending another.",
      "no_push": "No push device is registered for this person.",
      "generic": "Couldn't send the test — please try again."
    }
  },
  "resetSeniorAccess": {
    "title": "Reset link & sign out devices",
    "helper": "Use this if their phone is lost, replaced, or handed to someone else. The old check-in link stops working, every phone that was remembered is signed out, and saved notifications are cleared. Then we text the new link to their confirmed number.",
    "button": "Reset link & sign out devices",
    "confirm": "Reset the check-in link and sign out every remembered phone? The old link will stop working right away.",
    "working": "Resetting…",
    "done": "Link reset and remembered phones signed out. New link sent by text.",
    "doneNoText": "Link reset and remembered phones signed out. The new link was not texted: {{reason}}",
    "error": "Could not reset the link — please try again."
  },
  "deleteAccount": {
    "title": "Delete my account",
    "helper": "Removes your sign-in, your place in every Circle, and your notification settings. If you look after someone here, delete their profile first. This can't be undone.",
    "button": "Delete my account",
    "typeToConfirm": "Type DELETE to confirm",
    "confirmWord": "DELETE",
    "cancel": "Cancel",
    "confirmButton": "Delete permanently",
    "deleting": "Deleting…",
    "done": "Your account has been deleted.",
    "error": "Could not delete the account — please try again."
  },
  "billing": {
    "owner": {
      "label": "OWNER"
    },
    "coveredBy": "Covered by {{org}}",
    "paidBy": "Paid by {{name}}",
    "paidBySelf": "Paid by self",
    "takeOver": {
      "title": "Take over billing",
      "body": "Right now {{org}} is paying for this account. You can take it over from your family.",
      "phaseNote": "Heads up: in this preview we flip the labels but don't charge a card. Real billing turns on in the next update.",
      "cta": "Take over billing",
      "confirmTitle": "Take over billing for this account?",
      "confirmBody": "{{org}} will stop being billed for this account. Your family becomes the payor of record.",
      "keepMonitoring": "Keep {{org}} as a support partner (no billing). They'll still see check-in status if your family invites them back.",
      "cancel": "Not now",
      "confirm": "Yes, take it over",
      "success": "You're now the payor for this account.",
      "error": "We couldn't take over billing. Please try again."
    },
    "lapse": {
      "orgResumePromptTitle": "Resume coverage for {{name}}?",
      "orgResumePromptBody": "Their family's payment lapsed. You can put them back on your org's plan so they don't lose coverage.",
      "orgResumeAccept": "Resume coverage",
      "orgResumeSuccess": "{{name}} is back on your org's coverage.",
      "orgResumeError": "Couldn't resume coverage. Please try again."
    }
  },
  "onboarding": {
    "who": {
      "title": "Who are you setting this up for?",
      "subtitle": "We'll match the right setup — and the right OWNER — based on who this account is for.",
      "lovedOne": "A loved one (parent, spouse, friend)",
      "helperLovedOne": "You'll be the OWNER. You can invite more family or pros to help.",
      "myself": "Myself",
      "helperMyself": "You're the senior on the account. You can invite a family admin and you can pay for it yourself.",
      "myselfRedirectToast": "We'll take you to your settings — invite a family admin from there.",
      "myselfComingSoon": "Self sign-up is coming soon. For now, ask a family member to set up the account for you.",
      "comingSoonBadge": "Coming soon"
    }
  },
  "dataAccess": {
    "pageTitle": "Privacy & data access",
    "backAria": "Back to settings",
    "fallbackName": "this person",
    "loading": "Loading…",
    "holdTitle": "What we hold for {{name}}",
    "statCheckIns": "Check-ins",
    "statNotifications": "Notifications",
    "statConsents": "Consent records",
    "statDevices": "Devices",
    "statInvites": "Invites",
    "statRelationships": "Circle members",
    "downloadAria": "Download a JSON copy of all data we hold",
    "downloadBtn": "Download a copy (JSON)",
    "submitTitle": "Submit a request",
    "submitIntro": "Under privacy law (GDPR / LGPD / Mexico's ARCO rights), {{name}} — or family acting on their behalf — can ask us to share, correct, stop using, or delete data. We respond within {{days}} days.",
    "kindLabel": "Request type",
    "kind_access": "Access — send me a copy of what you hold",
    "kind_rectification": "Rectification — correct something",
    "kind_cancellation": "Cancellation — stop processing and delete",
    "kind_opposition": "Opposition — opt out of a specific use",
    "detailsLabel": "Details",
    "detailsPlaceholder": "Tell us what you'd like done…",
    "submitBtn": "Submit request",
    "submitting": "Submitting…",
    "toastReceived": "Request received — we respond within {{days}} days.",
    "toastError": "Could not submit",
    "downloadPdfAria": "Download check-in history as PDF",
    "downloadPdfBtn": "Download check-in history (PDF)",
    "downloadPdfPreparing": "Preparing PDF…",
    "downloadPdfToast": "Check-in history downloaded.",
    "downloadPdfError": "Could not build the PDF — please try again.",
    "retentionNote": "We keep the last 24 months of check-ins. Consent records and audit history are kept separately.",
    "recentTitle": "Recent activity — last 12 months",
    "recentIntro": "Download {{name}}'s check-ins from the last year, including the note {{name}} typed on each day. Choose PDF for reading or CSV for spreadsheets.",
    "recentLocked": "This is a separate permission. Ask {{name}} to open their own dashboard and turn on \"Allow my family to download my check-in history and notes.\" It's off by default.",
    "recentPdfBtn": "Download recent activity (PDF)",
    "recentCsvBtn": "Download recent activity (CSV)",
    "recentPdfAria": "Download recent activity as PDF",
    "recentCsvAria": "Download recent activity as CSV",
    "recentPreparing": "Preparing…",
    "recentNote": "Every download is recorded in the audit log — your parent can see who exported and when.",
    "recentDownloadToast": "Recent activity downloaded.",
    "recentDownloadError": "Could not build the export — please try again.",
    "holdClause": "For your security, every privacy request is held for up to 72 hours before we release any information or act on it. We email you the moment a request is made.",
    "privacyUnavailable": "Privacy requests aren't available right now. Please try again later.",
    "passcodeTitle": "Your privacy passcode",
    "passcodeIntro": "You need this passcode to make any privacy request. It shows the request comes from you.",
    "passcodeLocked": "Too many tries. Your passcode is locked until {{until}}.",
    "passcodeIsSet": "Your privacy passcode is saved.",
    "passcodeChangeBtn": "Change passcode",
    "passcodeForgot": "Forgot it? support@cozycheckins.com can reset it after confirming it's you.",
    "passcodeCurrentLabel": "Current passcode",
    "passcodeNewLabel": "New passcode",
    "passcodeSetLabel": "Choose a privacy passcode",
    "passcodeRules": "At least 8 characters: a word, a phrase or a number you'll remember.",
    "passcodeConfirmLabel": "Type it again",
    "passcodeSetBtn": "Save passcode",
    "cancel": "Cancel",
    "passcodeSaved": "Passcode saved.",
    "passcodeMismatch": "The two passcodes don't match.",
    "passcode_too_short": "Use at least 8 characters.",
    "passcode_too_long": "Use 64 characters or fewer.",
    "passcode_all_same": "Use more than one repeated character.",
    "passcodeNotSet": "Save your privacy passcode first.",
    "passcodeWrong": "That passcode doesn't match.",
    "tooManyTries": "Too many tries. Please try again later.",
    "passcodeLabel": "Privacy passcode",
    "copyTitle": "Get a copy of the data",
    "copyIntro": "Request a copy of everything we hold about {{name}}. It becomes available here for 7 days once the hold ends.",
    "copyRequested": "Requested {{requested}}. Ready after {{release}}.",
    "copyStopped": "This request was stopped. support@cozycheckins.com can tell you why.",
    "copyReady": "Your copy is ready. Available until {{until}}.",
    "copyRequestBtn": "Request a copy",
    "otherTitle": "Other requests",
    "otherOpenAria": "Requests in progress",
    "otherHolding": "held until {{release}}",
    "otherWithTeam": "our team is working on it",
    "requestSent": "Request received. It's held until {{release}}, and we've emailed you."
  },
  "a2hs": {
    "regionLabel": "Save to home screen",
    "dismiss": "Dismiss",
    "title": "📱 Save this for tomorrow",
    "addButton": "Add to Home Screen",
    "oneTapHint": "Tap once — your check-in will be right on your home screen.",
    "androidStepsHtml": "Tap the <strong>⋮ menu</strong> at the top right of your browser, then tap <strong>Add to Home Screen</strong> to save this for easy access every day.",
    "iosStep1Prefix": "Tap the",
    "iosShareLabel": "Share",
    "iosStep1Suffix": "button at the <strong>bottom</strong> of your screen",
    "iosStep2Html": "Scroll down and tap <strong>&ldquo;Add to Home Screen&rdquo;</strong>",
    "nudge": "Save this to your phone so it's easy to find — tap here"
  },
  "memberActions": {
    "onItButton": "I've got it — I'll check on {{name}}",
    "sending": "Sending…",
    "youOnIt": "You're on it.",
    "someoneOnIt": "{{name}} is on it.",
    "ackError": "Couldn't send that — please try again.",
    "nudgeButton": "Send {{name}} a check-in reminder",
    "nudgeSending": "Sending…",
    "nudgeSent": "Reminder sent.",
    "nudgeCooldown": "You nudged them a few minutes ago — give them a moment.",
    "nudgeDailyLimit": "That's plenty of nudges for today — try again tomorrow.",
    "nudgeError": "Couldn't send the reminder — please try again.",
    "circleTitle": "Who's in the Circle",
    "roleFamilyOwner": "Family owner",
    "roleFamilyMember": "Family member",
    "roleTrustedLocal": "Trusted local"
  },
  "orgFamilyInvites": {
    "title": "Family invite links",
    "blurb": "Generate a shareable link and QR code for every member's family — no texts sent, no Twilio cost. Families tap the link, sign in, and join that member's Circle.",
    "generateAll": "Generate for all members",
    "downloadCsv": "Download CSV",
    "printSheet": "Print sheet with QR codes",
    "printTitle": "Family invite links",
    "printHint": "Each family scans their member's QR code (or opens the link) to join.",
    "empty": "No links yet. Click \"Generate for all members\" to create them.",
    "copyLink": "Copy link",
    "copied": "Copied!",
    "regenerate": "Regenerate",
    "expiresAt": "Expires {{date}}",
    "working": "Working…",
    "maxUsesLabel": "Max family members per link",
    "maxUsesHint": "1–5 (default 3)",
    "passwordWarnTitle": "Treat this link like a password.",
    "passwordWarnBody": "Anyone who opens it can join the family circle and see check-ins and photos. Share only with the people you mean to invite.",
    "shareWarn": "These links grant lasting access to a senior's check-ins. Share them only directly with the family — never post them publicly or on bulletin boards.",
    "usesAndExpiry": "{{uses}} uses · expires {{date}}",
    "printFooter": "Sheet generated {{date}}. Each link expires on the date shown below the QR code.",
    "verifyLast4Label": "Last 4 digits of family's phone (optional, adds verification)",
    "verifyLast4Hint": "If set, the family member must enter these 4 digits before they can join.",
    "mxSkippedTitle": "Coming soon for Mexico",
    "mxSkippedBody": "Bulk family invite links are not yet available for members with a Mexican phone number. These members were skipped:",
    "printExpires": "Expires {{date}}"
  },
  "orgFamilyInvite": {
    "loading": "Loading your invite…",
    "invalidTitle": "This invite isn't valid",
    "errorTitle": "Something went wrong",
    "title": "Join your loved one's Circle",
    "from": "Invited by {{org}}",
    "body": "You'll be added as a family member so you can see check-ins and get alerts.",
    "joinCta": "Join the Circle",
    "signInCta": "Sign in to join",
    "verifyLabel": "Enter the last 4 digits of your phone number",
    "verifyError": "Those digits don't match — check with the organization that gave you this link.",
    "acceptedTitle": "You're in!",
    "acceptedBody": "You're now part of your loved one's Circle. Redirecting…",
    "reasons": {
      "invalid": "This link isn't valid.",
      "expired": "This link has expired. Ask the organization for a fresh one.",
      "revoked": "This link was revoked. Ask the organization for a new one.",
      "used_up": "This link reached its limit — ask the organization for a new one.",
      "staff_blocked": "This link is for family members. Organization staff can't join through it.",
      "mx_blocked": "Bulk family invite links aren't available for Mexico yet. Please ask the organization for another way to join.",
      "verification_failed": "Those digits don't match — check with the organization that gave you this link.",
      "rate_limited": "Too many attempts. Please wait a few minutes and try again."
    }
  },
  "timezonePicker": {
    "label": "Your time zone",
    "hint": "We detected your device's time zone. Change it if you'll get alerts somewhere else.",
    "memberLabel": "Their time zone",
    "memberHint": "We'll send this person alerts at their local time. Default is your time zone — change if they live elsewhere.",
    "contactLabel": "Family contact's time zone",
    "contactHint": "The family member joining will confirm this on their end. Default is the organization's time zone.",
    "usGroup": "United States",
    "mxGroup": "Mexico",
    "names": {
      "America_New_York": "Eastern Time",
      "America_Chicago": "Central Time",
      "America_Denver": "Mountain Time",
      "America_Phoenix": "Arizona - no DST",
      "America_Los_Angeles": "Pacific Time",
      "America_Anchorage": "Alaska Time",
      "Pacific_Honolulu": "Hawaii Time",
      "America_Mexico_City": "Mexico Central",
      "America_Tijuana": "Mexico Pacific",
      "America_Cancun": "Mexico Eastern"
    },
    "cities": {
      "America_New_York": "New York",
      "America_Chicago": "Chicago",
      "America_Denver": "Denver",
      "America_Phoenix": "Phoenix",
      "America_Los_Angeles": "Los Angeles",
      "America_Anchorage": "Anchorage",
      "Pacific_Honolulu": "Honolulu",
      "America_Mexico_City": "Mexico City",
      "America_Tijuana": "Tijuana",
      "America_Cancun": "Cancun"
    },
    "regions": {
      "America_New_York": "Eastern",
      "America_Chicago": "Central",
      "America_Denver": "Mountain",
      "America_Phoenix": "Arizona - no DST",
      "America_Los_Angeles": "Pacific",
      "America_Anchorage": "Alaska",
      "Pacific_Honolulu": "Hawaii",
      "America_Mexico_City": "Mexico Central",
      "America_Tijuana": "Mexico Pacific",
      "America_Cancun": "Mexico Eastern"
    }
  },
  "demoMode": {
    "title": "Demo mode",
    "description": "Fill the Family Dashboard with sample data for screenshots and demos. Admin only. No real messages or calls are sent, and no real data is changed.",
    "on": "On",
    "off": "Off",
    "toggleAria": "Toggle demo mode",
    "onToast": "Demo mode on — dashboard is showing sample data.",
    "offToast": "Demo mode off — back to your real data.",
    "notInDemo": "Demo: this page uses your real account, so it's not in the demo."
  },
  "pushTest": {
    "title": "Test push notifications",
    "helper": "You don't need to be with Mom or Dad: below shows whether their phone is set up for notifications. If it isn't, text them the link from here. They tap it, then one button. Then send a real test to their phone.",
    "button": "Send a test notification",
    "sending": "Sending…",
    "sentToast": "Test notification sent.",
    "readiness": {
      "loading": "Checking their phone setup…",
      "none": "Not set up for push notifications yet",
      "some": "Set up on {{count}} device(s)",
      "lastSent": "Last notification sent {{when}}",
      "failures": "{{count}} past notification(s) didn't go out"
    },
    "results": {
      "title": "Recent tests"
    },
    "status": {
      "queued": "Queued",
      "sent": "Sent — waiting for their phone",
      "sentUnconfirmed": "Sent — their phone hasn't confirmed (it may be off, or notifications are off)",
      "shown": "Delivered to their phone — not opened yet",
      "opened": "Opened ✓ — they saw it",
      "failedNotTurnedOn": "Failed — they haven't turned on notifications",
      "failedExpired": "Failed — their phone's notification setup has expired, needs re-enabling",
      "failedGeneric": "Failed — we couldn't send it this time"
    },
    "error": {
      "no_devices": "Their phone isn't set up for notifications yet, so nothing was sent.",
      "rate_limited": "You just sent a test — please wait a minute before sending another.",
      "checkin_pending": "Not right now — they have a check-in waiting. Testing now could clear it off their phone. Try again once they've tapped it.",
      "generic": "Couldn't send the test — please try again."
    },
    "buttonToParent": "Send a test to {{name}}",
    "who": {
      "parent": "{{name}}'s phone",
      "parentFallback": "Your parent's phone",
      "you": "Your phone"
    },
    "self": {
      "title": "Test my own phone",
      "helper": "Send a test to the phones where you're signed in to this account, like the Cozy Check-ins app.",
      "loading": "Checking your phones…",
      "none": "None of your phones has notifications turned on yet.",
      "some": "Notifications are on for {{count}} of your device(s).",
      "button": "Send a test to me",
      "sending": "Sending…",
      "sentToast": "Test sent to your phone.",
      "results": {
        "title": "My recent tests"
      },
      "error": {
        "no_devices": "None of your phones has notifications turned on yet.",
        "rate_limited": "You just sent a test — please wait a minute before sending another.",
        "generic": "Couldn't send the test — please try again."
      }
    },
    "circle": {
      "title": "Also test the Circle",
      "helper": "Pick who else should get the same test notification. Nothing goes out until you press the button.",
      "groupFamily": "Family",
      "groupFriends": "Friends & neighbours",
      "none": "No one else is in the Circle yet.",
      "loading": "Loading the Circle…",
      "noDevices": "Hasn't turned on notifications yet",
      "unknownPerson": "Circle member",
      "button": "Send a test to the people I picked",
      "sending": "Sending…",
      "sentToast": "Test notification sent to {{count}} people.",
      "results": {
        "title": "Recent Circle tests"
      },
      "error": {
        "rate_limited": "You just tested the Circle. Please wait about 10 minutes before testing them again.",
        "no_devices": "No one you picked has turned on notifications yet, so nothing was sent.",
        "not_in_circle": "Someone you picked isn't in this Circle anymore. Reload the page and try again.",
        "generic": "Couldn't send the test — please try again."
      }
    }
  },
  "voiceTermsPage": {
    "metaTitle": "Voice Call Terms — Cozy Check-ins",
    "metaDescription": "How Cozy Check-ins uses phone calls: daily phone-call check-ins for someone without a smartphone, automated reminder calls after a missed check-in, and masked calling for organizations. Calls are never recorded.",
    "title": "Voice Call Terms",
    "effective": "Effective date: {{date}}",
    "intro": "Cozy Check-ins is text-first, but it also places automated phone calls in two cases: a daily phone-call check-in for someone without a smartphone (paid plans), and a reminder call after a missed check-in (paid plans). This page explains exactly when we call, who we call, and how to stop calls. It works alongside our [Terms of Service](/terms) and [SMS Terms](/sms-terms).",
    "sections": [
      {
        "title": "1. Daily phone-call check-ins",
        "paragraphs": [
          "Phone-call check-ins are a separate option for someone without a smartphone. The family owner can request a one-time setup call, and daily calls start only if the person called presses 1 on that call to agree. After that, one automated call is placed each day at the check-in time, plus one more try about 15 minutes later if the check-in is still not recorded. Pressing 1 records the check-in. Pressing 9 stops all calls and texts from Cozy Check-ins. These calls are automated, non-emergency, and never recorded.",
          "Phone-call check-ins are available for United States phone numbers. A person who checks in by phone call is not sent text messages."
        ]
      },
      {
        "title": "2. Reminder calls after a missed check-in",
        "paragraphs": [
          "On paid plans, a family or organization can turn on a call step. If the senior misses her check-in and has not responded to the reminder, Cozy Check-ins places one automated phone call to her number. A friendly recorded voice — in English or Spanish, based on her language setting — reminds her to check in and asks her to press 1 to check in. Pressing 1 records her check-in, and anyone who was alerted is told she checked in. If she does not answer or does not press 1, the call ends and her Circle is notified as usual.",
          "These calls are transactional reminders you asked for. They are never sales calls, never contain advertising, and are placed only to a phone number whose owner opted in to Cozy Check-ins reminders. We place at most one automated reminder call a day — never a second one that day, even if the first goes unanswered.",
          "Automated calls are not answered by a person and cannot take a message. If the senior needs help, she should call her family or her local emergency number — the call cannot connect her to anyone."
        ]
      },
      {
        "title": "3. Masked calling for organizations",
        "paragraphs": [
          "Organizations on a paid plan can call their members from the Cozy Check-ins dashboard without revealing staff members' personal phone numbers. When staff tap \"Call,\" we ring the staff member's phone first and then connect the member through a Cozy Check-ins number. The member sees the Cozy Check-ins number, not the staff member's.",
          "Masked calls are ordinary phone conversations between two people. Cozy Check-ins connects them and then steps out of the way."
        ]
      },
      {
        "title": "4. Calls are never recorded",
        "paragraphs": [
          "We do not record the audio of any call — not phone-call check-ins, not reminder calls, not masked calls. We store only call metadata: which number was called, when, how long the call lasted, and the result (answered, no answer, pressed 1). Organizations can see that metadata for their own members in the call log. No one can listen back to a call, because no recording exists."
        ]
      },
      {
        "title": "5. Consent and who we call",
        "paragraphs": [
          "For reminder calls, we call the senior only after she has opted in to Cozy Check-ins from her own phone, and only when her family or sponsoring organization has turned on the call step. Families and organizations promise they have the senior's permission before enabling calls. For phone-call check-ins, we place one setup call at the family owner's request, and daily calls start only if the senior herself presses 1 on that call.",
          "Masked calls go only to members the organization enrolled with their consent, and only from staff who are signed in to that organization's dashboard."
        ]
      },
      {
        "title": "6. How to stop calls",
        "paragraphs": [
          "Reply **STOP** to any Cozy Check-ins text message, press 9 on any Cozy Check-ins call, or email support@cozycheckins.com, and we will stop automated calls and texts to that number. Stopping the senior's number pauses her check-ins, so please tell her family. Families and organizations can also turn the call step off in settings at any time.",
          "If you receive a call from Cozy Check-ins and believe you should not have, email us and we will look into it right away."
        ]
      },
      {
        "title": "7. Carriers, timing, and limits",
        "paragraphs": [
          "Calls are placed through our telephony provider and carried by phone networks we do not control. A call may be delayed, blocked by a carrier's spam filter, or fail to connect, and voicemail systems may intercept it. Cozy Check-ins cannot guarantee that any call is completed or heard. Carriers are not liable for delayed or failed calls. Standard call charges from your phone plan may apply to received calls.",
          "Automated calls are placed only as a daily phone-call check-in the senior agreed to, or as part of a check-in escalation you configured. We do not place calls outside those flows, and we do not use autodialers for marketing of any kind."
        ]
      },
      {
        "title": "8. Not an emergency service",
        "paragraphs": [
          "A call from Cozy Check-ins is a gentle check-in or reminder, not a welfare check by a professional. Cozy Check-ins never calls 911, police, fire, or EMS, and cannot dispatch help. If someone is in danger, call your local emergency number right away."
        ]
      }
    ],
    "contactTitle": "9. Contact",
    "contactPre": "Questions about calls? Reach us at",
    "contactMid": "or visit our",
    "contactLink": "contact page"
  },
  "providersPage": {
    "metaTitle": "Service Providers — Cozy Check-ins",
    "metaDescription": "The companies that help Cozy Check-ins run, what each one does, and what data it handles. We never sell personal information.",
    "title": "Service Providers",
    "effective": "Last updated: {{date}}",
    "intro": "Cozy Check-ins is a small company, so we rely on a handful of trusted providers to store data, deliver messages, and take payments. This page lists every one of them, what it does for you, and what information it handles. Each provider may use your information only to provide its service to us — never for its own marketing, never to sell. If we add or replace a provider, we update this page and the date above.",
    "columns": {
      "name": "Provider",
      "purpose": "What it does",
      "data": "What it handles",
      "region": "Where"
    },
    "providers": [
      {
        "name": "Supabase",
        "purpose": "Database, sign-in, file storage, and the server functions that schedule reminders and alerts.",
        "data": "All account and check-in data: names, phone numbers, emails, check-in history, consent records, optional photos.",
        "region": "United States"
      },
      {
        "name": "Backblaze",
        "purpose": "Keeps our nightly backup copies in a locked vault, so the service can be restored after an attack or an outage.",
        "data": "An encrypted copy of the database and uploaded photos. It is locked with a key only we hold, kept offline, so Backblaze cannot read it. Each copy is deleted automatically within 35 days.",
        "region": "United States"
      },
      {
        "name": "Twilio",
        "purpose": "Checks whether a phone number is an internet-only number (like Google Voice) before a free trial starts. When Cozy Check-ins looks into a delivery problem for a family, checks what kind of line a parent's number is (mobile, landline or internet).",
        "data": "Phone numbers, message text, delivery status.",
        "region": "United States"
      },
      {
        "name": "Telnyx",
        "purpose": "Sends and receives SMS text messages, and places the automated phone calls: daily phone-call check-ins, reminder calls after a missed check-in, and masked calls for organizations.",
        "data": "Phone numbers, message text and delivery status; for calls, the key pressed (1 or 9), call time and duration, and the result. Calls are never recorded.",
        "region": "United States"
      },
      {
        "name": "Meta (WhatsApp Business)",
        "purpose": "Hosts our WhatsApp support inbox (the number you message for help). Once WhatsApp check-ins start (coming soon), it also delivers the WhatsApp check-in reminders and alerts, and the replies to them.",
        "data": "Phone numbers, message text, delivery status; for the support inbox, what you write to us.",
        "region": "United States / Meta global infrastructure"
      },
      {
        "name": "Apple, Google, and Mozilla push services",
        "purpose": "Deliver push notifications to phones and browsers when you turn them on. In the Cozy Check-ins phone app, Google's Firebase Cloud Messaging delivers them.",
        "data": "An anonymous device token and the short notification text. No phone numbers. In a browser the notification text is encrypted on its way; in the phone app it passes through Google readable, the same way a text message passes through the phone company, and it can include your parent's first name.",
        "region": "United States"
      },
      {
        "name": "Resend",
        "purpose": "Sends account emails — sign-in links, invitations, alerts by email, and the daily digest for organizations.",
        "data": "Email addresses and the email content.",
        "region": "United States"
      },
      {
        "name": "Stripe",
        "purpose": "Processes subscription payments.",
        "data": "Card details and billing information go directly to Stripe. We store only a customer reference and subscription status — never your full card number.",
        "region": "United States"
      },
      {
        "name": "Cloudflare",
        "purpose": "Hosts and serves the Cozy Check-ins web app, and protects it from bots and abuse (Turnstile).",
        "data": "Network information such as IP address and browser type while you load a page; app traffic passes through Cloudflare's network.",
        "region": "Global edge network"
      },
      {
        "name": "Sentry",
        "purpose": "Tells us when something breaks so we can fix it.",
        "data": "Error reports with technical details. Phone numbers and check-in links are scrubbed before anything is sent.",
        "region": "United States"
      },
      {
        "name": "PostHog",
        "purpose": "Counts visits to our public pages: which page, where the visit came from (for example Google), how long the page stayed open, and a few steps on the way to joining (a join button tapped, a form started, sent or stopped by the robot check, an account made).",
        "data": "Page address with codes removed, the site the visit came from, browser and device type, time on page, and the name of a join step. Nothing stored on your device, no profiles, no recordings, no typed text, and nothing from signed-in pages or the app.",
        "region": "United States"
      },
      {
        "name": "Anthropic",
        "purpose": "Powers the Phone Help helper for family members, and the AI assistants Cozy staff use to triage support tickets and watch the service.",
        "data": "Phone Help: only what you type — the question, the senior's first name and phone model. Staff assistants: support ticket text and service status. No check-in history.",
        "region": "United States"
      },
      {
        "name": "Google (Gemini, via Lovable's AI gateway)",
        "purpose": "Powers the senior's own optional Phone Help assistant (Hometown Plus) that gives step-by-step help with her phone, including reading a screenshot she chooses to send.",
        "data": "Only what she types or uploads into Phone Help: the question, an optional screenshot, her first name, and her phone model. No phone numbers or check-in history. The request passes through Lovable's AI gateway on its way to Google.",
        "region": "United States"
      },
      {
        "name": "Lovable",
        "purpose": "The platform we build and deploy the app on. Our Stripe requests are routed through Lovable's managed-payments gateway, and the senior's Phone Help requests through Lovable's AI gateway to Google.",
        "data": "Application code; the billing requests we send to Stripe (your email, plan, and subscription status); and the senior's Phone Help question and optional screenshot on their way to Google. Card numbers are entered directly into Stripe and never pass through Lovable.",
        "region": "United States / European Union"
      }
    ],
    "commitmentsTitle": "What never happens",
    "commitments": [
      "We never sell personal information.",
      "Mobile phone numbers and SMS opt-in or consent data are never shared with third parties or affiliates for marketing or promotional purposes.",
      "No provider may use your information for its own purposes, for advertising, or to train AI models on your data.",
      "We do not use advertising networks, ad pixels, or data brokers."
    ],
    "transfersTitle": "Data location",
    "transfersBody": "Your information is stored in the United States. If you live in Mexico, your data is transferred to and stored in the US with your consent, and you can exercise your ARCO rights (access, rectification, cancellation, opposition) by writing to [support@cozycheckins.com](mailto:support@cozycheckins.com); a family owner can also make requests on our [privacy & data access page](/privacy/data-access). Our [Privacy Policy](/privacy) explains how requests work.",
    "contactTitle": "Questions",
    "contactPre": "Questions about a provider? Reach us at",
    "contactMid": "or visit our",
    "contactLink": "contact page",
    "privacyLinkPre": "This page is part of our",
    "privacyLinkText": "Privacy Policy"
  },
  "demographics": {
    "yourAge": "Your age",
    "parentAge": "Your parent's age",
    "city": "City",
    "region": "State",
    "ageHelp": "Helps us improve Cozy. Never shown to anyone.",
    "choose": "Select…",
    "zip": "ZIP code",
    "zipInvalid": "ZIP code must be 5 digits.",
    "yourLocation": "Where you live",
    "bracket": {
      "18_29": "18–29",
      "30_39": "30–39",
      "40_49": "40–49",
      "under_50": "Under 50",
      "50_64": "50–64",
      "65_74": "65–74",
      "75_84": "75–84",
      "85_plus": "85+"
    },
    "required": "Please add their age, city, and state.",
    "gender": "Male or female (optional)",
    "genderOption": {
      "male": "Male",
      "female": "Female",
      "prefer_not": "Prefer not to say"
    }
  },
  "whereAreYou": {
    "title": "Help us show where families need us",
    "body": "Your state, city and ZIP code help us show funders where families are, and how far they live from their parents. Funders only see totals, never names.",
    "country": "Country",
    "privacy": "Just your city and ZIP area, never your address. We don't track your location. Change it anytime in Settings.",
    "skip": "Skip",
    "save": "Save",
    "saved": "Saved. Thank you!",
    "error": "Couldn't save — try again"
  },
  "receipt": {
    "title": "Today's notifications",
    "checkIn": "Check-in",
    "seniorNotified": "Reminder reached them",
    "familyNotified": "Family alerted",
    "pass": "PASS",
    "fail": "FAIL",
    "notYet": "Not yet",
    "notNeeded": "Not needed",
    "checkedInAt": "Checked in {{time}}",
    "missed": "Missed",
    "waiting": "Waiting",
    "empty": "No check-in yet today.",
    "footnote": "PASS means a notice was handed to the phone network or the device; shown means the phone confirmed it. FAIL means every attempt failed or was skipped. Every push and text is kept on record for 5 years.",
    "push": "push",
    "text": "text",
    "shownAt": "delivered {{time}}",
    "sentAt": "sent {{time}}",
    "failedAt": "failed {{time}}",
    "skipped": "skipped",
    "queued": "queued",
    "senior": "Parent",
    "showDetail": "Show every push and text ({{n}})",
    "hideDetail": "Hide the detail",
    "kinds": {
      "reminder": "Reminder",
      "not_yet": "Not yet checked in",
      "after_call": "After the call",
      "missed": "Missed check-in",
      "checked_in": "Checked in",
      "other": "Notice"
    },
    "roles": {
      "family_owner": "Family owner",
      "family_member": "Family",
      "trusted_local": "Trusted neighbor",
      "other": "Circle member"
    },
    "titleFor": "Today's notifications for {{name}}"
  },
  "proof": {
    "title": "Proof of service — notification record",
    "body": "Every reminder and alert Cozy sent, month by month, from a record that cannot be edited and is kept for 5 years. Use it in grant reports and partner reviews.",
    "download": "Download CSV",
    "loading": "Loading the record…",
    "error": "The record could not be loaded.",
    "empty": "No check-ins in this range yet.",
    "stat": {
      "responseRate": "Check-ins made",
      "checkins": "Made / scheduled",
      "pushShown": "Pushes shown on the phone",
      "texts": "Texts sent"
    },
    "col": {
      "month": "Month",
      "seniors": "Members",
      "made": "Made / sched.",
      "missed": "Missed",
      "pushesSent": "Pushes sent",
      "pushesShown": "Shown",
      "texts": "Texts",
      "failed": "Failed",
      "median": "Push shown in"
    },
    "footnote": "\"Shown\" means the phone confirmed the notification appeared. \"Failed\" counts notices where every attempt failed. Test data is excluded. Source: the Cozy Check-ins notification ledger — append-only, stamped by the database clock, retained 5 years."
  },
  "deviceSetup": {
    "finishLater": {
      "button": "Finish later",
      "working": "One moment…",
      "note": "Your account works now, protected by your password and email. You have 5 days to finish — after that, setup is required. You can only do this once.",
      "failed": "We couldn't save that. Please try again.",
      "alreadyUsed": "You already used \"Finish later\" once. Please finish setting up your phone and computer to keep using Cozy."
    },
    "reminder": {
      "title": "Finish securing your account",
      "body": "Add your phone and computer so only your devices can open Cozy. Until then, your password and email protect it.",
      "cta": "Finish setup",
      "daysLeft_one": "{{count}} day left — after that, setup is required.",
      "daysLeft_other": "{{count}} days left — after that, setup is required.",
      "lastDay": "Last day — setup will be required soon.",
      "member": {
        "title": "Finish securing your account",
        "body": "Add your phone so only your phone can open Cozy Check-ins. Until then, your password and email protect it.",
        "daysLeft_one": "{{count}} day left. After that, setup is required.",
        "daysLeft_other": "{{count}} days left. After that, setup is required.",
        "lastDay": "Last day. Setup will be required soon."
      }
    },
    "flow": {
      "loading": "Securing your account…",
      "title": "Secure your account",
      "intro": "Cozy uses one phone and one computer for this account. Setup is automatic and usually takes less than a minute.",
      "readyCount": "{{ready}} of 2 devices ready",
      "phone": "Phone",
      "computer": "Computer",
      "ready": "Ready",
      "waiting": "Waiting",
      "finishOn": {
        "phone": "Finish on your phone",
        "computer": "Finish on your computer"
      },
      "openOn": {
        "phone": "Open Cozy on your phone and sign in to the same account. We will finish automatically.",
        "computer": "Open Cozy on your computer and sign in to the same account. We will finish automatically."
      },
      "qrAlt": {
        "phone": "QR code to open Cozy on your phone",
        "computer": "QR code to open Cozy on your computer"
      },
      "orVisit": "Or visit cozycheckins.com/devices on that device.",
      "another": {
        "phone": "This looks like another phone. Please continue on your computer instead.",
        "computer": "This looks like another computer. Please continue on your phone instead."
      },
      "tryAgain": "Try again",
      "keyNote": "Your device key stays in this browser. It's never copied or shown to anyone.",
      "wrongAccount": "Signed in to the wrong account, or want to use another one?",
      "waitingOther": "Your phone and computer are both set up. To finish, open Cozy on the other one and sign in there once more.",
      "errors": {
        "loadFailed": "We could not load account security. Refresh and try again.",
        "reloadFailed": "We could not reload account security.",
        "finishFailed": "We could not finish securing your account. Try again in a moment.",
        "stepFailed": "We could not finish this step.",
        "slot_taken": "That device is already set up. Open Cozy on your other device to continue.",
        "session_conflict": "This browser is already linked to a different trusted device.",
        "email_proof_required": "Confirm your email first, then come back to finish securing your account.",
        "session_unbindable": "Please sign out, sign back in, and try again on this device.",
        "rate_limited": "Too many security attempts. Wait a few minutes and try again.",
        "invalid_proof": "We couldn't confirm this device. Try again, and don't clear this browser's data.",
        "foreign_key": "This browser has a key from a different Cozy account. To set it up for this account, use the steps below.",
        "default": "We couldn't finish this step. Nothing was changed. Try again."
      },
      "member": {
        "intro": "You're a member of a Circle, so you only need your phone. Setup is automatic and usually takes less than a minute.",
        "phoneReady": "Your phone is ready",
        "phoneWaiting": "Waiting for your phone",
        "noComputer": "No computer needed. You can add one later from Trusted devices if you want.",
        "anotherPhone": "This looks like a different phone from the one you set up. If you lost that phone, you can get back in below.",
        "finishLaterUsed": "You already used \"Finish later\" once. Please finish setting up your phone to keep using Cozy Check-ins.",
        "finishLaterNote": "Your account works now, protected by your password and email. You have 5 days to finish. After that, setup is required. You can only do this once."
      },
      "thirdBrowser": "This browser isn't one of your 2 trusted devices. Use your phone or your computer, or if you lost both, get back in below."
    }
  },
  "opsAlerts": {
    "phone": {
      "title": "Send alerts to this phone",
      "notSet": "No account gets push alerts yet. Refunds, disputes and outages reach email only.",
      "onMine": "Pushing to your account. Every device where you have enabled Cozy push alerts gets refunds, disputes and outages.",
      "onOther": "Pushing to another admin's account. Press the button to move alerts to yours.",
      "sendHere": "Send alerts to this phone",
      "stop": "Stop sending to my phone",
      "on": "Alerts now push to your account.",
      "off": "Alerts no longer push to any phone."
    },
    "browser": {
      "unsupported": "This browser cannot receive push alerts.",
      "checking": "Checking this browser's push subscription…",
      "subscribed": "This browser is subscribed to push alerts.",
      "notSubscribed": "This browser is not subscribed to push alerts yet.",
      "enable": "Enable push on this device"
    }
  },
  "opsMoney": {
    "title": "Money in vs money out",
    "subtitle": "Counts from Cozy's own records plus Telnyx-rate estimates. Nothing here is a Stripe or Telnyx statement.",
    "period": {
      "month": "Month",
      "quarter": "Quarter",
      "year": "Year"
    },
    "quarterLabel": "Q{{quarter}} {{year}}",
    "soFar": "so far",
    "earlier": "Earlier period",
    "later": "Later period",
    "loadError": "Could not load the money report.",
    "truncated": "Some lists hit the 10,000-row cap, so the counts below are a floor, not the full picture.",
    "estimate": "estimate",
    "notTracked": "not tracked",
    "footer": "Periods start and end at midnight {{tz}}. Snapshot rows (paying now, in trial now) are as of right now, not the period.",
    "books": {
      "from": "Counting from {{when}}, when public signup opened. Test activity before that isn't counted. Nothing was deleted.",
      "notYet": "Public signup isn't open yet, so this counts everything, test activity included. The minute you open it, the counts start from zero.",
      "readError": "Couldn't read when public signup opened, so this counts everything, test activity included."
    },
    "in": {
      "title": "Money in",
      "hint": "What the Stripe webhook stores: subscription status by plan. It does not store invoices, charges or amounts.",
      "environment": "Stripe environment",
      "noEnv": "PAYMENTS_ENV is not set on this deployment, so no subscriptions are shown.",
      "payingNow": "Paying subscriptions right now (active or past due)",
      "trialingNow": "In free trial right now",
      "paidPeriodsStarted": "Paid billing periods that started in this window",
      "paidPeriodsNote": "Only each subscription's latest period is stored, so older windows under-count.",
      "amounts": "Dollars received",
      "amountsNote": "No invoice or charge amounts are stored, and the repo holds no plan prices. Stripe's dashboard is the source.",
      "refunds": "Refunds",
      "disputes": "Disputes / chargebacks"
    },
    "trials": {
      "title": "Free trial",
      "hint": "A family's first paid plan starts with a {{days}}-day trial. These counts come from each account's first subscription row.",
      "started": "Trials started in this window",
      "converted": "Trials that ended in this window and are now paying",
      "endedWithoutPaying": "Trials that ended in this window without a paid period",
      "byPlanNote": "By the plan on each subscription today. A family that switched plans shows under its current plan.",
      "endedWithoutPayingNote": "Counts trials that were canceled, unpaid, or paused because no card was on file.",
      "pausedNow": "Paused right now (trial ended, no card)",
      "pausedNowNote": "Texts and calls are stopped until the family adds a card and resumes."
    },
    "back": {
      "title": "Money-back guarantee",
      "hint": "Counted from ops incidents titled \"Money-back …\". Nothing records those yet.",
      "requested": "Refunds requested",
      "granted": "Refunds granted",
      "noneYet": "none yet"
    },
    "out": {
      "title": "Money out",
      "hint": "Telnyx's published rates from the repo only. Calls are billed per started minute; Cozy stores no call length, so each call counts as one minute.",
      "calls": "Phone calls placed: {{count}}",
      "callsNote": "{{minutes}} started minute(s) at the Telnyx rate for each number dialled, plus the Voice API and machine-detection fees.",
      "callsNoteUnpriced": "{{minutes}} started minute(s); {{unpriced}} call(s) to non-US numbers have no rate in the repo and are not in the dollar figure.",
      "staffCalls": "Organization staff masked calls: {{count}}",
      "staffCallsNote": "{{minutes}} started minute(s). Two legs per call and no number stored, so no rate is applied.",
      "texts": "Texts sent: {{count}}",
      "textsNote": "No SMS rate exists in the repo. Count excludes reminder-call records stored on the text channel.",
      "whatsapp": "WhatsApp messages sent",
      "push": "Push notifications sent",
      "total": "Estimated money out",
      "totalNote": "Calls only. Texts, WhatsApp and push have no rate in the repo."
    },
    "ledger": {
      "title": "Ledger",
      "hint": "Every dollar the webhooks and the nightly reconciliation recorded for this period, from Stripe, Telnyx and Anthropic amounts. Estimates are labelled.",
      "notSetUp": "Ledger not set up yet",
      "notSetUpNote": "The money_ledger migration has not been applied, so there is nothing to read here yet. The count tables below still work.",
      "readError": "The ledger could not be read just now.",
      "truncated": "The ledger hit the 10,000-row cap for this period, so these totals are a floor.",
      "moneyIn": "Money in",
      "moneyOut": "Money out",
      "net": "Net",
      "actual": "actual",
      "estimateShare": "{{actual}} actual · {{estimate}} estimate",
      "superseded": "{{count}} estimate row(s) replaced by Telnyx's own records and not counted twice.",
      "empty": "No ledger rows in this period.",
      "columns": {
        "kind": "Kind",
        "count": "Rows",
        "quantity": "Quantity",
        "amount": "Amount",
        "split": "Actual / estimate"
      },
      "unit": {
        "sec": "sec",
        "segment": "segments",
        "token": "tokens",
        "month": "month(s)",
        "mixed": "mixed units"
      },
      "kind": {
        "subscription_payment": "Subscription payments",
        "refund": "Refunds",
        "dispute": "Disputes",
        "dispute_fee": "Dispute fees",
        "call": "Phone calls",
        "text": "Texts",
        "whatsapp": "WhatsApp",
        "ai": "AI (phone help)",
        "fixed_cost": "Fixed costs",
        "other": "Other"
      },
      "fixed": {
        "title": "Fixed costs",
        "hint": "Recurring bills typed in here (Lovable, Supabase, Cloudflare, phone numbers, domain). Each month the reconciliation adds one ledger row per running cost.",
        "monthlyTotal": "Running costs per month",
        "active": "{{count}} running",
        "name": "Name",
        "amount": "Amount (USD)",
        "every": "Billed",
        "everyMonth": "Monthly",
        "everyYear": "Yearly",
        "startsOn": "Starts on",
        "add": "Add fixed cost",
        "adding": "Saving…",
        "added": "Fixed cost added.",
        "end": "End",
        "ending": "Ending…",
        "ended": "Fixed cost ended.",
        "endedOn": "ended {{date}}",
        "perMonth": "/ month",
        "perYear": "/ year",
        "empty": "No fixed costs yet.",
        "invalidAmount": "Amount must be in dollars, like 25 or 25.00.",
        "invalidName": "Name must be plain letters and numbers, up to 60 characters.",
        "invalidDate": "Start date is missing."
      }
    },
    "export": {
      "csvReport": "Download CSV (report)",
      "csvLedger": "Download CSV (ledger rows)",
      "pdf": "Save as PDF",
      "help": "CSV files open in Excel, Numbers or Google Sheets. \"Save as PDF\" opens a print-ready copy and uses your phone's own print-to-PDF (Share → Save to Files on iPhone; Save as PDF on Android). No amounts beyond what this page shows leave the server.",
      "failed": "Could not build the file.",
      "ledgerTruncated": "The ledger file stopped at 10,000 rows for this period, so it is not complete.",
      "ledgerEmpty": "No ledger rows in this period — the file has headers only.",
      "printTitle": "Money report",
      "generated": "Generated {{date}}",
      "backToReport": "Back to the report",
      "printAgain": "Print / Save as PDF",
      "printHelp": "The print sheet opens on its own once the numbers load. If it did not, tap Print / Save as PDF. On iPhone choose Share, then Save to Files; on Android pick Save as PDF.",
      "footerEstimates": "Estimates are marked. Figures the system does not store say \"not tracked\" instead of a number."
    },
    "moneyBack": {
      "title": "Money-back requests",
      "hint": "Open requests under the 30-day money-back guarantee. Checks are read from Stripe. Approve refunds exactly the first payment and ends the plan.",
      "empty": "No open money-back requests.",
      "loadError": "Could not load money-back requests.",
      "requested": "Requested",
      "firstPayment": "First payment",
      "amount": "Amount",
      "reason": "Reason",
      "note": "Note",
      "stripeError": "Stripe could not be read for this request. Try again later.",
      "checks": {
        "first_charge": "First payment found in Stripe",
        "inside_window": "Inside the 30 days",
        "first_payment_only": "Refund is the first payment only",
        "not_refunded": "Not refunded before",
        "no_dispute": "No open dispute",
        "one_per_family": "First money-back for this family",
        "family_checkable": "A phone, device or card on file to spot a repeat family",
        "no_plan_credit": "No credit from a plan change on the account"
      },
      "checksWarn": {
        "first_charge": "No paid first payment found",
        "inside_window": "Outside the 30 days",
        "first_payment_only": "No first payment to refund",
        "not_refunded": "Already refunded",
        "no_dispute": "Don't refund, a dispute is open",
        "one_per_family": "This family got a money-back on another account",
        "family_checkable": "Nothing on file to tell if this family had a money-back before (no phone, device or card). Check by hand.",
        "no_plan_credit": "Don't refund here: the account has a credit from a plan change, or Stripe could not say. Refund it by hand in Stripe if at all."
      },
      "approve": "Approve refund",
      "deny": "Deny",
      "confirmApproveTitle": "Refund {{amount}}?",
      "confirmApproveBody": "This refunds the first payment in full through Stripe and ends the family's plan now. They get an email.",
      "confirmDenyTitle": "Deny this request?",
      "denyReasonLabel": "Reason (the family sees it)",
      "denyReasons": {
        "outside_window": "Outside the 30 days",
        "not_first_payment": "Not the first payment",
        "already_refunded": "Already refunded",
        "dispute_open": "A dispute is open",
        "repeat_family": "Already refunded for this family",
        "other": "Doesn't meet the guarantee"
      },
      "cancel": "Cancel",
      "result": {
        "refunded": "Refund sent to Stripe ({{status}}). The family's email is queued.",
        "refundedNotEnded": "Refund sent to Stripe ({{status}}), but the plan could not be ended. End it in Stripe.",
        "denied": "Denied. The family's email is queued.",
        "busy": "Already working on this one. Wait a moment.",
        "not_allowed": "Not allowed: the checks don't pass.",
        "stripe_failed": "Stripe refused: {{detail}}",
        "refund_not_accepted": "Stripe did not accept the refund ({{detail}}).",
        "already_decided": "This request was already decided.",
        "not_found": "Request not found.",
        "error": "Something went wrong. Nothing was refunded unless Stripe says so."
      }
    }
  },
  "ops": {
    "installTip": {
      "title": "Add Ops to your Home Screen",
      "body": "One tap from your phone's home screen opens this Ops Center, Money page included, full screen.",
      "dismiss": "Dismiss",
      "gotIt": "Got it",
      "iosSteps": [
        "Tap the Share button at the bottom of Safari.",
        "Scroll down and tap \"Add to Home Screen\".",
        "Tap Add. The icon opens this Ops page."
      ],
      "androidSteps": [
        "Tap the ⋮ menu at the top right of Chrome.",
        "Tap \"Add to Home screen\" (or \"Install\").",
        "Tap Add. The icon opens this Ops page."
      ],
      "iosNote": "Install from this page so the icon is named Cozy Ops and opens Ops. An icon added from the Cozy home page opens a different screen.",
      "androidNote": "Install from this page so the icon is named Cozy Ops and opens Ops. An icon added from the Cozy home page opens a different screen."
    }
  },
  "trialPrompt": {
    "optional": "(optional)",
    "pickOne": "Please choose an answer.",
    "thanks": "Thank you — that helps.",
    "error": "Couldn't send that — please try again.",
    "daysLeft_one": "{{count}} day left",
    "daysLeft_other": "{{count}} days left",
    "answers": {
      "going_great": "Going great",
      "mostly_good": "Mostly good",
      "having_trouble": "I'm having trouble",
      "not_used_yet": "Haven't really used it yet",
      "yes_definitely": "Yes, definitely",
      "probably": "Probably",
      "not_sure": "Not sure yet",
      "no": "No",
      "show_plans": "Yes — show me plans",
      "have_question": "I'm interested, but I have a question",
      "need_more_time": "I need more time",
      "not_right_now": "Not right now",
      "price": "Price",
      "did_not_use_enough": "I didn't use it enough",
      "parent_did_not_like": "My parent didn't like it",
      "setup_difficult": "Setup was difficult",
      "did_not_need": "I didn't need it",
      "missing_feature": "Missing a feature",
      "something_else": "Something else",
      "parent_not_using": "Parent isn't using it",
      "too_many_messages": "Too many messages",
      "setup_confusing": "Setup was confusing",
      "change_nothing": "Nothing — it works for us",
      "change_setup": "Make setup easier",
      "change_messages": "Fewer or different messages",
      "change_times": "More control over check-in times",
      "change_parent": "Make it easier for my parent",
      "change_other": "Something else",
      "price_too_high": "Too high",
      "price_fair": "Fair",
      "price_bargain": "A bargain"
    },
    "day4": {
      "badge": "Quick check-in",
      "title": "How is Cozy Check-ins going so far?",
      "body": "A quick check-in helps us make Cozy Check-ins better for your family.",
      "noteLabel": "Anything you'd like us to know?",
      "notePlaceholder": "Tell us what's working — or what's getting in the way.",
      "submit": "Send feedback",
      "later": "Not now"
    },
    "day7": {
      "badge": "Halfway through your trial",
      "title": "If your free trial ended today, would you keep Cozy Check-ins?",
      "body": "One honest answer helps more than you'd think.",
      "reasonsTitle": "What's holding you back?",
      "noteLabel": "Want to tell us more?",
      "notePlaceholder": "A sentence or two is plenty.",
      "submit": "Continue",
      "later": "Not now"
    },
    "day11": {
      "badge": "Trial ending soon",
      "title": "Want to keep your family's check-ins going after your trial?",
      "body": "Your current setup and check-in history stay right where they are.",
      "noteLabel": "What can we help with?",
      "notePlaceholder": "Ask about pricing, setup, features, or anything else.",
      "submit": "Continue",
      "later": "Remind me later"
    },
    "ended": {
      "badge": "Trial ended",
      "title": "What was the main reason you didn't continue?",
      "body": "No pressure — this helps us improve Cozy Check-ins for other families.",
      "noteLabel": "Anything we could have done differently?",
      "notePlaceholder": "Your feedback can be as short as one sentence.",
      "submit": "Send feedback",
      "later": "Skip"
    },
    "priceMonth": "{{amount}} a month",
    "priceYear": "{{amount}} a year",
    "day21": {
      "badge": "Three weeks in",
      "title": "What's one thing you'd change?",
      "body": "One tap is plenty. We read every answer.",
      "noteLabel": "Want to tell us more?",
      "notePlaceholder": "What would make it better for your family?",
      "submit": "Send feedback",
      "later": "Not now"
    },
    "day40": {
      "badge": "Quick question about price",
      "title": "Is {{price}} a fair price for what you get?",
      "titleNoPrice": "Is your plan's price fair for what you get?",
      "body": "An honest answer helps us get the price right. Answering doesn't change your plan.",
      "noteLabel": "What would feel fair?",
      "notePlaceholder": "A number or a sentence is plenty.",
      "submit": "Send feedback",
      "later": "Not now"
    }
  },
  "ownerAlertConsent": {
    "text": "I agree to receive text messages from Cozy Check-ins at this number about missed check-ins. Message frequency varies. Message and data rates may apply. Reply STOP to opt out, HELP for help."
  },
  "alertPhoneBanner": {
    "title": "Add your mobile number.",
    "body": "It is the number for your missed check-in alerts. We text it a code to make sure it is yours. US numbers only.",
    "label": "Your mobile number",
    "cta": "Text me a code",
    "saved": "Saved. Thank you!",
    "confirmed": "Confirmed. Thank you!",
    "confirmTitle": "Confirm your mobile number.",
    "confirmBody": "Cozy Check-ins texts missed check-in alerts only to a number confirmed with a code. Until you confirm this one, no alert is texted to it.",
    "error": "Couldn't save. Please try again."
  },
  "ownerPhoneCode": {
    "codeSent": "We texted a code to the number ending in {{last4}}. It can take a minute.",
    "codeLabel": "6-digit code",
    "confirm": "Confirm my number",
    "confirming": "Checking…",
    "resend": "Send a new code",
    "resent": "We texted you a new code.",
    "changeNumber": "Use a different number",
    "confirmed": "Your number ending in {{last4}} is confirmed. Your missed check-in alerts go there.",
    "errCodeShape": "Enter the 6-digit code from the text.",
    "errWrong_one": "That code didn't match. {{count}} try left.",
    "errWrong_other": "That code didn't match. {{count}} tries left.",
    "errExpired": "That code ran out. Send a new code.",
    "errTooMany": "Too many tries. Send a new code.",
    "errNoCode": "Send a new code first.",
    "errThrottled": "Too many codes for now. Please try again in an hour.",
    "errOptedOut": "This number turned off Cozy Check-ins texts by replying STOP. Reply START to a Cozy Check-ins text to turn them back on, then try again.",
    "errPaused": "Cozy Check-ins texts are paused right now. Please try again later.",
    "errPhone": "Enter a US mobile number, like (276) 555-0100.",
    "errConsent": "Please tick the box to agree to texts.",
    "errGeneric": "Something went wrong. Please try again."
  },
  "memberTextAlerts": {
    "title": "Get text alerts too",
    "body": "A push alert can be missed. Add your mobile number, and Cozy will text you when a push alert isn't seen. US numbers only.",
    "label": "Your mobile number",
    "sendCode": "Text me a code",
    "sending": "Sending…",
    "codeSent": "We texted a code to the number ending in {{last4}}. It can take a minute.",
    "codeLabel": "6-digit code",
    "confirm": "Turn on text alerts",
    "confirming": "Checking…",
    "resend": "Send a new code",
    "changeNumber": "Use a different number",
    "doneTitle": "Text alerts are on",
    "done": "Cozy will text the number ending in {{last4}} when a push alert isn't seen.",
    "errPhone": "Enter a US mobile number, like (276) 555-0100.",
    "errConsent": "Please tick the box to agree to texts.",
    "errCodeShape": "Enter the 6-digit code from the text.",
    "errOptedOut": "This number turned off Cozy texts by replying STOP. Reply START to a Cozy text to turn them back on, then try again.",
    "errPaused": "Cozy's texts are paused right now. Please try again later.",
    "errThrottled": "Too many codes for now. Please try again in an hour.",
    "errNotMember": "Text alerts here are for family members of a Circle.",
    "errWrong_one": "That code didn't match. {{count}} try left.",
    "errWrong_other": "That code didn't match. {{count}} tries left.",
    "errExpired": "That code ran out. Send a new code.",
    "errTooMany": "Too many tries. Send a new code.",
    "errNoCode": "Send a new code first.",
    "errGeneric": "Something went wrong. Please try again."
  },
  "storeApp": {
    "plansOnWebsite": "Plans are managed on our website, cozycheckins.com."
  },
  "trialDaysBanner": {
    "title": "Free trial.",
    "daysLeft_one": "{{count}} day left.",
    "daysLeft_other": "{{count}} days left.",
    "cta": "See plans"
  },
  "guidedSignup": {
    "switch": {
      "title": "Guided setup for new sign-ups",
      "on": "On",
      "off": "Off",
      "description": "On: a new family owner is walked through setup one screen at a time. Off: they get the regular add-parent form.",
      "toggleAria": "Turn guided setup on or off",
      "onToast": "Guided setup is on.",
      "offToast": "Guided setup is off.",
      "saveFailed": "Couldn't save — try again."
    },
    "pageTitle": "Set up Cozy Check-ins",
    "progressAria": "Setup progress",
    "stepOf": "Step {{n}} of {{of}}",
    "pushNext": "Push this button next",
    "back": "Back",
    "next": "Next",
    "choose": {
      "title": "How would you like to set up?",
      "subtitle": "Pick one. You type each thing one time and we put it where it belongs.",
      "full": "A to Z setup",
      "fullHelp": "Everything in one go. About 3 minutes.",
      "quick": "Quick setup",
      "quickHelp": "Just the basics. About 1 minute. You can add the rest later.",
      "later": "I'll set up later",
      "laterHelp": "Go to your dashboard now. Daily check-ins do not start until a parent is added.",
      "fullForm": "Need a daily phone call instead of texts, or have a link from an organization? Use the full form."
    },
    "you": {
      "title": "First, you",
      "subtitle": "If your parent misses a check-in, this is where we text you.",
      "phoneLabel": "Your mobile number",
      "phoneHint": "Type YOUR number here, not your parent's.",
      "codeHint": "Next, we text this number a 6-digit code to make sure it is yours.",
      "saved": "Your number is already saved. Type a new one only if you want to change it.",
      "keep": "Keep my saved number"
    },
    "parent": {
      "title": "Now, your parent",
      "subtitle": "We send them one text to say yes. Nothing starts until they do.",
      "nameHint": "What you call them. We use it in your alerts.",
      "phoneHint": "Type your PARENT'S mobile number here.",
      "timeHint": "The time each day we ask them to check in.",
      "regionLabel": "State where they live",
      "regionHint": "We fill in the state from the phone number. Change it if it is wrong."
    },
    "details": {
      "title": "A little more about your parent",
      "subtitle": "All optional. Skip anything you do not know.",
      "tzHint": "Change this only if your parent lives in a different time zone than you."
    },
    "review": {
      "title": "Check it and send",
      "subtitle": "One last look. Then push the button.",
      "yourNumber": "Your number",
      "yourNumberSaved": "Already saved",
      "parentName": "Parent",
      "parentNumber": "Parent's number",
      "time": "Check-in time",
      "edit": "Change",
      "send": "Send the invite",
      "sending": "Sending…"
    },
    "done": {
      "title": "You're set up",
      "body": "We texted {{name}}. Daily check-ins begin after they reply yes and a plan is started.",
      "bodyHeld": "{{name}}'s invite is waiting for them to text START. Daily check-ins begin after they reply yes and a plan is started.",
      "nextTitle": "What to do next",
      "plan": "Choose a plan",
      "planHelpDays": "Your first plan starts with a {{count}}-day free trial. No card needed.",
      "planHelpNoNumber": "Choose a plan to start daily check-ins. The next page shows whether a free trial applies.",
      "dashboard": "Go to my dashboard"
    },
    "error": "Something went wrong. Please try again."
  },
  "checkinLock": {
    "switch": {
      "title": "Check-in phone lock",
      "on": "On",
      "off": "Off",
      "description": "On: a check-in counts only from the parent's own phone. A tap from any other phone does not count, and the parent is texted a link to register their phone (once a day). Off: the check-in link alone works.",
      "toggleAria": "Turn the check-in phone lock on or off",
      "onToast": "Check-in phone lock is on.",
      "offToast": "Check-in phone lock is off.",
      "saveFailed": "Couldn't save — try again."
    }
  },
  "joinRequestsNotice": {
    "title_one": "{{count}} person is asking to join your Circle.",
    "title_other": "{{count}} people are asking to join your Circle.",
    "body": "Approve or decline them in Settings, under The Circle.",
    "cta": "Review"
  },
  "shareStory": {
    "cardTitle": "Has Cozy Check-ins helped your family?",
    "cardBody": "Tell us in a few words. It helps other families find us.",
    "cta": "Share your story",
    "later": "Not now",
    "dialogTitle": "Share your story",
    "dialogBody": "What has the daily check-in changed for you or your family? A sentence or two is plenty.",
    "storyLabel": "Your story",
    "storyPlaceholder": "For example: what it's like to see Mom checked in this morning.",
    "permissionTitle": "How may we use it?",
    "permission": {
      "private": "Just for the Cozy Check-ins team. Please don't share it.",
      "first_name_state": "You may share it with my first name and state.",
      "anonymous": "You may share it without my name."
    },
    "nameLabel": "First name to show",
    "stateLabel": "State",
    "privacyNote": "We read every story. Nothing is shared except the way you choose here, and you can ask us to remove it any time at support@cozycheckins.com.",
    "pickPermission": "Please choose how we may use your story.",
    "submit": "Send my story",
    "cancel": "Cancel",
    "thanks": "Thank you for sharing your story.",
    "error": "Couldn't send that. Please try again.",
    "problems": {
      "too_short": "Please write a little more (at least 10 characters).",
      "too_long": "Please keep it to 1,500 characters or fewer.",
      "name_needed": "Please add the first name to show, or choose another option.",
      "state_needed": "Please add your state, or choose another option.",
      "rate_limited": "Thank you! You've sent several stories today. Please try again tomorrow.",
      "not_family": "Stories can be sent from a family's account.",
      "failed": "Couldn't send that. Please try again."
    }
  },
  "partnerOrgCard": {
    "title": "{{org}} uses Cozy Check-ins too.",
    "body": "You found us through {{org}}. You can ask them to connect with your parent. They decide whether to accept. Until they do, they see only your parent's name and the last 4 digits of the phone.",
    "cta": "Ask to connect",
    "later": "Not now"
  },
  "ageRangePrompt": {
    "title": "Add your age range.",
    "body": "Everyone on Cozy picks one. It helps us improve Cozy and is never shown to anyone.",
    "cta": "Save",
    "saved": "Saved.",
    "error": "Couldn't save. Try again."
  },
  "noPlanBanner": {
    "none": {
      "title": "Check-ins haven't started.",
      "body": "Start a plan to begin your parent's daily check-ins. Your first plan starts with a 14-day free trial, no card needed.",
      "cta": "Choose a plan"
    },
    "paused": {
      "title": "Your plan is paused.",
      "body": "The trial ended with no card on file, so daily check-ins are off. Add a card to resume.",
      "cta": "Resume"
    },
    "past_due": {
      "title": "Payment didn't go through.",
      "body": "Your card couldn't be charged, so daily check-ins are off until it's fixed. Update your card to turn them back on.",
      "cta": "Update card"
    }
  },
  "loadingScreen": {
    "label": "Getting things ready…",
    "alt": "Cozy Check-ins. Getting things ready. A warm hello, every day."
  },
  "referralCard": {
    "title": "Know someone whose mom or dad lives alone?",
    "body": "Share Cozy Check-ins with them. Their parent checks in once a day. If they don't, Cozy Check-ins lets their family know.",
    "send": "Send",
    "text": "Text",
    "email": "Email",
    "copy": "Copy link",
    "copied": "Link copied.",
    "copyFailed": "Couldn't copy. Press and hold the link to copy it.",
    "shareFailed": "Couldn't open sharing. Copy the link instead.",
    "notNow": "Not now",
    "linkLabel": "Your link",
    "shareTitle": "A simple daily check-in for your parent",
    "shareTextFamily": "Our family uses Cozy Check-ins for a simple daily check-in with our parent. I thought it might help yours too:",
    "shareTextNeighbor": "I'm in the Cozy Check-ins Circle of someone in my neighborhood. It's a simple daily check-in for an older adult. I thought it might help your family:"
  },
  "referralLanding": {
    "moment": "Taking you to Cozy Check-ins…",
    "continue": "Continue"
  },
  "r2": {
    "nav": {
      "main": "Main navigation",
      "openMenu": "Open menu",
      "close": "Close"
    },
    "home": {
      "sceneAlt": "Illustrative family checking in: parents at home and their daughter at work, each with a phone."
    },
    "devices": {
      "label": "Computer and phone preview"
    }
  },
  "circlePhoto": {
    "updated": "Photo updated",
    "updateError": "Couldn't update photo",
    "uploadFailed": "Upload failed",
    "removed": "Photo removed",
    "removeError": "Couldn't remove photo",
    "update": "Update photo",
    "add": "Add photo",
    "remove": "Remove photo",
    "removeConfirm": "Remove this photo? This can't be undone."
  },
  "devicesPage": {
    "loading": "Loading your trusted devices…",
    "back": "← Back to settings",
    "title": "Trusted devices",
    "intro": "To swap a phone or computer, start on the new one, then approve it from the other device you already trust.",
    "enforcedTrusted": "This browser is one of your trusted devices.",
    "enforcedRecovery": "This browser isn't one of your 2 trusted devices. Use your phone or your computer, or if you lost both, get back in below.",
    "notEnforced": "Trusted-device protection isn't on for this account yet.",
    "request": {
      "title": "Swap request",
      "enterCode": "Enter this request code on your other trusted device, approve it there, then return here without signing out or refreshing.",
      "completing": "Completing…"
    },
    "currentSignIn": "This is the browser you're using now.",
    "otherSignIn": "Set up in another browser.",
    "localKeyPresent": "This browser holds this device's key.",
    "localKeyMissing": "This browser doesn't hold this device's key.",
    "foreignKey": "This browser has a key from a different Cozy account. To use it for this account, swap it in below.",
    "verify": "Confirm this browser",
    "verifying": "Checking…",
    "requesting": "Starting…",
    "codeLabel": "Swap code",
    "authorizing": "Approving…",
    "registering": "Setting up…",
    "footer": "Your device key lives inside this browser and is never copied or shown to anyone. Clearing this browser's data, or switching browsers, removes it. Then use \"Get back into my account\".",
    "phone": {
      "title": "Phone",
      "onePer": "One active phone per account",
      "registered": "Trusted phone",
      "none": "No phone is set up yet.",
      "request": "Swap this phone for a new one",
      "codePlaceholder": "Code shown on the new phone",
      "authorize": "Approve the new phone",
      "register": "Set up this phone",
      "requestFor": "This swap is for your phone. It ends in 10 minutes and can only be finished in this browser.",
      "complete": "Finish swapping the phone",
      "autoVerified": "We recognized this browser as your trusted phone.",
      "verified": "This browser is now confirmed as your phone.",
      "requestCreated": "Swap started. Type the code on your other trusted device within 10 minutes.",
      "authorized": "The new phone is approved. Go back to the new phone and finish there.",
      "replaced": "Your phone was swapped. This browser is now your trusted phone.",
      "addRequest": "Ask to add this phone",
      "addRequestFor": "This adds this phone to your account. It ends in 10 minutes and can only be finished in this browser.",
      "addRequestCreated": "Request created. Type the code on your trusted computer within 10 minutes.",
      "addCodePlaceholder": "Code shown on the new phone",
      "addAuthorize": "Approve adding the phone",
      "addAuthorized": "Adding your phone is approved. Go back to the new phone and finish there.",
      "addComplete": "Finish adding this phone",
      "added": "This phone was added. This browser is now one of your trusted devices."
    },
    "computer": {
      "title": "Computer",
      "onePer": "One active computer per account",
      "registered": "Trusted computer",
      "none": "No computer is set up yet.",
      "request": "Swap this computer for a new one",
      "codePlaceholder": "Code shown on the new computer",
      "authorize": "Approve the new computer",
      "register": "Set up this computer",
      "requestFor": "This swap is for your computer. It ends in 10 minutes and can only be finished in this browser.",
      "complete": "Finish swapping the computer",
      "autoVerified": "We recognized this browser as your trusted computer.",
      "verified": "This browser is now confirmed as your computer.",
      "requestCreated": "Swap started. Type the code on your other trusted device within 10 minutes.",
      "authorized": "The new computer is approved. Go back to the new computer and finish there.",
      "replaced": "Your computer was swapped. This browser is now your trusted computer.",
      "addRequest": "Ask to add this computer",
      "addRequestFor": "This adds this computer to your account. It ends in 10 minutes and can only be finished in this browser.",
      "addRequestCreated": "Request created. Type the code on your trusted phone within 10 minutes.",
      "addCodePlaceholder": "Code shown on the new computer",
      "addAuthorize": "Approve adding the computer",
      "addAuthorized": "Adding your computer is approved. Go back to the new computer and finish there.",
      "addComplete": "Finish adding this computer",
      "added": "This computer was added. This browser is now one of your trusted devices."
    },
    "msg": {
      "alreadyTrusted": "This browser is already trusted.",
      "alreadyRegistered": "This device was already set up.",
      "registered": "Trusted device set up."
    },
    "errors": {
      "loadFailed": "We couldn't load your trusted devices. Try refreshing this page.",
      "proveFailed": "We couldn't confirm this browser. Nothing was changed. Try again.",
      "requestFailed": "We couldn't start the swap. Nothing was changed.",
      "wrongSlotCode": "That code is for the other kind of device (phone or computer).",
      "wrongSlotAuthorized": "That approval was for the other kind of device. Nothing was swapped.",
      "authorizeFailed": "We couldn't approve the swap. Nothing was changed.",
      "unexpectedSlot": "Something unexpected happened after the swap. Don't clear this browser's data, and write to support@cozycheckins.com.",
      "replaceUnconfirmed": "We couldn't tell if the swap finished. Keep this page open and try again. It's safe to try again.",
      "registerFailed": "We couldn't finish setting up this device. It's safe to try again.",
      "addRequestFailed": "We couldn't create the request to add this device. Nothing was changed.",
      "addAuthorizeFailed": "We couldn't approve adding that device. Nothing was changed.",
      "addUnconfirmed": "We couldn't tell if the device was added. Keep this page open and try again. It's safe to try again."
    },
    "reasons": {
      "slot_taken": "That kind of device (phone or computer) is already set up.",
      "session_conflict": "This browser is already one of your trusted devices. Start the swap on the new device instead.",
      "email_proof_required": "Confirm your recovery email before changing trusted devices.",
      "recovery_required": "First get back into your account with the steps below, then add the new device.",
      "session_unbindable": "Please sign out, sign back in, and try again.",
      "rate_limited": "Too many tries. Wait a few minutes and try again.",
      "invalid_proof": "We couldn't confirm this browser. Don't clear its data, and try again.",
      "trusted_device_required": "First confirm this browser as the trusted device you still have.",
      "different_device_required": "The swap has to be approved from your other trusted device.",
      "different_session_required": "Start the swap on the new device itself, then approve it from your trusted device.",
      "target_unavailable": "That device can't be swapped right now.",
      "invalid_public_key": "This browser couldn't set up a device key. Please try a different browser. Nothing was swapped.",
      "invalid_new_key_proof": "We couldn't confirm the new device. Nothing was swapped. Try again.",
      "invalid_replacement": "That swap code doesn't work. It may have run out, been used already, or not been approved yet.",
      "replacement_unavailable": "Swapping devices isn't available right now. Keep this page open and try again in a moment.",
      "default": "We couldn't finish this step. Nothing was changed.",
      "switch_limit": "You've switched devices 3 times in the last 4 months, which is the limit. Contact support@cozycheckins.com and we'll help."
    },
    "add": {
      "title": "Request to add a device",
      "enterCode": "Type this code on your other trusted device, approve it there, then come back here without signing out or refreshing."
    },
    "addCodeLabel": "Add-a-device code",
    "addReasons": {
      "slot_taken": "That kind of device is already set up. To change it, use the swap instead.",
      "session_conflict": "This browser is already one of your trusted devices. Ask to add the device from the new device instead.",
      "not_enforced": "Trusted-device protection isn't on for this account yet. Set up this device the usual way.",
      "trusted_device_required": "Your other trusted device has to approve this. Open this page there and verify it first.",
      "different_device_required": "The approval has to come from your other trusted device (a phone approves a computer, a computer approves a phone).",
      "different_session_required": "Approve this from your trusted device, not from the new device.",
      "invalid_new_key_proof": "We couldn't confirm the new device. Nothing was added.",
      "invalid_addition": "That code doesn't work. It may have run out, been used already, or not been approved yet.",
      "addition_unavailable": "Adding a trusted device isn't available right now. Keep this page open and try again in a moment."
    },
    "recovery": {
      "title": "Lost your phone and your computer?",
      "intro": "If neither of your trusted devices can let this one in, you can get back in with your privacy passcode and two codes: one we email you and one we text you.",
      "start": "Get back into my account",
      "startOver": "Start over with new codes",
      "passcodeStep": "Step 1 of 3: type the privacy passcode you made when you signed up.",
      "passcodeLabel": "Privacy passcode",
      "passcodeSubmit": "Continue",
      "codesSent": "We emailed you a code and texted a code to the phone ending in {{last4}}.",
      "codesSentNoPhone": "We emailed you a code. There's no phone saved on your account, so the last step is a call with our team.",
      "codesStep": "Step 2 of 3: type the code from your email and the code we texted to the phone ending in {{last4}}. They work for 15 minutes.",
      "codesStepNoPhone": "Step 2 of 3: type the code from your email. It works for 15 minutes.",
      "emailCodeLabel": "Code from your email",
      "smsCodeLabel": "Code from the text",
      "codesSubmit": "Check my codes",
      "noCodeHelp": "No code after a few minutes? Check your spam folder, or email support@cozycheckins.com and we'll help you get back in.",
      "released": "Thanks, that's you. Last step: add this device.",
      "needsOps": "Your passcode and email code are right. Because there's no phone on your account, our team needs to finish this with you. Email support@cozycheckins.com or call us, and keep this page open.",
      "checkAgain": "Check again",
      "addStep_phone": "Step 3 of 3: add this phone as your trusted phone. Your old phone and computer will be removed from your account.",
      "addStep_computer": "Step 3 of 3: add this computer as your trusted computer. Your old phone and computer will be removed from your account.",
      "add_phone": "Add this phone",
      "add_computer": "Add this computer",
      "recovered_phone": "You're back in. This phone is now trusted. Add your computer from this phone when you're ready.",
      "recovered_computer": "You're back in. This computer is now trusted. Add your phone from this computer when you're ready.",
      "unconfirmed": "We couldn't confirm that just now. Please press the button again.",
      "reasons": {
        "session_unbindable": "Please sign out, sign in again, and try once more.",
        "email_proof_required": "Please confirm your email address first, then come back here.",
        "not_supported": "This account can't use this page. Please contact support@cozycheckins.com.",
        "rate_limited": "Too many tries for now. Please wait an hour and try again.",
        "no_email": "We couldn't find an email address on your account. Please contact support@cozycheckins.com.",
        "not_enforced": "Your account doesn't need this. Set up your device from the buttons above.",
        "already_trusted": "This device is already trusted. You're all set.",
        "too_many": "There have been too many requests today. Please try tomorrow, or contact support@cozycheckins.com.",
        "invalid": "This request ended. Please start again.",
        "already_sent": "Your codes were already sent. Check your email and texts.",
        "passcode_wrong": "That passcode isn't right. Please try again.",
        "passcode_locked": "Too many wrong passcodes. It's locked for 24 hours. Contact support@cozycheckins.com if you need help sooner.",
        "passcode_not_set": "There's no privacy passcode on your account. Please contact support@cozycheckins.com and our team will help you get back in.",
        "wrong": "Those codes aren't right.",
        "wrong_one": "Those codes aren't right. {{count}} try left.",
        "wrong_other": "Those codes aren't right. {{count}} tries left.",
        "expired": "Those codes ran out. Press \"Start over with new codes\".",
        "invalid_public_key": "This browser couldn't make a device key. Please try a different browser.",
        "invalid_new_key_proof": "This browser couldn't confirm its device key. Please try again.",
        "session_conflict": "This browser is linked to a different account's device. Please sign out and sign in again.",
        "default": "Something went wrong. Please try again.",
        "blocked": "This account's holder said a recent request wasn't them, so new requests are paused for 24 hours. Contact support@cozycheckins.com if this is you.",
        "email_change_pending": "Your account has an email change waiting. Please contact support@cozycheckins.com and give us your reference.",
        "passcode_tries_used": "No passcode tries left on this request. Press \"Start over\", or contact support@cozycheckins.com.",
        "passcode_tries_account": "Too many passcode tries on this account today. Contact support@cozycheckins.com and give us your reference.",
        "switch_limit": "You've switched devices 3 times in the last 4 months, which is the limit. Contact support@cozycheckins.com and we'll help. Give us your reference."
      },
      "referenceLabel": "Your reference",
      "referenceHelp": "If you call or email our team, read them this reference. We'll never ask for your passcode or your codes.",
      "passcodeTriesLeft_one": "{{count}} try left.",
      "passcodeTriesLeft_other": "{{count}} tries left.",
      "passcodeForgot": "Forgot it? Contact support@cozycheckins.com and give us your reference.",
      "member": {
        "title": "Lost your phone?",
        "intro": "If your trusted phone can't let this one in, you can get back in with your privacy passcode and two codes: one we email you and one we text you.",
        "addStep_phone": "Step 3 of 3: add this phone as your trusted phone. Your old devices will be removed from your account.",
        "addStep_computer": "Step 3 of 3: add this computer as your trusted device. Your old devices will be removed from your account.",
        "recovered_phone": "You're back in. This phone is now your trusted phone.",
        "recovered_computer": "You're back in. This computer is now your trusted device."
      },
      "setup": {
        "title": "Lost the device you started setup on?",
        "intro": "If the phone or computer you set up first is gone, or this browser lost its key, you can replace it with your privacy passcode and two codes: one we email you and one we text you. Setup then continues here.",
        "addStep_phone": "Step 3 of 3: add this phone. The devices you set up before will be removed from your account.",
        "addStep_computer": "Step 3 of 3: add this computer. The devices you set up before will be removed from your account.",
        "recovered": "Done. This device replaced the one you lost. Setup continues on this page."
      }
    },
    "memberPhoneOnly": "You're a member of a Circle, so your trusted phone is all you need. A computer is optional.",
    "addComputer": {
      "title": "Add your computer to keep going",
      "body": "Your account now owns a family, pays for a plan or helps run an organization, so it needs a phone and a computer. On your computer, sign in and open cozycheckins.com/devices, then tap \"{{button}}\". Type the code it shows into this page on your phone."
    },
    "carry": {
      "howTo": "Scan this with your other trusted device, or copy the code and paste it there.",
      "copy": "Copy code",
      "copied": "Copied ✓",
      "share": "Share",
      "shareTitle": "Cozy Check-ins: approve my new device",
      "qrAlt": {
        "phone": "QR code to approve your new phone on your other trusted device",
        "computer": "QR code to approve your new computer on your other trusted device"
      }
    },
    "prefilled": {
      "phone": "We filled in the code from your new phone. Check it's yours, then tap Approve.",
      "computer": "We filled in the code from your new computer. Check it's yours, then tap Approve.",
      "notHere": "This code needs to be approved on your other trusted device: the phone or computer you already use with Cozy."
    },
    "requestCheck": {
      "title": "Check this request",
      "slot": {
        "phone": "A new phone",
        "computer": "A new computer"
      },
      "started": "Started {{ago}}",
      "browser": "{{browser}} on {{os}}",
      "browserOnly": "{{name}}",
      "ago": {
        "justNow": "just now",
        "minutes_one": "{{count}} minute ago",
        "minutes_other": "{{count}} minutes ago"
      },
      "loading": "Checking this request…",
      "unknownDetails": "We couldn't load the details of this request.",
      "warning": {
        "phone": "Only approve if YOU are holding this new phone right now. Cozy will never ask you to approve a device by text, email or phone call.",
        "computer": "Only approve if YOU are sitting at this new computer right now. Cozy will never ask you to approve a device by text, email or phone call."
      },
      "confirm": {
        "phone": "Yes, this is my new phone",
        "computer": "Yes, this is my new computer"
      }
    }
  },
  "mfaPage": {
    "title": "Two-factor sign-in",
    "codeIntro": "Enter the 6-digit code from your authenticator app.",
    "preparing": "Preparing…",
    "codeLabel": "Authentication code",
    "verifying": "Verifying…",
    "continue": "Continue",
    "lostAuthenticator": "Lost your authenticator?",
    "useBackup": "Use a backup code",
    "setupTitle": "Set up two-factor sign-in",
    "setupIntro": "Required to open the Org console. Use an authenticator app like 1Password, Google Authenticator, or Authy.",
    "preparingCode": "Preparing your code…",
    "backupTitle": "Save your backup codes",
    "backupBodyStart": "Each code works",
    "backupBodyOnce": "once",
    "backupBodyEnd": ". Keep them somewhere safe (a password manager, or printed and stored offline). If you lose your authenticator, a backup code lets you set up a new one — we won't show these again.",
    "copied": "Copied ✓",
    "copyCodes": "Copy codes",
    "savedContinue": "I saved them — continue",
    "scanStep": "1. Scan this QR code",
    "qrAlt": "TOTP QR code",
    "secretManual": "Or enter this secret manually:",
    "enterCodeStep": "2. Enter the 6-digit code",
    "verifyContinue": "Verify and continue",
    "backupUseTitle": "Use a backup code",
    "backupUseIntro": "Enter one of the 8 backup codes you saved when you set up two-factor. Each code works once. After it's used, you'll set up a new authenticator app.",
    "backupCodeLabel": "Backup code",
    "useBackupSubmit": "Use backup code",
    "backToCode": "Back to authenticator code",
    "errors": {
      "challengeStart": "Could not start challenge.",
      "codeMismatch": "That code didn't match. Try the next one from your authenticator app.",
      "enrollStart": "Could not start MFA enrollment.",
      "challengeCreate": "Could not create challenge.",
      "tooMany": "Too many attempts. Wait 15 minutes and try again.",
      "backupMismatch": "That backup code didn't match. Try another one.",
      "generic": "Something went wrong. Try again."
    }
  },
  "checkinPage": {
    "loadingAria": "Loading your check-in",
    "linkNotWorking": "This check-in link isn't working. Please tap the link in your most recent text message.",
    "linkDontRetry": "Please don't keep trying this link or guessing. Too many tries will lock you out. If your newest link doesn't work either, ask your family to send you a new one.",
    "linkSignInHint": "If you have a Cozy sign-in, you can check in there instead.",
    "linkSignIn": "Sign in",
    "linkForgotPassword": "Forgot password?",
    "yourCircle": "Your Circle",
    "pushAsk": "Want a gentle morning reminder?",
    "pushYes": "Yes, remind me",
    "pushNo": "No thanks",
    "iosHint": "📱 On iPhone? Add this to your Home Screen for reminders.",
    "iosShow": "Show me how",
    "iosStep1": "Tap the Share button at the bottom of Safari",
    "iosStep2": "Tap \"Add to Home Screen\"",
    "iosStep3": "Tap \"Add\" — then open from your Home Screen",
    "seniorPhotoAlt": "Senior photo",
    "memoryPhotoAlt": "Memory photo",
    "voiceListening": "Listening…",
    "voiceGotIt": "Got it!",
    "voiceRetry": "Tap to try again",
    "voiceTap": "Tap & speak",
    "voiceTapAria": "Tap to speak",
    "voiceMissed": "I didn't catch that. Tap the mic and say “I'm here.”",
    "voiceChecking": "Checking you in…",
    "voiceSay": "Say “I'm here” to check in",
    "voiceBack": "Use the button instead",
    "voiceStart": "Say it instead",
    "tooEarlyBefore": "You're a little early — your check-in opens at ",
    "tooEarlyAfter": ".",
    "okay": "Okay",
    "confirmFailed": "We couldn't confirm right now. Please tap the link in your text again.",
    "tryAgain": "Try again"
  },
  "photoUpload": {
    "checking": "Checking your link…",
    "invalidTitle": "Link not recognized",
    "invalidBody": "Ask the person who shared this link to send a fresh one.",
    "expiredTitle": "Link expired",
    "expiredBody": "For your safety, photo links only work for a short time. Ask for a new link.",
    "usedTitle": "Link already used",
    "usedBody": "This link works once. Ask for a new one if you'd like to change the photo.",
    "doneTitle": "Photo added — thank you!",
    "doneBody": "You can close this page.",
    "title": "Add your photo",
    "intro": "Take a fresh picture or pick one from your phone. We'll crop it into a circle.",
    "uploading": "Uploading…",
    "choose": "Choose photo",
    "chooseOther": "Choose a different photo",
    "tooLarge": "That image is too large.",
    "badImage": "That file isn't a supported image.",
    "uploadFailed": "Couldn't upload — please try again.",
    "processFailed": "Couldn't process that image."
  },
  "staffInvite": {
    "title": "You've been invited to help with daily check-ins.",
    "intro": "Set a password to accept the invite.",
    "labelName": "Your name",
    "labelPassword": "Set a password (12+ characters)",
    "labelConfirm": "Confirm password",
    "accept": "I'll help",
    "decline": "Sorry, I can't",
    "welcomeBack": "Welcome back.",
    "youreIn": "You're in.",
    "acceptedBody": "Sign in with your phone and password to open the org console.",
    "signIn": "Sign in",
    "declinedTitle": "No worries.",
    "declinedBody": "We won't text you again about this.",
    "errorTitle": "Hmm.",
    "invalidLink": "This link isn't valid.",
    "errName": "Please enter your name.",
    "errPasswordShort": "Pick a password with at least 12 characters.",
    "errPasswordMismatch": "Passwords don't match.",
    "errAlreadyUsed": "This link was already used.",
    "errInvalidNow": "This link isn't valid anymore.",
    "errGeneric": "Something went wrong. Try again.",
    "errNetwork": "Couldn't reach the server. Try again."
  },
  "cozyDialog": {
    "close": "Close"
  },
  "confirmDialog": {
    "orgPhotoRemove": "Remove this photo? This can't be undone.",
    "removeInviteTitle": "Remove {{name}}?",
    "removeInviteBody": "This cancels their invite."
  },
  "addMember": {
    "title": "Add a trusted local to {{name}}'s Circle",
    "description": "We'll text them a one-time, 24-hour link that only works on the phone they tap from.",
    "tierTitle": "Trusted local invites are on Hometown Plus.",
    "tierBody": "Upgrade to invite a neighbor to {{name}}'s Circle.",
    "cellPhone": "Cell phone",
    "namePlaceholder": "Carl",
    "howTheyKnow": "How they know {{name}}",
    "relationshipPlaceholder": "Neighbor two doors down",
    "relationshipHelp": "A short note just for your Circle — we don't send this to them.",
    "addressLabel": "Address (optional)",
    "addressPlaceholder": "123 Maple St, Springfield",
    "addressHelp": "Kept private for your family's quick reference — never sent to them.",
    "notifyWhen": "Notify them when",
    "prefPush": "Push notification",
    "prefSms": "Text message",
    "consentA": "I have ",
    "consentStrong1": "{{name}}'s permission",
    "consentB": ", and ",
    "consentStrong2": "this person's permission",
    "consentC": ", to send them texts about {{name}}'s daily check-in.",
    "unexpected": "The server returned an unexpected response. Please try again.",
    "needsPlus": "Trusted local invites need Hometown Plus.",
    "noSenior": "No senior selected."
  },
  "avatarCrop": {
    "title": "Adjust photo",
    "saving": "Saving…",
    "save": "Save photo",
    "zoom": "Zoom",
    "hint": "Drag to move your face into the circle. Pinch, scroll or use − and + to zoom in or out.",
    "error": "Couldn't process photo",
    "zoomIn": "Zoom in",
    "zoomOut": "Zoom out",
    "center": "Center",
    "fitWhole": "Whole photo",
    "fill": "Fill circle",
    "frameLabel": "Photo position. Drag or use the arrow keys to move it; use − and + to zoom.",
    "small": "This photo is small, so it may look a little soft.",
    "opening": "Opening photo…"
  },
  "photoLink": {
    "copiedShare": "Upload link copied — share it with them",
    "ready": "Upload link ready",
    "error": "Couldn't create link",
    "copied": "Copied",
    "get": "Get one-time upload link",
    "copy": "Copy link",
    "note": "Works once, expires in 48 hours. Share by text or email yourself."
  },
  "seniorDelivery": {
    "fallbackName": "your loved one",
    "viaText": "text message",
    "viaTextShort": "text",
    "saveError": "Couldn't save — try again",
    "statusWorking": "{{name}}'s phone notifications are working ✓",
    "statusFallbackSent": "Phone notification wasn't confirmed — {{via}} backup sent ✓",
    "statusFallbackFailed": "Phone notification wasn't confirmed and the {{via}} backup couldn't be sent — check {{name}}'s reminder settings",
    "statusFallbackQueued": "Phone notification wasn't confirmed — {{via}} backup queued",
    "statusPending": "{{name}}'s phone is set up — waiting for the first confirmed reminder",
    "statusReenable": "{{name}}'s phone notifications need to be turned back on",
    "statusNoDevice": "Ready to set up — {{name}} will be asked to turn on free phone reminders the next time they open Cozy.",
    "toggleBody": "Cozy will try a phone notification first. If {{name}} hasn't checked in a few minutes later, we'll automatically send the backup reminder too.",
    "primary": "Primary: ",
    "primaryValue": "Free phone notification",
    "backup": "Backup: ",
    "howBody": "Cozy sends the phone notification first. If {{name}} hasn't checked in after a few minutes (about {{from}}–{{to}} minutes), Cozy sends the backup too, even if the notification arrived, because a phone can hide a notification without telling us. If {{name}} checks in first, we skip the backup.",
    "lastConfirmed": "Last delivered to the phone: {{time}}"
  },
  "tzWatcher": {
    "moved": "Looks like you've moved — {{name}}'s check-in is set to {{tz}}.",
    "question": "Shift to your current local time, or keep the original?",
    "shift": "Shift to local",
    "moved2": "Check-in moved to {{tz}}.",
    "error": "Could not update time zone",
    "keep": "Keep original"
  },
  "demoError": {
    "title": "Demo is temporarily unavailable",
    "body": "Refresh the page to try again."
  },
  "remindersToggle": {
    "on": "Reminders turned on.",
    "off": "Reminders turned off."
  },
  "orgChrome": {
    "brandColor": "Org brand color",
    "logo": "Org logo",
    "brands": {
      "porch-gold": "Porch Gold",
      "forest": "Forest",
      "harbor": "Harbor",
      "plum": "Plum",
      "brick": "Brick",
      "slate": "Slate"
    }
  },
  "webPush": {
    "keys": "Couldn't read subscription keys.",
    "saveFail": "Couldn't save subscription.",
    "unsupported": "Browser alerts aren't supported on this device.",
    "denied": "Notification permission was not granted.",
    "enabled": "Browser alerts enabled on this device.",
    "enableFail": "Couldn't enable browser alerts."
  },
  "avatarImage": {
    "noFile": "No file selected",
    "svg": "SVG images are not allowed",
    "type": "Please pick a photo (JPEG, PNG, WebP or HEIC).",
    "tooLarge": "That photo is too large (max {{mb}} MB).",
    "badDims": "Image has invalid dimensions",
    "noCanvas": "Canvas not supported in this browser",
    "tooManyPixels": "That photo is too big to open here. Try a smaller copy.",
    "tooSmall": "That photo is too small. Try one at least {{px}} pixels wide.",
    "cantOpen": "That photo can't be opened here. Try a JPEG or PNG."
  },
  "checkout": {
    "sessionFail": "Failed to create checkout session"
  },
  "regions": {
    "us": {
      "AL": "Alabama",
      "AK": "Alaska",
      "AZ": "Arizona",
      "AR": "Arkansas",
      "CA": "California",
      "CO": "Colorado",
      "CT": "Connecticut",
      "DE": "Delaware",
      "DC": "District of Columbia",
      "FL": "Florida",
      "GA": "Georgia",
      "HI": "Hawaii",
      "ID": "Idaho",
      "IL": "Illinois",
      "IN": "Indiana",
      "IA": "Iowa",
      "KS": "Kansas",
      "KY": "Kentucky",
      "LA": "Louisiana",
      "ME": "Maine",
      "MD": "Maryland",
      "MA": "Massachusetts",
      "MI": "Michigan",
      "MN": "Minnesota",
      "MS": "Mississippi",
      "MO": "Missouri",
      "MT": "Montana",
      "NE": "Nebraska",
      "NV": "Nevada",
      "NH": "New Hampshire",
      "NJ": "New Jersey",
      "NM": "New Mexico",
      "NY": "New York",
      "NC": "North Carolina",
      "ND": "North Dakota",
      "OH": "Ohio",
      "OK": "Oklahoma",
      "OR": "Oregon",
      "PA": "Pennsylvania",
      "RI": "Rhode Island",
      "SC": "South Carolina",
      "SD": "South Dakota",
      "TN": "Tennessee",
      "TX": "Texas",
      "UT": "Utah",
      "VT": "Vermont",
      "VA": "Virginia",
      "WA": "Washington",
      "WV": "West Virginia",
      "WI": "Wisconsin",
      "WY": "Wyoming"
    }
  },
  "docTitle": {
    "checkinConfirm": "Confirm today's check-in — Cozy Check-ins",
    "circleInvite": "You're invited to a Circle — Cozy Check-ins",
    "circleJoin": "Ask to join a Circle — Cozy Check-ins",
    "dashboard": "Family Dashboard — Cozy Check-ins",
    "devices": "Trusted devices — Cozy Check-ins",
    "familyInvite": "Join the Circle — Cozy Check-ins",
    "forgotPassword": "Reset your password — Cozy Check-ins",
    "go": "Opening your check-in — Cozy Check-ins",
    "invite": "You're invited — Cozy Check-ins",
    "login": "Sign in — Cozy Check-ins",
    "mfaBackup": "Use a backup code — Cozy Check-ins",
    "mfaEnroll": "Set up two-factor — Cozy Check-ins",
    "mfaIndex": "Two-factor sign-in — Cozy Check-ins",
    "my": "My Check-in — Cozy Check-ins",
    "addParent": "Add my parent — Cozy Check-ins",
    "onboardingStart": "Set up — Cozy Check-ins",
    "orgFamilyInvite": "Join a Circle — Cozy Check-ins",
    "orgInvite": "Set up your organization — Cozy Check-ins",
    "orgSettings": "Org Settings — Cozy Check-ins",
    "orgCallLog": "Call log — Cozy Check-ins",
    "orgImpact": "Impact & Funding — Cozy Check-ins",
    "orgResponseLog": "Response log — Cozy Check-ins",
    "orgConsole": "Org Console — Cozy Check-ins",
    "resetPassword": "Set a new password — Cozy Check-ins",
    "staffInvite": "You're invited to help — Cozy Check-ins",
    "verifyEmail": "Confirm your email — Cozy Check-ins",
    "settings": "Settings — Cozy Check-ins",
    "signupOpen": "Create your account — Cozy Check-ins",
    "signupPrivate": "Sign up with an access code — Cozy Check-ins",
    "photoUpload": "Add your photo · Cozy Check-ins",
    "parent": "My Cozy Dashboard"
  },
  "serverErrors": {
    "uploadFailed": "Upload failed",
    "uploadFailedU": "Upload failed",
    "unauthorizedNoRequestHeadersAvailable": "Unauthorized: No request headers available",
    "unauthorizedNoRequestHeadersAvailableU": "Unauthorized: No request headers available",
    "unauthorizedNoAuthorizationHeaderProvided": "Unauthorized: No authorization header provided",
    "unauthorizedNoAuthorizationHeaderProvidedU": "Unauthorized: No authorization header provided",
    "unauthorizedOnlyBearerTokensAre": "Unauthorized: Only Bearer tokens are supported",
    "unauthorizedOnlyBearerTokensAreU": "Unauthorized: Only Bearer tokens are supported",
    "unauthorizedNoTokenProvided": "Unauthorized: No token provided",
    "unauthorizedNoTokenProvidedU": "Unauthorized: No token provided",
    "unauthorizedInvalidToken": "Unauthorized: Invalid token",
    "unauthorizedInvalidTokenU": "Unauthorized: Invalid token",
    "unauthorizedNoUserIdFound": "Unauthorized: No user ID found in token",
    "unauthorizedNoUserIdFoundU": "Unauthorized: No user ID found in token",
    "unauthorizedSessionNotFoundOr": "Unauthorized: Session not found or revoked",
    "unauthorizedSessionNotFoundOrU": "Unauthorized: Session not found or revoked",
    "unauthorizedPrincipalNotAuthorized": "Unauthorized: Principal not authorized",
    "unauthorizedPrincipalNotAuthorizedU": "Unauthorized: Principal not authorized",
    "unauthorizedDeviceAuthorizationUnavailable": "Unauthorized: Device authorization unavailable",
    "unauthorizedDeviceAuthorizationUnavailableU": "Unauthorized: Device authorization unavailable",
    "unauthorizedTrustedDeviceRequired": "Unauthorized: Trusted device required",
    "unauthorizedTrustedDeviceRequiredU": "Unauthorized: Trusted device required",
    "couldNotStopYourSubscriptions": "Could not stop your subscription's billing — please try again in a minute.",
    "couldNotStopYourSubscriptionsU": "Could not stop your subscription's billing — please try again in a minute.",
    "couldntSendTheNudgePlease": "Couldn't send the nudge — please try again.",
    "couldntSendTheNudgePleaseU": "Couldn't send the nudge — please try again.",
    "onlySomeoneInThisPersons": "Only someone in this person's Circle can send a nudge.",
    "seniorNotFound": "Senior not found.",
    "theyNeedToReplyYes": "They need to reply YES on their phone before we can text them.",
    "noPhoneNumberOnFile": "No phone number on file for this senior.",
    "saveTheSeniorsProfileFirst": "Save the senior's profile first to enable nudges.",
    "saveTheSeniorsProfileFirstU": "Save the senior's profile first to enable nudges.",
    "somethingWentWrongPleaseTry": "Something went wrong — please try again",
    "somethingWentWrongPleaseTryU": "Something went wrong — please try again",
    "adminsOnly": "Admins only",
    "noEmailOnFileFor": "No email on file for this account.",
    "nameDidntMatchDeletionCancelled": "Name didn't match — deletion cancelled.",
    "youStillLookAfterSomeone": "You still look after someone here. Delete their profile first (Settings → Delete), then delete your account.",
    "youStillLookAfterSomeoneU": "You still look after someone here. Delete their profile first (Settings → Delete), then delete your account.",
    "thisAccountOwnsAnOrganization": "This account owns an organization. Contact support to close it before deleting your account.",
    "thisAccountOwnsAnOrganizationU": "This account owns an organization. Contact support to close it before deleting your account.",
    "thisLoginBelongsToA": "This login belongs to a check-in profile. The family owner can delete that profile from their Settings, which removes this login too.",
    "couldNotDeleteTheAccount": "Could not delete the account — please try again.",
    "couldNotDeleteTheAccountU": "Could not delete the account — please try again.",
    "tellUsWhatYoudLike": "Tell us what you'd like done.",
    "tellUsWhatYoudLikeU": "Tell us what you'd like done.",
    "tooManyRequestsTodayPlease": "Too many requests today — please try again tomorrow.",
    "tooManyRequestsTodayPleaseU": "Too many requests today — please try again tomorrow.",
    "voiceReminderCallsAreAvailable": "Voice reminder calls are available on paid plans.",
    "couldNotUpdatePreferencePlease": "Could not update preference — please try again.",
    "couldNotUpdatePreferencePleaseU": "Could not update preference — please try again.",
    "askYourParentToAllow": "Ask your parent to allow this — they need to turn on export sharing first.",
    "askYourParentToAllowU": "Ask your parent to allow this — they need to turn on export sharing first.",
    "couldNotLoadTheInvites": "Could not load the invites.",
    "couldNotRevokeTheInvite": "Could not revoke the invite.",
    "couldntLoadSetting": "Couldn't load setting",
    "adminsOnly2": "Admins only.",
    "couldntSaveTryAgain": "Couldn't save — try again",
    "couldntSaveTryAgainU": "Couldn't save — try again",
    "tooManyAttemptsPleaseTry": "Too many attempts — please try again later.",
    "tooManyAttemptsPleaseTryU": "Too many attempts — please try again later.",
    "thisLoginAlreadyBelongsTo": "This login already belongs to them. They can change their own email from their account.",
    "couldntSaveThatEmailPlease": "Couldn't save that email — please try again.",
    "couldntSaveThatEmailPleaseU": "Couldn't save that email — please try again.",
    "thatLoginHasBeenSent": "That login has been sent several times today — please try again tomorrow.",
    "thatLoginHasBeenSentU": "That login has been sent several times today — please try again tomorrow.",
    "couldntFindThatPerson": "Couldn't find that person.",
    "addAnEmailAddressFor": "Add an email address for them first — that's where the login is anchored.",
    "addAnEmailAddressForU": "Add an email address for them first — that's where the login is anchored.",
    "thatEmailAddressIsAlready": "That email address is already used by another Cozy account. Please use a different address for their login.",
    "thatEmailAddressIsAlreadyU": "That email address is already used by another Cozy account. Please use a different address for their login.",
    "couldntSetUpThatLogin": "Couldn't set up that login — please contact support.",
    "couldntSetUpThatLoginU": "Couldn't set up that login — please contact support.",
    "couldntFinishSettingUpThat": "Couldn't finish setting up that login — please try again.",
    "couldntFinishSettingUpThatU": "Couldn't finish setting up that login — please try again.",
    "couldntSendThatEmailPlease": "Couldn't send that email — please try again.",
    "couldntSendThatEmailPleaseU": "Couldn't send that email — please try again.",
    "thatBrowserReturnedAnInvalid": "That browser returned an invalid push subscription.",
    "couldntTurnOnNotificationsPlease": "Couldn't turn on notifications — please try again.",
    "couldntTurnOnNotificationsPleaseU": "Couldn't turn on notifications — please try again.",
    "couldntLoadYourDashboard": "Couldn't load your dashboard.",
    "couldntLoadYourDashboardU": "Couldn't load your dashboard.",
    "couldntSaveYourPhoneInfo": "Couldn't save your phone info.",
    "couldntSaveYourPhoneInfoU": "Couldn't save your phone info.",
    "couldntSaveThatSetting": "Couldn't save that setting.",
    "notLinkedToAParent": "Not linked to a parent account.",
    "couldntSaveYourCheckIn": "Couldn't save your check-in — please try again.",
    "couldntSaveYourCheckInU": "Couldn't save your check-in — please try again.",
    "pleaseFinishSettingUpYour": "Please finish setting up your check-ins before using Phone Help.",
    "pleaseFinishSettingUpYourU": "Please finish setting up your check-ins before using Phone Help.",
    "aiHelperIsntSetUp": "AI helper isn't set up yet.",
    "phoneHelpHasReachedTodays": "Phone Help has reached today's limit. Please try again later.",
    "phoneHelpHasReachedTodaysU": "Phone Help has reached today's limit. Please try again later.",
    "phoneHelpIsntIncludedInYour": "Phone Help isn't included in your family's plan.",
    "phoneHelpIsntIncludedInYourU": "Phone Help isn't included in your family's plan.",
    "phoneHelpIsTurnedOffFor": "Phone Help is turned off for now.",
    "phoneHelpIsTurnedOffForU": "Phone Help is turned off for now.",
    "theHelperIsBusyPlease": "The helper is busy — please try again in a moment.",
    "theHelperIsBusyPleaseU": "The helper is busy — please try again in a moment.",
    "noResponsePleaseTryAgain": "No response — please try again.",
    "noResponsePleaseTryAgainU": "No response — please try again.",
    "weCouldntFindYourProfile": "We couldn't find your profile.",
    "weCouldntFindYourProfileU": "We couldn't find your profile.",
    "checkInsForThisProfile": "Check-ins for this profile start after a YES from its phone number.",
    "pleaseConfirmYourEmailAddress": "Please confirm your email address first.",
    "pleaseConfirmYourEmailAddressU": "Please confirm your email address first.",
    "setupCallOwnPhoneFirst": "Before Cozy Check-ins calls your parent, confirm your own phone number: in Settings, under “Your phone number”, enter the code we text you.",
    "couldntSaveThatPleaseTry": "Couldn't save that — please try again.",
    "couldntSaveThatPleaseTryU": "Couldn't save that — please try again.",
    "couldntRecordYourConsentPlease": "Couldn't record your consent — please try again.",
    "couldntRecordYourConsentPleaseU": "Couldn't record your consent — please try again.",
    "couldntFinishSettingYouUp": "Couldn't finish setting you up — please try again.",
    "couldntFinishSettingYouUpU": "Couldn't finish setting you up — please try again.",
    "tooManyCallAttemptsPlease": "Too many call attempts. Please wait a minute.",
    "tooManyCallAttemptsPleaseU": "Too many call attempts. Please wait a minute.",
    "notAuthorized": "Not authorized.",
    "notAuthorizedU": "Not authorized.",
    "maskedCallingIsNotEnabled": "Masked calling is not enabled for this organization.",
    "memberNotFoundInThis": "Member not found in this organization.",
    "memberIsNotReachableBy": "Member is not reachable by phone yet.",
    "thatMemberIsNotAssigned": "That member is not assigned to you.",
    "dailyCallLimitReachedFor": "Daily call limit reached for this member.",
    "addAPhoneNumberTo": "Add a phone number to your account to make calls.",
    "addAPhoneNumberToU": "Add a phone number to your account to make calls.",
    "couldntStartTheCall": "Couldn't start the call.",
    "couldntPlaceTheCallPlease": "Couldn't place the call. Please try again.",
    "couldntPlaceTheCallPleaseU": "Couldn't place the call. Please try again.",
    "invalidPhotoSlot": "Invalid photo slot.",
    "invalidPhotoPath": "Invalid photo path.",
    "couldntSavePhotoPleaseTry": "Couldn't save photo — please try again.",
    "couldntSavePhotoPleaseTryU": "Couldn't save photo — please try again.",
    "couldntRemovePhoto": "Couldn't remove photo.",
    "couldNotCheckTheOrganization": "Could not check the organization link.",
    "onlyTheTrustedLocalCan": "Only the trusted local can record a swing-by.",
    "couldntRecordThatPleaseTry": "Couldn't record that — please try again.",
    "couldntRecordThatPleaseTryU": "Couldn't record that — please try again.",
    "platformAdminOnly": "Platform admin only.",
    "couldNotCreateTheInvite": "Could not create the invite — please try again.",
    "couldNotCreateTheInviteU": "Could not create the invite — please try again.",
    "onlyTheFamilyOwnerCan": "Only the family owner can take over billing.",
    "thisMemberIsNotCurrently": "This member is not currently linked to an organization.",
    "onlyAnOrgAdminCan": "Only an org admin can resume coverage.",
    "thisSeniorWasNotOffered": "This senior was not offered to your organization.",
    "onlyCozyCheckInsSupport": "Only Cozy Check-ins support can change coverage state.",
    "canOnlyOfferHandoffTo": "Can only offer handoff to the senior's previous organization.",
    "thisMemberHasNoPrevious": "This member has no previous organization to offer a handoff to.",
    "graceDateMustBeWithin": "Grace date must be within the next 60 days.",
    "tooManyUploadLinksCreated": "Too many upload links created — please try again later.",
    "tooManyUploadLinksCreatedU": "Too many upload links created — please try again later.",
    "couldntCreateUploadLink": "Couldn't create upload link.",
    "couldntRevokeLink": "Couldn't revoke link.",
    "orgOwnersAccessEnrolledMembers": "Org owners access enrolled members through the org console.",
    "circleMemberNotFound": "Circle member not found.",
    "theFamilyOwnersChannelIsnt": "The family owner's channel isn't set here.",
    "pleaseEnterAValidPhone": "Please enter a valid phone like (276) 555-0100.",
    "pleaseEnterAValidPhoneU": "Please enter a valid phone like (276) 555-0100.",
    "pleaseTickTheBoxTo": "Please tick the box to agree to texts at this number, then save again.",
    "pleaseTickTheBoxToU": "Please tick the box to agree to texts at this number, then save again.",
    "pleaseChooseAStateFrom": "Please choose a state from the list.",
    "pleaseChooseAStateFromU": "Please choose a state from the list.",
    "guidedSetupIsNotAvailable": "Guided setup is not available right now.",
    "enterAValidMobileNumber": "Enter a valid mobile number",
    "enterAValidMobileNumberU": "Enter a valid mobile number",
    "forbidden": "Forbidden",
    "forbiddenU": "Forbidden",
    "seniorNotFound2": "Senior not found",
    "onlyTheFamilyOwnerCan2": "Only the family owner can change this setting.",
    "couldNotLoadMembers": "Could not load members",
    "notFound": "Not found",
    "bulkFamilyInviteLinksAre": "Bulk family invite links are not available for Mexico members yet.",
    "couldNotRegenerateLink": "Could not regenerate link",
    "couldNotAcceptInvite": "Could not accept invite",
    "somethingWentWrongPleaseTry2": "Something went wrong — please try again.",
    "somethingWentWrongPleaseTry2U": "Something went wrong — please try again.",
    "onlyTheFamilyOwnerCan3": "Only the family owner can send a test check-in.",
    "onlyTheFamilyOwnerCan4": "Only the family owner can view this setting.",
    "thisPersonCantBeCalled": "This person can't be called right now.",
    "tooManySetupCallsToday": "Too many setup calls today. Please try again tomorrow.",
    "tooManySetupCallsTodayU": "Too many setup calls today. Please try again tomorrow.",
    "phoneCallCheckInsAre": "Phone-call check-ins are already on.",
    "couldntPlaceTheCallThe": "Couldn't place the call. The reason is in the activity log (voice.optin_call_failed).",
    "couldNotSendTheInvite": "Could not send the invite — please try again.",
    "couldNotSendTheInviteU": "Could not send the invite — please try again.",
    "thatNumberIsAlreadyIn": "That number is already in the Circle.",
    "thatIsYourParentsOwnNumber": "That is the parent's own phone number. Each person in the Circle needs their own phone.",
    "thatNumberAlreadyHasAn": "That number already has an invite waiting. The link works for 24 hours.",
    "phoneMustBeAValid": "Phone must be a valid number like +12765550100",
    "trustedLocalSmsIsAvailable": "Trusted local SMS is available on Hometown Plus.",
    "tooManyInvitesPleaseWait": "Too many invites. Please wait a bit and try again.",
    "tooManyInvitesPleaseWaitU": "Too many invites. Please wait a bit and try again.",
    "anInviteToThatNumber": "An invite to that number was just sent. Please wait a few minutes.",
    "anInviteToThatNumberU": "An invite to that number was just sent. Please wait a few minutes.",
    "anInternalErrorOccurred": "An internal error occurred",
    "anInternalErrorOccurredU": "An internal error occurred",
    "relationshipNotFound": "Relationship not found.",
    "youCantRemoveTheCircle": "You can't remove the Circle owner.",
    "thisMemberCantBeRemoved": "This member can't be removed here.",
    "couldNotRemoveMemberPlease": "Could not remove member — please try again.",
    "couldNotRemoveMemberPleaseU": "Could not remove member — please try again.",
    "thisMembershipCantBeRemoved": "This membership can't be removed here.",
    "couldNotLeaveTheCircle": "Could not leave the Circle — please try again.",
    "couldNotLeaveTheCircleU": "Could not leave the Circle — please try again.",
    "couldNotFinishLeavingThe": "Could not finish leaving the Circle — please try again.",
    "couldNotFinishLeavingTheU": "Could not finish leaving the Circle — please try again.",
    "inviteNotFound": "Invite not found.",
    "thisInviteCantBeCanceled": "This invite can't be canceled here.",
    "thisInviteWasAlreadyAccepted": "This invite was already accepted.",
    "couldNotCancelInvitePlease": "Could not cancel invite — please try again.",
    "couldNotCancelInvitePleaseU": "Could not cancel invite — please try again.",
    "youreNotInThisPersons": "You're not in this person's Circle.",
    "youreNotInThisPersonsU": "You're not in this person's Circle.",
    "youreNotLinkedToThis": "You're not linked to this person.",
    "youreNotLinkedToThisU": "You're not linked to this person.",
    "paymentConfigurationError": "Payment configuration error",
    "paymentConfigurationErrorU": "Payment configuration error",
    "noCoveringOrganizationToShare": "No covering organization to share with.",
    "sharingContactsWithATrusted": "Sharing contacts with a trusted neighbor is a Hometown Plus feature.",
    "couldntSaveTheSettingPlease": "Couldn't save the setting — please try again.",
    "couldntSaveTheSettingPleaseU": "Couldn't save the setting — please try again.",
    "thisAccountIsAnOrganization": "This account is an organization account. Use a separate personal account to add a family member.",
    "thisAccountIsAnOrganizationU": "This account is an organization account. Use a separate personal account to add a family member.",
    "youCanHaveUpTo": "You can have up to 2 parents on Cozy Check-ins.",
    "hometownPhoneIsForPhone": "Hometown Phone is for phone-call check-ins. A parent on this account is set up for texts. Choose Hometown Family, or switch that parent to a phone call first.",
    "onHometownPhoneCheckIns": "On Hometown Phone, check-ins come by phone call. Add your parent by phone call, or switch to Hometown Family to use texts.",
    "youCanHaveUpToU": "You can have up to 2 parents on Cozy Check-ins.",
    "couldNotParsePhoneNumber": "Could not parse phone number.",
    "inviteIsNotAPending": "Invite is not a pending senior invite.",
    "inviteIsNoLongerPending": "Invite is no longer pending.",
    "inviteHasExpired": "Invite has expired.",
    "inviteHasNoPhoneNumber": "Invite has no phone number.",
    "pleaseWaitAMomentBefore": "Please wait a moment before resending.",
    "pleaseWaitAMomentBeforeU": "Please wait a moment before resending.",
    "tooManyResendsPleaseWait": "Too many resends. Please wait a bit and try again.",
    "tooManyResendsPleaseWaitU": "Too many resends. Please wait a bit and try again.",
    "thisInviteHasBeenResent": "This invite has been resent too many times. Please cancel it and create a new one.",
    "thisInviteHasBeenResentU": "This invite has been resent too many times. Please cancel it and create a new one.",
    "mfaRequired": "MFA required.",
    "tooManyMembersAddedPlease": "Too many members added. Please wait a bit and try again.",
    "couldNotAddMember": "Could not add member.",
    "aMemberWithThisPhone": "A member with this phone number already exists in the organization.",
    "couldNotCompleteEnrollment": "Could not complete enrollment.",
    "couldNotRecordConsent": "Could not record consent.",
    "toChangeTheNumberFor": "To change the number for phone-call check-ins, please contact support@cozycheckins.com.",
    "toChangeTheNumberForU": "To change the number for phone-call check-ins, please contact support@cozycheckins.com.",
    "couldNotUpdateMember": "Could not update member.",
    "weCouldntTextTheNew": "We couldn't text the new number, so nothing was changed. Please try again.",
    "weCouldntTextTheNewU": "We couldn't text the new number, so nothing was changed. Please try again.",
    "callingIsNotEnabledFor": "Calling is not enabled for this organization.",
    "dailyCheckInCallLimit": "Daily check-in call limit reached for this organization.",
    "memberNotFoundOrHas": "Member not found or has no phone number.",
    "checkInNotFound": "Check-in not found.",
    "checkInIsAlreadyCompleted": "Check-in is already completed.",
    "aCallHasAlreadyBeen": "A call has already been placed for this check-in.",
    "voiceCallingIsNotConfigured": "Voice calling is not configured.",
    "couldNotQueueTheCall": "Could not queue the call.",
    "couldNotPlaceTheCall": "Could not place the call — please try again.",
    "couldNotPlaceTheCallU": "Could not place the call — please try again.",
    "memberNotFound": "Member not found.",
    "couldNotRemoveMember": "Could not remove member.",
    "tooManyImportsPleaseWait": "Too many imports. Please wait a bit and try again.",
    "couldNotSaveBranding": "Could not save branding.",
    "logoMustBeAPng": "Logo must be a PNG, JPEG, or WEBP image.",
    "couldNotReadUploadedFile": "Could not read uploaded file.",
    "uploadedFileIsEmpty": "Uploaded file is empty.",
    "logoMustBe1Mb": "Logo must be 1 MB or smaller.",
    "uploadFailedPleaseTryAgain": "Upload failed. Please try again.",
    "tooManyTestCallsTry": "Too many test calls — try again in a minute.",
    "dailyTestCallLimitReached": "Daily test-call limit reached.",
    "memberHasNoPhoneNumber": "Member has no phone number on file.",
    "organizationNotFound": "Organization not found.",
    "onlyOrgAdminsCanManage": "Only org admins can manage staff.",
    "onlyTheOrgOwnerCan": "Only the org owner can invite admins.",
    "thatPhoneNumberDoesntLook": "That phone number doesn't look right.",
    "thisPersonAlreadyHasA": "This person already has a pending invite.",
    "couldNotSendInvitePlease": "Could not send invite — please try again.",
    "couldNotLoadStaff": "Could not load staff.",
    "staffMemberNotFound": "Staff member not found.",
    "onlyTheOrgOwnerCan2": "Only the org owner can remove an admin.",
    "youCantRemoveYourself": "You can't remove yourself.",
    "youCantRemoveTheOrg": "You can't remove the org owner.",
    "couldNotRemoveStaffPlease": "Could not remove staff — please try again.",
    "onlyTheOwnerCanAssign": "Only the owner can assign caseloads for this org.",
    "thatStaffMemberIsntActive": "That staff member isn't active in this org.",
    "memberNotFoundInThis2": "Member not found in this org.",
    "couldNotLoadAssignments": "Could not load assignments.",
    "couldNotAssignMemberPlease": "Could not assign member — please try again.",
    "couldNotUnassignMemberPlease": "Could not unassign member — please try again.",
    "onlyTheOwnerCanChange": "Only the owner can change this setting.",
    "couldNotSaveTheSetting": "Could not save the setting — please try again.",
    "couldNotUpdateOnDuty": "Could not update on-duty status.",
    "pleaseConfirmTheMemberAgreed": "Please confirm the member agreed to add this person.",
    "seeingConnectedFamiliesRequiresA": "Seeing connected families requires a paid organization plan.",
    "memberPhotosCantBeRemoved": "Member photos can't be removed here.",
    "onlyAnOrgAdminCan2": "Only an org admin can view impact data.",
    "couldntLoadImpactData": "Couldn't load impact data.",
    "onlyAnOrgAdminCan3": "Only an org admin can send this report.",
    "weCouldntFindYourEmail": "We couldn't find your email address. Please sign in again.",
    "tooManyReportsSentToday": "Too many reports sent today — please try again tomorrow.",
    "couldntQueueTheReportPlease": "Couldn't queue the report — please try again.",
    "onlyAnOrgAdminCan4": "Only an org admin can view demographics.",
    "onlyTheFamilyOwnerCan5": "Only the family owner can update this profile.",
    "toChangeToAMexico": "To change to a Mexico (+52) number, please contact support@cozycheckins.com.",
    "toChangeToAMexicoU": "To change to a Mexico (+52) number, please contact support@cozycheckins.com.",
    "couldNotSavePhotoPlease": "Could not save photo — please try again.",
    "couldNotSavePhotoPleaseU": "Could not save photo — please try again.",
    "photoCouldntBeUsed": "That photo couldn't be used — please try another one.",
    "photoCouldntBeUsedU": "That photo couldn't be used — please try another one.",
    "accessDenied": "Access denied.",
    "accessDeniedU": "Access denied.",
    "onlyTheFamilyOwnerCan6": "Only the family owner can regenerate this link.",
    "couldNotRegenerateLinkPlease": "Could not regenerate link — please try again.",
    "couldNotRegenerateLinkPleaseU": "Could not regenerate link — please try again.",
    "onlyTheFamilyOwnerCan7": "Only the family owner can send this message.",
    "thatLinkHasBeenSent": "That link has been sent several times today — please try again tomorrow.",
    "thatLinkHasBeenSentU": "That link has been sent several times today — please try again tomorrow.",
    "noBookmarkLinkAvailablePlease": "No bookmark link available — please save the senior profile first.",
    "noBookmarkLinkAvailablePleaseU": "No bookmark link available — please save the senior profile first.",
    "couldNotSendTheText": "Could not send the text — please try again.",
    "couldNotSendTheTextU": "Could not send the text — please try again.",
    "onlyTheFamilyOwnerCan8": "Only the family owner can reset this link.",
    "couldNotResetTheLink": "Could not reset the link — please try again.",
    "couldNotResetTheLinkU": "Could not reset the link — please try again.",
    "couldNotSignOutRemembered": "Could not sign out remembered devices — please try again.",
    "couldNotSignOutRememberedU": "Could not sign out remembered devices — please try again.",
    "couldNotRemoveSavedNotifications": "Could not remove saved notifications — please try again.",
    "couldNotRemoveSavedNotificationsU": "Could not remove saved notifications — please try again.",
    "onlyTheFamilyOwnerCan9": "Only the family owner can pause alerts.",
    "pickATimeInThe": "Pick a time in the future.",
    "pickATimeInTheU": "Pick a time in the future.",
    "theyRepliedStopFromTheir": "They replied STOP from their phone, so check-ins stay paused. They can text START from that number to start again.",
    "couldNotUpdatePausePlease": "Could not update pause — please try again.",
    "couldNotUpdatePausePleaseU": "Could not update pause — please try again.",
    "privacyRequestsArentAvailableRight": "Privacy requests aren't available right now. Please try again later.",
    "privacyRequestsArentAvailableRightU": "Privacy requests aren't available right now. Please try again later.",
    "yourCopyIsntReadyYet": "Your copy isn't ready yet. It becomes available here when the 72-hour hold ends.",
    "yourCopyIsntReadyYetU": "Your copy isn't ready yet. It becomes available here when the 72-hour hold ends.",
    "thisRequestWasStoppedSo": "This request was stopped, so nothing can be downloaded for it. You can make a new request.",
    "thisRequestWasStoppedSoU": "This request was stopped, so nothing can be downloaded for it. You can make a new request.",
    "notAuthorized2": "Not authorized",
    "notAuthorized2U": "Not authorized",
    "tooManyAttemptsPleaseWait": "Too many attempts. Please wait a moment and try again.",
    "tooManyAttemptsPleaseWaitU": "Too many attempts. Please wait a moment and try again.",
    "pleaseChooseAnAnswer": "Please choose an answer.",
    "pleaseChooseAnAnswerU": "Please choose an answer.",
    "couldntSendThatPleaseTry": "Couldn't send that — please try again.",
    "couldntSendThatPleaseTryU": "Couldn't send that — please try again.",
    "couldntLoadTheNotificationRecord": "Couldn't load the notification record.",
    "onlyAnOrgAdminCan5": "Only an org admin can view the notification record.",
    "onlyTheFamilyOwnerCan10": "Only the family owner can download this record.",
    "responseSystemIsNotEnabled": "Response system is not enabled for this organization.",
    "staffAlertsCantBeTurned": "Staff alerts can't be turned on. Your organization gets anonymous monthly numbers only.",
    "onlyTheOrgOwnerOr": "Only the org owner or admins can do that.",
    "couldntUpdateSetting": "Couldn't update setting.",
    "couldntUpdateCallingTier": "Couldn't update calling tier.",
    "couldntSaveOutcome": "Couldn't save outcome.",
    "weCantTextThatNumber": "We can't text that number: it replied STOP to Cozy Check-ins. Ask them to text START from that phone, then try again.",
    "invitesFromThisAccountAre": "Invites from this account are paused while we review recent STOP replies. Please email support@cozycheckins.com.",
    "invitesFromThisAccountAreU": "Invites from this account are paused while we review recent STOP replies. Please email support@cozycheckins.com.",
    "thatNumberHasHadSeveral": "That number has had several invites this week. Please try again in a few days.",
    "thatNumberHasHadSeveralU": "That number has had several invites this week. Please try again in a few days.",
    "yourOrganizationHasSentThe": "Your organization has sent the most invites allowed for today. Please try again tomorrow.",
    "youveSentTheMostInvites": "You've sent the most invites allowed for today. Please try again tomorrow.",
    "youveSentTheMostInvitesU": "You've sent the most invites allowed for today. Please try again tomorrow.",
    "couldNotReadYourSubscription": "Could not read your subscription. Please try again.",
    "couldNotReadYourSubscriptionU": "Could not read your subscription. Please try again.",
    "couldNotRecordYourRequest": "Could not record your request. Please try again.",
    "couldNotRecordYourRequestU": "Could not record your request. Please try again.",
    "couldntSaveAvatarPleaseTry": "Couldn't save avatar — please try again.",
    "couldntSaveAvatarPleaseTryU": "Couldn't save avatar — please try again.",
    "thatPlanIsntAvailable": "That plan isn't available.",
    "invalidSession": "Invalid session",
    "invalidSessionU": "Invalid session",
    "thisOrganizationHasReachedIts": "This organization has reached its {{limit}}-member limit. Contact support to raise it.",
    "pausesLastUpToDays": "Pauses last up to {{days}} days. You can pause again after that.",
    "pausesLastUpToDaysU": "Pauses last up to {{days}} days. You can pause again after that.",
    "unknown": "Something went wrong. Please try again.",
    "unknownU": "Something went wrong. Please try again.",
    "couldNotDecodeImage": "Could not decode image",
    "couldNotDecodeImageU": "Could not decode image",
    "couldNotEncodeImageAs": "Could not encode image as WebP",
    "couldNotEncodeImageAsU": "Could not encode image as WebP",
    "couldntStorePhoto": "Couldn't store photo",
    "couldntStorePhotoU": "Couldn't store photo",
    "couldntSavePhoto": "Couldn't save photo",
    "couldntSavePhotoU": "Couldn't save photo"
  },
  "onOffSwitch": {
    "on": "ON",
    "off": "OFF"
  },
  "still": {
    "appCozyFamily": "COZY FAMILY",
    "appDayNone": "no check-in yet",
    "appKeyDone": "Checked in",
    "appKeyMissed": "Missed",
    "appKeyWaiting": "Waiting",
    "appKeySplit": "Split day: {{first}} top-left, {{second}} bottom-right",
    "appFamilySpace": "Your family space",
    "appNav": "Your family app",
    "appYourFamily": "YOUR FAMILY",
    "appMonthTitle": "Check-ins this month",
    "appDayDone": "checked in",
    "appDayMissed": "missed check-in",
    "appDayWaiting": "waiting",
    "appCircleAria": "Your private family Circle",
    "homeAria": "Cozy Check-ins home",
    "appHomeAria": "Your Cozy Check-ins dashboard",
    "navHome": "Home",
    "navApp": "The app",
    "navMain": "Primary navigation",
    "navMobile": "Mobile menu",
    "openMenu": "Open menu",
    "closeMenu": "Close menu",
    "eyebrow": "FAMILY CONNECTION, MADE SIMPLE",
    "hero1": "The smallest check-in.",
    "hero2": "The biggest peace of mind.",
    "heroNote": "Checking in, not checking up.",
    "showcaseAria": "Family circle and family phone dashboard preview",
    "interfacePreview": "INTERFACE PREVIEW",
    "family": "FAMILY",
    "circleHeadline": "The people you trust.",
    "circleSubline": "All in one circle.",
    "circleAria": "Family circle. An example family, shown together as one group.",
    "lockedCircle": "A LOCKED CIRCLE",
    "circleFoot": "The whole family changes together.",
    "checkInReceived": "Check-in received",
    "sharedWithCircle": "Shared with your circle",
    "phoneEyebrow": "YOUR FAMILY APP",
    "phoneCaption": "Your family dashboard.",
    "phoneAria": "Picture of the family app on a phone",
    "noWearable": "NO WEARABLE REQUIRED",
    "noTracking": "NO GPS OR CAMERA TRACKING",
    "oneTap": "ONE TAP OR A PHONE CALL",
    "brandCaps": "COZY CHECK-INS",
    "stepsTitle1": "It should be this",
    "stepsTitle2": "simple.",
    "step1": "Create your circle.",
    "step1Text": "Invite the family, friends, or trusted neighbors you choose.",
    "step2": "Your parent checks in.",
    "step2Text": "One tap on a text or notification, or a short automated call where they press 1.",
    "step3": "Your circle stays informed.",
    "step3Text": "See the confirmation. If a check-in is missed, chosen people can be alerted to follow up.",
    "tryButton": "Checking in",
    "tapOnce": "One tap. Everyone knows.",
    "product": "THE PRODUCT",
    "madeForFamilies": "MADE FOR REAL FAMILIES",
    "familyView": "THE FAMILY VIEW",
    "dashboardTitle1": "Less wondering.",
    "dashboardTitle2": "More knowing.",
    "dashboardIntro": "Open one calm dashboard. See who has checked in, who is waiting, and who is in the circle.",
    "aClearStatus": "A clear daily status, without the noise.",
    "onlyYourCircle": "Only people you choose, in your circle.",
    "timelyAlerts": "An alert when a check-in is missed.",
    "nearbyFollowUp": "Add a friend or trusted neighbor who can check on your loved one if a check-in is missed.",
    "browserAria": "Picture of the family dashboard on a computer",
    "screenDemo": "Illustrative interface; no live family information is displayed.",
    "desktopCaption": "COZY FAMILY / DESKTOP",
    "plans": "PLANS",
    "familyPlans": "FAMILY PLANS",
    "pricingTitle1": "A daily habit.",
    "pricingTitle2": "A little reassurance.",
    "billingPeriod": "Billing period",
    "community": "WIDER COMMUNITY",
    "betterTogether": "BETTER TOGETHER",
    "forOrgs": "FOR ORGANIZATIONS",
    "orgCopy": "Cozy Check-ins can help senior centers and community groups stay connected to the older adults and families they serve, without replacing personal care.",
    "clearAnswers": "CLEAR ANSWERS",
    "faq1": "No fine print.",
    "faq2": "Just clarity.",
    "closingSmall": "A SMALL SIGNAL. A STRONGER CONNECTION.",
    "closing1": "Be there for them.",
    "closing2": "Without being in the way.",
    "footerDesc": "Checking in, not checking up.",
    "disclaimer": "Cozy Check-ins is not a medical alert service or emergency response.",
    "top": "Back to top",
    "darkLook": "Switch to the dark look",
    "lightLook": "Switch to the cream look",
    "loginEyebrow": "YOUR CIRCLE, YOUR SPACE.",
    "welcome1": "Good to have",
    "welcome2": "you back.",
    "loginIntro": "A place to stay close, without checking up.",
    "yoursTruly": "Only your trusted people belong here.",
    "membersOnly": "FAMILY SIGN IN",
    "show": "Show",
    "hide": "Hide",
    "showPasswordAria": "Show password",
    "hidePasswordAria": "Hide password",
    "backHome": "Back to homepage",
    "signupEyebrow": "COZY FAMILY / SETUP",
    "signupTitle": "Start with someone you love.",
    "contactEyebrow": "COZY CHECK-INS / CONTACT",
    "contactTitle": "Let’s talk about your circle.",
    "contactIntro": "For families, community teams, and organizations."
  },
  "orgPage": {
    "homeAria": "Cozy Check-ins home",
    "navAria": "Organizations page",
    "navHow": "How it works",
    "navWhy": "Why organizations",
    "navTalk": "Talk with us",
    "langLink": "Español",
    "eyebrow": "For organizations",
    "title": "Give families a daily safety net.",
    "subtitle": "Without giving your staff another system to run.",
    "leadStart": "The daily check-in that works on the",
    "leadStrong": "phone your members already have.",
    "ctaPrimary": "Talk with us about a pilot",
    "ctaSecondary": "See how it works",
    "bubble": "A simple daily check-in for a more independent tomorrow.",
    "photoAlt": "An older woman smiles at her phone while her adult daughter hugs her from behind.",
    "freeTitle": "Free to start. Easy to begin.",
    "freeIntro": "No budget needed to start, no contract and no new system. Most organizations start by sharing one flyer.",
    "free1Big": "$0",
    "free1Title": "No cost to get started",
    "free1Body": "Families choose a plan and pay for it themselves. Sharing Cozy Check-ins with your members costs your organization nothing to start.",
    "free2Big": "15 min",
    "free2Title": "About 15 minutes to begin",
    "free2Body": "Share a flyer, a bulletin line or a newsletter note. We give you the flyer and the words, ready to use.",
    "free3Big": "0",
    "free3Title": "No extra work for your staff",
    "free3Body": "No accounts to manage, no check-ins to watch and no alerts to answer.",
    "howTitle": "How it works",
    "howIntro": "Families set it up once, and Cozy Check-ins handles the rest.",
    "step1Title": "The family sets the time",
    "step1Body": "A family member picks a daily time for their loved one.",
    "step2Title": "Cozy Check-ins reaches out",
    "step2Body": "At the set time, Cozy Check-ins automatically sends a text or makes a call.",
    "step3Title": "They check in",
    "step3Body": "One tap on the text link or press 1 on the call.",
    "step4Title": "Family gets reassurance",
    "step4Body": "When the check-in happens, family is notified. If there's no check-in, their Circle is alerted so someone can follow up.",
    "step5Title": "Your organization gets the numbers",
    "step5Body": "Monthly numbers for grant and funding reports: older adults reached, check-ins made and missed. Never names. Never alerts.",
    "textTitle": "A friendly text at the set time.",
    "textBody": "One tap lets them check in.",
    "textAlt": "A phone showing the text: It's time for your Cozy check-in, with a Check in button.",
    "callTitle": "Or an automated call at the set time.",
    "callBody": "They just press 1 on the call.",
    "callAlt": "A phone showing an incoming call from Cozy Check-ins.",
    "noAppsTitle": "No apps to learn. No cameras. No wearables.",
    "noAppsBody": "Just a simple daily check-in, their way.",
    "scriptLine1": "A simple daily check-in.",
    "scriptLine2": "A much bigger sense of reassurance.",
    "whyTitle": "Why organizations offer Cozy Check-ins",
    "whyIntro": "Cozy Check-ins gives your organization a simple way to support older adults and families — without adding another system for staff to manage.",
    "why1Title": "Support aging in place",
    "why1Body": "Help older adults stay independent while giving families peace of mind.",
    "why2Title": "Offer a practical resource",
    "why2Body": "Give families a clear next step they can actually use.",
    "why3Title": "Add value to your members",
    "why3Body": "Provide an exclusive benefit that shows your commitment to them.",
    "why4Title": "No extra workload for staff",
    "why4Body": "No equipment, no integration, no staff monitoring.",
    "pricingTitle": "Exclusive member pricing",
    "pricingBody": "Families from your organization receive special Cozy Check-ins pricing not available to the general public.",
    "startTitle": "Start with 10 families",
    "startLine1": "You share Cozy Check-ins.",
    "startLine2": "Families choose whether to join.",
    "startLine3": "Cozy Check-ins handles onboarding and support.",
    "check0": "No cost to start",
    "check1": "No integration",
    "check2": "No equipment",
    "check3": "No staff monitoring",
    "check4": "No long-term contract",
    "contactEyebrow": "The Cozy Check-ins Community Pilot",
    "contactTitle": "Ready to offer Cozy Check-ins to your members?",
    "contactBody": "Questions? Talk with Cozy Check-ins about a pilot for your organization.",
    "formButton": "Talk with us about a pilot",
    "formFinePrint": "We'll only use this to reach out about a pilot for your organization.",
    "formSuccess": "Thanks — we'll be in touch about a pilot for your organization.",
    "footerTagline": "Daily check-ins for older adults. Peace of mind for families.",
    "footerFamilies": "For families",
    "footerAria": "Footer"
  },
  "circleView": {
    "seniorTitle": "Your Circle",
    "memberTitle": "Who's in the Circle",
    "familyTitle": "The family in the Circle",
    "namesIntro": "These are the family members in the Circle.",
    "you": "You",
    "nobodyYet": "No one else is in the Circle yet.",
    "andMore_one": "and {{count}} more",
    "andMore_other": "and {{count}} more",
    "switches": {
      "showLabel": "Let neighbors see what the family sees",
      "showDetail": "On: neighbors see the Circle the way the family does — names, photos, phone numbers and addresses, your parent's too. Off: they see only whether your parent checked in, and the family's first names.",
      "saved": "Saved.",
      "couldntSave": "Couldn't save — please try again."
    }
  },
  "photoViewer": {
    "save": "Save photo",
    "share": "Share",
    "failed": "That photo couldn't be opened. Please try again.",
    "shareUnavailable": "This phone can't share photos from here. Tap Save photo, then share it from your photos.",
    "description": "The photo, with buttons to save or share it."
  },
  "formerCircle": {
    "title": "You're no longer in a Circle",
    "removedBody": "The family took you off their Circle. You won't get their alerts any more.",
    "leftBody": "You left the Circle. You won't get its alerts any more.",
    "ownParent": "Looking after a parent of your own? You can set one up.",
    "setUp": "Set up a parent of my own",
    "endedTitle": "Daily check-ins ended",
    "endedBody": "The parent on this account texted STOP or pressed 9 on a Cozy Check-ins call. Their daily check-ins ended and their number came off the family's account. No more alerts will come.",
    "endedAgain": "To start again, the family adds them again, and they text START from that phone. Then their invite goes out, and they tap it and reply YES.",
    "endedAgainNumber": "To start again, the family adds them again, and they text START to {{number}} from that phone. Then their invite goes out, and they tap it and reply YES.",
    "endedPlan": "Your plan keeps going until you cancel it.",
    "endedSetUp": "Add a parent"
  },
  "sharedPhotos": {
    "title": "Shared photos",
    "intro": "Photos you share show on {{name}}'s check-in page, and the family sees them here.",
    "button": "Share a photo",
    "sending": "Sending your photo…",
    "sent": "Shared! {{name}} will see it on the check-in page.",
    "failed": "That photo didn't send. Please try again.",
    "dailyCap": "That's plenty of photos for today. You can share more tomorrow.",
    "hint": "Take a picture or pick one. Location and camera details are removed.",
    "empty": "No photos yet.",
    "from": "From {{name}}",
    "fromYou": "From you",
    "fromFamily": "From family",
    "alt": "Photo {{who}}, {{date}}",
    "removeAria": "Remove photo ({{who}})",
    "removeConfirm": "Remove this photo for everyone?",
    "removed": "Photo removed.",
    "removeFailed": "Couldn't remove the photo. Please try again."
  },
  "seniorPhoto": {
    "button": "Add a photo",
    "sending": "Sending your photo…",
    "sent": "Sent! Your family can see your photo.",
    "failed": "That photo didn't send. Please try again.",
    "dailyCap": "That's plenty of photos for today. You can add more tomorrow.",
    "notThisPhone": "Photos can only be added from your own phone.",
    "hint": "Take a picture or pick one. Your family will see it.",
    "familyTitle": "Photos from {{name}}",
    "familyAlt": "Photo from {{name}}, {{date}}"
  },
  "fastStart": {
    "eyebrow": "This phone or computer",
    "title": "Fast start",
    "body": "Opens your dashboard straight away when you refresh or open the app, without the trip through the sign-in page. It's on for everyone. You can turn it off on this phone or computer if a page ever gets stuck loading.",
    "isOn": "Fast start is on here",
    "isOnBody": "If a page stays on the loading screen, a \"Turn off\" button appears after 15 seconds.",
    "isOff": "Fast start is off here",
    "isOffBody": "Refreshing works the old way here: a short stop at the sign-in page first. You can turn it back on any time.",
    "turnOn": "Turn back on for this device",
    "turnOff": "Turn off fast start",
    "openDashboard": "Open the dashboard",
    "slowTitle": "This is taking longer than usual.",
    "slowStep": "Waiting on: {{step}}",
    "tryAgain": "Try again",
    "step": {
      "start": "starting up",
      "session": "your sign-in",
      "twoStep": "two-step sign-in",
      "device": "this device's check",
      "email": "email check",
      "done": "opening the page"
    }
  },
  "trustedDevicesLink": {
    "label": "Trusted devices — swap a phone or computer",
    "sub": "Got a new phone or computer? Start here."
  },
  "appUpdate": {
    "ready": "A new version of Cozy is ready.",
    "update": "Tap to update"
  },
  "betaAgreementPage": {
    "metaTitle": "Beta Tester Agreement — Cozy Check-ins",
    "metaDescription": "What beta testers of Cozy Check-ins agree to: keep the beta to yourself, don't copy it, and let us use your feedback.",
    "title": "Beta Tester Agreement",
    "draftNote": "Version {{version}}.",
    "intro": "Cozy Check-ins is in a private beta run by Cozy Checkins LLC. When you sign up with a beta code and tick the box, you agree to the points below. Our [Terms of Service](/terms) and [Privacy Policy](/privacy) still apply; where they differ, this agreement decides for the beta.",
    "sections": [
      {
        "title": "1. Keep the beta to yourself",
        "paragraphs": [
          "The beta — its screens, features, messages, prices, plans, and anything we tell you that is not on our public website — is confidential. Please don't share screenshots, recordings, or descriptions of it outside your own family Circle, and don't post them anywhere, without our written OK.",
          "This does not cover anything already public on cozycheckins.com, or anything you knew before the beta from somewhere else."
        ]
      },
      {
        "title": "2. No copying — we do not consent",
        "paragraphs": [
          "Cozy Checkins LLC does not consent to you, or anyone acting with you or for you, copying any part of Cozy Check-ins — its design, screens, features, steps, wording, messages, code, or the way it works. You may not copy, imitate, take apart, reverse engineer, scrape, or record it, and you may not use the beta, or anything you learn from it, to build, help build, or advise on a product or service that competes with it. You also agree not to help anyone else do any of these things.",
          "Cozy Check-ins, its name, its look, and its content belong to Cozy Checkins LLC. Being in the beta gives you no rights to any of them."
        ]
      },
      {
        "title": "3. Your feedback",
        "paragraphs": [
          "We'd love your ideas, suggestions, and bug reports. When you send them, you give Cozy Checkins LLC a free, permanent, worldwide right to use them in any way, without paying you or naming you. You don't have to send any."
        ]
      },
      {
        "title": "4. Your family's information stays protected",
        "paragraphs": [
          "This agreement is about the beta, not about your family's information. Our [Privacy Policy](/privacy) still covers what we keep and how we protect it."
        ]
      },
      {
        "title": "5. It's a beta",
        "paragraphs": [
          "Features may change, break, or go away. Cozy Check-ins is not an emergency or medical service, in the beta or after."
        ]
      },
      {
        "title": "6. Ending",
        "paragraphs": [
          "You or we can end your beta access at any time. Points 1 and 2 keep applying for 2 years after your beta access ends; point 3 keeps applying to feedback you already sent."
        ]
      },
      {
        "title": "7. Law",
        "paragraphs": [
          "This agreement is governed by the same law as our [Terms of Service](/terms) (the Commonwealth of Virginia, USA)."
        ]
      }
    ],
    "contactPre": "Questions? Write to",
    "contactEmail": "support@cozycheckins.com"
  },
  "reportProblem": {
    "rowSummary": "Something not working? Tell us. The founder reads every report.",
    "button": "Report a problem",
    "show": "Show Report a problem",
    "stopLine1": "REPORT",
    "stopLine2": "PROBLEM",
    "title": "Report a problem",
    "body": "Tell us what went wrong. Mark, the founder, reads every report and writes back by email when it's fixed.",
    "label": "What happened?",
    "placeholder": "For example: I tapped Save and nothing happened.",
    "noPersonal": "Please don't type names, phone numbers or addresses. Any email or phone number you type is hidden automatically.",
    "pictureAlt": "A picture of this page with names, numbers, photos and typed boxes hidden",
    "pictureNote": "This picture goes with your report. Cozy's own words and buttons show. Names, numbers, photos and anything typed are hidden.",
    "cancel": "Cancel",
    "send": "Send report",
    "sent": "Thank you. Your report was sent.",
    "throttled": "You've sent a few reports already. Please try again in an hour.",
    "failed": "That didn't send. Please try again."
  },
  "remindersOff": {
    "title": "Reminders are off on {{name}}'s phone",
    "body": "Send {{name}} a text. {{name}} taps the link, then taps one button. That's all.",
    "button": "Text {{name}} the link",
    "sending": "Sending…",
    "sent": "Text sent to {{name}} ✓",
    "sentToday": "Already sent to {{name}} today ✓ You can send it again tomorrow.",
    "error": "That didn't send. Please try again.",
    "fallbackName": "your loved one"
  },
  "mexicoLink": {
    "title": "Send {{name}} this link on WhatsApp",
    "body": "Send this link to {{name}} from your own WhatsApp. It comes from you, so {{name}} knows who it is from and why.",
    "linkLabel": "The link",
    "onlyThem": "Send it only to {{name}}. The first phone that opens it becomes {{name}}'s phone.",
    "openWhatsApp": "Open WhatsApp",
    "waInvite": "Hi {{name}}, I set up Cozy Check-ins for you. It is a daily check-in: once a day you tap one button, and our family sees that you checked in. This link is only for you. It opens your daily check-in on your phone: {{link}}",
    "waReminders": "Hi {{name}}, this link turns on your Cozy Check-ins reminders on this phone: {{link}}",
    "copy": "Copy link",
    "copied": "Copied ✓",
    "button": "Get {{name}}'s link for WhatsApp",
    "addedToast": "{{name}} is added. Now send the link on WhatsApp.",
    "appOnlyChannel": "Mexico: app notifications only. Cozy Check-ins doesn't text or call Mexican numbers yet. You'll get the link to send on WhatsApp.",
    "appOnlyTitle": "Cozy Check-ins daily check-ins in Mexico",
    "appOnlyBullet1": "A daily reminder shows up as a notification on their phone.",
    "appOnlyBullet2": "Cozy Check-ins does not text or call Mexican numbers.",
    "appOnlyBullet3": "You send them the link from your own WhatsApp; they accept on their own phone.",
    "appOnlyBullet4": "Their information is stored in the United States. They agree to this when they accept."
  },
  "heldInvite": {
    "title": "{{name}}'s invite is waiting",
    "body": "{{name}}'s number turned off Cozy Check-ins texts by replying STOP, so nothing has been texted to {{name}}.",
    "stepNumber": "Ask {{name}} to text START to {{number}} from that phone. The invite goes out within a minute. Then {{name}} taps the link and replies YES.",
    "stepNoNumber": "Ask {{name}} to text START from that phone to the number Cozy Check-ins texts from. The invite goes out within a minute. Then {{name}} taps the link and replies YES.",
    "waits": "The invite waits 7 days. If {{name}} doesn't want Cozy Check-ins, {{name}} doesn't have to do anything.",
    "ok": "OK",
    "stillWaitingNumber": "{{name}}'s invite is still waiting. It goes out as soon as {{name}} texts START to {{number}}.",
    "stillWaitingNoNumber": "{{name}}'s invite is still waiting. It goes out as soon as {{name}} texts START from that phone."
  },
  "deleteAccountPage": {
    "metaTitle": "Delete your account — Cozy Check-ins",
    "metaDescription": "How to delete your Cozy Check-ins account and data, in the app, on the website, or by email: what is deleted and what we keep.",
    "title": "Delete your Cozy Check-ins account",
    "intro": "This page explains how to delete your Cozy Check-ins account and its data, what is deleted, and what we keep. It covers the Cozy Check-ins website and the Cozy Check-ins app on Google Play, run by Cozy Checkins LLC.",
    "stepsTitle": "Delete it yourself, in the app or on the website",
    "steps": [
      "Sign in and open **Settings**.",
      "If you look after a parent: open **Danger zone**, tap **Delete this parent**, type their name, and tap **Yes, delete permanently**. Do this for each parent you look after.",
      "At the bottom of Settings, tap **Delete my account**, type DELETE, and tap **Delete permanently**."
    ],
    "stepsNote": "Both take effect right away. A parent's own sign-in is removed when the family deletes that parent. An organization account is closed by writing to support.",
    "emailTitle": "Ask us instead",
    "emailBody": "Write to [support@cozycheckins.com](mailto:support@cozycheckins.com) and ask us to delete your account. No sign-in or passcode is needed: we confirm who you are another way before we act, and we act within 30 days.",
    "partialTitle": "Delete some data and keep your account",
    "partialBody": "The family owner can delete one parent's profile and data (step 2 above) and keep the account. You can also ask us to delete specific information on the [privacy & data access page](/privacy/data-access), or by email.",
    "deletedTitle": "What is deleted",
    "deletedBody": "Closing your account removes your sign-in, your place in every Circle, your notification settings, and the stories you sent us. Deleting a parent removes their profile, photos, notes and contact details, and the personal details on their check-in history.",
    "keptTitle": "What we keep, and for how long",
    "keptBody": "We keep consent records, a record of each privacy request, and the dates, times and outcomes of past check-ins with the personal details removed, as the legal record of what the service did. To keep each free trial to one per family, we keep scrambled (hashed) copies of the phone numbers, network address and device marker used for a trial. Statistics that can't identify anyone may be kept. Backup copies are deleted automatically within 35 days, so deleted data can remain in them until then.",
    "privacyLinkPre": "More about your data is in our",
    "privacyLinkText": "Privacy Policy"
  },
  "planAdvantages": {
    "title": "Why families choose Cozy Check-ins",
    "items": [
      {
        "title": "Both parents, one plan.",
        "body": "Each parent gets their own check-in and their own number, on every plan."
      },
      {
        "title": "Nothing for your parent to download.",
        "body": "A text with one button, or a short daily phone call if they don't have a smartphone (US numbers)."
      },
      {
        "title": "The whole family knows.",
        "body": "Everyone in the Circle sees when your parent checks in, and gets a text if they don't."
      },
      {
        "title": "A neighbor can be part of it.",
        "body": "On Hometown Plus, up to 3 trusted friends or neighbors join the Circle."
      },
      {
        "title": "English or Spanish.",
        "body": "Texts, calls and the app work in English or Spanish."
      }
    ]
  },
  "promises": {
    "trial": "14-day free trial.",
    "trialDays": "{{days}}-day free trial.",
    "trialSub": "No card needed.",
    "moneyBack": "30-day money-back guarantee",
    "moneyBackSub": "on your first payment."
  },
  "callTest": {
    "title": "Call test",
    "body": "Rings your own phone over the same phone line that calls parents. Parents' daily and reminder calls are sent by the check-in scheduler; its last 24 hours are counted below. If both look right, a family's call problem is most likely their phone or phone plan.",
    "needPhone": "First add and confirm your own mobile number. The test only ever calls that number. It also becomes this account's alert number for texts.",
    "phoneOnFile": "The test calls your confirmed number ending in {{last2}}.",
    "ring": "Ring my phone",
    "starting": "Starting…",
    "when": "Test started {{time}}",
    "error": "Something went wrong. Please try again.",
    "start": {
      "no_phone": "Add and confirm your own mobile number first.",
      "limited": "Test limit reached (5 an hour, 20 a day). Try again later.",
      "not_placed": "The call was not placed. The problem is on the Cozy Check-ins side: calling is not set up, or the phone company refused it.",
      "not_callable": "Your number isn't one Cozy Check-ins can call. Calls only go to ordinary US numbers.",
      "busy": "A test was just started. Wait for it to finish before starting another."
    },
    "steps": {
      "sent": "Call handed to the phone company",
      "answered": "Your phone answered",
      "pressed": "You pressed 1",
      "ended": "Call ended: {{status}}",
      "voicemail": "Voicemail answered",
      "pressedKey": "You pressed {{digit}}"
    },
    "status": {
      "completed": "finished",
      "no-answer": "no answer",
      "busy": "busy",
      "failed": "couldn't connect",
      "canceled": "canceled",
      "unknown": "not reported"
    },
    "verdict": {
      "waiting": "Waiting for your phone…",
      "works": "Cozy Check-ins' phone line and your phone both work.",
      "works_full": "The whole calling system works: the check-in scheduler placed the call the way it calls parents, the parents' script played, and your 1 came through. This was a test, so nothing was recorded.",
      "works_stop": "The whole system works. You pressed 9: on a real call that stops calls and texts. Nothing was stopped.",
      "not_picked_up": "The check-in scheduler didn't pick up the test within 3 minutes. The problem is on the Cozy Check-ins side: the scheduler isn't running, or its new code isn't deployed yet.",
      "not_sent": "The call was not placed. The problem is on the Cozy Check-ins side.",
      "not_callable": "Your number isn't one Cozy Check-ins can call. Calls only go to ordinary US numbers.",
      "no_script": "Your phone answered, but the test message didn't play. The problem is on the Cozy Check-ins side.",
      "key_refused": "Your key came through, but Cozy Check-ins refused it. The problem is on the Cozy Check-ins side.",
      "voicemail": "Your voicemail answered, so the parents' voicemail message was left. Answer the call yourself and try again.",
      "answered_no_key": "Your phone answered, but no 1 came through. Try again and press 1 while the voice is talking.",
      "not_answered": "The call went out, but your phone didn't answer ({{status}}). The system sent it: check your phone.",
      "not_connected": "The phone company couldn't connect the call to your phone. Check your phone's signal and plan, then try again.",
      "timed_out": "No word back from the phone company after 5 minutes. That points to the Cozy Check-ins side."
    },
    "family": {
      "title": "A family's calls",
      "body": "Type the family account's email. You see each parent's calls from the last 30 days and their phone type: no names, and only the last 2 digits of the number. Each parent's number is sent to Twilio to check its phone type.",
      "emailLabel": "Family account email",
      "button": "Show their calls",
      "no_account": "No family account with that email.",
      "no_parents": "This account has no parents.",
      "limited": "Too many looks for now. Try again in an hour.",
      "parent": "Parent {{n}}",
      "phoneEnding": "phone ending {{last2}}",
      "channel": {
        "sms": "check-ins by text",
        "whatsapp": "check-ins by WhatsApp",
        "voice": "check-ins by phone call"
      },
      "setup": {
        "on": "calls on",
        "needs_setup": "waiting for them to press 1",
        "stopped": "calls stopped (STOP)"
      },
      "hint": {
        "system": "Cozy Check-ins couldn't place a call. The problem is on the Cozy Check-ins side.",
        "number_or_plan": "The phone company couldn't connect the calls. Check the number or their phone plan.",
        "not_answering": "Calls went out but weren't answered. Their phone, ringer, or call blocking.",
        "reaching": "Calls are reaching this phone.",
        "no_calls": "No calls in the last 30 days."
      },
      "kind": {
        "setup": "Setup call",
        "daily": "Daily check-in call",
        "reminder": "Reminder call",
        "answer": "On the call"
      },
      "result": {
        "requested": "asked for",
        "queued": "waiting to go out",
        "sent": "placed",
        "completed": "answered",
        "in-progress": "answered",
        "no-answer": "no answer",
        "busy": "busy",
        "failed": "couldn't connect",
        "canceled": "canceled",
        "not_placed": "not placed (Cozy Check-ins side)",
        "pressed_1_setup": "pressed 1 (said yes)",
        "pressed_9_setup": "pressed 9 (said no)",
        "pressed_1_daily": "pressed 1 (checked in)",
        "pressed_1_reminder": "pressed 1 on the reminder call",
        "voicemail": "voicemail answered",
        "stopped": "asked to stop calls",
        "called_back": "called Cozy Check-ins back",
        "other": "{{value}}"
      },
      "none": "No calls in the last 30 days.",
      "phoneKind": {
        "mobile": "mobile (cell phone)",
        "landline": "landline (home phone)",
        "home_internet": "internet home phone (cable or fiber)",
        "app_internet": "app number (like Google Voice or TextNow)",
        "other": "other kind of line",
        "unknown": "phone type couldn't be checked"
      },
      "phoneTip": {
        "no_texts": "Texts can't reach a landline. Switch this parent to phone calls.",
        "whatsapp_landline": "This is a landline. WhatsApp works only if this number is set up in the WhatsApp app on a smartphone. If not, switch this parent to phone calls.",
        "texts_maybe": "Some internet home phones can't get texts. If texts don't arrive, switch this parent to phone calls.",
        "app_number": "App numbers can miss calls and texts when the app is closed or signed out on their phone."
      }
    },
    "parentCalls": {
      "counts": "Calls to parents, last 24 hours: {{placed}} placed ({{answered}} answered), {{notPlaced}} not placed.",
      "good": "The check-in scheduler is placing calls.",
      "bad": "Some calls to parents were not placed. The problem is on the Cozy Check-ins side.",
      "none": "No calls to parents in the last 24 hours.",
      "unknown": "Couldn't read the calls to parents. Try again."
    },
    "full": {
      "button": "Test the whole system",
      "buttonEs": "Test the whole system in Spanish",
      "body": "Test the whole system: the check-in scheduler calls your phone the way it calls parents, with the parents' real call script (it says \"Hello Test\", or the same words in Spanish). It can take up to a minute to ring. Press 1 or 9: nothing is recorded or stopped.",
      "when": "Whole-system test ({{language}}) started {{time}}",
      "language": {
        "en": "English",
        "es": "Spanish"
      },
      "pickingUp": "Waiting for the check-in scheduler to pick up the test",
      "pickedUp": "Check-in scheduler picked up the test ({{seconds}} seconds)"
    }
  },
  "unifiedSignup": {
    "welcome": {
      "title": "Welcome",
      "intro": "Type your email to sign in or to create your account.",
      "continue": "Continue",
      "changeEmail": "Use a different email",
      "newQuestion": "First time here?",
      "imNew": "I'm new — create my account"
    },
    "switch": {
      "title": "New welcome screen (sign in + sign up)",
      "description": "Off: today's sign-in page. Test: the new welcome screen works only at the test address below. On: everyone gets the new welcome screen. A change can take up to 30 seconds to show.",
      "testAddress": "Test it here:",
      "groupAria": "New welcome screen: off, test or on",
      "off": "Off",
      "test": "Test",
      "on": "On",
      "offToast": "New welcome screen is off.",
      "testToast": "New welcome screen is in test.",
      "onToast": "New welcome screen is on for everyone.",
      "saveFailed": "Couldn't save — try again."
    }
  }
}
