<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="https://www.pandoraburo.ru/" xml:lang="ru">
  <id>https://www.pandoraburo.ru/vtoroe-mnenie</id>
  <link href="https://www.pandoraburo.ru/vtoroe-mnenie.xml" rel="self"/>
  <title>Второе мнение</title>
  <subtitle type="html">
&lt;html lang="ru"&gt;
&lt;head&gt;
&lt;meta charset="UTF-8"&gt;
&lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
&lt;title&gt;Decision Review — Аналитический аудит решений&lt;/title&gt;
&lt;style&gt;
  /* ====== ЗАЩИТА ОТ ГЛОБАЛЬНЫХ СТИЛЕЙ САЙТА ====== */
  #decisionReviewApp,
  #decisionReviewApp *{
    box-sizing:border-box !important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif !important;
    -webkit-font-smoothing:antialiased;
  }
  #decisionReviewApp{
    --bg:#0e1116; --panel:#161b22; --panel-2:#1c232c;
    --text:#e6edf3; --muted:#8b949e; --border:#2a323c;
    --green:#2ea043; --yellow:#d29922; --red:#da3633;
    --accent:#4493f8; --accent-2:#58a6ff;
    background:var(--bg) !important;
    color:var(--text) !important;
    font-size:15px !important;
    line-height:1.5 !important;
    padding:24px 16px 60px !important;
    border-radius:12px;
    text-align:left !important;
  }
  #decisionReviewApp .wrap{max-width:960px;margin:0 auto}
  #decisionReviewApp h1,
  #decisionReviewApp h2,
  #decisionReviewApp h3{margin:0;letter-spacing:-0.01em;color:var(--text) !important}
  #decisionReviewApp p{margin:0}

  /* ====== HERO ====== */
  #decisionReviewApp .hero{padding:24px 0 20px;border-bottom:1px solid var(--border);margin-bottom:20px}
  #decisionReviewApp .hero h1{font-size:30px;margin-bottom:10px}
  #decisionReviewApp .hero p{color:var(--muted);max-width:680px}

  /* ====== ЭКРАНЫ ====== */
  #decisionReviewApp .screen{display:none}
  #decisionReviewApp .screen.active{display:block}

  /* ====== ШАГИ (1. Сценарий / 2. Факты / 3. Протокол) ====== */
  #decisionReviewApp .steps{
    display:flex;gap:8px;margin:16px 0 24px;flex-wrap:wrap;
  }
  #decisionReviewApp .step{
    padding:8px 16px;
    border:2px solid #000 !important;
    border-radius:20px;
    background:#ffffff !important;
    color:#000000 !important;
    font-weight:800 !important;
    font-size:14px !important;
    letter-spacing:0.01em;
    display:inline-block;
  }
  #decisionReviewApp .step.active{
    background:#000000 !important;
    color:#ffffff !important;
    border-color:#000000 !important;
  }

  /* ====== КАРТОЧКИ СЦЕНАРИЕВ ====== */
  #decisionReviewApp .group-title{margin:26px 0 12px;font-size:13px;color:var(--muted);
    text-transform:uppercase;letter-spacing:0.08em}
  #decisionReviewApp .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
  #decisionReviewApp .card{
    background:var(--panel);border:1px solid var(--border);border-radius:12px;
    padding:16px 18px;cursor:pointer;transition:border-color .15s,transform .15s;
  }
  #decisionReviewApp .card:hover{border-color:var(--accent);transform:translateY(-1px)}
  #decisionReviewApp .card h3{font-size:15px;margin-bottom:6px}
  #decisionReviewApp .card p{font-size:13px;color:var(--muted)}
  #decisionReviewApp .card .meta{margin-top:10px;font-size:11px;color:var(--muted);
    display:flex;gap:10px;flex-wrap:wrap}
  #decisionReviewApp .card .badge{padding:2px 8px;border:1px solid var(--border);border-radius:20px}

  /* ====== STICKY BAR ====== */
  #decisionReviewApp .sticky-bar{
    position:sticky;top:0;z-index:10;background:rgba(14,17,22,.96);
    backdrop-filter:blur(8px);border-bottom:1px solid var(--border);
    padding:10px 0;margin:-24px -16px 20px;padding-left:16px;padding-right:16px;
  }
  #decisionReviewApp .bar-row{max-width:960px;margin:0 auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
  #decisionReviewApp .bar-info{font-size:13px;color:var(--muted);white-space:nowrap}
  #decisionReviewApp .bar-info strong{color:var(--text)}
  #decisionReviewApp .progress-track{flex:1;min-width:140px;height:6px;background:var(--panel-2);
    border-radius:3px;overflow:hidden}
  #decisionReviewApp .progress-fill{height:100%;width:0;
    background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .3s}
  #decisionReviewApp .pill{font-size:12px;padding:3px 10px;border-radius:20px;
    border:1px solid var(--border);white-space:nowrap}
  #decisionReviewApp .pill.ok{color:var(--green);border-color:var(--green)}
  #decisionReviewApp .pill.warn{color:var(--yellow);border-color:var(--yellow)}
  #decisionReviewApp .pill.bad{color:var(--red);border-color:var(--red)}

  /* ====== ИНДЕКСЫ ====== */
  #decisionReviewApp .indices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px}
  #decisionReviewApp .idx{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px 16px}
  #decisionReviewApp .idx .lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
  #decisionReviewApp .idx .val{font-size:24px;font-weight:600;margin-top:2px;color:var(--text)}
  #decisionReviewApp .idx .hint{font-size:12px;color:var(--muted);margin-top:2px}
  @media (max-width:620px){
    #decisionReviewApp .indices{grid-template-columns:1fr}
    #decisionReviewApp .q-fields{grid-template-columns:1fr}
  }

  /* ====== БЛОКИ ВОПРОСОВ ====== */
  #decisionReviewApp .block{background:var(--panel);border:1px solid var(--border);
    border-radius:12px;padding:20px 20px 6px;margin-bottom:16px}
  #decisionReviewApp .block-head{display:flex;justify-content:space-between;
    align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:6px}
  #decisionReviewApp .block-head h2{font-size:16px}
  #decisionReviewApp .block-head .weight{font-size:12px;color:var(--muted);
    background:var(--panel-2);border:1px solid var(--border);padding:3px 10px;border-radius:20px}
  #decisionReviewApp .block-desc{font-size:13px;color:var(--muted);margin-bottom:14px}
  #decisionReviewApp .q{padding:12px 0;border-top:1px solid var(--border)}
  #decisionReviewApp .q:first-of-type{border-top:none}
  #decisionReviewApp .q-label{font-size:14px;margin-bottom:8px;display:block;color:var(--text)}
  #decisionReviewApp .q-label .num{color:var(--muted);margin-right:6px;font-variant-numeric:tabular-nums}
  #decisionReviewApp .q-fields{display:grid;grid-template-columns:1fr 200px;gap:10px}
  #decisionReviewApp .q textarea,
  #decisionReviewApp .q select,
  #decisionReviewApp .field input{
    width:100%;background:var(--panel-2) !important;border:1px solid var(--border);
    color:var(--text) !important;padding:10px 12px;border-radius:8px;
    font:inherit !important;outline:none;
  }
  #decisionReviewApp .q textarea:focus,
  #decisionReviewApp .q select:focus,
  #decisionReviewApp .field input:focus{border-color:var(--accent)}
  #decisionReviewApp .q textarea{resize:vertical;min-height:44px}
  #decisionReviewApp .q select{
    appearance:none;padding-right:32px;
    background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),
      linear-gradient(135deg,var(--muted) 50%,transparent 50%);
    background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;
    background-size:5px 5px,5px 5px;background-repeat:no-repeat;
  }
  #decisionReviewApp .q select.source-doc{border-color:var(--green)}
  #decisionReviewApp .q select.source-open{border-color:var(--yellow)}
  #decisionReviewApp .q select.source-verbal{border-color:var(--yellow)}
  #decisionReviewApp .q select.source-guess{border-color:var(--red)}

  /* ====== ИНФО-БОКС И СОГЛАСИЕ ====== */
  #decisionReviewApp .info-box,
  #decisionReviewApp .consent{
    background:var(--panel);border:1px solid var(--border);border-radius:12px;
    padding:20px;margin-bottom:16px;
  }
  #decisionReviewApp .info-box h2,
  #decisionReviewApp .consent h2{font-size:16px;margin-bottom:12px}
  #decisionReviewApp .field{margin-bottom:12px}
  #decisionReviewApp .field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
  #decisionReviewApp .disclaimer{font-size:13px;color:var(--muted);background:var(--panel-2);
    border-left:3px solid var(--accent);padding:12px 14px;border-radius:6px;margin-bottom:14px}
  #decisionReviewApp .consent label{display:flex;gap:10px;align-items:flex-start;
    font-size:13px;cursor:pointer;margin-bottom:10px;color:var(--text)}
  #decisionReviewApp .consent input[type=checkbox]{margin-top:3px;accent-color:var(--accent)}
  #decisionReviewApp .anon-warning{background:rgba(210,153,34,.08);border:1px solid var(--yellow);
    color:#e8c46a;font-size:13px;padding:10px 12px;border-radius:8px;margin-bottom:12px}

  #decisionReviewApp .hp-field{position:absolute;left:-9999px;top:auto}

  /* ====== КНОПКИ ====== */
  #decisionReviewApp .actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:6px}

  #decisionReviewApp button.primary{
    background:#000000 !important;
    color:#ffffff !important;
    border:2px solid #000000 !important;
    padding:14px 26px !important;
    border-radius:8px !important;
    font:inherit !important;
    font-weight:800 !important;
    font-size:16px !important;
    letter-spacing:0.01em;
    cursor:pointer;
    transition:opacity .15s;
  }
  #decisionReviewApp button.primary:hover{opacity:.85}
  #decisionReviewApp button.primary:disabled{
    background:#c9c9c9 !important;
    color:#555 !important;
    border-color:#c9c9c9 !important;
    cursor:not-allowed;
  }

  #decisionReviewApp button.ghost{
    background:#ffffff !important;
    color:#000000 !important;
    border:2px solid #000000 !important;
    padding:14px 20px !important;
    border-radius:8px !important;
    font:inherit !important;
    font-weight:800 !important;
    font-size:14px !important;
    cursor:pointer;
    transition:background .15s,color .15s;
  }
  #decisionReviewApp button.ghost:hover{
    background:#000000 !important;
    color:#ffffff !important;
  }

  /* ====== ОТЧЁТ ====== */
  #decisionReviewApp .report{background:var(--panel);border:1px solid var(--accent);
    border-radius:12px;padding:22px;margin-top:20px}
  #decisionReviewApp .report h2{font-size:18px;margin-bottom:14px}
  #decisionReviewApp .report h3{font-size:14px;margin:18px 0 8px;color:var(--muted);
    text-transform:uppercase;letter-spacing:.06em}
  #decisionReviewApp .row{display:flex;justify-content:space-between;padding:8px 0;
    border-bottom:1px solid var(--border);font-size:14px;gap:12px}
  #decisionReviewApp .row:last-child{border-bottom:none}
  #decisionReviewApp .row span:first-child{color:var(--muted)}
  #decisionReviewApp .lights{display:flex;flex-direction:column;gap:6px;font-size:13px}
  #decisionReviewApp .light{display:flex;justify-content:space-between;gap:12px;
    padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}
  #decisionReviewApp .light .dot{width:10px;height:10px;border-radius:50%;
    display:inline-block;margin-right:8px}
  #decisionReviewApp .dot.g{background:var(--green)}
  #decisionReviewApp .dot.y{background:var(--yellow)}
  #decisionReviewApp .dot.r{background:var(--red)}
  #decisionReviewApp .list{margin:0;padding-left:18px;font-size:13px;color:var(--muted)}
  #decisionReviewApp .list li{margin-bottom:4px}
  #decisionReviewApp .report .hint{font-size:12px;color:var(--muted);margin-top:10px}
  #decisionReviewApp .report .discl{font-size:12px;color:var(--muted);background:var(--panel-2);
    border-left:3px solid var(--accent);padding:10px 12px;border-radius:6px;margin-top:14px}

  #decisionReviewApp footer{color:var(--muted);font-size:12px;text-align:center;
    margin-top:40px;padding-top:20px;border-top:1px solid var(--border)}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id="decisionReviewApp"&gt;
  &lt;div class="wrap"&gt;

    &lt;header class="hero"&gt;
      &lt;h1&gt;Decision Review&lt;/h1&gt;
      &lt;p&gt;Структурный аудит полноты и достоверности данных перед принятием решения.
      Мы не даём советов и прогнозов. Мы показываем, где в ваших данных есть пробелы,
      противоречия и слепые зоны. Для каждого факта укажите источник — это влияет
      на расчёт индекса достоверности.&lt;/p&gt;
    &lt;/header&gt;

    &lt;section class="screen active" id="screen-choose"&gt;
      &lt;div class="steps"&gt;
        &lt;span class="step active"&gt;1. Сценарий&lt;/span&gt;
        &lt;span class="step"&gt;2. Факты&lt;/span&gt;
        &lt;span class="step"&gt;3. Протокол&lt;/span&gt;
      &lt;/div&gt;
      &lt;div id="scenarioGroups"&gt;&lt;/div&gt;
    &lt;/section&gt;

    &lt;section class="screen" id="screen-form"&gt;
      &lt;div class="steps"&gt;
        &lt;span class="step"&gt;1. Сценарий&lt;/span&gt;
        &lt;span class="step active"&gt;2. Факты&lt;/span&gt;
        &lt;span class="step"&gt;3. Протокол&lt;/span&gt;
      &lt;/div&gt;

      &lt;div class="sticky-bar"&gt;
        &lt;div class="bar-row"&gt;
          &lt;div class="bar-info"&gt;&lt;strong id="scenarioTitleBar"&gt;—&lt;/strong&gt;&lt;/div&gt;
          &lt;div class="bar-info"&gt;Заполнено: &lt;strong&gt;&lt;span id="filledCount"&gt;0&lt;/span&gt; / &lt;span id="totalCount"&gt;0&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
          &lt;div class="progress-track"&gt;&lt;div class="progress-fill" id="progressFill"&gt;&lt;/div&gt;&lt;/div&gt;
          &lt;div class="pill bad" id="statusPill"&gt;—&lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;

      &lt;div class="indices"&gt;
        &lt;div class="idx"&gt;
          &lt;div class="lbl"&gt;Индекс полноты&lt;/div&gt;
          &lt;div class="val" id="completenessVal"&gt;0%&lt;/div&gt;
          &lt;div class="hint" id="completenessHint"&gt;Заполните данные&lt;/div&gt;
        &lt;/div&gt;
        &lt;div class="idx"&gt;
          &lt;div class="lbl"&gt;Индекс достоверности&lt;/div&gt;
          &lt;div class="val" id="reliabilityVal"&gt;0%&lt;/div&gt;
          &lt;div class="hint" id="reliabilityHint"&gt;Укажите источники&lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;

      &lt;form id="reviewForm" autocomplete="off" novalidate="novalidate"&gt;
        &lt;div class="hp-field"&gt;
          &lt;label&gt;Не заполняйте &lt;input type="text" id="hp_field" tabindex="-1" /&gt;&lt;/label&gt;
        &lt;/div&gt;

        &lt;div id="blocksContainer"&gt;&lt;/div&gt;

        &lt;section class="info-box"&gt;
          &lt;h2&gt;Данные для связи&lt;/h2&gt;
          &lt;div class="field"&gt;
            &lt;label&gt;Название проекта / ситуации *&lt;/label&gt;
            &lt;input type="text" id="projectName" placeholder="Например: Закупка оборудования, Китай" /&gt;
          &lt;/div&gt;
          &lt;div class="field"&gt;
            &lt;label&gt;Ваше имя *&lt;/label&gt;
            &lt;input type="text" id="clientName" placeholder="Иван Иванов" /&gt;
          &lt;/div&gt;
          &lt;div class="field"&gt;
            &lt;label&gt;Email для ответа *&lt;/label&gt;
            &lt;input type="email" id="clientEmail" placeholder="you@company.ru" /&gt;
          &lt;/div&gt;
        &lt;/section&gt;

        &lt;section class="consent"&gt;
          &lt;h2&gt;Согласие и дисклеймер&lt;/h2&gt;
          &lt;div class="disclaimer"&gt;
            Услуга является аналитической обработкой и структурированием фактов,
            предоставленных Заказчиком. Исполнитель не осуществляет прогнозирование
            результатов, не даёт инвестиционных, юридических или управленческих
            рекомендаций. Ответственность за достоверность, полноту и законность
            получения исходных данных лежит исключительно на Заказчике.
            Отчёт не является офертой, советом или гарантией результата.
          &lt;/div&gt;

          &lt;div class="anon-warning" id="anonWarning" style="display:none"&gt;
            В этом сценарии речь идёт о третьем лице. Не указывайте ФИО, адреса,
            номера документов. Опишите ситуацию обезличенно: «кандидат», «партнёр»,
            «супруг». Мы не собираем данные из открытых источников — только то,
            что вы знаете сами.
          &lt;/div&gt;

          &lt;label&gt;
            &lt;input type="checkbox" id="consentBox" /&gt;
            &lt;span&gt;Я ознакомлен с дисклеймером и подтверждаю, что предоставленные данные
            достоверны в рамках моих знаний. Я понимаю, что отчёт не содержит советов,
            прогнозов и гарантий.&lt;/span&gt;
          &lt;/label&gt;

          &lt;label id="anonConsentWrap" style="display:none"&gt;
            &lt;input type="checkbox" id="anonBox" /&gt;
            &lt;span&gt;Я подтверждаю, что не передаю персональные данные третьих лиц
            (ФИО, адреса, номера документов). Ситуация описана обезличенно.&lt;/span&gt;
          &lt;/label&gt;
        &lt;/section&gt;

        &lt;div class="actions"&gt;
          &lt;button type="submit" class="primary" id="submitBtn" disabled="disabled"&gt;Сформировать протокол&lt;/button&gt;
          &lt;button type="button" class="ghost" id="backBtn"&gt;← Выбрать другой сценарий&lt;/button&gt;
          &lt;button type="button" class="ghost" id="resetBtn"&gt;Очистить&lt;/button&gt;
        &lt;/div&gt;
      &lt;/form&gt;

      &lt;div class="report" id="reportBox" style="display:none"&gt;&lt;/div&gt;
    &lt;/section&gt;

    &lt;footer&gt;
      Decision Review · Аналитический аудит решений · © &lt;span id="year"&gt;&lt;/span&gt;
    &lt;/footer&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
