/* ===== Вагрант.Тендер: стиль консоли =====
   Цвета — брендбук «Вагрант.Тендер V7» (стр. «Цвет и шрифт»): Vagrant Navy #150081, White #FFFFFF, Ink #222222,
   Gold #C9A227 (только короткая линия-акцент), Lilac mist #F4F2FA (подложки). Светлый navy #2A14A0 брендбуком запрещён — не используется.
   Шрифт — Onest (как на vagrant.ru; лицензия OFL, файлы лежат в fonts/, работает офлайн). Скругления 10px — как на vagrant.ru. */
@font-face { font-family:"Onest"; src:url("fonts/Onest-Regular.woff2") format("woff2"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Onest"; src:url("fonts/Onest-Medium.woff2") format("woff2"); font-weight:500; font-style:normal; font-display:swap; }
@font-face { font-family:"Onest"; src:url("fonts/Onest-SemiBold.woff2") format("woff2"); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:"Onest"; src:url("fonts/Onest-Bold.woff2") format("woff2"); font-weight:700; font-style:normal; font-display:swap; }
:root { --navy:#150081; --navy-dark:#0f0061; --gold:#C9A227; --ink:#222222; --mist:#F4F2FA;
        --bg:#F4F2FA; --fg:#222222; --muted:#6a6780; --line:#e1ddf0; --accent:#150081; --accent2:#150081;
        --ok:#1a7f4b; --warn:#9c5700; --bad:#b42318; --card:#fff; --chip:#F4F2FA; --over:#fff4cc; --r:10px; }
* { box-sizing: border-box; }
[hidden] { display:none !important; }
body { margin:0; font:15px/1.5 "Onest", "Segoe UI", Roboto, Arial, sans-serif; background:var(--bg); color:var(--fg); }
.loading { padding:40px; text-align:center; color:var(--muted); }
main { padding:24px 24px 70px; max-width:1180px; margin:0 auto; }
h2 { margin:0 0 14px; font-size:21px; font-weight:600; color:var(--navy); }
h3 { margin:18px 0 8px; font-size:16px; font-weight:600; }
.card { background:var(--card); border:1px solid var(--line); border-radius:var(--r); padding:18px 20px; margin-bottom:16px; }
.toolbar { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:12px; }
.toolbar .spacer { flex:1; }
button, .btn { font:inherit; padding:7px 14px; border:1px solid #cfc9e6; background:#fff; border-radius:var(--r); cursor:pointer; color:var(--fg); text-decoration:none; display:inline-block; }
button:hover:not(:disabled), .btn:hover { border-color:var(--navy); }
button:focus-visible, .btn:focus-visible, a:focus-visible, summary:focus-visible, .drop:focus-visible { outline:2px solid var(--navy); outline-offset:2px; }
a { color:var(--navy); }
button.primary, a.btn.primary { background:var(--navy); color:#fff; border-color:var(--navy); }
button.primary:hover:not(:disabled), a.btn.primary:hover { background:var(--navy-dark); border-color:var(--navy-dark); }
button.danger { color:var(--bad); border-color:#f0b8b3; }
button.small { padding:3px 8px; font-size:12.5px; }
button:disabled, input:disabled, select:disabled, textarea:disabled { opacity:.6; cursor:not-allowed; }
input[type=text], input[type=search], input[type=number], input[type=password], input[type=date], select, textarea {
  font:inherit; padding:6px 8px; border:1px solid var(--line); border-radius:8px; background:#fff; min-width:0; }
textarea { width:100%; min-height:70px; }
table { border-collapse:collapse; width:100%; background:#fff; }
th, td { border-bottom:1px solid #e8ecf2; padding:7px 9px; text-align:left; vertical-align:top; }
th { background:var(--mist); font-weight:600; font-size:13px; white-space:nowrap; }
th.sortable { cursor:pointer; user-select:none; }
th.sortable:hover { background:#e9e5f6; }
tr.deleted td { color:var(--muted); }
td.num, th.num { text-align:right; }
.badge { display:inline-block; padding:1px 8px; border-radius:10px; font-size:12px; background:var(--chip); }
.badge.ok { background:#d9f2e4; color:var(--ok); } .badge.off { background:#eee; color:var(--muted); }
.badge.err { background:#fbe0e0; color:#a12626; }
.badge.type { background:#ebe8f8; color:var(--navy); }
.msg { padding:9px 12px; border-radius:6px; margin:10px 0; }
.msg.err { background:#fde8e6; color:var(--bad); border:1px solid #f4b6b0; }
.msg.warn { background:#fff4e0; color:var(--warn); border:1px solid #f0d199; }
.msg.ok { background:#e2f5ea; color:var(--ok); border:1px solid #b3dec5; }
.msg ul { margin:4px 0 0 18px; padding:0; }
.login-box { max-width:360px; margin:12vh auto; }
.login-box label, .form-row label.l { display:block; margin:10px 0 3px; font-weight:600; font-size:13px; }
.login-box input { width:100%; }
fieldset.sec { min-width:0; border:1px solid var(--line); border-radius:var(--r); background:#fff; margin:0 0 14px; padding:6px 16px 14px; }
fieldset.sec legend { font-weight:600; font-size:15px; padding:0 8px; color:var(--navy); }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr)); gap:4px 22px; }
.grid > * { min-width:0; }
.grid > .hint { grid-column:1 / -1; }
.field { margin:8px 0; }
.field > label.l { display:block; font-weight:600; font-size:13px; margin-bottom:3px; }
.field input[type=text], .field input[type=number], .field select { width:100%; }
.field.inline { display:flex; align-items:center; gap:8px; } .field.inline label.l { margin:0; display:inline; font-weight:500; }
.tip { display:inline-block; width:15px; height:15px; line-height:15px; text-align:center; border-radius:50%; background:#e1ddf0; color:var(--navy); font-size:11px; cursor:help; margin-left:5px; font-weight:700; }
.hint { color:var(--muted); font-size:12.5px; margin:2px 0 4px; }
.chips { display:flex; flex-wrap:wrap; gap:6px; margin:4px 0; }
.chip { background:var(--chip); border:1px solid #d6d0ee; border-radius:14px; padding:2px 4px 2px 10px; display:inline-flex; gap:4px; align-items:center; }
.chip button { border:0; background:transparent; padding:0 6px; font-size:15px; line-height:1; color:#556; cursor:pointer; }
.ac { position:relative; }
.ac ul { position:absolute; z-index:20; left:0; right:0; top:100%; margin:0; padding:0; list-style:none; background:#fff; border:1px solid var(--line); border-radius:8px; box-shadow:0 4px 12px rgba(0,0,0,.12); max-height:260px; overflow:auto; }
.ac li { padding:6px 10px; cursor:pointer; } .ac li:hover, .ac li.sel { background:var(--mist); } .ac li small { color:var(--muted); margin-left:6px; }
/* строки списков: [поле ввода — тянется] [выбор — фикс. ширина] [× — фикс.] ; ошибка — отдельной строкой под ними */
.listed { display:flex; flex-direction:column; gap:5px; min-width:0; }
.listed .row { display:flex; flex-wrap:wrap; gap:6px; align-items:center; min-width:0; }
.listed .row input[type=text] { flex:1 1 180px; width:auto; min-width:120px; }
.listed .row select { flex:0 0 130px; width:130px; }
.listed .row button { flex:0 0 auto; }
.listed .row .err-inline { flex:1 0 100%; margin:0; }
.listed .row .err-inline:empty { display:none; }
.multi { display:flex; flex-wrap:wrap; gap:4px 16px; } .multi label { display:inline-flex; align-items:center; gap:5px; font-weight:400; }
.err-inline { color:var(--bad); font-size:12.5px; margin-top:2px; }
tr.over td { background:var(--over); }
input.w.over { background:var(--over); border-color:#e0b84a; }
.wctl.is-over .def { color:var(--warn); }
.tipbox { position:absolute; z-index:60; max-width:320px; background:var(--ink); color:#fff; padding:9px 12px; border-radius:6px; font-size:13px; line-height:1.4; white-space:pre-line; box-shadow:0 4px 14px rgba(0,0,0,.3); }
.tip:focus { outline:2px solid var(--navy); }
.hard-note { grid-column:1 / -1; margin:6px 0 2px; }
/* поле-«чипсы»: слова и поле ввода в одном контейнере; контейнер переносит строки и прокручивается по вертикали */
.tagwrap { min-width:0; }
.tags { display:flex; flex-wrap:wrap; gap:5px; align-items:center; align-content:flex-start; border:1px solid var(--line); border-radius:8px; background:#fff; padding:5px 6px; min-height:40px; max-height:170px; overflow-y:auto; cursor:text; }
.tags:focus-within { border-color:var(--navy); box-shadow:0 0 0 2px rgba(21,0,129,.12); }
.tags.readonly { background:#f7f8fa; }
.tags .chip { max-width:100%; min-width:0; }
.tags .chip-t { overflow-wrap:anywhere; }
.tags input.tag-in { flex:1 1 140px; min-width:120px; border:0; outline:none; padding:4px 4px; font:inherit; background:transparent; }
.tags-foot { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.tags-foot .hint { margin:2px 0; }
/* приоритетные локации */
.loc-cards { display:flex; flex-direction:column; gap:10px; margin:4px 0 8px; }
.loc-card { border:1px solid var(--line); border-radius:8px; padding:8px 10px; background:#fbfaff; min-width:0; }
.loc-head { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:4px; }
.loc-head .spacer { flex:1; }
.loc-card .l { margin:4px 0; }
.inline-check { display:flex; gap:6px; align-items:center; margin:6px 0; font-weight:400; font-size:13px; }
.ac li.none { color:var(--muted); cursor:default; }
.ac li { display:flex; justify-content:space-between; gap:8px; flex-wrap:wrap; }
.ac input[type=text] { width:100%; }
td input.w { width:90px; }
.wctl { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.field .wctl input.w { width:110px; flex:0 0 110px; }
.table-wrap { overflow-x:auto; max-width:100%; }
.table-wrap table { min-width:600px; }
.sticky { position:sticky; bottom:0; background:#fffffff2; border-top:1px solid var(--line); padding:10px 24px; margin:0 -24px; display:flex; gap:10px; align-items:center; z-index:10; }
.modal-bg { position:fixed; inset:0; background:rgba(20,30,45,.45); display:flex; align-items:flex-start; justify-content:center; padding-top:7vh; z-index:50; }
.modal { background:#fff; border-radius:10px; padding:18px 20px; min-width:min(380px,92vw); max-width:92vw; max-height:84vh; overflow:auto; box-shadow:0 10px 40px rgba(0,0,0,.3); }
.modal h3 { margin-top:0; }
.modal .actions { display:flex; gap:10px; justify-content:flex-end; margin-top:14px; }
pre.json { background:var(--mist); padding:10px; border-radius:8px; max-height:50vh; overflow:auto; font-size:12px; white-space:pre-wrap; }
.kv { display:grid; grid-template-columns:max-content 1fr; gap:3px 14px; }
.kv dt { color:var(--muted); } .kv dd { margin:0; }
.small { font-size:12.5px; color:var(--muted); }
.summary-list { margin:6px 0 0 18px; padding:0; }

@media (max-width: 700px) {
  main { padding:14px 12px 70px; }
  fieldset.sec { padding:4px 10px 10px; }
  .sticky { padding:8px 12px; margin:0 -12px; flex-wrap:wrap; }
  .grid { grid-template-columns:1fr; }
  .listed .row.with-select input[type=text] { flex-basis:100%; }   /* на узком экране поле на всю ширину, select и × — под ним */
  th, td { padding:6px 6px; }
}

/* ход и результат запуска скоринга */

/* таблица весов */
input.w.bad { border-color:var(--bad); background:#fdecec; }
.wtable td { vertical-align:top; } .wtable .code { font-family:Consolas,monospace; white-space:nowrap; }
.wtable { min-width:980px; } .wparams { display:flex; flex-direction:column; gap:3px; margin-top:4px; } .wparams input.w { width:70px; }
.wlink { color:var(--navy); text-decoration:underline; cursor:pointer; } .wsame { color:var(--warn); }
fieldset.flash { outline:3px solid #e0b84a; transition:outline .3s; }

/* ---------- телефон и узкие экраны (≤640px): компактная шапка с меню, таблицы-карточки, крупные элементы управления ---------- */
@media (max-width: 640px) {
  html, body { overflow-x:hidden; }
  h2 { font-size:18px; }
  button, .btn, a.btn { min-height:42px; padding:9px 14px; }
  button.small { min-height:38px; padding:6px 12px; font-size:13.5px; }
  .chip button, .tip { min-height:0; }
  input[type=text], input[type=search], input[type=number], input[type=password], input[type=date], select, textarea { font-size:16px; min-height:42px; width:100%; }
  td input.w, .field .wctl input.w, .wparams input.w { width:110px; flex:0 0 110px; }
  input[type=checkbox] { width:22px; height:22px; }
  .toolbar { gap:8px; } .toolbar > input, .toolbar > select { flex:1 1 100%; }
  .toolbar h2 { flex:1 1 100%; margin:0; }
  .modal { min-width:0; width:94vw; padding:14px; }
  .sticky { gap:8px; } .sticky .small { flex:1 0 100%; }
  .kv { grid-template-columns:1fr; gap:0 0; } .kv dt { margin-top:6px; }
  .login-box { margin:6vh 14px; max-width:none; }
  /* таблицы → карточки */
  .table-wrap { overflow-x:visible; } .table-wrap table, .wtable { min-width:0; }
  table, tbody, tr, td { display:block; width:100%; }
  thead { display:none; }
  table { background:transparent; }
  tr { background:#fff; border:1px solid var(--line); border-radius:8px; margin:0 0 10px; padding:4px 10px; }
  td { border:0; border-bottom:1px solid #eef1f5; padding:7px 0; display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; text-align:left; }
  td:last-child { border-bottom:0; }
  td::before { content:attr(data-label); flex:0 0 100%; color:var(--muted); font-size:12px; }
  td[data-label=""]::before, td:not([data-label])::before { display:none; }
  td.num { text-align:left; }
  tr.over { background:var(--over); } tr.over td { background:transparent; }
  .wtable td .small:not(button) { flex:1 0 100%; }
  td > button { flex:0 0 auto; width:auto; max-width:60%; }
  .wtable td:nth-child(n+4):nth-child(-n+7) { flex-wrap:nowrap; justify-content:space-between; }
  .wtable td:nth-child(n+4):nth-child(-n+7)::before { flex:1 1 auto; }
  .wtable td:nth-child(1) { font-size:12px; color:var(--muted); border:0; padding-bottom:0; text-transform:uppercase; letter-spacing:.03em; }
  .wtable td:nth-child(1)::before { display:none; }
  .wtable td:nth-child(2) { font-weight:600; }
  .wtable td:nth-child(3) { padding-top:0; }
  .wtable td:nth-child(3)::before, .wtable td:nth-child(2)::before { display:none; }
}

/* =====================================================================================================
   РЕДИЗАЙН: шапка, главный экран «3 шага», прогресс, итоги, последние запуски, «Расширенные», демо-режим
   ===================================================================================================== */
header.top { background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:30; }
.top-in { max-width:1180px; margin:0 auto; padding:10px 24px; display:flex; align-items:center; gap:10px 28px; flex-wrap:wrap; }
.brand { display:flex; align-items:center; gap:12px; background:none; border:0; padding:0; cursor:pointer; min-height:0; }
.brand img { height:30px; width:auto; display:block; }
header.top nav { display:flex; gap:4px; flex:1; align-items:center; }
header.top nav button { background:transparent; border:0; color:var(--ink); padding:8px 14px; border-radius:var(--r); font-size:15px; position:relative; }
header.top nav button:hover { background:var(--mist); }
header.top nav button.active { color:var(--navy); font-weight:600; }
header.top nav button.active::after { content:""; position:absolute; left:14px; bottom:1px; width:22px; height:3px; border-radius:2px; background:var(--gold); }   /* Gold — короткая линия-акцент, как в брендбуке */
header.top nav .adv { margin-left:auto; color:var(--muted); font-size:14px; }
header.top .who { display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--muted); }

.page-title { margin:0 0 4px; font-size:28px; font-weight:700; color:var(--navy); line-height:1.2; }
.page-title::after { content:""; display:block; width:44px; height:3px; background:var(--gold); border-radius:2px; margin-top:10px; }
.page-sub { color:var(--muted); margin:12px 0 22px; max-width:720px; }

/* --- карточка из 3 шагов --- */
.flow { padding:22px 24px 24px; }
.flow-grid { display:grid; grid-template-columns:1fr 1.35fr 1fr; gap:22px; }
.step { min-width:0; display:flex; flex-direction:column; gap:8px; }
.step-head { display:flex; align-items:center; gap:10px; }
.step-no { flex:0 0 30px; width:30px; height:30px; border-radius:50%; border:2px solid #cfc9e6; color:var(--muted); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; background:#fff; }
.step.done .step-no { background:var(--navy); border-color:var(--navy); color:#fff; }
.step.cur .step-no { border-color:var(--navy); color:var(--navy); }
.step-title { font-weight:600; font-size:16px; }
.step .hint { margin:0; }
.step select { width:100%; font-size:15px; padding:11px 12px; min-height:48px; }
.drop { border:2px dashed #c9c2e6; border-radius:var(--r); background:#fbfaff; min-height:112px; padding:16px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; text-align:center; cursor:pointer; transition:background .15s, border-color .15s; }
.drop:hover, .drop.over { background:var(--mist); border-color:var(--navy); }
.drop .ico { font-size:26px; line-height:1; color:var(--navy); }
.drop b { font-weight:600; }
.drop.has { border-style:solid; border-color:var(--navy); background:#fff; }
.drop .fname { font-weight:600; overflow-wrap:anywhere; }
.drop input[type=file] { display:none; }
.cta { font-size:17px; font-weight:600; padding:14px 22px; min-height:56px; width:100%; border-radius:var(--r); }
.cta:disabled { background:#d9d5ec; border-color:#d9d5ec; color:#fff; opacity:1; }
.more { margin-top:16px; border-top:1px solid var(--line); padding-top:12px; }
.more summary { cursor:pointer; color:var(--muted); font-size:14px; }
.more .body { margin-top:10px; display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center; }
.more input[type=date] { width:auto; }

/* --- ход запуска --- */
.run-card { padding:22px 24px; }
.run-top { display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.run-top h3 { margin:0; font-size:19px; }
.pct { font-size:30px; font-weight:700; color:var(--navy); }
.bar { height:10px; border-radius:6px; background:#e7e3f4; overflow:hidden; margin:12px 0 16px; }
.bar > i { display:block; height:100%; background:var(--navy); border-radius:6px; transition:width .5s; }
.stages { list-style:none; margin:0; padding:0; display:grid; gap:6px; }
.stages li { display:flex; gap:10px; align-items:center; color:var(--muted); }
.stages li .dot { flex:0 0 22px; width:22px; height:22px; border-radius:50%; border:2px solid #cfc9e6; display:flex; align-items:center; justify-content:center; font-size:12px; background:#fff; }
.stages li.done { color:var(--ink); } .stages li.done .dot { background:var(--navy); border-color:var(--navy); color:#fff; }
.stages li.cur { color:var(--navy); font-weight:600; } .stages li.cur .dot { border-color:var(--navy); }
.stages li.cur .dot::after { content:""; width:8px; height:8px; border-radius:50%; background:var(--navy); animation:pulse 1s infinite alternate; }
@keyframes pulse { from { opacity:.25; } to { opacity:1; } }
@media (prefers-reduced-motion: reduce) { .stages li.cur .dot::after { animation:none; } .bar > i { transition:none; } }

/* --- итоги --- */
.res-head { display:flex; gap:14px; align-items:flex-start; flex-wrap:wrap; justify-content:space-between; }
.res-head h3 { margin:0 0 2px; font-size:22px; color:var(--navy); }
.res-head .sub { color:var(--muted); font-size:13.5px; overflow-wrap:anywhere; }
.dl { font-size:16px; font-weight:600; padding:12px 22px; min-height:50px; }
.metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:18px 0; }
.metric { background:var(--mist); border-radius:var(--r); padding:14px 16px; }
.metric .n { font-size:30px; font-weight:700; line-height:1.1; color:var(--ink); }
.metric .l { font-size:13.5px; color:var(--muted); margin-top:2px; }
.metric.main { background:var(--navy); } .metric.main .n { color:#fff; } .metric.main .l { color:#d9d4f5; }   /* на Navy — белая выворотка (брендбук) */
.top5 { list-style:none; margin:8px 0 0; padding:0; display:grid; gap:8px; counter-reset:t; }
.top5 li { counter-increment:t; display:flex; gap:12px; align-items:flex-start; padding:10px 12px; border:1px solid var(--line); border-radius:var(--r); }
.top5 li::before { content:counter(t); flex:0 0 26px; height:26px; border-radius:50%; background:var(--mist); color:var(--navy); font-weight:700; font-size:13px; display:flex; align-items:center; justify-content:center; }
.top5 .t { flex:1; min-width:0; overflow-wrap:anywhere; } .top5 .ttags { display:block; margin-top:3px; }
.top5 .sc { flex:0 0 auto; text-align:right; font-weight:700; color:var(--navy); } .top5 .sc small { display:block; font-weight:400; color:var(--muted); font-size:12px; }
.reasons { display:grid; gap:8px; margin-top:8px; }
.reason { display:grid; grid-template-columns:minmax(120px,260px) 1fr 40px; gap:10px; align-items:center; font-size:14px; }
.reason .rb { height:8px; background:#e7e3f4; border-radius:5px; overflow:hidden; } .reason .rb i { display:block; height:100%; background:var(--navy); opacity:.55; }
.reason .rn { text-align:right; font-weight:600; }
details.fold { margin-top:14px; border-top:1px solid var(--line); padding-top:12px; }
details.fold summary { cursor:pointer; font-weight:600; }
.empty { text-align:center; padding:26px 16px; color:var(--muted); }
.empty .big { font-size:34px; line-height:1; margin-bottom:8px; }
.empty b { color:var(--ink); display:block; font-size:16px; margin-bottom:4px; }
.errcard { border-color:#f1c2bd; background:#fffafa; }
.errcard h3 { margin:0 0 6px; color:var(--bad); font-size:19px; }

/* --- последние запуски --- */
.recent-head { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-bottom:6px; }
.recent-head h3 { margin:0; }
.rrow { display:grid; grid-template-columns:12px 1fr auto auto; gap:6px 14px; align-items:center; padding:11px 0; border-top:1px solid var(--line); }
.rrow:first-of-type { border-top:0; }
.rdot { width:10px; height:10px; border-radius:50%; background:#bbb; } .rdot.ok { background:var(--ok); } .rdot.err { background:var(--bad); } .rdot.act { background:var(--navy); }
.rmain { min-width:0; } .rmain .f { font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .rmain .s { font-size:13px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rres { font-size:14px; white-space:nowrap; } .rres b { color:var(--navy); }
.ract { display:flex; gap:6px; }
.linkbtn { background:none; border:0; color:var(--navy); text-decoration:underline; padding:0; min-height:0; cursor:pointer; font:inherit; }

/* --- «Расширенные» --- */
.adv-bar { background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:12px 16px; margin-bottom:18px; }
.adv-bar .note { color:var(--muted); font-size:13.5px; margin:0 0 8px; }
.adv-tabs { display:flex; gap:6px; flex-wrap:wrap; }
.adv-tabs button { border-radius:20px; padding:6px 16px; }
.adv-tabs button.active { background:var(--navy); color:#fff; border-color:var(--navy); }
.login-box { text-align:center; }
.login-box > * { text-align:left; } .login-box .logo { display:block; margin:6px auto 18px; height:40px; }
.login-box h2 { text-align:center; }

@media (max-width: 900px) {
  .flow-grid { grid-template-columns:1fr; gap:20px; }
  .metrics { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 640px) {
  .top-in { padding:8px 12px; gap:6px 10px; }
  .brand { order:1; flex:1 1 auto; } .brand img { height:26px; }
  header.top .who { order:2; flex:0 0 auto; } header.top .who .who-name { display:none; }
  header.top nav { order:3; flex:1 0 100%; overflow-x:auto; gap:2px; padding-bottom:2px; }
  header.top nav button { flex:1 0 auto; padding:10px 12px; white-space:nowrap; min-height:44px; text-align:center; }
  header.top nav .adv { margin-left:0; }
  header.top nav button.active::after { left:50%; transform:translateX(-50%); }
  .page-title { font-size:23px; } .flow, .run-card { padding:16px 14px; }
  .cta { min-height:56px; }
  .res-head .dl { width:100%; text-align:center; }
  .metric .n { font-size:26px; } .metrics { gap:10px; }
  .reason { grid-template-columns:1fr 36px; } .reason .rb { grid-column:1 / -1; grid-row:2; }
  .rrow { grid-template-columns:12px 1fr; } .rrow .rres, .rrow .ract { grid-column:2; }
  .adv-tabs { flex-wrap:nowrap; overflow-x:auto; } .adv-tabs button { flex:0 0 auto; }
  .top5 li { flex-wrap:wrap; } .top5 .sc { flex:1 0 100%; text-align:left; padding-left:38px; }
  .more input[type=date] { width:100%; }
  .drop { min-height:104px; }
}

/* --- очередь файлов (0.9.0) --- */
.queue h3 { margin:0; font-size:18px; }
.qsum { margin:4px 0 0; }
.qactions { display:flex; flex-wrap:wrap; gap:10px; margin:6px 0 4px; }
.qactions:empty { display:none; }
.qtitle { margin:26px 0 12px; }
.qlist { margin-top:10px; }
.qitem .rrow { grid-template-columns:12px 1fr auto auto; }
.qitem:first-child .rrow { border-top:0; }
.qrow .rmain .f { white-space:normal; overflow-wrap:anywhere; }
.qrow .rmain .s { white-space:normal; }
.qrow .rmain .s.bad { color:var(--bad); }
.qrow .rmain .hint { color:var(--muted); font-size:13px; margin-top:2px; }
.bar.mini { height:6px; margin:6px 0 0; max-width:340px; }
.rdot.warn { background:#d99a00; }
.qres { margin:4px 0 10px 24px; }
.qres .card { margin-bottom:0; border-color:var(--line); background:#fcfbff; }
.skipped summary { cursor:pointer; font-weight:600; }
.picked ul { list-style:none; margin:8px 0 0; padding:0; max-height:220px; overflow:auto; border:1px solid var(--line); border-radius:var(--r); background:#fff; }
.picked:empty { display:none; }
.picked li { display:flex; gap:10px; align-items:center; padding:6px 10px; border-top:1px solid var(--line); }
.picked li:first-child { border-top:0; }
.picked .pn { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.picked .ps { color:var(--muted); font-size:13px; white-space:nowrap; }
.picked button.x { padding:0 7px; line-height:20px; }
.hint.limits { margin-top:6px; }
.more label.inline { display:flex; gap:8px; align-items:flex-start; margin-top:12px; }
.more label.inline input { margin-top:4px; }
.foot { text-align:center; color:var(--muted); font-size:12.5px; padding:6px 12px 22px; }
@media (max-width: 640px) {
  .qitem .rrow { grid-template-columns:12px 1fr; } .qitem .rrow .rres, .qitem .rrow .ract { grid-column:2; }
  .qactions > * { flex:1 1 100%; text-align:center; }
  .qres { margin-left:0; }
  .bar.mini { max-width:none; }
}

/* история запусков: длинная ошибка — в одну строку (полный текст во всплывающей подсказке), кнопка скачивания не переносится */
.errshort { max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
td.nowrap { white-space:nowrap; }
@media (max-width:640px) { .errshort { max-width:none; white-space:normal; } .adv-tabs { flex-wrap:wrap; overflow-x:visible; } }

@media (min-width:641px) { table.runs-tbl th, table.runs-tbl td { padding:7px 5px; } table.runs-tbl .btn.small { padding:4px 8px; } .errshort { max-width:150px; } }
