/* Кабинет Data Extractor на ДС МЦ (часть VII, docs/pb-extractor-design.md §63–66).
   Подключается после ds/marketplace-2.css. Только то, чего в ДС нет: лок-ап шапки, полоса-итог,
   свежесть и лента «7 дней», знак модуля, заголовок модуля, узлы «Источник → Выгрузка → База». */

/* ---------- страница ---------- */
main.wrap{max-width:1200px;padding-top:24px;padding-bottom:64px}
#page-overview,#page-bases,#page-module{display:flex;flex-direction:column;gap:32px}
#page-overview[hidden],#page-bases[hidden],#page-module[hidden]{display:none}
#tab-overview,#tab-setup{display:flex;flex-direction:column;gap:28px}
#tab-overview[hidden],#tab-setup[hidden]{display:none}
#tab-overview > .block,#tab-setup > .block{margin-top:0}
.block-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 12px}
.block-h h2{margin:0}
.block-h > a{font-size:13px;color:var(--dx-text-link);text-decoration:none}
.block-head{align-items:center}

/* ---------- шапка: «логотип | Data Extractor», разделы сегментами ---------- */
.hdr{height:auto;min-height:60px;padding:0}
.hdr .wrap{max-width:1200px;gap:16px;min-height:60px}
.lockup{display:flex;align-items:center;gap:12px;flex:0 0 auto;text-decoration:none}
.lockup picture{display:block;line-height:0}
.lockup .logo{width:auto;height:24px;display:block}  /* logo-line.svg: знак поднят на линию букв, буквы того же размера, что при 22px */
.lockup i{width:1px;height:20px;background:var(--dx-border-strong)}
.lockup .product{display:inline;font-size:16px;font-weight:var(--dx-fw-semibold);color:var(--dx-text-strong);white-space:nowrap}
.hdr .app-nav{flex:1 1 auto;min-width:0}
.hdr .app-nav .tabs{max-width:100%;overflow-x:auto;scrollbar-width:none}
.hdr .app-nav .tabs::-webkit-scrollbar{display:none}
.app-nav .tab{white-space:nowrap}
.app-nav .tab .st{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--dx-border-strong)}
.app-nav .tab .st.ok{background:var(--dx-ok)}.app-nav .tab .st.error{background:var(--dx-danger)}.app-nav .tab .st.warn{background:var(--dx-warn)}.app-nav .tab .st.run{background:var(--dx-accent)}
.btn-32{height:32px;min-height:32px;padding:0 12px;font-size:13px}
.hdr .btn-add{margin-left:auto;flex:0 0 auto;border-style:solid}
.hdr .chip{flex:0 0 auto}
html[data-embedded] .lockup{display:none}

/* ---------- полоса-итог (Обзор) — цветная всегда ---------- */
.band{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:12px;border:1px solid var(--dx-ok-line);background:var(--dx-ok-tint)}
.band.is-error{border-color:var(--dx-danger-line);background:var(--dx-danger-tint)}
.band.is-run{border-color:var(--dx-accent-line);background:var(--dx-accent-wash)}
.band > svg{width:24px;height:24px;flex:0 0 auto;color:var(--dx-ok)}
.band.is-error > svg{color:var(--dx-danger)}
.band.is-run > svg{color:var(--dx-accent)}
.band-text{flex:1;min-width:0}
.band-text h1{margin:0}
.band-text p{margin:2px 0 0;font-size:13px;color:var(--dx-text-muted)}
.band-side{flex:0 0 auto;font-size:14px;color:var(--dx-text-muted);text-align:right}
.band-side b{color:var(--dx-text-strong);font-weight:var(--dx-fw-semibold)}

