{"version":3,"file":"HelperFoundation.BGiGGbs8.mjs","names":["React.useState","React.useRef","_Fragment","React.useCallback","React.Fragment"],"sources":["https:/framerusercontent.com/modules/DGKTajc4kfkwyQo8phwq/8wk8jnrCQ3NMJUgzYkaF/HelperFoundation.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";const PLAYBOOK_URL=\"/kak-snyat-kvartiru-v-barselone\";const LOCALE_KEY=\"brp.ui.locale\";const UK_TRANSLATIONS={\"Аренда для постоянного проживания\":\"Оренда для постійного проживання\",\"Аренда для временного проживания\":\"Оренда для тимчасового проживання\",\"Обязательный залог\":\"Обов’язкова застава\",\"Дополнительная гарантия\":\"Додаткова гарантія\",\"Платеж за резервирование\":\"Платіж за резервування\",\"Комиссия агентства\":\"Комісія агентства\",\"НДС\":\"ПДВ\",\"Страховка от неуплаты аренды\":\"Страхування від несплати оренди\",\"Расчетный лист\":\"Розрахунковий лист\",\"Акт приема-передачи\":\"Акт приймання-передачі\",\"Помощник по аренде\":\"Помічник з оренди\",\"Пакет документов\":\"Пакет документів\",\"Презентация арендатора\":\"Презентація орендаря\",\"Бюджет заселения\":\"Бюджет заселення\",\"Собрать список под вашу ситуацию\":\"Зібрати список відповідно до вашої ситуації\",\"Рассчитать сумму на заселение\":\"Розрахувати суму для заселення\",\"Открыть Помощник\":\"Відкрити Помічник\",\"Показать подробности ↓\":\"Показати подробиці ↓\",\"Рассчитать бюджет заселения\":\"Розрахувати бюджет заселення\",\"Создать презентацию арендатора\":\"Створити презентацію орендаря\",\"Собрать пакет документов\":\"Зібрати пакет документів\",\"Открыть Помощник по аренде\":\"Відкрити Помічник з оренди\",\"Оставить обратную связь\":\"Залишити відгук\",\"Скрыть подробности ↑\":\"Сховати подробиці ↑\",\"Закрыть\":\"Закрити\",\"Открыть пакет\":\"Відкрити пакет\",\"Открыть конструктор\":\"Відкрити конструктор\",\"Открыть калькулятор\":\"Відкрити калькулятор\",\"Не начато\":\"Не розпочато\",\"В процессе\":\"У процесі\",\"Готово\":\"Готово\",\"Нужно проверить\":\"Потрібно перевірити\",\"← Вернуться к руководству\":\"← Повернутися до посібника\",\"← Вернуться в помощник\":\"← Повернутися до Помічника\",\"← Вернуться к результату\":\"← Повернутися до результату\",\"Вернуться к руководству\":\"Повернутися до посібника\",\"Вернуться в помощник\":\"Повернутися до Помічника\",\"Вернуться к результату\":\"Повернутися до результату\",\"Отправляем…\":\"Надсилаємо…\",\"Отправить обратную связь\":\"Надіслати відгук\",\"Сбросить данные\":\"Скинути дані\",\"Загрузка\":\"Завантаження\",\"← Руководство\":\"← Посібник\",\"Обновить страницу\":\"Оновити сторінку\",\"Начать заново\":\"Почати спочатку\",\"Сохраняем…\":\"Зберігаємо…\",\"Открыть Помощник →\":\"Відкрити Помічник →\",\"Изменить исходные данные\":\"Змінити вихідні дані\",\"Рассчитать бюджет\":\"Розрахувати бюджет\",\"Проверить пакет\":\"Перевірити пакет\",\"Продолжить\":\"Продовжити\",\"Создаем…\":\"Створюємо…\",\"Создать презентацию\":\"Створити презентацію\",\"Изменить данные\":\"Змінити дані\",\"PDF готов\":\"PDF готовий\",\"Предпросмотр\":\"Попередній перегляд\",\"Скачать PDF\":\"Завантажити PDF\",\"Обновить презентацию\":\"Оновити презентацію\",\"Продолжить подготовку документов\":\"Продовжити підготовку документів\",\"Удалить фотографию\":\"Видалити фотографію\",\"Проверить данные\":\"Перевірити дані\",\"Сохраненный результат\":\"Збережений результат\",\"Пересчитать бюджет\":\"Перерахувати бюджет\",\"Расчет готов\":\"Розрахунок готовий\",\"Открыть презентацию\":\"Відкрити презентацію\",\"Открыть расчет бюджета\":\"Відкрити розрахунок бюджету\",\"Продолжить заполнение\":\"Продовжити заповнення\",\"Продолжить расчет\":\"Продовжити розрахунок\",\"Независимые практические материалы об аренде жилья в Барселоне.\":\"Незалежні практичні матеріали про оренду житла в Барселоні.\",\"Email unlock — Помощник по аренде\":\"Доступ через email — Помічник з оренди\",\"Пакет документов — Помощник по аренде\":\"Пакет документів — Помічник з оренди\",\"Презентация арендатора — Помощник по аренде\":\"Презентація орендаря — Помічник з оренди\",\"Бюджет заселения — Помощник по аренде\":\"Бюджет заселення — Помічник з оренди\",\"Восстановление данных — Помощник по аренде\":\"Відновлення даних — Помічник з оренди\",\"Соберите понятный список документов под вашу ситуацию.\":\"Складіть зрозумілий список документів відповідно до вашої ситуації.\",\"Подготовьте краткую презентацию для собственника или агента.\":\"Підготуйте коротку презентацію для власника або агента.\",\"Разложите сумму на входе по категориям и проверьте условия.\":\"Розподіліть суму для заселення за категоріями та перевірте умови.\",\"Работа по трудовому договору в Испании\":\"Робота за трудовим договором в Іспанії\",\"Aut\\xf3nomo в Испании\":\"Aut\\xf3nomo в Іспанії\",\"Владелец / руководитель компании в Испании\":\"Власник / керівник компанії в Іспанії\",\"Работа по трудовому договору за пределами Испании\":\"Робота за трудовим договором за межами Іспанії\",\"Другой иностранный или предпринимательский доход\":\"Інший іноземний або підприємницький дохід\",\"Нет собственного дохода\":\"Немає власного доходу\",\"Трудовой договор (contrato de trabajo)\":\"Трудовий договір (contrato de trabajo)\",\"3 последние расчетные листы (n\\xf3minas)\":\"3 останні розрахункові листи (n\\xf3minas)\",\"Последняя налоговая декларация (Declaraci\\xf3n de la Renta / Modelo 100)\":\"Остання податкова декларація (Declaraci\\xf3n de la Renta / Modelo 100)\",\"Банковская выписка с поступлениями зарплаты\":\"Банківська виписка з надходженнями заробітної плати\",\"Подтверждение статуса aut\\xf3nomo\":\"Підтвердження статусу aut\\xf3nomo\",\"Последние применимые квартальные налоговые декларации\":\"Останні квартальні податкові декларації, які застосовуються у вашому випадку\",\"Последняя налоговая декларация (Modelo 100)\":\"Остання податкова декларація (Modelo 100)\",\"Банковская выписка с регулярными поступлениями\":\"Банківська виписка з регулярними надходженнями\",\"Подтверждение сбережений для усиления профиля\":\"Підтвердження заощаджень для посилення профілю\",\"Последняя личная налоговая декларация (Modelo 100)\":\"Остання особиста податкова декларація (Modelo 100)\",\"Документ, подтверждающий роль в компании\":\"Документ, що підтверджує роль у компанії\",\"Документы компании, если они помогают объяснить источник личного дохода\":\"Документи компанії, якщо вони допомагають пояснити джерело особистого доходу\",\"Трудовой договор или справка работодателя\":\"Трудовий договір або довідка від роботодавця\",\"Последние расчетные листы\":\"Останні розрахункові листи\",\"Банковская выписка с поступлениями\":\"Банківська виписка з надходженнями\",\"Налоговая декларация\":\"Податкова декларація\",\"Письмо работодателя\":\"Лист від роботодавця\",\"Подтверждение сбережений\":\"Підтвердження заощаджень\",\"Документ, объясняющий источник дохода\":\"Документ, що пояснює джерело доходу\",\"Договоры, счета или другие подтверждения начислений\":\"Договори, рахунки або інші підтвердження нарахувань\",\"Банковское подтверждение поступлений\":\"Банківське підтвердження надходжень\",\"Дополнительные договоры или счета\":\"Додаткові договори або рахунки\",\"Документы компании, если они объясняют личный доход\":\"Документи компанії, якщо вони пояснюють особистий дохід\",\"Документ, удостоверяющий личность\":\"Документ, що посвідчує особу\",\"Арендатор ${adultIndex + 1}\":\"Орендар ${adultIndex + 1}\",\"Расчетные листы (n\\xf3minas)\":\"Розрахункові листи (n\\xf3minas)\",\"Банковские поступления зарплаты\":\"Банківські надходження заробітної плати\",\"Документ о начислении / распределении дивидендов\":\"Документ про нарахування / розподіл дивідендів\",\"Банковская выписка с поступлением дивидендов\":\"Банківська виписка з надходженням дивідендів\",\"Подтверждение временной причины и предполагаемого срока\":\"Підтвердження тимчасової причини та передбачуваного строку\",\"Подтверждение постоянного адреса вне арендуемой квартиры\":\"Підтвердження постійної адреси, відмінної від адреси орендованої квартири\",\"Временная аренда\":\"Тимчасова оренда\",\"Предыдущий договор аренды\":\"Попередній договір оренди\",\"Подтверждение своевременных платежей\":\"Підтвердження своєчасних платежів\",\"Рекомендация или контакт предыдущего собственника\":\"Рекомендація або контакт попереднього власника\",\"История аренды\":\"Історія оренди\",\"Например: договор с клиентом, письмо работодателя, документы компании или пояснение бухгалтера - в зависимости от вашего источника дохода.\":\"Наприклад: договір із клієнтом, лист від роботодавця, документи компанії або пояснення бухгалтера — залежно від вашого джерела доходу.\",\"Например: рабочий или учебный договор, письмо от работодателя или учебного заведения, где указаны причина и период пребывания.\":\"Наприклад: робочий або навчальний договір, лист від роботодавця чи навчального закладу, де вказані причина та період перебування.\",\"Например: действующий договор аренды, подтверждение регистрации по адресу, счет за коммунальные услуги или документ о собственности по постоянному адресу.\":\"Наприклад: чинний договір оренди, підтвердження реєстрації за адресою, рахунок за комунальні послуги або документ про право власності за постійною адресою.\",\"Например: решение или протокол компании о распределении дивидендов.\":\"Наприклад: рішення або протокол компанії про розподіл дивідендів.\",\"1 взрослый\":\"1 дорослий\",\"${adults} взрослых\":\"${adults} дорослих\",\"${occupantNames.length} взрослых\":\"${occupantNames.length} дорослих\",'Проживающие: ${input.occupant_names.filter(Boolean).join(\", \")}':'Мешканці: ${input.occupant_names.filter(Boolean).join(\", \")}','Тип аренды: ${input.rental_type === habitual\" ? \"постоянное проживание\" : input.rental_type === \"temporada\" ? \"временная аренда\" : \"рассматриваю оба варианта\"}\"':'Тип оренди: ${input.rental_type === habitual\" ? \"постійне проживання\" : input.rental_type === \"temporada\" ? \"тимчасова оренда\" : \"розглядаю обидва варіанти\"}\"',\"постоянное проживание\":\"постійне проживання\",\"временная аренда\":\"тимчасова оренда\",\"рассматриваю оба варианта\":\"розглядаю обидва варіанти\",\"Заселение: ${input.move_in}; срок: ${input.term}\":\"Заселення: ${input.move_in}; строк: ${input.term}\",\"Арендатор ${i + 1}: ${v}\":\"Орендар ${i + 1}: ${v}\",\"Подтверждение дохода: ${input.income_confirmation}\":\"Підтвердження доходу: ${input.income_confirmation}\",'Питомец: ${input.has_pet === yes\" ? input.pet_details || \"есть\" : \"нет\"}\"':'Домашня тварина: ${input.has_pet === yes\" ? input.pet_details || \"є\" : \"немає\"}\"',\"есть\":\"є\",\"нет\":\"немає\",\"Причина временной аренды: ${input.temporada_reason}\":\"Причина тимчасової оренди: ${input.temporada_reason}\",\"Доход: ${input.income_amount}\":\"Дохід: ${input.income_amount}\",\"Сбережения: ${input.savings}\":\"Заощадження: ${input.savings}\",\"Причина переезда: ${input.habitual_reason}\":\"Причина переїзду: ${input.habitual_reason}\",\"Дополнительно: ${input.additional_info}\":\"Додатково: ${input.additional_info}\",\"Только готовлюсь к поиску\":\"Лише готуюся до пошуку\",\"Активно ищу квартиру\":\"Активно шукаю квартиру\",\"Уже хожу на просмотры / подаю документы\":\"Уже ходжу на перегляди / подаю документи\",\"Прохожу проверку / согласование\":\"Проходжу перевірку / погодження\",\"Уже снял(а) квартиру\":\"Уже орендував(-ла) квартиру\",\"Видеть новые подходящие квартиры из разных источников в одном месте\":\"Бачити нові відповідні квартири з різних джерел в одному місці\",\"Получать подбор квартир под мои критерии\":\"Отримувати добірку квартир за моїми критеріями\",\"Получить стратегию поиска: где искать, как действовать и на чем сосредоточиться\":\"Отримати стратегію пошуку: де шукати, як діяти та на чому зосередитися\",\"Подготовить сильный пакет документов и понять, как лучше представить свой профиль\":\"Підготувати сильний пакет документів і зрозуміти, як краще представити свій профіль\",\"Получать помощь с перепиской и общением с агентами и собственниками\":\"Отримувати допомогу з листуванням і спілкуванням з агентами та власниками\",\"Проверять условия, договор и платежи перед подписанием\":\"Перевіряти умови, договір і платежі перед підписанням\",\"Получать сопровождение всего процесса поиска\":\"Отримувати супровід усього процесу пошуку\",\"Другое\":\"Інше\",\"Сейчас дополнительная помощь мне не нужна\":\"Зараз додаткова допомога мені не потрібна\",\"Выберите этап поиска.\":\"Оберіть етап пошуку.\",\"Расскажите, что сейчас самое сложное.\":\"Розкажіть, що зараз найскладніше.\",\"Не более 2000 символов.\":\"Не більше 2000 символів.\",\"Выберите до 2 вариантов.\":\"Оберіть до 2 варіантів.\",\"Уточните, какая помощь вам нужна.\":\"Уточніть, яка допомога вам потрібна.\",\"Не более 500 символов.\":\"Не більше 500 символів.\",\"Не удалось подтвердить отправку. Ответы остались в форме — попробуйте ещё раз.\":\"Не вдалося підтвердити надсилання. Відповіді залишилися у формі — спробуйте ще раз.\",\"Спасибо — ответ получен.\":\"Дякуємо — відповідь отримано.\",\"Я использую эти ответы, чтобы понять, что действительно нужно людям в поиске аренды и что стоит развивать дальше.\":\"Я використовую ці відповіді, щоб зрозуміти, що справді потрібно людям під час пошуку житла в оренду та що варто розвивати далі.\",\"Что ещё помогло бы вам в поиске квартиры?\":\"Що ще допомогло б вам у пошуку квартири?\",\"3 коротких вопроса \\xb7 около 1 минуты\":\"3 короткі запитання \\xb7 близько 1 хвилини\",\"На каком этапе поиска квартиры вы сейчас?\":\"На якому етапі пошуку квартири ви зараз?\",\"Что сейчас для вас самое сложное в поиске квартиры?\":\"Що зараз для вас найскладніше в пошуку квартири?\",\"Напишите своими словами, где вы сейчас больше всего застряли или что отнимает больше всего времени и сил.\":\"Напишіть своїми словами, де ви зараз найбільше застрягли або що забирає найбільше часу та сил.\",\"Пожалуйста, не указывайте в ответе личные данные, документы, телефоны или другую чувствительную информацию.\":\"Будь ласка, не вказуйте у відповіді особисті дані, документи, телефони чи іншу конфіденційну інформацію.\",\"Какая помощь была бы для вас наиболее полезна сейчас?\":\"Яка допомога була б для вас найкориснішою зараз?\",\"Можно выбрать до 2 вариантов.\":\"Можна обрати до 2 варіантів.\",\"Какая другая помощь вам нужна?\":\"Яка інша допомога вам потрібна?\",\"Ответ будет передан автору проекта и сохранён в Cloudflare D1 на 6 месяцев для изучения потребностей пользователей. Email не запрашивается; отзыв не связывается с email, идентификатором устройства или данными ваших инструментов.\":\"Відповідь буде передана автору проєкту та збережена в Cloudflare D1 на 6 місяців для вивчення потреб користувачів. Email не запитується; відгук не пов’язується з email, ідентифікатором пристрою чи даними ваших інструментів.\",\"Введите корректный email.\":\"Введіть коректний email.\",\"Не удалось сохранить email. Данные не потеряны — попробуйте еще раз.\":\"Не вдалося зберегти email. Дані не втрачено — спробуйте ще раз.\",\"Выберите хотя бы один способ подтверждения дохода для каждого арендатора.\":\"Оберіть принаймні один спосіб підтвердження доходу для кожного орендаря.\",\"Для владельца или руководителя компании укажите, как формируется личный доход.\":\"Для власника або керівника компанії вкажіть, як формується особистий дохід.\",\"Укажите ежемесячную аренду больше 0 €.\":\"Вкажіть щомісячну орендну плату понад 0 €.\",\"Укажите количество месяцев залогов и гарантий. Если их нет, укажите 0.\":\"Вкажіть кількість місяців застав і гарантій. Якщо їх немає, вкажіть 0.\",\"Укажите, сколько месяцев аренды оплачивается при заселении.\":\"Вкажіть, за скільки місяців оренда оплачується під час заселення.\",\"Укажите размер комиссии агентства.\":\"Вкажіть розмір комісії агентства.\",\"Укажите срок договора для расчета процентной комиссии.\":\"Вкажіть строк договору для розрахунку відсоткової комісії.\",\"${nextCount} взрослых\":\"${nextCount} дорослих\",\"Укажите имя.\":\"Вкажіть ім’я.\",\"Введите имя латиницей, чтобы оно корректно отображалось в PDF.\":\"Введіть ім’я латиницею, щоб воно коректно відображалося в PDF.\",\"Укажите планируемую дату заселения.\":\"Вкажіть заплановану дату заселення.\",\"Укажите срок аренды.\":\"Вкажіть строк оренди.\",\"Опишите профессиональный профиль.\":\"Опишіть професійний профіль.\",\"Укажите, чем подтверждается доход.\":\"Вкажіть, чим підтверджується дохід.\",\"Для временной аренды укажите реальную причину проживания.\":\"Для тимчасової оренди вкажіть реальну причину проживання.\",\"Кратко опишите питомца.\":\"Коротко опишіть домашню тварину.\",\"Проверьте отмеченные поля.\":\"Перевірте позначені поля.\",\"Не удалось создать текст. Ответы сохранены — попробуйте еще раз.\":\"Не вдалося створити текст. Відповіді збережено — спробуйте ще раз.\",\"Будут удалены все данные и прогресс Toolkit на этом устройстве. Другие данные сайта и браузера не изменятся. Продолжить?\":\"Усі дані та прогрес Toolkit на цьому пристрої буде видалено. Інші дані сайту та браузера не зміняться. Продовжити?\",\"Будут удалены данные пакета документов на этом устройстве. Данные остальных инструментов сохранятся. Продолжить?\":\"Дані пакета документів на цьому пристрої буде видалено. Дані інших інструментів збережуться. Продовжити?\",\"Будут удалены данные презентации на этом устройстве. Данные остальных инструментов сохранятся. Продолжить?\":\"Дані презентації на цьому пристрої буде видалено. Дані інших інструментів збережуться. Продовжити?\",\"Будут удалены данные расчёта бюджета на этом устройстве. Данные остальных инструментов сохранятся. Продолжить?\":\"Дані розрахунку бюджету на цьому пристрої буде видалено. Дані інших інструментів збережуться. Продовжити?\",\"Не удалось открыть сохраненные данные\":\"Не вдалося відкрити збережені дані\",\"Эта версия данных создана более новой версией помощника. Сначала обновите страницу.\":\"Цю версію даних створено новішою версією Помічника. Спочатку оновіть сторінку.\",\"Основная и резервная копии повреждены или недоступны.\":\"Основна та резервна копії пошкоджені або недоступні.\",\"ПОМОЩНИК ПО АРЕНДЕ\":\"ПОМІЧНИК З ОРЕНДИ\",\"Откройте все три инструмента\":\"Відкрийте всі три інструменти\",\"Укажите email один раз. Прогресс сохраняется только в этом браузере; аккаунт и пароль не создаются.\":\"Вкажіть email один раз. Прогрес зберігається лише в цьому браузері; обліковий запис і пароль не створюються.\",\"Документы\":\"Документи\",\"Презентация\":\"Презентація\",\"Подготовить профиль для агента или собственника\":\"Підготувати профіль для агента або власника\",\"Бюджет\":\"Бюджет\",\"Введите ваш email\":\"Введіть ваш email\",\"Один email открывает все три инструмента.\":\"Один email відкриває всі три інструменти.\",\"Без аккаунта и пароля. Прогресс сохраняется в этом браузере.\":\"Без облікового запису та пароля. Прогрес зберігається в цьому браузері.\",\"Email используется для доступа к Помощнику и редких писем, связанных с его использованием. Отписаться можно в любой момент.\":\"Email використовується для доступу до Помічника та рідкісних листів, пов’язаних із його використанням. Відписатися можна будь-коли.\",\"Настройка пакета\":\"Налаштування пакета\",\"Соберем список под вашу ситуацию\":\"Складемо список відповідно до вашої ситуації\",\"Ответьте на три вопроса. Документы загружать не нужно — помощник сохраняет только отметки готовности в этом браузере.\":\"Дайте відповіді на три запитання. Документи завантажувати не потрібно — Помічник зберігає лише позначки готовності в цьому браузері.\",\"Тип аренды\":\"Тип оренди\",\"Пока не определен\":\"Поки не визначено\",\"Постоянное проживание (alquiler de vivienda habitual)\":\"Постійне проживання (alquiler de vivienda habitual)\",\"Временная аренда (alquiler de temporada)\":\"Тимчасова оренда (alquiler de temporada)\",\"Кто будет указан в договоре\":\"Хто буде вказаний у договорі\",\"${count} взрослых\":\"${count} дорослих\",\"Арендатор ${adultIndex + 1}: подтверждение дохода\":\"Орендар ${adultIndex + 1}: підтвердження доходу\",\"Как подтверждается доход\":\"Як підтверджується дохід\",\"Как формируется личный доход\":\"Як формується особистий дохід\",\"Зарплата\":\"Заробітна плата\",\"Дивиденды\":\"Дивіденди\",\"из\":\"з\",\"обязательных\":\"обов’язкових\",\"Основной пакет подготовлен\":\"Основний пакет підготовлено\",\"Ваш список документов\":\"Ваш список документів\",\"Отмечайте готовность. Дополнительные подтверждения помогают усилить профиль, но не уменьшают процент готовности.\":\"Позначайте готовність. Додаткові підтвердження допомагають посилити профіль, але не зменшують відсоток готовності.\",\"Общие данные изменились. Проверьте список еще раз; ваши отметки сохранены.\":\"Загальні дані змінилися. Перевірте список ще раз; ваші позначки збережено.\",\"% обязательного пакета готово\":\"% обов’язкового пакета готово\",\"${percent}% готово\":\"${percent}% готово\",\"Тип аренды пока не определен. Финансовый пакет можно подготовить сейчас, но для временной аренды понадобятся дополнительные подтверждения.\":\"Тип оренди поки не визначено. Фінансовий пакет можна підготувати зараз, але для тимчасової оренди знадобляться додаткові підтвердження.\",\"Нестандартный финансовый профиль можно усилить подтверждением сбережений. Это дополнительный документ и он не влияет на готовность пакета.\":\"Нестандартний фінансовий профіль можна посилити підтвердженням заощаджень. Це додатковий документ, і він не впливає на готовність пакета.\",\"${item.title}: готово\":\"${item.title}: готово\",\"Обязательно\":\"Обов’язково\",\"Дополнительно\":\"Додатково\",\"квартальные\":\"квартальні\",\"Часто применяются Modelo 130 или 131, Modelo 303, Modelo 390 и Modelo 100. Не все формы нужны каждому aut\\xf3nomo.\":\"Часто застосовуються Modelo 130 або 131, Modelo 303, Modelo 390 і Modelo 100. Не всі форми потрібні кожному aut\\xf3nomo.\",\"Основной пакет готов\":\"Основний пакет готовий\",\"Ваш пакет еще не готов\":\"Ваш пакет ще не готовий\",\"Нужно подготовить\":\"Потрібно підготувати\",\"Уже готово\":\"Уже готово\",\"Дополнительных подтверждений готово:\":\"Додаткових підтверджень готово:\",\"Используйте понятные названия файлов и проверяйте читаемость сканов. Чувствительные документы отправляйте только проверенному получателю и когда они действительно нужны.\":\"Використовуйте зрозумілі назви файлів і перевіряйте читабельність сканів. Конфіденційні документи надсилайте лише перевіреному одержувачу й тільки тоді, коли вони справді потрібні.\",\"Проверка фактов\":\"Перевірка фактів\",\"Проверьте данные перед созданием презентации\":\"Перевірте дані перед створенням презентації\",\"Убедитесь, что все факты указаны правильно. Помощник не будет добавлять сведения, которых нет в ваших ответах.\":\"Переконайтеся, що всі факти вказано правильно. Помічник не додаватиме відомостей, яких немає у ваших відповідях.\",\"Ваша презентация готова\":\"Ваша презентація готова\",\"Общие данные изменились. Предыдущий текст сохранен, но его нужно проверить и создать PDF заново.\":\"Загальні дані змінилися. Попередній текст збережено, але його потрібно перевірити й створити PDF заново.\",\"Предпросмотр содержания\":\"Попередній перегляд змісту\",\"Проверьте имена, суммы и условия перед скачиванием PDF. Чтобы изменить содержание, вернитесь к исходным данным.\":\"Перевірте імена, суми та умови перед завантаженням PDF. Щоб змінити зміст, поверніться до вихідних даних.\",\"Исходные данные\":\"Вихідні дані\",\"Создайте презентацию арендатора\":\"Створіть презентацію орендаря\",\"Ответьте на вопросы — помощник подготовит аккуратную презентацию, которую можно отправить собственнику или агенту.\":\"Дайте відповіді на запитання — Помічник підготує чітку й структуровану презентацію, яку можна надіслати власнику або агенту.\",\"Сколько взрослых будет проживать в квартире?\":\"Скільки дорослих проживатиме у квартирі?\",\"Имя проживающего\":\"Ім’я мешканця\",\"Введите имя латиницей.\":\"Введіть ім’я латиницею.\",\"Например: Ivan\":\"Наприклад: Ivan\",\"Например: Anna\":\"Наприклад: Anna\",\"Например: Yan\":\"Наприклад: Yan\",\"Например: Maria\":\"Наприклад: Maria\",\"Постоянное проживание\":\"Постійне проживання\",\"Рассматриваю оба варианта\":\"Розглядаю обидва варіанти\",\"Когда вы планируете въехать?\":\"Коли ви плануєте заселитися?\",\"С 15 октября 2026 года\":\"З 15 жовтня 2026 року\",\"На какой срок вы ищете жилье?\":\"На який строк ви шукаєте житло?\",\"Например: 6 месяцев или с ноября по май\":\"Наприклад: 6 місяців або з листопада до травня\",\"12 месяцев или долгосрочно\":\"12 місяців або довгостроково\",\"Профессиональный профиль — арендатор\":\"Професійний профіль — орендар\",\"Например: работаю по бессрочному договору в технологической компании на Кипре\":\"Наприклад: працюю за безстроковим договором у технологічній компанії на Кіпрі\",\"Например: работаю по постоянному трудовому договору в Испании\":\"Наприклад: працюю за постійним трудовим договором в Іспанії\",\"Например: работаю по трудовому договору с подтверждаемым доходом\":\"Наприклад: працюю за трудовим договором із доходом, який можна підтвердити\",\"Укажите документы, которыми вы можете подтвердить доход.\":\"Вкажіть документи, якими ви можете підтвердити дохід.\",\"Например: трудовой договор и последние расчетные листы\":\"Наприклад: трудовий договір і останні розрахункові листи\",\"Почему вы ищете жилье в Барселоне?\":\"Чому ви шукаєте житло в Барселоні?\",\"Кратко объясните временную причину проживания в Барселоне.\":\"Коротко поясніть тимчасову причину проживання в Барселоні.\",\"Рабочий проект в Барселоне продолжительностью восемь месяцев.\":\"Робочий проєкт у Барселоні тривалістю вісім місяців.\",\"Питомец\":\"Домашня тварина\",\"Нет\":\"Ні\",\"Да\":\"Так\",\"Кратко о питомце\":\"Коротко про домашню тварину\",\"Например: спокойная собака, 4 года, приучена к квартире\":\"Наприклад: спокійний собака, 4 роки, привчений до життя у квартирі\",\"Подтверждаемый чистый доход в месяц, €\":\"Чистий дохід на місяць, який можна підтвердити, €\",\"Необязательно\":\"Необов’язково\",\"Укажите личный или совокупный подтверждаемый чистый доход.\":\"Вкажіть особистий або сукупний чистий дохід, який можете підтвердити.\",\"Например: 4 500 € в месяц\":\"Наприклад: 4 500 € на місяць\",\"Сбережения, €\":\"Заощадження, €\",\"Укажите только сбережения, которые можете подтвердить документами.\":\"Вкажіть лише заощадження, які можете підтвердити документами.\",\"Например: 10 000 €\":\"Наприклад: 10 000 €\",\"Кратко объясните причину переезда в Барселону.\":\"Коротко поясніть причину переїзду до Барселони.\",\"Переезжаем в Барселону в связи с работой и планируем жить здесь постоянно.\":\"Переїжджаємо до Барселони у зв’язку з роботою та плануємо жити тут постійно.\",\"Дополнительная информация\":\"Додаткова інформація\",\"Добавьте важные факты, которые еще не указаны выше и могут помочь собственнику оценить вашу заявку.\":\"Додайте важливі факти, які ще не вказані вище й можуть допомогти власнику оцінити вашу заявку.\",\"Например: есть положительная история аренды, можем предоставить рекомендацию предыдущего арендодателя\":\"Наприклад: маємо позитивну історію оренди, можемо надати рекомендацію попереднього орендодавця\",\"Контактные данные\":\"Контактні дані\",\"Эти данные будут указаны в презентации для связи.\":\"Ці дані буде вказано в презентації для зв’язку.\",\"Например: ivan@email.com, +34 600 000 000\":\"Наприклад: ivan@email.com, +34 600 000 000\",\"Фотография для презентации\":\"Фотографія для презентації\",\"JPG или PNG до 5 МБ. Используйте качественную фотографию с запасом вокруг лиц. Она останется на этом устройстве и будет добавлена только в PDF.\":\"JPG або PNG до 5 МБ. Використовуйте якісну фотографію із запасом простору навколо облич. Вона залишиться на цьому пристрої й буде додана лише до PDF.\",\"Используйте JPG или PNG до 5 МБ.\":\"Використовуйте JPG або PNG до 5 МБ.\",\"Фото для презентации\":\"Фото для презентації\",\"Предыдущий расчет —\":\"Попередній розрахунок —\",\"Тип договора или общие данные изменились. Предыдущий результат сохранен, но не учитывается в общем прогрессе до нового расчета.\":\"Тип договору або загальні дані змінилися. Попередній результат збережено, але він не враховується в загальному прогресі до нового розрахунку.\",\"Полная сумма на входе\":\"Повна сума для заселення\",\"Для заселения потребуется —\":\"Для заселення знадобиться —\",\"Тип договора изменился. Проверьте фактические условия и пересчитайте бюджет.\":\"Тип договору змінився. Перевірте фактичні умови та перерахуйте бюджет.\",\"Разбивка расходов\":\"Розподіл витрат\",\"Аренда при заселении\":\"Орендна плата при заселенні\",\"Залоги и гарантии\":\"Застави та гарантії\",\"Комиссия с учетом IVA (НДС)\":\"Комісія з урахуванням IVA (ПДВ)\",\"Сравним платеж по аренде с подтверждаемым чистым доходом. Сейчас он составляет\":\"Порівняємо орендну плату з чистим доходом, який можна підтвердити. Зараз частка орендної плати становить\",\"%. Ориентир около 30% — практическая оценка, а не закон и не гарантия одобрения.\":\"%. Орієнтир близько 30% — практична оцінка, а не закон і не гарантія схвалення.\",\"Запас относительно личного лимита: ${euro(result.limit_delta)}.\":\"Запас відносно особистого ліміту: ${euro(result.limit_delta)}.\",\"Полная сумма превышает личный лимит на ${euro(Math.abs(result.limit_delta))}.\":\"Повна сума перевищує особистий ліміт на ${euro(Math.abs(result.limit_delta))}.\",\"Тип договора не определен: фактические платежи посчитаны, но правовой ориентир может быть неполным.\":\"Тип договору не визначено: фактичні платежі розраховано, але правовий орієнтир може бути неповним.\",\"Если комиссию агентства платит арендатор, проверьте характер услуги и применимые правила.\":\"Якщо комісію агентства сплачує орендар, перевірте характер послуги та правила, що застосовуються.\",\"Условия сделки\":\"Умови угоди\",\"Рассчитайте бюджет для заселения\":\"Розрахуйте бюджет для заселення\",\"Укажите условия сделки — калькулятор покажет полную сумму, которая потребуется для заключения договора.\":\"Вкажіть умови угоди — калькулятор покаже повну суму, яка знадобиться для укладення договору.\",\"Ежемесячная аренда, €\":\"Щомісячна орендна плата, €\",\"Например: 1 800\":\"Наприклад: 1 800\",\"Тип договора\":\"Тип договору\",\"Временное по рабочей, учебной, медицинской или аналогичной причине\":\"Тимчасовий — з робочої, навчальної, медичної або аналогічної причини\",\"Не уверен(а)\":\"Не впевнений(-а)\",\"Сколько месяцев аренды составляют залоги и гарантии?\":\"Скільки місяців оренди становлять застави та гарантії?\",\"Укажите общую сумму депозита (fianza) и дополнительных гарантий в месяцах аренды.\":\"Вкажіть загальну суму застави (fianza) та додаткових гарантій у місяцях оренди.\",\"Например: 2\":\"Наприклад: 2\",\"Предоплата и комиссия\":\"Передоплата та комісія\",\"Сколько месяцев аренды оплачивается при заселении?\":\"За скільки місяців оренда оплачується під час заселення?\",\"1 — только первый месяц, 3 — три месяца аренды сразу.\":\"1 — лише перший місяць, 3 — одразу три місяці оренди.\",\"Например: 1\":\"Наприклад: 1\",\"Нет комиссии\":\"Без комісії\",\"Фиксированная сумма\":\"Фіксована сума\",\"Количество месячных аренд\":\"Кількість місячних орендних платежів\",\"Процент от аренды\":\"Відсоток від орендної плати\",\"Сумма, €\":\"Сума, €\",\"Количество месяцев\":\"Кількість місяців\",\"Ставка, %\":\"Ставка, %\",\"База процента\":\"База для відсотка\",\"Годовая аренда\":\"Орендна плата за рік\",\"Аренда за весь срок договора\":\"Орендна плата за весь строк договору\",\"Срок договора, месяцев\":\"Строк договору, місяців\",\"IVA (НДС)\":\"IVA (ПДВ)\",\"Уже включен\":\"Уже включено\",\"Добавляется отдельно\":\"Додається окремо\",\"Не применяется\":\"Не застосовується\",\"К комиссии автоматически добавится стандартная ставка IVA 21%.\":\"До комісії автоматично буде додано IVA за стандартною ставкою 21%.\",\"Проверка бюджета\":\"Перевірка бюджету\",\"Эти показатели помогают оценить финансовую нагрузку отдельно от расчета сделки.\":\"Ці показники допомагають оцінити фінансове навантаження окремо від розрахунку угоди.\",\"Например: 4 500\":\"Наприклад: 4 500\",\"Используется для сравнения аренды с практическим ориентиром около 30%. Это не закон и не гарантия одобрения.\":\"Використовується для порівняння орендної плати з практичним орієнтиром близько 30%. Це не закон і не гарантія схвалення.\",\"Максимальная сумма, которую вы готовы потратить на заселение, €\":\"Максимальна сума, яку ви готові витратити на заселення, €\",\"Например: 7 500\":\"Наприклад: 7 500\",\"Сравним его с полной суммой, необходимой для заселения.\":\"Порівняємо її з повною сумою, необхідною для заселення.\",\"Проверка условий\":\"Перевірка умов\",\"Аренда при заселении:\":\"Орендна плата при заселенні:\",\". Залоги и гарантии:\":\". Застави та гарантії:\",\"из 3\":\"з 3\",\"Практические инструменты\":\"Практичні інструменти\",\"Вы готовы начинать поиск\":\"Ви готові почати пошук\",\"Подготовьте сильную заявку на аренду\":\"Підготуйте сильну заявку на оренду\",\"Три независимых шага: документы, презентация арендатора и бюджет заселения. Прогресс хранится только на этом устройстве.\":\"Три незалежні кроки: документи, презентація орендаря та бюджет заселення. Прогрес зберігається лише на цьому пристрої.\",\"Браузер запретил постоянное хранение. В этой вкладке можно продолжить, но после закрытия прогресс может исчезнуть.\":\"Браузер заборонив постійне збереження даних. У цій вкладці можна продовжити, але після закриття прогрес може зникнути.\",\"Шаг\":\"Крок\",\"Все три инструмента пройдены\":\"Роботу з усіма трьома інструментами завершено\",\"Пакет документов собран, бюджет рассчитан, презентация подготовлена. Перед отправкой заявки еще раз проверьте актуальность файлов и условий конкретного объявления.\":\"Пакет документів зібрано, бюджет розраховано, презентацію підготовлено. Перед надсиланням заявки ще раз перевірте актуальність файлів та умови конкретного оголошення.\",\"10 шагов \\xb7 практический маршрут\":\"10 кроків \\xb7 практичний маршрут\",\"10 глав\":\"10 розділів\",\"Содержание\":\"Зміст\",\"Как снять квартиру в Барселоне\":\"Як орендувати квартиру в Барселоні\",\"Практическая система самостоятельного поиска: как определить доступную часть рынка, подготовить документы, пройти отбор и проверить условия до оплаты.\":\"Практична система самостійного пошуку: як визначити доступну частину ринку, підготувати документи, пройти відбір і перевірити умови до оплати.\",\"Особенно полезно для иностранцев, aut\\xf3nomo, владельцев компаний, людей с иностранным доходом и арендаторов с животными.\":\"Особливо корисно для іноземців, aut\\xf3nomo, власників компаній, людей з іноземним доходом та орендарів із тваринами.\",\"Версия 0.9 \\xb7 август 2026\":\"Версія 0.9 \\xb7 серпень 2026\",\"Незнакомые испанские понятия собраны в словаре терминов в конце руководства.\":\"Незнайомі іспанські поняття зібрано у словнику термінів наприкінці посібника.\",\"Важно\":\"Важливо\",\"Это практический материал, а не индивидуальная юридическая консультация. Я отделяю действующие нормы от наблюдений рынка и собственного опыта. Перед крупной оплатой или подписанием спорного документа проверяйте актуальные правила и условия конкретной сделки.\":\"Це практичний матеріал, а не індивідуальна юридична консультація. Я відокремлюю чинні норми від спостережень за ринком і власного досвіду. Перед значною оплатою або підписанням спірного документа перевіряйте актуальні правила та умови конкретної угоди.\",\"Лицензированный API агент по недвижимости\":\"Ліцензований API агент з нерухомості\",\"8 лет на испанском рынке\":\"8 років на іспанському ринку\",\"Мой поиск собственной квартиры в Барселоне летом 2026 года:\":\"Мій пошук власної квартири в Барселоні влітку 2026 року:\",\"10 недель — поиска\":\"10 тижнів — пошуку\",\"30+ — агентов и агентств\":\"30+ — агентів та агентств\",\"13 — квартир\":\"13 — квартир\",\"3 — положительных решения\":\"3 — позитивні рішення\",\"СОДЕРЖАНИЕ\":\"ЗМІСТ\",\"01 \\xb7 Тип аренды\":\"01 \\xb7 Тип оренди\",\"02 \\xb7 Доступность рынка\":\"02 \\xb7 Доступність ринку\",\"03 \\xb7 Три бюджета\":\"03 \\xb7 Три бюджети\",\"04 \\xb7 Стратегия поиска\":\"04 \\xb7 Стратегія пошуку\",\"05 \\xb7 Презентация и документы\":\"05 \\xb7 Презентація та документи\",\"06 \\xb7 Сеть каналов\":\"06 \\xb7 Мережа каналів\",\"07 \\xb7 Квалификация объекта\":\"07 \\xb7 Кваліфікація об’єкта\",\"08 \\xb7 Проверка кандидата\":\"08 \\xb7 Перевірка кандидата\",\"09 \\xb7 Договор и оплата\":\"09 \\xb7 Договір та оплата\",\"10 \\xb7 Приемка квартиры\":\"10 \\xb7 Приймання квартири\",\"Словарь терминов ↘\":\"Словник термінів ↘\",\"10 недель поиска \\xb7 30+ агентов и агентств \\xb7 13 просмотренных квартир \\xb7 3 положительных решения \\xb7 1 договор\":\"10 тижнів пошуку \\xb7 30+ агентів та агентств \\xb7 13 переглянутих квартир \\xb7 3 позитивні рішення \\xb7 1 договір\",\"Сразу применить руководство к своей ситуации\":\"Одразу застосувати посібник до своєї ситуації\",\"Три бесплатных инструмента помогут подготовиться к поиску.\":\"Три безкоштовні інструменти допоможуть підготуватися до пошуку.\",\"Для доступа понадобится email. Один email открывает все три инструмента.\":\"Для доступу знадобиться email. Один email відкриває всі три інструменти.\",\"Весь маршрут за 60 секунд\":\"Увесь маршрут за 60 секунд\",\"Постоянное или временное проживание\":\"Постійне або тимчасове проживання\",\"Доступный рынок\":\"Доступний ринок\",\"Бюджет, районы и обязательные условия\":\"Бюджет, райони та обов’язкові умови\",\"Три бюджета\":\"Три бюджети\",\"Аренда, заселение и предел сделки\":\"Орендна плата, заселення та граничний бюджет угоди\",\"Стратегия поиска\":\"Стратегія пошуку\",\"Собственник, агент или управляющая компания\":\"Власник, агент або керуюча компанія\",\"Презентация и документы\":\"Презентація та документи\",\"Профиль арендатора и подтверждения дохода\":\"Профіль орендаря та підтвердження доходу\",\"Каналы и контакты\":\"Канали та контакти\",\"Порталы, соцсети, агенты и прямой поиск\":\"Портали, соцмережі, агенти та прямий пошук\",\"Квалификация объекта\":\"Кваліфікація об’єкта\",\"Критические условия и быстрый отклик\":\"Критичні умови та швидка реакція\",\"Проверка кандидата\":\"Перевірка кандидата\",\"Собственник, агентство и страховая\":\"Власник, агентство та страхова компанія\",\"Договор и оплата\":\"Договір та оплата\",\"Комиссия, резерв, договор и платежи\":\"Комісія, резерв, договір та платежі\",\"Приёмка квартиры\":\"Приймання квартири\",\"Состояние, дефекты и фиксация\":\"Стан, дефекти та фіксація\",\"Почему я написала это руководство\":\"Чому я написала цей посібник\",\"Я работаю с недвижимостью в Испании и иностранными клиентами восемь лет. Но именно поиск собственной квартиры в Барселоне летом 2026 года показал мне рынок со стороны арендатора.\":\"Я працюю з нерухомістю в Іспанії та іноземними клієнтами вісім років. Але саме пошук власної квартири в Барселоні влітку 2026 року показав мені ринок з боку орендаря.\",\"Мой поиск занял около десяти недель - с 6 апреля до заселения 15 июня. За это время я общалась более чем с 30 агентами и агентствами, прошла шесть эпизодов просмотра и увидела 13 квартир лично, по видеосвязи или через доверенного человека. Мы получили три положительных решения разного уровня. В одном случае условия ухудшились после одобрения. В другом собственница согласилась, но отказала страховая. Только третья процедура завершилась договором и передачей ключей.\":\"Мій пошук тривав близько десяти тижнів — із 6 квітня до заселення 15 червня. За цей час я спілкувалася більш ніж із 30 агентами та агентствами, пройшла шість етапів переглядів і побачила 13 квартир особисто, через відеозв’язок або через довірену людину. Ми отримали три позитивні рішення різного рівня. В одному випадку умови погіршилися після схвалення. В іншому власниця погодилася, але страхова компанія відмовила. Лише третя процедура завершилася договором і передачею ключів.\",\"Мы искали квартиру для двух взрослых и кошки. Дохода было достаточно, но профиль не укладывался в самый простой для проверки сценарий: собственная компания, зарплата, иностранный удаленный доход и сбережения.\":\"Ми шукали квартиру для двох дорослих і кішки. Доходу було достатньо, але профіль не відповідав найпростішому для перевірки сценарію: власна компанія, заробітна плата, іноземний дистанційний дохід і заощадження.\",\"Это руководство основано на реальной практике моего поиска, переписках, просмотрах, заявках и договорах. Я дополнила этот опыт собственными знаниями специалиста по недвижимости, срезом Idealista и официальными источниками. Я не претендую на универсальную истину: рынок неоднороден, а решения собственников, агентств и страховых не всегда предсказуемы.\":\"Цей посібник ґрунтується на реальній практиці мого пошуку, листуванні, переглядах, заявках і договорах. Я доповнила цей досвід власними знаннями фахівця з нерухомості, зрізом Idealista та офіційними джерелами. Я не претендую на універсальну істину: ринок неоднорідний, а рішення власників, агентств і страхових компаній не завжди передбачувані.\",\"Моя цель - показать, как процесс устроен на практике, к чему подготовиться заранее и где чаще всего теряются время, нервы и деньги.\":\"Моя мета — показати, як процес працює на практиці, до чого варто підготуватися заздалегідь і де найчастіше втрачаються час, нерви та гроші.\",\"Если у вас испанский постоянный трудовой договор и три последние n\\xf3minas, маршрут будет проще, но общая логика поиска останется той же.\":\"Якщо у вас безстроковий трудовий договір в Іспанії та три останні n\\xf3minas, маршрут буде простішим, але загальна логіка пошуку залишиться тією самою.\",\"01 из 10 \\xb7 Тип аренды\":\"01 із 10 \\xb7 Тип оренди\",\"Определите подходящий тип аренды\":\"Визначте відповідний тип оренди\",\"Первый вопрос - квартира нужна вам как постоянное место жительства или срок проживания ограничен конкретной причиной, которую можно подтвердить документами.\":\"Перше питання — квартира потрібна вам як постійне місце проживання чи строк проживання обмежений конкретною причиною, яку можна підтвердити документами.\",\"От ответа зависят доступная часть рынка, договор, пакет документов, финансовые условия и стратегия поиска.\":\"Від відповіді залежать доступна частина ринку, договір, пакет документів, фінансові умови та стратегія пошуку.\",\"Такой договор используют, когда квартира становится основным местом жительства. На него распространяется более защитный режим Закона об аренде городской недвижимости - LAU.\":\"Такий договір використовують, коли квартира стає основним місцем проживання. На нього поширюється більш захисний режим Закону про оренду міської нерухомості — LAU.\",\"Собственник оценивает устойчивость дохода. Самый понятный для стандартной проверки профиль —\":\"Власник оцінює стабільність доходу. Найзрозуміліший профіль для стандартної перевірки —\",\"постоянный трудовой договор в Испании (contrato fijo) и три последние n\\xf3minas\":\"безстроковий трудовий договір в Іспанії (contrato fijo) і три останні n\\xf3minas\",\". Иностранный или нетипичный доход - например, дивиденды, доход от аренды или криптовалюты - не исключает аренду, но сужает круг собственников, готовых рассматривать кандидатуру.\":\". Іноземний або нетиповий дохід — наприклад, дивіденди, дохід від оренди чи криптовалюти — не виключає оренду, але звужує коло власників, готових розглядати вашу кандидатуру.\",\"По закону\":\"За законом\",\"Если договор заключен на меньший срок, арендатор при соблюдении условий закона может пользоваться обязательным ежегодным продлением до пяти лет, когда собственник - физическое лицо, или до семи лет, когда собственник - юридическое лицо.\":\"Якщо договір укладено на коротший строк, орендар за дотримання умов закону може користуватися обов’язковим щорічним продовженням до п’яти років, коли власник — фізична особа, або до семи років, коли власник — юридична особа.\",\"LAU, ст. 2 и 9\":\"LAU, ст. 2 і 9\",\"Такая аренда предназначена для конкретной ограниченной по времени причины: работы, учебы, лечения, проекта или другого временного пребывания. Сам по себе срок договора не определяет его тип. Формула \\xab11 месяцев\\xbb не превращает постоянное проживание во временное.\":\"Така оренда призначена для конкретної обмеженої в часі причини: роботи, навчання, лікування, проєкту або іншого тимчасового перебування. Сам по собі строк договору не визначає його тип. Формула \\xab11 місяців\\xbb не перетворює постійне проживання на тимчасове.\",\"Для такой аренды у вас запросят подтверждение причины и срока пребывания, а также постоянного адреса вне арендуемой квартиры. В моем поиске собственники и управляющие компании охотнее рассматривали иностранный доход именно при временной аренде, если цель проживания и финансовые документы были понятны.\":\"Для такої оренди у вас попросять підтвердження причини та строку перебування, а також постійної адреси, відмінної від адреси орендованої квартири. Під час мого пошуку власники та керуючі компанії охочіше розглядали іноземний дохід саме за тимчасової оренди, якщо мета проживання та фінансові документи були зрозумілими.\",\"В Каталонии временная причина и ее документальное обоснование должны быть зафиксированы. Договор без доказанной временной цели может рассматриваться как аренда для постоянного проживания. Для временной аренды по рабочей, учебной, медицинской или аналогичной причине каталонское регулирование распространяет жилищные правила на залог, гарантии, арендную плату и расходы.\":\"У Каталонії тимчасова причина та її документальне обґрунтування мають бути зафіксовані. Договір без доведеної тимчасової мети може розглядатися як оренда для постійного проживання. Для тимчасової оренди з робочої, навчальної, медичної або аналогічної причини каталонське регулювання поширює житлові правила на заставу, гарантії, орендну плату та витрати.\",\"Закон Каталонии 18/2007, ст. 66 bis\":\"Закон Каталонії 18/2007, ст. 66 bis\",\"LAU, ст. 2-3\":\"LAU, ст. 2–3\",\"Как бы я поступила\":\"Як би я вчинила\",\"Если вам подходят оба типа аренды, я бы вела поиск параллельно, но готовилась к каждому маршруту отдельно. Для временной аренды причина должна быть реальной, конкретной и подтверждаемой.\":\"Якщо вам підходять обидва типи оренди, я б вела пошук паралельно, але готувалася до кожного маршруту окремо. Для тимчасової оренди причина має бути реальною, конкретною та такою, яку можна підтвердити.\",\"Главная мысль: от цели проживания зависит не только договор, но и доступная вам часть рынка. Разберитесь со своей ситуацией до начала поиска, чтобы не тратить время на нерелевантные объекты.\":\"Головна думка: від мети проживання залежить не лише договір, а й доступна вам частина ринку. Розберіться зі своєю ситуацією до початку пошуку, щоб не витрачати час на об’єкти, які вам не підходять.\",\"02 из 10 \\xb7 Доступная часть рынка\":\"02 із 10 \\xb7 Доступна частина ринку\",\"Оцените, сколько квартир вам действительно доступно\":\"Оцініть, скільки квартир вам справді доступно\",\"Рынок выглядит большим, пока вы не добавили собственные условия. Бюджет, район, количество спален, животные и тип аренды пересекаются - и\":\"Ринок здається великим, доки ви не додали власні умови. Бюджет, район, кількість спалень, тварини та тип оренди перетинаються — і\",\"каждый следующий критерий уменьшает выбор\":\"кожен наступний критерій зменшує вибір\",\"Иностранный доход сужает выбор еще сильнее: портал не показывает, какие собственники готовы принять именно ваш источник дохода. В моем поиске иностранный доход чаще рассматривали при временной аренде, особенно фонды и управляющие компании.\":\"Іноземний дохід звужує вибір ще сильніше: портал не показує, які власники готові прийняти саме ваше джерело доходу. Під час мого пошуку іноземний дохід частіше розглядали за тимчасової оренди, особливо фонди та керуючі компанії.\",\"Что показали 2 865 объявлений в Барселоне\":\"Що показали 2 865 оголошень у Барселоні\",\"Если вам нужен только практический вывод, он такой: аренда для постоянного проживания составляла\":\"Якщо вам потрібен лише практичний висновок, він такий: оренда для постійного проживання становила\",\"27,9% выдачи\":\"27,9% результатів\",\"; бюджет до €2 000 сокращал ее до 8,9% всего среза; одновременная проверка района, количества комнат, возможности проживания с кошкой и других обязательных условий могло оставить всего 7 вариантов. Подробные данные ниже можно пропустить, если вам достаточно этого вывода.\":\"; бюджет до €2 000 скорочував її до 8,9% усього зрізу; одночасна перевірка району, кількості кімнат, можливості проживання з кішкою та інших обов’язкових умов могла залишити лише 7 варіантів. Детальні дані нижче можна пропустити, якщо вам достатньо цього висновку.\",\"Это ручная проверка результатов Idealista по отдельным фильтрам, зафиксированный в течение одного дня. Он описывает именно Idealista, а не весь рынок аренды Барселоны.\":\"Це ручна перевірка результатів Idealista за окремими фільтрами, зафіксована протягом одного дня. Вона описує саме Idealista, а не весь ринок оренди Барселони.\",\"Я не знаю, какая доля свободных квартир доходит до портала. По моим наблюдениям, существенный пул объектов фондов и управляющих компаний распределяется через агентства, которые регулярно получают от них новые предложения. Размер этой части рынка неизвестен.\":\"Я не знаю, яка частка вільних квартир потрапляє на портал. За моїми спостереженнями, значний пул об’єктів фондів і керуючих компаній розподіляється через агентства, які регулярно отримують від них нові пропозиції. Розмір цієї частини ринку невідомий.\",\"Как сужается выбор\":\"Як звужується вибір\",\"2 865 \\xb7 вся выдача\":\"2 865 \\xb7 усі результати\",\"798 \\xb7 постоянное проживание\":\"798 \\xb7 постійне проживання\",\"255 \\xb7 бюджет до €2 000\":\"255 \\xb7 бюджет до €2 000\",\"7 \\xb7 подходят по всем обязательным условиям\":\"7 \\xb7 відповідають усім обов’язковим умовам\",\"Количество результатов во время сбора менялось на один-два объекта. Объявления не дедуплицированы и не проверены на фактическую доступность. Поэтому цифры ниже - моментальный снимок публичной выдачи, а не перепись всех квартир на рынке.\":\"Кількість результатів під час збору змінювалася на один-два об’єкти. Оголошення не перевірялися на дублікати та фактичну доступність. Тому цифри нижче — зріз публічної видачі на конкретний момент, а не перепис усіх квартир на ринку.\",\"Подробные данные об объявлениях\":\"Детальні дані про оголошення\",\"Тип аренды, стоимость, количество спален, животные и районы. Откройте раздел, если хотите проверить исходные данные.\":\"Тип оренди, вартість, кількість спалень, тварини та райони. Відкрийте розділ, якщо хочете перевірити вихідні дані.\",\"Почему после всех обязательных условий остаётся так мало квартир\":\"Чому після всіх обов’язкових умов залишається так мало квартир\",\"Отдельно каждый критерий может выглядеть реалистично. Но запрос временная аренда + животные + две спальни + бюджет до €1 500 дал\":\"Окремо кожен критерій може здаватися реалістичним. Але запит тимчасова оренда + тварини + дві спальні + бюджет до €1 500 дав\",\"всего 7 объявлений\":\"лише 7 оголошень\",\": около 0,24% всей выдачи и 0,34% временного сегмента.\":\": близько 0,24% усіх результатів пошуку та 0,34% тимчасового сегмента.\",\"Даже точное число объявлений не показывает, сколько собственников готовы рассматривать именно ваш доход. На этом рынке недостаточно выбрать квартиру - собственник также выбирает вас. У разных собственников критерии могут быть противоположными: одному нужен только испанский постоянный контракт и n\\xf3minas, другой готов обсуждать иностранный доход, предоплату или иной формат расчетов.\":\"Навіть точна кількість оголошень не показує, скільки власників готові розглядати саме ваш дохід. На цьому ринку недостатньо вибрати квартиру — власник також обирає вас. У різних власників критерії можуть бути протилежними: одному потрібні лише іспанський безстроковий договір і n\\xf3minas, інший готовий обговорювати іноземний дохід, передоплату або інший формат розрахунків.\",\"Будьте реалистичны, чтобы сократить поиск и сохранить нервы. Если бюджет ограничен, определите, что для вас действительно критично, а чем можно пожертвовать: идеального объекта, скорее всего, не будет. Одновременно расширяйте сеть источников и контактов, чтобы получать доступ к квартирам, которые не доходят до открытых порталов.\":\"Будьте реалістичними, щоб скоротити пошук і зберегти нерви. Якщо бюджет обмежений, визначте, що для вас справді критично, а чим можна пожертвувати: ідеального об’єкта, найімовірніше, не буде. Водночас розширюйте мережу джерел і контактів, щоб отримувати доступ до квартир, які не потрапляють на відкриті портали.\",\"Вы конкурируете не за 2 865 квартир, а за небольшое число объектов, которые подходят по всем обязательным условиям.\":\"Ви конкуруєте не за 2 865 квартир, а за невелику кількість об’єктів, які відповідають усім обов’язковим умовам.\",\"03 из 10 \\xb7 Бюджет\":\"03 із 10 \\xb7 Бюджет\",\"Рассчитайте три бюджета\":\"Розрахуйте три бюджети\",\"Возможность платить аренду каждый месяц еще не означает готовность заключить сделку. До активного поиска нужны\":\"Можливість сплачувати орендну плату щомісяця ще не означає готовності укласти угоду. До активного пошуку потрібні\",\"три расчета: допустимая ежемесячная аренда, деньги на заселение и предельный бюджет сделки\":\"три розрахунки: допустима щомісячна орендна плата, гроші для заселення та граничний бюджет угоди\",\"1. Допустимая ежемесячная аренда\":\"1. Допустима щомісячна орендна плата\",\"Практический ориентир - около 30% подтверждаемого чистого дохода одного человека или пары. Это распространенный критерий оценки платежеспособности, а не установленный законом предел.\":\"Практичний орієнтир — близько 30% чистого доходу однієї людини або пари, який можна підтвердити. Це поширений критерій оцінки платоспроможності, а не встановлена законом межа.\",\"Если подтвержденный чистый доход составляет €5 000 в месяц, базовый ориентир для поиска -\":\"Якщо підтверджений чистий дохід становить €5 000 на місяць, базовий орієнтир для пошуку —\",\"около €1 500\":\"близько €1 500\",\". Более дорогая квартира может быть вам по силам, но собственник вправе оценить платежеспособность иначе.\":\". Дорожча квартира може бути вам по кишені, але власник має право оцінити платоспроможність інакше.\",\"Отдельно учитывайте свет, воду, газ, интернет и другие регулярные расходы. Проверяйте, что включено в цену и какие платежи закреплены в договоре.\":\"Окремо враховуйте електроенергію, воду, газ, інтернет та інші регулярні витрати. Перевіряйте, що включено в ціну та які платежі закріплено в договорі.\",\"2. Деньги на заселение\":\"2. Гроші на заселення\",\"Агенты часто описывают условия не итоговой суммой, а месяцами и процентами. Ваша задача - перевести эту формулу в евро до подачи заявки.\":\"Агенти часто описують умови не підсумковою сумою, а місяцями та відсотками. Ваше завдання — перевести цю формулу в євро до подання заявки.\",\"Пример для аренды €1 500 в месяц:\":\"Приклад для орендної плати €1 500 на місяць:\",\"— первый месяц - €1 500;\":\"— перший місяць — €1 500;\",\"— два месяца залога - €3 000;\":\"— два місяці застави — €3 000;\",\"— комиссия 10% годовой аренды - €1 800;\":\"— комісія 10% річної орендної плати — €1 800;\",\"— IVA 21% на комиссию - €378;\":\"— IVA 21% на комісію — €378;\",\"— итого на заселение - €6 678.\":\"— разом для заселення — €6 678.\",\"Другой вариант: первый месяц + один месяц залога + комиссия в размере месяца и IVA. При аренде €1 500 это €4 815.\":\"Інший варіант: перший місяць + один місяць застави + комісія в розмірі місячної орендної плати та IVA. За оренди €1 500 це €4 815.\",\"При аренде для постоянного проживания обязательный залог равен одной месячной аренде. Дополнительная гарантия при договорах до пяти лет - или семи лет, если собственник юридическое лицо, - не может превышать две месячные арендные платы. Расходы агентства и оформления такого договора возлагаются на собственника (\":\"Для оренди з метою постійного проживання обов’язкова застава дорівнює одній місячній орендній платі. Додаткова гарантія за договорами до п’яти років — або семи років, якщо власник є юридичною особою, — не може перевищувати дві місячні орендні плати. Витрати агентства та оформлення такого договору покладаються на власника (\",\"LAU, ст. 17.2, 20.1 и 36\":\"LAU, ст. 17.2, 20.1 і 36\",\"Для временной аренды в Каталонии применимые правила зависят от реального основания договора. На практике к сумме на заселение могут добавляться комиссия, IVA, предоплата и иные гарантии.\":\"Для тимчасової оренди в Каталонії правила, що застосовуються, залежать від реальної підстави договору. На практиці до суми для заселення можуть додаватися комісія, IVA, передоплата та інші гарантії.\",\"3. Предельный бюджет сделки\":\"3. Граничний бюджет угоди\",\"Это максимальная сумма, которую вы готовы заплатить на входе, не разрушая собственный финансовый резерв. Считать ее нужно заранее, потому что условия могут измениться уже после просмотра или одобрения.\":\"Це максимальна сума, яку ви готові сплатити для заселення, не руйнуючи власний фінансовий резерв. Розрахувати її потрібно заздалегідь, оскільки умови можуть змінитися вже після перегляду або схвалення.\",\"В моем поиске встречались:\":\"Під час мого пошуку траплялися:\",\"— первый месяц, залог и комиссия агентства;\":\"— перший місяць, застава та комісія агентства;\",\"— два или три платежа, названных \\xabдепозитами\\xbb;\":\"— два або три платежі, названі \\xabдепозитами\\xbb;\",\"— комиссия в размере месяца плюс IVA, 10% годовой аренды плюс IVA или 15% годовой аренды;\":\"— комісія в розмірі місячної орендної плати плюс IVA, 10% річної орендної плати плюс IVA або 15% річної орендної плати;\",\"— от шести месяцев до года предоплаты;\":\"— передоплата від шести місяців до року;\",\"— дополнительная гарантия после отказа страховой;\":\"— додаткова гарантія після відмови страхової компанії;\",\"— часть оплаты по договору и часть наличными.\":\"— частина оплати за договором і частина готівкою.\",\"Личный опыт: к чему быть готовым\":\"Особистий досвід: до чого варто бути готовими\",\"По одному объекту агент первоначально называл первый месяц, один месяц залога и свою комиссию. Страховая долго не давала ответа, а затем официально отказала. После этого собственница предложила другой вариант: первый месяц, блокировка суммы еще за шесть месяцев и комиссия агента. Я остановила процесс.\":\"Щодо одного об’єкта агент спочатку назвав перший місяць, один місяць застави та свою комісію. Страхова компанія довго не давала відповіді, а потім офіційно відмовила. Після цього власниця запропонувала інший варіант: перший місяць, блокування суми ще за шість місяців і комісія агента. Я зупинила процес.\",\"Заранее определите максимально допустимую сумму на входе. Условия могут измениться в последний момент, и вам нужно понимать, на что вы готовы пойти, а на что - нет.\":\"Заздалегідь визначте максимально допустиму суму для заселення. Умови можуть змінитися в останній момент, і вам потрібно розуміти, на що ви готові піти, а на що — ні.\",\"Три цифры до начала поиска: ежемесячная аренда, деньги на заселение и предельный бюджет сделки.\":\"Три цифри до початку пошуку: щомісячна орендна плата, гроші для заселення та граничний бюджет угоди.\",\"04 из 10 \\xb7 Стратегия поиска\":\"04 із 10 \\xb7 Стратегія пошуку\",\"Выберите стратегию поиска\":\"Оберіть стратегію пошуку\",\"После выбора типа аренды и бюджета решите, с какими участниками рынка вы готовы работать. Конкретные каналы поиска собраны в разделе 6.\":\"Після вибору типу оренди та бюджету вирішіть, з якими учасниками ринку ви готові працювати. Конкретні канали пошуку зібрано в розділі 6.\",\"Прямой собственник\":\"Прямий власник\",\"В моем поиске такие объявления встречались почти исключительно на Idealista. Telegram-бот помогал быстрее видеть предложения собственников, но их было крайне мало, а отклик - слабым.\":\"Під час мого пошуку такі оголошення траплялися майже виключно на Idealista. Telegram-бот допомагав швидше бачити пропозиції від власників, але їх було вкрай мало, а відповідей — небагато.\",\"За десять недель у меня было всего два содержательных прямых контакта, и оба потребовали повышенной осторожности. Один из мошеннических сценариев подробно разобран в главе 9; во втором случае необычная настойчивость предполагаемого собственника заставила меня отказаться от просмотра.\":\"За десять тижнів у мене було лише два змістовні прямі контакти, і обидва потребували підвищеної обережності. Один із шахрайських сценаріїв детально розібрано в розділі 9; у другому випадку незвична наполегливість імовірного власника змусила мене відмовитися від перегляду.\",\"Прямой контакт не гарантирует более простую, дешевую или безопасную сделку.\":\"Прямий контакт не гарантує простішої, дешевшої чи безпечнішої угоди.\",\"Но если комиссия агента не укладывается в бюджет, этот маршрут можно продолжать параллельно.\":\"Але якщо комісія агента не вкладається у ваш бюджет, цей маршрут можна продовжувати паралельно.\",\"Агентства и отдельные агенты\":\"Агентства та окремі агенти\",\"Агент может работать со своей базой, объектами партнеров и пулами квартир фондов или управляющих компаний. Он предварительно оценивает кандидата, организует просмотр и передает документы собственнику. Если по объекту предусмотрена страховка от неуплаты, проверка страховой становится отдельным этапом.\":\"Агент може працювати зі своєю базою, об’єктами партнерів і пулами квартир фондів або керуючих компаній. Він попередньо оцінює кандидата, організовує перегляд і передає документи власнику. Якщо для об’єкта передбачене страхування від несплати оренди, перевірка страхової компанії стає окремим етапом.\",\"В моем поиске повторные обращения к русскоязычным и испаноязычным агентам создали рабочий поток. В итоге я сосредоточилась на пяти-шести контактах, которые отвечали и уже знали мой профиль.\":\"Під час мого пошуку повторні звернення до російськомовних та іспаномовних агентів створили робочий потік. У підсумку я зосередилася на п’яти-шести контактах, які відповідали й уже знали мій профіль.\",\"Нюанс рынка\":\"Нюанс ринку\",\"При дефиците объектов агенту не нужно сопровождать каждого кандидата: подходящую квартиру и так сдадут. Поэтому отсутствие ответа - обычная ситуация. Вежливая и деликатная настойчивость работает лучше ожидания, что агент сам вспомнит о вашем запросе.\":\"За дефіциту об’єктів агенту не потрібно супроводжувати кожного кандидата: відповідну квартиру й так здадуть. Тому відсутність відповіді — звичайна ситуація. Ввічлива й делікатна наполегливість працює краще, ніж очікування, що агент сам згадає про ваш запит.\",\"Фонды и управляющие компании\":\"Фонди та керуючі компанії\",\"В моем поиске квартиры фондов и управляющих компаний приходили через агентские пулы. Назначался общий день просмотров, кандидатов проводили по нескольким объектам, а затем принимали документы от тех, кто быстрее определился. Выйти на фонд или управляющую компанию напрямую у меня не получилось; я не могу утверждать, что все они работают только через агентов.\":\"Під час мого пошуку квартири фондів і керуючих компаній надходили через агентські пули. Призначали спільний день переглядів, кандидатам показували кілька об’єктів, а потім приймали документи від тих, хто швидше визначився. Вийти на фонд або керуючу компанію напряму мені не вдалося; я не можу стверджувати, що всі вони працюють лише через агентів.\",\"Платный подбор\":\"Платний підбір\",\"Отдельная услуга - поиск объекта среди партнеров и на открытом рынке. В одном письменном предложении подбор стоил один месячный платеж, но не менее €1 500. Комиссия агентства, выставившего найденный объект, оплачивалась дополнительно.\":\"Окрема послуга — пошук об’єкта серед партнерів і на відкритому ринку. В одній письмовій пропозиції підбір коштував один місячний платіж, але не менше €1 500. Комісію агентства, яке виставило знайдений об’єкт, потрібно було сплачувати додатково.\",\"До предоплаты письменно зафиксируйте критерии и срок поиска, размер комиссии, момент ее возникновения и условия возврата. Отдельно уточните, может ли у найденного объекта оказаться второй агент со своей комиссией.\":\"До передоплати письмово зафіксуйте критерії та строк пошуку, розмір комісії, момент її виникнення й умови повернення. Окремо уточніть, чи може у знайденого об’єкта бути другий агент зі своєю комісією.\",\"Если вы рассматриваете временную аренду или отдельную услугу подбора, заранее включите возможную комиссию в предельный бюджет сделки. При аренде для постоянного проживания отдельно проверяйте правомерность требования комиссии с арендатора. В любом случае составьте список адекватных агентов с широкой сетью контактов: найти квартиру напрямую от собственника оказалось практически невозможно даже для меня, хотя я восемь лет работаю с недвижимостью. Платный подбор имеет смысл, если у вас нет времени или желания ежедневно отслеживать порталы, группы и каналы и поддерживать контакт с агентами.\":\"Якщо ви розглядаєте тимчасову оренду або окрему послугу підбору, заздалегідь включіть можливу комісію до граничного бюджету угоди. За оренди для постійного проживання окремо перевіряйте правомірність вимоги сплатити комісію орендарем. У будь-якому разі складіть список адекватних агентів із широкою мережею контактів: знайти квартиру безпосередньо від власника виявилося практично неможливо навіть для мене, хоча я вісім років працюю з нерухомістю. Платний підбір має сенс, якщо у вас немає часу або бажання щодня відстежувати портали, групи й канали та підтримувати контакт з агентами.\",\"05 из 10 \\xb7 Документы\":\"05 із 10 \\xb7 Документи\",\"Подготовьте презентацию и пакет документов\":\"Підготуйте презентацію та пакет документів\",\"Ваша кандидатура состоит из двух уровней.\":\"Ваша кандидатура складається з двох рівнів.\",\"Презентация арендатора быстро объясняет, почему вы подходите.\":\"Презентація орендаря швидко пояснює, чому ви підходите.\",\"Пакет документов подтверждает каждое существенное утверждение.\":\"Пакет документів підтверджує кожне суттєве твердження.\",\"Презентация должна соответствовать стратегии поиска. Если вы подаетесь на аренду для постоянного и временного проживания, подготовьте две версии.\":\"Презентація має відповідати стратегії пошуку. Якщо ви подаєте заявки на оренду для постійного й тимчасового проживання, підготуйте дві версії.\",\"Для постоянного проживания акцентируйте устойчивость дохода, готовность жить долго и понятность документов. Для временного добавьте конкретную причину, даты и подтверждение постоянного адреса вне арендуемой квартиры.\":\"Для постійного проживання акцентуйте стабільність доходу, готовність жити довго та зрозумілість документів. Для тимчасового додайте конкретну причину, дати й підтвердження постійної адреси, відмінної від адреси орендованої квартири.\",\"Моя презентация занимала одну страницу. В ней были:\":\"Моя презентація займала одну сторінку. У ній були:\",\"— фотография и краткое описание профиля;\":\"— фотографія та короткий опис профілю;\",\"— состав жильцов, статус проживания и причина переезда;\":\"— склад мешканців, статус проживання та причина переїзду;\",\"— работа, официальный доход и сбережения;\":\"— робота, офіційний дохід і заощадження;\",\"— информация о кошке;\":\"— інформація про кішку;\",\"— объяснение, почему мы надежные арендаторы;\":\"— пояснення, чому ми надійні орендарі;\",\"— перечень доступных подтверждений.\":\"— перелік доступних підтверджень.\",\"Презентацию я отправляла раньше полного пакета. Все, что вы указываете о доходе, статусе и цели проживания, должно подтверждаться документами.\":\"Презентацію я надсилала раніше за повний пакет. Усе, що ви вказуєте про дохід, статус і мету проживання, має підтверджуватися документами.\",\"Пакет документов по источнику дохода\":\"Пакет документів за джерелом доходу\",\"Сотрудник по трудовому договору: трудовой договор - предпочтительно постоянный, contrato fijo - три последние n\\xf3minas и, при запросе, vida laboral, банковская выписка или налоговая декларация.\":\"Працівник за трудовим договором: трудовий договір — бажано безстроковий, contrato fijo — три останні n\\xf3minas і, за запитом, vida laboral, банківська виписка або податкова декларація.\",\"Aut\\xf3nomo: регистрационные документы, квартальные и годовые налоговые декларации и банковские выписки, подтверждающие поступления.\":\"Aut\\xf3nomo: реєстраційні документи, квартальні й річні податкові декларації та банківські виписки, що підтверджують надходження.\",\"Владелец компании: документы компании и подтверждение вашей роли, n\\xf3minas, налоговые декларации, документы о дивидендах и банковские выписки.\":\"Власник компанії: документи компанії та підтвердження вашої ролі, n\\xf3minas, податкові декларації, документи про дивіденди й банківські виписки.\",\"Иностранный доход: договор или справка работодателя, расчетные листы либо счета и налоговые декларации, банковские выписки и сведения о сбережениях. В моем случае документы на польском языке приняли без перевода, но собственник или агент может запросить перевод.\":\"Іноземний дохід: договір або довідка від роботодавця, розрахункові листи чи рахунки й податкові декларації, банківські виписки та відомості про заощадження. У моєму випадку документи польською мовою прийняли без перекладу, але власник або агент може запросити переклад.\",\"Для временной аренды к финансовому пакету добавляются документы о причине и сроке пребывания: например, письмо работодателя, документ об учебе или временном проекте. Также понадобится подтверждение постоянного адреса вне арендуемой квартиры - в моем случае подошли счета за электричество и телефон.\":\"Для тимчасової оренди до фінансового пакета додаються документи про причину та строк перебування: наприклад, лист роботодавця, документ про навчання або тимчасовий проєкт. Також знадобиться підтвердження постійної адреси, відмінної від адреси орендованої квартири — у моєму випадку підійшли рахунки за електроенергію та телефон.\",\"Дополнительно у меня запрашивали историю и оплату предыдущей аренды, контакт арендодателя, счета за телефон и интернет, справку об остатке на счете, движение средств и фотографию кошки. Набор менялся почти в каждом процессе.\":\"Додатково в мене запитували історію та оплату попередньої оренди, контакт орендодавця, рахунки за телефон та інтернет, довідку про залишок на рахунку, рух коштів і фотографію кішки. Набір змінювався майже в кожному процесі.\",\"Заранее соберите полный пакет и понятно назовите файлы. На первом контакте отправляйте презентацию, а документы - после того, как подтвердили основные условия и поняли, что вашу кандидатуру действительно будут рассматривать.\":\"Заздалегідь зберіть повний пакет і дайте файлам зрозумілі назви. Під час першого контакту надсилайте презентацію, а документи — після того, як підтвердили основні умови й зрозуміли, що вашу кандидатуру справді розглядатимуть.\",\"Презентация объясняет вашу кандидатуру. Пакет документов подтверждает ее.\":\"Презентація пояснює вашу кандидатуру. Пакет документів її підтверджує.\",\"06 из 10 \\xb7 Каналы поиска\":\"06 із 10 \\xb7 Канали пошуку\",\"Постройте сеть каналов и контактов\":\"Побудуйте мережу каналів і контактів\",\"В моем поиске\":\"Під час мого пошуку\",\"сработал не один источник, а сеть\":\"спрацювало не одне джерело, а мережа\",\": порталы, Telegram, Instagram и прямые обращения к агентам. Это мой результат, а не универсальный рейтинг каналов.\":\": портали, Telegram, Instagram і прямі звернення до агентів. Це мій результат, а не універсальний рейтинг каналів.\",\"Idealista, Fotocasa и другие порталы\":\"Idealista, Fotocasa та інші портали\",\"Я настроила поиск и уведомления, но сообщения через Idealista почти не работали: большинство оставалось без ответа.\":\"Я налаштувала пошук і сповіщення, але повідомлення через Idealista майже не працювали: більшість залишалася без відповіді.\",\"Звонок по подходящему объекту давал больше шансов, чем сообщение внутри платформы.\":\"Дзвінок щодо відповідного об’єкта давав більше шансів, ніж повідомлення всередині платформи.\",\"Существуют Telegram-боты, которые фильтруют новые объявления и присылают предложения непосредственно от собственников с крупных порталов. В зависимости от критериев в таком боте может появляться всего несколько подходящих объектов в день.\":\"Існують Telegram-боти, які фільтрують нові оголошення й надсилають пропозиції безпосередньо від власників із великих порталів. Залежно від критеріїв у такому боті може з’являтися лише кілька відповідних об’єктів на день.\",\"Telegram, Instagram и прямые контакты\":\"Telegram, Instagram і прямі контакти\",\"Я собрала сеть русскоязычных групп и агентов, постоянно отслеживала новые объявления и раз в несколько дней напоминала агентам о своем запросе. Испаноязычные агенты также публикуют объекты в Instagram и принимают прямые обращения.\":\"Я зібрала мережу російськомовних груп і агентів, постійно відстежувала нові оголошення та раз на кілька днів нагадувала агентам про свій запит. Іспаномовні агенти також публікують об’єкти в Instagram і приймають прямі звернення.\",\"Большинство контактов либо не отвечали, либо не имели подходящих квартир. Со временем я выбрала пять-шесть агентов, которые реагировали нормально и уже знали мой профиль. Финальная квартира пришла именно через такой канал.\":\"Більшість контактів або не відповідали, або не мали відповідних квартир. Згодом я обрала п’ять-шість агентів, які нормально реагували й уже знали мій профіль. Квартира, яку я зрештою орендувала, прийшла саме через такий канал.\",\"Дополнительные каналы\":\"Додаткові канали\",\"На Milanuncios я находила людей, которые искали замену до окончания договора, но в моих случаях собственники замену не согласовали. Facebook Marketplace и локальные русскоязычные и украиноязычные группы почти не дали отклика.\":\"На Milanuncios я знаходила людей, які шукали заміну до завершення договору, але в моїх випадках власники таку заміну не погодили. Facebook Marketplace і локальні російськомовні та україномовні групи майже не дали відгуку.\",\"Пробуйте разные каналы, будьте готовы к игнорированию и отказам и выстраивайте личный контакт с агентами. Я сосредоточилась на пяти-шести людях, которые отвечали, знали мой профиль и понимали запрос.\":\"Пробуйте різні канали, будьте готові до ігнорування та відмов і вибудовуйте особистий контакт з агентами. Я зосередилася на п’яти-шести людях, які відповідали, знали мій профіль і розуміли запит.\",\"Канал стоит оценивать не по числу ссылок, а по доступу к подходящим объектам и людям, которые могут вас провести дальше.\":\"Канал варто оцінювати не за кількістю посилань, а за доступом до відповідних об’єктів і людей, які можуть допомогти вам пройти далі.\",\"07 из 10 \\xb7 Квалификация объекта\":\"07 із 10 \\xb7 Кваліфікація об’єкта\",\"Квалифицируйте объект и действуйте быстро\":\"Кваліфікуйте об’єкт і дійте швидко\",\"Как действовала я. Я постоянно отслеживала новые предложения и поддерживала контакт с агентами, которые нормально реагировали. Когда появлялся объект,\":\"Як діяла я. Я постійно відстежувала нові пропозиції та підтримувала контакт з агентами, які нормально реагували. Коли з’являвся об’єкт,\",\"сначала коротко проверяла стоп-факторы, а после подтверждения действовала максимально быстро\":\"спочатку коротко перевіряла стоп-фактори, а після підтвердження діяла максимально швидко\",\"Сначала отправьте критические условия\":\"Спочатку надішліть критичні умови\",\"Когда появлялся новый объект, я сразу писала агенту короткое сообщение со стоп-факторами. Например:\":\"Коли з’являвся новий об’єкт, я одразу писала агенту коротке повідомлення зі стоп-факторами. Наприклад:\",\"Добрый день. Нас двое, подтвержденный иностранный доход, есть кошка. Испанского трудового договора нет. Подскажите, рассматривают ли такой профиль и будет ли проверка страховой?\":\"Добрий день. Нас двоє, маємо підтверджений іноземний дохід і кішку. Іспанського трудового договору немає. Підкажіть, чи розглядають такий профіль і чи буде перевірка страхової компанії?\",\"Если агент подтверждал, что профиль подходит, я отправляла презентацию. Затем как можно быстрее договаривалась о просмотре и держала наготове пакет документов и деньги для резерва.\":\"Якщо агент підтверджував, що профіль підходить, я надсилала презентацію. Потім якомога швидше домовлялася про перегляд і тримала напоготові пакет документів та гроші для резерву.\",\"До подачи уточните:\":\"До подання заявки уточніть:\",\"— тип и срок аренды;\":\"— тип і строк оренди;\",\"— дату въезда;\":\"— дату заселення;\",\"— месячную цену и дополнительные расходы;\":\"— щомісячну орендну плату та додаткові витрати;\",\"— залог и дополнительные гарантии;\":\"— заставу та додаткові гарантії;\",\"— комиссию и IVA;\":\"— комісію та IVA;\",\"— принимают ли ваш тип и страну дохода;\":\"— чи приймають ваш тип і країну походження доходу;\",\"— будет ли проверка страховой;\":\"— чи буде перевірка страхової компанії;\",\"— разрешены ли животные;\":\"— чи дозволені тварини;\",\"— возможно ли зарегистрироваться по адресу;\":\"— чи можна зареєструватися за адресою;\",\"— сколько нужно заплатить до получения ключей.\":\"— скільки потрібно сплатити до отримання ключів.\",\"Затем действуйте быстро\":\"Потім дійте швидко\",\"— Позвоните или отправьте короткое сообщение.\":\"— Зателефонуйте або надішліть коротке повідомлення.\",\"— Передайте подходящую презентацию.\":\"— Надішліть відповідну презентацію.\",\"— Договоритесь о просмотре.\":\"— Домовтеся про перегляд.\",\"— После просмотра письменно подтвердите интерес.\":\"— Після перегляду письмово підтвердьте зацікавленість.\",\"— Уточните процедуру отбора и точный список документов.\":\"— Уточніть процедуру відбору й точний список документів.\",\"— Отправьте необходимую часть пакета.\":\"— Надішліть необхідну частину пакета.\",\"Просмотр можно провести лично, по видеосвязи или через доверенного человека. Финальную квартиру вместо меня смотрел друг: он прошел по четырем объектам из одного пула и прислал видео. Если квартира подходит, сразу сообщите, что готовы подавать документы и резервировать ее.\":\"Перегляд можна провести особисто, через відеозв’язок або через довірену людину. Квартиру, яку я зрештою орендувала, замість мене дивився друг: він оглянув чотири об’єкти з одного пулу й надіслав відео. Якщо квартира підходить, одразу повідомте, що готові подавати документи та резервувати її.\",\"Скорость важна после квалификации объекта, а не вместо нее.\":\"Швидкість важлива після кваліфікації об’єкта, а не замість неї.\",\"08 из 10 \\xb7 Проверка кандидата\":\"08 із 10 \\xb7 Перевірка кандидата\",\"Пройдите отбор: как устроена проверка и сколько она занимает\":\"Пройдіть відбір: як відбувається перевірка і скільки вона триває\",\"Цепочка зависит от объекта.\":\"Послідовність залежить від об’єкта.\",\"При прямой аренде она может выглядеть так:\":\"За прямої оренди вона може виглядати так:\",\"— собственник предварительно оценивает кандидата;\":\"— власник попередньо оцінює кандидата;\",\"— при наличии страховки передает документы страховой;\":\"— за наявності страхування передає документи страховій компанії;\",\"— после одобрения стороны готовят договор.\":\"— після схвалення сторони готують договір.\",\"При работе через агентство появляется еще один фильтр:\":\"Під час роботи через агентство з’являється ще один фільтр:\",\"— агент проверяет базовые требования;\":\"— агент перевіряє базові вимоги;\",\"— собственник или управляющая компания предварительно одобряет кандидатуру;\":\"— власник або керуюча компанія попередньо схвалює кандидатуру;\",\"— страховая или внутренняя служба проводит проверку;\":\"— страхова компанія або внутрішня служба проводить перевірку;\",\"— после финального решения готовятся договор и передача квартиры.\":\"— після фінального рішення готують договір і передачу квартири.\",\"Сделка за 12 дней\":\"Угода за 12 днів\",\"1–3 июня\":\"1–3 червня\",\"Просмотры, выбор объекта, дополнение документов\":\"Перегляди, вибір об’єкта, доповнення документів\",\"3–6 июня\":\"3–6 червня\",\"Подтверждение дохода и временной причины, резерв\":\"Підтвердження доходу й тимчасової причини, резерв\",\"8–11 июня\":\"8–11 червня\",\"Внутренняя проверка и окончательное одобрение\":\"Внутрішня перевірка та остаточне схвалення\",\"12–14 июня\":\"12–14 червня\",\"Согласование договора и передачи ключей\":\"Узгодження договору та передачі ключів\",\"15 июня\":\"15 червня\",\"Правильный договор, подпись и получение ключей\":\"Правильний договір, підписання та отримання ключів\",\"Согласие агента или предварительное согласие собственника еще не означает, что с вами подпишут договор аренды.\":\"Згода агента або попередня згода власника ще не означає, що з вами підпишуть договір оренди.\",\"Страховка от неуплаты\":\"Страхування від несплати оренди\",\"Страховая оценивает доход и риск самостоятельно. Она может запросить тот же финансовый пакет, дополнительные документы и проверить доступные ей системы кредитной информации. Иностранный доход или отсутствие классического испанского трудового договора могут усложнить проверку.\":\"Страхова компанія оцінює дохід і ризик самостійно. Вона може запросити той самий фінансовий пакет, додаткові документи та перевірити доступні їй системи кредитної інформації. Іноземний дохід або відсутність класичного іспанського трудового договору можуть ускладнити перевірку.\",\"По квартире Santa Margarida собственница одобрила нас, но страховая официально отказала. По финальной квартире агент называла три этапа внутренней проверки; их содержание мне не объяснили. Проверка заняла несколько рабочих дней.\":\"Щодо квартири Santa Margarida власниця схвалила нас, але страхова компанія офіційно відмовила. Щодо квартири, яку я зрештою орендувала, агент називала три етапи внутрішньої перевірки; їхній зміст мені не пояснили. Перевірка тривала кілька робочих днів.\",\"По одному из объектов собственник долго не принимал решение и постоянно запрашивал новые подтверждения: историю и оплату предыдущей аренды, контакт арендодателя, документы о текущем месте проживания и видео банковского счёта. Страховой в этом процессе, насколько следует из переписки, не было. Через несколько дней я внесла резерв за другую квартиру и прекратила этот процесс.\":\"Щодо одного з об’єктів власник довго не ухвалював рішення й постійно запитував нові підтвердження: історію та оплату попередньої оренди, контакт орендодавця, документи про поточне місце проживання та відео банківського рахунку. Страхової компанії в цьому процесі, наскільки випливає з листування, не було. Через кілька днів я внесла резерв за іншу квартиру й припинила цей процес.\",\"09 из 10 \\xb7 Договор и оплата\":\"09 із 10 \\xb7 Договір та оплата\",\"Проверьте комиссию, резервирование, договор и оплату\":\"Перевірте комісію, резервування, договір та оплату\",\"Комиссия агентства, резерв, договор аренды и окончательный платеж -\":\"Комісія агентства, резерв, договір оренди та остаточний платіж —\",\"разные этапы\":\"різні етапи\",\". Условия на каждом из них лучше фиксировать письменно.\":\". Умови на кожному з них краще фіксувати письмово.\",\"В моем поиске встречались разные процедуры: комиссию просили полностью или частично до передачи документов собственнику, делили на платеж до подачи и остаток при заселении либо брали после одобрения. Иногда отдельного договора на услуги агента не предлагали. Эти примеры относились к временной аренде или отдельным посредническим услугам и не отменяют правила о расходах агентства при аренде для постоянного проживания.\":\"Під час мого пошуку траплялися різні процедури: комісію просили повністю або частково до передавання документів власнику, ділили на платіж до подання та залишок під час заселення або брали після схвалення. Іноді окремого договору на послуги агента не пропонували. Ці приклади стосувалися тимчасової оренди або окремих посередницьких послуг і не скасовують правила щодо витрат агентства за оренди для постійного проживання.\",\"До оплаты комиссии уточните, за какую услугу и в какой момент она взимается, вернут ли ее при отказе собственника или страховой и может ли у объекта оказаться второй агент со своей комиссией.\":\"До сплати комісії уточніть, за яку послугу й у який момент її стягують, чи повернуть її в разі відмови власника або страхової компанії та чи може в об’єкта бути другий агент зі своєю комісією.\",\"Резерв\":\"Резерв\",\"Если договор еще не готов, до перевода резерва письменно подтвердите хотя бы квартиру и адрес, тип и срок аренды, стоимость, назначение платежа и условия его возврата. Это рекомендация, а не гарантия того, что агент предоставит отдельный договор на резерв.\":\"Якщо договір ще не готовий, до переказу резерву письмово підтвердьте щонайменше квартиру й адресу, тип і строк оренди, вартість, призначення платежу та умови його повернення. Це рекомендація, а не гарантія того, що агент надасть окремий договір на резерв.\",\"По объекту в Бадалоне первоначально согласовали один месяц залога и два бесплатных месяца. После одобрения условия изменились: два месяца залога и один бесплатный месяц. Первую ссылку на резерв прислали для другого адреса. Я не подписала документ после ухудшения условий.\":\"Щодо об’єкта в Бадалоні спочатку погодили один місяць застави та два безкоштовні місяці. Після схвалення умови змінилися: два місяці застави та один безкоштовний місяць. Перше посилання на резерв надіслали для іншої адреси. Я не підписала документ після погіршення умов.\",\"Договор\":\"Договір\",\"Агенты могут подталкивать к немедленному решению.\":\"Агенти можуть підштовхувати до негайного рішення.\",\"Срочность рынка реальна, но она не отменяет необходимость прочитать документ.\":\"Терміновість ринку реальна, але вона не скасовує потреби прочитати документ.\",\"Прочитайте договор целиком. Особое внимание уделите адресу и сторонам, типу и сроку аренды, условиям расторжения и штрафам, всем платежам, составу жильцов, животным, регистрации по адресу и описи имущества. Сверьте текст с тем, что вам обещали в переписке.\":\"Прочитайте договір повністю. Особливу увагу приділіть адресі та сторонам, типу й строку оренди, умовам розірвання та штрафам, усім платежам, складу мешканців, тваринам, реєстрації за адресою та опису майна. Звірте текст із тим, що вам обіцяли в листуванні.\",\"Правильный договор я получила примерно за час до передачи ключей; до этого по ошибке прислали документ по другому объекту. В тексте арендатором была указана только я, проживание второго человека требовало письменного согласия, а животные запрещались без отдельного разрешения. Я сверила договор с нашей перепиской и потребовала исправить критичные условия до подписания. Агенты тоже работают в спешке и могут ошибаться, поэтому проверяйте адрес, суммы и договоренности самостоятельно.\":\"Правильний договір я отримала приблизно за годину до передавання ключів; до цього помилково надіслали документ щодо іншого об’єкта. У тексті орендарем була вказана лише я, проживання другої людини потребувало письмової згоди, а тварини заборонялися без окремого дозволу. Я звірила договір із нашим листуванням і вимагала виправити критичні умови до підписання. Агенти теж працюють у поспіху й можуть помилятися, тому перевіряйте адресу, суми та домовленості самостійно.\",\"Платеж\":\"Платіж\",\"Убедитесь, что получатель связан с собственником или уполномоченным агентом, реквизиты пришли по подтвержденному каналу, а сумма совпадает с письменным расчетом.\":\"Переконайтеся, що одержувач пов’язаний із власником або уповноваженим агентом, реквізити надійшли через підтверджений канал, а сума збігається з письмовим розрахунком.\",\"В одном контакте предполагаемая собственница утверждала, что живет в Португалии, и предлагала сначала оплатить \\xabбронирование через Booking\\xbb, после чего представитель якобы должен был организовать встречу. Это признаки распространенной мошеннической схемы, а не подтвержденная процедура платформы.\":\"В одному контакті ймовірна власниця стверджувала, що живе в Португалії, і пропонувала спочатку оплатити \\xabбронювання через Booking\\xbb, після чого представник нібито мав організувати зустріч. Це ознаки поширеної шахрайської схеми, а не підтверджена процедура платформи.\",\"Не переводите деньги только потому, что вас торопят или платежная страница использует знакомый логотип. Самостоятельно проверьте домен, объект, собственника, получателя и назначение платежа.\":\"Не переказуйте гроші лише тому, що вас кваплять або платіжна сторінка використовує знайомий логотип. Самостійно перевірте домен, об’єкт, власника, одержувача та призначення платежу.\",\"10 из 10 \\xb7 Приёмка квартиры\":\"10 із 10 \\xb7 Приймання квартири\",\"Примите квартиру и зафиксируйте ее состояние\":\"Прийміть квартиру та зафіксуйте її стан\",\"При заселении постарайтесь максимально проверить, что квартира и оборудование исправны, и зафиксировать ее состояние.\":\"Під час заселення постарайтеся максимально перевірити, що квартира й обладнання справні, та зафіксувати її стан.\",\"Проверьте квартиру, мебель, технику и имущество из описи.\":\"Перевірте квартиру, меблі, техніку та майно з опису.\",\"Сделайте фото и видео заметных повреждений и письменно отправьте замечания агенту или собственнику.\":\"Зробіть фото й відео помітних пошкоджень і письмово надішліть зауваження агенту або власнику.\",\"Я подписала договор и акт приема-передачи до фактического осмотра квартиры. Уже после въезда начали проявляться недостатки. Например, растения на террасе вошли в опись как имущество, а позже оказалось, что часть из них полностью высохла и рассыпалась при прикосновении.\":\"Я підписала договір і акт приймання-передачі до фактичного огляду квартири. Уже після заселення почали виявлятися недоліки. Наприклад, рослини на терасі внесли до опису як майно, а пізніше виявилося, що частина з них повністю висохла й розсипалася від дотику.\",\"Визуальный просмотр показывает далеко не все: некоторые проблемы обнаруживаются только после включения техники, использования воды или первой ночи в квартире.\":\"Візуальний огляд показує далеко не все: деякі проблеми виявляються лише після ввімкнення техніки, користування водою або першої ночі у квартирі.\",\"По возможности осмотрите квартиру до подписания акта. Если это невозможно, попросите один-два дня на дополнительную проверку и заранее согласуйте, как зафиксировать обнаруженные недостатки.\":\"За можливості огляньте квартиру до підписання акта. Якщо це неможливо, попросіть один-два дні на додаткову перевірку й заздалегідь погодьте, як зафіксувати виявлені недоліки.\",\"Заключение\":\"Висновок\",\"Поиск квартиры в Барселоне редко идет по прямой схеме. Доступный вам рынок определяется не общим числом объявлений, а пересечением типа аренды, бюджета, документов, животных, района и критериев конкретного собственника. Подготовка не гарантирует одобрение, но заметно сокращает количество бессмысленных заявок и помогает быстрее действовать там, где шанс действительно есть. Определите свой маршрут, заранее посчитайте предельный бюджет, соберите презентацию и документы, выстройте сеть контактов и внимательно проверяйте условия перед оплатой.\":\"Пошук квартири в Барселоні рідко відбувається за прямою схемою. Доступний вам ринок визначається не загальною кількістю оголошень, а перетином типу оренди, бюджету, документів, тварин, району та критеріїв конкретного власника. Підготовка не гарантує схвалення, але помітно скорочує кількість беззмістовних заявок і допомагає швидше діяти там, де шанс справді є. Визначте свій маршрут, заздалегідь розрахуйте граничний бюджет, зберіть презентацію та документи, вибудуйте мережу контактів і уважно перевіряйте умови перед оплатою.\",\"С чего начать сейчас\":\"З чого почати зараз\",\"ОПРЕДЕЛИТЕ РАМКИ ПОИСКА\":\"ВИЗНАЧТЕ РАМКИ ПОШУКУ\",\"Выберите тип аренды и разделите критерии на обязательные и вторичные.\":\"Оберіть тип оренди та розділіть критерії на обов’язкові й другорядні.\",\"ПОДГОТОВЬТЕСЬ К ПОДАЧЕ\":\"ПІДГОТУЙТЕСЯ ДО ПОДАННЯ ЗАЯВКИ\",\"Рассчитайте три бюджета, подготовьте презентацию и соберите документы.\":\"Розрахуйте три бюджети, підготуйте презентацію та зберіть документи.\",\"ЗАПУСТИТЕ ПОИСК\":\"РОЗПОЧНІТЬ ПОШУК\",\"Настройте каналы, проверяйте стоп-факторы и отвечайте на подходящие объявления.\":\"Налаштуйте канали, перевіряйте стоп-фактори та відповідайте на відповідні оголошення.\",\"Руководство объясняет логику. Помощник поможет применить ее: рассчитать бюджет, подготовить презентацию и собрать документы.\":\"Посібник пояснює логіку. Помічник допоможе застосувати її: розрахувати бюджет, підготувати презентацію та зібрати документи.\",\"Короткий словарь\":\"Короткий словник\",\"Аренда для постоянного проживания \\xb7 alquiler de vivienda habitual\":\"Оренда для постійного проживання \\xb7 alquiler de vivienda habitual\",\"Квартира становится вашим основным местом жительства. Такой договор дает арендатору более сильную правовую защиту и при соблюдении условий закона может продлеваться до пяти лет, если собственник — физическое лицо, или до семи лет, если собственник — юридическое лицо.\":\"Квартира стає вашим основним місцем проживання. Такий договір дає орендарю сильніший правовий захист і за дотримання умов закону може продовжуватися до п’яти років, якщо власник — фізична особа, або до семи років, якщо власник — юридична особа.\",\"Аренда для временного проживания \\xb7 alquiler de temporada\":\"Оренда для тимчасового проживання \\xb7 alquiler de temporada\",\"Договор заключается из-за конкретной временной причины: работы, учебы, лечения, проекта или другого ограниченного по времени пребывания. Универсального минимального или максимального срока нет: срок должен соответствовать подтверждаемой причине.\":\"Договір укладають через конкретну тимчасову причину: роботу, навчання, лікування, проєкт або інше обмежене в часі перебування. Універсального мінімального чи максимального строку немає: строк має відповідати причині, яку можна підтвердити.\",\"Обязательный залог \\xb7 fianza\":\"Обов’язкова застава \\xb7 fianza\",\"Денежное обеспечение исполнения договора, предусмотренное законом. В объявлениях и переписке агенты часто называют его просто депозитом.\":\"Грошове забезпечення виконання договору, передбачене законом. В оголошеннях і листуванні агенти часто називають його просто депозитом.\",\"Дополнительная гарантия \\xb7 garant\\xeda adicional\":\"Додаткова гарантія \\xb7 garant\\xeda adicional\",\"Дополнительное обеспечение обязательств арендатора. Это могут быть деньги, банковская гарантия, блокировка средств или другой согласованный инструмент.\":\"Додаткове забезпечення зобов’язань орендаря. Це можуть бути гроші, банківська гарантія, блокування коштів або інший погоджений інструмент.\",\"Платеж за резервирование \\xb7 reserva\":\"Платіж за резервування \\xb7 reserva\",\"Сумма, после получения которой объект временно снимают с рынка. До перевода важно письменно уточнить, куда будет зачтена сумма и в каких случаях она возвращается.\":\"Сума, після отримання якої об’єкт тимчасово знімають із ринку. До переказу важливо письмово уточнити, куди буде зараховано суму й у яких випадках її повертають.\",\"Комиссия агентства \\xb7 honorarios\":\"Комісія агентства \\xb7 honorarios\",\"Вознаграждение за участие агента в конкретной сделке. Это не то же самое, что отдельная услуга платного подбора, когда специалист ищет объект по вашим критериям на открытом рынке и среди партнеров.\":\"Винагорода за участь агента в конкретній угоді. Це не те саме, що окрема послуга платного підбору, коли фахівець шукає об’єкт за вашими критеріями на відкритому ринку та серед партнерів.\",\"НДС \\xb7 IVA\":\"ПДВ \\xb7 IVA\",\"Налог, который может добавляться к облагаемой услуге.\":\"Податок, який може додаватися до оподатковуваної послуги.\",\"Страховка от неуплаты аренды \\xb7 seguro de impago\":\"Страхування від несплати оренди \\xb7 seguro de impago\",\"Страховка собственника от риска неоплаты. При ее оформлении страховая проверяет кандидата по своим базам и внутренней системе оценки.\":\"Страхування власника від ризику несплати. Під час його оформлення страхова компанія перевіряє кандидата за своїми базами та внутрішньою системою оцінювання.\",\"Расчетный лист \\xb7 n\\xf3mina\":\"Розрахунковий лист \\xb7 n\\xf3mina\",\"Ежемесячный документ работодателя с начисленной зарплатой и удержаниями. Обычно запрашивают три последние n\\xf3minas, то есть расчетные листы за три месяца.\":\"Щомісячний документ роботодавця з нарахованою заробітною платою та утриманнями. Зазвичай запитують три останні n\\xf3minas, тобто розрахункові листи за три місяці.\",\"Акт приема-передачи \\xb7 acta de entrega\":\"Акт приймання-передачі \\xb7 acta de entrega\",\"Документ, который оформляют при заселении: в нем фиксируют передачу ключей, состояние квартиры, имущество и замечания сторон.\":\"Документ, який оформлюють під час заселення: у ньому фіксують передавання ключів, стан квартири, майно та зауваження сторін.\",\"Источники и дата актуальности\":\"Джерела та дата актуальності\",\"Правовой срез проверен 27 августа 2026 года. Основные первичные и официальные источники:\":\"Правовий зріз перевірено 27 серпня 2026 року. Основні первинні та офіційні джерела:\",\"Рыночные данные: ручной срез Idealista по Barcelona ciudad от 26 августа 2026 года. Числа отражают результаты поиска с указанными фильтрами, не являются количеством уникальных физических объектов и не описывают весь рынок. Доля предложений, которые не публикуются на Idealista, неизвестна.\":\"Ринкові дані: ручний зріз Idealista по Barcelona ciudad від 26 серпня 2026 року. Числа відображають результати пошуку із зазначеними фільтрами, не є кількістю унікальних фізичних об’єктів і не описують увесь ринок. Частка пропозицій, які не публікуються на Idealista, невідома.\",\"Личный материал: переписки автора с агентами и собственниками, просмотры, заявки, документы, финансовые условия и договорные процессы апреля–июня 2026 года.\":\"Особистий матеріал: листування автора з агентами та власниками, перегляди, заявки, документи, фінансові умови й договірні процеси квітня–червня 2026 року.\",\"Aviso legal\":\"Правова інформація\",\"Titular del sitio\":\"Власник сайту\",\"Domicilio profesional\":\"Адреса професійної діяльності\",\"Contacto\":\"Контакт\",\"Registro profesional\":\"Професійна реєстрація\",\"El contenido de esta p\\xe1gina tiene car\\xe1cter informativo y no sustituye el asesoramiento jur\\xeddico individual. Antes de tomar una decisi\\xf3n, compruebe la vigencia de las normas y las condiciones del caso concreto.\":\"Зміст цієї сторінки має інформаційний характер і не замінює індивідуальної юридичної консультації. Перед ухваленням рішення перевірте чинність норм та умови конкретного випадку.\",\"Как снять квартиру в Барселоне: пошаговое руководство\":\"Як орендувати квартиру в Барселоні: покроковий посібник\",\"Практическое руководство по аренде квартиры в Барселоне: типы договоров, бюджет, документы, поиск, проверка условий и приёмка жилья.\":\"Практичний посібник з оренди квартири в Барселоні: типи договорів, бюджет, документи, пошук, перевірка умов і приймання житла.\",\"1. Определите, квартира нужна вам для постоянного проживания или на ограниченный срок по конкретной подтверждаемой причине.\":\"1. Визначте, чи потрібна вам квартира для постійного проживання, чи на обмежений строк із конкретної причини, яку можна підтвердити.\",\"2. Определите, на какие объекты вы реально можете претендовать и какие критерии для вас обязательны, а какие вторичны.\":\"2. Визначте, на які об’єкти ви реально можете претендувати та які критерії для вас обов’язкові, а які другорядні.\",\"3. Рассчитайте допустимую аренду, деньги на заселение и предельный бюджет сделки.\":\"3. Розрахуйте допустиму орендну плату, гроші для заселення та граничний бюджет угоди.\",\"4. Выберите стратегию: самостоятельный поиск у собственников, работа с агентами и управляющими компаниями или платный подбор. На практике эти маршруты можно сочетать.\":\"4. Оберіть стратегію: самостійний пошук у власників, робота з агентами та керуючими компаніями або платний підбір. На практиці ці маршрути можна поєднувати.\",\"5. Подготовьте презентацию арендатора под выбранный тип аренды и заранее соберите пакет документов.\":\"5. Підготуйте презентацію орендаря під обраний тип оренди та заздалегідь зберіть пакет документів.\",\"6. Используйте несколько каналов поиска и оперативно реагируйте на каждое подходящее объявление. Критические условия сначала проверяйте коротким сообщением.\":\"6. Використовуйте кілька каналів пошуку й оперативно реагуйте на кожне відповідне оголошення. Критичні умови спочатку перевіряйте коротким повідомленням.\",\"7. Перед подписанием и оплатой прочитайте документы. Если договор еще не предоставлен, письменно зафиксируйте хотя бы основные финансовые и договорные условия.\":\"7. Перед підписанням і оплатою прочитайте документи. Якщо договір ще не надано, письмово зафіксуйте щонайменше основні фінансові та договірні умови.\",\"01 Тип аренды\":\"01 Тип оренди\",\"02 Доступность рынка\":\"02 Доступність ринку\",\"03 Три бюджета\":\"03 Три бюджети\",\"04 Стратегия поиска\":\"04 Стратегія пошуку\",\"05 Презентация и документы\":\"05 Презентація та документи\",\"06 Сеть каналов\":\"06 Мережа каналів\",\"07 Квалификация объекта\":\"07 Кваліфікація об’єкта\",\"08 Проверка кандидата\":\"08 Перевірка кандидата\",\"09 Договор и оплата\":\"09 Договір та оплата\",\"10 Приемка квартиры\":\"10 Приймання квартири\",\"Подробные данные и методология\":\"Детальні дані та методологія\",\"Этот раздел нужен для проверки исходных данных. Для практического решения достаточно воронки и выводов выше.\":\"Цей розділ потрібен для перевірки вихідних даних. Для практичного рішення достатньо воронки та висновків вище.\",\"ТИП\":\"ТИП\",\"ОБЪЕКТОВ\":\"ОБ’ЄКТІВ\",\"ДОЛЯ ВЫДАЧИ\":\"ЧАСТКА РЕЗУЛЬТАТІВ\",\"Для постоянного проживания\":\"Для постійного проживання\",\"Для временного проживания\":\"Для тимчасового проживання\",\"Всего\":\"Усього\",\"Почти три четверти выдачи приходилось на временную аренду. Для постоянного проживания исходный выбор сокращался с 2 865 до 798 вариантов еще до бюджета, района и проверки дохода.\":\"Майже три чверті видачі припадало на тимчасову оренду. Для постійного проживання початковий вибір скорочувався з 2 865 до 798 варіантів ще до врахування бюджету, району та перевірки доходу.\",\"Бюджет внутри каждого типа\":\"Бюджет у межах кожного типу\",\"МЕСЯЧНАЯ АРЕНДА\":\"МІСЯЧНА ОРЕНДНА ПЛАТА\",\"ПОСТОЯННОЕ\":\"ПОСТІЙНЕ\",\"ВРЕМЕННОЕ\":\"ТИМЧАСОВЕ\",\"До €2 000 было 255 вариантов для постоянного проживания: 32% сегмента и 8,9% всей выдачи. Во временной аренде в тот же бюджет попадали 930 объектов, или около 45% сегмента.\":\"До €2 000 було 255 варіантів для постійного проживання: 32% сегмента й 8,9% усієї видачі. У тимчасовій оренді в той самий бюджет потрапляли 930 об’єктів, або близько 45% сегмента.\",\"Спальни внутри каждого типа\":\"Спальні в межах кожного типу\",\"СПАЛЬНИ\":\"СПАЛЬНІ\",\"Студии\":\"Студії\",\"1 спальня\":\"1 спальня\",\"2 спальни\":\"2 спальні\",\"3 спальни\":\"3 спальні\",\"4 и более\":\"4 і більше\",\"Во временной аренде квартиры с одной и двумя спальнями составляли 65,7% сегмента. В аренде для постоянного проживания 56,1% выдачи приходилось на три спальни и более.\":\"У тимчасовій оренді квартири з однією та двома спальнями становили 65,7% сегмента. В оренді для постійного проживання 56,1% видачі припадало на три спальні й більше.\",\"Животные внутри каждого типа\":\"Тварини в межах кожного типу\",\"ТИП АРЕНДЫ\":\"ТИП ОРЕНДИ\",\"ВСЕГО\":\"УСЬОГО\",\"РАЗРЕШЕНЫ\":\"ДОЗВОЛЕНІ\",\"ДОЛЯ\":\"ЧАСТКА\",\"Временное проживание\":\"Тимчасове проживання\",\"Животные были явно разрешены менее чем в каждом пятом объявлении для постоянного проживания и чуть чаще чем в каждом четвертом объявлении временной аренды.\":\"Тварини були явно дозволені менш ніж у кожному п’ятому оголошенні для постійного проживання й трохи частіше ніж у кожному четвертому оголошенні тимчасової оренди.\",\"Районы внутри каждого типа\":\"Райони в межах кожного типу\",\"РАЙОН\":\"РАЙОН\",\"Временная аренда особенно концентрировалась в Eixample - центральном районе с классической застройкой и высокой стоимостью - и Ciutat Vella, старом туристическом центре. Вместе они давали 64,5% сегмента. В аренде для постоянного проживания заметно выше была доля Sarri\\xe0-Sant Gervasi - более спокойного и дорогого жилого района.\":\"Тимчасова оренда особливо концентрувалася в Eixample — центральному районі з класичною забудовою та високою вартістю — і Ciutat Vella, старому туристичному центрі. Разом вони давали 64,5% сегмента. В оренді для постійного проживання помітно вищою була частка Sarri\\xe0-Sant Gervasi — спокійнішого й дорожчого житлового району.\",\"Проведите в сторону →\":\"Проведіть пальцем убік →\",\"1–3 июня \\xb7 просмотры, выбор объекта, дополнение документов\":\"1–3 червня \\xb7 перегляди, вибір об’єкта, доповнення документів\",\"3–6 июня \\xb7 подтверждения дохода и временной причины, резерв\":\"3–6 червня \\xb7 підтвердження доходу й тимчасової причини, резерв\",\"8–11 июня \\xb7 внутренняя проверка и окончательное одобрение\":\"8–11 червня \\xb7 внутрішня перевірка та остаточне схвалення\",\"12–14 июня \\xb7 согласование договора и передачи ключей\":\"12–14 червня \\xb7 узгодження договору та передачі ключів\",\"15 июня \\xb7 правильный договор, подпись и получение ключей\":\"15 червня \\xb7 правильний договір, підписання та отримання ключів\",\"01 Определите подходящий тип аренды.\":\"01 Визначте відповідний тип оренди.\",\"02 Рассчитайте допустимую ежемесячную аренду, сумму на заселение и предельный бюджет сделки.\":\"02 Розрахуйте допустиму щомісячну орендну плату, суму для заселення та граничний бюджет угоди.\",\"03 Разделите критерии на обязательные и вторичные.\":\"03 Розділіть критерії на обов’язкові й другорядні.\",\"04 Подготовьте презентацию арендатора и пакет документов.\":\"04 Підготуйте презентацію орендаря та пакет документів.\",\"05 Настройте каналы поиска и начните общение с агентами.\":\"05 Налаштуйте канали пошуку й почніть спілкування з агентами.\",\"Первое действие: рассчитайте допустимую аренду, сумму на заселение и предел всей сделки.\":\"Перша дія: розрахуйте допустиму орендну плату, суму для заселення та граничний бюджет усієї угоди.\",\"Постоянное: 54 \\xb7 6,8%\":\"Постійне: 54 \\xb7 6,8%\",\"Временное: 282 \\xb7 13,6%\":\"Тимчасове: 282 \\xb7 13,6%\",\"Постоянное: 80 \\xb7 10,0%\":\"Постійне: 80 \\xb7 10,0%\",\"Временное: 267 \\xb7 12,9%\":\"Тимчасове: 267 \\xb7 12,9%\",\"Постоянное: 121 \\xb7 15,2%\":\"Постійне: 121 \\xb7 15,2%\",\"Временное: 381 \\xb7 18,4%\":\"Тимчасове: 381 \\xb7 18,4%\",\"Постоянное: 63 \\xb7 7,9%\":\"Постійне: 63 \\xb7 7,9%\",\"Временное: 222 \\xb7 10,7%\":\"Тимчасове: 222 \\xb7 10,7%\",\"Постоянное: 43 \\xb7 5,4%\":\"Постійне: 43 \\xb7 5,4%\",\"Временное: 213 \\xb7 10,3%\":\"Тимчасове: 213 \\xb7 10,3%\",\"Постоянное: 44 \\xb7 5,5%\":\"Постійне: 44 \\xb7 5,5%\",\"Временное: 197 \\xb7 9,5%\":\"Тимчасове: 197 \\xb7 9,5%\",\"Постоянное: 152 \\xb7 19,0%\":\"Постійне: 152 \\xb7 19,0%\",\"Временное: 343 \\xb7 16,6%\":\"Тимчасове: 343 \\xb7 16,6%\",\"Постоянное: 241 \\xb7 30,2%\":\"Постійне: 241 \\xb7 30,2%\",\"Временное: 163 \\xb7 7,9%\":\"Тимчасове: 163 \\xb7 7,9%\",\"Постоянное: 47 \\xb7 5,9%\":\"Постійне: 47 \\xb7 5,9%\",\"Временное: 143 \\xb7 6,9%\":\"Тимчасове: 143 \\xb7 6,9%\",\"Постоянное: 113 \\xb7 14,2%\":\"Постійне: 113 \\xb7 14,2%\",\"Временное: 519 \\xb7 25,1%\":\"Тимчасове: 519 \\xb7 25,1%\",\"Постоянное: 191 \\xb7 23,9%\":\"Постійне: 191 \\xb7 23,9%\",\"Временное: 840 \\xb7 40,6%\":\"Тимчасове: 840 \\xb7 40,6%\",\"Постоянное: 188 \\xb7 23,6%\":\"Постійне: 188 \\xb7 23,6%\",\"Временное: 405 \\xb7 19,6%\":\"Тимчасове: 405 \\xb7 19,6%\",\"Постоянное: 259 \\xb7 32,5%\":\"Постійне: 259 \\xb7 32,5%\",\"Временное: 160 \\xb7 7,7%\":\"Тимчасове: 160 \\xb7 7,7%\",\"Всего: 798\":\"Усього: 798\",\"Разрешены: 145\":\"Дозволені: 145\",\"Доля: 18,2%\":\"Частка: 18,2%\",\"Всего: 2 067\":\"Усього: 2 067\",\"Разрешены: 587\":\"Дозволені: 587\",\"Доля: 28,4%\":\"Частка: 28,4%\",\"Постоянное: 235 \\xb7 29,4%\":\"Постійне: 235 \\xb7 29,4%\",\"Временное: 685 \\xb7 33,1%\":\"Тимчасове: 685 \\xb7 33,1%\",\"Постоянное: 139 \\xb7 17,4%\":\"Постійне: 139 \\xb7 17,4%\",\"Временное: 649 \\xb7 31,4%\":\"Тимчасове: 649 \\xb7 31,4%\",\"Постоянное: 186 \\xb7 23,3%\":\"Постійне: 186 \\xb7 23,3%\",\"Временное: 172 \\xb7 8,3%\":\"Тимчасове: 172 \\xb7 8,3%\",\"Постоянное: 49 \\xb7 6,1%\":\"Постійне: 49 \\xb7 6,1%\",\"Временное: 175 \\xb7 8,5%\":\"Тимчасове: 175 \\xb7 8,5%\",\"Временное: 153 \\xb7 7,4%\":\"Тимчасове: 153 \\xb7 7,4%\",\"Постоянное: 41 \\xb7 5,1%\":\"Постійне: 41 \\xb7 5,1%\",\"Временное: 104 \\xb7 5,0%\":\"Тимчасове: 104 \\xb7 5,0%\",\"Постоянное: 56 \\xb7 7,0%\":\"Постійне: 56 \\xb7 7,0%\",\"Временное: 46 \\xb7 2,2%\":\"Тимчасове: 46 \\xb7 2,2%\",\"Постоянное: 31 \\xb7 3,9%\":\"Постійне: 31 \\xb7 3,9%\",\"Временное: 48 \\xb7 2,3%\":\"Тимчасове: 48 \\xb7 2,3%\",\"Постоянное: 12 \\xb7 1,5%\":\"Постійне: 12 \\xb7 1,5%\",\"Временное: 21 \\xb7 1,0%\":\"Тимчасове: 21 \\xb7 1,0%\",\"Постоянное: 5 \\xb7 0,6%\":\"Постійне: 5 \\xb7 0,6%\",\"Временное: 14 \\xb7 0,7%\":\"Тимчасове: 14 \\xb7 0,7%\",\"Арендатор \":\"Орендар \",\" взрослых\":\" дорослих\",\"Проживающие: \":\"Мешканці: \",\"Тип аренды: \":\"Тип оренди: \",\"Заселение: \":\"Заселення: \",\"; срок: \":\"; строк: \",\"Подтверждение дохода: \":\"Підтвердження доходу: \",\"Питомец: \":\"Домашня тварина: \",\"Причина временной аренды: \":\"Причина тимчасової оренди: \",\"Доход: \":\"Дохід: \",\"Сбережения: \":\"Заощадження: \",\"Причина переезда: \":\"Причина переїзду: \",\"Дополнительно: \":\"Додатково: \",\": подтверждение дохода\":\": підтвердження доходу\",\"Запас относительно личного лимита: \":\"Запас відносно особистого ліміту: \",\"Полная сумма превышает личный лимит на \":\"Повна сума перевищує особистий ліміт на \"};const UK_TRANSLATION_ENTRIES=Object.entries(UK_TRANSLATIONS).sort((a,b)=>b[0].length-a[0].length);const UK_TRANSLATED_VALUES=new Set(Object.values(UK_TRANSLATIONS));function urlLocale(){if(typeof window===\"undefined\")return null;return window.location.pathname===\"/uk\"||window.location.pathname.startsWith(\"/uk/\")?\"uk\":\"ru\";}function resolveLocale(){if(typeof window===\"undefined\")return\"ru\";const fromUrl=urlLocale();if(fromUrl)return fromUrl;const saved=window.localStorage.getItem(LOCALE_KEY);if(saved===\"ru\"||saved===\"uk\")return saved;return navigator.language.toLowerCase().startsWith(\"uk\")?\"uk\":\"ru\";}function basePath(path){const clean=path===\"/uk\"?\"/\":path.replace(/^\\/uk(?=\\/)/,\"\");return clean||\"/\";}function localePath(path,locale){const clean=basePath(path);return locale===\"uk\"?`/uk${clean===\"/\"?\"\":clean}`:clean;}function translateUk(value){if(UK_TRANSLATED_VALUES.has(value.trim()))return value;const exact=UK_TRANSLATIONS[value];if(exact)return exact;let result=value;for(const[ru,uk]of UK_TRANSLATION_ENTRIES){if(ru.length>=4&&result.includes(ru))result=result.split(ru).join(uk);}return result;}const PLAYBOOK_CHAPTER_6_URL=\"/kak-snyat-kvartiru-v-barselone#postroyte-set-kanalov-i-kontaktov\";const KEY=\"brp.helper.state\";const BACKUP_KEY=\"brp.helper.state.backup\";const DEVICE_KEY=\"brp.helper.device_id\";const SESSION_KEY=\"brp.helper.session\";const SOURCE_VALUES=[\"direct_helper\",\"documents_cta\",\"presentation_cta\",\"budget_cta\",\"other\"];const TOOL_IDS=[\"documents\",\"presentation\",\"budget\"];const DEFAULT_API_BASE=\"https://brp-helper-api.brp-helper-worker.workers.dev\";const DEFAULT_ANALYTICS_HOST=\"https://eu.i.posthog.com\";const DEFAULT_ANALYTICS_KEY=\"phc_nDsjXhmenWBFgTB9bzbKea6xAenQ4TxFUZM4e83eaSgi\";const ROUTES={documents:\"/helper/documents\",presentation:\"/helper/presentation\",budget:\"/helper/budget\"};const ANALYTICS_ROUTES=new Set([\"/helper\",\"/helper/unlock\",\"/helper/documents\",\"/helper/presentation\",\"/helper/budget\",\"/helper/recovery\"]);const TOOL_COPY={documents:{title:\"Пакет документов\",description:\"Соберите понятный список документов под вашу ситуацию.\",action:\"Открыть пакет\"},presentation:{title:\"Презентация арендатора\",description:\"Подготовьте краткую презентацию для собственника или агента.\",action:\"Открыть конструктор\"},budget:{title:\"Бюджет заселения\",description:\"Разложите сумму на входе по категориям и проверьте условия.\",action:\"Открыть калькулятор\"}};const INCOME_OPTIONS=[{id:\"employment_es\",label:\"Работа по трудовому договору в Испании\"},{id:\"autonomo_es\",label:\"Aut\\xf3nomo в Испании\"},{id:\"company_owner_director\",label:\"Владелец / руководитель компании в Испании\"},{id:\"employment_outside_es\",label:\"Работа по трудовому договору за пределами Испании\"},{id:\"other_foreign_or_business\",label:\"Другой иностранный или предпринимательский доход\"},{id:\"no_income\",label:\"Нет собственного дохода\"}];const PROFILE_DOCUMENTS={employment_es:{required:[\"Трудовой договор (contrato de trabajo)\",\"3 последние расчетные листы (n\\xf3minas)\"],optional:[\"Vida laboral\",\"Последняя налоговая декларация (Declaraci\\xf3n de la Renta / Modelo 100)\",\"Банковская выписка с поступлениями зарплаты\"]},autonomo_es:{required:[\"Подтверждение статуса aut\\xf3nomo\",\"Последние применимые квартальные налоговые декларации\",\"Последняя налоговая декларация (Modelo 100)\",\"Банковская выписка с регулярными поступлениями\"],optional:[\"Подтверждение сбережений для усиления профиля\"]},company_owner_director:{required:[\"Последняя личная налоговая декларация (Modelo 100)\",\"Документ, подтверждающий роль в компании\"],optional:[\"Документы компании, если они помогают объяснить источник личного дохода\"]},employment_outside_es:{required:[\"Трудовой договор или справка работодателя\",\"Последние расчетные листы\",\"Банковская выписка с поступлениями\"],optional:[\"Налоговая декларация\",\"Письмо работодателя\",\"Подтверждение сбережений\"]},other_foreign_or_business:{required:[\"Документ, объясняющий источник дохода\",\"Договоры, счета или другие подтверждения начислений\",\"Налоговая декларация\",\"Банковское подтверждение поступлений\"],optional:[\"Подтверждение сбережений\",\"Дополнительные договоры или счета\",\"Документы компании, если они объясняют личный доход\"]},no_income:{required:[],optional:[]}};function documentSetup(tool,state){const raw=isRecord(tool.answers.documents_setup)?tool.answers.documents_setup:{};const adultCount=typeof raw.adult_count===\"number\"&&raw.adult_count>=1&&raw.adult_count<=4?raw.adult_count:Math.max(1,state.shared.adults.length||1);const profiles=Array.isArray(raw.income_profiles)?raw.income_profiles:state.shared.adults.map(adult=>adult.income_profiles);const modes=Array.isArray(raw.company_income_modes)?raw.company_income_modes:[];return{rental_type:[\"unknown\",\"habitual\",\"temporada\"].includes(String(raw.rental_type))?raw.rental_type:state.shared.rental_type,adult_count:adultCount,income_profiles:Array.from({length:adultCount},(_,index)=>Array.isArray(profiles[index])?profiles[index].filter(p=>INCOME_OPTIONS.some(o=>o.id===p)):[]),company_income_modes:Array.from({length:adultCount},(_,index)=>Array.isArray(modes[index])?modes[index].filter(m=>m===\"salary\"||m===\"dividends\"):[]),configured:raw.configured===true};}function legacySlug(value){return value.toLowerCase().replace(/[^a-z0-9а-яіїєґ]+/gi,\"-\").replace(/^-|-$/g,\"\").slice(0,44);}function documentKey(title){const known={\"Документ, удостоверяющий личность\":\"identity\",\"Трудовой договор (contrato de trabajo)\":\"employment-contract\",\"3 последние расчетные листы (n\\xf3minas)\":\"three-payslips\",\"Vida laboral\":\"vida-laboral\",\"Последняя налоговая декларация (Declaraci\\xf3n de la Renta / Modelo 100)\":\"tax-return-modelo-100-full\",\"Банковская выписка с поступлениями зарплаты\":\"bank-salary-income\",\"Подтверждение статуса aut\\xf3nomo\":\"autonomo-status\",\"Последние применимые квартальные налоговые декларации\":\"quarterly-tax-returns\",\"Последняя налоговая декларация (Modelo 100)\":\"tax-return-modelo-100\",\"Банковская выписка с регулярными поступлениями\":\"bank-regular-income\",\"Подтверждение сбережений для усиления профиля\":\"savings-profile\",\"Последняя личная налоговая декларация (Modelo 100)\":\"personal-tax-return-modelo-100\",\"Документ, подтверждающий роль в компании\":\"company-role\",\"Документы компании, если они помогают объяснить источник личного дохода\":\"company-docs-personal-income\",\"Трудовой договор или справка работодателя\":\"employment-contract-or-letter\",\"Последние расчетные листы\":\"recent-payslips\",\"Банковская выписка с поступлениями\":\"bank-income\",\"Налоговая декларация\":\"tax-return\",\"Письмо работодателя\":\"employer-letter\",\"Подтверждение сбережений\":\"savings\",\"Документ, объясняющий источник дохода\":\"income-source-explanation\",\"Договоры, счета или другие подтверждения начислений\":\"contracts-invoices-accruals\",\"Банковское подтверждение поступлений\":\"bank-income-proof\",\"Дополнительные договоры или счета\":\"additional-contracts-invoices\",\"Документы компании, если они объясняют личный доход\":\"company-docs-income\",\"Расчетные листы (n\\xf3minas)\":\"payslips\",\"Банковские поступления зарплаты\":\"bank-salary-receipts\",\"Документ о начислении / распределении дивидендов\":\"dividend-resolution\",\"Банковская выписка с поступлением дивидендов\":\"bank-dividends\",\"Подтверждение временной причины и предполагаемого срока\":\"temporary-reason-period\",\"Подтверждение постоянного адреса вне арендуемой квартиры\":\"external-permanent-address\",\"Предыдущий договор аренды\":\"previous-rental-contract\",\"Подтверждение своевременных платежей\":\"payment-history\",\"Рекомендация или контакт предыдущего собственника\":\"previous-landlord-reference\"};return known[title]||`legacy-${legacySlug(title)}`;}function buildDocumentItems(setup){const items=[];setup.income_profiles.forEach((profiles,adultIndex)=>{items.push({id:`a${adultIndex}-identity`,legacyId:`a${adultIndex}-documento-identidad`,title:\"Документ, удостоверяющий личность\",required:true,group:`Арендатор ${adultIndex+1}`,adultIndex});profiles.forEach(profile=>{const config=PROFILE_DOCUMENTS[profile];config.required.forEach(title=>items.push({id:`a${adultIndex}-${documentKey(title)}`,legacyId:`a${adultIndex}-${legacySlug(title)}`,title,required:true,group:`Арендатор ${adultIndex+1}`,adultIndex}));config.optional.forEach(title=>items.push({id:`a${adultIndex}-${documentKey(title)}`,legacyId:`a${adultIndex}-${legacySlug(title)}`,title,required:false,group:`Арендатор ${adultIndex+1}`,adultIndex}));if(profile===\"company_owner_director\"){const modes=setup.company_income_modes[adultIndex]||[];if(modes.includes(\"salary\"))[\"Расчетные листы (n\\xf3minas)\",\"Банковские поступления зарплаты\"].forEach(title=>items.push({id:`a${adultIndex}-${documentKey(title)}`,legacyId:`a${adultIndex}-${legacySlug(title)}`,title,required:true,group:`Арендатор ${adultIndex+1}`,adultIndex}));if(modes.includes(\"dividends\"))[\"Документ о начислении / распределении дивидендов\",\"Банковская выписка с поступлением дивидендов\"].forEach(title=>items.push({id:`a${adultIndex}-${documentKey(title)}`,legacyId:`a${adultIndex}-${legacySlug(title)}`,title,required:true,group:`Арендатор ${adultIndex+1}`,adultIndex}));}});});if(setup.rental_type===\"temporada\"){[\"Подтверждение временной причины и предполагаемого срока\",\"Подтверждение постоянного адреса вне арендуемой квартиры\"].forEach(title=>items.push({id:`temporada-${documentKey(title)}`,legacyId:`temporada-${legacySlug(title)}`,title,required:true,group:\"Временная аренда\"}));}[\"Предыдущий договор аренды\",\"Подтверждение своевременных платежей\",\"Рекомендация или контакт предыдущего собственника\"].forEach(title=>items.push({id:`history-${documentKey(title)}`,legacyId:`history-${legacySlug(title)}`,title,required:false,group:\"История аренды\"}));const merged=new Map;items.forEach(item=>{const existing=merged.get(item.id);merged.set(item.id,existing?{...existing,required:existing.required||item.required}:item);});return Array.from(merged.values()).map(item=>{if(item.title===\"Документ, объясняющий источник дохода\")return{...item,note:\"Например: договор с клиентом, письмо работодателя, документы компании или пояснение бухгалтера - в зависимости от вашего источника дохода.\"};if(item.title===\"Подтверждение временной причины и предполагаемого срока\")return{...item,note:\"Например: рабочий или учебный договор, письмо от работодателя или учебного заведения, где указаны причина и период пребывания.\"};if(item.title===\"Подтверждение постоянного адреса вне арендуемой квартиры\")return{...item,note:\"Например: действующий договор аренды, подтверждение регистрации по адресу, счет за коммунальные услуги или документ о собственности по постоянному адресу.\"};if(item.title===\"Документ о начислении / распределении дивидендов\")return{...item,note:\"Например: решение или протокол компании о распределении дивидендов.\"};return item;});}function migrateLegacyChecklist(state){const checklist=state.tools.documents.checklist;if(!checklist)return false;const setup=documentSetup(state.tools.documents,state);if(!setup.configured)return false;let changed=false;for(const item of buildDocumentItems(setup)){if(!item.legacyId||checklist[item.id]||!checklist[item.legacyId])continue;checklist[item.id]=checklist[item.legacyId];delete checklist[item.legacyId];changed=true;}return changed;}function emptyBudget(){return{monthly_rent:\"\",contract_type:\"unknown\",deposit_months:\"\",move_in_rent_months:\"1\",first_rent_payment:\"\",deposit_mode:\"split\",fianza:\"\",additional_guarantee:\"\",total_deposit:\"\",prepayment_months:\"\",agency_fee_mode:\"none\",agency_fee_value:\"\",agency_percent_basis:\"annual\",contract_months:\"\",iva_mode:\"included\",iva_rate:\"21\",other_payments:[],already_paid:\"\",already_paid_allocation:\"unknown\",monthly_net_income:\"\",personal_limit:\"\"};}function emptyPresentation(state){const adults=Math.max(1,state.shared.adults.length);return{household:adults===1?\"1 взрослый\":`${adults} взрослых`,occupant_names:Array.from({length:adults},()=>\"\"),rental_type:state.shared.rental_type===\"habitual\"?\"habitual\":state.shared.rental_type===\"temporada\"?\"temporada\":\"both\",move_in:\"\",term:\"\",professional_profiles:Array.from({length:adults},()=>\"\"),income_confirmation:\"\",temporada_reason:state.shared.temporada.reason||\"\",temporada_period:state.shared.temporada.period||\"\",has_pet:state.shared.has_pet?\"yes\":\"no\",pet_details:\"\",income_amount:\"\",savings:\"\",habitual_reason:\"\",additional_info:\"\",contact:\"\",photo_data_url:\"\"};}function presentationFromTool(tool,state){const raw=isRecord(tool.answers.presentation_input)?tool.answers.presentation_input:{};const base=emptyPresentation(state);const occupantNames=Array.isArray(raw.occupant_names)?raw.occupant_names.map(String):base.occupant_names;return{...base,...raw,household:occupantNames.length===1?\"1 взрослый\":`${occupantNames.length} взрослых`,professional_profiles:Array.isArray(raw.professional_profiles)?raw.professional_profiles.map(String):base.professional_profiles,occupant_names:occupantNames};}function presentationSummary(input){const lines=[`Проживающие: ${input.occupant_names.filter(Boolean).join(\", \")}`,`Тип аренды: ${input.rental_type===\"habitual\"?\"постоянное проживание\":input.rental_type===\"temporada\"?\"временная аренда\":\"рассматриваю оба варианта\"}`,`Заселение: ${input.move_in}; срок: ${input.term}`,...input.professional_profiles.map((v,i)=>`Арендатор ${i+1}: ${v}`),`Подтверждение дохода: ${input.income_confirmation}`,`Питомец: ${input.has_pet===\"yes\"?input.pet_details||\"есть\":\"нет\"}`];if((input.rental_type===\"temporada\"||input.rental_type===\"both\")&&input.temporada_reason)lines.push(`Причина временной аренды: ${input.temporada_reason}`);if(input.income_amount)lines.push(`Доход: ${input.income_amount}`);if(input.savings)lines.push(`Сбережения: ${input.savings}`);if(input.habitual_reason)lines.push(`Причина переезда: ${input.habitual_reason}`);if(input.additional_info)lines.push(`Дополнительно: ${input.additional_info}`);return lines.join(\"\\n\");}function presentationSourceKey(input){const{photo_data_url,contact,...generationFacts}=input;return JSON.stringify(generationFacts);}async function presentationPhoto(file){if(!/^image\\/(jpeg|png)$/.test(file.type)||file.size>5e6)throw new Error(\"invalid_photo\");const source=URL.createObjectURL(file);try{const image=await new Promise((resolve,reject)=>{const img=new Image;img.onload=()=>resolve(img);img.onerror=reject;img.src=source;});const canvas=document.createElement(\"canvas\");canvas.width=360;canvas.height=360;const context=canvas.getContext(\"2d\");if(!context)throw new Error(\"canvas_failed\");const scale=Math.max(360/image.width,360/image.height);const width=image.width*scale;const height=image.height*scale;context.drawImage(image,(360-width)/2,(360-height)/2,width,height);return canvas.toDataURL(\"image/jpeg\",.82);}finally{URL.revokeObjectURL(source);}}function bytes(value){return new TextEncoder().encode(value);}function joinBytes(parts){const length=parts.reduce((sum,part)=>sum+part.length,0);const output=new Uint8Array(length);let offset=0;parts.forEach(part=>{output.set(part,offset);offset+=part.length;});return output;}async function downloadPresentationPdf(copy,draft,documentsStatus){const canvas=document.createElement(\"canvas\");canvas.width=1240;canvas.height=1754;const context=canvas.getContext(\"2d\");if(!context)throw new Error(\"pdf_canvas_failed\");await document.fonts?.load?.(\"400 24px Inter\");await document.fonts?.load?.(\"600 24px Inter\");const colors={page:\"#FFFDF8\",ink:\"#17211B\",muted:\"#617067\",border:\"#D9DDD6\",surface:\"#FAF8F1\",accent:\"#0F6B4F\"};context.fillStyle=colors.page;context.fillRect(0,0,canvas.width,canvas.height);const font=(size,weight=400)=>`${weight} ${size}px Inter, Arial, sans-serif`;const line=(x1,y,x2=1136)=>{context.strokeStyle=colors.border;context.lineWidth=2;context.beginPath();context.moveTo(x1,y);context.lineTo(x2,y);context.stroke();};const wrapped=(value,maxWidth,maxLines=20)=>{const words=value.trim().split(/\\s+/).filter(Boolean);const lines=[];let current=\"\";words.forEach(word=>{const candidate=current?`${current} ${word}`:word;if(current&&context.measureText(candidate).width>maxWidth){lines.push(current);current=word;}else current=candidate;});if(current)lines.push(current);if(lines.length>maxLines){const limited=lines.slice(0,maxLines);limited[maxLines-1]=`${limited[maxLines-1].replace(/[.,;:]?$/,\"\")}…`;return limited;}return lines;};const drawLines=(value,x,y,maxWidth,size,lineHeight,color=colors.ink,weight=400,maxLines=20)=>{context.font=font(size,weight);context.fillStyle=color;const lines=wrapped(value,maxWidth,maxLines);lines.forEach((row,index)=>context.fillText(row,x,y+index*lineHeight));return y+lines.length*lineHeight;};const sectionTitle=(label,y)=>{context.font=font(28,600);context.fillStyle=colors.ink;context.fillText(label,104,y);line(104,y+20);return y+62;};const loadImage=source=>new Promise((resolve,reject)=>{const image=new Image;image.onload=()=>resolve(image);image.onerror=reject;image.src=source;});const top=84;const photoX=104;const photoY=top;const photoW=286;const photoH=300;const hasPhoto=Boolean(draft.photo_data_url);context.fillStyle=colors.surface;context.fillRect(photoX,photoY,hasPhoto?photoW:1032,photoH);if(hasPhoto){try{const image=await loadImage(draft.photo_data_url);const scale=Math.max(photoW/image.width,photoH/image.height);const width=image.width*scale;const height=image.height*scale;context.save();context.beginPath();context.rect(photoX,photoY,photoW,photoH);context.clip();context.drawImage(image,photoX+(photoW-width)/2,photoY+(photoH-height)/2,width,height);context.restore();}catch{}}context.fillStyle=colors.accent;context.fillRect(hasPhoto?photoX+photoW+18:photoX,photoY,8,photoH);const identityX=hasPhoto?438:144;context.font=font(52,600);context.fillStyle=colors.ink;const identityLabel=draft.occupant_names.filter(Boolean).join(\" & \");const identity=wrapped(identityLabel||\"Perfil de inquilinos\",698,2);identity.forEach((row,index)=>context.fillText(row,identityX,top+58+index*58));let identityY=top+58+identity.length*58;const markers=[copy.term,accreditedIncomeLabel(copy.income_display)||\"Ingresos demostrables\"].filter(Boolean);context.font=font(21,600);markers.forEach(marker=>{const width=Math.min(context.measureText(marker).width+34,670);context.fillStyle=colors.surface;context.fillRect(identityX,identityY,width,42);context.fillStyle=colors.ink;context.fillText(marker,identityX+17,identityY+28);identityY+=52;});if(draft.contact.trim()){drawLines(draft.contact.trim(),identityX,Math.max(identityY+12,top+258),680,21,29,colors.muted,400,2);}let y=sectionTitle(\"Sobre nosotros\",450);const aboutFacts=copy.about;y=drawLines(aboutFacts,104,y,1032,23,33,colors.ink,400,5)+30;y=sectionTitle(\"Condiciones buscadas\",y);const conditions=[[\"TIPO DE ALQUILER\",copy.rental_type],[\"ENTRADA\",copy.move_in],[\"DURACI\\xd3N\",copy.term]].filter(item=>item[1]);const conditionWidth=1032/Math.max(1,conditions.length);conditions.forEach(([label,value],index)=>{const x=104+index*conditionWidth;context.font=font(16,600);context.fillStyle=colors.accent;context.fillText(label,x,y);drawLines(value,x,y+34,conditionWidth-28,22,29,colors.ink,600,2);});y+=112;y=sectionTitle(\"Trabajo e ingresos\",y);const profiles=copy.professional_profiles.filter(profile=>profile.trim());const profileWidth=1032/Math.max(1,profiles.length);let profileBottom=y;profiles.forEach((profile,index)=>{const x=104+index*profileWidth;context.font=font(18,600);context.fillStyle=colors.ink;context.fillText(profiles.length>1?`Perfil ${index+1}`:\"Perfil profesional\",x,y);profileBottom=Math.max(profileBottom,drawLines(profile,x,y+34,profileWidth-30,21,29,colors.ink,400,4));});y=profileBottom+18;y=drawLines([copy.income_confirmation,accreditedIncomeLabel(copy.income_display)].filter(Boolean).join(\" \\xb7 \"),104,y,1032,20,28,colors.muted,400,2)+28;y=sectionTitle(\"Documentaci\\xf3n disponible\",y);const documentItems=[\"Documento de identidad\",documentsStatus===\"completed\"?\"Justificantes de ingresos\":\"\",draft.savings?\"Ahorros demostrables\":\"\"].filter(Boolean);context.font=font(21,400);context.fillStyle=colors.ink;documentItems.forEach((item,index)=>{const column=index%2;const row=Math.floor(index/2);const x=104+column*516;context.fillStyle=colors.accent;context.beginPath();context.arc(x+6,y+row*42-7,5,0,Math.PI*2);context.fill();context.fillStyle=colors.ink;context.fillText(item,x+24,y+row*42);});y+=Math.ceil(documentItems.length/2)*42+32;y=sectionTitle(\"Por qu\\xe9 somos buenos inquilinos\",y);drawLines(copy.good_tenant||\"Perfil estable y documentaci\\xf3n disponible para la evaluaci\\xf3n de la solicitud.\",104,y,1032,22,31,colors.ink,400,4);context.font=font(17,400);context.fillStyle=colors.muted;context.fillText(identityLabel||\"Perfil de inquilinos\",104,1686);context.textAlign=\"right\";context.fillText(\"Barcelona\",1136,1686);context.textAlign=\"left\";const jpegData=canvas.toDataURL(\"image/jpeg\",.94);const imageBytes=Uint8Array.from(atob(jpegData.split(\",\")[1]),char=>char.charCodeAt(0));const objects=[bytes(\"1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj\\n\"),bytes(\"2 0 obj << /Type /Pages /Kids [3 0 R] /Count 1 >> endobj\\n\"),bytes(\"3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 595 842] /Resources << /XObject << /Im1 5 0 R >> >> /Contents 4 0 R >> endobj\\n\"),joinBytes([bytes(\"4 0 obj << /Length 30 >> stream\\n\"),bytes(\"q 595 0 0 842 0 0 cm /Im1 Do Q\"),bytes(\"\\nendstream endobj\\n\")]),joinBytes([bytes(`5 0 obj << /Type /XObject /Subtype /Image /Width 1240 /Height 1754 /ColorSpace /DeviceRGB /BitsPerComponent 8 /Filter /DCTDecode /Length ${imageBytes.length} >> stream\n`),imageBytes,bytes(\"\\nendstream endobj\\n\")])];const header=bytes(\"%PDF-1.4\\n\");let offset=header.length;const offsets=[];objects.forEach(object=>{offsets.push(offset);offset+=object.length;});const size=objects.length+1;const xref=bytes(`xref\n0 ${size}\n0000000000 65535 f \n${offsets.map(value=>String(value).padStart(10,\"0\")+\" 00000 n \").join(\"\\n\")}\ntrailer << /Size ${size} /Root 1 0 R >>\nstartxref\n${offset}\n%%EOF`);const link=document.createElement(\"a\");const pdfBytes=joinBytes([header,...objects,xref]);const pdfBuffer=pdfBytes.buffer.slice(pdfBytes.byteOffset,pdfBytes.byteOffset+pdfBytes.byteLength);link.href=URL.createObjectURL(new Blob([pdfBuffer],{type:\"application/pdf\"}));link.download=\"presentacion-inquilino-final.pdf\";link.click();setTimeout(()=>URL.revokeObjectURL(link.href),1e3);}function latin1(value){const replacements={\"€\":128,\"‘\":145,\"’\":146,\"“\":147,\"”\":148,\"–\":150,\"—\":151,\"…\":133};return Uint8Array.from(Array.from(value).map(char=>replacements[char]??(char.charCodeAt(0)<=255?char.charCodeAt(0):63)));}function pdfText(value){return value.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\(/g,\"\\\\(\").replace(/\\)/g,\"\\\\)\").replace(/[\\r\\n]+/g,\" \");}function spanishMoney(value){const numeric=Number(value.replace(/[^0-9,.-]/g,\"\").replace(/\\./g,\"\").replace(\",\",\".\"));return Number.isFinite(numeric)&&numeric>0?`${new Intl.NumberFormat(\"es-ES\",{maximumFractionDigits:0}).format(numeric)} €`:value.trim();}function accreditedIncomeLabel(value){return value.trim()?`Ingresos mensuales acreditables: ${normalizedMonthlyIncome(value)}`:\"\";}function normalizedMonthlyIncome(value){const formatted=spanishMoney(value);return formatted?`${formatted} / mes`:\"\";}function householdIncomeLabel(value,occupantCount){if(!value.trim())return\"\";return occupantCount>1?`Ingresos mensuales acreditables del hogar: ${normalizedMonthlyIncome(value)}`:accreditedIncomeLabel(value);}function householdIncomeConfirmation(value,occupantCount){if(occupantCount<=1)return value.trim();return value.trim().replace(/^Puedo aportar\\b/i,\"Podemos aportar\").replace(/^Puedo acreditar\\b/i,\"Podemos acreditar\").replace(/^Puede aportar\\b/i,\"Podemos aportar\").replace(/^Puede acreditar\\b/i,\"Podemos acreditar\").replace(/^Aporto\\b/i,\"Aportamos\").replace(/^Acredito\\b/i,\"Acreditamos\").replace(/^Presento\\b/i,\"Presentamos\");}function neutralProfessionalProfile(value){return/^(no trabajo|no trabaja|no tengo ingresos(?: propios)?|sin trabajo)[.!]?$/i.test(value.trim())?\"Sin ingresos propios.\":value.trim();}const PDF_INTER_REGULAR_URL=\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfMZg.ttf\";const PDF_INTER_BOLD_URL=\"https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYMZg.ttf\";let pdfInterPromise=null;function loadPdfInter(){if(!pdfInterPromise){pdfInterPromise=Promise.all([PDF_INTER_REGULAR_URL,PDF_INTER_BOLD_URL].map(async url=>{const response=await fetch(url);if(!response.ok)throw new Error(\"pdf_font_unavailable\");return new Uint8Array(await response.arrayBuffer());})).then(([regular,bold])=>({regular,bold}));}return pdfInterPromise;}function normalizePresentationCopy(copy){const clean=value=>value.replace(/€(?=[A-Za-zÀ-ÿ])/g,\"€ \").replace(/\\s+([,.;:])/g,\"$1\").replace(/\\s{2,}/g,\" \").trim();return{...copy,about:clean(copy.about),rental_type:clean(copy.rental_type),move_in:clean(copy.move_in),term:clean(copy.term),professional_profiles:copy.professional_profiles.map(clean),income_confirmation:clean(copy.income_confirmation),income_display:clean(copy.income_display),good_tenant:clean(copy.good_tenant)};}async function downloadPresentationPdfVector(copy,draft,documentsStatus){const inter=await loadPdfInter();const pageWidth=595;const pageHeight=842;const commands=[];const ink=\"0.10 0.13 0.12\";const muted=\"0.38 0.43 0.40\";const lineColor=\"0.82 0.82 0.79\";const accent=\"0.42 0.36 0.28\";const surface=\"0.965 0.955 0.925\";const wrap=(value,maxChars,maxLines=20)=>{const words=value.trim().split(/\\s+/).filter(Boolean);const lines=[];let current=\"\";words.forEach(word=>{const candidate=current?`${current} ${word}`:word;if(current&&candidate.length>maxChars){lines.push(current);current=word;}else current=candidate;});if(current)lines.push(current);if(lines.length>maxLines){const clipped=lines.slice(0,maxLines);clipped[maxLines-1]=`${clipped[maxLines-1].replace(/[.,;:]?$/,\"\")}...`;return clipped;}return lines;};const text=(value,x,top,size,font=\"F1\",color=ink)=>{commands.push(`BT /${font} ${size} Tf ${color} rg ${x} ${pageHeight-top} Td (${pdfText(value)}) Tj ET`);};const paragraph=(value,x,top,width,size=10.5,lineHeight=15,color=ink,maxLines=20)=>{const maxChars=Math.max(18,Math.floor(width/(size*.52)));const lines=wrap(value,maxChars,maxLines);lines.forEach((row,index)=>text(row,x,top+index*lineHeight,size,\"F1\",color));return top+lines.length*lineHeight;};const rule=top=>commands.push(`${lineColor} RG 0.7 w 40 ${pageHeight-top} m 555 ${pageHeight-top} l S`);const section=(label,top)=>{text(label,40,top,13.5,\"F2\");rule(top+9);return top+29;};commands.push(`${surface} rg 40 ${pageHeight-190} 515 150 re f`);commands.push(`${accent} rg 40 ${pageHeight-190} 3 150 re f`);let photoBytes=null;if(draft.photo_data_url){try{const image=await new Promise((resolve,reject)=>{const item=new Image;item.onload=()=>resolve(item);item.onerror=reject;item.src=draft.photo_data_url;});const canvas=document.createElement(\"canvas\");canvas.width=800;canvas.height=800;const context=canvas.getContext(\"2d\");if(context){const scale=Math.max(800/image.width,800/image.height);const width=image.width*scale;const height=image.height*scale;context.drawImage(image,(800-width)/2,(800-height)/2,width,height);const data=canvas.toDataURL(\"image/jpeg\",.94).split(\",\")[1];photoBytes=Uint8Array.from(atob(data),char=>char.charCodeAt(0));commands.push(`q 132 0 0 132 51 ${pageHeight-181} cm /Im1 Do Q`);}}catch{}}const identityX=photoBytes?204:62;const identityWidth=photoBytes?330:465;const identityLabel=draft.occupant_names.filter(Boolean).join(\" & \")||\"Perfil de inquilinos\";wrap(identityLabel,photoBytes?17:27,2).forEach((row,index)=>text(row,identityX,78+index*27,23,\"F2\"));const contactEmail=draft.contact.match(/[^\\s,;]+@[^\\s,;]+/)?.[0]||\"\";const contactPhone=draft.contact.replace(contactEmail,\"\").match(/\\+?\\d[\\d\\s().-]{6,}\\d/)?.[0]?.trim()||\"\";const contacts=contactEmail||contactPhone?[contactEmail,contactPhone].filter(Boolean):draft.contact.split(/[,;\\n]+/).map(item=>item.trim()).filter(Boolean);const occupantCount=draft.occupant_names.filter(Boolean).length;const contactWidth=photoBytes?142:190;const contactX=identityX+identityWidth-contactWidth;contacts.slice(0,2).forEach((item,index)=>{const size=Math.max(7.2,Math.min(9,contactWidth*1.85/Math.max(12,item.length)));text(item,contactX,80+index*16,size,\"F1\",muted);});const financeRightWidth=photoBytes?112:155;const financeLeftWidth=identityWidth-financeRightWidth-18;const financeRightX=identityX+financeLeftWidth+18;if(copy.income_display.trim()){text(\"INGRESOS MENSUALES ACREDITABLES\",identityX,128,7.3,\"F2\",accent);if(occupantCount>1)text(\"DEL HOGAR\",identityX,138,7.3,\"F2\",accent);text(normalizedMonthlyIncome(copy.income_display),identityX,156,10.5,\"F2\",ink);}text(\"DURACI\\xd3N\",financeRightX,draft.savings?128:143,7.3,\"F2\",accent);text(copy.term,financeRightX,draft.savings?143:158,10,\"F2\",ink);if(draft.savings){text(\"AHORROS\",financeRightX,160,7.3,\"F2\",accent);text(spanishMoney(draft.savings),financeRightX,175,10,\"F2\",ink);}let y=section(\"Nuestra candidatura\",221);y=paragraph(copy.about,40,y,515,10.5,15,ink,5)+12;y=section(\"Condiciones buscadas\",y);const conditions=[[\"TIPO DE ALQUILER\",copy.rental_type],[\"ENTRADA\",copy.move_in],[\"DURACI\\xd3N\",copy.term]];conditions.forEach(([label,value],index)=>{const x=40+index*172;text(label,x,y,7.5,\"F2\",accent);paragraph(value,x,y+15,155,10,14,ink,2);});y+=58;y=section(\"Trabajo e ingresos\",y);copy.professional_profiles.forEach((profile,index)=>{text(copy.professional_profiles.length>1?draft.occupant_names[index]||`Perfil ${index+1}`:\"Perfil profesional\",40,y,9,\"F2\");y=paragraph(neutralProfessionalProfile(profile),40,y+15,515,10,14,ink,3)+5;});text(\"Documentaci\\xf3n e ingresos\",40,y,9.5,\"F2\",accent);y=paragraph(householdIncomeConfirmation(copy.income_confirmation,occupantCount),40,y+16,515,9.5,14,ink,2);y+=12;y=section(\"Documentaci\\xf3n disponible\",y);const documentItems=[\"Documento de identidad\",documentsStatus===\"completed\"?\"Justificantes de ingresos\":\"\",draft.savings?\"Ahorros demostrables\":\"\"].filter(Boolean);documentItems.forEach((item,index)=>{const x=40+index%2*258;const rowTop=y+Math.floor(index/2)*20;commands.push(`${accent} rg ${x} ${pageHeight-rowTop+2} 3 3 re f`);text(item,x+11,rowTop,9.5);});y+=Math.ceil(documentItems.length/2)*20+15;if(copy.good_tenant.trim()){y=section(\"Referencias y garant\\xedas\",y);paragraph(copy.good_tenant,40,y,515,10.5,15,ink,4);}text(identityLabel,40,814,8,\"F1\",muted);text(\"Barcelona\",515,814,8,\"F1\",muted);const contentBytes=latin1(commands.join(\"\\n\"));const resources=photoBytes?\"/Font << /F1 5 0 R /F2 6 0 R >> /XObject << /Im1 11 0 R >>\":\"/Font << /F1 5 0 R /F2 6 0 R >>\";const objects=[latin1(\"1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj\\n\"),latin1(\"2 0 obj << /Type /Pages /Kids [3 0 R] /Count 1 >> endobj\\n\"),latin1(`3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 ${pageWidth} ${pageHeight}] /Resources << ${resources} >> /Contents 4 0 R >> endobj\n`),joinBytes([latin1(`4 0 obj << /Length ${contentBytes.length} >> stream\n`),contentBytes,latin1(\"\\nendstream endobj\\n\")]),latin1(\"5 0 obj << /Type /Font /Subtype /TrueType /BaseFont /Inter-Regular /FirstChar 32 /LastChar 255 /Widths [278 278 355 556 556 889 667 191 333 333 389 584 278 333 278 278 556 556 556 556 556 556 556 556 556 556 278 278 584 584 584 556 1015 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778 667 778 722 667 611 722 667 944 667 667 611 278 278 278 469 556 333 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500 334 260 334 584 556 556 556 222 556 333 1000 556 556 333 1000 667 333 1000 556 556 556 556 222 222 333 333 350 556 1000 333 1000 500 333 944 556 500 667 278 333 556 556 556 556 260 556 333 737 370 556 584 333 737 333 400 584 333 333 333 556 537 278 333 333 365 556 834 834 834 556 667 667 667 667 667 667 1000 722 667 667 667 667 278 278 278 278 722 722 778 778 778 778 778 584 778 722 722 722 722 667 667 611 556 556 556 556 556 556 889 500 556 556 556 556 222 222 222 222 556 556 556 556 556 556 556 584 611 556 556 556 556 500 556 500] /FontDescriptor 7 0 R /Encoding /WinAnsiEncoding >> endobj\\n\"),latin1(\"6 0 obj << /Type /Font /Subtype /TrueType /BaseFont /Inter-Bold /FirstChar 32 /LastChar 255 /Widths [278 333 474 556 556 889 722 238 333 333 389 584 278 333 278 278 556 556 556 556 556 556 556 556 556 556 333 333 584 584 584 611 975 722 722 722 722 667 611 778 722 333 556 722 611 889 722 778 667 778 722 667 611 722 667 944 667 667 611 333 278 333 584 556 333 556 611 556 611 556 333 611 611 278 278 556 278 889 611 611 611 611 389 556 333 611 556 778 556 556 500 389 280 389 584 556 556 556 278 556 500 1000 556 556 333 1000 667 333 1000 556 556 556 556 278 278 500 500 350 556 1000 333 1000 556 333 944 556 500 667 333 333 556 556 556 556 280 556 333 737 370 556 584 333 737 333 400 584 333 333 333 611 556 278 333 333 365 556 834 834 834 611 722 722 722 722 722 722 1000 722 667 667 667 667 333 333 333 333 722 722 778 778 778 778 778 584 778 722 722 722 722 667 667 611 556 556 556 556 556 556 889 556 556 556 556 556 278 278 278 278 611 611 611 611 611 611 611 584 667 611 611 611 611 556 611 556] /FontDescriptor 9 0 R /Encoding /WinAnsiEncoding >> endobj\\n\"),latin1(\"7 0 obj << /Type /FontDescriptor /FontName /Inter-Regular /Flags 32 /FontBBox [-740 -271 1216 1056] /ItalicAngle 0 /Ascent 969 /Descent -241 /CapHeight 727 /StemV 80 /FontFile2 8 0 R >> endobj\\n\"),joinBytes([latin1(`8 0 obj << /Length ${inter.regular.length} /Length1 ${inter.regular.length} >> stream\n`),inter.regular,latin1(\"\\nendstream endobj\\n\")]),latin1(\"9 0 obj << /Type /FontDescriptor /FontName /Inter-Bold /Flags 32 /FontBBox [-740 -271 1216 1056] /ItalicAngle 0 /Ascent 969 /Descent -241 /CapHeight 727 /StemV 120 /FontFile2 10 0 R >> endobj\\n\"),joinBytes([latin1(`10 0 obj << /Length ${inter.bold.length} /Length1 ${inter.bold.length} >> stream\n`),inter.bold,latin1(\"\\nendstream endobj\\n\")])];if(photoBytes)objects.push(joinBytes([latin1(`11 0 obj << /Type /XObject /Subtype /Image /Width 800 /Height 800 /ColorSpace /DeviceRGB /BitsPerComponent 8 /Filter /DCTDecode /Length ${photoBytes.length} >> stream\n`),photoBytes,latin1(\"\\nendstream endobj\\n\")]));const header=latin1(\"%PDF-1.4\\n%\\xe2\\xe3\\xcf\\xd3\\n\");let offset=header.length;const offsets=[];objects.forEach(object=>{offsets.push(offset);offset+=object.length;});const size=objects.length+1;const xref=latin1(`xref\n0 ${size}\n0000000000 65535 f \n${offsets.map(value=>`${String(value).padStart(10,\"0\")} 00000 n `).join(\"\\n\")}\ntrailer << /Size ${size} /Root 1 0 R >>\nstartxref\n${offset}\n%%EOF`);const pdfBytes=joinBytes([header,...objects,xref]);const buffer=pdfBytes.buffer.slice(pdfBytes.byteOffset,pdfBytes.byteOffset+pdfBytes.byteLength);const link=document.createElement(\"a\");link.href=URL.createObjectURL(new Blob([buffer],{type:\"application/pdf\"}));link.download=\"presentacion-inquilino-final.pdf\";link.click();setTimeout(()=>URL.revokeObjectURL(link.href),1e3);}function budgetFromTool(tool){const raw=isRecord(tool.answers.budget_input)?tool.answers.budget_input:{};const savedRent=money(String(raw.monthly_rent||\"\"));const savedMonths=value=>{const numeric=money(String(value||\"\"));if(numeric>24&&savedRent>0)return String(numeric/savedRent);return String(value||\"\");};const hasLegacyDeposit=Boolean(String(raw.total_deposit||raw.fianza||raw.additional_guarantee||\"\").trim());const legacyDepositMonths=hasLegacyDeposit?String(raw.deposit_mode||\"split\")===\"total_unknown\"?savedMonths(raw.total_deposit):String(money(savedMonths(raw.fianza))+money(savedMonths(raw.additional_guarantee))):\"\";const legacyMoveInMonths=raw.prepayment_months?String(1+money(String(raw.prepayment_months))):\"1\";return{...emptyBudget(),...raw,fianza:savedMonths(raw.fianza),additional_guarantee:savedMonths(raw.additional_guarantee),total_deposit:savedMonths(raw.total_deposit),deposit_months:String(raw.deposit_months||legacyDepositMonths),move_in_rent_months:String(raw.move_in_rent_months||legacyMoveInMonths),other_payments:Array.isArray(raw.other_payments)?raw.other_payments.filter(isRecord).map(item=>({id:String(item.id||uid()),title:String(item.title||\"\"),amount:String(item.amount||\"\"),refundable:[\"yes\",\"no\",\"unknown\"].includes(String(item.refundable))?item.refundable:\"unknown\"})):[]};}function money(value){const parsed=Number(String(value).replace(/\\s/g,\"\").replace(\",\",\".\"));return Number.isFinite(parsed)&&parsed>0?parsed:0;}function euro(value){return new Intl.NumberFormat(\"es-ES\",{style:\"currency\",currency:\"EUR\",maximumFractionDigits:2}).format(value);}function calculateBudget(input){const rent=money(input.monthly_rent);const prepayment=rent*money(input.move_in_rent_months);const deposit=rent*money(input.deposit_months);let agencyBase=0;if(input.agency_fee_mode===\"fixed\")agencyBase=money(input.agency_fee_value);if(input.agency_fee_mode===\"months\")agencyBase=rent*money(input.agency_fee_value);if(input.agency_fee_mode===\"percent\"){const basis=input.agency_percent_basis===\"annual\"?rent*12:rent*money(input.contract_months);agencyBase=basis*money(input.agency_fee_value)/100;}const agencyFee=input.iva_mode===\"added\"?agencyBase*1.21:agencyBase;const otherTotal=0;const total=prepayment+deposit+agencyFee;const income=money(input.monthly_net_income);const personalLimit=money(input.personal_limit);return{total,remaining:total,agency_fee:agencyFee,prepayment,deposit,other_total:otherTotal,rent_share:income?rent/income*100:null,limit_delta:personalLimit?personalLimit-total:null};}const EVENT_DICTIONARY=new Set([\"helper_route_viewed\",\"helper_unlocked\",\"helper_error\",\"tool_opened\",\"tool_completed\",\"shared_state_changed\",\"helper_1_of_3_completed\",\"helper_2_of_3_completed\",\"helper_completed\",\"helper_feedback_submitted\",\"documents_setup_completed\",\"documents_first_required_item_ready\",\"documents_required_50_percent\",\"documents_completed\",\"documents_returned\",\"documents_presentation_cta_clicked\",\"budget_input_completed\",\"budget_calculated\",\"budget_recalculated\",\"budget_income_comparison_used\",\"budget_personal_limit_used\",\"budget_completed\",\"presentation_input_completed\",\"presentation_generated\",\"presentation_regenerated\",\"presentation_edited\",\"presentation_pdf_created\",\"presentation_completed\"]);function uid(){if(typeof crypto!==\"undefined\"&&\"randomUUID\"in crypto)return crypto.randomUUID();return`brp-${Date.now()}-${Math.random().toString(16).slice(2)}`;}function cleanTool(){return{status:\"not_started\",answers:{},completed_against:null,review_reasons:[],current_step:\"start\",updated_at:null,checklist:{},completion_markers:{}};}function createState(){const now=new Date().toISOString();return{schema_version:1,meta:{state_id:uid(),state_revision:0,created_at:now,updated_at:now,unlocked:false,unlocked_at:null,entry_source:\"direct_helper\",last_opened_tool:null},shared:{rental_type:\"unknown\",adults:[],has_pet:null,temporada:{reason:null,period:null,reason_proof_ready:null,period_proof_ready:null,external_address_proof_ready:null}},tools:{documents:cleanTool(),presentation:cleanTool(),budget:cleanTool()},milestones:{helper_1_of_3_completed:false,helper_2_of_3_completed:false,helper_completed:false}};}function isRecord(value){return!!value&&typeof value===\"object\"&&!Array.isArray(value);}function validateState(value){if(!isRecord(value)||value.schema_version!==1||!isRecord(value.meta)||!isRecord(value.shared)||!isRecord(value.tools)||!isRecord(value.milestones))return false;const meta=value.meta;if(typeof meta.state_id!==\"string\"||!Number.isInteger(meta.state_revision)||typeof meta.created_at!==\"string\"||typeof meta.updated_at!==\"string\"||typeof meta.unlocked!==\"boolean\")return false;const tools=value.tools;for(const id of TOOL_IDS){const tool=tools[id];if(!isRecord(tool)||![\"not_started\",\"in_progress\",\"completed\",\"needs_review\"].includes(String(tool.status))||!isRecord(tool.answers)||!Array.isArray(tool.review_reasons))return false;}return true;}function parse(raw){if(!raw)return null;try{const value=JSON.parse(raw);return validateState(value)?value:null;}catch{return null;}}function hydrate(){if(typeof window===\"undefined\")return{state:createState(),mode:\"session\",recovery:false};try{const raw=window.localStorage.getItem(KEY);if(!raw)return{state:createState(),mode:\"local\",recovery:false};const loose=JSON.parse(raw);if(isRecord(loose)&&typeof loose.schema_version===\"number\"&&loose.schema_version>1)return{state:createState(),mode:\"local\",recovery:true,future:true};const primary=parse(raw);if(primary)return{state:primary,mode:\"local\",recovery:false};const backup=parse(window.localStorage.getItem(BACKUP_KEY));if(backup){window.localStorage.setItem(KEY,JSON.stringify(backup));return{state:backup,mode:\"local\",recovery:false};}return{state:createState(),mode:\"local\",recovery:true,future:false};}catch{const session=parse(window.sessionStorage?.getItem(SESSION_KEY));return{state:session||createState(),mode:\"session\",recovery:false};}}function save(next,mode){if(!validateState(next)||typeof window===\"undefined\")return false;const serialized=JSON.stringify(next);try{if(mode===\"session\"){window.sessionStorage.setItem(SESSION_KEY,serialized);return parse(window.sessionStorage.getItem(SESSION_KEY))!==null;}const current=window.localStorage.getItem(KEY);if(parse(current))window.localStorage.setItem(BACKUP_KEY,current);window.localStorage.setItem(KEY,serialized);return parse(window.localStorage.getItem(KEY))!==null;}catch{try{window.sessionStorage.setItem(SESSION_KEY,serialized);return true;}catch{return false;}}}function dependencies(state){return{rental_type:state.shared.rental_type,adults:String(state.shared.adults.length),has_pet:String(state.shared.has_pet)};}function statusLabel(status){return({not_started:\"Не начато\",in_progress:\"В процессе\",completed:\"Готово\",needs_review:\"Нужно проверить\"})[status];}function safeNext(raw){const clean=basePath(raw||\"\");return[\"/helper\",...Object.values(ROUTES)].includes(clean)?clean:\"/helper\";}function pathNow(){return typeof window===\"undefined\"?\"/helper\":basePath(window.location.pathname);}function routeTool(path){return TOOL_IDS.find(id=>ROUTES[id]===path)||null;}function analytics(event,payload,props){if(!EVENT_DICTIONARY.has(event))return;const allowed=new Set([\"route\",\"tool\",\"status\",\"entry_source\",\"completed_count\",\"storage_mode\",\"error_code\"]);const clean={};Object.entries(payload).forEach(([key,value])=>{if(!allowed.has(key))return;clean[key]=key===\"route\"&&typeof value===\"string\"&&!ANALYTICS_ROUTES.has(value)?\"/helper\":value;});if(typeof window!==\"undefined\")window.dispatchEvent(new CustomEvent(\"brp:analytics\",{detail:{event,...clean}}));// The shared site collector handles identity, attribution and IP-filtered delivery.\n}const FEEDBACK_STAGES=[[\"preparing\",\"Только готовлюсь к поиску\"],[\"searching\",\"Активно ищу квартиру\"],[\"viewings\",\"Уже хожу на просмотры / подаю документы\"],[\"screening\",\"Прохожу проверку / согласование\"],[\"rented\",\"Уже снял(а) квартиру\"]];const FEEDBACK_HELP=[[\"aggregated_listings\",\"Видеть новые подходящие квартиры из разных источников в одном месте\"],[\"matched_listings\",\"Получать подбор квартир под мои критерии\"],[\"search_strategy\",\"Получить стратегию поиска: где искать, как действовать и на чем сосредоточиться\"],[\"documents_profile\",\"Подготовить сильный пакет документов и понять, как лучше представить свой профиль\"],[\"communication\",\"Получать помощь с перепиской и общением с агентами и собственниками\"],[\"contract_check\",\"Проверять условия, договор и платежи перед подписанием\"],[\"full_support\",\"Получать сопровождение всего процесса поиска\"],[\"other\",\"Другое\"],[\"none\",\"Сейчас дополнительная помощь мне не нужна\"]];function FeedbackForm({source,count,settings,onClose}){const[stage,setStage]=React.useState(\"\");const[pain,setPain]=React.useState(\"\");const[choices,setChoices]=React.useState([]);const[other,setOther]=React.useState(\"\");const[pending,setPending]=React.useState(false);const[sent,setSent]=React.useState(false);const[errors,setErrors]=React.useState({});const[failure,setFailure]=React.useState(\"\");const busy=React.useRef(false);const attempt=React.useRef(null);const heading=React.useRef(null);const form=React.useRef(null);React.useEffect(()=>{heading.current?.focus();window.scrollTo(0,0);},[sent]);function choose(value){if(choices.includes(value))setChoices(choices.filter(x=>x!==value));else if(value===\"none\")setChoices([\"none\"]);else if(choices.includes(\"none\"))setChoices([value]);else if(choices.length<2)setChoices([...choices,value]);}async function submit(event){event.preventDefault();if(busy.current||sent)return;const next={};if(!FEEDBACK_STAGES.some(x=>x[0]===stage))next.stage=\"Выберите этап поиска.\";if(!pain.trim())next.pain=\"Расскажите, что сейчас самое сложное.\";else if(pain.length>2e3)next.pain=\"Не более 2000 символов.\";if(!choices.length||choices.length>2||choices.includes(\"none\")&&choices.length>1)next.choices=\"Выберите до 2 вариантов.\";if(choices.includes(\"other\")&&!other.trim())next.other=\"Уточните, какая помощь вам нужна.\";else if(other.length>500)next.other=\"Не более 500 символов.\";setErrors(next);setFailure(\"\");if(Object.keys(next).length){requestAnimationFrame(()=>form.current?.querySelector('[aria-invalid=\"true\"]')?.focus());return;}const payload={feedback_version:\"wave1-v1\",search_stage:stage,main_pain_text:pain.trim(),help_choices:[...choices].sort(),other_help_text:choices.includes(\"other\")?other.trim():null,feedback_source:source,tool:TOOL_IDS.includes(source)?source:null,completed_count:count};const signature=JSON.stringify(payload);if(!attempt.current||attempt.current.signature!==signature)attempt.current={signature,request_id:crypto.randomUUID()};busy.current=true;setPending(true);const controller=new AbortController;const timer=window.setTimeout(()=>controller.abort(),15e3);try{const response=await fetch(`${(settings.apiBase||DEFAULT_API_BASE).replace(/\\/$/,\"\")}/v1/feedback`,{method:\"POST\",headers:{\"content-type\":\"application/json\"},credentials:\"omit\",referrerPolicy:\"no-referrer\",body:JSON.stringify({...payload,request_id:attempt.current.request_id}),signal:controller.signal});const result=await response.json();if(!response.ok||result.ok!==true)throw new Error(\"feedback_failed\");setSent(true);analytics(\"helper_feedback_submitted\",{completed_count:count},settings);}catch{setFailure(\"Не удалось подтвердить отправку. Ответы остались в форме — попробуйте ещё раз.\");}finally{window.clearTimeout(timer);busy.current=false;setPending(false);}}return /*#__PURE__*/_jsxs(\"main\",{className:\"brp-shell brp-tool brp-feedback\",children:[/*#__PURE__*/_jsx(\"style\",{children:`.brp-feedback{max-width:760px!important}.brp-feedback h1{font-size:clamp(26px,5vw,38px)!important;line-height:1.15!important}.brp-feedback .brp-form{max-width:none}.brp-feedback fieldset{border:0;padding:0;margin:0;min-width:0}.brp-feedback legend{font-size:18px;font-weight:650;margin-bottom:12px}.brp-feedback .feedback-options{display:grid;gap:10px}.brp-feedback label.feedback-option{display:flex;gap:12px;align-items:flex-start;font-weight:400;line-height:1.5}.brp-feedback .feedback-option input{width:20px!important;height:20px!important;min-height:20px!important;flex:0 0 20px;margin:3px 0 0;accent-color:var(--accent)}.brp-feedback .feedback-option span{min-width:0}.brp-feedback .feedback-option:has(input:disabled){opacity:.6}.brp-feedback .brp-form{gap:28px}.brp-feedback button:disabled{opacity:.65;cursor:wait}.brp-feedback .brp-note{color:#5b6861!important}.brp-feedback .feedback-privacy{border-top:1px solid #d9ddd6;padding-top:18px}.brp-feedback h1:focus{outline:none}`}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-text-link\",onClick:onClose,disabled:pending,children:source===\"playbook\"?\"← Вернуться к руководству\":source===\"dashboard\"?\"← Вернуться в помощник\":\"← Вернуться к результату\"}),sent?/*#__PURE__*/_jsxs(\"section\",{role:\"status\",children:[/*#__PURE__*/_jsx(\"h1\",{ref:heading,tabIndex:-1,children:\"Спасибо — ответ получен.\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Я использую эти ответы, чтобы понять, что действительно нужно людям в поиске аренды и что стоит развивать дальше.\"}),/*#__PURE__*/_jsx(\"button\",{onClick:onClose,children:source===\"playbook\"?\"Вернуться к руководству\":source===\"dashboard\"?\"Вернуться в помощник\":\"Вернуться к результату\"})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"h1\",{ref:heading,tabIndex:-1,children:\"Что ещё помогло бы вам в поиске квартиры?\"}),/*#__PURE__*/_jsx(\"p\",{className:\"brp-lead\",children:\"3 коротких вопроса \\xb7 около 1 минуты\"}),/*#__PURE__*/_jsxs(\"form\",{ref:form,className:\"brp-form\",onSubmit:submit,noValidate:true,\"aria-busy\":pending,children:[/*#__PURE__*/_jsxs(\"fieldset\",{disabled:pending,children:[/*#__PURE__*/_jsx(\"legend\",{children:\"На каком этапе поиска квартиры вы сейчас?\"}),/*#__PURE__*/_jsx(\"div\",{className:\"feedback-options\",children:FEEDBACK_STAGES.map(([value,label])=>/*#__PURE__*/_jsxs(\"label\",{className:\"feedback-option\",children:[/*#__PURE__*/_jsx(\"input\",{type:\"radio\",name:\"feedback-stage\",value:value,checked:stage===value,onChange:()=>setStage(value),required:true,\"aria-invalid\":!!errors.stage,\"aria-describedby\":errors.stage?\"feedback-stage-error\":undefined}),/*#__PURE__*/_jsx(\"span\",{children:label})]},value))}),errors.stage&&/*#__PURE__*/_jsx(\"p\",{id:\"feedback-stage-error\",className:\"brp-error\",children:errors.stage})]}),/*#__PURE__*/_jsxs(\"label\",{className:\"brp-field\",children:[\"Что сейчас для вас самое сложное в поиске квартиры?\",/*#__PURE__*/_jsx(\"textarea\",{rows:4,value:pain,onChange:e=>setPain(e.target.value),maxLength:2e3,required:true,disabled:pending,\"aria-invalid\":!!errors.pain,\"aria-describedby\":\"feedback-sensitive feedback-pain-error\",placeholder:\"Напишите своими словами, где вы сейчас больше всего застряли или что отнимает больше всего времени и сил.\"}),/*#__PURE__*/_jsx(\"span\",{id:\"feedback-pain-error\",className:\"brp-error\",children:errors.pain}),/*#__PURE__*/_jsx(\"span\",{id:\"feedback-sensitive\",className:\"brp-note\",children:\"Пожалуйста, не указывайте в ответе личные данные, документы, телефоны или другую чувствительную информацию.\"})]}),/*#__PURE__*/_jsxs(\"fieldset\",{disabled:pending,children:[/*#__PURE__*/_jsx(\"legend\",{children:\"Какая помощь была бы для вас наиболее полезна сейчас?\"}),/*#__PURE__*/_jsx(\"p\",{id:\"feedback-help-hint\",className:\"brp-note\",children:\"Можно выбрать до 2 вариантов.\"}),/*#__PURE__*/_jsx(\"div\",{className:\"feedback-options\",children:FEEDBACK_HELP.map(([value,label])=>/*#__PURE__*/_jsxs(\"label\",{className:\"feedback-option\",children:[/*#__PURE__*/_jsx(\"input\",{type:\"checkbox\",value:value,checked:choices.includes(value),onChange:()=>choose(value),disabled:value!==\"none\"&&!choices.includes(value)&&!choices.includes(\"none\")&&choices.length>=2,\"aria-invalid\":!!errors.choices,\"aria-describedby\":\"feedback-help-hint feedback-help-error\"}),/*#__PURE__*/_jsx(\"span\",{children:label})]},value))}),errors.choices&&/*#__PURE__*/_jsx(\"p\",{id:\"feedback-help-error\",className:\"brp-error\",children:errors.choices}),choices.includes(\"other\")&&/*#__PURE__*/_jsxs(\"label\",{className:\"brp-field\",style:{marginTop:16},children:[\"Какая другая помощь вам нужна?\",/*#__PURE__*/_jsx(\"input\",{value:other,onChange:e=>setOther(e.target.value),maxLength:500,required:true,\"aria-invalid\":!!errors.other,\"aria-describedby\":\"feedback-other-error\"}),/*#__PURE__*/_jsx(\"span\",{id:\"feedback-other-error\",className:\"brp-error\",children:errors.other})]})]}),/*#__PURE__*/_jsx(\"p\",{className:\"brp-note feedback-privacy\",children:\"Ответ будет передан автору проекта и сохранён в Cloudflare D1 на 6 месяцев для изучения потребностей пользователей. Email не запрашивается; отзыв не связывается с email, идентификатором устройства или данными ваших инструментов.\"}),failure&&/*#__PURE__*/_jsx(\"p\",{role:\"alert\",className:\"brp-error\",children:failure}),/*#__PURE__*/_jsx(\"button\",{type:\"submit\",disabled:pending,children:pending?\"Отправляем…\":\"Отправить обратную связь\"})]})]})]});}function completedCount(state){return TOOL_IDS.filter(id=>state.tools[id].status===\"completed\").length;}function documentsCss(){return`.brp-choice{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid #d9ddd6;border-radius:12px;background:#fff}.brp-choice input{width:20px!important;height:20px;min-height:0!important;margin:2px 0 0;flex:0 0 auto}.brp-choice span{display:block}.brp-fieldset{border:0;padding:0;margin:22px 0 0;display:grid;gap:9px}.brp-fieldset legend{font-weight:750;margin-bottom:10px}.brp-doc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin:22px 0}.brp-meter{height:10px;border-radius:99px;background:#dfe5df;overflow:hidden;margin-top:8px}.brp-meter>span{display:block;height:100%;background:var(--accent)}.brp-doc-group{margin-top:28px}.brp-doc-list{display:grid;gap:10px;margin-top:12px}.brp-doc-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px;border:1px solid #d9ddd6;border-radius:14px;background:var(--card);min-width:0}.brp-doc-check{grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:start}.brp-doc-item.optional{background:transparent}.brp-doc-check>input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--accent)}.brp-doc-item>span{min-width:0;overflow-wrap:break-word}.brp-doc-item>strong{white-space:nowrap;text-align:right}.brp-badge{display:block;width:max-content;margin-top:6px;padding:2px 7px;border-radius:999px;background:var(--soft);font-size:11px;font-weight:650;color:var(--muted)}.brp-doc-item.optional .brp-badge{background:#eceae3}.brp-summary-list{margin:10px 0 0;padding-left:20px}.brp-summary-note{font-size:13px!important;color:#718078!important;font-weight:400!important}.brp-complete{background:var(--soft);padding:22px;border-radius:16px;margin-top:28px}.brp-preview .brp-doc-item{display:block}.brp-result-row{min-height:58px}.brp-text-link{appearance:none!important;background:transparent!important;color:var(--accent)!important;padding:8px 0!important;min-height:0!important;text-decoration:underline;text-underline-offset:3px}.brp-anchor{scroll-margin-top:24px}@media(max-width:720px){.brp-doc-head{align-items:flex-start;flex-direction:column}.brp-doc-item{grid-template-columns:minmax(0,1fr) auto}.brp-doc-check{grid-template-columns:24px minmax(0,1fr)}}`;}function mobileCss(){return`\n.brp.brp-mobile{\n    font-size:16px;\n    line-height:1.5;\n    overflow-x:hidden;\n    width:100%;\n    max-width:100%;\n}\n.brp.brp-mobile .brp-shell,\n.brp.brp-mobile .brp-shell.brp-tool{\n    width:100%;\n    max-width:none;\n    padding:18px 16px 72px;\n}\n.brp.brp-mobile .brp-head{\n    align-items:flex-start;\n    gap:12px;\n    margin-bottom:28px;\n    flex-wrap:wrap;\n}\n.brp.brp-mobile .brp-head>button{\n    min-height:44px;\n    padding:10px 12px;\n    text-align:left;\n}\n.brp.brp-mobile .brp-progress{\n    font-size:14px;\n    padding-top:11px;\n    text-align:right;\n    margin-left:auto;\n}\n.brp.brp-mobile .brp-brand{\n    font-size:15px;\n    padding-top:9px;\n}\n.brp.brp-mobile h1{\n    font-size:clamp(30px,9vw,38px);\n    line-height:1.08;\n    letter-spacing:-.035em;\n    margin-bottom:16px;\n}\n.brp.brp-mobile h2{\n    font-size:24px;\n    line-height:1.2;\n}\n.brp.brp-mobile .brp-lead{\n    font-size:17px;\n    line-height:1.5;\n}\n.brp.brp-mobile .brp-kicker{\n    font-size:12px;\n}\n.brp.brp-mobile .brp-grid{\n    grid-template-columns:1fr;\n    gap:14px;\n    margin-top:28px;\n}\n.brp.brp-mobile .brp-card{\n    width:100%;\n    min-height:0;\n    padding:20px;\n    border-radius:16px;\n}\n.brp.brp-mobile .brp-card p{\n    font-size:15px;\n    margin:10px 0 20px;\n}\n.brp.brp-mobile .brp-status{\n    font-size:13px;\n    margin-bottom:16px;\n}\n.brp.brp-mobile .brp-panel{\n    width:100%;\n    margin-top:24px;\n    padding:20px 16px;\n    border-radius:16px;\n}\n.brp.brp-mobile .brp-form{\n    width:100%;\n    max-width:none;\n    gap:20px;\n    margin-top:24px;\n}\n.brp.brp-mobile .brp-form label,\n.brp.brp-mobile .brp-field{\n    gap:7px;\n}\n.brp.brp-mobile .brp-form input,\n.brp.brp-mobile .brp-form select,\n.brp.brp-mobile .brp-form textarea{\n    font-size:16px;\n    line-height:1.35;\n    min-height:52px;\n    padding:13px 12px;\n}\n.brp.brp-mobile .brp-form textarea{\n    min-height:112px;\n}\n.brp.brp-mobile .brp-note,\n.brp.brp-mobile .brp-summary-note{\n    font-size:14px!important;\n    line-height:1.5;\n}\n.brp.brp-mobile .brp-optional{\n    font-size:12px;\n    padding:3px 8px;\n}\n.brp.brp-mobile .brp-actions{\n    display:grid;\n    grid-template-columns:1fr;\n    gap:10px;\n    width:100%;\n    margin-top:22px;\n}\n.brp.brp-mobile .brp-actions>button,\n.brp.brp-mobile .brp-actions>.brp-button{\n    width:100%;\n    min-height:48px;\n}\n.brp.brp-mobile .brp-actions>.brp-text-link{\n    justify-content:flex-start;\n    text-align:left;\n    padding:10px 2px!important;\n}\n.brp.brp-mobile .brp-notice{\n    font-size:15px;\n    padding:14px;\n    margin:18px 0;\n}\n.brp.brp-mobile .brp-doc-head{\n    align-items:flex-start;\n    flex-direction:column;\n    margin:20px 0;\n}\n.brp.brp-mobile .brp-doc-group{\n    margin-top:24px;\n}\n.brp.brp-mobile .brp-doc-list{\n    gap:12px;\n}\n.brp.brp-mobile .brp-doc-item{\n    padding:16px;\n    gap:10px 14px;\n    align-items:start;\n}\n.brp.brp-mobile .brp-doc-check{\n    grid-template-columns:26px minmax(0,1fr);\n    padding:17px 16px;\n}\n.brp.brp-mobile .brp-doc-check>input{\n    width:24px;\n    height:24px;\n    margin:0;\n}\n.brp.brp-mobile .brp-doc-item>strong{\n    white-space:normal;\n    text-align:left;\n}\n.brp.brp-mobile .brp-result-row{\n    grid-template-columns:1fr;\n    gap:4px;\n    min-height:0;\n}\n.brp.brp-mobile .brp-result-row>strong{\n    font-size:18px;\n    text-align:left;\n}\n.brp.brp-mobile .brp-badge{\n    font-size:12px;\n    padding:3px 8px;\n}\n.brp.brp-mobile .brp-complete{\n    padding:18px;\n    margin-top:24px;\n}\n.brp.brp-mobile .brp-choice{\n    padding:15px 14px;\n    gap:12px;\n    min-height:54px;\n}\n.brp.brp-mobile .brp-choice input{\n    width:22px!important;\n    height:22px!important;\n}\n.brp.brp-mobile .brp-preview .brp-doc-item{\n    padding:15px 16px;\n}\n.brp.brp-narrow .brp-shell,\n.brp.brp-narrow .brp-shell.brp-tool{\n    padding-left:14px;\n    padding-right:14px;\n}\n.brp.brp-narrow .brp-panel,\n.brp.brp-narrow .brp-card{\n    padding-left:16px;\n    padding-right:16px;\n}\n.brp.brp-narrow h1{\n    font-size:30px;\n}\n`;}function css(){const base=documentsCss()+`\n*{box-sizing:border-box} .brp{--ink:#17211b;--muted:#617067;--paper:#f5f2e9;--card:#fffdf8;--accent:#0f6b4f;--soft:#e3eee7;--warn:#8b5a12;position:relative;width:100%;min-height:100vh;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;line-height:1.45}.brp a{color:inherit}.brp-shell{width:min(100%,920px);margin:0 auto;padding:24px 20px 96px}.brp-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:44px}.brp-guide-link{color:var(--accent)!important;font-size:14px;font-weight:650;text-decoration:none;white-space:nowrap}.brp-guide-link:hover{text-decoration:underline;text-underline-offset:3px}.brp-brand{font-weight:720;letter-spacing:-.02em}.brp-progress{font-size:14px;color:var(--muted)}h1{font-size:clamp(34px,6vw,58px);line-height:1.02;letter-spacing:-.045em;margin:0 0 18px;overflow-wrap:break-word}h2{font-size:26px;letter-spacing:-.025em;margin:0}.brp-lead{font-size:18px;color:var(--muted);max-width:650px;margin:0}.brp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:34px}.brp-card{display:flex;flex-direction:column;min-height:270px;padding:22px;border:1px solid #d9ddd6;border-radius:18px;background:var(--card);box-shadow:0 8px 30px rgba(23,33,27,.04)}.brp-kicker{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.brp-card p{color:var(--muted);margin:12px 0 24px}.brp-status{display:inline-flex;align-self:flex-start;border-radius:999px;background:var(--soft);padding:6px 10px;font-size:13px;margin-bottom:18px}.brp-status.review{background:#fff0d5;color:var(--warn)}button,.brp-button{appearance:none;border:0;border-radius:12px;background:var(--accent);color:white;font:inherit;font-weight:700;padding:13px 16px;cursor:pointer;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;min-height:48px}.brp-secondary{background:transparent;color:var(--accent);border:1px solid #aabdb2}.brp-card button{margin-top:auto;width:100%}.brp-panel{margin-top:32px;padding:26px;border:1px solid #d9ddd6;border-radius:18px;background:var(--card);min-width:0}.brp-form{display:grid;gap:18px;max-width:520px;margin-top:28px}.brp-form label,.brp-field{font-weight:650;display:grid;gap:6px;min-width:0}.brp-optional{display:inline-flex;width:max-content;padding:2px 7px;border-radius:999px;background:var(--soft);font-size:11px;font-weight:600;color:var(--muted)}.brp-form input,.brp-form select,.brp-form textarea{width:100%;min-width:0;min-height:50px;border:1px solid #aab5ad;border-radius:10px;background:white;padding:11px 12px;font:inherit;color:var(--ink)}.brp-form textarea{resize:vertical}.brp-form input::placeholder,.brp-form textarea::placeholder{color:#929c96;opacity:1;font-weight:400}.brp-form input:focus,.brp-form select:focus,.brp-form textarea:focus,button:focus-visible,.brp-button:focus-visible{outline:3px solid #8ec9b1;outline-offset:2px}.brp-field.has-error input,.brp-field.has-error select,.brp-field.has-error textarea{border-color:#9b2c22;background:#fff9f8}.brp-note{display:block;font-size:13px!important;line-height:1.45;color:#718078!important;font-weight:400!important}.brp-error{color:#9b2c22;font-size:13px;font-weight:400}.brp-tool{max-width:760px}.brp-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.brp-notice{padding:14px 16px;border-radius:12px;background:#fff0d5;color:#6f4710;margin:20px 0}.brp-debug{margin-top:28px;padding-top:22px;border-top:1px solid #d9ddd6}.brp-mobilebar{display:none}.brp-skeleton{height:180px;border-radius:16px;background:linear-gradient(90deg,#ece9df,#faf8f1,#ece9df);background-size:200% 100%;animation:brp-shimmer 1.2s infinite}@keyframes brp-shimmer{to{background-position:-200% 0}}@media(max-width:720px){.brp-guide-link{width:100%}.brp-shell{padding:20px 16px 110px}.brp-head{margin-bottom:32px}.brp-grid{grid-template-columns:1fr}.brp-card{min-height:220px}.brp-mobilebar{position:sticky;bottom:0;display:block;background:linear-gradient(transparent,var(--paper) 35%);padding:34px 0 8px}.brp-mobilebar button{width:100%}}@media(max-width:340px){.brp-shell{padding-left:12px;padding-right:12px}.brp-panel,.brp-card{padding:18px}}`;return base+mobileCss()+`.brp-reset{margin-top:32px;padding-top:18px;border-top:1px solid #d9ddd6}.brp-reset-button{appearance:none!important;background:transparent!important;color:#8a3b34!important;border:0!important;border-radius:0!important;padding:8px 0!important;min-height:0!important;font-weight:650!important;text-decoration:underline;text-underline-offset:3px}.brp-reset-button:hover{color:#6f2f2a!important}@media(max-width:720px){.brp{width:100vw;max-width:100vw}.brp-head{flex-wrap:wrap}.brp-progress{margin-left:auto}.brp-reset-button{width:auto!important;text-align:left}}`;}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function HelperFoundation(props){const rootRef=React.useRef(null);const[componentWidth,setComponentWidth]=React.useState(1200);const[locale,setLocale]=React.useState(()=>resolveLocale());React.useEffect(()=>{if(typeof window===\"undefined\")return;const explicit=urlLocale();const resolved=explicit||resolveLocale();setLocale(resolved);window.localStorage.setItem(LOCALE_KEY,resolved);if(!explicit&&resolved===\"uk\"){const target=localePath(window.location.pathname,\"uk\");window.history.replaceState({},\"\",`${target}${window.location.search}${window.location.hash}`);}},[]);React.useEffect(()=>{const root=rootRef.current;if(!root)return;const translateNode=node=>{if(locale!==\"uk\")return;if(node.nodeType===Node.TEXT_NODE&&node.nodeValue){const translated=translateUk(node.nodeValue);if(translated!==node.nodeValue)node.nodeValue=translated;return;}if(node instanceof HTMLElement){for(const attr of[\"placeholder\",\"aria-label\",\"title\"]){const value=node.getAttribute(attr);if(value){const translated=translateUk(value);if(translated!==value)node.setAttribute(attr,translated);}}if(node instanceof HTMLAnchorElement){const href=node.getAttribute(\"href\");if(href&&href.startsWith(\"/\")){const translatedHref=localePath(href,\"uk\");if(translatedHref!==href)node.setAttribute(\"href\",translatedHref);}}}};const apply=()=>{translateNode(root);root.querySelectorAll(\"*\").forEach(element=>{translateNode(element);element.childNodes.forEach(translateNode);});document.documentElement.lang=locale;};apply();const observer=new MutationObserver(apply);observer.observe(root,{childList:true,subtree:true,characterData:true,attributes:true});return()=>observer.disconnect();},[locale]);React.useEffect(()=>{if(typeof document===\"undefined\")return;const id=\"brp-locale-switch\";let switcher=document.getElementById(id);if(!switcher){switcher=document.createElement(\"div\");switcher.id=id;switcher.setAttribute(\"role\",\"group\");switcher.setAttribute(\"aria-label\",\"Language\");switcher.style.cssText=\"position:fixed;right:16px;top:16px;z-index:9999;display:flex;gap:4px;padding:4px;border:1px solid #d9ddd6;border-radius:999px;background:#fffdf8;font:600 12px/1 Inter,sans-serif;box-shadow:0 4px 18px rgba(23,33,27,.10)\";document.body.appendChild(switcher);}switcher.innerHTML=`<button type=\"button\" data-locale=\"ru\" style=\"border:0;border-radius:999px;padding:8px 10px;min-height:0;cursor:pointer;background:${locale===\"ru\"?\"#0f6b4f\":\"transparent\"};color:${locale===\"ru\"?\"white\":\"#17211b\"}\">RU</button><button type=\"button\" data-locale=\"uk\" style=\"border:0;border-radius:999px;padding:8px 10px;min-height:0;cursor:pointer;background:${locale===\"uk\"?\"#0f6b4f\":\"transparent\"};color:${locale===\"uk\"?\"white\":\"#17211b\"}\">УКР</button>`;const click=event=>{const target=event.target.closest(\"button[data-locale]\");if(!target)return;const next=target.dataset.locale;window.localStorage.setItem(LOCALE_KEY,next);const targetPath=localePath(window.location.pathname,next);window.location.assign(`${targetPath}${window.location.search}${window.location.hash}`);};switcher.addEventListener(\"click\",click);return()=>switcher?.removeEventListener(\"click\",click);},[locale]);React.useEffect(()=>{const node=rootRef.current;if(!node)return;const updateWidth=()=>{setComponentWidth(node.getBoundingClientRect().width);};updateWidth();const observer=new ResizeObserver(updateWidth);observer.observe(node);return()=>observer.disconnect();},[]);const rootClassName=componentWidth<=360?\"brp brp-mobile brp-narrow\":componentWidth<=720?\"brp brp-mobile\":\"brp\";const[ready,setReady]=React.useState(false);const[state,setState]=React.useState(()=>createState());const[storageMode,setStorageMode]=React.useState(\"local\");const[recovery,setRecovery]=React.useState({active:false,future:false});const[path,setPath]=React.useState(\"/helper\");const[email,setEmail]=React.useState(\"\");const[error,setError]=React.useState(\"\");const[submitting,setSubmitting]=React.useState(false);const[setupDraft,setSetupDraft]=React.useState({rental_type:\"unknown\",adult_count:1,income_profiles:[[]],company_income_modes:[[]],configured:false});const[budgetDraft,setBudgetDraft]=React.useState(()=>emptyBudget());const[budgetErrors,setBudgetErrors]=React.useState({});const[budgetEditing,setBudgetEditing]=React.useState(false);const[presentationDraft,setPresentationDraft]=React.useState(()=>emptyPresentation(createState()));const[presentationStep,setPresentationStep]=React.useState(\"form\");const[presentationText,setPresentationText]=React.useState(\"\");const[presentationCopy,setPresentationCopy]=React.useState(null);const[presentationErrors,setPresentationErrors]=React.useState({});const[feedbackSource,setFeedbackSource]=React.useState(null);const feedbackReturn=React.useRef({element:null,scroll:0});function openFeedback(source){feedbackReturn.current={element:document.activeElement,scroll:window.scrollY};setFeedbackSource(source);}function closeFeedback(){if(feedbackSource===\"playbook\"){window.location.assign(localePath(PLAYBOOK_URL,locale)+\"#feedback\");return;}setFeedbackSource(null);requestAnimationFrame(()=>{document.querySelector(`[data-feedback-source=\"${feedbackSource}\"]`)?.focus();window.scrollTo(0,feedbackReturn.current.scroll);});}React.useEffect(()=>{if(new URLSearchParams(window.location.search).get(\"feedback\")===\"playbook\")setFeedbackSource(\"playbook\");const loaded=hydrate();let migrated=migrateLegacyChecklist(loaded.state);if(loaded.state.tools.documents.status===\"completed\"&&!documentSetup(loaded.state.tools.documents,loaded.state).configured){loaded.state.tools.documents.status=\"in_progress\";loaded.state.tools.documents.completed_against=null;migrated=true;}if(loaded.state.tools.budget.status===\"completed\"&&!isRecord(loaded.state.tools.budget.answers.budget_input)){loaded.state.tools.budget.status=\"in_progress\";loaded.state.tools.budget.completed_against=null;migrated=true;}if(migrated){loaded.state.meta.state_revision+=1;loaded.state.meta.updated_at=new Date().toISOString();save(loaded.state,loaded.mode);}setState(loaded.state);setStorageMode(loaded.mode);setRecovery({active:loaded.recovery,future:loaded.recovery?loaded.future:false});setPath(pathNow());setReady(true);const pop=()=>setPath(pathNow());const sync=event=>{if(event.key!==KEY||!event.newValue)return;const incoming=parse(event.newValue);if(incoming)setState(current=>incoming.meta.state_revision>current.meta.state_revision?incoming:current);};window.addEventListener(\"popstate\",pop);window.addEventListener(\"storage\",sync);return()=>{window.removeEventListener(\"popstate\",pop);window.removeEventListener(\"storage\",sync);};},[]);React.useEffect(()=>{if(ready)analytics(\"helper_route_viewed\",{route:path,completed_count:completedCount(state),storage_mode:storageMode},props);},[path,ready]);React.useEffect(()=>{if(ready&&path===ROUTES.documents){setSetupDraft(documentSetup(state.tools.documents,state));const documents=state.tools.documents;const setup=documentSetup(documents,state);if(setup.configured&&documents.status===\"completed\"){const required=buildDocumentItems(setup).filter(item=>item.required);if(required.some(item=>documents.checklist?.[item.id]!==\"ready\"))commit(draft=>{draft.tools.documents.status=\"in_progress\";draft.tools.documents.current_step=\"checklist\";draft.tools.documents.completed_against=null;});}}if(ready&&path===ROUTES.budget){const budget=state.tools.budget;setBudgetDraft(budgetFromTool(budget));setBudgetEditing(false);if(budget.status===\"completed\"&&!isRecord(budget.answers.budget_input))commit(draft=>{draft.tools.budget.status=\"in_progress\";draft.tools.budget.current_step=\"start\";draft.tools.budget.completed_against=null;});}if(ready&&path===ROUTES.presentation){const presentation=state.tools.presentation;setPresentationDraft(presentationFromTool(presentation,state));setPresentationText(typeof presentation.answers.presentation_text===\"string\"?presentation.answers.presentation_text:\"\");setPresentationCopy(isRecord(presentation.answers.presentation_copy)?normalizePresentationCopy(presentation.answers.presentation_copy):null);setPresentationStep(isRecord(presentation.answers.presentation_copy)?\"result\":\"form\");}},[ready,path]);React.useEffect(()=>{if(!ready||path!==ROUTES.documents)return;const documents=state.tools.documents;if(documentSetup(documents,state).configured&&documents.status===\"in_progress\")analytics(\"documents_returned\",{tool:\"documents\",status:\"in_progress\"},props);},[ready,path]);React.useEffect(()=>{const currentTool=routeTool(path);if(!ready||!currentTool||!state.meta.unlocked||state.tools[currentTool].status!==\"not_started\")return;commit(draft=>{draft.meta.last_opened_tool=currentTool;draft.tools[currentTool].status=\"in_progress\";draft.tools[currentTool].updated_at=new Date().toISOString();});setBudgetEditing(false);analytics(\"tool_opened\",{tool:currentTool,status:\"in_progress\"},props);},[ready,path,state.meta.unlocked,state.tools.documents.status,state.tools.presentation.status,state.tools.budget.status]);const commit=React.useCallback(recipe=>{setState(current=>{const next=JSON.parse(JSON.stringify(current));recipe(next);next.meta.state_revision+=1;next.meta.updated_at=new Date().toISOString();const count=completedCount(next);if(count>=1&&!next.milestones.helper_1_of_3_completed){next.milestones.helper_1_of_3_completed=true;analytics(\"helper_1_of_3_completed\",{completed_count:count},props);}if(count>=2&&!next.milestones.helper_2_of_3_completed){next.milestones.helper_2_of_3_completed=true;analytics(\"helper_2_of_3_completed\",{completed_count:count},props);}if(count===3&&!next.milestones.helper_completed){next.milestones.helper_completed=true;analytics(\"helper_completed\",{completed_count:count},props);}save(next,storageMode);return next;});},[storageMode,props.apiBase,props.analyticsHost,props.analyticsKey]);function navigate(next,replace=false){const logical=basePath(next.split(\"?\")[0]);const suffix=next.includes(\"?\")?`?${next.split(\"?\").slice(1).join(\"?\")}`:\"\";const target=`${localePath(logical,locale)}${suffix}`;if(typeof window!==\"undefined\"){if(replace)window.history.replaceState({},\"\",target);else window.history.pushState({},\"\",target);}setPath(logical);}function openTool(id){if(!state.meta.unlocked){const source={documents:\"documents_cta\",presentation:\"presentation_cta\",budget:\"budget_cta\"}[id];navigate(`/helper/unlock?next=${encodeURIComponent(ROUTES[id])}&source=${source}`);return;}commit(draft=>{draft.meta.last_opened_tool=id;if(draft.tools[id].status===\"not_started\"){draft.tools[id].status=\"in_progress\";draft.tools[id].updated_at=new Date().toISOString();}});navigate(ROUTES[id]);analytics(\"tool_opened\",{tool:id,status:state.tools[id].status},props);}function nextIncompleteTool(exclude){return TOOL_IDS.find(id=>id!==exclude&&state.tools[id].status!==\"completed\")||null;}async function submitUnlock(event){event.preventDefault();setError(\"\");if(!/^\\S+@\\S+\\.\\S+$/.test(email)){setError(\"Введите корректный email.\");return;}const params=new URLSearchParams(typeof window!==\"undefined\"?window.location.search:\"\");const next=safeNext(params.get(\"next\"));const rawSource=params.get(\"source\");const source=SOURCE_VALUES.includes(rawSource)?rawSource:\"other\";setSubmitting(true);try{const apiBase=(props.apiBase||DEFAULT_API_BASE).replace(/\\/$/,\"\");const response=await fetch(`${apiBase}/v1/capture/email`,{method:\"POST\",headers:{\"content-type\":\"application/json\",\"idempotency-key\":uid()},body:JSON.stringify({email,entry_source:source,consent_version:\"v1\"})});if(!response.ok)throw new Error(\"capture_failed\");commit(draft=>{draft.meta.unlocked=true;draft.meta.unlocked_at=new Date().toISOString();draft.meta.entry_source=source;});setEmail(\"\");analytics(\"helper_unlocked\",{entry_source:source},props);navigate(next,true);}catch{setError(\"Не удалось сохранить email. Данные не потеряны — попробуйте еще раз.\");analytics(\"helper_error\",{error_code:\"capture_failed\",route:path},props);}finally{setSubmitting(false);}}function completeTool(id){commit(draft=>{const t=draft.tools[id];t.status=\"completed\";t.answers={...t.answers,foundation_placeholder_checked:true};t.completed_against=dependencies(draft);t.review_reasons=[];t.updated_at=new Date().toISOString();});analytics(\"tool_completed\",{tool:id,status:\"completed\"},props);}function resizeAdults(count){setSetupDraft(current=>({...current,adult_count:count,income_profiles:Array.from({length:count},(_,index)=>current.income_profiles[index]||[]),company_income_modes:Array.from({length:count},(_,index)=>current.company_income_modes[index]||[])}));}function toggleIncome(adultIndex,profile){setSetupDraft(current=>{const profiles=current.income_profiles.map(items=>[...items]);if(profiles[adultIndex].includes(profile)){profiles[adultIndex]=profiles[adultIndex].filter(item=>item!==profile);}else if(profile===\"no_income\"){profiles[adultIndex]=[\"no_income\"];}else{profiles[adultIndex]=[...profiles[adultIndex].filter(item=>item!==\"no_income\"),profile];}return{...current,income_profiles:profiles};});}function toggleCompanyMode(adultIndex,mode){setSetupDraft(current=>{const modes=current.company_income_modes.map(items=>[...items]);modes[adultIndex]=modes[adultIndex].includes(mode)?modes[adultIndex].filter(item=>item!==mode):[...modes[adultIndex],mode];return{...current,company_income_modes:modes};});}function saveDocumentsSetup(){if(setupDraft.income_profiles.some(profiles=>profiles.length===0)){setError(\"Выберите хотя бы один способ подтверждения дохода для каждого арендатора.\");return;}const missingCompanyMode=setupDraft.income_profiles.some((profiles,index)=>profiles.includes(\"company_owner_director\")&&setupDraft.company_income_modes[index].length===0);if(missingCompanyMode){setError(\"Для владельца или руководителя компании укажите, как формируется личный доход.\");return;}setError(\"\");const configured={...setupDraft,configured:true};const nextItems=buildDocumentItems(configured);commit(draft=>{const documents=draft.tools.documents;const oldChecklist=documents.checklist||{};const oldRentalType=draft.shared.rental_type;const oldAdults=JSON.stringify(draft.shared.adults.map(adult=>adult.income_profiles));documents.answers.documents_setup=configured;documents.checklist=Object.fromEntries(nextItems.map(item=>[item.id,oldChecklist[item.id]||\"todo\"]));documents.completion_markers=documents.completion_markers||{};documents.current_step=\"checklist\";documents.status=\"in_progress\";documents.updated_at=new Date().toISOString();draft.shared.rental_type=configured.rental_type;draft.shared.adults=configured.income_profiles.map((income_profiles,index)=>({id:draft.shared.adults[index]?.id||uid(),income_profiles,professional_profile:null}));const adultsChanged=oldAdults!==JSON.stringify(configured.income_profiles);if(oldRentalType!==configured.rental_type){[\"presentation\",\"budget\"].forEach(id=>{const target=draft.tools[id];if(target.status===\"completed\"){target.status=\"needs_review\";target.review_reasons=Array.from(new Set([...target.review_reasons,\"rental_type_changed\"]));}});}if(adultsChanged&&draft.tools.presentation.status===\"completed\"){draft.tools.presentation.status=\"needs_review\";draft.tools.presentation.review_reasons=Array.from(new Set([...draft.tools.presentation.review_reasons,\"adult_profiles_changed\"]));}});setSetupDraft(configured);analytics(\"documents_setup_completed\",{tool:\"documents\",status:\"in_progress\"},props);}function updateDocumentItem(itemId,value,requiredItems){const currentDocuments=state.tools.documents;const nextChecklist={...currentDocuments.checklist||{},[itemId]:value};const readyCount=requiredItems.filter(item=>nextChecklist[item.id]===\"ready\").length;const total=requiredItems.length;const markers=currentDocuments.completion_markers||{};const first=readyCount>=1&&!markers.first_ready;const half=total>0&&readyCount/total>=.5&&!markers.half_ready;const done=total>0&&readyCount===total&&currentDocuments.status!==\"completed\";commit(draft=>{const documents=draft.tools.documents;documents.checklist=nextChecklist;documents.completion_markers=documents.completion_markers||{};if(first)documents.completion_markers.first_ready=true;if(half)documents.completion_markers.half_ready=true;if(total>0&&readyCount===total){documents.status=\"completed\";documents.current_step=\"complete\";documents.completed_against=dependencies(draft);documents.review_reasons=[];documents.completion_markers.completed=true;}else if(documents.status===\"completed\"){documents.status=\"in_progress\";documents.current_step=\"checklist\";documents.completed_against=null;}documents.updated_at=new Date().toISOString();});if(first)analytics(\"documents_first_required_item_ready\",{tool:\"documents\",status:\"in_progress\"},props);if(half)analytics(\"documents_required_50_percent\",{tool:\"documents\",status:\"in_progress\"},props);if(done){analytics(\"documents_completed\",{tool:\"documents\",status:\"completed\"},props);analytics(\"tool_completed\",{tool:\"documents\",status:\"completed\"},props);}}function confirmDocumentsReview(requiredItems){commit(draft=>{const documents=draft.tools.documents;const allReady=requiredItems.length>0&&requiredItems.every(item=>documents.checklist?.[item.id]===\"ready\");documents.status=allReady?\"completed\":\"in_progress\";documents.current_step=allReady?\"complete\":\"checklist\";documents.completed_against=allReady?dependencies(draft):null;documents.review_reasons=[];documents.updated_at=new Date().toISOString();});}function setBudgetField(key,value){setBudgetDraft(current=>({...current,[key]:value}));setBudgetErrors(current=>{if(!current[key])return current;const next={...current};delete next[key];return next;});}function addOtherPayment(){setBudgetDraft(current=>({...current,other_payments:[...current.other_payments,{id:uid(),title:\"\",amount:\"\",refundable:\"unknown\"}]}));}function updateOtherPayment(id,patch){setBudgetDraft(current=>({...current,other_payments:current.other_payments.map(item=>item.id===id?{...item,...patch}:item)}));}function calculateAndSaveBudget(){setError(\"\");const errors={};if(!money(budgetDraft.monthly_rent)){errors.monthly_rent=\"Укажите ежемесячную аренду больше 0 €.\";}const depositMonths=Number(budgetDraft.deposit_months.replace(/\\s/g,\"\").replace(\",\",\".\"));if(!budgetDraft.deposit_months.trim()||!Number.isFinite(depositMonths)||depositMonths<0){errors.deposit_months=\"Укажите количество месяцев залогов и гарантий. Если их нет, укажите 0.\";}if(!money(budgetDraft.move_in_rent_months)){errors.move_in_rent_months=\"Укажите, сколько месяцев аренды оплачивается при заселении.\";}if(budgetDraft.agency_fee_mode!==\"none\"&&!money(budgetDraft.agency_fee_value)){errors.agency_fee_value=\"Укажите размер комиссии агентства.\";}if(budgetDraft.agency_fee_mode===\"percent\"&&budgetDraft.agency_percent_basis===\"full_term\"&&!money(budgetDraft.contract_months)){errors.contract_months=\"Укажите срок договора для расчета процентной комиссии.\";}if(Object.keys(errors).length){setBudgetErrors(errors);const first=Object.keys(errors)[0];setTimeout(()=>{document.getElementById(`budget-${first}`)?.focus();},0);return;}setBudgetErrors({});const result=calculateBudget(budgetDraft);const wasCompleted=state.tools.budget.completion_markers?.budget_completed===true;commit(draft=>{const budget=draft.tools.budget;budget.answers.budget_input=budgetDraft;budget.answers.budget_result=result;budget.completion_markers={...budget.completion_markers||{},budget_completed:true};budget.status=\"completed\";budget.current_step=\"result\";budget.completed_against=dependencies(draft);budget.review_reasons=[];budget.updated_at=new Date().toISOString();});setBudgetEditing(false);analytics(\"budget_input_completed\",{tool:\"budget\",status:\"in_progress\"},props);analytics(wasCompleted?\"budget_recalculated\":\"budget_calculated\",{tool:\"budget\",status:\"completed\"},props);if(money(budgetDraft.monthly_net_income))analytics(\"budget_income_comparison_used\",{tool:\"budget\",status:\"completed\"},props);if(money(budgetDraft.personal_limit))analytics(\"budget_personal_limit_used\",{tool:\"budget\",status:\"completed\"},props);if(!wasCompleted){analytics(\"budget_completed\",{tool:\"budget\",status:\"completed\"},props);analytics(\"tool_completed\",{tool:\"budget\",status:\"completed\"},props);}}function setPresentationField(key,value){setPresentationDraft(current=>({...current,[key]:value}));setPresentationErrors(current=>{if(!current[String(key)])return current;const next={...current};delete next[String(key)];return next;});}function setPresentationAdultCount(count){const nextCount=Math.max(1,Math.min(4,count));setPresentationDraft(current=>({...current,household:nextCount===1?\"1 взрослый\":`${nextCount} взрослых`,occupant_names:Array.from({length:nextCount},(_,index)=>current.occupant_names[index]||\"\"),professional_profiles:Array.from({length:nextCount},(_,index)=>current.professional_profiles[index]||\"\")}));commit(draft=>{draft.shared.adults=Array.from({length:nextCount},(_,index)=>draft.shared.adults[index]||{id:uid(),income_profiles:[],professional_profile:null});});}function validatePresentation(){const errors={};presentationDraft.occupant_names.forEach((value,index)=>{if(!value.trim())errors[`occupant_names_${index}`]=\"Укажите имя.\";else if(/[А-Яа-яЁё]/.test(value))errors[`occupant_names_${index}`]=\"Введите имя латиницей, чтобы оно корректно отображалось в PDF.\";});if(!presentationDraft.move_in.trim())errors.move_in=\"Укажите планируемую дату заселения.\";if(!presentationDraft.term.trim())errors.term=\"Укажите срок аренды.\";presentationDraft.professional_profiles.forEach((value,index)=>{if(!value.trim())errors[`professional_profiles_${index}`]=\"Опишите профессиональный профиль.\";});if(!presentationDraft.income_confirmation.trim())errors.income_confirmation=\"Укажите, чем подтверждается доход.\";if((presentationDraft.rental_type===\"temporada\"||presentationDraft.rental_type===\"both\")&&!presentationDraft.temporada_reason.trim())errors.temporada_reason=\"Для временной аренды укажите реальную причину проживания.\";if(presentationDraft.has_pet===\"yes\"&&!presentationDraft.pet_details.trim())errors.pet_details=\"Кратко опишите питомца.\";setPresentationErrors(errors);const first=Object.keys(errors)[0];if(first){setError(\"Проверьте отмеченные поля.\");window.setTimeout(()=>{document.getElementById(`presentation-${first}`)?.focus();},0);return false;}setError(\"\");return true;}function confirmPresentation(){if(!validatePresentation())return;const sourceKey=presentationSourceKey(presentationDraft);const sourceChanged=state.tools.presentation.answers.presentation_source_key!==sourceKey;commit(draft=>{const tool=draft.tools.presentation;tool.answers.presentation_input=presentationDraft;tool.answers.presentation_source_key=sourceKey;if(sourceChanged){delete tool.answers.presentation_text;delete tool.answers.presentation_copy;tool.answers.presentation_regenerations=0;}tool.status=\"in_progress\";tool.current_step=\"confirm\";tool.updated_at=new Date().toISOString();draft.shared.has_pet=presentationDraft.has_pet===\"yes\";});if(sourceChanged){setPresentationText(\"\");setPresentationCopy(null);}setPresentationStep(\"confirm\");analytics(\"presentation_input_completed\",{tool:\"presentation\",status:\"in_progress\"},props);}async function generatePresentation(){setSubmitting(true);setError(\"\");const tool=state.tools.presentation;const sourceKey=presentationSourceKey(presentationDraft);const sourceChanged=tool.answers.presentation_source_key!==sourceKey;try{const{photo_data_url,contact,...generationFacts}=presentationDraft;if(generationFacts.rental_type===\"temporada\"||generationFacts.rental_type===\"both\"){generationFacts.temporada_period=generationFacts.term;generationFacts.habitual_reason=\"\";}else{generationFacts.temporada_reason=\"\";generationFacts.temporada_period=\"\";}const response=await fetch(`${(props.apiBase||DEFAULT_API_BASE).replace(/\\/$/,\"\")}/v1/presentation/generate`,{method:\"POST\",headers:{\"content-type\":\"application/json\",\"idempotency-key\":uid()},body:JSON.stringify({facts:generationFacts,source_revision:state.meta.state_revision})});const data=await response.json();if(!response.ok||!data.ok||!data.copy)throw new Error(data.error||\"generation_failed\");const normalizedCopy=normalizePresentationCopy(data.copy);setPresentationText(normalizedCopy.about);setPresentationCopy(normalizedCopy);setPresentationStep(\"result\");commit(draft=>{const presentation=draft.tools.presentation;presentation.answers.presentation_input=presentationDraft;presentation.answers.presentation_text=normalizedCopy.about;presentation.answers.presentation_copy=normalizedCopy;presentation.answers.presentation_source_key=sourceKey;presentation.answers.presentation_regenerations=0;presentation.status=\"in_progress\";presentation.current_step=\"result\";presentation.updated_at=new Date().toISOString();});analytics(\"presentation_generated\",{tool:\"presentation\",status:\"in_progress\"},props);}catch{setError(\"Не удалось создать текст. Ответы сохранены — попробуйте еще раз.\");analytics(\"helper_error\",{error_code:\"presentation_generation_failed\",route:path},props);}finally{setSubmitting(false);}}async function createPresentationPdf(){if(!presentationCopy)return;await downloadPresentationPdfVector(presentationCopy,presentationDraft,state.tools.documents.status);const wasCompleted=state.tools.presentation.status===\"completed\";commit(draft=>{const presentation=draft.tools.presentation;presentation.answers.presentation_text=presentationText;presentation.answers.presentation_copy=presentationCopy;presentation.answers.pdf_created=true;presentation.status=\"completed\";presentation.current_step=\"complete\";presentation.completed_against=dependencies(draft);presentation.review_reasons=[];presentation.updated_at=new Date().toISOString();});analytics(\"presentation_pdf_created\",{tool:\"presentation\",status:\"completed\"},props);if(!wasCompleted){analytics(\"presentation_completed\",{tool:\"presentation\",status:\"completed\"},props);analytics(\"tool_completed\",{tool:\"presentation\",status:\"completed\"},props);}}function toggleRentalType(){commit(draft=>{draft.shared.rental_type=draft.shared.rental_type===\"habitual\"?\"temporada\":\"habitual\";TOOL_IDS.forEach(id=>{const tool=draft.tools[id];if(tool.status===\"completed\"){tool.status=\"needs_review\";if(!tool.review_reasons.includes(\"rental_type_changed\"))tool.review_reasons.push(\"rental_type_changed\");}});});analytics(\"shared_state_changed\",{route:path},props);}function resetAll(){if(typeof window===\"undefined\"||!window.confirm(\"Будут удалены все данные и прогресс Toolkit на этом устройстве. Другие данные сайта и браузера не изменятся. Продолжить?\"))return;const fresh=createState();fresh.meta.unlocked=state.meta.unlocked;fresh.meta.unlocked_at=state.meta.unlocked_at;fresh.meta.entry_source=state.meta.entry_source;try{if(storageMode===\"local\"){window.localStorage.removeItem(KEY);window.localStorage.removeItem(BACKUP_KEY);}else{window.sessionStorage.removeItem(SESSION_KEY);}}catch{}save(fresh,storageMode);setState(fresh);setRecovery({active:false,future:false});navigate(\"/helper\",true);}function resetTool(id){if(typeof window===\"undefined\")return;const confirmation={documents:\"Будут удалены данные пакета документов на этом устройстве. Данные остальных инструментов сохранятся. Продолжить?\",presentation:\"Будут удалены данные презентации на этом устройстве. Данные остальных инструментов сохранятся. Продолжить?\",budget:\"Будут удалены данные расчёта бюджета на этом устройстве. Данные остальных инструментов сохранятся. Продолжить?\"};if(!window.confirm(confirmation[id]))return;commit(draft=>{draft.tools[id]=cleanTool();if(draft.meta.last_opened_tool===id)draft.meta.last_opened_tool=null;});if(id===\"documents\"){setSetupDraft({rental_type:state.shared.rental_type,adult_count:Math.max(1,state.shared.adults.length||1),income_profiles:state.shared.adults.length>0?state.shared.adults.map(adult=>[...adult.income_profiles]):[[]],company_income_modes:Array.from({length:Math.max(1,state.shared.adults.length||1)},()=>[]),configured:false});}if(id===\"presentation\"){setPresentationDraft(emptyPresentation(state));setPresentationStep(\"form\");setPresentationText(\"\");setPresentationCopy(null);setPresentationErrors({});}if(id===\"budget\"){setBudgetDraft(emptyBudget());setBudgetErrors({});setBudgetEditing(false);}navigate(ROUTES[id],true);}function renderToolReset(id){const labels={documents:\"Сбросить данные\",presentation:\"Сбросить данные\",budget:\"Сбросить данные\"};return /*#__PURE__*/_jsxs(\"div\",{className:\"brp-reset\",children:[state.tools[id].status===\"completed\"&&/*#__PURE__*/_jsxs(\"section\",{style:{textAlign:\"left\",marginBottom:28},children:[/*#__PURE__*/_jsx(\"p\",{children:\"Что ещё помогло бы вам в поиске квартиры?\"}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-text-link\",\"data-feedback-source\":id,onClick:()=>openFeedback(id),children:\"Оставить обратную связь\"})]}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-reset-button\",onClick:()=>resetTool(id),children:labels[id]})]});}const count=completedCount(state);const tool=routeTool(path);if(!ready)return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:rootClassName,style:props.style,children:[/*#__PURE__*/_jsx(\"style\",{children:css()}),/*#__PURE__*/_jsx(\"main\",{className:\"brp-shell\",children:/*#__PURE__*/_jsx(\"div\",{className:\"brp-skeleton\",\"aria-label\":\"Загрузка\"})})]});if(feedbackSource)return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:rootClassName,style:props.style,children:[/*#__PURE__*/_jsx(\"style\",{children:css()}),/*#__PURE__*/_jsx(FeedbackForm,{source:feedbackSource,count:count,settings:props,onClose:closeFeedback})]});if(recovery.active||path===\"/helper/recovery\")return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:rootClassName,style:props.style,children:[/*#__PURE__*/_jsx(\"style\",{children:css()}),/*#__PURE__*/_jsxs(\"main\",{className:\"brp-shell\",children:[/*#__PURE__*/_jsxs(\"header\",{className:\"brp-head\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"brp-guide-link\",href:localePath(PLAYBOOK_URL,locale),children:\"← Руководство\"}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-brand\",children:\"Помощник по аренде\"})]}),/*#__PURE__*/_jsxs(\"section\",{className:\"brp-panel\",children:[/*#__PURE__*/_jsx(\"h1\",{children:\"Не удалось открыть сохраненные данные\"}),/*#__PURE__*/_jsx(\"p\",{className:\"brp-lead\",children:recovery.future?\"Эта версия данных создана более новой версией помощника. Сначала обновите страницу.\":\"Основная и резервная копии повреждены или недоступны.\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-actions\",children:[recovery.future&&/*#__PURE__*/_jsx(\"button\",{onClick:()=>window.location.reload(),children:\"Обновить страницу\"}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-secondary\",onClick:resetAll,children:\"Начать заново\"})]})]})]})]});if(path===\"/helper/unlock\")return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:rootClassName,style:props.style,children:[/*#__PURE__*/_jsx(\"style\",{children:css()+`.brp-unlock-tools{display:grid;gap:12px;max-width:520px;margin-top:24px}.brp-unlock-tool{display:flex;align-items:center;gap:14px;min-width:0}.brp-unlock-icon{display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;border-radius:50%;background:var(--soft);color:var(--accent)}.brp-unlock-icon svg{width:26px;height:26px}.brp-unlock-tool>div{min-width:0}.brp-unlock-tool strong{font-size:16px;font-weight:700}.brp-unlock-tool p{margin:3px 0 0;font-size:15px;line-height:1.45;color:var(--muted)}.brp-unlock .brp-unlock-trust{display:grid;gap:10px;background:var(--soft);padding:14px 16px;border-radius:12px;color:var(--muted)!important}.brp-unlock-trust p{margin:0}.brp-unlock .brp-form button{width:100%;min-height:48px}@media(max-width:375px){.brp-unlock-tool{gap:10px}.brp-unlock .brp-unlock-trust{padding:12px}}`}),/*#__PURE__*/_jsxs(\"main\",{className:\"brp-shell\",children:[/*#__PURE__*/_jsxs(\"header\",{className:\"brp-head\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"brp-guide-link\",href:localePath(PLAYBOOK_URL,locale),children:\"← Руководство\"}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-secondary\",onClick:()=>navigate(\"/helper\"),children:\"Вернуться в помощник\"})]}),/*#__PURE__*/_jsxs(\"section\",{className:\"brp-panel brp-unlock\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"brp-kicker\",children:\"ПОМОЩНИК ПО АРЕНДЕ\"}),/*#__PURE__*/_jsx(\"h1\",{children:\"Откройте все три инструмента\"}),/*#__PURE__*/_jsx(\"p\",{className:\"brp-lead\",children:\"Укажите email один раз. Прогресс сохраняется только в этом браузере; аккаунт и пароль не создаются.\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-unlock-tools\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"brp-unlock-tool\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"brp-unlock-icon\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M14 2v6h6M8 13h8M8 17h8M8 9h2\"})]})}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"strong\",{children:\"Документы\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Собрать список под вашу ситуацию\"})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-unlock-tool\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"brp-unlock-icon\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"8\",r:\"5\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M20 21a8 8 0 0 0-16 0\"})]})}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"strong\",{children:\"Презентация\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Подготовить профиль для агента или собственника\"})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-unlock-tool\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"brp-unlock-icon\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"4\",y:\"2\",width:\"16\",height:\"20\",rx:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M8 6h8M8 10h.01M12 10h.01M16 10h.01M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01\"})]})}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"strong\",{children:\"Бюджет\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Рассчитать сумму на заселение\"})]})]})]}),/*#__PURE__*/_jsxs(\"form\",{className:\"brp-form\",onSubmit:submitUnlock,noValidate:true,children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:\"brp-email\",children:\"Введите ваш email\"}),/*#__PURE__*/_jsx(\"input\",{id:\"brp-email\",type:\"email\",placeholder:\"example@gmail.com\",autoComplete:\"email\",value:email,onChange:e=>setEmail(e.target.value),\"aria-describedby\":error?\"brp-email-error\":\"brp-email-note\",\"aria-invalid\":!!error}),error&&/*#__PURE__*/_jsx(\"div\",{id:\"brp-email-error\",className:\"brp-error\",role:\"alert\",children:error}),/*#__PURE__*/_jsx(\"button\",{type:\"submit\",disabled:submitting,children:submitting?\"Сохраняем…\":\"Открыть Помощник →\"}),/*#__PURE__*/_jsxs(\"div\",{id:\"brp-email-note\",className:\"brp-note brp-unlock-trust\",children:[/*#__PURE__*/_jsx(\"p\",{children:\"Один email открывает все три инструмента.\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Без аккаунта и пароля. Прогресс сохраняется в этом браузере.\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Email используется только для доступа и не связывается с вашими ответами.\"})]})]})]})]})]});if(tool){if(!state.meta.unlocked){const source={documents:\"documents_cta\",presentation:\"presentation_cta\",budget:\"budget_cta\"}[tool];if(typeof window!==\"undefined\")window.history.replaceState({},\"\",`${localePath(\"/helper/unlock\",locale)}?next=${encodeURIComponent(ROUTES[tool])}&source=${source}`);setTimeout(()=>setPath(\"/helper/unlock\"),0);return null;}const current=state.tools[tool];if(tool===\"documents\"){const setup=documentSetup(current,state);const activeSetup=setupDraft;if(!activeSetup.configured)return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:rootClassName,style:props.style,children:[/*#__PURE__*/_jsx(\"style\",{children:css()}),/*#__PURE__*/_jsxs(\"main\",{className:\"brp-shell brp-tool\",children:[/*#__PURE__*/_jsxs(\"header\",{className:\"brp-head\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"brp-guide-link\",href:localePath(PLAYBOOK_URL,locale),children:\"← Руководство\"}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-progress\",children:\"Настройка пакета\"})]}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-kicker\",children:\"Пакет документов\"}),/*#__PURE__*/_jsx(\"h1\",{children:\"Соберем список под вашу ситуацию\"}),/*#__PURE__*/_jsx(\"p\",{className:\"brp-lead\",children:\"Ответьте на три вопроса. Документы загружать не нужно — помощник сохраняет только отметки готовности в этом браузере.\"}),/*#__PURE__*/_jsxs(\"section\",{className:\"brp-panel\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"brp-form\",children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:\"brp-rental-type\",children:\"Тип аренды\"}),/*#__PURE__*/_jsxs(\"select\",{id:\"brp-rental-type\",value:activeSetup.rental_type,onChange:e=>setSetupDraft(draft=>({...draft,rental_type:e.target.value})),children:[/*#__PURE__*/_jsx(\"option\",{value:\"unknown\",children:\"Пока не определен\"}),/*#__PURE__*/_jsx(\"option\",{value:\"habitual\",children:\"Постоянное проживание (alquiler de vivienda habitual)\"}),/*#__PURE__*/_jsx(\"option\",{value:\"temporada\",children:\"Временная аренда (alquiler de temporada)\"})]}),/*#__PURE__*/_jsx(\"label\",{htmlFor:\"brp-adults\",children:\"Кто будет указан в договоре\"}),/*#__PURE__*/_jsx(\"select\",{id:\"brp-adults\",value:activeSetup.adult_count,onChange:e=>resizeAdults(Number(e.target.value)),children:[1,2,3,4].map(count=>/*#__PURE__*/_jsx(\"option\",{value:count,children:count===1?\"1 взрослый\":`${count} взрослых`},count))})]}),Array.from({length:activeSetup.adult_count},(_,adultIndex)=>/*#__PURE__*/_jsxs(\"fieldset\",{className:\"brp-fieldset\",children:[/*#__PURE__*/_jsx(\"legend\",{children:activeSetup.adult_count>1?`Арендатор ${adultIndex+1}: подтверждение дохода`:\"Как подтверждается доход\"}),INCOME_OPTIONS.map(option=>/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsxs(\"label\",{className:\"brp-choice\",children:[/*#__PURE__*/_jsx(\"input\",{type:\"checkbox\",checked:activeSetup.income_profiles[adultIndex]?.includes(option.id)||false,onChange:()=>toggleIncome(adultIndex,option.id)}),/*#__PURE__*/_jsx(\"span\",{children:option.label})]}),option.id===\"company_owner_director\"&&activeSetup.income_profiles[adultIndex]?.includes(option.id)&&/*#__PURE__*/_jsxs(\"div\",{className:\"brp-panel\",style:{marginTop:0},children:[/*#__PURE__*/_jsx(\"div\",{className:\"brp-note\",children:\"Как формируется личный доход\"}),[\"salary\",\"dividends\"].map(mode=>/*#__PURE__*/_jsxs(\"label\",{className:\"brp-choice\",children:[/*#__PURE__*/_jsx(\"input\",{type:\"checkbox\",checked:activeSetup.company_income_modes[adultIndex]?.includes(mode)||false,onChange:()=>toggleCompanyMode(adultIndex,mode)}),/*#__PURE__*/_jsx(\"span\",{children:mode===\"salary\"?\"Зарплата\":\"Дивиденды\"})]},mode))]})]},option.id))]},adultIndex)),error&&/*#__PURE__*/_jsx(\"div\",{className:\"brp-error\",role:\"alert\",children:error}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-actions\",children:[/*#__PURE__*/_jsx(\"button\",{onClick:saveDocumentsSetup,children:\"Собрать пакет документов\"}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-secondary\",onClick:()=>navigate(\"/helper\"),children:\"Вернуться в помощник\"})]})]}),renderToolReset(\"documents\")]})]});const items=buildDocumentItems(setup);const requiredItems=items.filter(item=>item.required);const readyCount=requiredItems.filter(item=>current.checklist?.[item.id]===\"ready\").length;const percent=requiredItems.length?Math.round(readyCount/requiredItems.length*100):0;const groups=Array.from(new Set(items.map(item=>item.group)));const requiredTodo=requiredItems.filter(item=>current.checklist?.[item.id]!==\"ready\");const requiredReady=requiredItems.filter(item=>current.checklist?.[item.id]===\"ready\");const optionalItems=items.filter(item=>!item.required);const optionalReady=optionalItems.filter(item=>current.checklist?.[item.id]===\"ready\");const nonstandard=setup.income_profiles.some(profiles=>profiles.some(profile=>profile!==\"employment_es\"));return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:rootClassName,style:props.style,children:[/*#__PURE__*/_jsx(\"style\",{children:css()}),/*#__PURE__*/_jsxs(\"main\",{className:\"brp-shell brp-tool\",children:[/*#__PURE__*/_jsxs(\"header\",{className:\"brp-head\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"brp-guide-link\",href:localePath(PLAYBOOK_URL,locale),children:\"← Руководство\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-progress\",children:[readyCount,\" из \",requiredItems.length,\" \",\"обязательных\"]})]}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-kicker\",children:\"Пакет документов\"}),/*#__PURE__*/_jsx(\"h1\",{children:requiredTodo.length===0?\"Основной пакет подготовлен\":\"Ваш список документов\"}),/*#__PURE__*/_jsx(\"p\",{className:\"brp-lead\",children:\"Отмечайте готовность. Дополнительные подтверждения помогают усилить профиль, но не уменьшают процент готовности.\"}),current.status===\"needs_review\"&&/*#__PURE__*/_jsx(\"div\",{className:\"brp-notice\",role:\"status\",children:\"Общие данные изменились. Проверьте список еще раз; ваши отметки сохранены.\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-doc-head\",children:[/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,minWidth:220},children:[/*#__PURE__*/_jsxs(\"strong\",{children:[percent,\"% обязательного пакета готово\"]}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-meter\",\"aria-label\":`${percent}% готово`,children:/*#__PURE__*/_jsx(\"span\",{style:{width:`${percent}%`}})})]}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-secondary\",onClick:()=>setSetupDraft({...setup,configured:false}),children:\"Изменить исходные данные\"})]}),setup.rental_type===\"unknown\"&&/*#__PURE__*/_jsx(\"div\",{className:\"brp-notice\",children:\"Тип аренды пока не определен. Финансовый пакет можно подготовить сейчас, но для временной аренды понадобятся дополнительные подтверждения.\"}),nonstandard&&percent<100&&/*#__PURE__*/_jsx(\"div\",{className:\"brp-notice\",children:\"Нестандартный финансовый профиль можно усилить подтверждением сбережений. Это дополнительный документ и он не влияет на готовность пакета.\"}),groups.map(group=>/*#__PURE__*/_jsxs(\"section\",{className:\"brp-doc-group\",children:[/*#__PURE__*/_jsx(\"h2\",{children:group}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-doc-list\",children:items.filter(item=>item.group===group).map(item=>/*#__PURE__*/_jsxs(\"label\",{id:`document-${item.id}`,className:`brp-doc-item brp-doc-check brp-anchor ${item.required?\"\":\"optional\"}`,children:[/*#__PURE__*/_jsx(\"input\",{type:\"checkbox\",\"aria-label\":`${item.title}: готово`,checked:current.checklist?.[item.id]===\"ready\",onChange:e=>updateDocumentItem(item.id,e.target.checked?\"ready\":\"todo\",requiredItems)}),/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"strong\",{children:item.title}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-badge\",children:item.required?\"Обязательно\":\"Дополнительно\"}),item.note&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:item.note}),item.title.includes(\"квартальные\")&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"Часто применяются Modelo 130 или 131, Modelo 303, Modelo 390 и Modelo 100. Не все формы нужны каждому aut\\xf3nomo.\"})]})]},item.id))})]},group)),/*#__PURE__*/_jsxs(\"section\",{className:\"brp-complete\",children:[/*#__PURE__*/_jsx(\"h2\",{children:requiredTodo.length===0?\"Основной пакет готов\":\"Ваш пакет еще не готов\"}),requiredTodo.length>0&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"strong\",{children:\"Нужно подготовить\"}),/*#__PURE__*/_jsx(\"ul\",{className:\"brp-summary-list\",children:requiredTodo.map(item=>/*#__PURE__*/_jsx(\"li\",{children:item.title},`todo-${item.id}`))})]}),requiredReady.length>0&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"strong\",{children:\"Уже готово\"}),/*#__PURE__*/_jsx(\"ul\",{className:\"brp-summary-list\",children:requiredReady.map(item=>/*#__PURE__*/_jsx(\"li\",{children:item.title},`ready-${item.id}`))})]}),optionalReady.length>0&&/*#__PURE__*/_jsxs(\"p\",{className:\"brp-summary-note\",children:[\"Дополнительных подтверждений готово:\",\" \",optionalReady.length,\".\"]}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-notice\",children:\"Используйте понятные названия файлов и проверяйте читаемость сканов. Чувствительные документы отправляйте только проверенному получателю и когда они действительно нужны.\"}),requiredTodo.length===0&&current.status!==\"needs_review\"&&/*#__PURE__*/_jsxs(\"div\",{className:\"brp-actions\",children:[nextIncompleteTool(\"documents\")&&/*#__PURE__*/_jsx(\"button\",{onClick:()=>{const next=nextIncompleteTool(\"documents\");if(next===\"presentation\"){analytics(\"documents_presentation_cta_clicked\",{tool:\"documents\",status:\"completed\"},props);}openTool(next);},children:nextIncompleteTool(\"documents\")===\"presentation\"?\"Создать презентацию арендатора\":\"Рассчитать бюджет\"}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-text-link\",onClick:()=>navigate(\"/helper\"),children:\"Вернуться в помощник\"})]}),current.status===\"needs_review\"&&/*#__PURE__*/_jsxs(\"div\",{className:\"brp-actions\",children:[/*#__PURE__*/_jsx(\"button\",{onClick:()=>confirmDocumentsReview(requiredItems),children:\"Проверить пакет\"}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-secondary\",onClick:()=>navigate(\"/helper\"),children:\"Вернуться в помощник\"})]}),requiredTodo.length>0&&current.status!==\"needs_review\"&&/*#__PURE__*/_jsxs(\"div\",{className:\"brp-actions\",children:[/*#__PURE__*/_jsx(\"button\",{onClick:()=>document.getElementById(`document-${requiredTodo[0].id}`)?.scrollIntoView({behavior:\"smooth\",block:\"center\"}),children:\"Продолжить\"}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-secondary\",onClick:()=>navigate(\"/helper\"),children:\"Вернуться в помощник\"})]})]}),renderToolReset(\"documents\")]})]});}if(tool===\"presentation\"){const profiles=presentationDraft.professional_profiles;if(presentationStep===\"confirm\")return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:rootClassName,style:props.style,children:[/*#__PURE__*/_jsx(\"style\",{children:css()}),/*#__PURE__*/_jsxs(\"main\",{className:\"brp-shell brp-tool\",children:[/*#__PURE__*/_jsxs(\"header\",{className:\"brp-head\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"brp-guide-link\",href:localePath(PLAYBOOK_URL,locale),children:\"← Руководство\"}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-progress\",children:\"Проверка фактов\"})]}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-kicker\",children:\"Презентация арендатора\"}),/*#__PURE__*/_jsx(\"h1\",{children:\"Проверьте данные перед созданием презентации\"}),/*#__PURE__*/_jsx(\"p\",{className:\"brp-lead\",children:\"Убедитесь, что все факты указаны правильно. Помощник не будет добавлять сведения, которых нет в ваших ответах.\"}),/*#__PURE__*/_jsxs(\"section\",{className:\"brp-panel\",children:[/*#__PURE__*/_jsx(\"pre\",{style:{whiteSpace:\"pre-wrap\",font:\"inherit\",margin:0},children:presentationSummary(presentationDraft)}),error&&/*#__PURE__*/_jsx(\"div\",{className:\"brp-error\",role:\"alert\",children:error}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-actions\",children:[/*#__PURE__*/_jsx(\"button\",{onClick:generatePresentation,disabled:submitting,children:submitting?\"Создаем…\":\"Создать презентацию\"}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-secondary\",onClick:()=>setPresentationStep(\"form\"),children:\"Изменить данные\"}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-text-link\",onClick:()=>navigate(\"/helper\"),children:\"Вернуться в помощник\"})]})]}),renderToolReset(\"presentation\")]})]});if(presentationStep===\"result\")return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:rootClassName,style:props.style,children:[/*#__PURE__*/_jsx(\"style\",{children:css()}),/*#__PURE__*/_jsxs(\"main\",{className:\"brp-shell brp-tool\",children:[/*#__PURE__*/_jsxs(\"header\",{className:\"brp-head\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"brp-guide-link\",href:localePath(PLAYBOOK_URL,locale),children:\"← Руководство\"}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-progress\",children:current.status===\"completed\"?\"PDF готов\":\"Предпросмотр\"})]}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-kicker\",children:\"Презентация арендатора\"}),/*#__PURE__*/_jsx(\"h1\",{children:\"Ваша презентация готова\"}),current.status===\"needs_review\"&&/*#__PURE__*/_jsx(\"div\",{className:\"brp-notice\",children:\"Общие данные изменились. Предыдущий текст сохранен, но его нужно проверить и создать PDF заново.\"}),/*#__PURE__*/_jsxs(\"section\",{className:\"brp-panel brp-preview\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"Предпросмотр содержания\"}),presentationCopy&&/*#__PURE__*/_jsxs(\"div\",{className:\"brp-doc-list\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"brp-doc-item\",children:/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"strong\",{children:\"Nuestra candidatura\"}),/*#__PURE__*/_jsx(\"br\",{}),presentationCopy.about]})}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-doc-item\",children:/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"strong\",{children:\"Condiciones buscadas\"}),/*#__PURE__*/_jsx(\"br\",{}),presentationCopy.rental_type,\"; \",presentationCopy.move_in,\";\",\" \",presentationCopy.term]})}),presentationCopy.professional_profiles.map((profile,index)=>/*#__PURE__*/_jsx(\"div\",{className:\"brp-doc-item\",children:/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsxs(\"strong\",{children:[\"Trabajo e ingresos —\",\" \",presentationDraft.occupant_names[index]]}),/*#__PURE__*/_jsx(\"br\",{}),neutralProfessionalProfile(profile)]})},`preview-profile-${index}`)),/*#__PURE__*/_jsx(\"div\",{className:\"brp-doc-item\",children:/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"strong\",{children:\"Documentaci\\xf3n e ingresos\"}),/*#__PURE__*/_jsx(\"br\",{}),householdIncomeConfirmation(presentationCopy.income_confirmation,presentationDraft.occupant_names.filter(Boolean).length)]})}),presentationCopy.good_tenant.trim()&&/*#__PURE__*/_jsx(\"div\",{className:\"brp-doc-item\",children:/*#__PURE__*/_jsxs(\"span\",{children:[/*#__PURE__*/_jsx(\"strong\",{children:\"Referencias y garant\\xedas\"}),/*#__PURE__*/_jsx(\"br\",{}),presentationCopy.good_tenant]})})]}),/*#__PURE__*/_jsx(\"p\",{className:\"brp-note\",children:\"Проверьте имена, суммы и условия перед скачиванием PDF. Чтобы изменить содержание, вернитесь к исходным данным.\"}),error&&/*#__PURE__*/_jsx(\"div\",{className:\"brp-error\",role:\"alert\",children:error}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-actions\",children:[current.status!==\"needs_review\"&&/*#__PURE__*/_jsx(\"button\",{onClick:createPresentationPdf,children:\"Скачать PDF\"}),/*#__PURE__*/_jsx(\"button\",{className:current.status===\"needs_review\"?undefined:\"brp-secondary\",onClick:()=>{if(current.status===\"needs_review\"){setPresentationDraft(draft=>({...draft,rental_type:state.shared.rental_type===\"habitual\"?\"habitual\":state.shared.rental_type===\"temporada\"?\"temporada\":draft.rental_type}));}setPresentationStep(\"form\");},children:current.status===\"needs_review\"?\"Обновить презентацию\":\"Изменить данные\"}),current.status!==\"needs_review\"&&nextIncompleteTool(\"presentation\")&&/*#__PURE__*/_jsx(\"button\",{className:\"brp-text-link\",onClick:()=>openTool(nextIncompleteTool(\"presentation\")),children:nextIncompleteTool(\"presentation\")===\"documents\"?\"Продолжить подготовку документов\":\"Рассчитать бюджет заселения\"}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-text-link\",onClick:()=>navigate(\"/helper\"),children:\"Вернуться в помощник\"})]})]}),renderToolReset(\"presentation\")]})]});return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:rootClassName,style:props.style,children:[/*#__PURE__*/_jsx(\"style\",{children:css()}),/*#__PURE__*/_jsxs(\"main\",{className:\"brp-shell brp-tool\",children:[/*#__PURE__*/_jsxs(\"header\",{className:\"brp-head\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"brp-guide-link\",href:localePath(PLAYBOOK_URL,locale),children:\"← Руководство\"}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-progress\",children:\"Исходные данные\"})]}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-kicker\",children:\"Презентация арендатора\"}),/*#__PURE__*/_jsx(\"h1\",{children:\"Создайте презентацию арендатора\"}),/*#__PURE__*/_jsx(\"p\",{className:\"brp-lead\",children:\"Ответьте на вопросы — помощник подготовит аккуратную презентацию, которую можно отправить собственнику или агенту.\"}),/*#__PURE__*/_jsxs(\"section\",{className:\"brp-panel\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"brp-form\",children:[/*#__PURE__*/_jsxs(\"label\",{children:[\"Сколько взрослых будет проживать в квартире?\",/*#__PURE__*/_jsx(\"select\",{value:profiles.length,onChange:e=>setPresentationAdultCount(Number(e.target.value)),children:[1,2,3,4].map(count=>/*#__PURE__*/_jsx(\"option\",{value:count,children:count},count))})]}),presentationDraft.occupant_names.map((name,index)=>/*#__PURE__*/_jsxs(\"label\",{className:`brp-field ${presentationErrors[`occupant_names_${index}`]?\"has-error\":\"\"}`,children:[\"Имя проживающего \",index+1,/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"Введите имя латиницей.\"}),/*#__PURE__*/_jsx(\"input\",{id:`presentation-occupant_names_${index}`,value:name,\"aria-invalid\":Boolean(presentationErrors[`occupant_names_${index}`]),placeholder:[\"Например: Ivan\",\"Например: Anna\",\"Например: Yan\",\"Например: Maria\"][index],onChange:e=>setPresentationField(\"occupant_names\",presentationDraft.occupant_names.map((value,i)=>i===index?e.target.value:value))}),presentationErrors[`occupant_names_${index}`]&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-error\",role:\"alert\",children:presentationErrors[`occupant_names_${index}`]})]},`name-${index}`)),/*#__PURE__*/_jsxs(\"label\",{children:[\"Тип аренды\",/*#__PURE__*/_jsxs(\"select\",{value:presentationDraft.rental_type,onChange:e=>setPresentationField(\"rental_type\",e.target.value),children:[/*#__PURE__*/_jsx(\"option\",{value:\"habitual\",children:\"Постоянное проживание\"}),/*#__PURE__*/_jsx(\"option\",{value:\"temporada\",children:\"Временная аренда\"}),/*#__PURE__*/_jsx(\"option\",{value:\"both\",children:\"Рассматриваю оба варианта\"})]})]}),/*#__PURE__*/_jsxs(\"label\",{className:`brp-field ${presentationErrors.move_in?\"has-error\":\"\"}`,children:[\"Когда вы планируете въехать?\",/*#__PURE__*/_jsx(\"input\",{id:\"presentation-move_in\",value:presentationDraft.move_in,\"aria-invalid\":Boolean(presentationErrors.move_in),onChange:e=>setPresentationField(\"move_in\",e.target.value),placeholder:\"С 15 октября 2026 года\"}),presentationErrors.move_in&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-error\",role:\"alert\",children:presentationErrors.move_in})]}),/*#__PURE__*/_jsxs(\"label\",{className:`brp-field ${presentationErrors.term?\"has-error\":\"\"}`,children:[\"На какой срок вы ищете жилье?\",/*#__PURE__*/_jsx(\"input\",{id:\"presentation-term\",value:presentationDraft.term,\"aria-invalid\":Boolean(presentationErrors.term),onChange:e=>setPresentationField(\"term\",e.target.value),placeholder:presentationDraft.rental_type===\"temporada\"?\"Например: 6 месяцев или с ноября по май\":\"12 месяцев или долгосрочно\"}),presentationErrors.term&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-error\",role:\"alert\",children:presentationErrors.term})]}),profiles.map((profile,index)=>/*#__PURE__*/_jsxs(\"label\",{className:`brp-field ${presentationErrors[`professional_profiles_${index}`]?\"has-error\":\"\"}`,children:[\"Профессиональный профиль — арендатор\",\" \",index+1,/*#__PURE__*/_jsx(\"textarea\",{id:`presentation-professional_profiles_${index}`,value:profile,\"aria-invalid\":Boolean(presentationErrors[`professional_profiles_${index}`]),onChange:e=>setPresentationField(\"professional_profiles\",profiles.map((value,i)=>i===index?e.target.value:value)),rows:3,maxLength:300,placeholder:index===0?\"Например: работаю по бессрочному договору в технологической компании на Кипре\":index===1?\"Например: работаю по постоянному трудовому договору в Испании\":\"Например: работаю по трудовому договору с подтверждаемым доходом\"}),presentationErrors[`professional_profiles_${index}`]&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-error\",role:\"alert\",children:presentationErrors[`professional_profiles_${index}`]})]},index)),/*#__PURE__*/_jsxs(\"label\",{className:`brp-field ${presentationErrors.income_confirmation?\"has-error\":\"\"}`,children:[\"Как подтверждается доход\",/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"Укажите документы, которыми вы можете подтвердить доход.\"}),/*#__PURE__*/_jsx(\"textarea\",{id:\"presentation-income_confirmation\",value:presentationDraft.income_confirmation,\"aria-invalid\":Boolean(presentationErrors.income_confirmation),onChange:e=>setPresentationField(\"income_confirmation\",e.target.value),rows:3,maxLength:300,placeholder:\"Например: трудовой договор и последние расчетные листы\"}),presentationErrors.income_confirmation&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-error\",role:\"alert\",children:presentationErrors.income_confirmation})]}),(presentationDraft.rental_type===\"temporada\"||presentationDraft.rental_type===\"both\")&&/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsxs(\"label\",{className:`brp-field ${presentationErrors.temporada_reason?\"has-error\":\"\"}`,children:[\"Почему вы ищете жилье в Барселоне?\",/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"Кратко объясните временную причину проживания в Барселоне.\"}),/*#__PURE__*/_jsx(\"textarea\",{id:\"presentation-temporada_reason\",value:presentationDraft.temporada_reason,\"aria-invalid\":Boolean(presentationErrors.temporada_reason),onChange:e=>setPresentationField(\"temporada_reason\",e.target.value),rows:3,maxLength:300,placeholder:\"Рабочий проект в Барселоне продолжительностью восемь месяцев.\"}),presentationErrors.temporada_reason&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-error\",role:\"alert\",children:presentationErrors.temporada_reason})]})}),/*#__PURE__*/_jsxs(\"label\",{children:[\"Питомец\",/*#__PURE__*/_jsxs(\"select\",{value:presentationDraft.has_pet,onChange:e=>setPresentationField(\"has_pet\",e.target.value),children:[/*#__PURE__*/_jsx(\"option\",{value:\"no\",children:\"Нет\"}),/*#__PURE__*/_jsx(\"option\",{value:\"yes\",children:\"Да\"})]})]}),presentationDraft.has_pet===\"yes\"&&/*#__PURE__*/_jsxs(\"label\",{className:`brp-field ${presentationErrors.pet_details?\"has-error\":\"\"}`,children:[\"Кратко о питомце\",/*#__PURE__*/_jsx(\"input\",{id:\"presentation-pet_details\",value:presentationDraft.pet_details,\"aria-invalid\":Boolean(presentationErrors.pet_details),onChange:e=>setPresentationField(\"pet_details\",e.target.value),maxLength:180,placeholder:\"Например: спокойная собака, 4 года, приучена к квартире\"}),presentationErrors.pet_details&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-error\",role:\"alert\",children:presentationErrors.pet_details})]}),/*#__PURE__*/_jsxs(\"label\",{children:[\"Подтверждаемый чистый доход в месяц, €\",/*#__PURE__*/_jsx(\"span\",{className:\"brp-optional\",children:\"Необязательно\"}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"Укажите личный или совокупный подтверждаемый чистый доход.\"}),/*#__PURE__*/_jsx(\"input\",{value:presentationDraft.income_amount,onChange:e=>setPresentationField(\"income_amount\",e.target.value),maxLength:120,placeholder:\"Например: 4 500 € в месяц\"})]}),/*#__PURE__*/_jsxs(\"label\",{children:[\"Сбережения, €\",/*#__PURE__*/_jsx(\"span\",{className:\"brp-optional\",children:\"Необязательно\"}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"Укажите только сбережения, которые можете подтвердить документами.\"}),/*#__PURE__*/_jsx(\"input\",{value:presentationDraft.savings,onChange:e=>setPresentationField(\"savings\",e.target.value),maxLength:120,placeholder:\"Например: 10 000 €\"})]}),presentationDraft.rental_type===\"habitual\"&&/*#__PURE__*/_jsxs(\"label\",{children:[\"Почему вы ищете жилье в Барселоне?\",/*#__PURE__*/_jsx(\"span\",{className:\"brp-optional\",children:\"Необязательно\"}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"Кратко объясните причину переезда в Барселону.\"}),/*#__PURE__*/_jsx(\"input\",{value:presentationDraft.habitual_reason,onChange:e=>setPresentationField(\"habitual_reason\",e.target.value),maxLength:180,placeholder:\"Переезжаем в Барселону в связи с работой и планируем жить здесь постоянно.\"})]}),/*#__PURE__*/_jsxs(\"label\",{children:[\"Дополнительная информация\",/*#__PURE__*/_jsx(\"span\",{className:\"brp-optional\",children:\"Необязательно\"}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"Добавьте важные факты, которые еще не указаны выше и могут помочь собственнику оценить вашу заявку.\"}),/*#__PURE__*/_jsx(\"textarea\",{value:presentationDraft.additional_info,onChange:e=>setPresentationField(\"additional_info\",e.target.value),rows:4,maxLength:400,placeholder:\"Например: есть положительная история аренды, можем предоставить рекомендацию предыдущего арендодателя\"}),/*#__PURE__*/_jsxs(\"span\",{className:\"brp-note\",children:[presentationDraft.additional_info.length,\"/400\"]})]}),/*#__PURE__*/_jsxs(\"label\",{children:[\"Контактные данные\",/*#__PURE__*/_jsx(\"span\",{className:\"brp-optional\",children:\"Необязательно\"}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"Эти данные будут указаны в презентации для связи.\"}),/*#__PURE__*/_jsx(\"input\",{value:presentationDraft.contact,onChange:e=>setPresentationField(\"contact\",e.target.value),maxLength:180,placeholder:\"Например: ivan@email.com, +34 600 000 000\"})]}),/*#__PURE__*/_jsxs(\"label\",{children:[\"Фотография для презентации\",/*#__PURE__*/_jsx(\"span\",{className:\"brp-optional\",children:\"Необязательно\"}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"JPG или PNG до 5 МБ. Используйте качественную фотографию с запасом вокруг лиц. Она останется на этом устройстве и будет добавлена только в PDF.\"}),/*#__PURE__*/_jsx(\"input\",{type:\"file\",accept:\"image/jpeg,image/png\",onChange:async e=>{const file=e.target.files?.[0];if(!file)return;try{setPresentationField(\"photo_data_url\",await presentationPhoto(file));setError(\"\");}catch{setError(\"Используйте JPG или PNG до 5 МБ.\");}}})]}),presentationDraft.photo_data_url&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"img\",{src:presentationDraft.photo_data_url,alt:\"Фото для презентации\",style:{width:120,height:120,objectFit:\"cover\",borderRadius:12}}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-secondary\",onClick:()=>setPresentationField(\"photo_data_url\",\"\"),children:\"Удалить фотографию\"})]})]}),error&&/*#__PURE__*/_jsx(\"div\",{className:\"brp-error\",role:\"alert\",children:error}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-actions\",children:[/*#__PURE__*/_jsx(\"button\",{onClick:confirmPresentation,children:\"Проверить данные\"}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-secondary\",onClick:()=>navigate(\"/helper\"),children:\"Вернуться в помощник\"})]})]}),renderToolReset(\"presentation\")]})]});}if(tool===\"budget\"){const savedInput=budgetFromTool(current);const result=calculateBudget(savedInput);if(current.status===\"needs_review\"&&!budgetEditing)return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:rootClassName,style:props.style,children:[/*#__PURE__*/_jsx(\"style\",{children:css()}),/*#__PURE__*/_jsxs(\"main\",{className:\"brp-shell brp-tool\",children:[/*#__PURE__*/_jsxs(\"header\",{className:\"brp-head\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"brp-guide-link\",href:localePath(PLAYBOOK_URL,locale),children:\"← Руководство\"}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-progress\",children:\"Нужно проверить\"})]}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-kicker\",children:\"Бюджет заселения\"}),/*#__PURE__*/_jsxs(\"h1\",{children:[\"Предыдущий расчет — \",euro(result.total)]}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-notice\",role:\"status\",children:\"Тип договора или общие данные изменились. Предыдущий результат сохранен, но не учитывается в общем прогрессе до нового расчета.\"}),/*#__PURE__*/_jsxs(\"section\",{className:\"brp-panel\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"Сохраненный результат\"}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-doc-list\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"brp-doc-item brp-result-row\",children:[/*#__PURE__*/_jsx(\"span\",{children:\"Полная сумма на входе\"}),/*#__PURE__*/_jsx(\"strong\",{children:euro(result.total)})]})})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-actions\",children:[/*#__PURE__*/_jsx(\"button\",{onClick:()=>setBudgetEditing(true),children:\"Пересчитать бюджет\"}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-secondary\",onClick:()=>navigate(\"/helper\"),children:\"Вернуться в помощник\"})]}),renderToolReset(\"budget\")]})]});if(current.status===\"completed\"&&!budgetEditing)return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:rootClassName,style:props.style,children:[/*#__PURE__*/_jsx(\"style\",{children:css()}),/*#__PURE__*/_jsxs(\"main\",{className:\"brp-shell brp-tool\",children:[/*#__PURE__*/_jsxs(\"header\",{className:\"brp-head\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"brp-guide-link\",href:localePath(PLAYBOOK_URL,locale),children:\"← Руководство\"}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-progress\",children:\"Расчет готов\"})]}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-kicker\",children:\"Бюджет заселения\"}),/*#__PURE__*/_jsxs(\"h1\",{children:[\"Для заселения потребуется — \",euro(result.total)]}),current.status===\"needs_review\"&&/*#__PURE__*/_jsx(\"div\",{className:\"brp-notice\",children:\"Тип договора изменился. Проверьте фактические условия и пересчитайте бюджет.\"}),/*#__PURE__*/_jsxs(\"section\",{className:\"brp-panel\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"Разбивка расходов\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-doc-list\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"brp-doc-item brp-result-row\",children:[/*#__PURE__*/_jsx(\"span\",{children:\"Аренда при заселении\"}),/*#__PURE__*/_jsx(\"strong\",{children:euro(result.prepayment)})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-doc-item brp-result-row\",children:[/*#__PURE__*/_jsx(\"span\",{children:\"Залоги и гарантии\"}),/*#__PURE__*/_jsx(\"strong\",{children:euro(result.deposit)})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-doc-item brp-result-row\",children:[/*#__PURE__*/_jsx(\"span\",{children:\"Комиссия с учетом IVA (НДС)\"}),/*#__PURE__*/_jsx(\"strong\",{children:euro(result.agency_fee)})]})]})]}),result.rent_share!==null&&/*#__PURE__*/_jsxs(\"div\",{className:\"brp-notice\",children:[\"Сравним платеж по аренде с подтверждаемым чистым доходом. Сейчас он составляет\",\" \",Math.round(result.rent_share),\"%. Ориентир около 30% — практическая оценка, а не закон и не гарантия одобрения.\"]}),result.limit_delta!==null&&/*#__PURE__*/_jsx(\"div\",{className:\"brp-notice\",children:result.limit_delta>=0?`Запас относительно личного лимита: ${euro(result.limit_delta)}.`:`Полная сумма превышает личный лимит на ${euro(Math.abs(result.limit_delta))}.`}),savedInput.contract_type===\"unknown\"&&/*#__PURE__*/_jsx(\"div\",{className:\"brp-notice\",children:\"Тип договора не определен: фактические платежи посчитаны, но правовой ориентир может быть неполным.\"}),savedInput.agency_fee_mode!==\"none\"&&/*#__PURE__*/_jsx(\"div\",{className:\"brp-notice\",children:\"Если комиссию агентства платит арендатор, проверьте характер услуги и применимые правила.\"}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-actions\",children:/*#__PURE__*/_jsx(\"button\",{onClick:()=>navigate(\"/helper\"),children:\"Вернуться в помощник\"})}),renderToolReset(\"budget\")]})]});return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:rootClassName,style:props.style,children:[/*#__PURE__*/_jsx(\"style\",{children:css()}),/*#__PURE__*/_jsxs(\"main\",{className:\"brp-shell brp-tool\",children:[/*#__PURE__*/_jsxs(\"header\",{className:\"brp-head\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"brp-guide-link\",href:localePath(PLAYBOOK_URL,locale),children:\"← Руководство\"}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-progress\",children:\"Условия сделки\"})]}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-kicker\",children:\"Бюджет заселения\"}),/*#__PURE__*/_jsx(\"h1\",{children:\"Рассчитайте бюджет для заселения\"}),/*#__PURE__*/_jsx(\"p\",{className:\"brp-lead\",children:\"Укажите условия сделки — калькулятор покажет полную сумму, которая потребуется для заключения договора.\"}),/*#__PURE__*/_jsx(\"section\",{className:\"brp-panel\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"brp-form\",children:[/*#__PURE__*/_jsxs(\"label\",{className:`brp-field ${budgetErrors.monthly_rent?\"has-error\":\"\"}`,children:[\"Ежемесячная аренда, €\",/*#__PURE__*/_jsx(\"input\",{id:\"budget-monthly_rent\",inputMode:\"decimal\",placeholder:\"Например: 1 800\",value:budgetDraft.monthly_rent,\"aria-invalid\":Boolean(budgetErrors.monthly_rent),onChange:e=>setBudgetField(\"monthly_rent\",e.target.value)}),budgetErrors.monthly_rent&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-error\",role:\"alert\",children:budgetErrors.monthly_rent})]}),/*#__PURE__*/_jsxs(\"label\",{className:\"brp-field\",children:[\"Тип договора\",/*#__PURE__*/_jsxs(\"select\",{value:budgetDraft.contract_type,onChange:e=>setBudgetField(\"contract_type\",e.target.value),children:[/*#__PURE__*/_jsx(\"option\",{value:\"habitual\",children:\"Постоянное проживание\"}),/*#__PURE__*/_jsx(\"option\",{value:\"temporada_reason\",children:\"Временное по рабочей, учебной, медицинской или аналогичной причине\"}),/*#__PURE__*/_jsx(\"option\",{value:\"unknown\",children:\"Не уверен(а)\"})]})]})]})}),/*#__PURE__*/_jsxs(\"section\",{className:\"brp-panel\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"Залоги и гарантии\"}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-form\",children:/*#__PURE__*/_jsxs(\"label\",{className:`brp-field ${budgetErrors.deposit_months?\"has-error\":\"\"}`,children:[\"Сколько месяцев аренды составляют залоги и гарантии?\",/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"Укажите общую сумму депозита (fianza) и дополнительных гарантий в месяцах аренды.\"}),/*#__PURE__*/_jsx(\"input\",{id:\"budget-deposit_months\",inputMode:\"decimal\",placeholder:\"Например: 2\",value:budgetDraft.deposit_months,\"aria-invalid\":Boolean(budgetErrors.deposit_months),onChange:e=>setBudgetField(\"deposit_months\",e.target.value)}),budgetErrors.deposit_months&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-error\",role:\"alert\",children:budgetErrors.deposit_months})]})})]}),/*#__PURE__*/_jsxs(\"section\",{className:\"brp-panel\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"Предоплата и комиссия\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-form\",children:[/*#__PURE__*/_jsxs(\"label\",{className:`brp-field ${budgetErrors.move_in_rent_months?\"has-error\":\"\"}`,children:[\"Сколько месяцев аренды оплачивается при заселении?\",/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"1 — только первый месяц, 3 — три месяца аренды сразу.\"}),/*#__PURE__*/_jsx(\"input\",{id:\"budget-move_in_rent_months\",inputMode:\"decimal\",placeholder:\"Например: 1\",value:budgetDraft.move_in_rent_months,\"aria-invalid\":Boolean(budgetErrors.move_in_rent_months),onChange:e=>setBudgetField(\"move_in_rent_months\",e.target.value)}),budgetErrors.move_in_rent_months&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-error\",role:\"alert\",children:budgetErrors.move_in_rent_months})]}),/*#__PURE__*/_jsxs(\"label\",{children:[\"Комиссия агентства\",/*#__PURE__*/_jsxs(\"select\",{value:budgetDraft.agency_fee_mode,onChange:e=>setBudgetField(\"agency_fee_mode\",e.target.value),children:[/*#__PURE__*/_jsx(\"option\",{value:\"none\",children:\"Нет комиссии\"}),/*#__PURE__*/_jsx(\"option\",{value:\"fixed\",children:\"Фиксированная сумма\"}),/*#__PURE__*/_jsx(\"option\",{value:\"months\",children:\"Количество месячных аренд\"}),/*#__PURE__*/_jsx(\"option\",{value:\"percent\",children:\"Процент от аренды\"})]})]}),budgetDraft.agency_fee_mode!==\"none\"&&/*#__PURE__*/_jsxs(\"label\",{className:`brp-field ${budgetErrors.agency_fee_value?\"has-error\":\"\"}`,children:[budgetDraft.agency_fee_mode===\"fixed\"?\"Сумма, €\":budgetDraft.agency_fee_mode===\"months\"?\"Количество месяцев\":\"Ставка, %\",/*#__PURE__*/_jsx(\"input\",{id:\"budget-agency_fee_value\",inputMode:\"decimal\",\"aria-invalid\":Boolean(budgetErrors.agency_fee_value),value:budgetDraft.agency_fee_value,onChange:e=>setBudgetField(\"agency_fee_value\",e.target.value)}),budgetErrors.agency_fee_value&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-error\",role:\"alert\",children:budgetErrors.agency_fee_value})]}),budgetDraft.agency_fee_mode===\"percent\"&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"label\",{children:[\"База процента\",/*#__PURE__*/_jsxs(\"select\",{value:budgetDraft.agency_percent_basis,onChange:e=>setBudgetField(\"agency_percent_basis\",e.target.value),children:[/*#__PURE__*/_jsx(\"option\",{value:\"annual\",children:\"Годовая аренда\"}),/*#__PURE__*/_jsx(\"option\",{value:\"full_term\",children:\"Аренда за весь срок договора\"})]})]}),budgetDraft.agency_percent_basis===\"full_term\"&&/*#__PURE__*/_jsxs(\"label\",{className:`brp-field ${budgetErrors.contract_months?\"has-error\":\"\"}`,children:[\"Срок договора, месяцев\",/*#__PURE__*/_jsx(\"input\",{id:\"budget-contract_months\",inputMode:\"numeric\",value:budgetDraft.contract_months,\"aria-invalid\":Boolean(budgetErrors.contract_months),onChange:e=>setBudgetField(\"contract_months\",e.target.value)}),budgetErrors.contract_months&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-error\",role:\"alert\",children:budgetErrors.contract_months})]})]}),budgetDraft.agency_fee_mode!==\"none\"&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"label\",{children:[\"IVA (НДС)\",/*#__PURE__*/_jsxs(\"select\",{value:budgetDraft.iva_mode,onChange:e=>setBudgetField(\"iva_mode\",e.target.value),children:[/*#__PURE__*/_jsx(\"option\",{value:\"included\",children:\"Уже включен\"}),/*#__PURE__*/_jsx(\"option\",{value:\"added\",children:\"Добавляется отдельно\"}),/*#__PURE__*/_jsx(\"option\",{value:\"unknown\",children:\"Не применяется\"})]})]}),budgetDraft.iva_mode===\"added\"&&/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"К комиссии автоматически добавится стандартная ставка IVA 21%.\"})]})]})]}),/*#__PURE__*/_jsxs(\"section\",{className:\"brp-panel\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"Проверка бюджета\"}),/*#__PURE__*/_jsx(\"p\",{className:\"brp-note\",children:\"Эти показатели помогают оценить финансовую нагрузку отдельно от расчета сделки.\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-form\",children:[/*#__PURE__*/_jsxs(\"label\",{className:\"brp-field\",children:[\"Подтверждаемый чистый доход в месяц, €\",/*#__PURE__*/_jsx(\"span\",{className:\"brp-optional\",children:\"Необязательно\"}),/*#__PURE__*/_jsx(\"input\",{inputMode:\"decimal\",placeholder:\"Например: 4 500\",value:budgetDraft.monthly_net_income,onChange:e=>setBudgetField(\"monthly_net_income\",e.target.value)}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"Используется для сравнения аренды с практическим ориентиром около 30%. Это не закон и не гарантия одобрения.\"})]}),/*#__PURE__*/_jsxs(\"label\",{className:\"brp-field\",children:[\"Максимальная сумма, которую вы готовы потратить на заселение, €\",/*#__PURE__*/_jsx(\"span\",{className:\"brp-optional\",children:\"Необязательно\"}),/*#__PURE__*/_jsx(\"input\",{inputMode:\"decimal\",placeholder:\"Например: 7 500\",value:budgetDraft.personal_limit,onChange:e=>setBudgetField(\"personal_limit\",e.target.value)}),/*#__PURE__*/_jsx(\"span\",{className:\"brp-note\",children:\"Сравним его с полной суммой, необходимой для заселения.\"})]})]})]}),/*#__PURE__*/_jsxs(\"section\",{className:\"brp-panel\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"Проверка условий\"}),/*#__PURE__*/_jsxs(\"p\",{className:\"brp-note\",children:[\"Аренда при заселении:\",\" \",euro(money(budgetDraft.monthly_rent)*money(budgetDraft.move_in_rent_months)),\". Залоги и гарантии:\",\" \",euro(money(budgetDraft.monthly_rent)*money(budgetDraft.deposit_months)),\".\"]}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-actions\",children:[/*#__PURE__*/_jsx(\"button\",{onClick:calculateAndSaveBudget,children:\"Рассчитать бюджет\"}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-secondary\",onClick:()=>navigate(\"/helper\"),children:\"Вернуться в помощник\"})]})]}),renderToolReset(\"budget\")]})]});}}return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:rootClassName,style:props.style,children:[/*#__PURE__*/_jsx(\"style\",{children:css()}),/*#__PURE__*/_jsxs(\"main\",{className:\"brp-shell\",children:[/*#__PURE__*/_jsxs(\"header\",{className:\"brp-head\",children:[/*#__PURE__*/_jsx(\"a\",{className:\"brp-guide-link\",href:localePath(PLAYBOOK_URL,locale),children:\"← Руководство\"}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-brand\",children:\"Помощник по аренде\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"brp-progress\",children:[count,\" из 3\"]})]}),/*#__PURE__*/_jsxs(\"section\",{children:[/*#__PURE__*/_jsx(\"span\",{className:\"brp-kicker\",children:\"Практические инструменты\"}),/*#__PURE__*/_jsx(\"h1\",{children:count===3?\"Вы готовы начинать поиск\":\"Подготовьте сильную заявку на аренду\"}),/*#__PURE__*/_jsx(\"p\",{className:\"brp-lead\",children:\"Три независимых шага: документы, презентация арендатора и бюджет заселения. Прогресс хранится только на этом устройстве.\"}),storageMode===\"session\"&&/*#__PURE__*/_jsx(\"div\",{className:\"brp-notice\",children:\"Браузер запретил постоянное хранение. В этой вкладке можно продолжить, но после закрытия прогресс может исчезнуть.\"}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-grid\",children:TOOL_IDS.map((rawId,index)=>{const id=rawId;const t=state.tools[id];return /*#__PURE__*/_jsxs(\"article\",{className:\"brp-card\",children:[/*#__PURE__*/_jsxs(\"span\",{className:\"brp-kicker\",children:[\"Шаг \",index+1]}),/*#__PURE__*/_jsx(\"h2\",{children:TOOL_COPY[id].title}),/*#__PURE__*/_jsx(\"p\",{children:TOOL_COPY[id].description}),/*#__PURE__*/_jsx(\"span\",{className:`brp-status ${t.status===\"needs_review\"?\"review\":\"\"}`,children:statusLabel(t.status)}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>openTool(id),children:t.status===\"needs_review\"?id===\"documents\"?\"Проверить пакет\":id===\"presentation\"?\"Обновить презентацию\":\"Пересчитать бюджет\":t.status===\"completed\"?id===\"documents\"?\"Открыть пакет\":id===\"presentation\"?\"Открыть презентацию\":\"Открыть расчет бюджета\":t.status===\"in_progress\"?id===\"documents\"?\"Продолжить\":id===\"presentation\"?\"Продолжить заполнение\":\"Продолжить расчет\":id===\"documents\"?\"Собрать пакет документов\":id===\"presentation\"?\"Создать презентацию арендатора\":\"Рассчитать бюджет\"})]},id);})}),count===3&&/*#__PURE__*/_jsxs(\"section\",{className:\"brp-complete\",children:[/*#__PURE__*/_jsx(\"h2\",{children:\"Все три инструмента пройдены\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Пакет документов собран, бюджет рассчитан, презентация подготовлена. Перед отправкой заявки еще раз проверьте актуальность файлов и условий конкретного объявления.\"}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-actions\",children:/*#__PURE__*/_jsx(\"button\",{onClick:()=>window.location.assign(localePath(PLAYBOOK_CHAPTER_6_URL,locale)),children:\"Вернуться к руководству\"})})]})]}),/*#__PURE__*/_jsxs(\"section\",{style:{marginTop:28},children:[count>=1&&/*#__PURE__*/_jsx(\"p\",{children:\"Что ещё помогло бы вам в поиске квартиры?\"}),/*#__PURE__*/_jsx(\"button\",{className:\"brp-text-link\",\"data-feedback-source\":\"dashboard\",onClick:()=>openFeedback(\"dashboard\"),children:\"Оставить обратную связь\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"brp-reset\",children:/*#__PURE__*/_jsx(\"button\",{className:\"brp-reset-button\",onClick:resetAll,children:\"Сбросить данные\"})})]})]});}addPropertyControls(HelperFoundation,{apiBase:{type:ControlType.String,title:\"API base\",defaultValue:DEFAULT_API_BASE,placeholder:\"https://api.example.com\"},analyticsHost:{type:ControlType.String,title:\"Analytics host\",defaultValue:DEFAULT_ANALYTICS_HOST,placeholder:\"https://eu.i.posthog.com\"},analyticsKey:{type:ControlType.String,title:\"Analytics key\",defaultValue:DEFAULT_ANALYTICS_KEY,placeholder:\"phc_…\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HelperFoundation\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HelperFoundation.map"],"mappings":"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"}