:root {
  --ink: #0b0c0d;
  --muted: #747a78;
  --line: #dfe2de;
  --surface: #ffffff;
  --canvas: #f4f5f1;
  --soft: #f2f3ef;
  --accent: #e7ff00;
  --accent-soft: #f2f7c1;
  --blue: #3466c7;
  --blue-soft: #e8eefc;
  --green: #27834d;
  --green-soft: #e2f3e7;
  --orange: #b35b00;
  --orange-soft: #fff0dc;
  --red: #c74747;
  --red-soft: #fbe4e4;
  --radius: 16px;
  --shadow: 0 18px 60px rgba(8, 11, 10, .22);
  --max: 1344px;
  font-family: Inter, Arial, Helvetica, sans-serif;
  color: var(--ink);
  background: var(--canvas);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--canvas); }
body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--canvas); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

.screen { min-height: 100vh; }
.app-shell { min-height: 100vh; background: var(--canvas); }
.page { width: min(var(--max), calc(100% - 64px)); margin: 0 auto; padding: 30px 0 66px; }
.eyebrow { margin: 0 0 10px; color: #737a77; font-size: 13px; line-height: 1; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 4px; font-size: clamp(30px, 3vw, 38px); line-height: 1.12; letter-spacing: -.025em; }
h2 { font-size: 23px; line-height: 1.15; letter-spacing: -.012em; }
h3 { font-size: 18px; line-height: 1.25; }
.lead { margin: 0; color: var(--muted); font-size: 15.5px; line-height: 1.45; }
.muted { color: var(--muted); }
.strong { font-weight: 800; }
.spacer-20 { height: 18px; }
.spacer-28 { height: 23px; }

.topbar { position: sticky; top: 0; z-index: 30; height: 72px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(12px); }
.topbar-inner { width: min(1344px, calc(100% - 48px)); height: 100%; margin: 0 auto; display: flex; align-items: center; gap: 30px; }
.brand { min-width: 226px; padding: 0; display: inline-flex; align-items: center; gap: 12px; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.brand-mark { position: relative; width: 30px; height: 30px; flex: 0 0 30px; display: grid; grid-template: repeat(2, 1fr) / repeat(2, 1fr); gap: 4px; }
.brand-mark i { display: block; background: currentColor; }
.brand-mark i:nth-child(2) { border-radius: 0 8px 0 0; }
.brand-mark i:nth-child(3) { border-radius: 0 0 0 8px; }
.brand-name { font-size: 24px; font-weight: 900; letter-spacing: .01em; line-height: .95; }
.brand-sub { display: block; margin-top: 4px; color: #8a8f8d; font-size: 8px; font-weight: 500; letter-spacing: .03em; }
.nav { display: flex; align-items: center; gap: 6px; }
.nav-link { min-height: 44px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 12px; background: transparent; cursor: pointer; font-size: 15px; white-space: nowrap; }
.nav-link:hover { background: #f0f1ee; }
.nav-link.active { color: #fff; background: var(--ink); font-weight: 800; }
.topbar-meta { margin-left: auto; display: flex; align-items: center; gap: 22px; }
.demo-pill { padding: 8px 15px; border-radius: 999px; background: var(--accent-soft); font-size: 13px; font-weight: 900; white-space: nowrap; }
.user { display: flex; align-items: center; gap: 10px; min-width: 122px; }
.avatar { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--ink); font-size: 12px; font-weight: 800; }
.user-name { font-size: 14px; font-weight: 800; line-height: 1.15; }
.user-role { display: block; margin-top: 4px; color: #929795; font-size: 11px; font-weight: 500; }
.mobile-menu { display: none; margin-left: auto; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 10px; background: #fff; cursor: pointer; }

.card { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.panel { padding: 24px; }
.panel-title { margin-bottom: 16px; }
.subtle-box { padding: 15px; border-radius: 12px; background: var(--soft); }
.divider { height: 1px; margin: 20px 0; background: var(--line); }
.row { display: flex; align-items: center; }
.space-between { justify-content: space-between; }
.gap-8 { gap: 8px; }
.gap-12 { gap: 12px; }
.gap-16 { gap: 16px; }
.wrap { flex-wrap: wrap; }

.btn { min-height: 45px; padding: 0 18px; display: inline-flex; align-items: center; justify-content: center; gap: 14px; border: 1px solid var(--line); border-radius: 11px; background: #fff; cursor: pointer; font-size: 15px; font-weight: 800; transition: transform .12s, background .12s, border-color .12s; }
.btn:hover { transform: translateY(-1px); border-color: #c7cbc6; }
.btn:active { transform: translateY(0); }
.btn-primary { border-color: var(--accent); color: var(--ink); background: var(--accent); }
.btn-primary:hover { border-color: #d2e900; background: #dff600; }
.btn-dark { border-color: var(--ink); color: #fff; background: var(--ink); }
.btn-dark:hover { border-color: #222; background: #222; }
.btn-danger { border-color: var(--red); color: #fff; background: var(--red); }
.btn-wide { width: 100%; }
.btn-sm { min-height: 39px; padding: 0 14px; font-size: 14px; }
.btn .arrow { margin-left: auto; font-size: 18px; line-height: 1; }
.icon-btn { width: 36px; height: 36px; padding: 0; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--soft); cursor: pointer; font-size: 26px; color: #7b817e; }

.tag { min-height: 30px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; font-size: 13px; line-height: 1; font-weight: 900; text-transform: uppercase; white-space: nowrap; }
.tag-success { color: var(--green); background: var(--green-soft); }
.tag-warning { color: var(--orange); background: var(--orange-soft); }
.tag-info { color: var(--blue); background: var(--blue-soft); }
.tag-neutral { color: var(--ink); background: var(--soft); }
.tag-service { color: var(--ink); background: var(--accent-soft); }
.tag-excluded { color: var(--red); background: var(--red-soft); }

.kpi-grid { display: grid; grid-template-columns: 205px 205px 205px 205px minmax(300px, 1fr); gap: 16px; }
.kpi { min-height: 95px; padding: 14px 18px; }
.kpi-value { display: block; font-size: 34px; line-height: 1; font-weight: 900; }
.kpi-label { display: block; margin-top: 12px; color: var(--muted); font-size: 14px; }
.kpi-success .kpi-value { color: var(--green); }
.kpi-warning .kpi-value { color: var(--orange); }
.freshness { display: flex; align-items: center; gap: 15px; }
.freshness .kpi-value { min-width: 62px; }
.progress-track { height: 8px; overflow: hidden; border-radius: 999px; background: #e8eae6; }
.progress-fill { height: 100%; display:block; border-radius: inherit; background: var(--green); transition: width .4s ease; }
.progress-fill.blue { background: var(--blue); }
.progress-fill.accent { background: #c8df11; }

.auth { min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr; background: #fff; }
.auth-visual { position: relative; overflow: hidden; min-height: 720px; padding: 48px 7.7%; color: #fff; background: linear-gradient(90deg, #090b0b 0 calc(100% - 32px), #fff calc(100% - 32px)); }
.auth-visual::before, .auth-visual::after { content: ""; position: absolute; width: 82%; aspect-ratio: 1; border: 1px solid #343837; border-radius: 50%; transform: rotate(-17deg); }
.auth-visual::before { left: -14%; top: 29%; }
.auth-visual::after { left: 4%; top: 34%; transform: rotate(30deg); }
.auth-orbit { position: absolute; width: 13px; height: 13px; border-radius: 50%; background: var(--accent); left: 77%; top: 40%; }
.auth .brand { position: relative; z-index: 2; color: #fff; }
.auth-index { position: relative; z-index: 2; margin-top: 35px; color: #9da3a0; font-size: 13px; font-weight: 800; }
.auth-copy { position: relative; z-index: 2; margin-top: 85px; max-width: 610px; }
.auth-copy h1 { margin-bottom: 24px; font-size: clamp(40px, 4vw, 48px); line-height: 1.05; }
.auth-copy p { max-width: 570px; color: #c0c5c2; font-size: 18px; line-height: 1.55; }
.auth-stats { position: absolute; z-index: 2; left: 7.7%; right: 7.7%; bottom: 10%; padding: 22px 25px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; border: 1px solid #303433; border-radius: 17px; background: #161918; }
.auth-stat-label { color: var(--accent); font-size: 12px; font-weight: 900; text-transform: uppercase; }
.auth-stat-number { margin-top: 9px; display: block; font-size: 31px; font-weight: 900; }
.auth-stat-note { margin-top: 12px; display: block; color: #929895; font-size: 11px; }
.auth-form-wrap { padding: 50px 9%; display: flex; align-items: center; justify-content: center; }
.auth-form { width: min(470px, 100%); transform: translateX(5px); }
.auth-form h2 { margin-bottom: 14px; font-size: 34px; }
.auth-form .lead { margin-bottom: 48px; }
.auth-form [data-action="forgot"] { color: var(--blue); font-size: 13px; }
.auth-footer { margin-top: 122px; display: flex; align-items: center; justify-content: space-between; color: #858a88; font-size: 12px; }
.auth-footer button { border: 0; background: transparent; font-weight: 800; cursor: pointer; }
.or { margin: 22px 0; display: grid; grid-template-columns: 1fr auto 1fr; gap: 22px; align-items: center; color: #777c79; font-size: 12px; font-weight: 900; }
.or::before, .or::after { content: ""; height: 1px; background: var(--line); }
.secure-note { margin-top: 28px; padding: 18px; border-radius: 12px; background: var(--soft); font-size: 13px; font-weight: 800; }
.dot { width: 10px; height: 10px; flex: 0 0 10px; display: inline-block; border-radius: 50%; background: #858b88; }
.dot.green { background: var(--green); }
.dot.orange { background: var(--orange); }
.dot.blue { background: var(--blue); }
.dot.accent { background: var(--accent); }

.field { margin-bottom: 16px; }
.field label { margin-bottom: 8px; display: block; color: #707673; font-size: 13px; font-weight: 800; }
.field input, .field select, .field textarea { width: 100%; min-height: 49px; padding: 12px 15px; border: 1px solid var(--line); border-radius: 11px; outline: 0; background: #fff; color: var(--ink); font-size: 15px; font-weight: 700; }
.field textarea { min-height: 82px; resize: vertical; font-weight: 500; line-height: 1.45; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: #7f8783; box-shadow: 0 0 0 3px rgba(11,12,13,.06); }
.field input[readonly] { background: var(--soft); }
.field-hint { margin-top: 7px; color: #888e8b; font-size: 11px; }
.field-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; }
.field-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px 20px; }
.check-row { margin: 13px 0; display: flex; align-items: flex-start; gap: 10px; font-size: 14px; font-weight: 700; }
.check-row input { appearance: none; width: 21px; height: 21px; flex: 0 0 21px; margin: 0; display: grid; place-items: center; border: 1px solid #cfd3cf; border-radius: 5px; background: #fff; cursor: pointer; }
.check-row input:checked { border-color: var(--ink); background: var(--ink); }
.check-row input:checked::after { content: "✓"; color: #fff; font-size: 14px; font-weight: 900; }

.import-grid { margin-top: 20px; display: grid; grid-template-columns: 385px 1fr; gap: 24px; }
.dropzone { height: 180px; padding: 20px; display: grid; place-items: center; text-align: center; border: 2px dashed #c7ccc7; border-radius: 16px; background: #fafbf8; cursor: pointer; }
.dropzone.drag { border-color: var(--accent); background: #fbffd8; }
.plus { width: 56px; height: 56px; margin: 0 auto 10px; display: grid; place-items: center; border-radius: 50%; background: var(--accent); font-size: 42px; line-height: 1; font-weight: 300; }
.drop-title { display: block; font-size: 16px; line-height: 1.3; font-weight: 900; }
.drop-note { margin-top: 8px; display: block; color: var(--muted); font-size: 13px; line-height: 1.35; }
.pipeline { display: grid; gap: 20px; }
.pipeline-row { display: grid; grid-template-columns: 34px 1fr 66px; gap: 12px; align-items: center; }
.step-number { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; color: var(--green); background: var(--green-soft); font-size: 12px; font-weight: 900; }
.pipeline-row.active .step-number { color: var(--blue); background: var(--blue-soft); }
.pipeline-title { font-size: 15px; font-weight: 900; }
.pipeline-count { color: var(--green); text-align: right; font-size: 13px; font-weight: 900; }
.pipeline-row.active .pipeline-count { color: var(--blue); }
.pipeline-progress { grid-column: 2 / 4; }
.exclusion-list { display: grid; gap: 5px; }
.exclusion { padding: 9px 12px; display: grid; grid-template-columns: 115px 1fr 205px; align-items: center; gap: 12px; border-radius: 8px; background: #fff8f0; font-size: 13px; font-weight: 800; }
.exclusion .inn { color: #717774; }
.reason { min-height: 30px; padding: 0 15px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; color: var(--orange); background: var(--orange-soft); }

.search-bar { margin-top: 22px; padding: 17px; display: flex; align-items: center; gap: 22px; }
.search-box { position: relative; width: min(607px, 100%); }
.search-box input { width: 100%; height: 50px; padding: 0 18px 0 50px; border: 0; border-radius: 13px; outline: 0; background: var(--soft); font-size: 15px; }
.search-icon { position: absolute; left: 18px; top: 50%; width: 18px; height: 18px; border: 2px solid var(--ink); border-radius: 50%; transform: translateY(-55%); }
.search-icon::after { content: ""; position: absolute; width: 8px; height: 2px; right: -6px; bottom: -3px; background: var(--ink); transform: rotate(45deg); }
.search-bar .btn { margin-left: auto; }
.catalog-layout { margin-top: 19px; display: grid; grid-template-columns: 264px 1fr; gap: 24px; }
.filters { padding: 20px; align-self: start; }
.filter-section { margin-top: 24px; }
.filters .filter-section:last-of-type { margin-top: 33px; }
.filter-label { margin-bottom: 12px; color: #717774; font-size: 13px; font-weight: 800; }
.filter-chip { width: 100%; min-height: 31px; padding: 0 12px; border: 0; border-radius: 999px; color: #fff; background: var(--ink); font-size: 12px; font-weight: 800; }
.status-filter { position: relative; margin: 6px 0; }
.status-filter input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.catalog-head { min-height: 42px; display: flex; align-items: center; gap: 18px; }
.catalog-title { margin: 0; }
.tabs { display: flex; align-items: center; gap: 9px; }
.tab { min-height: 31px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; cursor: pointer; font-size: 13px; font-weight: 900; white-space: nowrap; }
.tab.active { color: #fff; background: var(--ink); }
.sort-label { margin-left: auto; color: #747a77; font-size: 13px; font-weight: 800; }
.entity-list { display: grid; gap: 11px; }
.entity-row { min-height: 83px; padding: 14px; display: grid; grid-template-columns: minmax(310px, 1.4fr) minmax(240px, 1fr) 180px 24px; gap: 16px; align-items: center; cursor: pointer; transition: transform .12s, border-color .12s; }
.entity-row:hover { transform: translateY(-1px); border-color: #c7ccc7; }
.entity-main { display: flex; align-items: center; gap: 15px; min-width: 0; }
.entity-logo { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--ink); font-size: 10px; font-weight: 900; }
.entity-name { display: block; overflow: hidden; font-size: 16px; line-height: 1.25; font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }
.entity-meta { margin-top: 6px; display: block; overflow: hidden; color: var(--muted); font-size: 13px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.entity-segment { display: block; font-size: 14px; line-height: 1.25; font-weight: 900; }
.entity-stats { margin-top: 8px; display: block; color: var(--muted); font-size: 13px; line-height: 1.3; }
.chevron { font-size: 28px; line-height: 1; }
.empty { padding: 54px 20px; text-align: center; color: var(--muted); }

.hero-card { margin-top: 23px; padding: 22px 24px 10px; display: flex; align-items: center; gap: 18px; }
.hero-logo { width: 66px; height: 66px; flex: 0 0 66px; display: grid; place-items: center; border-radius: 50%; color: var(--blue); background: #e8f1ff; font-size: 17px; font-weight: 900; }
.hero-card h2 { margin-bottom: 4px; font-size: 24px; }
.hero-card .lead { line-height: 1.25; }
.hero-card .row { margin-top: 8px !important; }
.hero-card .btn { margin-left: auto; }
.detail-layout { margin-top: 11px; display: grid; grid-template-columns: 1.55fr 1fr; gap: 22px; }
.info-list { display: grid; }
.info-row { min-height: 56px; padding: 13px 0; display: grid; grid-template-columns: 190px 1fr; gap: 14px; align-items: start; border-bottom: 1px solid var(--line); }
.info-row:last-child { border-bottom: 0; }
.info-label { color: #717774; font-size: 13px; font-weight: 800; }
.info-value { font-size: 14px; line-height: 1.5; font-weight: 800; }
.source-line { margin-top: 18px; padding: 14px; display: flex; align-items: center; flex-wrap: wrap; gap: 9px; border-radius: 10px; background: var(--soft); color: #282b2a; font-size: 12px; line-height: 1.35; font-weight: 800; }
.source-line .source-state { margin-left: auto; color: var(--green); white-space: nowrap; }
.side-stack { display: grid; gap: 18px; }
.offer-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.mini-kpi { min-height: 95px; padding: 15px 18px; }
.mini-kpi strong { display: block; font-size: 31px; }
.mini-kpi span { display: block; margin-top: 13px; color: var(--muted); font-size: 13px; }
.popular { display: grid; gap: 14px; }
.popular-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 14px; font-weight: 900; }
.quality-grid { display: grid; gap: 18px; }
.quality-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; font-size: 13px; font-weight: 800; }
.quality-row .value { color: var(--green); }
.quality-row .progress-track { grid-column: 1 / 3; }

.product-layout { margin-top: 23px; display: grid; grid-template-columns: 514px 1fr; gap: 24px; }
.product-side { padding: 19px; display: flex; flex-direction: column; }
.photo-wrap { position: relative; height: 355px; overflow: hidden; border-radius: 15px; background: #f0f1ed; }
.photo-wrap img { width: 100%; height: 100%; object-fit: cover; }
.photo-badge { position: absolute; left: 14px; bottom: 13px; max-width: calc(100% - 28px); padding: 9px 16px; border-radius: 999px; background: #fff; font-size: 12px; font-weight: 900; text-transform: uppercase; }
.side-fields { margin: 28px 4px 0; display: grid; gap: 22px; }
.side-field label { margin-bottom: 7px; display: block; color: #747a77; font-size: 13px; font-weight: 800; }
.side-field strong { font-size: 17px; }
.product-main { display: grid; gap: 20px; }
.product-main > .card:first-child { padding-bottom: 17px; }
.product-main > .card:nth-child(2) { padding: 16px 24px 26px; }
.product-main > .card:nth-child(2) h2 { margin-bottom: 0; }
.product-main > .card:nth-child(2) .classification-row + .classification-row { margin-top: 26px; }
.product-main > .card:nth-child(2) .notice { margin-top: 30px; padding: 18px 16px; }
.product-main > .card:last-child { margin-top: -9px; padding: 17px 24px 14px; }
.product-main > .card:last-child .source-line { margin-top: 10px; padding-top: 13px; padding-bottom: 13px; }
.product-main > .card:last-child .row { margin-top: 13px; }
.description { margin-top: 14px; font-size: 18px; line-height: 1.45; }
.parameter-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.parameter { min-height: 64px; padding: 12px 16px; border-radius: 12px; color: #fff; background: var(--ink); }
.parameter strong { display: block; color: var(--accent); font-size: 19px; }
.parameter small { display: block; margin-top: 7px; color: #b8bdba; font-size: 10px; }
.classification-row { display: grid; grid-template-columns: 82px 1fr; gap: 14px; margin-top: 22px; }
.classification-row .label { color: #737975; font-size: 13px; font-weight: 800; }
.classification-row .text { font-size: 14px; line-height: 1.45; font-weight: 800; }
.notice { margin-top: 18px; padding: 16px; display: flex; align-items: center; gap: 10px; border-radius: 11px; color: var(--orange); background: #fff5e4; font-size: 13px; line-height: 1.4; font-weight: 800; }

.service-hero { min-height: 120px; margin-top: 23px; padding: 25px 24px; display: flex; align-items: center; gap: 24px; }
.service-icon { width: 66px; height: 66px; flex: 0 0 66px; display: grid; place-items: center; border-radius: 17px; color: var(--accent); background: var(--ink); font-size: 32px; }
.service-hero h2 { margin-bottom: 8px; font-size: 24px; }
.service-hero .tag { margin-left: auto; }
.service-layout { margin-top: 20px; display: grid; grid-template-columns: 1.66fr 1fr; gap: 24px; }
.service-copy { font-size: 16px; line-height: 1.55; }
.service-params { display: grid; gap: 16px; }
.service-param { min-height: 70px; padding: 17px 20px; display: grid; grid-template-columns: 145px 1fr; align-items: center; gap: 14px; border-radius: 12px; background: var(--soft); }
.service-param label { color: #777d7a; font-size: 13px; font-weight: 800; }
.service-param strong { font-size: 14px; }
.action-stack { display: grid; gap: 10px; }

.review-page { width: min(var(--max), calc(100% - 64px)); }
.review-grid { margin-top: 23px; display: grid; grid-template-columns: 306px minmax(540px, 1.43fr) minmax(380px, 1fr); gap: 24px; align-items: stretch; }
.queue { padding: 16px 14px 14px; display: flex; flex-direction: column; }
.queue-list { display: grid; gap: 9px; }
.queue-item { width: 100%; min-width: 0; min-height: 79px; padding: 15px 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; text-align: left; cursor: pointer; }
.queue-item.active { color: #fff; border-color: var(--ink); background: var(--ink); }
.queue-name { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 13px; line-height: 1.25; font-weight: 900; }
.queue-meta { margin-top: 10px; display: block; color: #7b817e; font-size: 11px; line-height: 1.35; }
.queue-item.active .queue-meta { color: #aeb4b1; }
.source-pane, .extract-pane { padding: 22px 23px 14px; display: flex; flex-direction: column; }
.source-address { margin-bottom: 18px; min-height: 42px; padding: 0 18px; display: flex; align-items: center; border-radius: 11px; color: #fff; background: var(--ink); font-size: 12px; }
.source-address span { margin-left: auto; color: var(--accent); font-size: 20px; }
.source-preview { min-height: 0; flex: 1; overflow: hidden; background: #eee; }
.source-preview img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.source-caption { padding: 13px 18px; display: flex; align-items: center; gap: 10px; color: #fff; background: var(--ink); font-size: 12px; font-weight: 800; }
.source-caption small { color: #aaa; }
.source-caption .btn { margin-left: auto; }
.source-caption .btn-primary { color: var(--ink); }
.extract-list { display: grid; }
.extract-field { min-height: 64px; padding: 10px 0; display: grid; grid-template-columns: 1fr auto; gap: 10px; border-bottom: 1px solid var(--line); }
.extract-field label { color: #737975; font-size: 12px; font-weight: 800; }
.extract-field strong { margin-top: 8px; display: block; font-size: 14px; line-height: 1.35; }
.confidence { align-self: center; min-width: 58px; padding: 8px 10px; border-radius: 999px; color: var(--green); background: var(--green-soft); text-align: center; font-size: 12px; font-weight: 900; }
.confidence.warning { color: var(--orange); background: var(--orange-soft); }
.extract-class { padding: 20px 0; }
.extract-class .notice { display: block; line-height: 1.45; }
.extract-class .notice span { display: block; margin-top: 5px; }

.modal-overlay { position: fixed; z-index: 100; inset: 0; padding: 24px; display: grid; place-items: center; overflow-y: auto; background: rgba(7, 9, 8, .56); }
.modal { width: min(920px, calc(100vw - 48px)); max-height: calc(100vh - 48px); overflow: auto; border-radius: 20px; background: #fff; box-shadow: var(--shadow); }
.modal-sm { width: min(620px, calc(100vw - 48px)); }
.modal-md { width: min(760px, calc(100vw - 48px)); }
.modal-confirm, .modal-exclude { width: min(600px, calc(100vw - 48px)); }
.modal-return { width: min(660px, calc(100vw - 48px)); }
.modal-history { width: min(820px, calc(100vw - 48px)); }
.modal-header { position: sticky; z-index: 2; top: 0; padding: 20px 32px 16px; display: flex; align-items: flex-start; gap: 18px; border-bottom: 1px solid var(--line); background: #fff; }
.modal-header h2 { margin: 0 0 6px; font-size: 25px; }
.modal-header p { margin: 0; color: var(--muted); font-size: 13px; }
.modal-header .icon-btn { margin-left: auto; }
.modal-body { padding: 24px 32px; }
.modal-footer { position: sticky; z-index: 2; bottom: 0; padding: 20px 32px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid var(--line); background: #fff; }
.modal-edit .field { margin-bottom: 12px; }
.modal-edit-enterprise .modal-body { padding-bottom: 30px; }
.modal-edit-service .modal-body { padding-bottom: 18px; }
.modal-confirm .modal-body { padding-top: 21px; padding-bottom: 21px; }
.modal-return .modal-body { padding: 16px 32px 15px; }
.modal-return form > .field:nth-child(3) { margin-bottom: 9px; }
.modal-return .notice { margin-top: 0; padding: 12px 14px; }
.modal-exclude .modal-body { padding-bottom: 12px; }
.modal-exclude .field:last-child { margin-bottom: 0; }
.modal-exclude textarea { height: 60px; min-height: 60px; }
.modal-history .modal-body { padding-bottom: 27px; }
.modal-history .timeline { margin-top: 27px !important; gap: 32px; }
.segmented { margin-bottom: 14px; display: flex; gap: 10px; }
.segmented button { min-height: 31px; padding: 0 18px; border: 0; border-radius: 999px; background: var(--soft); cursor: pointer; font-size: 13px; font-weight: 900; text-transform: uppercase; }
.segmented button.active { color: #fff; background: var(--ink); }
.form-note { padding: 14px; display: flex; align-items: center; gap: 10px; border-radius: 11px; background: #f7f9e6; font-size: 12px; line-height: 1.4; font-weight: 800; }
.danger-note { background: var(--red-soft); }
.entity-summary { padding: 16px; display: flex; align-items: center; gap: 15px; border-radius: 12px; background: var(--soft); }
.parameter-editor { display: grid; gap: 7px; }
.parameter-edit { min-height: 48px; padding: 8px 12px; display: grid; grid-template-columns: 34px 1.4fr 1fr 24px; gap: 10px; align-items: center; border-radius: 10px; background: var(--soft); font-size: 13px; font-weight: 800; }
.parameter-number { width: 33px; height: 33px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--ink); }
.remove-param { border: 0; background: transparent; color: #777; cursor: pointer; font-size: 22px; }

.timeline { position: relative; display: grid; gap: 20px; }
.timeline::before { content: ""; position: absolute; left: 9px; top: 14px; bottom: 14px; width: 1px; background: #cfd3cf; }
.timeline-item { position: relative; padding-left: 34px; display: grid; grid-template-columns: 1fr 165px; gap: 20px; }
.timeline-dot { position: absolute; z-index: 1; left: 3px; top: 7px; width: 13px; height: 13px; border-radius: 50%; background: var(--green); }
.timeline-dot.blue { background: var(--blue); }
.timeline-dot.gray { background: #777d7a; }
.timeline-time { margin-bottom: 7px; color: #777d7a; font-size: 11px; font-weight: 800; }
.timeline-title { font-size: 15px; font-weight: 900; }
.timeline-note { margin-top: 7px; color: var(--muted); font-size: 13px; }
.author-pill { align-self: center; min-height: 31px; padding: 0 15px; display: flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--soft); font-size: 12px; font-weight: 900; }

.toast { position: fixed; z-index: 200; right: 24px; bottom: 24px; width: min(380px, calc(100vw - 48px)); padding: 16px 18px; display: flex; align-items: flex-start; gap: 12px; border-radius: 13px; color: #fff; background: var(--ink); box-shadow: 0 14px 42px rgba(0,0,0,.22); animation: toast-in .2s ease-out; }
.toast strong { display: block; font-size: 14px; }
.toast span { margin-top: 4px; display: block; color: #c6cbc8; font-size: 12px; line-height: 1.35; }
@keyframes toast-in { from { transform: translateY(12px); opacity: 0; } }

@media (max-width: 1320px) {
  .review-grid { grid-template-columns: 245px 1fr; }
  .extract-pane { grid-column: 1 / -1; }
}

@media (max-width: 1180px) {
  .topbar-inner { width: calc(100% - 28px); gap: 14px; }
  .brand { min-width: 185px; }
  .nav-link { padding: 0 11px; }
  .user { display: none; }
  .page { width: calc(100% - 40px); }
  .kpi-grid { grid-template-columns: repeat(4, 1fr); }
  .kpi-grid .freshness { grid-column: 1 / -1; }
  .review-grid { grid-template-columns: 245px 1fr; }
  .extract-pane { grid-column: 1 / -1; }
  .product-layout { grid-template-columns: 42% 1fr; }
}

@media (max-width: 900px) {
  .topbar { height: 64px; }
  .brand { min-width: 0; }
  .brand-name { font-size: 20px; }
  .nav, .topbar-meta { display: none; }
  .mobile-menu { display: block; }
  .topbar.menu-open { height: auto; }
  .topbar.menu-open .topbar-inner { flex-wrap: wrap; padding: 10px 0; }
  .topbar.menu-open .nav { width: 100%; display: grid; grid-template-columns: 1fr 1fr; padding-bottom: 8px; }
  .page { width: calc(100% - 28px); padding-top: 24px; }
  .auth { grid-template-columns: 1fr; }
  .auth-visual { min-height: 560px; padding: 34px 28px; }
  .auth-visual { background: #090b0b; }
  .auth-copy { margin-top: 68px; }
  .auth-stats { left: 28px; right: 28px; bottom: 35px; }
  .auth-form-wrap { padding: 55px 28px; }
  .auth-form { transform: none; }
  .auth-footer { margin-top: 70px; }
  .kpi-grid { grid-template-columns: 1fr 1fr; }
  .kpi-grid .freshness { grid-column: 1 / -1; }
  .import-grid, .catalog-layout, .detail-layout, .service-layout, .product-layout, .review-grid { grid-template-columns: 1fr; }
  .catalog-layout .filters { display: none; }
  .entity-row { grid-template-columns: minmax(0,1.2fr) minmax(170px,.8fr) 145px 20px; }
  .product-side { max-width: 620px; }
  .review-grid .extract-pane { grid-column: auto; }
  .queue-list { grid-template-columns: 1fr 1fr; }
  .queue .btn { margin-top: 14px; }
}

@media (max-width: 640px) {
  h1 { font-size: 30px; }
  .auth-visual { min-height: 650px; }
  .auth-copy h1 { font-size: 38px; }
  .auth-stats { grid-template-columns: 1fr; gap: 10px; }
  .auth-stat { display: grid; grid-template-columns: 1fr auto; align-items: center; }
  .auth-stat-note { display: none; }
  .auth-form-wrap { padding: 42px 20px; }
  .auth-footer { flex-direction: column; gap: 20px; align-items: flex-start; }
  .page { width: calc(100% - 22px); }
  .kpi-grid { grid-template-columns: 1fr; }
  .kpi-grid .freshness { grid-column: auto; }
  .search-bar { align-items: stretch; flex-direction: column; }
  .search-bar .btn { margin-left: 0; }
  .tabs { width: 100%; overflow-x: auto; }
  .catalog-head { align-items: flex-start; flex-direction: column; }
  .sort-label { margin-left: 0; }
  .entity-row { grid-template-columns: 1fr auto; }
  .entity-segment-wrap, .entity-row > .tag { display: none; }
  .hero-card, .service-hero { align-items: flex-start; flex-wrap: wrap; }
  .hero-card .btn, .service-hero .tag { width: 100%; margin-left: 0; }
  .info-row { grid-template-columns: 1fr; gap: 5px; }
  .offer-kpis { grid-template-columns: 1fr 1fr; }
  .parameter-grid { grid-template-columns: 1fr; }
  .service-param { grid-template-columns: 1fr; gap: 6px; }
  .queue-list { grid-template-columns: 1fr; }
  .source-caption { align-items: stretch; flex-direction: column; }
  .source-caption .btn { margin-left: 0; }
  .modal-overlay { padding: 0; align-items: end; }
  .modal, .modal-sm, .modal-md, .modal-confirm, .modal-return, .modal-exclude, .modal-history { width: 100%; max-height: 94vh; border-radius: 20px 20px 0 0; }
  .modal-header, .modal-body, .modal-footer { padding-left: 20px; padding-right: 20px; }
  .modal-footer { align-items: stretch; flex-direction: column-reverse; }
  .modal-footer .btn { width: 100%; }
  .field-grid-2, .field-grid-3 { grid-template-columns: 1fr; }
  .parameter-edit { grid-template-columns: 34px 1fr 24px; }
  .parameter-edit .parameter-value { grid-column: 2 / 3; }
  .timeline-item { grid-template-columns: 1fr; gap: 10px; }
  .author-pill { justify-self: start; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* v4 · 19 утверждённых состояний */
.page { padding-top: 28px; }
.secure-sub { display:block; margin:10px 0 0 20px; font-weight:500; }
.btn-soft { border-color:transparent; background:#eef0ec; }
.orange-text { color:var(--orange); font-size:13px; }
.micro { margin:0; color:var(--muted); font-size:11px; line-height:1.4; }

.bi-page { padding-bottom:48px; }
.bi-toolbar { min-height:68px; margin-top:22px; padding:14px 20px; display:grid; grid-template-columns:260px 1fr auto; align-items:center; gap:24px; }
.bi-toolbar > div:not(.bi-toolbar-actions) { min-width:0; }
.bi-toolbar > div:nth-child(2) { padding-left:24px; border-left:1px solid var(--line); }
.bi-toolbar span, .last-import > span { display:block; color:#777d79; font-size:10px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.bi-toolbar strong { display:block; margin-top:7px; overflow:hidden; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.bi-toolbar-actions { display:flex; gap:10px; }
.bi-toolbar-actions .btn { min-height:42px; padding-inline:18px; font-size:13px; }
.bi-kpis { margin-top:22px; display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
.bi-kpi { min-width:0; min-height:115px; padding:16px 20px; display:flex; align-items:flex-start; flex-direction:column; text-align:left; }
button.bi-kpi { width:100%; color:inherit; cursor:pointer; }
.bi-kpi strong { font-size:36px; line-height:1; }
.bi-kpi span { margin-top:14px; color:#757b77; font-size:11px; font-weight:900; letter-spacing:.04em; }
.bi-kpi small { margin-top:auto; color:#8a8f8c; font-size:10px; }
.bi-kpi.warning strong { color:#ae5d05; }
.bi-kpi.success strong { color:var(--green); }
.bi-main-grid { margin-top:22px; display:grid; grid-template-columns:1.08fr 1fr 1.08fr; gap:16px; }
.dashboard-card { min-width:0; min-height:318px; padding:20px 22px; }
.dashboard-card h2 { margin-bottom:8px; font-size:20px; }
.segment-bars { margin-top:25px; display:grid; gap:20px; }
.segment-bars > div { display:grid; grid-template-columns:minmax(170px,1.5fr) minmax(80px,1fr) 16px; align-items:center; gap:10px; font-size:12px; }
.segment-bars i { height:8px; overflow:hidden; border-radius:99px; background:#e7e9e5; }
.segment-bars b { display:block; height:100%; border-radius:inherit; background:#0b0c0d; }
.quality-block { margin-top:22px; }
.quality-block > div { display:flex; justify-content:space-between; gap:12px; font-size:13px; }
.quality-block > div b { white-space:nowrap; }
.quality-block > .progress-track { height:10px; margin-top:10px; display:block; }
.quality-block > small { margin-top:8px; display:block; color:#858b87; font-size:10px; }
.progress-fill.green { background:var(--green); }
.progress-fill.blue { background:var(--blue); }
.progress-fill.accent { background:#d7ed00; }
.focus-card { padding-inline:23px; }
.focus-task { width:100%; min-height:69px; margin-top:11px; padding:11px 16px; display:grid; grid-template-columns:42px 1fr 20px; align-items:center; gap:12px; border:0; border-radius:13px; color:inherit; text-align:left; cursor:pointer; }
.focus-task > span { width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:#fff; font-weight:900; }
.focus-task > strong { min-width:0; font-size:12px; }
.focus-task small { margin-top:7px; display:block; color:#7a807d; font-size:10px; font-weight:500; }
.focus-task > i { font-size:18px; }
.focus-task.orange { color:#a65700; background:#fff0df; }.focus-task.blue { color:#2f62c6; background:#e9effc; }.focus-task.red { color:#c44848; background:#f9e4e4; }
.bi-bottom-grid { margin-top:16px; display:grid; grid-template-columns:1.9fr 1.1fr; gap:16px; }
.bi-bottom-grid .dashboard-card { min-height:204px; }
.split-bar { height:21px; margin-top:28px; display:flex; overflow:hidden; border-radius:99px; background:#0b0c0d; }
.split-bar b { display:block; background:#0b0c0d; }.split-bar i { flex:1; background:var(--accent); }
.split-values { margin:10px 0 17px; display:grid; grid-template-columns:1fr 1fr; }
.split-values strong { font-size:27px; }.split-values small { margin-left:12px; color:#7d827f; font-size:12px; }
.last-run { min-height:204px; padding:20px 26px; color:#fff; background:#0b0c0d; }
.last-run h2 { margin:0; }.last-run .tag { min-width:125px; }
.run-time { margin-top:10px; display:block; font-size:26px; }
.last-run > p { margin:10px 0 16px; color:#9fa5a1; font-size:11px; }
.run-stats { padding-top:15px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #303433; font-size:11px; }
.run-stats b { color:#fff; }.last-run > .btn { float:right; margin-top:15px; }

.import-kpis { margin-top:22px; display:grid; grid-template-columns:repeat(4,205px) minmax(360px,1fr); gap:16px; }
.import-kpis .bi-kpi { min-height:95px; padding:14px 18px; }.import-kpis .bi-kpi strong { font-size:34px; }.import-kpis .bi-kpi span { margin-top:10px; font-size:13px; text-transform:none; }.import-kpis .bi-kpi small { display:none; }
.last-import { min-height:95px; padding:15px 22px; position:relative; }.last-import strong { margin-top:8px; display:block; font-size:22px; }.last-import .tag { position:absolute; right:20px; top:24px; }
.import-page .import-grid { grid-template-columns:386px 1fr; align-items:stretch; }
.import-new { display:flex; flex-direction:column; }.import-new > .lead { margin-top:-8px; font-size:13px; }
.import-new .dropzone { height:180px; margin:20px 0; }.dropzone b { width:56px; height:56px; margin:0 auto 14px; display:grid; place-items:center; border-radius:50%; background:var(--accent); font-size:38px; font-weight:400; }.dropzone strong,.dropzone small { display:block; }.dropzone small { margin-top:8px; color:var(--muted); }
.import-new h3 { margin:16px 0 8px; }.import-new .btn-primary { margin-top:18px; }
.mandatory { color:#4d5350; }.mandatory input:disabled { opacity:1; cursor:not-allowed; }
.threshold-row { margin:12px 0 0; display:grid; grid-template-columns:1fr 52px 14px; align-items:center; gap:2px; font-size:12px; font-weight:800; }.threshold-row input { width:52px; height:36px; padding:0 7px; border:1px solid var(--line); border-radius:10px; background:var(--soft); text-align:center; }
.package-panel { min-width:0; }.package-panel > .row h2 { margin:0; }
.pipeline { margin-top:18px; gap:17px; }.pipeline-row { grid-template-columns:34px 1fr 70px; gap:10px; }.pipeline-row > strong { font-size:15px; }.pipeline-row > b { color:var(--green); text-align:right; font-size:13px; }.pipeline-row > i { grid-column:2/4; }.pipeline-row u { display:block; height:100%; text-decoration:none; }
.step-number.green { color:var(--green); background:var(--green-soft); }.step-number.blue { color:var(--blue); background:var(--blue-soft); }
.exclusion { grid-template-columns:105px minmax(220px,1fr) minmax(170px,220px); }.exclusion > span { color:#858b87; }.exclusion > b { min-height:30px; padding:7px 14px; border-radius:999px; color:var(--orange); background:var(--orange-soft); text-align:center; font-size:12px; }
.empty-inline { padding:16px; border-radius:10px; color:var(--muted); background:var(--soft); font-size:13px; }

.catalog-kpis { margin-top:18px; display:grid; grid-template-columns:repeat(4,205px) 1fr; gap:16px; }.catalog-kpis .bi-kpi { min-height:95px; padding:15px 18px; }.catalog-kpis .bi-kpi strong { font-size:34px; }.catalog-kpis .bi-kpi span { margin-top:auto; text-transform:none; }.catalog-kpis .bi-kpi small { display:none; }
.freshness-wide { min-height:95px; padding:20px 22px; display:grid; grid-template-columns:auto 1fr; align-items:center; column-gap:12px; }.freshness-wide span { color:#747a77; font-size:12px; font-weight:800; }.freshness-wide strong { font-size:30px; }.freshness-wide i { grid-column:2; grid-row:1/3; }
.filters h2 { margin-bottom:20px; }.filters .filter-section { margin-top:20px; }.filter-section > label:first-child { margin-bottom:12px; display:block; color:#747a77; font-size:12px; font-weight:800; }.filter-section select { width:100%; height:39px; padding:0 12px; border:1px solid var(--line); border-radius:10px; background:#fff; color:#555; }
.filter-chip { display:grid; place-items:center; }.catalog-head > span { margin-left:auto; color:#757b78; font-size:12px; font-weight:800; }
.entity-main > span,.entity-segment { min-width:0; text-align:left; }.entity-main strong,.entity-main small,.entity-segment strong,.entity-segment small { display:block; }.entity-main strong { overflow:hidden; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }.entity-main small,.entity-segment small { margin-top:6px; overflow:hidden; color:var(--muted); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }.entity-segment strong { overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }

.hero-card { padding:18px 24px; }.hero-card > div { min-width:0; }.hero-card > div > p { margin:0; color:var(--muted); }.hero-card > .btn { flex:0 0 auto; }.enterprise-data { min-width:0; }.enterprise-data > .row h2 { margin:0; }
.info-row > span { color:#747a77; font-size:12px; font-weight:800; }.info-row > strong { overflow-wrap:anywhere; font-size:13px; line-height:1.45; }
.source-line > span:last-child { margin-left:auto; color:var(--green); }.offer-kpis > div { min-height:65px; padding:12px 17px; border:1px solid var(--line); border-radius:12px; }.offer-kpis strong { display:block; font-size:27px; }.offer-kpis span { color:var(--muted); font-size:11px; }
button.popular-row { width:100%; padding:0; border:0; background:transparent; cursor:pointer; }.popular-row b { max-width:70%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.finance-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }.finance-grid > div { min-width:0; }.finance-grid strong,.finance-grid span { display:block; }.finance-grid strong { font-size:16px; }.finance-grid span { margin-top:6px; color:#858b87; font-size:9px; }.tech-chips { display:flex; flex-wrap:wrap; gap:6px; }.tech-chips span { padding:9px 14px; border-radius:999px; background:var(--soft); font-size:10px; font-weight:800; }.quality-meta { margin:12px 0; display:flex; justify-content:space-between; font-size:11px; }.side-stack .quality-block { margin-top:8px; }.side-stack .quality-block > small { color:var(--green); text-align:right; }
.product-placeholder { width:100%; height:100%; display:grid; place-items:center; align-content:center; gap:20px; color:#fff; background:linear-gradient(145deg,#171a19,#3b4140); }.product-placeholder b { width:82px; height:82px; display:grid; place-items:center; border-radius:50%; color:#0b0c0d; background:var(--accent); font-size:24px; }.product-placeholder span { max-width:80%; text-align:center; font-weight:800; }
.product-main .tag + .tag { margin-left:8px; }.side-fields > div label { display:block; color:var(--muted); font-size:12px; }.side-fields > div strong { overflow-wrap:anywhere; }.classification-row > span { color:var(--muted); font-size:12px; font-weight:800; }.classification-row > strong { font-size:13px; line-height:1.45; }.service-hero p { margin:0; color:var(--muted); }.service-param > span { color:var(--muted); font-size:12px; font-weight:800; }

.review-grid { grid-template-columns:274px minmax(520px,620px) minmax(370px,1fr); min-height:740px; }.queue { min-height:740px; padding:16px 14px 14px; }.queue > .row { padding:0 7px; }.queue > .row h2 { margin:0; }.queue-search { width:100%; margin:14px 0 10px; }.queue-search input { height:43px; }.queue-list { min-width:0; flex:0 0 auto; }.queue-item { padding:13px 15px; }.queue-item > span { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:8px; }.queue-item > span strong { min-width:0; overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }.queue-item > span .dot { flex:0 0 auto; }.queue-item small { width:100%; min-width:0; margin-top:9px; display:block; overflow:hidden; color:#7b817e; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.queue-item.active small { color:#abb1ae; }
.queue-footer { margin-top:48px; padding:0 7px; }.queue-footer .btn { min-height:45px; }
.source-pane,.extract-pane { min-height:740px; }.source-pane > .row h2,.extract-pane > .row h2 { margin:0; }.source-pane .source-address { margin-top:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.source-preview { min-height:490px; border:1px solid var(--line); }.source-preview img { object-fit:cover; object-position:top; }.source-caption > div { min-width:0; }.source-caption strong,.source-caption small { display:block; }.source-caption .btn { flex:0 0 auto; color:var(--ink)!important; background:var(--accent)!important; }.extract-pane { padding-bottom:12px; }.extract-field { min-height:62px; }.extract-field > div { min-width:0; }.extract-field strong { overflow-wrap:anywhere; }.review-reason { margin:16px 0; display:block; }.review-reason span { margin-top:6px; display:block; font-weight:500; }.review-actions { margin-top:auto; display:grid; gap:10px; }.review-actions > .row .btn { flex:1; }.review-actions > small { color:#929794; }

.form-index { position:fixed; z-index:102; left:24px; top:24px; min-width:191px; height:34px; padding:0 22px; display:grid; place-items:center; border-radius:999px; background:#fff; font-size:12px; font-weight:900; letter-spacing:.03em; }.modal-overlay { padding:72px 24px 24px; }.modal { max-height:calc(100vh - 96px); }.modal-header { padding-top:22px; }.modal-header h2 { font-size:25px; }.entity-summary small { margin-top:6px; display:block; color:var(--muted); }.danger-note > b { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--red); }
.modal-bi-filters { width:min(720px,calc(100vw - 48px)); min-height:870px; }.modal-bi-filters .modal-body { min-height:690px; }.filter-condition-label { margin:14px 0 12px; font-size:12px; font-weight:900; }.deep-filter { padding:18px; display:flex; align-items:center; gap:12px; border:1px solid var(--line); border-radius:12px; background:#fafbf8; }.deep-filter input,.radio-card input { width:20px; height:20px; accent-color:#0b0c0d; }.deep-filter strong,.deep-filter small { display:block; }.deep-filter small { margin-top:7px; color:var(--muted); font-size:10px; font-weight:500; }.filter-help { margin-top:28px; padding:18px; border-radius:12px; color:#3466c7; background:#e9effc; }.filter-help strong,.filter-help span { display:block; }.filter-help span { margin-top:10px; color:#4d5666; font-size:12px; line-height:1.5; }
.modal-drilldown { width:min(865px,calc(100vw - 48px)); }.drill-summary { min-height:76px; padding:16px 24px; display:flex; justify-content:space-between; align-items:center; border-radius:12px; background:var(--orange-soft); }.drill-summary > span { color:var(--orange); font-size:11px; font-weight:900; }.drill-summary strong { margin-top:6px; display:block; color:var(--ink); font-size:24px; }.drill-summary small { color:var(--muted); }.drill-tabs { width:100%; margin:22px 0; padding:7px; display:grid; grid-template-columns:repeat(3,1fr); border-radius:12px; background:var(--soft); }.drill-list { display:grid; gap:16px; }.drill-list > div { min-height:92px; padding:16px 24px; display:grid; grid-template-columns:1fr 94px 205px; align-items:center; gap:18px; border:1px solid var(--line); border-radius:12px; }.drill-list span strong,.drill-list span small { display:block; }.drill-list span small { margin-top:10px; color:var(--muted); }.drill-list > div > b { padding:8px 12px; border-radius:999px; color:var(--orange); background:var(--orange-soft); text-align:center; font-size:11px; }
.modal-refresh { width:min(720px,calc(100vw - 48px)); }.radio-card { min-height:78px; margin-bottom:8px; padding:14px; display:flex; align-items:flex-start; gap:12px; border:1px solid var(--line); border-radius:12px; }.radio-card.active { border:2px solid #bad000; background:#f6fad5; }.radio-card strong,.radio-card small { display:block; }.radio-card small { margin-top:8px; color:var(--muted); font-size:11px; font-weight:500; }.snapshot-grid { padding:10px 18px; display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--line); border-radius:12px; }.refresh-note { margin-top:24px; padding:18px; border-radius:12px; color:var(--green); background:var(--green-soft); }.refresh-note strong,.refresh-note span { display:block; }.refresh-note span { margin-top:10px; color:#263c2e; font-size:12px; line-height:1.5; }
.parameter-edit input { min-width:0; height:34px; padding:0 8px; border:1px solid var(--line); border-radius:8px; }.parameter-edit button { border:0; background:transparent; font-size:20px; cursor:pointer; }
.timeline { margin-top:24px; }.timeline-item > div strong,.timeline-item > div span,.timeline-item > div small { display:block; }.timeline-item > div small { color:var(--muted); }.timeline-item > div strong { margin-top:7px; }.timeline-item > div span { margin-top:7px; color:var(--muted); font-size:12px; }.timeline-item > b { align-self:center; padding:9px 12px; border-radius:999px; background:var(--soft); text-align:center; font-size:11px; }

@media (max-width:1320px){
 .bi-toolbar{grid-template-columns:220px 1fr auto}.bi-toolbar-actions .btn{padding-inline:12px}.import-kpis{grid-template-columns:repeat(4,1fr)}.last-import{grid-column:1/-1}.review-grid{grid-template-columns:260px 1fr}.extract-pane{grid-column:1/-1}.source-preview{min-height:520px}
}
@media (max-width:980px){
 .bi-toolbar{grid-template-columns:1fr}.bi-toolbar>div:nth-child(2){padding:0;border:0}.bi-toolbar-actions{flex-wrap:wrap}.bi-kpis,.bi-main-grid,.bi-bottom-grid{grid-template-columns:1fr 1fr}.bi-main-grid .focus-card{grid-column:1/-1}.catalog-kpis{grid-template-columns:1fr 1fr}.freshness-wide{grid-column:1/-1}.import-page .import-grid{grid-template-columns:1fr}.import-new{max-width:none}.detail-layout{grid-template-columns:1fr}.review-grid{grid-template-columns:1fr}.queue{min-height:auto}.queue-footer{margin-top:32px}.source-pane,.extract-pane{min-height:auto}.source-preview{min-height:480px}.modal-bi-filters{min-height:0}.modal-bi-filters .modal-body{min-height:0}
}
@media (max-width:640px){
 .bi-kpis,.bi-main-grid,.bi-bottom-grid,.import-kpis,.catalog-kpis{grid-template-columns:1fr}.bi-main-grid .focus-card,.last-import,.freshness-wide{grid-column:auto}.bi-toolbar-actions{display:grid}.bi-toolbar-actions .btn{width:100%}.segment-bars>div{grid-template-columns:minmax(130px,1.5fr) 1fr 14px}.split-values small{display:block;margin:4px 0 0}.catalog-layout{grid-template-columns:1fr}.catalog-head>span{margin-left:0}.entity-row{grid-template-columns:1fr auto}.entity-row>.entity-segment,.entity-row>.tag{display:none}.review-grid{grid-template-columns:1fr}.source-preview{min-height:360px}.source-caption{flex-direction:column;align-items:stretch}.source-caption .btn{margin:8px 0 0}.form-index{left:12px;top:12px}.modal-overlay{padding:58px 0 0}.field-grid-2,.snapshot-grid{grid-template-columns:1fr}.drill-list>div{grid-template-columns:1fr}.drill-list>div>.btn{width:100%}.finance-grid{grid-template-columns:1fr}.product-layout,.service-layout{grid-template-columns:1fr}.product-side{max-width:none}
}
.review-return { min-height:28px; padding:0; justify-self:start; border:0; color:var(--blue); background:transparent; cursor:pointer; font-size:11px; font-weight:800; }

/* v12 · точечная поэлементная сверка */
.auth-visual { background:#090b0b; }
.last-run { position:relative; }
.last-run-export { position:absolute; right:26px; bottom:15px; padding:0; border:0; color:#747a77; background:transparent; cursor:pointer; font-size:9px; }
.last-run-export:hover,.last-run-export:focus-visible { color:#fff; text-decoration:underline; }
.import-new h3 { margin:16px 0 2px; }
.import-new .check-row { margin:6px 0; }
.threshold-row { margin-top:5px; }
.import-new .btn-primary { margin-top:10px; }
.catalog-head .tab { padding:0; display:flex; align-items:center; gap:8px; color:var(--ink); background:transparent; }
.catalog-head .tab b { min-width:31px; height:31px; padding:0 10px; display:grid; place-items:center; border-radius:999px; background:var(--soft); font-size:12px; }
.catalog-head .tab.active { color:var(--ink); background:transparent; }
.catalog-head .tab.active b { color:#fff; background:var(--ink); }
.detail-layout { grid-template-columns:1.83fr 1fr; }

.product-side { min-height:741px; }
.side-fields { gap:25px; }
.side-fields > div label { margin-bottom:7px; }
.side-fields > div strong { display:block; font-size:17px; }
.side-fields > div .tag { display:inline-flex; }
.product-side-actions { margin-top:65px; display:grid; grid-template-columns:1fr 1.12fr; gap:10px; }
.product-side-actions .btn { padding-inline:17px; }
.section-label { margin:0 0 14px; color:#737975; font-size:13px; font-weight:900; }
.product-description { min-height:265px; padding:25px 24px 18px!important; }
.product-description .description { margin:0 0 36px; }
.product-description .section-label:nth-of-type(2) { margin-bottom:20px; }
.product-classification { min-height:287px; padding:20px 24px 24px!important; }
.product-classification h2 { margin:0; }
.product-classification > .row .tag { min-width:188px; }
.product-classification .classification-row { grid-template-columns:82px 1fr; margin-top:23px; }
.product-classification .classification-row + .classification-row { margin-top:25px!important; }
.product-classification .notice { margin-top:30px!important; }
.product-origin { min-height:158px; padding:17px 24px 14px!important; }
.product-origin h2 { margin:0; color:#737975; font-size:13px; }
.product-origin .source-line { margin-top:10px!important; }
.product-origin > .row { margin-top:13px!important; justify-content:flex-end; }

.service-details { min-height:603px; }
.service-details > h2 { margin-bottom:14px; }
.service-details .service-copy { max-width:760px; margin:0 0 34px; }
.service-details > .section-label { margin-bottom:10px; }
.service-condition { min-height:76px; padding:17px 0; display:grid; grid-template-columns:145px 1fr; align-items:center; gap:14px; }
.service-condition span { color:var(--muted); font-size:12px; font-weight:800; }
.service-condition strong { font-size:14px; }
.service-details { padding-bottom:10px; }
.service-details > .source-line { margin-top:14px; }
.service-side > .card:first-child { min-height:302px; }
.service-side > .card:first-child h2 { margin:0; }
.service-side > .card:first-child > .row .tag { min-width:144px; }
.service-side > .card:first-child > .section-label { margin-top:25px; }
.service-okpd { display:block; font-size:14px; line-height:1.55; }
.classification-status { margin-top:30px; padding-top:14px; display:grid; grid-template-columns:76px 1fr; align-items:center; border-top:1px solid var(--line); }
.classification-status span { color:var(--muted); font-size:12px; font-weight:800; }
.classification-status .tag { justify-self:start; min-width:174px; }
.expert-note { margin-top:20px; display:block; color:var(--orange); font-size:13px; }
.service-actions { min-height:282px; }
.service-actions h2 { margin-bottom:22px; }
.service-actions .micro { margin-top:20px; }

.queue > .row .tag { min-width:72px; color:#fff; background:var(--ink); }
.source-preview img { object-fit:contain; background:#fff; }
.enterprise-data .source-line strong { min-width:0; max-width:68%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.modal-add-inn .modal-body { padding-top:20px; padding-bottom:18px; }
.modal-add-inn .segmented { margin-bottom:18px; }
.modal-add-inn .inn-field { margin-bottom:9px; }
.modal-add-inn .inn-input { height:49px; min-height:49px; overflow:hidden; resize:none; }
.modal-add-inn .inn-input.list-mode { height:104px; min-height:104px; overflow:auto; }
.modal-add-inn .check-row { margin:12px 0; }
.modal-add-inn .form-note { margin-top:18px; }
.enterprise-id-grid { grid-template-columns:1fr 1fr 1fr; }
.modal-edit-enterprise .modal-body { padding-top:12px; padding-bottom:12px; }
.modal-edit-enterprise .field { margin-bottom:16px; }
.modal-edit-enterprise .field-grid-2,.modal-edit-enterprise .field-grid-3 { gap:10px 20px; }
.modal-edit-enterprise textarea { min-height:82px; }
.edit-source-note { color:#777d7a; font-size:11px; font-weight:800; }
.parameter-title { margin:5px 0 12px; color:#707673; font-size:13px; font-weight:800; }
.modal-edit-product .modal-body { padding-top:11px; padding-bottom:11px; }
.modal-edit-product .field { margin-bottom:16px; }
.modal-edit-product .field-grid-2 { gap:10px 20px; }
.modal-edit-product .parameter-editor { margin-bottom:16px; }
.modal-edit-product .parameter-edit { min-height:48px; }
.modal-edit-service .modal-body { padding-top:10px; padding-bottom:10px; }
.modal-edit-service .field { margin-bottom:13px; }
.modal-edit-service .field-grid-2 { gap:8px 20px; }
.modal-confirm .entity-summary { min-height:88px; margin-bottom:0; }
.modal-confirm .form-note { margin-top:20px; }
.entity-summary.danger-note { min-height:85px; background:var(--red-soft); }
.modal-history .timeline { gap:28px; }
.modal-edit-service input[name="conditions"] { font-size:13px; }
.modal-drilldown .modal-footer,.modal-refresh .modal-footer { min-height:146px; align-items:flex-start; }

@media (max-width:980px){
 .detail-layout{grid-template-columns:1fr}.product-side{min-height:auto}.service-details,.service-side>.card:first-child,.service-actions{min-height:auto}
}
@media (max-width:640px){
 .product-side-actions{grid-template-columns:1fr}.enterprise-id-grid{grid-template-columns:1fr}
 .modal-drilldown .modal-footer,.modal-refresh .modal-footer{min-height:auto}
}