/* ---------- знак модуля: бледная подложка, тёмные буквы ---------- */
.mark{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:12px;font-weight:var(--dx-fw-semibold)}
.mark-lg{width:44px;height:44px;font-size:14px}
.m-pb{background:rgba(46,124,246,.12);color:#1B5FC6}.m-files{background:rgba(14,159,143,.12);color:#0B7A6E}
.m-bnmap{background:rgba(124,92,240,.12);color:#5B3FD0}.m-onec{background:rgba(224,164,0,.16);color:#8A5A00}.m-b24{background:rgba(31,162,224,.14);color:#0F6F9E}
.mtag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:var(--dx-fw-semibold);white-space:nowrap}

/* ---------- таблица модулей ---------- */
.dx-app .mods td{vertical-align:middle;font-size:13px;color:var(--dx-text-muted);height:64px;padding-top:0;padding-bottom:0}
.dx-app .mods th{padding-top:10px;padding-bottom:10px}
.name-in{display:flex;align-items:center;gap:12px;min-width:0}
.name-t{min-width:0}
.name-t a{display:block;font-size:14px;font-weight:var(--dx-fw-semibold);color:var(--dx-text-strong);text-decoration:none;white-space:nowrap}
.name-t a:hover{color:var(--dx-text-link)}
.name-t span{display:block;font-size:13px;color:var(--dx-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.mods tr.is-error td{background:var(--dx-danger-tint)}
.mods .val b{font-weight:var(--dx-fw-regular);color:var(--dx-text-strong)}
.mods .act{width:48px;text-align:right}

/* ---------- свежесть и лента «7 дней» ---------- */
.fresh{display:flex;flex-direction:column;line-height:1.2}
.fresh b{font-size:18px;font-weight:var(--dx-fw-semibold);color:var(--dx-text-strong);font-variant-numeric:tabular-nums}
.fresh span{font-size:12px;color:var(--dx-text-muted);margin-top:2px}
.fresh.is-bad b,.fresh.is-bad span{color:var(--dx-danger)}
.strip,.days{display:inline-flex;gap:4px;vertical-align:middle}
.strip i{display:inline-block;width:24px;height:22px;border-radius:5px}
.days b{width:24px;text-align:center;font-size:11px;font-weight:var(--dx-fw-semibold);color:var(--dx-text-faint);text-transform:none;letter-spacing:0}
.days b.is-today{color:var(--dx-text-strong)}
.d-o{background:#2FA57A}.d-w{background:#E9B23C}.d-e{background:#D9485A}.d-n{background:#DDE3EC}
.legend{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--dx-text-muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-left:10px}
.legend i:first-child{margin-left:0}
.c-hist{width:210px}

/* ---------- базы и журнал на Обзоре ---------- */
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:32px;align-items:start}
.two > .block{margin-top:0}
.rows{list-style:none;margin:0;padding:0 16px;border:1px solid var(--dx-border);border-radius:14px;background:var(--dx-surface-card)}
.rows li{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--dx-text-muted);min-height:52px;cursor:pointer;flex-wrap:wrap;padding:8px 0}
.rows li + li{border-top:1px solid var(--dx-border)}
.rows .db{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--dx-surface-inset);color:var(--dx-text-muted);flex:0 0 auto}
.rows .t{color:var(--dx-text-strong);font-size:14px;font-weight:var(--dx-fw-semibold)}
.rows .grow{flex:1;min-width:0}
.rows .chips{display:flex;gap:6px;flex-wrap:wrap}
.rows .status{font-weight:var(--dx-fw-regular);font-size:13px}

/* ---------- заголовок модуля над вкладками ---------- */
#module-head:empty{display:none}
.mhead{display:flex;flex-direction:column;gap:4px}
.mhead .back{font-size:13px;color:var(--dx-text-link);text-decoration:none;margin-bottom:6px;align-self:flex-start}
.mhead-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.mhead-title{display:flex;align-items:center;gap:14px;min-width:0}
.mhead-title h1{margin:0;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.mhead-title h1 .status{font-size:14px}
.msub{display:block;font-size:13px;color:var(--dx-text-muted);margin-top:2px}
.lead-line{margin:14px 0 0;font-size:16px;font-weight:var(--dx-fw-semibold);color:var(--dx-text-strong)}
.lead-line.is-bad{color:var(--dx-danger)}
.lead-sub{margin:2px 0 0;font-size:13px;color:var(--dx-text-muted);max-width:760px}
.mhead .soft-note{margin-top:10px}
.mod-tabs{align-self:flex-start;margin:0;border:0}
.mod-tabs .tab{border:0}

/* ---------- блок проблемы — баннер ДС ---------- */
.problem{padding:16px 20px;border-radius:12px;border:1px solid var(--dx-danger-line);background:var(--dx-danger-tint)}
.problem .eyebrow{font-size:12px;letter-spacing:0;text-transform:none;color:var(--dx-danger);margin:0}
.problem .eyebrow:before{display:none}
.problem h1{font-size:16px !important;line-height:22px;margin:4px 0 0}
.problem .sub{font-size:13px;margin-top:4px;color:var(--dx-text-muted)}
.problem .stale{font-size:13px;margin-top:4px}
.problem .actions{margin-top:12px}

/* ---------- узлы «Источник → Выгрузка → База»: равные белые карточки, без подсветки ---------- */
.pipe{grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr) 32px minmax(0,1fr);align-items:stretch}
.node,.node.core{background:var(--dx-surface-card);border:1px solid var(--dx-border);border-radius:14px;padding:16px 18px;box-shadow:none}
.node .role{font-size:12px;letter-spacing:0;text-transform:none;color:var(--dx-text-faint);margin-bottom:6px}
.node .name{font-size:16px;font-weight:var(--dx-fw-semibold)}
.node .meta{font-size:13px}
.node.is-error{border-color:var(--dx-danger-line);background:var(--dx-danger-tint)}
.node.is-muted{opacity:1}
.link,.link.idle{height:2px;background:var(--dx-border-strong)}
.link:after{display:none}

/* ---------- таблица «Выгрузки» ---------- */
.dx-app .exports td{vertical-align:middle;height:60px;padding-top:6px;padding-bottom:6px}
.exports td b{color:var(--dx-text-strong);font-weight:var(--dx-fw-semibold)}

/* ---------- «Настройки»: шаги карточками ---------- */
.setup-sub{font-size:13px;color:var(--dx-text-muted);margin:0}
.steps{gap:12px;margin-top:0}
.step{border-radius:14px;padding:0;background:var(--dx-surface-card);border:1px solid var(--dx-border)}
.step.is-current,.step.is-open{border-color:var(--dx-accent-line)}
.step.is-done{border-color:var(--dx-border)}
.step-head{padding:14px 18px;gap:14px}
.step-n{width:28px;height:28px;font-size:13px;border-radius:50%}
.step.is-done .step-n{background:var(--dx-ok-tint);color:var(--dx-ok);border-color:transparent}
.step-title h2{font-size:16px !important;line-height:22px}
.step-line{font-size:13px}
.step-toggle{height:32px;min-height:32px;padding:0 12px;font-size:13px}
.step-body{padding:16px 18px 18px 60px;border-top:1px solid var(--dx-border);margin-top:0}
.steps-progress{display:none}
.setup-foot{border-top:0;padding-top:0;margin-top:0}

/* ---------- телефон ---------- */
@media (max-width:1000px){.two{grid-template-columns:minmax(0,1fr)}.mods .c-hist,.mods .c-next,.mods .c-db{display:none}}
@media (max-width:900px){.pipe{grid-template-columns:1fr}.link,.link.idle{width:2px;height:16px;justify-self:center}}
@media (max-width:640px){
  .hdr .wrap{flex-wrap:wrap;padding-top:10px;padding-bottom:10px;gap:10px}
  .lockup{flex:1 1 auto}
  .hdr .app-nav{order:10;flex:1 1 100%}
  .band{flex-wrap:wrap}.band-side{text-align:left;width:100%}.band > .btn{width:100%}
  .dx-app table.mods.cards-sm td{height:auto}
  .mods td.first{display:block}
  .mods td.first:before{display:none}
  .name-t span{max-width:none}
  .mod-tabs{width:100%}.mod-tabs .tab{flex:1;justify-content:center}
  .mhead-row .page-actions{width:100%}.mhead-row .page-actions .btn{flex:1}
  .exports .c-hist{display:none}
  .step-body{padding-left:18px}
  .rows .chips{display:none}
  .legend{display:none}
}

/* поправки после первой сборки */
#tab-overview > .pipe,#tab-overview > .block,#tab-overview > div{margin-top:0}
details.kebab > summary{width:32px;height:32px;border-radius:8px;color:var(--dx-text-muted)}
details.kebab > summary .ico{width:18px;height:18px}
.menu-list{border-color:var(--dx-border);background:var(--dx-surface-card);box-shadow:var(--dx-shadow-float)}
.menu-item{font-size:14px;color:var(--dx-text-strong)}
.menu-item:hover{background:var(--dx-accent-tint)}
.rows li{flex-wrap:nowrap}
.rows .status{margin-left:auto;flex:0 0 auto}
#page-overview .runs th:nth-child(4),#page-overview .runs td:nth-child(4){display:none}  /* «Длилась» — на странице модуля */
.fold-title{font-size:18px}
details.fold > summary{padding:16px 20px}
.hdr .app-nav .tab{padding:0 12px}
.hdr .chip{padding:4px 8px;font-size:10.5px;letter-spacing:.06em}
.rows.bases li{display:grid;grid-template-columns:32px auto 1fr auto;column-gap:10px;row-gap:4px;align-items:center}
.rows.bases .db{grid-row:1 / 3}
.rows.bases .t{grid-column:2;grid-row:1}
.rows.bases .grow{grid-column:3;grid-row:1}
.rows.bases .status{grid-column:4;grid-row:1}
.rows.bases .chips{grid-column:2 / 5;grid-row:2}
.step.is-done .step-n:before{font-size:14px;line-height:1}
.hdr .app-nav .tab{padding:0 10px;font-size:13px}
.hdr .wrap{gap:12px}
#page-bases{gap:24px}
#page-bases > *{margin-top:0 !important;margin-bottom:0}
#page-bases > h1 + .sub{margin-top:-16px;font-size:13px;color:var(--dx-text-muted)}
#page-bases .base-card .role{font-size:12px;letter-spacing:0;text-transform:none}
#page-bases .admin-row{background:var(--dx-surface-inset);border:0;font-size:13px}
@media (max-width:640px){
  .lockup .logo{width:24px;height:24px}
  .lockup .product{font-size:15px}
  .hdr .btn-add{margin-left:auto}
  .dx-app table.mods.cards-sm tr{position:relative}
  .dx-app table.mods.cards-sm td.act{position:absolute;top:8px;right:6px;padding:0;width:auto;height:auto;background:none}
  .dx-app table.mods.cards-sm td.act:before{display:none}
  .mods td.first{padding-right:44px}
}

/* журнал на обзоре — строки в одну линию, день подзаголовком (часть VII, «журнал неудобный» 30.10) */
.rows.journal{padding:0 14px}
.rows.journal li{min-height:40px;padding:6px 0;gap:10px;cursor:default;flex-wrap:nowrap}
.rows.journal .j-day{min-height:0;padding:12px 0 4px;font-size:12px;font-weight:var(--dx-fw-semibold);color:var(--dx-text-faint);text-transform:uppercase;letter-spacing:.04em}
.rows.journal .j-day + .j-row{border-top:0}
.rows.journal .time{flex:0 0 92px;color:var(--dx-text-strong);font-variant-numeric:tabular-nums}
.rows.journal .mtag{flex:0 0 auto}
.rows.journal .grow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rows.journal .num{flex:0 0 56px;text-align:right;color:var(--dx-text-strong);font-variant-numeric:tabular-nums}
html[data-dx-ui] .rows.journal .status{flex:0 0 132px;margin-left:0;font-weight:var(--dx-fw-regular);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rows.journal .is-clickable{cursor:pointer}
.rows.journal .is-clickable:hover{background:var(--dx-surface-inset);margin:0 -14px;padding:6px 14px}
.rows.journal .j-detail{display:block;min-height:0;padding:0 0 10px 102px;border-top:0;font-size:13px;color:var(--dx-text-muted);white-space:normal}
.rows.journal .j-empty{cursor:default;color:var(--dx-text-muted)}
@media (max-width:640px){.rows.journal li{gap:8px}.rows.journal .num{display:none}html[data-dx-ui] .rows.journal .status{flex:0 1 auto;min-width:0;max-width:42%}.rows.journal .time{flex:0 0 auto;min-width:40px}.rows.journal .j-detail{padding-left:0}}

/* обзор: база и журнал друг под другом на всю ширину (30.10) */
.ov-journal > .block{margin-top:0}
.ov-bases .rows.bases li{grid-template-columns:32px auto auto 1fr auto;min-height:56px}
.ov-bases .rows.bases .db{grid-row:1}
.ov-bases .rows.bases .grow{grid-column:3;flex:none}
.ov-bases .rows.bases .chips{grid-column:4;grid-row:1}
.ov-bases .rows.bases .status{grid-column:5}
.ov-journal .rows.journal .time{flex-basis:110px}
html[data-dx-ui] .ov-journal .rows.journal .status{flex-basis:240px}
.ov-journal .rows.journal .num{flex-basis:90px}
.ov-journal .rows.journal .j-detail{padding-left:120px}
@media (max-width:640px){
  .ov-bases .rows.bases li{grid-template-columns:32px auto 1fr auto}
  .ov-bases .rows.bases .db{grid-row:1 / 3}
  .ov-bases .rows.bases .chips{grid-column:2 / 5;grid-row:2}
  .ov-bases .rows.bases .status{grid-column:4}
  .ov-journal .rows.journal .time{flex-basis:auto}
  html[data-dx-ui] .ov-journal .rows.journal .status{flex:0 1 auto}
  .ov-journal .rows.journal .j-detail{padding-left:0}
}

/* шапка: низ знака, низ букв «МЕТОДЦИФРЫ» и низ «Data Extractor» — на одной линии (30.10) */
@media (min-width:641px){.lockup{align-items:flex-end}.lockup .product{transform:translateY(3.75px)}.lockup i{align-self:center;transform:translateY(4.5px)}}

/* выгрузки модуля: число не рвётся посередине, «следующая» — время в одну строку, расписание — пояснением (30.10) */
.exports .result-cell{overflow-wrap:break-word}  /* было anywhere — рвало «161 532» на «161 53 / 2» */
.exports .next-cell .next-main{white-space:nowrap}
.exports .next-cell .cell-note{color:var(--dx-text-muted);margin-top:3px}
.exports td:first-child > b,.exports .when{white-space:nowrap}

/* инструкции для самостоятельного подключения (часть VIII) */
.setup-guide{margin-top:10px}
.guide h3{font-size:13px;font-weight:var(--dx-fw-semibold);color:var(--dx-text-strong);margin-top:20px}
.guide .guide-list{margin:8px 0 0 20px;font-size:14px;color:var(--dx-text-strong)}
.guide .guide-list li{margin-top:6px;line-height:1.5}
.guide .guide-ip{margin-top:16px;padding:10px 14px;border-radius:10px;background:var(--dx-surface-inset);font-size:13px}
.guide .guide-ip b{font-size:14px}
.guide-errors{margin-top:8px;display:grid;gap:4px 0;font-size:13px}
.guide-errors dt{color:var(--dx-danger);margin-top:8px}
.guide-errors dd{color:var(--dx-text-muted);margin:0}
.guide .guide-help{margin-top:20px;font-size:13px;color:var(--dx-text-muted)}

/* меню «⋯» в таблице — поверх страницы, не внутри прокрутки таблицы (09.11) */
.menu-list.is-floating{position:fixed;right:auto;z-index:60}
