:root{
  --тёмный:#3C3C3B; --оранжевый:#E8531A; --фон:#f6f6f4; --белый:#fff;
  --линия:#e2e2de; --тихий:#7a7a76; --блок:#c0392b; --внимание:#b8860b; --ок:#2e7d32;
}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 -apple-system,"Segoe UI",Roboto,Arial,sans-serif;
     background:var(--фон);color:var(--тёмный)}
header{background:var(--тёмный);color:#fff;display:flex;align-items:center;
       justify-content:space-between;padding:12px 24px;flex-wrap:wrap;gap:12px}
.лого{color:#fff;text-decoration:none;font-weight:700;font-size:17px;display:flex;
      align-items:center;gap:10px}
.вс{background:var(--оранжевый);color:#fff;border-radius:4px;padding:3px 8px;font-weight:800}
nav a{color:#d8d8d4;text-decoration:none;margin-left:18px;font-size:14px}
nav a:hover{color:#fff}
main{max-width:1180px;margin:0 auto;padding:20px}
footer{max-width:1180px;margin:0 auto;padding:18px 20px 40px;color:var(--тихий);font-size:13px}
.карточка{background:var(--белый);border:1px solid var(--линия);border-radius:8px;
          padding:18px 20px;margin-bottom:18px}
.карточка.узкая{max-width:420px;margin:60px auto}
h1{font-size:21px;margin:0 0 10px}
h2{font-size:17px;margin:0 0 12px}
label{display:block;margin-bottom:12px;font-size:13px;color:var(--тихий)}
input,select{display:block;width:100%;padding:8px 10px;border:1px solid var(--линия);
             border-radius:5px;font:inherit;color:var(--тёмный);background:#fff;margin-top:4px}
input:focus,select:focus{outline:2px solid var(--оранжевый);outline-offset:-1px}
.ряд{display:flex;gap:14px;flex-wrap:wrap}
.ряд>label{flex:1;min-width:170px}
.выключатель{align-items:center}
.галка{display:flex;align-items:center;gap:8px;color:var(--тёмный);font-size:14px;margin-top:14px}
.галка input{width:auto;margin:0}
button{background:var(--тёмный);color:#fff;border:0;border-radius:5px;padding:10px 18px;
       font:inherit;cursor:pointer}
button.главная{background:var(--оранжевый);font-weight:600}
button:disabled{background:#bdbdb9;cursor:not-allowed}
.кнопки{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
table{width:100%;border-collapse:collapse;font-size:14px}
.список td{padding:10px 8px;border-top:1px solid var(--линия);vertical-align:top}
.список tr:first-child td{border-top:0}
.ном{color:var(--тихий);width:52px}
a{color:#1a5fb4}
.тихо{color:var(--тихий);font-size:13px}
.метка{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;
       background:#eee;white-space:nowrap}
.м-черновик{background:#fff3cd}
.м-утверждена{background:#d7f0d8}
.м-ошибка{background:#fadbd8}
.м-нужны-данные{background:#e4ecf7}
.шапка-задачи{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.позиции{font-size:13px}
.позиции th{text-align:left;color:var(--тихий);font-weight:500;padding:6px 4px;
            border-bottom:1px solid var(--линия)}
.позиции td{padding:3px 4px;border-bottom:1px solid #f0f0ec}
.позиции input{margin:0;padding:5px 7px}
.позиции input[type=checkbox]{width:auto}
.узко{width:80px}.число{width:110px;text-align:right}.широко{width:100%;min-width:260px}
.в-раздел{background:#faf8f4}
.в-раздел .широко{font-weight:700}
.в-материал td:first-child{border-left:3px solid var(--оранжевый)}
.находки td{padding:8px;border-top:1px solid var(--линия);vertical-align:top}
.ур{width:88px;text-transform:uppercase;font-size:11px;letter-spacing:.03em}
.где{width:190px;color:var(--тихий)}
.у-блок .ур{color:var(--блок);font-weight:700}
.у-внимание .ур{color:var(--внимание);font-weight:700}
.у-ок .ур{color:var(--ок)}
.было{color:var(--тихий);font-size:12px;margin-top:4px}
.блок{background:#fadbd8;border-left:3px solid var(--блок);padding:10px 12px;border-radius:4px}
.итог{padding:2px 10px;border-radius:4px;font-size:14px}
.и-БЛОК{background:#fadbd8;color:var(--блок)}
.и-ВНИМАНИЕ{background:#fdf3d6;color:var(--внимание)}
.и-ЧИСТО{background:#d7f0d8;color:var(--ок)}
.суммы{max-width:520px;margin-bottom:14px}
.суммы td{padding:6px 8px;border-bottom:1px solid var(--линия)}
.суммы .ч{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.суммы .жирно td{font-weight:700}
.файлы-список{margin:0;padding-left:18px}
.журнал td{padding:6px 8px;border-top:1px solid var(--линия);vertical-align:top}
.журнал pre{margin:0;font:inherit;white-space:pre-wrap}
.файлы input{padding:14px;border-style:dashed;background:#fbfbf9}

/* --- кабинет: реестры, объекты, комплекты --- */
.кто{margin-left:22px;opacity:.75}
.сообщение{background:#fdf3d6;border-left:3px solid var(--оранжевый);padding:10px 14px;
           border-radius:5px;margin-bottom:16px;font-size:14px}
.список th{text-align:left;color:var(--тихий);font-weight:500;font-size:12px;padding:6px 8px;
           border-bottom:1px solid var(--линия);text-transform:uppercase;letter-spacing:.04em}
.поиск{align-items:flex-end;margin-bottom:14px}
.поиск button{margin-bottom:12px}
button.мелкая{padding:4px 10px;font-size:12px;background:#8a8a86}
.встроенная{display:flex;gap:6px;align-items:center}
.встроенная input{margin:0;padding:4px 8px;font-size:12px;width:130px}
details summary{cursor:pointer;color:var(--тихий);font-size:13px;margin-bottom:10px}
.плитки{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.плитка{background:#faf9f7;border:1px solid var(--линия);border-radius:6px;padding:10px 16px;min-width:130px}
.плитка span{display:block;color:var(--тихий);font-size:12px}
.плитка b{font-size:19px;font-variant-numeric:tabular-nums}
.плитка.тревога{background:#fdf3d6;border-color:#e6d08a}
.строка-вопрос td{background:#fffaf0}
.вопросик{color:var(--внимание);font-size:12px;margin-top:3px;max-width:420px}
.средне{width:150px}
.кл-C{color:var(--блок);font-weight:700}
.кл-A{color:var(--ок)}
h3{font-size:14px;margin:14px 0 6px}

/* --- ход работы, вопросы --- */
.этапы td{padding:8px;border-top:1px solid var(--линия);vertical-align:middle}
.значок{width:78px;font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.этап-готов .значок{color:var(--ок);font-weight:700}
.этап-идёт .значок{color:var(--оранжевый);font-weight:700}
.этап-ждёт .значок{color:var(--тихий)}
.этап-идёт td{background:#fff8f2}
.вопросы td{padding:8px;border-top:1px solid var(--линия);vertical-align:top}
.вопросы .номер{width:28px;color:var(--тихий)}
.вопросы input{margin:0;min-width:230px}
.вопросы tr.отвечено td{background:#f4faf4}
textarea{display:block;width:100%;padding:8px 10px;border:1px solid var(--линия);
         border-radius:5px;font:inherit;color:var(--тёмный);margin-top:4px;resize:vertical}
textarea:focus{outline:2px solid var(--оранжевый);outline-offset:-1px}

/* ---------- запрос доступа, политики, cookie ---------- */
textarea{display:block;width:100%;padding:8px 10px;border:1px solid var(--линия);
         border-radius:5px;font:inherit;color:var(--тёмный);background:#fff;
         margin-top:4px;resize:vertical}
textarea:focus{outline:2px solid var(--оранжевый);outline-offset:-1px}

/* Ссылка, которая должна выглядеть кнопкой: «Запросить пароль» на входе. */
.кнопка{display:inline-block;background:var(--тёмный);color:#fff;text-decoration:none;
        border:0;border-radius:5px;padding:10px 18px;font:inherit;cursor:pointer}
.кнопка.главная{background:var(--оранжевый);font-weight:600}
.кнопка.вторая,button.вторая{background:#fff;color:var(--тёмный);
        border:1px solid var(--линия)}
.кнопка.вторая:hover,button.вторая:hover{border-color:var(--тёмный)}

/* Галка согласия: текст в две-три строки, поэтому выравниваем по верху,
   иначе квадратик уезжает в середину абзаца. */
.галка{align-items:flex-start}
.галка input{margin-top:3px;flex:0 0 auto}
.галка a{color:var(--тёмный)}

footer a{color:var(--тихий)}
footer a:hover{color:var(--тёмный)}

/* Полоса согласия на cookie. Прижата к низу окна и не перекрывает форму:
   у main снизу остаётся запас, чтобы кнопка «Войти» не пряталась под ней. */
.куки{position:fixed;left:0;right:0;bottom:0;z-index:50;
      background:var(--белый);border-top:1px solid var(--линия);
      box-shadow:0 -2px 12px rgba(0,0,0,.07);
      padding:14px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;
      justify-content:center}
.куки p{margin:0;font-size:13px;color:var(--тихий);max-width:760px}
.куки a{color:var(--тёмный)}
body:has(.куки) main{padding-bottom:120px}

/* Страницы политик: узкая колонка, читаемые интервалы. */
.карточка.текст{max-width:820px;margin:24px auto}
.текст h2{font-size:16px;margin:22px 0 8px}
.текст p{margin:0 0 10px}
.текст code{background:var(--фон);border:1px solid var(--линия);border-radius:3px;
            padding:1px 5px;font-size:13px}
.текст table{margin:10px 0 16px}

/* Таблица запросов доступа и таблицы в политиках. */
.реестр th{text-align:left;color:var(--тихий);font-weight:500;padding:8px;
           border-bottom:1px solid var(--линия);vertical-align:top}
.реестр td{padding:8px;border-top:1px solid var(--линия);vertical-align:top}
.реестр tr.закрыт td{color:var(--тихий)}
.реестр form{margin:0}

/* Кнопки профилей сметы: стоят отдельной строкой над обычными действиями,
   чтобы «Смета для РП» не смешивалась с «Утвердить». */
.кнопки.профили{margin-top:4px;margin-bottom:2px}
.кнопки.профили .кнопка{display:inline-flex;align-items:baseline;gap:8px}
.кнопки.профили .тихо{color:#9a9a95}