(function(){
  "use strict";

  var RECIPIENT_EMAIL = "setipandorra@internet.ru";
  var STORAGE_KEY = "decisionReview_v2_draft";
  var START_TIME = Date.now();

  var SOURCE_SCORE = { doc:1.0, open:0.6, verbal:0.5, guess:0.2, none:0.0 };
  var SOURCE_LABEL = { doc:"Документ", open:"Открытые данные",
                       verbal:"Устное заявление", guess:"Предположение", none:"Нет данных" };

  // ============================================================
  // КАТАЛОГ СЦЕНАРИЕВ (20)
  // ============================================================
  var SCENARIOS = [

    // ---------- ГРУППА A ----------
    { id:"A1", group:"A. Бизнес-сделки и проекты",
      title:"ВЭД / импорт-экспорт",
      desc:"Закупки из Китая, Турции, ОАЭ, поставки сырья, внешнеторговые контракты.",
      hasThirdParty:false,
      blocks:[
        { title:"Юридическая и договорная безопасность", weight:30, desc:"Бенефициары, суды, критерии приёмки, ответственность.",
          questions:[
            "Кто является конечным бенефициаром контрагента? Цепочка владения (до 3-го уровня).",
            "Есть ли у контрагента текущие судебные дела в качестве ответчика за 2 года?",
            "Прописаны ли в договоре критерии приёмки и штрафы за срыв сроков?",
            "Распределена ли ответственность сторон за риски до момента передачи товара?"
          ]},
        { title:"Управление внешними рисками", weight:25, desc:"Форс-мажор, субподряд, логистика, таможня, санкции.",
          questions:[
            "Есть ли сценарий на случай срыва поставки или резкого изменения курса валют?",
            "Кто физически исполняет работы (штат, субподряд, третья сторона)?",
            "Учтены ли санкционные, таможенные и логистические ограничения по маршруту?",
            "Есть ли резервный поставщик или альтернативный маршрут?"
          ]},
        { title:"Прозрачность финансовых потоков", weight:20, desc:"Источники денег, привязка к этапам, маржинальность.",
          questions:[
            "Подтверждён ли источник финансирования сделки и чем именно?",
            "Привязан ли график платежей к этапам, а не к датам?",
            "Известна ли реальная маржинальность с учётом скрытых издержек?",
            "Есть ли механизм обеспечения сделки (аккредитив, эскроу, гарантия)?"
          ]},
        { title:"Предсказуемость результата", weight:15, desc:"KPI, контрольные точки, опыт команды.",
          questions:[
            "Сформулированы ли измеримые KPI и контрольные точки по этапам?",
            "Есть ли протокол действий при отклонении от графика?",
            "Подтверждён ли опыт команды аналогичными кейсами?"
          ]},
        { title:"Качество и целостность данных", weight:10, desc:"Противоречия, подтверждённость фактов.",
          questions:[
            "Есть ли противоречия между заявленными фактами и документами?",
            "Все ли ключевые факты подтверждены документально?",
            "Что осталось непроверенным и требует уточнения?"
          ]}
      ]},

    { id:"A2", group:"A. Бизнес-сделки и проекты",
      title:"Внутренняя сделка / подряд",
      desc:"Строительство, оборудование, услуги внутри РФ.",
      hasThirdParty:false,
      blocks:[
        { title:"Юридическая безопасность", weight:25, desc:"Договор, ответственность, приёмка.",
          questions:[
            "Прописаны ли критерии приёмки и штрафы за срыв сроков?",
            "Распределена ли ответственность за риски до момента передачи результата?",
            "Есть ли у подрядчика подтверждённые полномочия и правоспособность?",
            "Указаны ли в договоре все существенные условия?"
          ]},
        { title:"Предсказуемость результата", weight:25, desc:"KPI, этапы, опыт.",
          questions:[
            "Сформулированы ли KPI и контрольные точки по этапам?",
            "Есть ли протокол действий при отклонении от графика?",
            "Подтверждён ли опыт команды аналогичными кейсами?"
          ]},
        { title:"Прозрачность финансов", weight:20, desc:"Оплата, этапы, скрытые издержки.",
          questions:[
            "Привязан ли график платежей к этапам?",
            "Известна ли реальная себестоимость с учётом скрытых издержек?",
            "Есть ли механизм обеспечения (аккредитив, эскроу)?"
          ]},
        { title:"Внешние риски", weight:20, desc:"Субподряд, логистика, форс-мажор.",
          questions:[
            "Кто физически исполняет работы и указано ли это в договоре?",
            "Есть ли сценарий на случай срыва поставки или подрядчика?",
            "Есть ли резервный подрядчик или альтернативный вариант?"
          ]},
        { title:"Качество данных", weight:10, desc:"Противоречия и пробелы.",
          questions:[
            "Есть ли противоречия между заявленными фактами и документами?",
            "Все ли ключевые факты подтверждены документально?",
            "Что осталось непроверенным?"
          ]}
      ]},

    { id:"A3", group:"A. Бизнес-сделки и проекты",
      title:"Инвестиция / вложение",
      desc:"Вход в проект, покупка доли, кредитование.",
      hasThirdParty:false,
      blocks:[
        { title:"Финансовая модель", weight:30, desc:"Доходность, риски, источники возврата.",
          questions:[
            "Подтверждён ли источник возврата вложений?",
            "Известна ли реальная доходность с учётом всех издержек?",
            "Есть ли сценарий на случай недостижения плановых показателей?",
            "Есть ли обеспечение (залог, поручительство, гарантия)?"
          ]},
        { title:"Юридическая безопасность", weight:25, desc:"Структура сделки, права, бенефициары.",
          questions:[
            "Кто конечные бенефициары проекта?",
            "Как оформляются права инвестора (доля, залог, опцион)?",
            "Есть ли судебные дела у проекта или его бенефициаров?",
            "Прописаны ли условия выхода из проекта?"
          ]},
        { title:"Внешние риски", weight:20, desc:"Рынок, регуляторика, конкуренты.",
          questions:[
            "Учтены ли рыночные и регуляторные риски?",
            "Есть ли зависимость от одного поставщика или клиента?",
            "Есть ли план на случай форс-мажора?"
          ]},
        { title:"Предсказуемость", weight:15, desc:"KPI, управление, отчётность.",
          questions:[
            "Сформулированы ли KPI и контрольные точки?",
            "Есть ли прозрачная отчётность перед инвестором?",
            "Подтверждён ли опыт команды?"
          ]},
        { title:"Качество данных", weight:10, desc:"Противоречия и пробелы.",
          questions:[
            "Есть ли противоречия между заявленными фактами и документами?",
            "Все ли ключевые факты подтверждены документально?",
            "Что осталось непроверенным?"
          ]}
      ]},

    { id:"A4", group:"A. Бизнес-сделки и проекты",
      title:"Партнёрство",
      desc:"Совместный бизнес, разделение долей, распределение ролей.",
      hasThirdParty:true,
      blocks:[
        { title:"Юридическая безопасность", weight:30, desc:"Структура, права, выход.",
          questions:[
            "Как оформляются доли и права каждого партнёра?",
            "Прописаны ли условия выхода из партнёрства?",
            "Есть ли механизм разрешения конфликтов?",
            "Проверялись ли судебные дела партнёров?"
          ]},
        { title:"Финансовая прозрачность", weight:20, desc:"Вклады, распределение, отчётность.",
          questions:[
            "Как распределяются доходы и расходы?",
            "Есть ли прозрачная отчётность перед партнёрами?",
            "Известны ли источники финансирования каждого партнёра?"
          ]},
        { title:"Предсказуемость", weight:20, desc:"Роли, KPI, управление.",
          questions:[
            "Распределены ли роли и зоны ответственности?",
            "Сформулированы ли KPI для каждого партнёра?",
            "Есть ли протокол действий при разногласиях?"
          ]},
        { title:"Внешние риски", weight:15, desc:"Рынок, регуляторика, зависимости.",
          questions:[
            "Есть ли зависимость от одного партнёра или клиента?",
            "Учтены ли рыночные и регуляторные риски?",
            "Есть ли резервный план?"
          ]},
        { title:"Качество данных", weight:15, desc:"Противоречия и пробелы.",
          questions:[
            "Есть ли противоречия между словами и документами партнёров?",
            "Все ли ключевые факты подтверждены?",
            "Что осталось непроверенным о партнёрах?"
          ]}
      ]},

    { id:"A5", group:"A. Бизнес-сделки и проекты",
      title:"Закупка / тендер",
      desc:"Госзакупки, корпоративные тендеры, конкурсные процедуры.",
      hasThirdParty:false,
      blocks:[
        { title:"Юридическая безопасность", weight:30, desc:"Условия, соответствие, риски.",
          questions:[
            "Соответствует ли предложение требованиям тендера?",
            "Прописаны ли критерии приёмки и штрафы?",
            "Распределена ли ответственность сторон?",
            "Есть ли судебные дела у участников?"
          ]},
        { title:"Финансовая прозрачность", weight:25, desc:"Цена, обеспечение, платежи.",
          questions:[
            "Подтверждён ли источник финансирования?",
            "Привязан ли график платежей к этапам?",
            "Известна ли реальная себестоимость?",
            "Есть ли обеспечение заявки или исполнения?"
          ]},
        { title:"Предсказуемость", weight:20, desc:"KPI, сроки, опыт.",
          questions:[
            "Сформулированы ли KPI и контрольные точки?",
            "Подтверждён ли опыт аналогичными кейсами?",
            "Есть ли протокол на случай отклонений?"
          ]},
        { title:"Внешние риски", weight:15, desc:"Субподряд, логистика, форс-мажор.",
          questions:[
            "Кто физически исполняет работы?",
            "Есть ли сценарий на случай срыва?",
            "Есть ли резервный вариант?"
          ]},
        { title:"Качество данных", weight:10, desc:"Противоречия и пробелы.",
          questions:[
            "Есть ли противоречия между заявленными фактами и документами?",
            "Все ли факты подтверждены документально?",
            "Что осталось непроверенным?"
          ]}
      ]},

    { id:"A6", group:"A. Бизнес-сделки и проекты",
      title:"Аренда / недвижимость",
      desc:"Коммерческая аренда, покупка помещения, земельные участки.",
      hasThirdParty:false,
      blocks:[
        { title:"Юридическая безопасность", weight:30, desc:"Права, обременения, договор.",
          questions:[
            "Подтверждены ли права собственности и отсутствие обременений?",
            "Прописаны ли условия расторжения и ответственность?",
            "Есть ли судебные дела по объекту?",
            "Указаны ли все существенные условия в договоре?"
          ]},
        { title:"Финансовая прозрачность", weight:25, desc:"Платежи, издержки, обеспечение.",
          questions:[
            "Подтверждён ли источник оплаты?",
            "Известны ли все скрытые издержки (ремонт, налоги, коммуналка)?",
            "Есть ли обеспечение (депозит, гарантия)?",
            "Привязаны ли платежи к этапам/периодам?"
          ]},
        { title:"Внешние риски", weight:20, desc:"Локация, регуляторика, форс-мажор.",
          questions:[
            "Учтены ли регуляторные ограничения по объекту?",
            "Есть ли зависимость от инфраструктуры или арендаторов?",
            "Есть ли план на случай форс-мажора?"
          ]},
        { title:"Предсказуемость", weight:15, desc:"Условия, сроки, KPI.",
          questions:[
            "Сформулированы ли условия и контрольные точки?",
            "Есть ли протокол на случай отклонений?",
            "Подтверждён ли опыт контрагента?"
          ]},
        { title:"Качество данных", weight:10, desc:"Противоречия и пробелы.",
          questions:[
            "Есть ли противоречия между заявленными фактами и документами?",
            "Все ли факты подтверждены документально?",
            "Что осталось непроверенным?"
          ]}
      ]},

    { id:"A7", group:"A. Бизнес-сделки и проекты",
      title:"Лицензия / франшиза",
      desc:"Покупка франшизы, лицензионный договор, права использования.",
      hasThirdParty:false,
      blocks:[
        { title:"Юридическая безопасность", weight:30, desc:"Права, территория, срок.",
          questions:[
            "Подтверждены ли права лицензиара на объект лицензии?",
            "Прописаны ли территория, срок и ограничения?",
            "Есть ли условия расторжения и ответственность?",
            "Есть ли судебные дела у лицензиара?"
          ]},
        { title:"Финансовая прозрачность", weight:25, desc:"Платежи, роялти, издержки.",
          questions:[
            "Подтверждён ли источник оплаты паушального взноса?",
            "Известны ли все роялти и скрытые платежи?",
            "Известна ли реальная доходность с учётом всех издержек?",
            "Есть ли обеспечение обязательств?"
          ]},
        { title:"Предсказуемость", weight:20, desc:"KPI, поддержка, обучение.",
          questions:[
            "Сформулированы ли KPI и контрольные точки?",
            "Есть ли обязательства лицензиара по поддержке?",
            "Подтверждён ли опыт других франчайзи?"
          ]},
        { title:"Внешние риски", weight:15, desc:"Рынок, регуляторика, конкуренты.",
          questions:[
            "Учтены ли рыночные и регуляторные риски?",
            "Есть ли зависимость от одного рынка?",
            "Есть ли план на случай форс-мажора?"
          ]},
        { title:"Качество данных", weight:10, desc:"Противоречия и пробелы.",
          questions:[
            "Есть ли противоречия между заявленными фактами и документами?",
            "Все ли факты подтверждены документально?",
            "Что осталось непроверенным?"
          ]}
      ]},

    // ---------- ГРУППА B ----------
    { id:"B1", group:"B. Внутрикорпоративные решения",
      title:"Найм ключевого сотрудника",
      desc:"Директор, топ-менеджер, бизнес-ассистент, секретарь.",
      hasThirdParty:true,
      blocks:[
        { title:"Надёжность и предсказуемость", weight:25, desc:"Стабильность, причины уходов, реакция на изменения.",
          questions:[
            "Сколько мест работы за последние 3 года? Причины уходов?",
            "Есть ли подтверждённые рекомендации с прошлых мест?",
            "Как кандидат реагировал на смену задач в прошлом?"
          ]},
        { title:"Кадровая независимость (Bus Factor)", weight:25, desc:"Зависимость процессов от одного человека.",
          questions:[
            "Какие процессы будут парализованы при уходе кандидата?",
            "Есть ли дублирование доступа (пароли, контакты, процессы)?",
            "Переданы ли процессы в письменном виде?"
          ]},
        { title:"Финансовая прозрачность", weight:20, desc:"Доступ к счетам, лимиты, конфликт интересов.",
          questions:[
            "Будет ли у кандидата доступ к счетам, картам, платёжным системам?",
            "Прописан ли лимит самостоятельных трат?",
            "Есть ли декларация конфликта интересов?"
          ]},
        { title:"Юридическая чистота", weight:15, desc:"NDA, матответственность, суды.",
          questions:[
            "Подписан ли NDA до начала работы?",
            "Есть ли договор о полной материальной ответственности?",
            "Проверялись ли судебные дела и долговые обязательства?"
          ]},
        { title:"Качество данных", weight:15, desc:"Подтверждённость фактов.",
          questions:[
            "Какие факты подтверждены документально, а какие — со слов?",
            "Есть ли противоречия между резюме и рекомендациями?",
            "Что осталось непроверенным?"
          ]}
      ]},

    { id:"B2", group:"B. Внутрикорпоративные решения",
      title:"Кадровый риск (сотрудник в штате)",
      desc:"Оценка лояльности, доступа, конфликта интересов.",
      hasThirdParty:true,
      blocks:[
        { title:"Кадровая независимость (Bus Factor)", weight:30, desc:"Зависимость процессов от человека.",
          questions:[
            "Какие процессы завязаны на этом человеке?",
            "Есть ли дублирование доступа?",
            "Переданы ли процессы в письменном виде?"
          ]},
        { title:"Надёжность и предсказуемость", weight:25, desc:"Поведение, стабильность.",
          questions:[
            "Есть ли подтверждённые факты конфликтов или нарушений?",
            "Как сотрудник реагирует на изменения задач?",
            "Есть ли признаки выгорания или потери интереса?"
          ]},
        { title:"Финансовая прозрачность", weight:20, desc:"Доступ, траты, конфликт интересов.",
          questions:[
            "Какой доступ к деньгам и ресурсам у сотрудника?",
            "Есть ли лимиты и контроль?",
            "Есть ли родственные или финансовые связи с поставщиками?"
          ]},
        { title:"Юридическая чистота", weight:15, desc:"NDA, матответственность.",
          questions:[
            "Подписан ли NDA?",
            "Есть ли договор о матответственности?",
            "Были ли прецеденты нарушений?"
          ]},
        { title:"Качество данных", weight:10, desc:"Подтверждённость.",
          questions:[
            "Какие факты подтверждены документально?",
            "Есть ли противоречия между словами и поведением?",
            "Что осталось непроверенным?"
          ]}
      ]},

    { id:"B3", group:"B. Внутрикорпоративные решения",
      title:"Выбор подрядчика / поставщика",
      desc:"Сравнение нескольких кандидатов на роль исполнителя.",
      hasThirdParty:false,
      blocks:[
        { title:"Юридическая безопасность", weight:25, desc:"Договор, ответственность, приёмка.",
          questions:[
            "Прописаны ли критерии приёмки и штрафы?",
            "Распределена ли ответственность за риски?",
            "Есть ли судебные дела у подрядчика?",
            "Указаны ли все существенные условия?"
          ]},
        { title:"Финансовая прозрачность", weight:25, desc:"Цена, этапы, обеспечение.",
          questions:[
            "Подтверждён ли источник оплаты?",
            "Привязан ли график платежей к этапам?",
            "Известна ли реальная себестоимость?",
            "Есть ли обеспечение (аккредитив, гарантия)?"
          ]},
        { title:"Предсказуемость", weight:20, desc:"KPI, сроки, опыт.",
          questions:[
            "Сформулированы ли KPI и контрольные точки?",
            "Подтверждён ли опыт аналогичными кейсами?",
            "Есть ли протокол на случай отклонений?"
          ]},
        { title:"Внешние риски", weight:20, desc:"Субподряд, логистика, форс-мажор.",
          questions:[
            "Кто физически исполняет работы?",
            "Есть ли сценарий на случай срыва?",
            "Есть ли резервный вариант?"
          ]},
        { title:"Качество данных", weight:10, desc:"Противоречия.",
          questions:[
            "Есть ли противоречия между заявленными фактами и документами?",
            "Все ли факты подтверждены документально?",
            "Что осталось непроверенным?"
          ]}
      ]},

    { id:"B4", group:"B. Внутрикорпоративные решения",
      title:"Делегирование / передача полномочий",
      desc:"Кому отдать направление, филиал, бюджет.",
      hasThirdParty:true,
      blocks:[
        { title:"Кадровая независимость (Bus Factor)", weight:30, desc:"Зависимость процессов от человека.",
          questions:[
            "Какие процессы будут завязаны на этого человека?",
            "Есть ли дублирование и подстраховка?",
            "Переданы ли процессы в письменном виде?"
          ]},
        { title:"Надёжность и предсказуемость", weight:25, desc:"История, поведение.",
          questions:[
            "Есть ли подтверждённые кейсы успешного делегирования?",
            "Как человек реагировал на ответственность в прошлом?",
            "Есть ли подтверждённые факты нарушений?"
          ]},
        { title:"Предсказуемость", weight:20, desc:"KPI, отчётность.",
          questions:[
            "Сформулированы ли KPI для новой роли?",
            "Есть ли прозрачная отчётность?",
            "Есть ли протокол действий при отклонениях?"
          ]},
        { title:"Финансовая прозрачность", weight:15, desc:"Доступ, лимиты.",
          questions:[
            "Какой доступ к деньгам получит человек?",
            "Есть ли лимиты и контроль?",
            "Есть ли конфликт интересов?"
          ]},
        { title:"Качество данных", weight:10, desc:"Подтверждённость.",
          questions:[
            "Какие факты подтверждены документально?",
            "Есть ли противоречия?",
            "Что осталось непроверенным?"
          ]}
      ]},

    { id:"B5", group:"B. Внутрикорпоративные решения",
      title:"Выход из бизнеса / продажа доли",
      desc:"Подготовка к продаже, оценка рисков.",
      hasThirdParty:false,
      blocks:[
        { title:"Юридическая безопасность", weight:30, desc:"Структура, права, обязательства.",
          questions:[
            "Подтверждены ли права собственности на долю?",
            "Есть ли обременения, залоги, судебные дела?",
            "Прописаны ли условия выхода в уставе/договоре?",
            "Есть ли обязательства перед партнёрами?"
          ]},
        { title:"Финансовая прозрачность", weight:30, desc:"Оценка, обязательства, налоги.",
          questions:[
            "Известна ли реальная стоимость доли с учётом долгов?",
            "Учтены ли налоговые последствия?",
            "Есть ли скрытые обязательства?",
            "Подтверждён ли источник средств покупателя?"
          ]},
        { title:"Предсказуемость", weight:20, desc:"Сроки, условия, отчётность.",
          questions:[
            "Сформулированы ли сроки и контрольные точки?",
            "Есть ли прозрачная отчётность для покупателя?",
            "Подтверждён ли опыт аналогичных сделок?"
          ]},
        { title:"Внешние риски", weight:10, desc:"Рынок, регуляторика.",
          questions:[
            "Учтены ли рыночные риски?",
            "Есть ли регуляторные ограничения?",
            "Есть ли план на случай срыва сделки?"
          ]},
        { title:"Качество данных", weight:10, desc:"Противоречия.",
          questions:[
            "Есть ли противоречия между заявленными фактами и документами?",
            "Все ли факты подтверждены документально?",
            "Что осталось непроверенным?"
          ]}
      ]},

    // ---------- ГРУППА C ----------
    { id:"C1", group:"C. Личные и семейные решения",
      title:"Финансовая совместимость партнёра",
      desc:"Брак, совместная жизнь, общие деньги.",
      hasThirdParty:true,
      blocks:[
        { title:"Финансовая траектория", weight:30, desc:"Профессия, доход, динамика.",
          questions:[
            "Каков официальный источник дохода партнёра и как он подтверждён?",
            "Как менялся доход за последние 3 года?",
            "Есть ли подтверждённые данные о стабильности занятости?"
          ]},
        { title:"Финансовая дисциплина", weight:25, desc:"Долги, привычки, накопления.",
          questions:[
            "Есть ли кредиты, ипотека, долги? Известны ли суммы?",
            "Есть ли накопления или финансовая подушка?",
            "Есть ли подтверждённые данные о финансовых привычках?"
          ]},
        { title:"Прозрачность", weight:20, desc:"Готовность обсуждать деньги.",
          questions:[
            "Как партнёр относится к обсуждению денег?",
            "Есть ли подтверждённые факты скрытых обязательств?",
            "Известны ли финансово зависимые родственники?"
          ]},
        { title:"Совместимость целей", weight:15, desc:"Ваши цели и его траектория.",
          questions:[
            "Совпадают ли ваши цели по уровню жизни через 5 лет?",
            "Есть ли подтверждённые данные о планах партнёра?",
            "Есть ли противоречия между словами и действиями?"
          ]},
        { title:"Качество данных", weight:10, desc:"Подтверждённость.",
          questions:[
            "Что из фактов подтверждено документально, а что — со слов?",
            "Что вы не знаете и боитесь спросить?",
            "Что осталось непроверенным?"
          ]}
      ]},

    { id:"C2", group:"C. Личные и семейные решения",
      title:"Брачный договор / раздел имущества",
      desc:"Подготовка к браку или к разводу.",
      hasThirdParty:true,
      blocks:[
        { title:"Юридическая безопасность", weight:35, desc:"Права, обязательства, структура.",
          questions:[
            "Подтверждены ли права на имущество каждого из сторон?",
            "Учтены ли обязательства по закону?",
            "Прописаны ли условия раздела?",
            "Есть ли судебные дела или обременения?"
          ]},
        { title:"Финансовая прозрачность", weight:25, desc:"Активы, долги, доходы.",
          questions:[
            "Известны ли все активы и долги каждой стороны?",
            "Подтверждены ли доходы документально?",
            "Учтены ли налоговые последствия?"
          ]},
        { title:"Прозрачность", weight:20, desc:"Готовность обсуждать.",
          questions:[
            "Готовы ли обе стороны к полному раскрытию?",
            "Есть ли скрытые обязательства?",
            "Есть ли конфликт интересов у родственников?"
          ]},
        { title:"Совместимость", weight:10, desc:"Цели и ожидания.",
          questions:[
            "Совпадают ли ожидания сторон по разделу?",
            "Есть ли подтверждённые договорённости?",
            "Есть ли противоречия между словами и намерениями?"
          ]},
        { title:"Качество данных", weight:10, desc:"Подтверждённость.",
          questions:[
            "Какие факты подтверждены документально?",
            "Что осталось непроверенным?",
            "Что требует уточнения у юриста?"
          ]}
      ]},

    { id:"C3", group:"C. Личные и семейные решения",
      title:"Совместная покупка (недвижимость, авто)",
      desc:"Кто платит, как оформляется, что при разрыве.",
      hasThirdParty:true,
      blocks:[
        { title:"Юридическая безопасность", weight:30, desc:"Оформление, права, риски.",
          questions:[
            "Как оформляется собственность (доли, титул)?",
            "Прописаны ли условия раздела при разрыве?",
            "Есть ли обременения или судебные дела?",
            "Указаны ли все существенные условия?"
          ]},
        { title:"Финансовая прозрачность", weight:30, desc:"Вклады, платежи, издержки.",
          questions:[
            "Кто и сколько вносит? Подтверждено ли документально?",
            "Известны ли все скрытые издержки?",
            "Есть ли обеспечение обязательств?",
            "Как оформляются платежи по кредиту?"
          ]},
        { title:"Прозрачность", weight:20, desc:"Готовность обсуждать.",
          questions:[
            "Готовы ли стороны к полному раскрытию финансов?",
            "Есть ли скрытые обязательства?",
            "Есть ли подтверждённые договорённости?"
          ]},
        { title:"Качество данных", weight:20, desc:"Подтверждённость.",
          questions:[
            "Какие факты подтверждены документально?",
            "Есть ли противоречия?",
            "Что осталось непроверенным?"
          ]}
      ]},

    { id:"C4", group:"C. Личные и семейные решения",
      title:"Помощь родственнику деньгами",
      desc:"Кредит, дарение, вложение в бизнес родни.",
      hasThirdParty:true,
      blocks:[
        { title:"Финансовая прозрачность", weight:30, desc:"Сумма, источник, возврат.",
          questions:[
            "Подтверждён ли источник средств?",
            "Известны ли сроки и условия возврата?",
            "Есть ли подтверждённые обязательства родственника?",
            "Есть ли обеспечение (залог, поручительство)?"
          ]},
        { title:"Юридическая безопасность", weight:25, desc:"Оформление, права.",
          questions:[
            "Как оформляется передача денег (договор, расписка)?",
            "Учтены ли налоговые последствия?",
            "Есть ли судебные дела у родственника?",
            "Прописаны ли условия при неисполнении?"
          ]},
        { title:"Прозрачность", weight:20, desc:"Готовность обсуждать.",
          questions:[
            "Готов ли родственник к полному раскрытию?",
            "Есть ли скрытые обязательства?",
            "Есть ли подтверждённые договорённости?"
          ]},
        { title:"Совместимость", weight:15, desc:"Цели и ожидания.",
          questions:[
            "Совпадают ли ожидания по срокам и условиям?",
            "Есть ли подтверждённые договорённости?",
            "Есть ли противоречия между словами и намерениями?"
          ]},
        { title:"Качество данных", weight:10, desc:"Подтверждённость.",
          questions:[
            "Какие факты подтверждены документально?",
            "Что осталось непроверенным?",
            "Что требует уточнения?"
          ]}
      ]},

    { id:"C5", group:"C. Личные и семейные решения",
      title:"Наследство и завещание",
      desc:"Подготовка, распределение, споры.",
      hasThirdParty:true,
      blocks:[
        { title:"Юридическая безопасность", weight:40, desc:"Права, обязательства, оформление.",
          questions:[
            "Подтверждены ли права на всё имущество?",
            "Учтены ли обязательные доли наследников?",
            "Прописаны ли условия распределения?",
            "Есть ли судебные дела или споры?"
          ]},
        { title:"Прозрачность", weight:25, desc:"Готовность обсуждать.",
          questions:[
            "Готовы ли наследники к обсуждению?",
            "Есть ли скрытые активы или обязательства?",
            "Есть ли подтверждённые договорённости?"
          ]},
        { title:"Финансовая прозрачность", weight:20, desc:"Активы, долги, налоги.",
          questions:[
            "Известны ли все активы и долги?",
            "Подтверждены ли они документально?",
            "Учтены ли налоговые последствия?"
          ]},
        { title:"Качество данных", weight:15, desc:"Подтверждённость.",
          questions:[
            "Какие факты подтверждены документально?",
            "Есть ли противоречия между заявлениями?",
            "Что осталось непроверенным?"
          ]}
      ]},

    { id:"C6", group:"C. Личные и семейные решения",
      title:"Личный финансовый план пары",
      desc:"Общие цели, накопления, инвестиции.",
      hasThirdParty:true,
      blocks:[
        { title:"Финансовая траектория", weight:35, desc:"Доходы, динамика, стабильность.",
          questions:[
            "Подтверждены ли доходы обеих сторон документально?",
            "Как менялись доходы за 3 года?",
            "Есть ли подтверждённые данные о стабильности?"
          ]},
        { title:"Совместимость целей", weight:25, desc:"Общие цели и ожидания.",
          questions:[
            "Совпадают ли цели по уровню жизни, срокам, приоритетам?",
            "Есть ли подтверждённые договорённости?",
            "Есть ли противоречия между словами и действиями?"
          ]},
        { title:"Прозрачность", weight:20, desc:"Готовность обсуждать.",
          questions:[
            "Готовы ли обе стороны к полному раскрытию?",
            "Есть ли скрытые обязательства?",
            "Есть ли конфликт интересов?"
          ]},
        { title:"Финансовая дисциплина", weight:10, desc:"Долги, накопления, привычки.",
          questions:[
            "Есть ли кредиты, долги, обязательства?",
            "Есть ли накопления или подушка?",
            "Есть ли подтверждённые данные о привычках?"
          ]},
        { title:"Качество данных", weight:10, desc:"Подтверждённость.",
          questions:[
            "Какие факты подтверждены документально?",
            "Что осталось непроверенным?",
            "Что требует уточнения?"
          ]}
      ]},

    // ---------- ГРУППА D ----------
    { id:"D1", group:"D. Личные решения (без третьих лиц)",
      title:"Крупная личная покупка",
      desc:"Авто, недвижимость, обучение, техника.",
      hasThirdParty:false,
      blocks:[
        { title:"Финансовая прозрачность", weight:40, desc:"Источник, сумма, издержки.",
          questions:[
            "Подтверждён ли источник средств?",
            "Известны ли все скрытые издержки (страховка, обслуживание, налоги)?",
            "Есть ли обеспечение или кредит?",
            "Известна ли реальная стоимость владения?"
          ]},
        { title:"Юридическая безопасность", weight:20, desc:"Оформление, права.",
          questions:[
            "Подтверждены ли права продавца?",
            "Есть ли обременения или судебные дела?",
            "Прописаны ли условия сделки и расторжения?"
          ]},
        { title:"Предсказуемость", weight:20, desc:"Сроки, условия.",
          questions:[
            "Сформулированы ли сроки и контрольные точки?",
            "Есть ли протокол на случай отклонений?",
            "Подтверждён ли опыт продавца?"
          ]},
        { title:"Качество данных", weight:20, desc:"Подтверждённость.",
          questions:[
            "Какие факты подтверждены документально?",
            "Есть ли противоречия?",
            "Что осталось непроверенным?"
          ]}
      ]},

    { id:"D2", group:"D. Личные решения (без третьих лиц)",
      title:"Смена работы / карьеры",
      desc:"Уход, переход, запуск своего.",
      hasThirdParty:false,
      blocks:[
        { title:"Финансовая прозрачность", weight:30, desc:"Доход, расходы, подушка.",
          questions:[
            "Подтверждён ли новый источник дохода?",
            "Есть ли финансовая подушка на переходный период?",
            "Известны ли все издержки перехода?",
            "Учтены ли налоговые последствия?"
          ]},
        { title:"Предсказуемость", weight:25, desc:"План, KPI, сроки.",
          questions:[
            "Сформулированы ли цели и KPI на новый период?",
            "Есть ли план на случай неудачи?",
            "Подтверждён ли опыт в новой роли?"
          ]},
        { title:"Внешние риски", weight:20, desc:"Рынок, регуляторика.",
          questions:[
            "Учтены ли рыночные риски?",
            "Есть ли зависимость от одного работодателя/клиента?",
            "Есть ли резервный план?"
          ]},
        { title:"Качество данных", weight:25, desc:"Подтверждённость.",
          questions:[
            "Какие факты подтверждены документально?",
            "Есть ли противоречия?",
            "Что осталось непроверенным?"
          ]}
      ]},

    { id:"D3", group:"D. Личные решения (без третьих лиц)",
      title:"Запуск личного проекта",
      desc:"Стартап, блог, подработка, своё дело.",
      hasThirdParty:false,
      blocks:[
        { title:"Финансовая прозрачность", weight:30, desc:"Бюджет, источник, сроки.",
          questions:[
            "Подтверждён ли бюджет проекта?",
            "Известны ли все издержки на старте?",
            "Есть ли подушка на период без дохода?",
            "Учтены ли налоговые последствия?"
          ]},
        { title:"Предсказуемость", weight:25, desc:"Цели, KPI, этапы.",
          questions:[
            "Сформулированы ли KPI и контрольные точки?",
            "Есть ли протокол на случай отклонений?",
            "Подтверждён ли опыт в этой сфере?"
          ]},
        { title:"Внешние риски", weight:20, desc:"Рынок, регуляторика, конкуренты.",
          questions:[
            "Учтены ли рыночные риски?",
            "Есть ли зависимость от одной платформы/канала?",
            "Есть ли резервный план?"
          ]},
        { title:"Качество данных", weight:25, desc:"Подтверждённость.",
          questions:[
            "Какие факты подтверждены документально?",
            "Есть ли противоречия?",
            "Что осталось непроверенным?"
          ]}
      ]}
  ];

  // ============================================================
  // ДВИЖОК
  // ============================================================
  var app = document.getElementById("decisionReviewApp");
  var form = app.querySelector("#reviewForm");
  var scenarioGroups = app.querySelector("#scenarioGroups");
  var blocksContainer = app.querySelector("#blocksContainer");
  var screenChoose = app.querySelector("#screen-choose");
  var screenForm = app.querySelector("#screen-form");
  var scenarioTitleBar = app.querySelector("#scenarioTitleBar");
  var filledCountEl = app.querySelector("#filledCount");
  var totalCountEl = app.querySelector("#totalCount");
  var progressFill = app.querySelector("#progressFill");
  var statusPill = app.querySelector("#statusPill");
  var completenessVal = app.querySelector("#completenessVal");
  var completenessHint = app.querySelector("#completenessHint");
  var reliabilityVal = app.querySelector("#reliabilityVal");
  var reliabilityHint = app.querySelector("#reliabilityHint");
  var submitBtn = app.querySelector("#submitBtn");
  var backBtn = app.querySelector("#backBtn");
  var resetBtn = app.querySelector("#resetBtn");
  var consentBox = app.querySelector("#consentBox");
  var anonBox = app.querySelector("#anonBox");
  var anonWarning = app.querySelector("#anonWarning");
  var anonConsentWrap = app.querySelector("#anonConsentWrap");
  var projectName = app.querySelector("#projectName");
  var clientName = app.querySelector("#clientName");
  var clientEmail = app.querySelector("#clientEmail");
  var hpField = app.querySelector("#hp_field");
  var reportBox = app.querySelector("#reportBox");
  var yearEl = app.querySelector("#year");

  yearEl.textContent = new Date().getFullYear();

  var currentScenario = null;
  var allAreas = [];
  var allSources = [];

  function renderCards() {
    var groups = {};
    SCENARIOS.forEach(function(s){
      if (!groups[s.group]) groups[s.group] = [];
      groups[s.group].push(s);
    });
    var html = "";
    Object.keys(groups).forEach(function(g){
      html += '&lt;div class="group-title"&gt;' + g + '&lt;/div&gt;';
      html += '&lt;div class="cards"&gt;';
      groups[g].forEach(function(s){
        html += '&lt;div class="card" data-id="' + s.id + '"&gt;'
             +  '&lt;h3&gt;' + s.title + '&lt;/h3&gt;'
             +  '&lt;p&gt;' + s.desc + '&lt;/p&gt;'
             +  '&lt;div class="meta"&gt;'
             +  '&lt;span class="badge"&gt;' + s.id + '&lt;/span&gt;'
             +  (s.hasThirdParty ? '&lt;span class="badge"&gt;третье лицо&lt;/span&gt;' : '')
             +  '&lt;/div&gt;'
             +  '&lt;/div&gt;';
      });
      html += '&lt;/div&gt;';
    });
    scenarioGroups.innerHTML = html;

    scenarioGroups.querySelectorAll(".card").forEach(function(card){
      card.addEventListener("click", function(){
        var id = card.getAttribute("data-id");
        var scenario = SCENARIOS.filter(function(s){ return s.id === id; })[0];
        if (scenario) openScenario(scenario);
      });
    });
  }

  function openScenario(scenario) {
    currentScenario = scenario;
    scenarioTitleBar.textContent = scenario.title;
    blocksContainer.innerHTML = "";

    scenario.blocks.forEach(function(block, bi){
      var sec = document.createElement("section");
      sec.className = "block";
      sec.setAttribute("data-weight", block.weight);

      var html = '&lt;div class="block-head"&gt;'
               + '&lt;h2&gt;' + block.title + '&lt;/h2&gt;'
               + '&lt;span class="weight"&gt;Вес: ' + block.weight + '%&lt;/span&gt;'
               + '&lt;/div&gt;'
               + '&lt;p class="block-desc"&gt;' + block.desc + '&lt;/p&gt;';

      block.questions.forEach(function(q, qi){
        var qnum = (bi+1) + "." + (qi+1);
        html += '&lt;div class="q"&gt;'
             +  '&lt;label class="q-label"&gt;&lt;span class="num"&gt;' + qnum + '&lt;/span&gt;' + q + '&lt;/label&gt;'
             +  '&lt;div class="q-fields"&gt;'
             +  '&lt;textarea data-q="' + scenario.id + '-' + qnum + '" placeholder="Опишите факты..."&gt;&lt;/textarea&gt;'
             +  '&lt;select class="source" data-q="' + scenario.id + '-' + qnum + '"&gt;'
             +  '&lt;option value=""&gt;— источник —&lt;/option&gt;'
             +  '&lt;option value="doc"&gt;Документ&lt;/option&gt;'
             +  '&lt;option value="open"&gt;Открытые данные&lt;/option&gt;'
             +  '&lt;option value="verbal"&gt;Устное заявление&lt;/option&gt;'
             +  '&lt;option value="guess"&gt;Предположение&lt;/option&gt;'
             +  '&lt;option value="none"&gt;Нет данных&lt;/option&gt;'
             +  '&lt;/select&gt;'
             +  '&lt;/div&gt;'
             +  '&lt;/div&gt;';
      });

      sec.innerHTML = html;
      blocksContainer.appendChild(sec);
    });

    allAreas = Array.prototype.slice.call(blocksContainer.querySelectorAll("textarea[data-q]"));
    allSources = Array.prototype.slice.call(blocksContainer.querySelectorAll("select.source"));
    totalCountEl.textContent = allAreas.length;

    if (scenario.hasThirdParty) {
      anonWarning.style.display = "block";
      anonConsentWrap.style.display = "flex";
    } else {
      anonWarning.style.display = "none";
      anonConsentWrap.style.display = "none";
      anonBox.checked = false;
    }

    screenChoose.classList.remove("active");
    screenForm.classList.add("active");
    reportBox.style.display = "none";

    allAreas.forEach(function(a){ a.addEventListener("input", updateUI); });
    allSources.forEach(function(s){
      s.addEventListener("change", function(){
        applySourceColor(s);
        updateUI();
      });
    });

    updateUI();
    window.scrollTo({ top: 0, behavior: "smooth" });
  }

  function applySourceColor(select) {
    select.classList.remove("source-doc","source-open","source-verbal","source-guess");
    if (select.value === "doc") select.classList.add("source-doc");
    else if (select.value === "open") select.classList.add("source-open");
    else if (select.value === "verbal") select.classList.add("source-verbal");
    else if (select.value === "guess") select.classList.add("source-guess");
  }

  function computeIndices() {
    if (!currentScenario) return { completeness:0, reliability:0, totalFilled:0, totalQuestions:0 };
    var totalWeight = 0, weightedFilled = 0, weightedReliability = 0, totalFilled = 0;
    var blocks = Array.prototype.slice.call(blocksContainer.querySelectorAll("section.block"));

    blocks.forEach(function(block){
      var weight = parseFloat(block.getAttribute("data-weight")) || 0;
      totalWeight += weight;
      var areas = Array.prototype.slice.call(block.querySelectorAll("textarea[data-q]"));
      var srcs = Array.prototype.slice.call(block.querySelectorAll("select.source"));
      var filled = 0, relSum = 0;

      areas.forEach(function(area, i){
        var v = (area.value || "").trim();
        var s = srcs[i] ? srcs[i].value : "";
        if (v.length &gt; 0) { filled++; totalFilled++; }
        if (v.length &gt; 0 &amp;&amp; s) relSum += (SOURCE_SCORE[s] || 0);
      });

      var n = areas.length || 1;
      weightedFilled += (filled/n) * weight;
      weightedReliability += (relSum/n) * weight;
    });

    var c = totalWeight &gt; 0 ? (weightedFilled/totalWeight) * 100 : 0;
    var r = totalWeight &gt; 0 ? (weightedReliability/totalWeight) * 100 : 0;
    return {
      completeness: Math.round(c),
      reliability: Math.round(r),
      totalFilled: totalFilled,
      totalQuestions: allAreas.length
    };
  }

  function updateUI() {
    var idx = computeIndices();
    filledCountEl.textContent = idx.totalFilled;
    progressFill.style.width = idx.completeness + "%";
    completenessVal.textContent = idx.completeness + "%";
    reliabilityVal.textContent = idx.reliability + "%";

    if (idx.completeness &gt;= 80) completenessHint.textContent = "Высокая полнота данных";
    else if (idx.completeness &gt;= 60) completenessHint.textContent = "Средняя полнота — возможен полный аудит";
    else completenessHint.textContent = "Низкая полнота — экспресс-диагностика";

    if (idx.reliability &gt;= 70) reliabilityHint.textContent = "Преимущественно документы";
    else if (idx.reliability &gt;= 40) reliabilityHint.textContent = "Смешанные источники";
    else reliabilityHint.textContent = "Много предположений";

    statusPill.classList.remove("ok","warn","bad");
    if (idx.completeness &gt;= 60) { statusPill.textContent = "Полный аудит"; statusPill.classList.add("ok"); }
    else { statusPill.textContent = "Экспресс-диагностика"; statusPill.classList.add("bad"); }

    var consentOk = consentBox.checked;
    var anonOk = !currentScenario || !currentScenario.hasThirdParty || anonBox.checked;
    var contactOk = projectName.value.trim().length &gt; 0
                 &amp;&amp; clientName.value.trim().length &gt; 0
                 &amp;&amp; /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(clientEmail.value.trim());

    submitBtn.disabled = !(consentOk &amp;&amp; anonOk &amp;&amp; contactOk &amp;&amp; idx.totalFilled &gt; 0);
  }

  function buildProtocolText() {
    var idx = computeIndices();
    var now = new Date();
    var mode = idx.completeness &gt;= 60 ? "Полный аудит" : "Экспресс-диагностика пробелов";
    var lines = [];
    lines.push("DECISION REVIEW — ПРОТОКОЛ");
    lines.push("=================================");
    lines.push("Дата: " + now.toLocaleString("ru-RU"));
    lines.push("Сценарий: " + currentScenario.title + " (" + currentScenario.id + ")");
    lines.push("Проект: " + projectName.value.trim());
    lines.push("Клиент: " + clientName.value.trim());
    lines.push("Email: " + clientEmail.value.trim());
    lines.push("");
    lines.push("ИНДЕКС ПОЛНОТЫ: " + idx.completeness + "%");
    lines.push("ИНДЕКС ДОСТОВЕРНОСТИ: " + idx.reliability + "%");
    lines.push("РЕЖИМ: " + mode);
    lines.push("");
    lines.push("=================================");

    var blocks = Array.prototype.slice.call(blocksContainer.querySelectorAll("section.block"));
    blocks.forEach(function(block, bi){
      var head = block.querySelector(".block-head h2").textContent.trim();
      var weight = block.getAttribute("data-weight");
      lines.push("");
      lines.push(head + " (вес " + weight + "%)");
      lines.push("---------------------------------");
      var areas = Array.prototype.slice.call(block.querySelectorAll("textarea[data-q]"));
      var srcs = Array.prototype.slice.call(block.querySelectorAll("select.source"));
      areas.forEach(function(a, i){
        var qnum = a.getAttribute("data-q").split("-").pop();
        var answer = (a.value || "").trim() || "— не заполнено —";
        var s = srcs[i] ? srcs[i].value : "";
        var sLabel = s ? SOURCE_LABEL[s] : "— не указан —";
        lines.push("");
        lines.push(qnum + " " + a.closest(".q").querySelector(".q-label").textContent.replace(/^\s*\S+\s*/, "").trim());
        lines.push("Ответ: " + answer);
        lines.push("Источник: " + sLabel);
      });
    });

    lines.push("");
    lines.push("=================================");
    lines.push("ДИСКЛЕЙМЕР");
    lines.push("Данный протокол является исключительно аналитической обработкой");
    lines.push("и структурированием фактов, предоставленных Заказчиком.");
    lines.push("Исполнитель не осуществляет прогнозирование результатов сделки,");
    lines.push("не даёт инвестиционных, юридических или управленческих рекомендаций.");
    lines.push("Ответственность за достоверность, полноту и законность получения");
    lines.push("исходных данных лежит исключительно на Заказчике.");
    lines.push("");
    lines.push("Отправьте этот файл на: " + RECIPIENT_EMAIL);
    return lines.join("\n");
  }

  function computeLights() {
    var result = [];
    var blocks = Array.prototype.slice.call(blocksContainer.querySelectorAll("section.block"));
    blocks.forEach(function(block){
      var title = block.querySelector(".block-head h2").textContent.trim();
      var weight = block.getAttribute("data-weight");
      var areas = Array.prototype.slice.call(block.querySelectorAll("textarea[data-q]"));
      var srcs = Array.prototype.slice.call(block.querySelectorAll("select.source"));
      var filled = 0, relSum = 0;
      areas.forEach(function(a,i){
        var v = (a.value||"").trim();
        var s = srcs[i] ? srcs[i].value : "";
        if (v) filled++;
        if (v &amp;&amp; s) relSum += (SOURCE_SCORE[s]||0);
      });
      var n = areas.length || 1;
      var fillRatio = filled/n;
      var relRatio = relSum/n;
      var color = "r";
      if (fillRatio &gt;= 0.8 &amp;&amp; relRatio &gt;= 0.6) color = "g";
      else if (fillRatio &gt;= 0.5 &amp;&amp; relRatio &gt;= 0.3) color = "y";
      result.push({ title: title, weight: weight, color: color,
        filled: filled, total: areas.length });
    });
    return result;
  }

  function buildBlindSpots() {
    var out = [];
    var blocks = Array.prototype.slice.call(blocksContainer.querySelectorAll("section.block"));
    blocks.forEach(function(block){
      var title = block.querySelector(".block-head h2").textContent.trim();
      var areas = Array.prototype.slice.call(block.querySelectorAll("textarea[data-q]"));
      var srcs = Array.prototype.slice.call(block.querySelectorAll("select.source"));
      var missing = [];
      areas.forEach(function(a, i){
        var v = (a.value||"").trim();
        var s = srcs[i] ? srcs[i].value : "";
        if (!v || s === "none" || !s) {
          var qnum = a.getAttribute("data-q").split("-").pop();
          missing.push(qnum);
        }
      });
      if (missing.length) {
        out.push(title + ": отсутствуют данные по пунктам " + missing.join(", "));
      }
    });
    return out;
  }

  function buildContradictions() {
    var out = [];
    var blocks = Array.prototype.slice.call(blocksContainer.querySelectorAll("section.block"));
    blocks.forEach(function(block){
      var title = block.querySelector(".block-head h2").textContent.trim();
      var areas = Array.prototype.slice.call(block.querySelectorAll("textarea[data-q]"));
      var srcs = Array.prototype.slice.call(block.querySelectorAll("select.source"));
      areas.forEach(function(a, i){
        var v = (a.value||"").trim().toLowerCase();
        var s = srcs[i] ? srcs[i].value : "";
        if (v &amp;&amp; s === "verbal" &amp;&amp; (v.indexOf("подтвержд") !== -1 || v.indexOf("документ") !== -1)) {
          var qnum = a.getAttribute("data-q").split("-").pop();
          out.push(title + " (п. " + qnum + "): факт заявлен как подтверждённый, но источник — устное заявление.");
        }
      });
    });
    return out;
  }

  function downloadFile(filename, text) {
    var blob = new Blob([text], { type:"text/plain;charset=utf-8" });
    var url = URL.createObjectURL(blob);
    var a = document.createElement("a");
    a.href = url; a.download = filename;
    document.body.appendChild(a); a.click(); document.body.removeChild(a);
    setTimeout(function(){ URL.revokeObjectURL(url); }, 2000);
  }

  function renderReport() {
    var idx = computeIndices();
    var mode = idx.completeness &gt;= 60 ? "Полный аудит" : "Экспресс-диагностика пробелов";
    var lights = computeLights();
    var blind = buildBlindSpots();
    var contra = buildContradictions();

    var html = '&lt;h2&gt;Предварительный отчёт&lt;/h2&gt;';
    html += '&lt;div class="row"&gt;&lt;span&gt;Сценарий&lt;/span&gt;&lt;strong&gt;' + currentScenario.title + '&lt;/strong&gt;&lt;/div&gt;';
    html += '&lt;div class="row"&gt;&lt;span&gt;Режим анализа&lt;/span&gt;&lt;strong&gt;' + mode + '&lt;/strong&gt;&lt;/div&gt;';
    html += '&lt;div class="row"&gt;&lt;span&gt;Индекс полноты&lt;/span&gt;&lt;strong&gt;' + idx.completeness + '%&lt;/strong&gt;&lt;/div&gt;';
    html += '&lt;div class="row"&gt;&lt;span&gt;Индекс достоверности&lt;/span&gt;&lt;strong&gt;' + idx.reliability + '%&lt;/strong&gt;&lt;/div&gt;';
    html += '&lt;div class="row"&gt;&lt;span&gt;Заполнено&lt;/span&gt;&lt;strong&gt;' + idx.totalFilled + ' / ' + idx.totalQuestions + '&lt;/strong&gt;&lt;/div&gt;';

    html += '&lt;h3&gt;Светофор по блокам&lt;/h3&gt;&lt;div class="lights"&gt;';
    lights.forEach(function(l){
      var dot = l.color === "g" ? "g" : l.color === "y" ? "y" : "r";
      html += '&lt;div class="light"&gt;&lt;span&gt;&lt;span class="dot ' + dot + '"&gt;&lt;/span&gt;' + l.title + ' (вес ' + l.weight + '%)&lt;/span&gt;'
           +  '&lt;span&gt;' + l.filled + ' / ' + l.total + '&lt;/span&gt;&lt;/div&gt;';
    });
    html += '&lt;/div&gt;';

    html += '&lt;h3&gt;Карта слепых зон&lt;/h3&gt;';
    if (blind.length) {
      html += '&lt;ul class="list"&gt;';
      blind.forEach(function(b){ html += '&lt;li&gt;' + b + '&lt;/li&gt;'; });
      html += '&lt;/ul&gt;';
    } else {
      html += '&lt;p class="hint"&gt;Критических пробелов не выявлено — все поля заполнены и имеют источник.&lt;/p&gt;';
    }

    html += '&lt;h3&gt;Выявленные противоречия&lt;/h3&gt;';
    if (contra.length) {
      html += '&lt;ul class="list"&gt;';
      contra.forEach(function(c){ html += '&lt;li&gt;' + c + '&lt;/li&gt;'; });
      html += '&lt;/ul&gt;';
    } else {
      html += '&lt;p class="hint"&gt;Явных противоречий в предоставленных данных не выявлено.&lt;/p&gt;';
    }

    html += '&lt;div class="discl"&gt;'
         +  'Данный отчёт является исключительно аналитической обработкой и структурированием '
         +  'фактов, предоставленных Заказчиком. Исполнитель не осуществляет прогнозирование '
         +  'результатов, не даёт инвестиционных, юридических или управленческих рекомендаций. '
         +  'Ответственность за достоверность, полноту и законность получения исходных данных '
         +  'лежит исключительно на Заказчике. Отчёт не является офертой, советом или гарантией результата.'
         +  '&lt;/div&gt;';

    html += '&lt;p class="hint"&gt;Полный аналитический отчёт с рекомендациями по устранению пробелов '
         +  'будет направлен вам в течение 48 часов после получения протокола на '
         +  '&lt;strong&gt;' + RECIPIENT_EMAIL + '&lt;/strong&gt;.&lt;/p&gt;';

    reportBox.innerHTML = html;
    reportBox.style.display = "block";
  }

  form.addEventListener("submit", function(e){
    e.preventDefault();
    if (hpField.value.trim() !== "") return;
    if (Date.now() - START_TIME &lt; 8000) {
      alert("Пожалуйста, проверьте данные и попробуйте снова.");
      return;
    }

    var idx = computeIndices();
    var safe = (currentScenario.id + "_" + projectName.value.trim())
      .replace(/[^\wа-яА-Я0-9\-_]+/g, "_").slice(0, 60) || "protocol";
    var filename = "decision_review_" + safe + "_" + Date.now() + ".txt";
    var text = buildProtocolText();

    downloadFile(filename, text);
    renderReport();
    reportBox.scrollIntoView({ behavior: "smooth", block: "start" });
  });

  backBtn.addEventListener("click", function(){
    screenForm.classList.remove("active");
    screenChoose.classList.add("active");
    reportBox.style.display = "none";
    window.scrollTo({ top: 0, behavior: "smooth" });
  });

  resetBtn.addEventListener("click", function(){
    if (!confirm("Очистить все поля?")) return;
    allAreas.forEach(function(a){ a.value = ""; });
    allSources.forEach(function(s){ s.value = ""; applySourceColor(s); });
    projectName.value = ""; clientName.value = ""; clientEmail.value = "";
    consentBox.checked = false; anonBox.checked = false;
    reportBox.style.display = "none";
    updateUI();
  });

  [projectName, clientName, clientEmail, consentBox, anonBox].forEach(function(el){
    if (el) el.addEventListener("input", updateUI);
    if (el) el.addEventListener("change", updateUI);
  });

  renderCards();
  updateUI();
})();
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</subtitle>
  <updated>2026-09-22T08:19:14Z</updated>
  <logo>https://pandoraburo.ru/ssl/u/pic/ef/f66878aa6d11f1abb9f7ceed6face4/-/image%20%284%29.jpg</logo>
  <author>
    <name>1592962</name>
    <uri>https://www.pandoraburo.ru/</uri>
  </author>
</feed>
