{
  "child.tap_to_undo": "Tap to undo",
  "common.design.field_label": "Card design",
  "common.design.use_global": "Use global default",
  "common.design.classic": "Classic",
  "common.design.playroom": "Playroom",
  "common.design.console": "Console",
  "common.design.cleanpro": "Clean Pro",
  "panel.settings_card_design_label": "Default card design",
  "panel.settings_card_design_hint": "The style new cards use unless overridden per card.",
  "activity.a_chore": "a chore",
  "activity.a_reward": "a reward",
  "activity.awaiting_approval": "awaiting approval",
  "activity.card_description": "Timeline of recent chore completions and reward claims",
  "activity.card_name": "TaskMate Activity Feed",
  "activity.claimed": "claimed",
  "activity.completed": "completed",
  "activity.completed_chores_will_appear": "Completed chores will appear here",
  "activity.days_ago": "{count}d ago",
  "activity.default_title": "Activity",
  "activity.recent_events": "Recent events",
  "activity.undo": "Undo",
  "activity.undo_confirm_title": "Undo this action?",
  "activity.undo_confirm_chore": "Undo the approval of “{detail}” for {child}? This removes {points} points and returns it to pending.",
  "activity.undo_confirm_txn": "Undo “{detail}” for {child}? This reverses {points} points.",
  "activity.undo_error_title": "TaskMate — undo failed",
  "activity.undo_error_body": "Couldn't undo: {message}",
  "activity.editor.accent_stripes_helper": "Show the 4px coloured stripe at the left of each row indicating event type",
  "activity.editor.accent_stripes": "Coloured event stripes",
  "activity.editor.filter_child_helper": "Only show activity for this child",
  "activity.editor.max_items": "Max Items",
  "activity.editor.max_items_helper": "Maximum number of events to show (default: 30)",
  "activity.editor.show_relative_time_helper": "Show 'just now' / '5m ago' alongside the absolute time on each row",
  "activity.editor.show_relative_time": "Relative time labels",
  "activity.editor.show_filter_chips_helper": "Show the All / Chores / Rewards / Adjustments chip bar below the header",
  "activity.editor.show_filter_chips": "Show filter chips",
  "activity.editor.show_undo": "Show undo buttons",
  "activity.editor.show_undo_helper": "Show the undo button on each row. Turn off for a kid-friendly dashboard so children can't reverse their own activity.",
  "activity.events_count": "{count} events",
  "activity.just_now": "just now",
  "activity.hours_ago": "{count}h ago",
  "activity.filter_rewards": "Rewards",
  "activity.filter_chores": "Chores",
  "activity.filter_aria_label": "Filter activity by type",
  "activity.filter_all": "All",
  "activity.filter_adjustments": "Adjustments",
  "activity.feed_end": "— end of feed —",
  "activity.lost": "lost",
  "activity.minutes_ago": "{count}m ago",
  "activity.no_activity_yet": "No activity yet",
  "activity.no_events_for_filter": "No matching events",
  "activity.points_manually": "points manually",
  "activity.reason_allocated_to_pool": "Allocated to pool: {name}",
  "activity.reason_admin_adjustment": "Manual adjustment",
  "activity.reason_bonus": "Bonus: {name}",
  "activity.reason_penalty": "Penalty: {name}",
  "activity.reason_perfect_week": "Perfect week bonus!",
  "activity.reason_pool_refund_cost_reduced": "Pool refund (reward cost reduced): {name}",
  "activity.reason_pool_refund_deleted": "Pool refund (reward deleted): {name}",
  "activity.reason_pool_refund_expired": "Pool refund (reward expired): {name}",
  "activity.reason_pool_refund_sold_out": "Pool refund (reward sold out): {name}",
  "activity.reason_streak_milestone": "Streak milestone bonus ({days} day streak!)",
  "activity.reason_weekend_bonus": "Weekend bonus (×{multiplier})",
  "activity.received": "received",
  "activity.redeemed": "redeemed",
  "activity.spent": "spent",
  "activity.try_different_filter": "Try a different filter",
  "activity.unknown_child": "Unknown",
  "approvals.all_caught_up": "All caught up!",
  "approvals.approve": "Approve",
  "approvals.approve_all": "Approve all",
  "approvals.approve_all_busy": "Approving…",
  "approvals.approve_all_confirm": "Approve {count} pending chores?",
  "approvals.card_description": "A card to manage pending chore approvals for TaskMate",
  "approvals.card_name": "TaskMate Approvals",
  "approvals.default_title": "Pending Approvals",
  "approvals.editor.child_id": "Child ID (optional)",
  "approvals.editor.child_id_helper": "Filter approvals to a specific child",
  "approvals.editor.child_id_placeholder": "Leave empty to show all children",
  "approvals.editor.entity_helper": "The pending approvals sensor entity",
  "approvals.error_failed_service": "Failed to {service}: {message}",
  "approvals.error_title": "TaskMate Error",
  "approvals.no_pending_approvals": "No pending approvals",
  "approvals.please_define_entity": "Please define an entity (pending_approvals sensor)",
  "approvals.reject": "Reject",
  "approvals.reward_claims_section": "Reward claims",
  "approvals.mandatory_section": "Mandatory — needs review",
  "approvals.apply_penalty": "Apply penalty",
  "approvals.postpone": "Postpone",
  "approvals.dismiss": "Dismiss",
  "approvals.penalty_points": "Penalty: −{points} pts",
  "approvals.no_penalty": "No penalty set",
  "approvals.timed_duration": "{count} min",
  "badge.criteria_and": "AND",
  "badge.criteria_or": "OR",
  "badge.criteria_best_streak": "Best Streak",
  "badge.criteria_current_streak": "Current Streak",
  "badge.criteria_first_chore": "First Chore",
  "badge.criteria_first_reward": "First Reward",
  "badge.criteria_perfect_weeks": "Perfect Weeks",
  "badge.criteria_total_chores": "Total Chores",
  "badge.criteria_total_points": "Total Points",
  "badge.criteria_total_rewards": "Total Rewards",
  "badge.desc_1000_points": "Earn 1000 lifetime points",
  "badge.desc_100_chores": "Complete 100 chores",
  "badge.desc_100_points": "Earn 100 lifetime points",
  "badge.desc_10_chores": "Complete 10 chores",
  "badge.desc_10_perfect_weeks": "Achieve 10 perfect weeks",
  "badge.desc_30_day_streak": "Complete chores 30 days in a row",
  "badge.desc_3_day_streak": "Complete chores 3 days in a row",
  "badge.desc_5000_points": "Earn 5000 lifetime points",
  "badge.desc_500_points": "Earn 500 lifetime points",
  "badge.desc_50_chores": "Complete 50 chores",
  "badge.desc_5_perfect_weeks": "Achieve 5 perfect weeks",
  "badge.desc_7_day_streak": "Complete chores 7 days in a row",
  "badge.desc_first_chore": "Complete your very first chore",
  "badge.desc_first_perfect_week": "Complete a perfect week",
  "badge.desc_first_reward": "Claim your first reward",
  "badge.earned_date": "Earned {date}",
  "badge.manual_award_only": "Manual award only",
  "badge.metric_best_streak": "Best streak",
  "badge.metric_current_streak": "Current streak",
  "badge.metric_first_chore": "First chore (bool)",
  "badge.metric_first_reward": "First reward (bool)",
  "badge.metric_perfect_weeks": "Perfect weeks",
  "badge.metric_total_chores": "Total chores",
  "badge.metric_total_points": "Total points",
  "badge.metric_total_rewards": "Total rewards",
  "badge.name_1000_points": "1000 Points",
  "badge.name_100_chores": "100 Chores Completed",
  "badge.name_100_points": "100 Points",
  "badge.name_10_chores": "10 Chores Completed",
  "badge.name_10_perfect_weeks": "10 Perfect Weeks",
  "badge.name_30_day_streak": "30-Day Streak",
  "badge.name_3_day_streak": "3-Day Streak",
  "badge.name_5000_points": "5000 Points",
  "badge.name_500_points": "500 Points",
  "badge.name_50_chores": "50 Chores Completed",
  "badge.name_5_perfect_weeks": "5 Perfect Weeks",
  "badge.name_7_day_streak": "7-Day Streak",
  "badge.name_first_chore": "First Chore",
  "badge.name_first_perfect_week": "First Perfect Week",
  "badge.name_first_reward": "First Reward",
  "badge.source_auto": "AUTO",
  "badge.source_manual": "MANUAL",
  "badge.source_silent": "SILENT",
  "badge.tier_bronze": "Bronze",
  "badge.tier_gold": "Gold",
  "badge.tier_platinum": "Platinum",
  "badge.tier_silver": "Silver",
  "badges.all_tiers": "All tiers",
  "badges.count_label": "{earned} of {total} earned",
  "badges.count_label_latest": "{earned} of {total} earned · Latest: {latest}",
  "badges.default_title": "Badges",
  "badges.editor_help": "Configure via YAML: set entity to your badges sensor (e.g. sensor.taskmate_badges_mia).",
  "badges.entity_not_found": "{entity} not found",
  "badges.label": "Badges",
  "badges.next_up": "Next up",
  "badges.title_with_name": "{name}'s Badges",
  "bonuses.add_bonus": "Add Bonus",
  "bonuses.applying_to": "Applying to {childName} — current balance: {points} {pointsName}",
  "bonuses.btn_delete_title": "Delete",
  "bonuses.btn_edit_title": "Edit",
  "bonuses.card_description": "Apply point-awarding bonuses to children",
  "bonuses.card_name": "TaskMate Bonuses",
  "bonuses.default_title": "Bonuses",
  "bonuses.editor.manage_note": "Add, edit, and delete bonus templates directly on the card itself — tap the pencil icon in the card header. This editor only controls the card's appearance.",
  "bonuses.empty_sub": "Tap the pencil icon to add bonuses",
  "bonuses.empty_title": "No bonuses yet",
  "bonuses.form_description_label": "Description (optional)",
  "bonuses.form_description_placeholder": "Short description",
  "bonuses.form_icon_label": "Icon (MDI)",
  "bonuses.form_name_label": "Name",
  "bonuses.form_name_placeholder": "e.g. Tidied bedroom",
  "bonuses.form_points_label": "Points",
  "bonuses.manage_title": "Manage bonuses",
  "bonuses.new_bonus": "New Bonus",
  "bonuses.toast_add_failed": "Failed to add bonus",
  "bonuses.toast_applied": "+{points} {pointsName} to {childName}",
  "bonuses.toast_apply_failed": "Failed to apply bonus",
  "bonuses.toast_delete_failed": "Failed to delete bonus",
  "bonuses.toast_save_failed": "Failed to save changes",
  "bonuses.toast_saved": "Bonus saved",
  "calendar.card_description": "One-day view of chores assigned to each child",
  "calendar.card_name": "TaskMate Calendar",
  "calendar.child_summary": "{done} of {total} done",
  "calendar.default_title": "Task Calendar",
  "calendar.editor.child_helper": "Show the calendar for a specific child only",
  "calendar.editor.title": "Title",
  "calendar.error.entity_required": "Please define an entity",
  "calendar.legend_due": "Due",
  "calendar.next_day": "Next day",
  "calendar.no_chores_today": "No chores for this day",
  "calendar.prev_day": "Previous day",
  "calendar.rotating": "Rotating assignment",
  "child.afternoon_chores": "Afternoon Chores",
  "child.all_done": "All Done!",
  "child.bonus_label": "BONUS",
  "child.bonus_tooltip": "Bonus: {name}",
  "child.card_description": "A fun, kid-friendly card for children to complete their chores!",
  "child.card_name": "TaskMate Child Card",
  "child.celebration_message": "You did it! Keep up the great work!",
  "child.celebration_title": "AWESOME!",
  "child.on_vacation": "On a break — chores are paused 🌴",
  "child.child_not_found": "Child not found: {child_id}",
  "child.chore_locked_until": "Available at {time}",
  "child.chore_locked_until_generic": "Available later",
  "child.chores_reset_hours_mins": "Chores reset in {hours}h {mins}m",
  "child.chores_reset_mins": "Chores reset in {mins}m",
  "child.chores_resetting_soon": "Chores resetting soon!",
  "child.click_to_complete": "Click to complete",
  "child.click_to_undo": "Click to undo",
  "child.difficulty_easy": "Easy",
  "child.difficulty_medium": "Medium",
  "child.difficulty_hard": "Hard",
  "child.mandatory": "Mandatory",
  "child.swap_section_title": "Take over a chore",
  "child.swap_request": "Request",
  "child.swap_requested": "Requested",
  "child.photo_needed": "Photo needed",
  "child.photo_required_title": "Add a photo",
  "child.photo_take": "Take a photo",
  "child.photo_hint": "Show your finished chore",
  "child.photo_retake": "Retake",
  "child.photo_confirm": "Confirm",
  "child.photo_uploading": "Uploading photo…",
  "child.photo_cancel": "Cancel",
  "child.photo_not_image": "That file isn't an image. Please try again.",
  "child.photo_process_failed": "Couldn't read that photo. Please try again.",
  "child.photo_upload_failed": "Upload failed. Check your connection and try again.",
  "child.done": "Done",
  "child.editor.child": "Child",
  "child.editor.child_helper": "Which child is this card for?",
  "child.editor.chores_not_due_today": "Chores Not Due Today",
  "child.editor.dependency_mode": "Chores Waiting On Another",
  "child.editor.dependency_hide": "Hide — don't show until unlocked",
  "child.editor.dependency_dim": "Dim — show greyed out, non-interactive",
  "child.editor.dependency_show": "Show — show normally (still not tappable)",
  "child.editor.dependency_helper": "What to show when a chore depends on another that isn't approved yet today",
  "child.blocked_by_dependency": "Do {chores} first",
  "child.editor.due_days_dim": "Dim — show greyed out, non-interactive",
  "child.editor.due_days_helper": "Applies to chores with due_days set when today isn't scheduled",
  "child.editor.due_days_hide": "Hide — don't show",
  "child.editor.due_days_show": "Show — show normally regardless",
  "child.editor.elapsed_dim": "Dim — show greyed out, non-interactive",
  "child.editor.elapsed_helper": "What to show when a morning/afternoon/evening/night chore wasn't completed and that time has passed",
  "child.editor.elapsed_hide": "Hide — don't show",
  "child.editor.elapsed_show": "Show — show normally regardless",
  "child.editor.missed_time_chores": "Missed Time-of-Day Chores",
  "child.editor.recurrence_dim": "Dim — show greyed out, non-interactive",
  "child.editor.recurrence_helper": "What to show when a recurring chore has been completed and the window hasn't reset yet",
  "child.editor.recurrence_hide": "Hide — don't show until available again",
  "child.editor.recurrence_show": "Show — show normally (still not tappable)",
  "child.editor.recurring_when_completed": "Recurring Chores — When Completed",
  "child.editor.select_child": "Select a child...",
  "child.editor.show_countdown": "Show reset countdown beside \"Today's Chores\"",
  "child.editor.show_debug": "Show debug panel",
  "child.editor.show_description": "Show chore description",
  "child.editor.time_category": "Time Category",
  "child.editor.time_category_afternoon": "Afternoon Chores",
  "child.editor.time_category_all": "Today's Chores (All)",
  "child.editor.time_category_anytime": "Today's Chores (Anytime)",
  "child.editor.time_category_evening": "Evening Chores",
  "child.editor.time_category_helper": "Which time of day to show chores for — also sets the card title",
  "child.editor.time_category_morning": "Morning Chores",
  "child.editor.time_category_night": "Night Chores",
  "child.error_complete": "Something went wrong: {message}",
  "child.error_title": "Oops!",
  "child.error_undo": "Couldn't undo: {message}",
  "child.undo_not_allowed": "Only a parent can undo a completed chore.",
  "child.evening_chores": "Evening Chores",
  "child.morning_chores": "Morning Chores",
  "child.night_chores": "Night Chores",
  "child.no_chores_right_now": "No chores right now. Great job!",
  "child.not_scheduled_for_today": "Not scheduled for today",
  "child.pause": "Pause",
  "child.paused": "Paused",
  "child.please_define_child_id": "Please define a child_id",
  "child.please_define_entity": "Please define an entity (taskmate overview sensor)",
  "child.pts_per_min": "pts/min",
  "child.pts_per_n_min": "pts/{count} min",
  "child.recurring": "Recurring",
  "child.resume": "Resume",
  "child.start": "Start",
  "child.time_has_passed": "Time has passed for this chore",
  "child.timed_cap_label": "{used} / {max} min",
  "child.todays_chores": "Today's Chores",
  "common.afternoon": "Afternoon",
  "common.all": "All",
  "common.all_children": "All Children",
  "common.anytime": "Anytime",
  "common.apply": "Apply",
  "common.approve": "Approve",
  "common.approved": "Approved",
  "common.cancel": "Cancel",
  "common.close": "Close",
  "common.chores": "Chores",
  "common.complete_on_behalf": "Complete",
  "common.complete_on_behalf_all_done": "All chores done today",
  "common.complete_on_behalf_heading": "Outstanding today",
  "common.complete_on_behalf_tooltip": "Complete for {name}",
  "common.d_streak": "{count}d streak",
  "common.day_streak": "day streak",
  "common.default": "Default",
  "common.editor.card_title": "Card Title",
  "common.editor.filter_by_child": "Filter by Child (optional)",
  "common.editor.filter_by_child_all": "All Children",
  "common.editor.header_colour": "Header Colour",
  "common.editor.header_colour_helper": "Card header background colour",
  "common.editor.overview_entity": "Overview Entity",
  "common.editor.overview_entity_helper": "The TaskMate overview sensor entity",
  "common.entity": "Entity",
  "common.entity_not_found": "Entity not found: {entity}",
  "common.error": "Error",
  "common.evening": "Evening",
  "common.goal": "Goal",
  "common.morning": "Morning",
  "common.night": "Night",
  "common.no_children": "No children found",
  "common.no_chores_today": "No chores today",
  "common.pending": "Pending",
  "common.please_define_entity": "Please define an entity",
  "common.points": "Points",
  "common.reject": "Reject",
  "common.rejected": "Rejected",
  "common.reset": "Reset",
  "common.save": "Save",
  "common.stars": "Stars",
  "common.this_week": "this week",
  "common.title": "Title",
  "common.today": "Today",
  "common.total": "total",
  "common.unavailable": "TaskMate is unavailable",
  "common.unknown": "Unknown",
  "common.yesterday": "Yesterday",
  "dashboard.btn_add_points_title": "Add {amount} {pointsName}",
  "dashboard.btn_remove_points_title": "Remove {amount} {pointsName}",
  "dashboard.card_description": "Unified parent view with approvals, child progress, and quick point controls",
  "dashboard.card_name": "TaskMate Parent Dashboard",
  "dashboard.default_title": "Parent Dashboard",
  "dashboard.editor.entity_helper": "The TaskMate overview sensor",
  "dashboard.editor.entity_label": "Overview Entity",
  "dashboard.editor.header_colour_helper": "Card header background colour",
  "dashboard.editor.header_colour_label": "Header Colour",
  "dashboard.editor.quick_points_helper": "How many points the +/- buttons add or remove",
  "dashboard.editor.quick_points_label": "Quick Points Amount",
  "dashboard.editor.show_claims": "Show Reward Claims tab",
  "dashboard.editor.title_label": "Card Title",
  "dashboard.empty_approvals": "All caught up! No pending approvals.",
  "dashboard.empty_claims": "No pending reward claims.",
  "dashboard.empty_no_children": "No children found",
  "dashboard.empty_rotation": "No rotating chores configured",
  "dashboard.paused_tag": "PAUSED",
  "dashboard.rotation_skip_confirm": "Skip today's assignee for this chore?",
  "dashboard.rotation_skip_hint": "Skip current child and move to the next in rotation (today only)",
  "dashboard.rotation_unassigned": "Nobody",
  "dashboard.tab_approvals": "Approvals",
  "dashboard.tab_claims": "Claims",
  "dashboard.tab_overview": "Overview",
  "dashboard.chores_done": "{done} / {total} chores done",
  "dashboard.tab_points": "Points",
  "dashboard.tab_rotation": "Rotation",
  "graph.all_children": "All Children",
  "graph.card_description": "Line graph tracking daily or cumulative points over time",
  "graph.card_name": "TaskMate Points Graph",
  "graph.career_growth": "Career",
  "graph.daily": "Daily",
  "graph.default_title": "Points Graph",
  "graph.editor.child_filter_helper": "Show one child's line or all children together",
  "graph.editor.days_helper": "Number of days to display (3–90)",
  "graph.editor.days_to_show": "Days to show",
  "graph.graph_error": "Graph error: {message}",
  "graph.no_data_submessage": "Complete and approve chores to see the graph",
  "graph.no_data_yet": "No data yet",
  "graph.total": "Total",
  "leaderboard.best_streak": "Best streak",
  "leaderboard.best_streak_value": "{count} days",
  "leaderboard.card_description": "Multi-child competitive ranking by points, streak, or weekly activity",
  "leaderboard.card_name": "TaskMate Leaderboard",
  "leaderboard.career_label": "career",
  "leaderboard.career_score": "Career Score",
  "leaderboard.default_title": "Leaderboard",
  "leaderboard.editor.entity_helper": "The TaskMate overview sensor",
  "leaderboard.editor.entity_label": "Overview Entity",
  "leaderboard.editor.header_colour_helper": "Card header background colour",
  "leaderboard.editor.header_colour_label": "Header Colour",
  "leaderboard.editor.rank_by_helper": "What to rank children by",
  "leaderboard.editor.rank_by_label": "Rank by",
  "leaderboard.editor.show_career": "Show career score in sub-stats",
  "leaderboard.editor.show_streak": "Show streak in sub-stats",
  "leaderboard.editor.show_weekly": "Show weekly points in sub-stats",
  "leaderboard.editor.sort_option_career": "Career Score",
  "leaderboard.editor.sort_option_points": "All-time Points",
  "leaderboard.editor.sort_option_streak": "Current Streak",
  "leaderboard.editor.sort_option_weekly": "This Week's Points",
  "leaderboard.editor.title_label": "Card Title",
  "leaderboard.ordinal_4": "4th",
  "leaderboard.ordinal_5": "5th",
  "leaderboard.personal_bests": "Personal Bests",
  "leaderboard.points_this_week": "Points this week",
  "leaderboard.ranked_by": "Ranked by {period}",
  "leaderboard.sort_all_time_points": "All-time Points",
  "leaderboard.sort_career_score": "Career Score",
  "leaderboard.sort_current_streak": "Current Streak",
  "leaderboard.sort_this_week": "This Week",
  "leaderboard.tie": "TIE",
  "leaderboard.total_chores_completed": "Total chores completed",
  "leaderboard.total_points_earned": "Total points earned",
  "overview.card_description": "At-a-glance parent dashboard for all children",
  "overview.card_name": "TaskMate Overview",
  "overview.default_title": "TaskMate",
  "overview.designed.action_required": "ACTION REQUIRED ●",
  "overview.designed.approvals_waiting": "{count} approvals waiting",
  "overview.designed.daily_completion": "DAILY COMPLETION",
  "overview.designed.pending_review": "{count} PENDING REVIEW",
  "overview.designed.progress_detail": "{done} / {total} chores · {pct}%",
  "overview.designed.review": "Review",
  "overview.designed.sub_cleanpro": "Updated just now",
  "overview.designed.sub_console": "FAMILY · LIVE FEED",
  "overview.designed.sub_playroom": "Look how busy we are!",
  "overview.designed.tap_to_check": "Tap Approvals to check them off",
  "overview.designed.todays_progress": "Today's progress",
  "overview.designed.waiting_for_you": "{count} waiting for you",
  "overview.editor.approvals_entity_helper": "sensor.pending_approvals — for accurate pending count",
  "overview.editor.approvals_entity_label": "Approvals Entity (optional)",
  "overview.editor.entity_helper": "The TaskMate overview sensor entity",
  "overview.editor.entity_label": "Overview Entity",
  "overview.editor.header_colour_helper": "Card header background colour",
  "overview.editor.header_colour_label": "Header Colour",
  "overview.editor.title_label": "Title",
  "overview.footer_children": "Children",
  "overview.footer_done_today": "Done Today",
  "overview.footer_total_points": "Total {pointsName}",
  "overview.pending_count": "{count} pending",
  "panel.activity_approve": "Approve",
  "panel.activity_approve_all": "Approve all",
  "panel.activity_approve_all_busy": "Approving…",
  "panel.activity_approve_all_confirm": "Approve {count} pending chores?",
  "panel.activity_approve_all_done": "Approved {count} chores",
  "panel.activity_audit_log": "Audit log",
  "panel.audit_action": "Action",
  "panel.audit_clear": "Clear log",
  "panel.audit_clear_confirm": "Clear the entire audit log? This cannot be undone.",
  "panel.audit_cleared": "Audit log cleared",
  "panel.audit_empty": "No admin actions recorded yet.",
  "panel.audit_hint": "Recent admin changes — who changed what, and when.",
  "panel.audit_target": "Target",
  "panel.audit_user": "User",
  "panel.audit_when": "When",
  "panel.activity_claimed_reward": "Claimed: {name}",
  "panel.activity_claimed_text": "{child} claimed reward {reward}",
  "panel.activity_completed_chore": "Completed: {name}",
  "panel.activity_completed_text": "{child} completed {chore}",
  "panel.activity_deleted_chore": "(deleted chore)",
  "panel.activity_deleted_reward": "(deleted reward)",
  "panel.activity_manual_addition": "Manual addition",
  "panel.activity_manual_deduction": "Manual deduction",
  "panel.activity_no_items": "No items waiting for review.",
  "panel.activity_no_points_transactions": "No points transactions yet.",
  "panel.activity_no_recent": "Nothing here yet — activity will appear as chores are completed and rewards claimed.",
  "panel.activity_pending_all_clear": "All clear",
  "panel.activity_pending_approvals": "Pending approvals",
  "panel.activity_points": "points",
  "panel.activity_recent": "Recent activity",
  "panel.activity_reject": "Reject",
  "panel.activity_table_child": "Child",
  "panel.activity_table_points": "Points",
  "panel.activity_table_reason": "Reason",
  "panel.activity_undo": "Undo",
  "panel.activity_undo_confirm": "Reverse this penalty/bonus? The points change will be undone.",
  "panel.activity_undone": "Transaction undone",
  "panel.activity_table_when": "When",
  "panel.activity_title": "Activity",
  "panel.activity_transaction_count": "{count} transaction",
  "panel.activity_transaction_count_plural": "{count} transactions",
  "panel.assign_alternating": "Alternating — rotate through children, one per day",
  "panel.assign_alternating_short": "Alternating",
  "panel.assign_balanced": "Balanced — split today's chores evenly across children",
  "panel.assign_balanced_short": "Balanced",
  "panel.assign_first_come": "First come — first child to finish wins; it hides for the rest",
  "panel.assign_first_come_short": "First come",
  "panel.assign_everyone": "Everyone — every assigned child sees the chore",
  "panel.assign_random": "Random — pick one assigned child each day",
  "panel.assign_random_short": "Random",
  "panel.assign_unassigned": "Unassigned — no child sees this chore",
  "panel.assign_unassigned_short": "Unassigned",
  "panel.backup_export": "Export backup",
  "panel.backup_exported": "Backup downloaded",
  "panel.backup_hint": "Download a full backup of your TaskMate setup, or restore from one. Restore replaces everything — reload the integration afterwards so per-child entities refresh.",
  "panel.backup_import": "Restore backup",
  "panel.backup_import_bad_file": "That file isn't a valid TaskMate backup.",
  "panel.backup_import_confirm": "Restore this backup? It REPLACES all current TaskMate data. This cannot be undone.",
  "panel.backup_imported": "Backup restored — reload the integration to refresh entities.",
  "panel.backup_title": "Backup & restore",
  "panel.badge_add_btn": "+ Add custom badge",
  "panel.badge_add_criterion_btn": "+ Add criterion",
  "panel.badge_combinator_all": "Require all (AND)",
  "panel.badge_combinator_any": "Require any (OR)",
  "panel.badge_combinator_label": "When the badge has several criteria:",
  "panel.badge_assigned_hint": "Leave all unselected for all children",
  "panel.badge_assigned_label": "Assigned to",
  "panel.badge_award_btn": "Award",
  "panel.badge_award_select_child": "— Select child —",
  "panel.badge_award_to_label": "Award to",
  "panel.badge_bonus_label": "Point Bonus",
  "panel.badge_builtin_hint": "Built-in — only point bonus, tier, assigned to, and notify can be changed",
  "panel.badge_builtin_pill": "Built-in",
  "panel.badge_cancel_btn": "Cancel",
  "panel.badge_confirm_delete": "Delete badge \"{name}\"? This cannot be undone.",
  "panel.badge_confirm_rebuild": "Run a silent retroactive badge sweep across all children? No notifications or point bonuses will be sent.",
  "panel.badge_confirm_revoke": "Revoke badge \"{name}\"? Any point bonus will be reversed.",
  "panel.badge_criteria_label": "Criteria — Award when ALL are true",
  "panel.badge_delete_btn": "Delete",
  "panel.badge_description_label": "Description",
  "panel.badge_dialog_add_title": "Add Custom Badge",
  "panel.badge_dialog_award_title": "Award \"{name}\"",
  "panel.badge_dialog_edit_title": "Edit Badge — {name}",
  "panel.badge_edit_btn": "Edit",
  "panel.badge_empty_catalogue": "No built-in badges found.",
  "panel.badge_empty_custom_desc": "Create your own badges with custom criteria or for manual awarding.",
  "panel.badge_empty_custom_title": "No custom badges yet",
  "panel.badge_empty_history": "No badges have been awarded yet.",
  "panel.badge_icon_label": "Icon",
  "panel.badge_name_label": "Name",
  "panel.badge_no_criteria_hint": "No criteria — this badge will be manual-award only.",
  "panel.badge_notify_label": "Notify on Earn",
  "panel.badge_notify_no": "No",
  "panel.badge_notify_yes": "Yes",
  "panel.badge_rebuild_btn": "Rebuild Badges",
  "panel.badge_rebuild_tooltip": "Re-evaluate all badges silently (no notifications)",
  "panel.badge_remove_criterion_btn": "Remove",
  "panel.badge_revoke_btn": "Revoke",
  "panel.badge_save_btn": "Save badge",
  "panel.badge_subtab_catalogue": "Catalogue ({count})",
  "panel.badge_subtab_custom": "Custom ({count})",
  "panel.badge_subtab_history": "History",
  "panel.badge_tab_title": "Badges",
  "panel.badge_table_badge": "Badge",
  "panel.badge_table_bonus": "Bonus",
  "panel.badge_table_child": "Child",
  "panel.badge_table_criteria": "Criteria",
  "panel.badge_table_enabled": "Enabled",
  "panel.badge_table_source": "Source",
  "panel.badge_table_tier": "Tier",
  "panel.badge_table_when": "When",
  "panel.badge_tier_label": "Tier",
  "panel.badge_toggle_disable": "Disable",
  "panel.badge_toggle_enable": "Enable",
  "panel.bonus_apply_text": "Choose which child to award this bonus to (will add {points} points).",
  "panel.bonus_empty_description": "Add a bonus to award points for going above and beyond.",
  "panel.bonus_empty_title": "No bonuses yet",
  "panel.bonus_points_label": "Points to award",
  "panel.bonus_title": "Bonuses",
  "panel.btn_activate_chore": "Activate chore",
  "panel.btn_add_bonus": "+ Add bonus",
  "panel.btn_add_bonus_subtask": "+ Add bonus sub-task",
  "panel.btn_add_child": "+ Add child",
  "panel.btn_add_chore": "+ Add chore",
  "panel.btn_add_chore_template": "+ Add chore",
  "panel.btn_add_group": "+ Add group",
  "panel.btn_add_penalty": "+ Add penalty",
  "panel.btn_add_reward": "+ Add reward",
  "panel.btn_apply": "Apply…",
  "panel.btn_back": "← Back",
  "panel.btn_bulk_add": "Bulk add",
  "panel.btn_cancel": "Cancel",
  "panel.btn_close": "Close",
  "panel.btn_create_chores": "Create chores",
  "panel.btn_create_template": "Create Template",
  "panel.btn_create_template_toolbar": "＋ Create template",
  "panel.btn_deactivate_chore": "Deactivate chore",
  "panel.btn_delete": "Delete",
  "panel.btn_edit": "Edit",
  "panel.btn_clone_chore": "Duplicate",
  "panel.btn_from_template": "Create from template",
  "panel.btn_reorder_chores": "Reorder",
  "panel.btn_retry": "Retry",
  "panel.btn_review": "Review",
  "panel.btn_save": "Save",
  "panel.btn_save_as_template": "Save as template",
  "panel.btn_save_changes": "Save Changes",
  "panel.btn_save_order": "Save order",
  "panel.btn_save_settings": "Save settings",
  "panel.btn_save_template": "Save template",
  "panel.btn_skip_chore": "Skip rotation (advance to next child)",
  "panel.bulk_assigned_to": "Assigned to",
  "panel.bulk_chore_names_hint": "All chores will share the settings below.",
  "panel.bulk_chore_names_label": "Chore names (one per line, or comma-separated)",
  "panel.bulk_chore_names_placeholder": "Make bed\nEmpty dishwasher\nFeed dog",
  "panel.bulk_days_label": "Days of week (empty = every day)",
  "panel.bulk_leave_empty_hint": "Leave empty to assign to all children.",
  "panel.bulk_points_label": "Points (each)",
  "panel.bulk_title": "Bulk add chores",
  "panel.child_add_tile": "Add child",
  "panel.child_availability_hint": "States <code>on</code>, <code>home</code>, <code>available</code>, <code>present</code>, <code>true</code> mean available. Leave blank to treat as always available.",
  "panel.child_availability_label": "Availability sensor (optional)",
  "panel.child_avatar_label": "Avatar",
  "panel.child_busy_label": "Busy:",
  "panel.child_invert_hint": "Turn on for calendar or schedule sensors where an active state means the child is busy.",
  "panel.child_invert_label": "Invert logic (ON = unavailable)",
  "panel.child_inverted": "(inverted)",
  "panel.child_link_user_label": "Link to Home Assistant user (optional)",
  "panel.child_link_user_hint": "When set, only this Home Assistant user (or an admin) can complete chores, claim rewards, or run timers as this child via service calls. Leave as \"Anyone\" for a shared family tablet.",
  "panel.child_link_user_none": "Anyone (shared / kiosk)",
  "panel.child_name_label": "Name",
  "panel.child_name_placeholder": "e.g. Malia",
  "panel.child_no_availability": "No availability sensor",
  "panel.child_stat_done": "Done",
  "panel.child_stat_earned": "Earned",
  "panel.child_title": "Children",
  "panel.child_unavailability_hint": "A second sensor where <code>on</code>/<code>active</code> means the child is busy. Useful for school calendars. The child is available only when the availability sensor says available AND this sensor does not say busy.",
  "panel.child_unavailability_label": "Unavailability sensor (optional)",
  "panel.child_pause_streak_label": "Pause streak while away",
  "panel.child_pause_streak_hint": "When this child's availability or unavailability sensor (which can be a <code>calendar.*</code> entity) reports them away, freeze their streak and hide their chores until they're back.",
  "panel.child_unnamed": "(unnamed)",
  "panel.chore_advanced_bonus_subtasks": "Bonus sub-tasks (optional)",
  "panel.chore_advanced_bonus_subtasks_hint": "Optional extra-credit tasks that unlock after the main chore is completed.",
  "panel.chore_advanced_visibility": "Advanced — visibility & calendar publishing",
  "panel.chore_approval_label": "Requires parent approval",
  "panel.chore_assign_hint": "Leave empty to assign to <strong>all children</strong>.",
  "panel.chore_assign_label": "Assigned to",
  "panel.chore_assign_no_children": "Add some children first to assign chores to them.",
  "panel.chore_assignment_mode_hint": "Everyone = all assigned children see it. Alternating = rotate one per day. Random = pick one daily. Balanced = split evenly across the day.",
  "panel.chore_assignment_mode_label": "Assignment mode",
  "panel.chore_calendar_hint": "Today's assignment will be added as a calendar event on each selected calendar.",
  "panel.chore_calendar_label": "Publish to calendars (optional)",
  "panel.chore_calendar_no_entities": "No calendar entities found in Home Assistant. Set one up first.",
  "panel.chore_claim_allowance_hint": "Extra minutes after the time-of-day window ends during which the chore stays claimable. 0 = no grace. Night chores still cap at midnight.",
  "panel.chore_claim_allowance_label": "Claim allowance (minutes)",
  "panel.chore_completion_sound_label": "Completion sound",
  "panel.chore_difficulty_label": "Difficulty",
  "panel.difficulty_easy": "Easy",
  "panel.difficulty_hard": "Hard",
  "panel.difficulty_medium": "Medium",
  "panel.chore_daily_cap_label": "Daily cap (minutes, 0 = unlimited)",
  "panel.chore_daily_limit_label": "Daily limit",
  "panel.chore_days_label": "Days of week (leave empty = every day)",
  "panel.chore_description_label": "Description (optional)",
  "panel.chore_enabled_label": "Enabled",
  "panel.chore_first_occurrence_label": "First occurrence",
  "panel.chore_group_hint": "Member of task group: {name} ({policy}). Manage membership on the Groups tab.",
  "panel.chore_name_label": "Name",
  "panel.chore_order_title": "Chore Order",
  "panel.chore_points_label": "Points",
  "panel.chore_points_per_window_label": "Points per window",
  "panel.chore_recurrence_day_hint": "e.g. monday — leave blank for any day",
  "panel.chore_recurrence_day_label": "Day of week (weekly only)",
  "panel.chore_recurrence_label": "Recurrence",
  "panel.chore_recurrence_start_hint": "Anchor date — blank = today",
  "panel.chore_recurrence_start_label": "Start date (every-2-days only)",
  "panel.chore_require_availability": "Skip unavailable children",
  "panel.chore_require_availability_hint": "Uses each child's availability sensor (set on their profile).",
  "panel.chore_mandatory_label": "Mandatory chore",
  "panel.chore_mandatory_hint": "If not done before its time period ends, the parent reviews it (apply penalty, postpone, or dismiss).",
  "panel.chore_mandatory_penalty_label": "Penalty points if missed",
  "panel.chore_mandatory_penalty_hint": "Points the parent can deduct if the chore is missed. 0 = no penalty option.",
  "panel.chore_rotation_hint": "Alternating mode: permanently reorders the pool. Random/Balanced: only overrides today; tomorrow resumes normally.",
  "panel.chore_rotation_label": "Start rotation with (optional)",
  "panel.chore_rotation_no_override": "(no override)",
  "panel.chore_schedule_mode_label": "Schedule mode",
  "panel.chore_subtask_name_placeholder": "Sub-task name",
  "panel.chore_subtask_points_placeholder": "Pts",
  "panel.chore_table_approval": "Approval",
  "panel.chore_table_assigned": "Assigned",
  "panel.chore_table_current": "Current",
  "panel.chore_table_name": "Name",
  "panel.chore_table_period": "Period",
  "panel.chore_table_points": "Points",
  "panel.chore_table_schedule": "Schedule",
  "panel.chore_task_type_label": "Task type",
  "panel.chore_task_type_standard": "Standard — fixed points on completion",
  "panel.chore_task_type_timed": "Timed — points per minute",
  "panel.chore_time_category_label": "Time category",
  "panel.chore_tip_rename": "Tip: double-click a chore name to rename it inline.",
  "panel.chore_title": "Chores",
  "panel.chore_vis_entity_hint": "Chore only shows when its state matches the rule below. Leave blank for always-show.",
  "panel.chore_vis_entity_label": "Visibility entity (optional)",
  "panel.chore_vis_operator_label": "Visibility operator",
  "panel.chore_vis_value_hint": "e.g. \"on\", \"home\", \"30\"",
  "panel.chore_vis_value_label": "Visibility value",
  "panel.chore_window_minutes_label": "Window (minutes)",
  "panel.common_all_children": "All children",
  "panel.common_daily": "Daily",
  "panel.common_disabled": "disabled",
  "panel.common_name": "Name",
  "panel.common_no": "No",
  "panel.common_one_shot": "One-shot",
  "panel.common_points": "Points",
  "panel.common_yes": "Yes",
  "panel.confirm_delete_bonus_extra": "",
  "panel.confirm_delete_child_extra": "This also removes all of their completion history, reward claims, points transactions, and pool allocations. Chores assigned to them will be updated.",
  "panel.confirm_delete_chore_extra": "This also removes the chore from any task groups it belonged to.",
  "panel.confirm_delete_prompt": "Delete {kind} \"{name}\"?",
  "panel.confirm_delete_reward_extra": "Any points children have pooled for this reward will be refunded to their balance.",
  "panel.confirm_delete_suffix": "This cannot be undone.",
  "panel.confirm_delete_template": "Delete template \"{name}\"? This cannot be undone.",
  "panel.confirm_unsaved": "You have unsaved changes — discard them?",
  "panel.day_fri": "Fri",
  "panel.day_mon": "Mon",
  "panel.day_sat": "Sat",
  "panel.day_sun": "Sun",
  "panel.day_thu": "Thu",
  "panel.day_tue": "Tue",
  "panel.day_wed": "Wed",
  "panel.dialog_add_bonus": "Add bonus",
  "panel.dialog_add_child": "Add child",
  "panel.dialog_add_chore": "Add chore",
  "panel.dialog_add_group": "Add task group",
  "panel.dialog_add_penalty": "Add penalty",
  "panel.dialog_add_reward": "Add reward",
  "panel.dialog_apply_bonus": "Apply bonus: {name}",
  "panel.dialog_apply_penalty": "Apply penalty: {name}",
  "panel.dialog_edit_bonus": "Edit bonus",
  "panel.dialog_edit_child": "Edit child",
  "panel.dialog_edit_chore": "Edit chore",
  "panel.dialog_edit_group": "Edit task group",
  "panel.dialog_edit_penalty": "Edit penalty",
  "panel.dialog_edit_reward": "Edit reward",
  "panel.empty_children_copy": "Add your first child to get started.",
  "panel.empty_children_title": "No children yet",
  "panel.empty_chores_copy": "Add a chore — it'll show on the assigned children's cards.",
  "panel.empty_chores_title": "No chores yet",
  "panel.empty_groups_copy": "Create a group to make chores rotate together (e.g. all kitchen chores stay with one child each day).",
  "panel.empty_groups_title": "No task groups yet",
  "panel.empty_no_match": "No {kind} match \"{filter}\".",
  "panel.empty_rewards_copy": "Add a reward children can spend their {points_name} on.",
  "panel.empty_rewards_title": "No rewards yet",
  "panel.empty_template_all_removed": "All chores removed — go back and pick a different template.",
  "panel.entity_bonus": "Bonus",
  "panel.entity_child": "Child",
  "panel.entity_chore": "Chore",
  "panel.entity_group": "Group",
  "panel.entity_penalty": "Penalty",
  "panel.entity_reward": "Reward",
  "panel.entity_search_placeholder": "Search | Add custom item",
  "panel.error_failed_to_load": "Failed to load state",
  "panel.error_no_state": "No state yet.",
  "panel.first_occ_available_immediately": "Available immediately",
  "panel.first_occ_wait": "Wait for first scheduled occurrence",
  "panel.group_add_tile": "Add group",
  "panel.group_chore_count": "{count} chore(s)",
  "panel.group_chores_label": "Member chores (order matters for sticky — first is the leader)",
  "panel.group_missing_chore": "(missing chore {id})",
  "panel.group_no_rotation_chores": "Only rotation-mode chores (alternating / random / balanced) can join a group. Edit a chore's assignment mode first.",
  "panel.group_policy_hint": "Sticky = same child for all chores in the group today. Spread = different children today.",
  "panel.group_policy_label": "Policy",
  "panel.group_policy_spread": "Spread — different children across the group today",
  "panel.group_policy_spread_short": "Spread",
  "panel.group_policy_sticky": "Sticky — same child for all chores in the group today",
  "panel.group_policy_sticky_short": "Sticky",
  "panel.group_title": "Task groups",
  "panel.loading": "Loading…",
  "panel.nav_manage": "Manage",
  "panel.nav_system": "System",
  "panel.nav_today": "Today",
  "panel.parent_complete_confirm": "Mark this chore as completed by parent? No points will be awarded.",
  "panel.parent_complete_failed": "Failed: {error}",
  "panel.parent_complete_success": "Marked as parent completed",
  "panel.parent_complete_tooltip": "Parent did it (no points)",
  "panel.penalty_apply_text": "Choose which child to apply this penalty to (will deduct {points} points).",
  "panel.penalty_empty_description": "Add a penalty to deduct points for misbehaviour.",
  "panel.penalty_empty_title": "No penalties yet",
  "panel.penalty_points_label": "Points to deduct",
  "panel.penalty_title": "Penalties",
  "panel.penbon_applies_to": "Applies to",
  "panel.penbon_applies_to_hint": "Leave empty to apply to <strong>all children</strong>.",
  "panel.penbon_description_label": "Description (optional)",
  "panel.penbon_icon_label": "Icon",
  "panel.penbon_name_label": "Name",
  "panel.penbon_no_eligible": "No eligible children. Edit the {kind} to set who it applies to.",
  "panel.penbon_points_award": "Points to award",
  "panel.penbon_points_deduct": "Points to deduct",
  "panel.penbon_table_assigned": "Assigned",
  "panel.penbon_table_name": "Name",
  "panel.penbon_table_points": "Points",
  "panel.pending_tooltip": "{count} pending — click to review",
  "panel.pts_display": "{count} pts",
  "panel.recurrence_every_2_days": "Every 2 days",
  "panel.recurrence_every_2_weeks": "Every 2 weeks",
  "panel.recurrence_every_3_months": "Every 3 months",
  "panel.recurrence_every_6_months": "Every 6 months",
  "panel.recurrence_monthly": "Monthly",
  "panel.recurrence_weekly": "Weekly",
  "panel.reorder_global_hint": "Drag rows to reorder how chores appear in the admin panel. Save to apply.",
  "panel.reorder_global_title": "Reorder chores",
  "panel.reorder_hint": "Drag rows to reorder how chores appear on this child's card. Save to apply.",
  "panel.reorder_title": "Reorder chores · {name}",
  "panel.reward_add_tile": "Add reward",
  "panel.reward_assigned_hint": "Leave empty to make available to <strong>all children</strong>.",
  "panel.reward_assigned_label": "Assigned to",
  "panel.reward_badge_jackpot": "Jackpot",
  "panel.reward_badge_pool": "Pool",
  "panel.reward_cost_label": "Cost ({points_name})",
  "panel.reward_description_label": "Description (optional)",
  "panel.reward_expires_hint": "Pooled points are refunded at midnight.",
  "panel.reward_expires_label": "Expires (blank = never)",
  "panel.reward_icon_label": "Icon",
  "panel.reward_is_jackpot_hint": "Combine all children's contributions toward one shared reward.",
  "panel.reward_is_jackpot_label": "Jackpot — pool from all assigned children",
  "panel.reward_name_label": "Name",
  "panel.reward_pool_hint": "Children deposit points into this reward's dedicated pool rather than spending from their balance.",
  "panel.reward_pool_label": "Pool reward (savings jar)",
  "panel.reward_quantity_hint": "Each approved claim reduces by 1.",
  "panel.reward_quantity_label": "Limited quantity (blank = unlimited)",
  "panel.reward_stat_cost": "{points_name} cost",
  "panel.reward_stat_expires": "Expires",
  "panel.reward_stat_remaining": "Remaining",
  "panel.reward_stat_unlimited": "Unlimited",
  "panel.reward_title": "Rewards",
  "panel.row_menu_more": "More actions",
  "panel.schedule_one_shot": "One-time task",
  "panel.schedule_recurring": "Recurring (every N days/weeks/months)",
  "panel.schedule_specific_days": "Specific days of the week",
  "panel.search_bonuses": "Search bonuses…",
  "panel.search_children": "Search children…",
  "panel.search_chores": "Filter chores…",
  "panel.search_groups": "Search groups…",
  "panel.search_penalties": "Search penalties…",
  "panel.search_rewards": "Search rewards…",
  "panel.settings_afternoon_hint": "Default 12:00 – 17:00",
  "panel.settings_afternoon_label": "Afternoon",
  "panel.settings_bonuses_title": "Bonuses",
  "panel.settings_calendar_projection_hint": "Days ahead each chore publishes to calendars",
  "panel.settings_calendar_projection_label": "Calendar projection",
  "panel.settings_chore_rotation_title": "Chore Rotation",
  "panel.settings_currency_hint": "How points are named and shown across the app.",
  "panel.settings_currency_title": "Currency",
  "panel.settings_parents_title": "Parents (no admin rights)",
  "panel.settings_parents_hint": "Give a non-admin household member day-to-day control — approve chores, adjust points, confirm rewards — without Home Assistant admin rights. They still can't open this admin panel or change configuration.",
  "panel.settings_parents_empty": "No non-admin Home Assistant users found. Create a standard HA user first, then tick them here.",
  "panel.settings_evening_hint": "Default 17:00 – 21:00",
  "panel.settings_evening_label": "Evening",
  "panel.settings_history_title": "History & streaks",
  "panel.settings_morning_hint": "Default 06:00 – 12:00",
  "panel.settings_morning_label": "Morning",
  "panel.settings_night_hint": "Default 21:00 – 23:59",
  "panel.settings_night_label": "Night",
  "panel.settings_notifications_title": "Notifications",
  "panel.settings_notify_hint": "Used for parent approval pings",
  "panel.settings_notify_label": "Notify service",
  "panel.settings_notify_none": "(none — use HA persistent notifications)",
  "panel.settings_perfect_week_bonus_hint": "How many points to award",
  "panel.settings_perfect_week_bonus_label": "Perfect-week bonus points",
  "panel.settings_perfect_week_all_chores_hint": "A day counts only when every chore due that day is done",
  "panel.settings_perfect_week_all_chores_label": "Perfect week needs all tasks",
  "panel.settings_perfect_week_hint": "Bonus for completing every day of a week",
  "panel.settings_perfect_week_label": "Perfect-week bonus",
  "panel.settings_points_default": "Stars",
  "panel.settings_points_icon_hint": "Pick any MDI icon",
  "panel.settings_points_icon_label": "Points icon",
  "panel.settings_points_name_hint": "What you call them, e.g. Stars or Coins",
  "panel.settings_quick_points_label": "Quick point amounts",
  "panel.settings_quick_points_hint": "Comma-separated amounts for the + and − buttons on each child card. Up to three are used.",
  "panel.settings_points_name_label": "Points name",
  "panel.settings_retention_hint": "How many days of completion history to keep",
  "panel.settings_retention_label": "Retention",
  "panel.settings_show_ids_hint": "Display internal IDs for use in automations and service calls",
  "panel.settings_show_ids_label": "Show IDs",
  "panel.settings_skip_confirm_hint": "Show a confirmation popup before skipping a chore rotation",
  "panel.settings_skip_confirm_label": "Confirm before skipping",
  "panel.settings_streak_all_chores_hint": "Only extend a streak once every chore due that day is done",
  "panel.settings_streak_all_chores_label": "Streak needs all tasks",
  "panel.settings_streak_milestones_hint": "Bonus at 3, 7, 14, 30, 60, 100 days",
  "panel.settings_streak_milestones_label": "Streak milestones",
  "panel.settings_streak_reset_hint": "What happens when a day is missed",
  "panel.settings_streak_reset_label": "Streak reset",
  "panel.settings_time_boundaries_hint": "When each time period starts and ends (HH:MM, 24-hour). Add your own periods; gaps between periods fall back to Anytime.",
  "panel.settings_time_boundaries_title": "Time-of-day boundaries",
  "panel.settings_title": "Settings",
  "panel.settings_weekend_multiplier_hint": "Bonus on Sat/Sun (1.0 = off)",
  "panel.settings_difficulty_multipliers_hint": "Points multiplier per tier. Medium is the baseline (×1.0); easy/hard scale a chore's award.",
  "panel.settings_difficulty_multipliers_label": "Difficulty multipliers",
  "panel.settings_vacation_hint": "Pause all chores and freeze streaks during these date ranges (e.g. holidays).",
  "panel.vacation_calendar_label": "Family vacation calendar (optional)",
  "panel.vacation_calendar_hint": "When this calendar has an active event, every child is treated as away — streaks freeze and chores hide. Per-child sensors can add individual away periods on top.",
  "panel.settings_vacation_title": "Vacation / pause mode",
  "panel.vacation_add": "Add vacation",
  "panel.vacation_dates_required": "Each vacation needs a start and end date.",
  "panel.vacation_delete_title": "Remove vacation",
  "panel.vacation_name_placeholder": "e.g. Summer holidays",
  "panel.vacation_none": "No vacations set — chores run every day.",
  "panel.settings_weekend_multiplier_label": "Weekend multiplier",
  "panel.skip_chore_confirm": "Skip this chore's current assignee and advance the rotation?",
  "panel.streak_pause": "Pause — streak preserved until next completion",
  "panel.streak_reset": "Reset — streak goes to 0 on missed day",
  "panel.tab_activity": "Activity",
  "panel.tab_audit": "Audit",
  "panel.tab_badges": "Badges",
  "panel.tab_bonuses": "Bonuses",
  "panel.tab_children": "Children",
  "panel.tab_chores": "Chores",
  "panel.tab_groups": "Groups",
  "panel.tab_notifications": "Notifications",
  "panel.tab_penalties": "Penalties",
  "panel.tab_rewards": "Rewards",
  "panel.tab_settings": "Settings",
  "panel.tab_templates": "Templates",
  "panel.tab_unknown": "Unknown tab",
  "panel.wiki_tooltip": "Open the TaskMate wiki",
  "panel.notif_add_custom": "Add custom notification",
  "panel.notif_add_parent": "Add parent",
  "panel.notif_custom_empty": "No custom notifications yet.",
  "panel.notif_custom_message_placeholder": "Message (you can use {child_name})",
  "panel.notif_custom_name_placeholder": "Reminder name",
  "panel.notif_day_fri": "Fri",
  "panel.notif_day_mon": "Mon",
  "panel.notif_day_sat": "Sat",
  "panel.notif_day_sun": "Sun",
  "panel.notif_day_thu": "Thu",
  "panel.notif_day_tue": "Tue",
  "panel.notif_day_wed": "Wed",
  "panel.notif_default_custom_message": "Reminder for {child_name}",
  "panel.notif_default_custom_name": "New reminder",
  "panel.notif_default_parent_name": "Parent",
  "panel.notif_loading": "Loading notifications…",
  "panel.notif_matrix_col_notification": "Notification",
  "panel.notif_none": "None",
  "panel.notif_power_user_note_body": "TaskMate fires taskmate_chore_completed, taskmate_streak_updated, taskmate_badge_earned, taskmate_reward_claimed and other events on the HA event bus. Use Node-RED or HA automations to react to them.",
  "panel.notif_power_user_note_title": "Power-user note",
  "panel.notif_recipients_children": "Children",
  "panel.notif_recipients_parents": "Parents",
  "panel.notif_remove_parent": "Remove",
  "panel.notif_section_custom": "Custom scheduled notifications",
  "panel.notif_unnamed_recipient": "(unnamed)",
  "panel.notif_section_custom_desc": "Add your own timed reminders. For event-driven notifications, listen to the taskmate_* events on the Home Assistant bus.",
  "panel.notif_section_matrix": "Built-in notifications",
  "panel.notif_section_matrix_desc": "Toggle per recipient. The switch on the left disables the whole row globally. Cells marked — aren't valid for that recipient.",
  "panel.notif_section_recipients": "Recipients",
  "panel.notif_section_recipients_desc": "Map each child and parent to a Home Assistant notify service. Leave blank to skip notifications for that person.",
  "panel.notif_streak_cutoff_label": "Cutoff",
  "panel.notif_nav_url_global_label": "When tapped, open",
  "panel.notif_nav_url_global_hint": "Where a tapped notification opens: a path like /taskmate-admin or /lovelace/parents, a full URL, or noAction. Applies to all notifications unless overridden per type below.",
  "panel.notif_nav_url_row_placeholder": "Uses global default",
  "panel.notif_group_global_label": "Group notifications as",
  "panel.notif_group_global_hint": "Notifications sharing this name stack together on the phone instead of scattering through your other Home Assistant alerts. Applies to all notifications unless overridden per type below. Leave blank to turn grouping off.",
  "panel.notif_group_row_placeholder": "Group: global default",
  "panel.notif_send_test": "Send test",
  "panel.notif_test_sent": "Test sent to {count} recipient(s) + persistent notification",
  "panel.notif_tab_title": "Notifications",
  "panel.template_assignment_mode_label": "Assignment mode",
  "panel.template_builtin": "Built-in",
  "panel.template_builtin_packs": "Built-in packs",
  "panel.template_builtin_template_packs": "Built-in template packs",
  "panel.template_builtin_templates": "Built-in templates",
  "panel.template_chores_in_template": "Chores in this template",
  "panel.template_confirm_bar": "{count} chore(s) will be created · {points} pts total",
  "panel.template_create_btn": "Create {count} chore(s)",
  "panel.template_create_title": "Create Template",
  "panel.template_custom": "Custom",
  "panel.template_custom_packs": "Custom packs",
  "panel.template_custom_templates": "Custom templates",
  "panel.template_daily_limit_label": "Daily limit",
  "panel.template_edit_title": "Edit Template",
  "panel.template_icon_label": "Icon (MDI)",
  "panel.template_name_label": "Name",
  "panel.template_picker_title": "Add from Template",
  "panel.template_preview_hint": "Review and customise each chore before creating. Expand to edit all fields, or remove with ✕.",
  "panel.template_pts_total": "{count} chore(s) · {points} pts total",
  "panel.template_requires_approval_label": "Requires approval",
  "panel.template_requires_approval_no": "No",
  "panel.template_requires_approval_yes": "Yes",
  "panel.template_save_icon_label": "Icon (MDI)",
  "panel.template_save_name_label": "Template name",
  "panel.template_save_name_placeholder": "e.g. My morning pack",
  "panel.template_save_select_chores": "Select chores to include",
  "panel.template_save_title": "Save as Template",
  "panel.template_schedule_days_label": "Schedule (days)",
  "panel.template_schedule_label": "Schedule",
  "panel.template_title": "Templates",
  "panel.template_unnamed": "(unnamed)",
  "panel.time_afternoon": "Afternoon",
  "panel.time_ago_days": "{count}d ago",
  "panel.time_ago_hours": "{count}h ago",
  "panel.time_ago_just_now": "just now",
  "panel.time_ago_minutes": "{count}m ago",
  "panel.time_anytime": "Anytime",
  "panel.time_evening": "Evening",
  "panel.time_morning": "Morning",
  "panel.time_night": "Night",
  "panel.toast_added_bonus": "Added bonus",
  "panel.toast_added_penalty": "Added penalty",
  "panel.toast_apply_failed": "Apply failed: {error}",
  "panel.toast_approve_failed": "Approve failed: {error}",
  "panel.toast_approved": "Approved",
  "panel.toast_badge_added": "Badge added",
  "panel.toast_badge_award_failed": "Award failed: {error}",
  "panel.toast_badge_awarded": "Badge awarded",
  "panel.toast_badge_criterion_invalid": "Criterion value must be ≥ 1",
  "panel.toast_badge_delete_failed": "Delete failed: {error}",
  "panel.toast_badge_deleted": "Badge deleted",
  "panel.toast_badge_name_required": "Name is required",
  "panel.toast_badge_rebuild_failed": "Rebuild failed: {error}",
  "panel.toast_badge_rebuilt": "Badges rebuilt",
  "panel.toast_badge_revoke_failed": "Revoke failed: {error}",
  "panel.toast_badge_revoked": "Badge revoked",
  "panel.toast_badge_save_failed": "Save failed: {error}",
  "panel.toast_badge_select_child": "Select a child",
  "panel.toast_badge_update_failed": "Update failed: {error}",
  "panel.toast_badge_updated": "Badge updated",
  "panel.toast_bonus_applied": "Bonus applied",
  "panel.toast_bulk_add_failed": "Bulk add failed: {error}",
  "panel.toast_bulk_added": "Added {count} chore(s)",
  "panel.toast_child_added": "Child added",
  "panel.toast_child_updated": "Child updated",
  "panel.toast_chore_activated": "Chore activated",
  "panel.toast_chore_added": "Chore added",
  "panel.toast_chore_cloned": "Chore duplicated",
  "panel.toast_chore_deactivated": "Chore deactivated",
  "panel.toast_chore_updated": "Chore updated",
  "panel.toast_copied": "Copied!",
  "panel.toast_created_chores": "Created {count} chore(s)",
  "panel.toast_delete_failed": "Delete failed: {error}",
  "panel.toast_deleted": "Deleted",
  "panel.toast_enter_chore_name": "Enter at least one chore name",
  "panel.toast_group_added": "Group added",
  "panel.toast_group_updated": "Group updated",
  "panel.toast_name_and_chore_required": "Name and at least one chore required",
  "panel.toast_name_enter_select": "Enter a name and select at least one chore",
  "panel.toast_name_required": "Name is required",
  "panel.toast_name_required_template": "Name required",
  "panel.toast_order_saved": "Order saved",
  "panel.toast_penalty_applied": "Penalty applied",
  "panel.toast_points_required": "Points must be 1 or higher",
  "panel.toast_reject_failed": "Reject failed: {error}",
  "panel.toast_rejected": "Rejected",
  "panel.toast_rename_failed": "Rename failed: {error}",
  "panel.toast_renamed": "Renamed",
  "panel.toast_reward_added": "Reward added",
  "panel.toast_reward_updated": "Reward updated",
  "panel.toast_save_failed": "Save failed: {error}",
  "panel.toast_settings_saved": "Saved ({count} field(s))",
  "panel.toast_skip_done": "Rotation skipped — next child assigned",
  "panel.toast_skip_failed": "Skip failed: {error}",
  "panel.toast_template_created": "Template \"{name}\" created",
  "panel.toast_template_deleted": "Template deleted",
  "panel.toast_template_failed_apply": "Failed to apply template",
  "panel.toast_template_failed_create": "Failed to create template",
  "panel.toast_template_failed_delete": "Failed to delete",
  "panel.toast_template_failed_save": "Failed to save template",
  "panel.toast_template_failed_update": "Failed to update",
  "panel.toast_template_saved": "Template \"{name}\" saved",
  "panel.toast_template_updated": "Template updated",
  "panel.toast_toggle_failed": "Toggle failed: {error}",
  "panel.toast_updated_bonus": "Updated bonus",
  "panel.toast_updated_penalty": "Updated penalty",
  "panel.tooltip_cancel": "Cancel",
  "panel.tooltip_clear": "Clear",
  "panel.tooltip_close": "Close",
  "panel.tooltip_remove": "Remove",
  "panel.tooltip_remove_batch": "Remove from batch",
  "panel.tooltip_rename": "Double-click to rename",
  "panel.tooltip_save": "Save",
  "panel.topbar_awaiting_approval": "Awaiting your approval — {details}",
  "panel.topbar_chore_count": "{count} chore(s)",
  "panel.topbar_pending": "{count} pending",
  "panel.topbar_pending_title": "{count} pending — click to review",
  "panel.topbar_reward_count": "{count} reward claim(s)",
  "panel.topbar_swap_count": "{count} swap request(s)",
  "panel.vis_equals": "Equals — state matches exactly",
  "panel.vis_gt": "Greater than (>)",
  "panel.vis_gte": "Greater than or equal (≥)",
  "panel.vis_lt": "Less than (<)",
  "panel.vis_lte": "Less than or equal (≤)",
  "panel.vis_none": "No filter — always show chore",
  "panel.vis_not_equals": "Not equal",
  "penalties.add_penalty": "Add Penalty",
  "penalties.applying_to": "Applying to {childName} — current balance: {points} {pointsName}",
  "penalties.btn_delete_title": "Delete",
  "penalties.btn_edit_title": "Edit",
  "penalties.card_description": "Apply point-deduction penalties to children",
  "penalties.card_name": "TaskMate Penalties",
  "penalties.default_title": "Penalties",
  "penalties.editor.manage_note": "Add, edit, and delete penalty templates directly on the card itself — tap the pencil icon in the card header. This editor only controls the card's appearance.",
  "penalties.empty_sub": "Tap the pencil icon to add penalties",
  "penalties.empty_title": "No penalties yet",
  "penalties.form_description_label": "Description (optional)",
  "penalties.form_description_placeholder": "Short description",
  "penalties.form_icon_label": "Icon (MDI)",
  "penalties.form_name_label": "Name",
  "penalties.form_name_placeholder": "e.g. Not going to bed",
  "penalties.form_points_label": "Points",
  "penalties.manage_title": "Manage penalties",
  "penalties.new_penalty": "New Penalty",
  "penalties.toast_add_failed": "Failed to add penalty",
  "penalties.toast_applied": "-{points} {pointsName} from {childName}",
  "penalties.toast_apply_failed": "Failed to apply penalty",
  "penalties.toast_delete_failed": "Failed to delete penalty",
  "penalties.toast_save_failed": "Failed to save changes",
  "points_card.card_description": "A parent-friendly card to add or remove points from children",
  "points_card.card_name": "TaskMate Points Card",
  "points_card.default_title": "Manage Points",
  "points_card.dialog_add_title": "Add {pointsName}",
  "points_card.dialog_confirm_add": "Add",
  "points_card.dialog_confirm_remove": "Remove",
  "points_card.dialog_loading": "...",
  "points_card.dialog_points_helper": "Enter 1–100",
  "points_card.dialog_points_label": "Number of {pointsName}",
  "points_card.dialog_reason_label": "Reason (optional)",
  "points_card.dialog_reason_placeholder": "e.g., Great behavior, Helped a sibling...",
  "points_card.dialog_remove_title": "Remove {pointsName}",
  "points_card.dialog_subtitle": "for {childName}",
  "points_card.editor.add_buttons_helper": "Comma-separated amounts e.g. 1, 2, 5, 10, 25",
  "points_card.editor.add_buttons_label": "Add Points Buttons",
  "points_card.editor.entity_helper": "The TaskMate overview sensor entity",
  "points_card.editor.entity_label": "Entity",
  "points_card.editor.header_colour_helper": "Card header background colour",
  "points_card.editor.header_colour_label": "Header Colour",
  "points_card.editor.remove_buttons_helper": "Comma-separated amounts e.g. 1, 2, 5, 10, 25",
  "points_card.editor.remove_buttons_label": "Remove Points Buttons",
  "points_card.editor.show_dialog_label": "Show ⋯ button for custom amount with reason",
  "points_card.editor.title_label": "Title",
  "points_card.empty_subtitle": "Add children in TaskMate settings",
  "points_card.empty_title": "No Children Found",
  "points_card.notification_added": "Added {points} {pointsLabel} to {childName}",
  "points_card.notification_failed": "Failed: {message}",
  "points_card.notification_failed_action": "Failed to {action} points: {message}",
  "points_card.notification_quick": "{sign}{amount} {pointsName} for {childName}",
  "points_card.notification_removed": "Removed {points} {pointsLabel} from {childName}",
  "points_card.please_define_entity": "Please define an entity (taskmate overview sensor)",
  "points_card.quick_add_title": "Add {amount} {pointsName}",
  "points_card.quick_custom_title": "Custom amount",
  "points_card.quick_label_add": "+ {pointsName}",
  "points_card.quick_label_remove": "− {pointsName}",
  "points_card.quick_remove_title": "Remove {amount} {pointsName}",
  "points_card.validation_range": "Please enter a number between 1 and 100",
  "points_display.board_title": "Points Board",
  "points_display.card_description": "Kid-friendly display of points. Supports single child, all children, or combined family total.",
  "points_display.card_name": "TaskMate Points Display",
  "points_display.career_score_label": "Career Score",
  "points_display.combined_family_total": "Combined Family Total",
  "points_display.current_points_label": "Current Points",
  "points_display.default_title": "Points",
  "points_display.editor.appearance": "Appearance",
  "points_display.editor.child_id_note": "Save the entity first so children load automatically.",
  "points_display.editor.child_id_placeholder": "Enter child_id",
  "points_display.editor.child_label": "Child",
  "points_display.editor.display_mode": "Display Mode",
  "points_display.editor.entity_label": "TaskMate Entity",
  "points_display.editor.mode_cumulative": "∑ Combined",
  "points_display.editor.mode_label": "Mode",
  "points_display.editor.mode_multi": "👥 All Children",
  "points_display.editor.mode_single": "⭐ Single",
  "points_display.editor.primary_career_score": "🏆 Career Score",
  "points_display.editor.primary_current_points": "💰 Current Points",
  "points_display.editor.primary_display": "Primary Display",
  "points_display.editor.select_child": "— Select a child —",
  "points_display.editor.show_rank": "Rank medals",
  "points_display.editor.show_streak": "Streak",
  "points_display.editor.show_weekly": "This week's points",
  "points_display.editor.stats_to_show": "Stats to Show",
  "points_display.editor.title_placeholder": "(auto)",
  "points_display.empty_no_child": "No child selected or child not found.",
  "points_display.empty_no_children": "No children found in TaskMate data.",
  "points_display.empty_set_child_id": "Set child_id in the card editor.",
  "points_display.family_subtitle": "{count} children · all time",
  "points_display.family_title": "Family Points",
  "points_display.individual_scores": "Individual Scores",
  "points_display.mode_cumulative": "Combined",
  "points_display.mode_multi": "All Children",
  "points_display.mode_single": "Single",
  "points_display.points_label": "points",
  "points_display.rank": "Rank",
  "points_display.single_title": "{name}'s Points",
  "points_display.streak": "Streak",
  "points_display.streak_day": "{count} day",
  "points_display.streak_days": "{count} days",
  "points_display.this_week": "This Week",
  "points_display.total_points": "Total Points",
  "points_display.weekly_plus": "+{count} this week",
  "points_display.weekly_pts": "{count} pts",
  "reorder.add_chores_first": "Add chores to this child first",
  "reorder.card_description": "A card for reordering chores per child, organized by time category",
  "reorder.card_name": "TaskMate Reorder Card",
  "reorder.child_not_found": "Child not found: {child_id}",
  "reorder.chore_count": "{count} chore",
  "reorder.chore_count_plural": "{count} chores",
  "reorder.default_title": "Reorder Chores",
  "reorder.drag_to_reorder": "Drag to reorder",
  "reorder.editor.child": "Child",
  "reorder.editor.child_helper": "Which child to manage chore order for",
  "reorder.editor.select_child": "Select a child...",
  "reorder.error.child_id_required": "Please define a child_id",
  "reorder.error.entity_required": "Please define an entity (TaskMate overview sensor)",
  "reorder.move_down": "Move down",
  "reorder.move_up": "Move up",
  "reorder.no_chores_assigned": "No chores assigned",
  "reorder.notification.save_error_message": "Failed to save chore order: {error}",
  "reorder.notification.save_error_title": "Error Saving Order",
  "reorder.notification.save_success_message": "The chore order has been updated successfully.",
  "reorder.notification.save_success_title": "Chore Order Saved",
  "reorder.save_order": "Save Order",
  "reorder.saving": "Saving...",
  "reorder.unsaved_changes": "You have unsaved changes",
  "reward_progress.card_description": "Full-screen motivational reward progress display",
  "reward_progress.card_name": "TaskMate Reward Progress",
  "reward_progress.combined": "combined",
  "reward_progress.combined_points_pool": "Combined Points Pool",
  "reward_progress.default_title": "Reward Goal",
  "reward_progress.editor.child_filter_all": "All assigned children",
  "reward_progress.editor.child_helper": "Show only this child's progress",
  "reward_progress.editor.first_available": "First available reward",
  "reward_progress.editor.reward_helper": "Which reward to show progress for",
  "reward_progress.editor.reward_to_display": "Reward to display",
  "reward_progress.error.entity_required": "Please define an entity",
  "reward_progress.jackpot_reward": "Jackpot Reward",
  "reward_progress.more_needed": "{amount} more needed",
  "reward_progress.no_rewards": "No rewards found",
  "reward_progress.ready": "🎉 Ready!",
  "reward_progress.ready_to_claim": "Ready to claim!",
  "reward_progress.ready_to_claim_emoji": "🎉 Ready to claim!",
  "reward_progress.total_pool": "Total Pool",
  "reward_progress.unavailable": "TaskMate unavailable",
  "rewards.add_all": "All",
  "rewards.all_children": "All Children",
  "rewards.allocated": "Allocated",
  "rewards.awaiting_approval": "Awaiting parent approval",
  "rewards.card_description": "A card displaying available rewards with star costs",
  "rewards.card_name": "TaskMate Rewards Card",
  "rewards.claim_reward": "Claim reward",
  "rewards.confirm_body": "Claim {name}?",
  "rewards.confirm_claim_btn": "Claim!",
  "rewards.confirm_cost": "Cost",
  "rewards.confirm_pool_total": "Pool total",
  "rewards.confirm_remaining": "Remaining",
  "rewards.confirm_title": "Claim Reward?",
  "rewards.confirm_your_points": "Your {name}",
  "rewards.default_title": "Rewards",
  "rewards.deposit_custom_add": "Add",
  "rewards.deposit_custom_label": "Custom amount to deposit",
  "rewards.deposit_custom_placeholder": "Amount",
  "rewards.deposit_disabled_insufficient": "Not enough spendable ({spendable} available)",
  "rewards.deposit_disabled_loading": "Depositing…",
  "rewards.deposit_disabled_no_child": "Select a child to deposit",
  "rewards.deposit_points": "Deposit {amount}",
  "rewards.editor.enable_pool_mode": "Enable Pool Mode (Savings Jars)",
  "rewards.editor.enable_pool_mode_helper": "Each reward becomes a dedicated savings pool — children allocate points directly to a goal rather than spending from a global balance",
  "rewards.editor.expand_to_fit": "Expand card to fit all rewards",
  "rewards.editor.expand_to_fit_helper": "Grow the card to show every reward instead of scrolling a fixed-height list (designed styles only)",
  "rewards.editor.entity": "Entity",
  "rewards.editor.entity_helper": "The TaskMate overview sensor entity",
  "rewards.editor.filter_by_child": "Filter by Child",
  "rewards.editor.filter_by_child_all": "All Children",
  "rewards.editor.filter_by_child_helper": "Only show rewards available to this child (leave empty for all rewards)",
  "rewards.editor.show_child_badges": "Show child assignment badges",
  "rewards.editor.show_child_badges_helper": "Display which children can claim each reward",
  "rewards.editor.title": "Title",
  "rewards.editor.title_helper": "Card title displayed in the header (default: \"Rewards\")",
  "rewards.empty_subtitle": "Add rewards in TaskMate settings",
  "rewards.empty_title": "No Rewards Available",
  "rewards.error.entity_required": "Please define an entity (taskmate overview sensor)",
  "rewards.expired": "Expired",
  "rewards.expires_in_days": "Expires in {count} day",
  "rewards.expires_in_days_plural": "Expires in {count} days",
  "rewards.expires_today": "Expires today",
  "rewards.jackpot": "JACKPOT",
  "rewards.not_enough_points": "Not enough points",
  "rewards.only_n_left": "Only {count} left!",
  "rewards.pool_full": "Pool full!",
  "rewards.pool_locked_note": "Allocations are locked — they can only be spent on this goal",
  "rewards.redeem": "Redeem",
  "rewards.reward_count_plural": "{count} rewards",
  "rewards.reward_count_singular": "{count} reward",
  "rewards.sold_out": "Sold Out",
  "rewards.spendable_balance": "Spendable",
  "rewards.unavailable_hint": "This reward can no longer be claimed",
  "streak.achievement.fifty_desc": "Complete 50 chores",
  "streak.achievement.fifty_name": "50 Done",
  "streak.achievement.first_desc": "Complete your first chore",
  "streak.achievement.first_name": "First!",
  "streak.achievement.hundred_desc": "Complete 100 chores",
  "streak.achievement.hundred_name": "100 Done",
  "streak.achievement.points100_desc": "Earn 100 points total",
  "streak.achievement.points100_name": "100 ⭐",
  "streak.achievement.points50_desc": "Earn 50 points total",
  "streak.achievement.points50_name": "50 ⭐",
  "streak.achievement.streak14_desc": "14 day streak",
  "streak.achievement.streak14_name": "2 Weeks",
  "streak.achievement.streak30_desc": "30 day streak",
  "streak.achievement.streak30_name": "Month!",
  "streak.achievement.streak3_desc": "3 day streak",
  "streak.achievement.streak3_name": "3 Days",
  "streak.achievement.streak7_desc": "7 day streak",
  "streak.achievement.streak7_name": "Week!",
  "streak.achievement.ten_desc": "Complete 10 chores",
  "streak.achievement.ten_name": "10 Done",
  "streak.achievements": "Achievements",
  "streak.card_description": "Consecutive day streaks and milestone badges for each child",
  "streak.card_name": "TaskMate Streaks & Achievements",
  "streak.day_streak": "day streak",
  "streak.default_title": "Streaks & Achievements",
  "streak.editor.child_helper": "Show streak for a specific child only",
  "streak.editor.days_shown": "Days Shown in Bar",
  "streak.editor.days_shown_helper": "How many days of dots to show (default: 14)",
  "streak.editor.title": "Title",
  "streak.error.entity_required": "Please define an entity",
  "visibility.description_hidden": "Hidden by visibility condition",
  "visibility.description_shown": "Shown by visibility condition",
  "visibility.label_entity": "Visibility Entity",
  "visibility.label_operator": "Visibility Operator",
  "visibility.label_state": "Visibility State",
  "visibility.operator_equals": "Equals",
  "visibility.operator_gt": "Greater than (>)",
  "visibility.operator_gte": "Greater than or equal (≥)",
  "visibility.operator_lt": "Less than (<)",
  "visibility.operator_lte": "Less than or equal (≤)",
  "visibility.operator_not_equals": "Not Equal",
  "weekly.card_description": "Week at a glance — chores, points, and daily bar chart",
  "weekly.card_name": "TaskMate Weekly Summary",
  "weekly.child_chores": "{count} chores",
  "weekly.child_days": "{count}/7 days",
  "weekly.child_days_active_title": "{count} of 7 days active",
  "weekly.day_fri": "Fri",
  "weekly.day_mon": "Mon",
  "weekly.day_sat": "Sat",
  "weekly.day_sun": "Sun",
  "weekly.day_thu": "Thu",
  "weekly.day_tue": "Tue",
  "weekly.day_wed": "Wed",
  "weekly.default_title": "This Week",
  "weekly.editor.child_helper": "Show weekly summary for a specific child only",
  "weekly.editor.title": "Title",
  "weekly.error.entity_required": "Please define an entity",
  "weekly.section_children_this_week": "Children This Week",
  "weekly.section_chores_per_day": "Chores Per Day",
  "weekly.section_points_per_day": "Points Per Day",
  "weekly.stat_chores": "Chores",
  "weekly.stat_rewards": "Rewards",
  "weekly.stat_days_active": "Days Active",
  "notification.all_chores_done.description": "Celebration ping when a child finishes every chore for the day.",
  "notification.all_chores_done.name": "All chores done",
  "notification.badge_earned.description": "Sent when a child earns a new badge. Per-badge mute still applies.",
  "notification.badge_earned.name": "Badge earned",
  "notification.bedtime_reminder.description": "Pings the child if they have outstanding chores at the configured time.",
  "notification.bedtime_reminder.name": "Bedtime reminder",
  "notification.pending_chore_approval.description": "Sent to parents when a child marks a chore complete. Tap Approve or Reject from the notification.",
  "notification.pending_chore_approval.name": "Pending chore approval",
  "notification.pending_reward_claim.description": "Sent to parents when a child redeems a reward. Tap Approve or Reject from the notification.",
  "notification.pending_reward_claim.name": "Pending reward claim",
  "notification.streak_at_risk.description": "Fires when an active streak hasn't been extended yet today.",
  "notification.streak_at_risk.name": "Streak at risk",
  "notification.streak_milestone.description": "Celebrates each new streak milestone a child reaches (off by default).",
  "notification.streak_milestone.name": "Streak milestone",
  "panel.tp_label_placeholder": "Period name",
  "panel.tp_add_period": "Add period",
  "panel.tp_reset_defaults": "Reset to defaults",
  "panel.tp_delete_title": "Delete period",
  "panel.tp_in_use_title": "Used by {count} chore(s) — reassign them before deleting",
  "panel.tp_in_use_hint": "Used by {count} chore(s). Reassign them to another period to delete this one.",
  "panel.tp_anytime_hint": "Always available, all day. Built-in and cannot be removed.",
  "panel.tp_err_label_required": "Every custom period needs a name.",
  "panel.tp_err_time_required": "Set a start and end time for “{name}”.",
  "panel.tp_err_order": "“{name}” must start before it ends.",
  "panel.tp_err_empty": "Add at least one time period.",
  "panel.tp_err_overlap": "“{a}” overlaps “{b}” — periods cannot overlap.",
  "panel.settings_surprise_enabled_label": "Surprise bonuses",
  "panel.settings_surprise_enabled_hint": "Give each child a daily random chance of a surprise points bonus (rolled at 16:00).",
  "panel.settings_surprise_params_label": "Surprise bonus settings",
  "panel.settings_surprise_params_hint": "Daily chance per child, and the random points range awarded on a hit.",
  "panel.settings_surprise_chance": "Chance %",
  "panel.settings_surprise_min": "Min pts",
  "panel.settings_surprise_max": "Max pts",
  "panel.reward_restock_label": "Auto-restock",
  "panel.reward_restock_hint": "Periodically reset this reward's stock back to a set amount.",
  "panel.reward_restock_amount": "Restock to",
  "panel.reward_restock_period": "Restock every",
  "panel.reward_restock_daily": "Day",
  "panel.reward_restock_weekly": "Week (Mon)",
  "panel.reward_restock_monthly": "Month (1st)",
  "panel.chore_expires_label": "Expiry date (optional)",
  "panel.chore_expires_hint": "After this date the chore auto-disables. Leave blank for no expiry.",
  "panel.bulk_select": "Select",
  "panel.bulk_done": "Done",
  "panel.bulk_selected": "{count} selected",
  "panel.bulk_enable": "Enable",
  "panel.bulk_disable": "Disable",
  "panel.bulk_delete": "Delete",
  "panel.bulk_reassign_to": "Reassign to…",
  "panel.bulk_apply": "Apply",
  "panel.bulk_pick_target": "Pick who to reassign to first.",
  "panel.bulk_delete_confirm": "Delete {count} chore(s)? This cannot be undone.",
  "panel.bulk_done_toast": "{count} chore(s) updated",
  "panel.settings_decay_enabled_label": "Points decay",
  "panel.settings_decay_enabled_hint": "Periodically shrink each child's spendable balance to discourage hoarding.",
  "panel.settings_decay_params_label": "Points decay settings",
  "panel.settings_decay_params_hint": "How much of the balance to remove, and how often.",
  "panel.settings_decay_percent": "Decay %",
  "panel.settings_decay_period": "Every",
  "panel.gift_btn": "Gift points",
  "panel.gift_dialog_title": "Gift points",
  "panel.gift_from": "From",
  "panel.gift_to": "To",
  "panel.gift_amount": "Amount",
  "panel.gift_send": "Send gift",
  "panel.gift_sent": "Points gifted",
  "panel.gift_err_same": "Pick two different children.",
  "panel.gift_err_amount": "Enter an amount of at least 1.",
  "panel.settings_level_step_label": "XP per level",
  "panel.settings_level_step_hint": "Earned points needed to advance one level (XP = lifetime earned points).",
  "panel.child_stat_level": "Level",
  "notification.level_up.name": "Level up",
  "notification.level_up.description": "Celebrates when a child reaches a new XP level (off by default).",
  "child.level_label": "Lvl {level}",
  "panel.settings_spendcap_enabled_label": "Spending cap",
  "panel.settings_spendcap_enabled_hint": "Limit how many points each child can spend on rewards per period.",
  "panel.settings_spendcap_params_label": "Spending cap settings",
  "panel.settings_spendcap_params_hint": "Max points spendable per period (0 = no limit).",
  "panel.settings_spendcap_amount": "Cap (pts)",
  "panel.settings_interest_enabled_label": "Savings interest",
  "panel.settings_interest_enabled_hint": "Periodically pay each child interest on their spendable balance (rewards saving).",
  "panel.settings_interest_params_label": "Savings interest settings",
  "panel.settings_interest_percent": "Interest %",
  "panel.settings_interest_params_hint": "Interest rate applied to the balance, and how often.",
  "panel.chore_due_time_label": "Due time (optional)",
  "panel.chore_due_time_hint": "Completions at/before this time earn the early bonus; after it lose the late penalty.",
  "panel.chore_early_bonus_label": "Early bonus",
  "panel.chore_late_penalty_label": "Late penalty",
  "panel.chore_require_photo_label": "Require photo proof",
  "panel.chore_require_photo_hint": "Completions must be parent-approved; an evidence photo (if provided) shows in approvals.",
  "panel.activity_view_photo": "View photo",
  "panel.adjust_add": "Add",
  "panel.adjust_add_title": "Add {amount} {points} to {child}",
  "panel.adjust_amount": "Amount",
  "panel.adjust_custom_title": "Adjust {child}'s points by a custom amount",
  "panel.adjust_dialog_title": "Adjust points — {name}",
  "panel.adjust_done": "{sign}{amount} {points} for {child}",
  "panel.adjust_err_amount": "Enter an amount between 1 and 10000.",
  "panel.adjust_reason": "Reason (optional)",
  "panel.adjust_remove": "Remove",
  "panel.adjust_remove_title": "Remove {amount} {points} from {child}",
  "panel.swap_btn": "Request swap",
  "panel.swap_dialog_title": "Swap: {chore}",
  "panel.swap_requester": "Give today's turn to",
  "panel.swap_create": "Request swap",
  "panel.swap_pick_child": "Pick a child.",
  "panel.swap_requested": "Swap requested",
  "panel.swap_approved": "Swap approved",
  "panel.swap_rejected": "Swap rejected",
  "panel.swap_request_text": "{child} wants to do “{chore}” today",
  "panel.swap_from": "currently {name}",
  "notification.weekly_digest.name": "Weekly digest",
  "notification.weekly_digest.description": "A Sunday-evening summary of each child's week (chores + points). Off by default.",
  "panel.settings_celebration_notify_label": "Celebration notifications",
  "panel.settings_celebration_notify_hint": "Send a notification for big celebration moments (level-ups, streak milestones, perfect weeks). Off by default.",
  "panel.settings_celebration_tier_label": "Minimum celebration size",
  "panel.settings_celebration_tier_hint": "Only notify for moments at or above this size. Every celebration still fires a taskmate_celebration event for automations.",
  "panel.settings_celebration_tier_1": "All (small and up)",
  "panel.settings_celebration_tier_2": "Medium and up",
  "panel.settings_celebration_tier_3": "Epic only",
  "notification.celebration.name": "Celebration",
  "notification.celebration.description": "Big celebration moments — level-ups, streak milestones and perfect weeks. Off by default.",
  "panel.tab_quests": "Quests",
  "panel.quest_title": "Quests",
  "panel.search_quests": "Search quests…",
  "panel.btn_add_quest": "Add quest",
  "panel.quest_add_tile": "Add quest",
  "panel.quest_need_chores": "Create some chores first — a quest is a chain of existing chores.",
  "panel.empty_quests_title": "No quests yet",
  "panel.empty_quests_copy": "Chain chores together into a quest. Finish every step to earn a bonus.",
  "panel.entity_quest": "quest",
  "panel.quest_all_children": "All children",
  "panel.quest_missing_chore": "(deleted chore)",
  "panel.quest_badge_repeatable": "Repeatable",
  "panel.quest_badge_inactive": "Inactive",
  "panel.quest_stat_steps": "Steps",
  "panel.quest_stat_bonus": "Bonus {points_name}",
  "panel.quest_assigned_to": "For",
  "panel.dialog_add_quest": "Add quest",
  "panel.dialog_edit_quest": "Edit quest",
  "panel.quest_bonus_label": "Bonus {points_name}",
  "panel.quest_steps_label": "Steps (in order)",
  "panel.quest_steps_hint": "The child advances one step each time the chore at their current step is approved. Tap a chore below to add or remove it; use ▲▼ to reorder.",
  "panel.quest_no_steps": "No steps yet — tap a chore below to add the first step.",
  "panel.quest_assigned_label": "Assign to",
  "panel.quest_assigned_hint": "Leave all unselected to make this quest available to every child.",
  "panel.quest_repeatable_label": "Repeatable",
  "panel.quest_repeatable_hint": "When finished, progress resets so the child can run the quest again.",
  "panel.quest_active_label": "Active",
  "panel.quest_active_hint": "Inactive quests don't track progress or award bonuses.",
  "panel.quest_need_step": "Add at least one step.",
  "panel.toast_quest_added": "Quest added",
  "panel.toast_quest_updated": "Quest updated",
  "panel.settings_avatars_title": "Avatar unlockables",
  "panel.settings_avatars_label": "Manage avatars",
  "panel.settings_avatars_hint": "{count} avatars in the catalogue. Children unlock avatars by reaching levels, points or streaks, then pick their own.",
  "panel.settings_avatars_btn": "Manage avatars",
  "panel.avatar_dialog_title": "Avatar catalogue",
  "panel.avatar_dialog_hint": "Define the avatars children can earn. Each row needs an mdi icon and an unlock requirement. Children can switch to any avatar they've unlocked.",
  "panel.avatar_empty": "No avatars yet — add one below.",
  "panel.avatar_add_row": "Add avatar",
  "panel.avatar_label_ph": "Name (e.g. Rocket)",
  "panel.avatar_unlock_free": "Always available",
  "panel.avatar_unlock_level": "Reach level",
  "panel.avatar_unlock_points": "Total points earned",
  "panel.avatar_unlock_streak": "Best streak (days)",
  "panel.toast_avatars_saved": "Avatars saved",
  "child.avatar_change": "Change your avatar",
  "child.avatar_locked": "Locked",
  "child.avatar_change_failed": "Could not change avatar.",
  "panel.tab_challenges": "Challenges",
  "panel.challenge_title": "Challenges",
  "panel.search_challenges": "Search challenges…",
  "panel.btn_add_challenge": "Add challenge",
  "panel.challenge_add_tile": "Add challenge",
  "panel.empty_challenges_title": "No challenges yet",
  "panel.empty_challenges_copy": "Set a daily or weekly target — complete N chores or earn N points — for a bonus that refreshes each period.",
  "panel.entity_challenge": "challenge",
  "panel.challenge_scope_label": "Refreshes",
  "panel.challenge_scope_daily": "Daily",
  "panel.challenge_scope_weekly": "Weekly",
  "panel.challenge_metric_label": "Goal type",
  "panel.challenge_metric_chores": "Chores completed",
  "panel.challenge_metric_points": "{points_name} earned",
  "panel.challenge_target_label": "Target",
  "panel.challenge_target_hint": "How many to reach within the period.",
  "panel.dialog_add_challenge": "Add challenge",
  "panel.dialog_edit_challenge": "Edit challenge",
  "panel.toast_challenge_added": "Challenge added",
  "panel.toast_challenge_updated": "Challenge updated",
  "panel.settings_allow_negative_label": "Allow negative balance",
  "panel.settings_allow_negative_hint": "Let penalties take a child's balance below zero instead of stopping at zero.",
  "panel.chore_depends_label": "Depends on",
  "panel.chore_depends_hint": "This chore stays hidden until the selected chores are approved for the child today.",
  "panel.notif_quiet_hours_label": "Quiet hours",
  "panel.notif_quiet_hours_desc": "No reminders are sent to this child during this window (do-not-disturb). Leave blank to disable.",
  "notification.mandatory_reminder.name": "Mandatory chore reminder",
  "notification.mandatory_reminder.description": "Nudges the child when a mandatory chore is overdue, then reminds again after the escalation delay. Off by default.",
  "notification.mandatory_parent_alert.name": "Mandatory chore parent alert",
  "notification.mandatory_parent_alert.description": "Alerts a parent when a mandatory chore is still incomplete after the parent escalation delay. Off by default.",
  "panel.notif_escalation_reminder_label": "Remind again after",
  "panel.notif_escalation_parent_label": "Alert parent after",
  "panel.notif_escalation_minutes_suffix": "min",
  "notification.monthly_report.name": "Monthly report",
  "notification.monthly_report.description": "A start-of-month recap of each child's previous month (chores, points, level, best streak). Off by default.",
  "leaderboard.sort_this_month": "This Month",
  "leaderboard.last_champion": "Last month's champion: {name} 🏆",
  "notification.season_champion.name": "Season champion",
  "notification.season_champion.description": "Announces the monthly leaderboard winner at the start of each month. Off by default.",
  "panel.ics_title": "Calendar subscription",
  "panel.ics_hint": "Subscribe to upcoming chores from Google/Apple/Outlook calendar. The link contains a private token — share it carefully.",
  "panel.ics_show": "Show subscribe link",
  "panel.ics_copy": "Copy",
  "panel.ics_regenerate": "Regenerate link",
  "panel.ics_copied": "Subscribe link copied",
  "panel.ics_regenerated": "New link generated — old subscriptions stopped",
  "gallery.default_title": "Photo gallery",
  "gallery.empty": "No evidence photos yet",
  "gallery.pending": "pending",
  "panel.allowance_title": "Allowance",
  "panel.allowance_hint": "Convert points to a real-money allowance. Record payouts via the record_allowance_payout service or a dashboard button.",
  "panel.allowance_enabled": "Enable allowance payouts",
  "panel.allowance_rate": "Points per unit",
  "panel.allowance_rate_hint": "How many points equal one unit of currency.",
  "panel.allowance_currency": "Currency symbol",
  "panel.allowance_ledger": "Recent payouts",
  "family_goal.default_title": "Family goal",
  "family_goal.disabled": "No family goal set",
  "family_goal.reward_label": "Reward: {reward}",
  "family_goal.reached": "Goal reached! {reward}",
  "panel.family_goal_title": "Family goal",
  "panel.family_goal_hint": "A shared target across all children's combined points (e.g. everyone hits 500 → family movie night).",
  "panel.family_goal_enabled": "Enable family goal",
  "panel.family_goal_name": "Goal name",
  "panel.family_goal_name_ph": "Movie night fund",
  "panel.family_goal_target": "Target (combined points)",
  "panel.family_goal_target_hint": "Sum of all children's points needed to reach the goal.",
  "panel.family_goal_reward": "Reward",
  "panel.family_goal_reward_ph": "a family movie night",
  "notification.family_goal_reached.name": "Family goal reached",
  "notification.family_goal_reached.description": "Celebrates when the family's combined points reach the shared goal. Off by default.",
  "panel.chore_advanced_weather": "Advanced — weather conditions",
  "panel.chore_weather_intro": "Hide this chore while the weather is unsuitable. Useful for outdoor jobs — a rained-off chore doesn't count as a mandatory miss and won't break a streak.",
  "panel.chore_weather_entity_label": "Weather entity",
  "panel.chore_weather_entity_hint": "Leave empty to ignore the weather entirely.",
  "panel.chore_weather_conditions_label": "Hide when the weather is",
  "panel.chore_weather_conditions_hint": "Pick any conditions that should hide the chore.",
  "panel.chore_weather_temp_min_label": "Minimum temperature",
  "panel.chore_weather_temp_min_hint": "Hide below this. Leave empty for no limit.",
  "panel.chore_weather_temp_max_label": "Maximum temperature",
  "panel.chore_weather_temp_max_hint": "Hide above this. Leave empty for no limit.",
  "panel.chore_weather_wind_max_label": "Maximum wind speed",
  "panel.chore_weather_wind_max_hint": "Hide above this. Leave empty for no limit.",
  "panel.chore_weather_failopen_hint": "Limits use whatever units your weather entity reports. If the entity is missing or unavailable, the chore stays visible.",
  "weather.blocked_condition": "Hidden — unsuitable weather",
  "weather.blocked_temp_low": "Hidden — too cold",
  "weather.blocked_temp_high": "Hidden — too hot",
  "weather.blocked_wind": "Hidden — too windy",
  "weather.condition_rainy": "Rainy",
  "weather.condition_pouring": "Pouring",
  "weather.condition_snowy": "Snowy",
  "weather.condition_snowy_rainy": "Sleet",
  "weather.condition_hail": "Hail",
  "weather.condition_lightning": "Lightning",
  "weather.condition_lightning_rainy": "Thunderstorm",
  "weather.condition_fog": "Fog",
  "weather.condition_windy": "Windy",
  "weather.condition_windy_variant": "Very windy",
  "weather.condition_cloudy": "Cloudy",
  "weather.condition_exceptional": "Severe",
  "child.deadline_minutes": "{mins} min left",
  "child.deadline_hours": "{hours}h {mins}m left",
  "child.deadline_title": "Do this before the time runs out",
  "panel.chore_advanced_scheduled": "Advanced — scheduled changes",
  "panel.chore_scheduled_intro": "Queue a change to take effect on a future date — \"from 1 September this is worth 20 points\". Applied at midnight; if Home Assistant was off, it catches up on the next start.",
  "panel.chore_scheduled_none": "No changes queued.",
  "panel.chore_scheduled_history": "Already applied",
  "panel.chore_scheduled_applied": "Applied",
  "panel.sched_date_label": "Apply on",
  "panel.sched_field_label": "Change",
  "panel.sched_value_label": "New value",
  "panel.sched_note_label": "Note (optional)",
  "panel.sched_note_hint": "A reminder of why, shown beside the queued change.",
  "panel.btn_add_scheduled": "Queue change",
  "panel.sched_value_yes": "Yes",
  "panel.sched_value_no": "No",
  "panel.sched_value_nobody": "Nobody",
  "panel.toast_sched_added": "Change queued",
  "panel.toast_sched_removed": "Change removed",
  "panel.toast_sched_date_required": "Pick a date for the change",
  "panel.toast_sched_value_required": "Enter a value for the change",
  "panel.sched_field_points": "Points",
  "panel.sched_field_assigned_to": "Assigned to",
  "panel.sched_field_enabled": "Enabled",
  "panel.sched_field_requires_approval": "Requires approval",
  "panel.sched_field_daily_limit": "Daily limit",
  "panel.sched_field_due_days": "Days",
  "panel.sched_field_mandatory": "Mandatory",
  "panel.sched_field_mandatory_penalty_points": "Penalty points",
  "panel.sched_field_expires_on": "Expires on",
  "panel.sched_field_description": "Description",
  "panel.sched_field_time_category": "Time of day",
  "panel.sched_field_difficulty": "Difficulty",
  "routine.title": "{name}'s routine",
  "routine.no_child": "Pick a child for this card.",
  "routine.task_of": "Task {current} of {total}",
  "routine.all_done_count": "All {total} done",
  "routine.done": "Done ✓",
  "routine.completed": "Completed",
  "routine.sent_for_checking": "Sent for checking",
  "routine.skip": "Skip for now",
  "routine.next": "Next →",
  "routine.back": "← Back",
  "routine.waiting_for_parent": "⏳ Waiting for a grown-up to check",
  "routine.photo_note": "This one needs a photo — tap it on your card.",
  "routine.finished_title": "Routine done!",
  "routine.finished_body": "Nice one, {name}. That's everything.",
  "routine.earned": "+{points} earned",
  "routine.awaiting_points": "+{points} once a grown-up checks",
  "routine.skipped_note": "{count} left for later.",
  "routine.start_again": "Start again",
  "routine.empty_title": "Nothing to do",
  "routine.empty_body": "This routine is already finished.",
  "child.roulette_spin": "Spin for a ×{multiplier} chore",
  "child.roulette_respin": "Spin again ({count} left)",
  "child.roulette_no_spins": "No spins left today",
  "panel.settings_roulette_section": "Chore roulette",
  "panel.settings_roulette_enabled": "Enable chore roulette",
  "panel.settings_roulette_enabled_hint": "Lets a child spin for a random outstanding chore worth extra points.",
  "panel.settings_roulette_multiplier": "Points multiplier",
  "panel.settings_roulette_spins": "Spins per day",
  "panel.settings_unlock_allowlist": "Unlock allowlist",
  "panel.settings_unlock_allowlist_hint": "Only these entities may be unlocked by a reward. Nothing is allowed until you add something here.",
  "panel.settings_unlock_allowlist_empty": "Nothing allowed yet.",
  "panel.settings_unlock_allowlist_add": "Search for an entity to allow",
  "panel.reward_unlock_section": "Advanced — timed unlock",
  "panel.reward_unlock_intro": "Turn something on when this reward is approved, and back off again after a set time.",
  "panel.reward_unlock_none": "Nothing",
  "panel.reward_unlock_entity": "Unlock",
  "panel.reward_unlock_minutes": "For how long (minutes)",
  "panel.reward_unlock_minutes_hint": "0 = leave it on; you'll need to turn it off yourself.",
  "panel.reward_unlock_no_allowlist": "Add an entity to the unlock allowlist in Settings first.",
  "panel.tab_insights": "Insights",
  "panel.insights_loading": "Working it out…",
  "panel.insights_fairness_title": "Who's doing the work?",
  "panel.insights_fairness_intro": "{start} to {end}. An even split would be {fair}% each.",
  "panel.insights_last_days": "Last {days} days",
  "panel.insights_no_data": "No approved chores in this period yet.",
  "panel.insights_balanced": "Looks fairly balanced.",
  "panel.insights_unbalanced": "The workload is uneven.",
  "panel.insights_chores": "chores",
  "panel.insights_status_over": "Doing more",
  "panel.insights_status_under": "Doing less",
  "panel.insights_status_balanced": "Balanced",
  "panel.insights_status_idle": "Nothing yet",
  "panel.insights_fairness_note": "Judged on chore count, not points, so a pricier chore doesn't hide an uneven split. Flagged when a child is more than {tolerance} points off an even share.",
  "panel.insights_chore": "chore",
  "panel.insights_view_fairness": "Fairness",
  "panel.insights_view_friction": "Friction",
  "panel.insights_friction_title": "What isn't working?",
  "panel.insights_friction_intro": "{start} to {end}. Chores are judged on how often they actually get done versus how often they came up.",
  "panel.insights_friction_none": "No active chores to look at.",
  "panel.insights_friction_healthy": "Everything is getting done.",
  "panel.insights_friction_problems": "{count} chore(s) worth a look.",
  "panel.insights_col_chore": "Chore",
  "panel.insights_col_done": "Done",
  "panel.insights_col_rate": "Rate",
  "panel.insights_col_last": "Last done",
  "panel.insights_col_verdict": "Verdict",
  "panel.insights_col_suggestion": "Try",
  "panel.insights_never": "Never",
  "panel.insights_days_ago": "{days}d ago",
  "panel.insights_verdict_never": "Never done",
  "panel.insights_verdict_stalling": "Stalling",
  "panel.insights_verdict_struggling": "Patchy",
  "panel.insights_verdict_fine": "Fine",
  "panel.insights_verdict_unknown": "Unclear",
  "panel.insights_suggest_retire": "Retire it",
  "panel.insights_suggest_reprice": "Raise the points",
  "panel.insights_suggest_reassign": "Give it to someone else",
  "panel.insights_suggest_keep": "Leave it alone",
  "panel.insights_outstanding_misses": "Outstanding mandatory misses",
  "panel.insights_friction_note": "Rejections aren't listed: TaskMate deletes a completion when you reject it, so there's no rejection history to count. Expected counts are approximate — they don't replay rotation, dependencies or weather.",
  "panel.insights_view_projection": "Week ahead",
  "panel.insights_projection_title": "What's coming up?",
  "panel.insights_projection_intro": "{start} to {end}, based on each chore's schedule.",
  "panel.insights_next_days": "Next {days} days",
  "panel.insights_col_day": "Day",
  "panel.insights_projected_earn": "up to {points} {name}",
  "panel.insights_projected_total": "would reach {total}",
  "panel.insights_projection_unassigned": "{points} points aren't assigned to anyone.",
  "panel.insights_projection_note": "A ceiling, not a forecast: chores open to everyone are counted for each eligible child, since the schedule can't know who'll get there first. Weather, dependencies and availability aren't projected — they depend on the day.",
  "panel.insights_view_health": "Health",
  "panel.health_title": "Is anything broken?",
  "panel.health_recheck": "Check again",
  "panel.health_all_good": "Nothing wrong found.",
  "panel.health_issues": "{count} thing(s) need attention.",
  "panel.health_sev_error": "Error",
  "panel.health_sev_warning": "Warning",
  "panel.health_sev_info": "Note",
  "panel.health_goto": "Show me",
  "panel.health_count_children": "Children",
  "panel.health_count_chores": "Chores",
  "panel.health_count_enabled_chores": "Active",
  "panel.health_count_rewards": "Rewards",
  "panel.health_count_completions": "Completions",
  "panel.health_count_badges": "Badges",
  "panel.health_count_scheduled_changes": "Scheduled",
  "panel.health_count_active_unlocks": "Unlocks",
  "panel.health_count_mandatory_misses": "Misses",
  "panel.health_count_storage": "Storage",
  "panel.chore_icon_label": "Picture",
  "panel.chore_image_label": "Picture",
  "panel.chore_image_hint": "A photo shown instead of the icon. Resized to 512px on upload.",
  "panel.chore_image_upload": "Upload",
  "panel.chore_image_remove": "Remove",
  "panel.chore_image_empty": "No picture",
  "panel.chore_image_uploading": "Uploading…",
  "panel.chore_image_failed": "Upload failed",
  "panel.chore_image_too_large": "That image is too large (max 2 MB).",
  "panel.chore_image_bad_type": "Choose a JPEG, PNG or WebP image.",
  "child.editor.pre_reader": "Picture-only mode (for young children)",
  "child.editor.pre_reader_labels": "Show names in picture mode",
  "child.editor.pre_reader_points": "Show point values instead of stars in picture mode",
  "common.design.accessible": "Accessible"
}
