:root{--bg:#f5f5f2;--panel:#fff;--text:#20211f;--muted:#76786f;--border:#dedfd9;--accent:#2e5b45;--accent2:#e8f0eb;--warn:#9a5c12;--warnbg:#fff5df;--danger:#9b3434}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.topbar{height:68px;background:#20211f;color:#fff;display:flex;align-items:center;gap:38px;padding:0 32px;position:sticky;top:0;z-index:20}.brand{font-weight:900;letter-spacing:.08em}.brand span{font-size:10px;background:#fff;color:#222;padding:3px 5px;border-radius:4px;margin-left:5px}.topbar nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.topbar a{color:#d7d8d3;text-decoration:none;padding:10px 12px;border-radius:8px;font-size:14px}.topbar a:hover{background:#333531;color:#fff}.badge{display:inline-block;background:#fff;color:#222;border-radius:999px;min-width:22px;padding:2px 6px;text-align:center;font-size:11px;margin-left:5px}.badge.warn{background:#ffc65a}.wrap{max-width:1240px;margin:0 auto;padding:34px 28px 70px}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.page-head h1{font-size:34px;margin:0 0 6px;letter-spacing:-.03em}.page-head p,.muted{margin:0;color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:22px;margin-bottom:20px}.panel h2{margin:0 0 18px;font-size:19px}.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.panel-head h2{margin:0}.panel-head a{color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 15px;border:1px solid var(--border);background:#fff;border-radius:9px;color:var(--text);text-decoration:none;font-weight:650;cursor:pointer}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.small{min-height:32px;padding:5px 9px;font-size:12px}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{background:#fff;border:1px solid var(--border);padding:20px;border-radius:14px}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{display:block;font-size:36px;line-height:1.05;margin:8px 0}.stat small{color:var(--muted)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.wide-left{grid-template-columns:1.45fr .75fr}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:11px 10px;border-bottom:1px solid var(--border)}td{padding:13px 10px;border-bottom:1px solid #ecece8;vertical-align:top;font-size:14px}td a{color:var(--text);font-weight:650}tr:last-child td{border-bottom:0}.status{font-size:11px;font-weight:700;border-radius:999px;padding:4px 8px;background:#eeeeea}.status.imported,.status.done{background:#e3f3e8;color:#27603c}.status.mapping,.status.in_progress{background:#fff0cb;color:#87560f}.status.created{background:#e8edf5;color:#3e5879}.empty{padding:25px 4px;color:var(--muted);text-align:center}.upload-form,.inline-form{display:flex;gap:14px;align-items:end;flex-wrap:wrap}.upload-form label{min-width:280px;flex:1}.inline-form label{min-width:260px;flex:1}.mapping-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mapping-form .check,.mapping-form button{grid-column:1/-1}.stack-form{display:grid;gap:14px}label{display:grid;gap:7px;font-size:13px;font-weight:650}label small{font-weight:400;color:var(--muted)}input,select{width:100%;min-height:43px;border:1px solid #cfd0ca;border-radius:8px;padding:8px 10px;background:#fff;color:var(--text);font:inherit}.check{display:flex;grid-template-columns:auto 1fr;align-items:center;justify-content:start}.check input{width:auto;min-height:auto}.alert{padding:14px 16px;border-radius:10px;margin-bottom:18px;border:1px solid var(--border)}.alert.warn{background:var(--warnbg);border-color:#f0d9a2;color:#6f4816}.alert.okbox{background:#eaf6ee;border-color:#b9ddc5;color:#2b6942}.alert pre{white-space:pre-wrap}.ok{color:#27603c;font-weight:650}.unknown{color:var(--danger);font-weight:650}.cards{display:grid;gap:14px}.mapping-card{display:grid;grid-template-columns:1.2fr 1fr;gap:30px}.mapping-main h2{margin:9px 0}.eyebrow{text-transform:uppercase;color:var(--muted);font-size:11px;letter-spacing:.07em;font-weight:750}.chips{display:flex;gap:7px;margin-top:14px}.chips span{background:#eeeeea;border-radius:999px;padding:5px 8px;font-size:12px}.resolve-form{display:grid;grid-template-columns:1fr 170px;gap:10px;align-items:end}.resolve-form button{grid-column:1/-1}.success-box{padding:24px;border:1px solid #b9ddc5;background:#eaf6ee;border-radius:12px;font-weight:700;color:#2b6942}.assembly-table td:first-child small{display:block;color:var(--muted);margin-top:3px}.assembly-table td:last-child{text-align:right;font-size:18px}.big-total{font-size:22px;font-weight:800}.create-task{display:flex;gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.create-task input{flex:1}.task-list{display:grid}.task-link{display:flex;justify-content:space-between;gap:10px;padding:12px 4px;border-bottom:1px solid #ecece8;text-decoration:none;color:var(--text)}.assembly-sheet{background:#fff;border:1px solid var(--border);border-radius:14px;padding:8px 24px;margin-bottom:18px}.assembly-line{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 4px;border-bottom:1px solid var(--border)}.assembly-line:last-child{border-bottom:0}.assembly-line>div{display:grid;grid-template-columns:28px 1fr;align-items:center;flex:1}.assembly-line b{font-size:20px}.assembly-line small{grid-column:2;color:var(--muted);margin-top:3px}.assembly-line strong{font-size:24px}.box{width:19px;height:19px;border:2px solid #555;border-radius:4px}.status-form{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.status-form span{margin-left:auto}.dim{opacity:.5}code{background:#f0f0ec;border-radius:5px;padding:2px 5px}@media(max-width:850px){.topbar{height:auto;position:static;display:block;padding:16px}.topbar nav{margin-top:12px}.wrap{padding:24px 14px}.grid2,.wide-left,.stats,.stats.three,.mapping-card{grid-template-columns:1fr}.mapping-form{grid-template-columns:1fr}.resolve-form{grid-template-columns:1fr}.page-head{align-items:stretch;flex-direction:column}.upload-form,.inline-form,.create-task{display:grid}.upload-form label,.inline-form label{min-width:0}.panel{overflow-x:auto}.assembly-line b{font-size:17px}.assembly-line strong{font-size:20px}}@media print{.topbar,.no-print{display:none!important}.wrap{max-width:none;padding:0}.assembly-sheet{border:0;padding:0}.assembly-line{break-inside:avoid}.print-head{margin-bottom:10px}body{background:#fff}}
.mapping-scopes{margin:12px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.auto-resolve-form{display:grid;gap:10px;align-content:center}.auto-resolve-form select{font-weight:650}.row-note{display:block;color:var(--muted);margin-top:4px;font-size:11px}
.form-hint{margin:12px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.backup-panel .panel-head{align-items:flex-start}.backup-panel .panel-head>div{min-width:0}.source-audit{margin-top:22px}.source-audit h2{margin-bottom:5px}@media print{.assembly-line small{display:none!important}.assembly-line b{font-size:21px}.assembly-line strong{font-size:24px}}
.bulk-upload-panel{border-color:#c7d8ce;background:linear-gradient(180deg,#fff 0%,#fbfdfb 100%)}.bulk-route-form{display:flex;gap:8px;align-items:center;min-width:320px}.bulk-route-form select{min-width:220px}.bulk-route-form .btn{white-space:nowrap}@media(max-width:850px){.bulk-route-form{display:grid;min-width:240px}.bulk-route-form select{min-width:0}}

.confidence-badge{display:inline-block;margin:6px 0 2px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:750}.confidence-badge.auto{background:#e3f3e8;color:#27603c}.confidence-badge.suggest{background:#fff0cb;color:#87560f}.confidence-badge.manual{background:#e8edf5;color:#3e5879}

/* v10 — единый редактор каталога / группировки SKU */
.catalog-head{align-items:center}.undo-form{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 12px}.undo-form div{display:grid;gap:2px;min-width:240px}.undo-form small{color:var(--muted);font-size:11px}.undo-form b{font-size:13px}.catalog-tabs{display:flex;gap:8px;margin:-6px 0 20px;border-bottom:1px solid var(--border)}.catalog-tab{display:flex;align-items:center;gap:7px;padding:12px 14px;color:var(--muted);text-decoration:none;font-weight:750;border-bottom:3px solid transparent}.catalog-tab.active{color:var(--text);border-color:var(--accent)}.tab-count{display:inline-flex;min-width:22px;height:22px;padding:0 7px;align-items:center;justify-content:center;border-radius:999px;background:#e9eae6;font-size:11px}.tab-count.warn{background:#ffc65a;color:#5f410c}.catalog-workspace{display:block}.catalog-toolbar{display:grid;gap:14px}.sticky-tools{position:sticky;top:82px;z-index:10;box-shadow:0 7px 20px rgba(0,0,0,.04)}.selection-summary{display:flex;align-items:center;justify-content:space-between;gap:14px}.plain-check{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:8px}.plain-check input,.sku-check input,.product-sku-row input,.merge-product input{width:18px;min-height:18px}.toolbar-actions{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:10px;align-items:end;padding-top:12px;border-top:1px solid #ecece8}.toolbar-actions.new-group-line{grid-template-columns:minmax(280px,1fr) 190px auto}.code-field{min-width:150px}.catalog-filter-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0}.catalog-filter-row input{max-width:560px}.sku-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sku-card{display:grid;grid-template-columns:28px 1fr;gap:12px;background:#fff;border:1px solid var(--border);border-radius:13px;padding:17px;cursor:pointer;transition:border-color .12s,background .12s}.sku-card:has(input:checked){border-color:#95b5a3;background:#f6fbf8}.sku-card[hidden],.product-card[hidden]{display:none!important}.sku-card-body{min-width:0}.sku-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.sku-title-row code{font-size:15px;font-weight:800}.sku-title-row strong{white-space:nowrap}.sku-card p{margin:9px 0;color:#3f413c;line-height:1.35}.sku-scopes{display:block;color:var(--muted);margin-top:10px;line-height:1.4}.catalog-create-panel{border-color:#c7d8ce}.merge-panel{background:#fbfbf9}.merge-form{display:grid;grid-template-columns:1.4fr .8fr;gap:20px}.merge-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.merge-product{display:grid;grid-template-columns:22px 1fr;gap:9px;align-items:center;border:1px solid var(--border);border-radius:9px;padding:9px;background:#fff}.merge-product span{display:grid;min-width:0}.merge-product b{font-size:13px}.merge-product small{color:var(--muted);font-weight:400;margin-top:2px}.merge-controls{display:grid;gap:10px;align-content:end}.product-catalog{display:grid;gap:16px}.product-card{padding:0;overflow:hidden}.product-card-head{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:20px 22px;border-bottom:1px solid var(--border);background:#fbfbf9}.product-card-head h2{margin:5px 0 4px;font-size:21px}.product-sku-list{display:grid}.product-sku-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 22px;border-bottom:1px solid #ecece8;cursor:pointer}.product-sku-row:has(input:checked){background:#f6fbf8}.product-sku-info{display:grid;gap:3px;min-width:0}.product-sku-info code{width:max-content}.product-sku-info b{font-size:13px;font-weight:650}.product-sku-info small{color:var(--muted);font-weight:400;white-space:normal}.product-sku-qty{font-weight:800;white-space:nowrap}.product-actions{display:grid;gap:12px;padding:16px 22px;background:#fbfbf9}.action-group{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;align-items:end}.action-group.split-group{grid-template-columns:minmax(260px,1fr) 170px auto}.danger-zone{display:flex;justify-content:flex-end;padding-top:4px}.danger-outline{border-color:#e1bcbc;color:var(--danger);background:#fff}.product-empty{margin:0;padding:22px}.catalog-filter-row+ .product-catalog{margin-top:0}
@media(max-width:850px){.catalog-head{align-items:stretch}.undo-form{justify-content:space-between}.undo-form div{min-width:0}.sticky-tools{position:static}.toolbar-actions,.toolbar-actions.new-group-line,.merge-form,.action-group,.action-group.split-group{grid-template-columns:1fr}.sku-grid,.merge-products{grid-template-columns:1fr}.catalog-filter-row{align-items:stretch;flex-direction:column}.catalog-filter-row input{max-width:none}.product-card-head{align-items:flex-start}.product-sku-row{grid-template-columns:24px 1fr}.product-sku-qty{grid-column:2}.catalog-tabs{overflow-x:auto}.catalog-tab{white-space:nowrap}}

/* v11: простая печатная форма, архив и переименование групп */
.product-rename-form{display:flex;gap:8px;align-items:center;margin:5px 0 4px}.product-rename-form input{font-size:21px;font-weight:800;min-height:40px;padding:5px 8px;max-width:620px}.product-rename-form .btn{white-space:nowrap}.task-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.task-head-actions form,.archive-actions form{margin:0}.packing-sheet{background:#fff;border:1px solid var(--border);border-radius:12px;padding:26px 34px;margin-bottom:18px;max-width:920px}.packing-title{text-align:center;font-size:19px;font-weight:800}.packing-date{text-align:center;font-size:17px;font-weight:800;margin:3px 0 18px}.packing-table{width:100%;border-collapse:collapse}.packing-table td{padding:5px 4px;border-bottom:1px dotted #777;font-size:16px;line-height:1.15}.packing-num{width:34px;text-align:right}.packing-name{font-weight:500}.packing-qty{width:58px;text-align:right;font-weight:800}.packing-unit{width:48px;font-weight:700}.archive-panel{margin-top:20px}.archive-count{min-width:32px;height:32px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eeeeea;font-weight:800}.archive-task-list{display:grid}.archive-task-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 2px;border-bottom:1px solid #ecece8}.archive-task-row:last-child{border-bottom:0}.archive-task-row>a{display:grid;gap:3px;color:var(--text);text-decoration:none}.archive-task-row small{color:var(--muted)}.archive-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}@media(max-width:850px){.product-rename-form{display:grid;grid-template-columns:1fr}.product-rename-form input{max-width:none;font-size:18px}.task-head-actions{justify-content:flex-start}.packing-sheet{padding:20px 14px}.archive-task-row{align-items:flex-start;flex-direction:column}.packing-table td{font-size:14px}}
@media print{body{font-family:Arial,sans-serif}.wrap{padding:0!important}.packing-sheet{border:0;border-radius:0;padding:0;margin:0;max-width:none}.packing-title{font-size:16pt}.packing-date{font-size:14pt;margin-bottom:12pt}.packing-table td{font-size:12pt;padding:3pt 2pt;border-bottom:1px dotted #666}.packing-num{width:26pt}.packing-qty{width:38pt}.packing-unit{width:34pt}.source-audit,.status-form,.task-screen-head{display:none!important}}

/* v13 — аналитика сборочных заданий */
.analytics-head{align-items:center}.analytics-filters{padding:16px 18px}.analytics-filter-form{display:grid;grid-template-columns:1.05fr 1fr 1fr 1.15fr 1.35fr 1.6fr auto auto;gap:10px;align-items:end}.analytics-filter-form label{min-width:0}.analytics-filter-form .btn{white-space:nowrap}.analytics-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.analytics-grid{grid-template-columns:.8fr 1.2fr}.market-bars,.day-bars{display:grid;gap:14px}.market-bar-row{display:grid;gap:6px}.market-bar-label{display:flex;justify-content:space-between;gap:12px;align-items:center}.market-bar-label span,.market-bar-row small{color:var(--muted);font-size:12px}.market-bar-track{height:9px;background:#eceeea;border-radius:999px;overflow:hidden}.market-bar-track i{display:block;height:100%;background:#59685f;border-radius:999px;min-width:2px}.day-bars{max-height:350px;overflow:auto;padding-right:4px}.day-bar-row{display:grid;grid-template-columns:48px minmax(120px,1fr) 44px 48px;gap:9px;align-items:center;font-size:12px}.day-bar-row>b{text-align:right}.day-bar-row>small{color:var(--muted);text-align:right}.day-bar-track{height:16px;position:relative;background:#f0f1ee;border-radius:4px;overflow:hidden}.day-bar-track i{position:absolute;left:0;display:block}.day-bar-track .issued{top:0;height:100%;background:#59685f}.day-bar-track .unique{bottom:0;height:5px;background:#a9c5b3}.analytics-table-wrap{overflow:auto}.analytics-table td:nth-last-child(-n+4),.analytics-table th:nth-last-child(-n+4){text-align:right}.analytics-table td:nth-child(1){color:var(--muted);width:42px}.analytics-table td small{display:block;color:var(--muted);margin-top:3px}.analytics-table strong{font-size:16px}@media(max-width:1100px){.analytics-filter-form{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-grid{grid-template-columns:1fr}}@media(max-width:650px){.analytics-filter-form,.analytics-stats{grid-template-columns:1fr}.day-bar-row{grid-template-columns:42px minmax(90px,1fr) 36px}.day-bar-row>small{display:none}.market-bar-label{align-items:flex-start;flex-direction:column;gap:2px}}


/* API TEST / API Lab */
.api-lab-head{align-items:center}.api-test-pill{display:inline-flex;align-items:center;padding:8px 11px;border-radius:999px;background:#fff0cb;color:#87560f;border:1px solid #f0d49b;font-size:11px;font-weight:850;letter-spacing:.04em;white-space:nowrap}.api-account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.api-account-card{border:1px solid var(--border);border-radius:12px;padding:16px;background:#fbfbf9;display:grid;gap:12px}.api-account-top,.api-account-foot{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.api-account-top h3{margin:4px 0 0;font-size:17px}.api-account-foot{align-items:center}.api-account-foot small{color:var(--muted)}.api-raw-panel{border-color:#d9c58f}.api-raw-form{display:grid;gap:14px}.api-raw-fields{display:grid;grid-template-columns:1.2fr 1.1fr 1.5fr;gap:12px}.api-raw-form textarea{width:100%;border:1px solid #cfd0ca;border-radius:8px;padding:12px;background:#fff;color:var(--text);font:13px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;resize:vertical}.api-raw-actions{display:flex;justify-content:space-between;gap:14px;align-items:center}.api-json-view{margin:0;max-height:680px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#20211f;color:#eceeea;border-radius:10px;padding:18px;font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}.api-key-list{display:flex;gap:8px;flex-wrap:wrap}.api-key-list code{padding:6px 8px}.api-stat-text{font-size:22px!important;margin-top:14px!important}@media(max-width:850px){.api-account-grid,.api-raw-fields{grid-template-columns:1fr}.api-raw-actions,.api-account-top,.api-account-foot{align-items:stretch;flex-direction:column}.api-test-pill{align-self:flex-start}}

/* API Lab v2 — Ozon credentials + read-only FBS */
.api-mode-form{display:grid;gap:10px}.ozon-connect-box{border-top:1px solid var(--border);padding-top:14px;display:grid;gap:12px}.ozon-connect-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.ozon-credentials-form{display:grid;grid-template-columns:1fr 1.35fr auto;gap:8px;align-items:end}.ozon-api-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ozon-api-actions form{margin:0}.ozon-fbs-form{display:grid;gap:9px;padding:12px;border:1px solid #c7d8ce;border-radius:10px;background:#f8fbf9}.ozon-fbs-grid{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:8px}.ozon-fbs-form small{line-height:1.35}.api-fbs-stats .stat strong{font-size:32px}.api-normalized-table th:last-child,.api-normalized-table td:last-child{text-align:right}.api-normalized-table td{font-size:12px}.api-normalized-table code{font-size:11px}.api-json-small{max-height:360px}@media(max-width:850px){.ozon-credentials-form,.ozon-fbs-grid{grid-template-columns:1fr}.ozon-connect-title{align-items:flex-start;flex-direction:column}.ozon-api-actions{display:grid;grid-template-columns:1fr}.ozon-api-actions .btn{width:100%}}

/* API integrations — simplified daily workspace */
.integrations-head{align-items:center}.integration-safe-note{margin-bottom:26px}.integration-market-section{margin-bottom:30px}.integration-market-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:12px}.integration-market-head h2{margin:0 0 4px;font-size:23px}.integration-count{font-size:12px;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:6px 9px;background:#fff}.integration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.integration-grid.compact .integration-card{min-height:94px}.integration-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px;display:grid;gap:15px;min-width:0}.integration-card.connected{border-color:#b8d6c3}.integration-card.planned{background:#fafaf8}.integration-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.integration-card-top h3{margin:4px 0 0;font-size:19px}.connection-state{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:750;white-space:nowrap}.connection-state i{display:block;width:8px;height:8px;border-radius:50%;background:#b7b8b1}.connection-state.online{color:#2b6942}.connection-state.online i{background:#4c9a69}.integration-metrics{display:grid;grid-template-columns:1.25fr 1fr 1fr;border-top:1px solid #ecece8;border-bottom:1px solid #ecece8}.integration-metrics>div{padding:12px 12px 12px 0}.integration-metrics>div+div{padding-left:12px;border-left:1px solid #ecece8}.integration-metrics span{display:block;color:var(--muted);font-size:11px}.integration-metrics strong{display:inline-block;font-size:28px;line-height:1;margin-top:7px}.integration-metrics small{margin-left:4px;color:var(--muted)}.integration-card-meta{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--muted);font-size:12px}.integration-warning,.warning-text{color:#9a5b12!important}.integration-card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.integration-card-actions form{margin:0}.integration-empty-text{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.muted-market{opacity:.84}
.integration-summary-row{display:grid;grid-template-columns:1.25fr repeat(3,1fr);gap:12px;margin-bottom:20px}.integration-summary-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px}.integration-summary-card.primary-summary{border-color:#b8d6c3;background:#f7fbf8}.integration-summary-card span{display:block;color:var(--muted);font-size:12px}.integration-summary-card strong{display:block;font-size:36px;line-height:1;margin:8px 0}.integration-summary-card small{color:var(--muted)}.integration-preview-panel{overflow:visible}.integration-sync-line{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:10px 12px;margin:-2px 0 12px;background:#f4f4f1;border-radius:8px;color:var(--muted);font-size:12px}.integration-sync-line a{margin-left:auto;color:var(--accent)}.integration-preview-table td,.integration-preview-table th{vertical-align:middle}.integration-preview-table code{white-space:nowrap}.integration-preview-table .unmapped-row{background:#fffaf0}.integration-total-cell{text-align:right;font-size:17px}.integration-preview-table tfoot td{border-top:2px solid var(--border);border-bottom:0}.integration-bottom-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:6px}.integration-detail-head .task-head-actions,.integrations-head .task-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media(max-width:900px){.integration-grid,.integration-summary-row{grid-template-columns:1fr}.integration-market-head,.integration-card-meta,.integration-bottom-actions{align-items:stretch;flex-direction:column}.integration-card-actions{display:grid;grid-template-columns:1fr}.integration-card-actions .btn,.integration-card-actions form,.integration-card-actions form .btn{width:100%}.integration-sync-line a{margin-left:0}.integration-preview-panel{overflow-x:auto}}

/* Ozon API SKU reconciliation */
.summary-link-card{display:block;text-decoration:none;color:inherit;cursor:pointer;transition:.15s ease}.summary-link-card:hover{border-color:#8eb79d;box-shadow:0 5px 18px rgba(35,80,55,.08);transform:translateY(-1px)}.resolved-summary{background:#f8fbf9}.ozon-map-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ozon-map-box{display:grid;grid-template-columns:1fr;gap:9px;padding:14px;border:1px solid var(--border);border-radius:12px;background:#fafafa}.ozon-map-box select,.ozon-map-box input{width:100%;min-height:40px;border:1px solid var(--border);border-radius:9px;padding:8px 10px;background:#fff;color:var(--text)}.ozon-map-box .btn{justify-self:start}.ozon-unmapped-table td:first-child,.ozon-unmapped-table th:first-child{width:42px;text-align:center}.ozon-unmapped-table input[type=checkbox]{width:18px;height:18px}.select-all-label{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted)}.select-all-label input{width:17px;height:17px}.ozon-all-resolved{text-align:center;padding:42px 20px}.resolved-check{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:#e8f5ec;color:#23713f;font-size:30px;font-weight:800}.ozon-all-resolved h2{margin:0 0 8px}.warning-text a{color:inherit;font-weight:700}
@media(max-width:900px){.ozon-map-toolbar{grid-template-columns:1fr}.ozon-unmapped-actions{overflow:visible}}

/* Ozon mapping v5.1 — clean reconciliation workspace */
.ozon-mapping-form{display:grid;gap:0}.ozon-map-panel-head{align-items:flex-start}.ozon-selected-counter{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;border:1px solid var(--border);background:#f7f7f4;border-radius:999px;padding:7px 11px;color:var(--muted);font-size:12px}.ozon-selected-counter span{color:var(--text);font-weight:800}.ozon-map-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ozon-map-box{gap:15px;padding:18px;border-radius:14px;background:#fbfbf9}.ozon-map-box-head{display:flex;align-items:flex-start;gap:11px;min-height:46px}.ozon-map-box-head>div{display:grid;gap:3px}.ozon-map-box-head b{font-size:15px}.ozon-map-box-head small{color:var(--muted);font-size:12px;line-height:1.35}.ozon-map-step{flex:0 0 28px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--accent2);color:var(--accent);font-size:12px;font-weight:850}.ozon-map-field{display:grid;gap:7px;min-width:0}.ozon-map-field>span{font-size:12px;font-weight:750;color:#55584f}.ozon-map-field input,.ozon-map-field select{width:100%;height:46px;min-height:46px;padding:0 13px;border:1px solid #cfd0ca;border-radius:10px;background:#fff;font-size:14px;box-shadow:0 1px 0 rgba(0,0,0,.02)}.ozon-map-field input:focus,.ozon-map-field select:focus{outline:none;border-color:#7da18b;box-shadow:0 0 0 3px rgba(46,91,69,.10)}.ozon-auto-code-note{min-height:32px;color:var(--muted);font-size:11px;line-height:1.4;padding:0 2px}.ozon-map-submit{width:100%;justify-self:stretch;margin-top:auto}.ozon-unmapped-list-panel{padding:0;overflow:hidden}.ozon-unmapped-list-head{padding:20px 22px 15px;margin:0;border-bottom:1px solid var(--border)}.ozon-unmapped-list-head h2{margin:0 0 3px}.ozon-unmapped-table-wrap{overflow-x:auto}.ozon-unmapped-table{min-width:820px}.ozon-unmapped-table th{background:#fafaf8;padding-top:12px;padding-bottom:12px}.ozon-unmapped-table td{padding-top:15px;padding-bottom:15px}.ozon-unmapped-table tbody tr:hover{background:#fafcfb}.ozon-unmapped-table td:first-child,.ozon-unmapped-table th:first-child{width:52px;padding-left:20px}.ozon-unmapped-table td:nth-last-child(-n+3),.ozon-unmapped-table th:nth-last-child(-n+3){text-align:right;width:82px}.ozon-sku-name{font-size:13px}.ozon-unmapped-table input[type=checkbox],.select-all-label input[type=checkbox]{appearance:auto;width:18px;height:18px;min-height:18px;margin:0;flex:0 0 18px;padding:0}.select-all-label{display:flex;grid-template-columns:none;align-items:center;gap:8px;min-width:0;font-size:12px;font-weight:650;color:var(--muted);cursor:pointer}.select-all-label span{white-space:nowrap}@media(max-width:900px){.ozon-map-toolbar{grid-template-columns:1fr}.ozon-map-panel-head{align-items:stretch;flex-direction:column}.ozon-selected-counter{align-self:flex-start}.ozon-unmapped-list-head{align-items:flex-start;flex-direction:column}.ozon-map-box{padding:16px}}

/* API compiler — one clean packing preview across marketplaces */
.compiler-head{align-items:center}.compiler-summary{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:12px;margin-bottom:14px}.compiler-unmapped-card{background:#fffaf0;border-color:#ecd7ac}.compiler-market-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:20px}.compiler-market-chip{display:grid;grid-template-columns:1fr auto;gap:3px 12px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 14px;color:var(--text);text-decoration:none}.compiler-market-chip:hover{border-color:#abc9b5}.compiler-market-chip span{font-weight:750}.compiler-market-chip b{text-align:right}.compiler-market-chip small{grid-column:1/-1;color:var(--muted);font-size:11px}.compiler-warning-panel{display:flex;justify-content:space-between;align-items:center;gap:18px;border-color:#ecd7ac;background:#fffaf0}.compiler-warning-copy{display:grid;gap:4px}.compiler-warning-copy span{color:#76501c;font-size:13px;line-height:1.45}.compiler-resolve-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.compiler-sheet{background:#fff;border:1px solid var(--border);border-radius:14px;padding:24px 30px;max-width:940px;margin:0 auto 16px}.compiler-sheet-title{text-align:center;font-size:20px;font-weight:850}.compiler-sheet-date{text-align:center;color:var(--muted);font-weight:700;margin:3px 0 16px}.compiler-table{width:100%;border-collapse:collapse}.compiler-table td{padding:8px 4px;border-bottom:1px dotted #8b8b84;font-size:16px;vertical-align:middle}.compiler-table tfoot td{border-top:2px solid var(--border);border-bottom:0;padding-top:12px}.compiler-num{width:38px;text-align:right;color:var(--muted)}.compiler-product b{font-weight:600}.compiler-product small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.compiler-qty{width:70px;text-align:right;font-size:19px!important;font-weight:850}.compiler-unit{width:46px;font-weight:700}.compiler-bottom-actions{display:flex;justify-content:center;gap:8px}
@media(max-width:900px){.compiler-summary,.compiler-market-strip{grid-template-columns:1fr}.compiler-warning-panel{align-items:stretch;flex-direction:column}.compiler-resolve-actions{display:grid;grid-template-columns:1fr;width:100%}.compiler-resolve-actions .btn{width:100%}.compiler-sheet{padding:18px 14px}.compiler-table td{font-size:14px}.compiler-qty{font-size:17px!important}}
@media print{.compiler-summary,.compiler-market-strip,.compiler-warning-panel,.compiler-bottom-actions,.compiler-product small{display:none!important}.compiler-sheet{border:0;border-radius:0;padding:0;margin:0;max-width:none}.compiler-sheet-title{font-size:16pt}.compiler-sheet-date{font-size:13pt;margin-bottom:12pt}.compiler-table td{font-size:12pt;padding:4pt 2pt}.compiler-qty{font-size:12pt!important}.compiler-num{width:26pt}.compiler-unit{width:34pt}}

/* API compiler v1.1 — polished daily packing workspace */
.compiler-page{max-width:1080px;margin:0 auto}.compiler-v2-head{align-items:flex-end;margin-bottom:20px}.compiler-v2-title{max-width:680px}.compiler-v2-title h1{font-size:32px;margin:2px 0 6px}.compiler-v2-title p{max-width:650px;line-height:1.45}.compiler-v2-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.compiler-v2-actions form{margin:0}.compiler-v2-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}.compiler-v2-kpi{display:block;min-height:126px;padding:18px 20px;background:#fff;border:1px solid var(--border);border-radius:14px;color:var(--text);text-decoration:none}.compiler-v2-kpi.kpi-main{background:#f6fbf8;border-color:#b9d7c4}.compiler-v2-kpi.kpi-warning{background:#fffaf0;border-color:#ecd7ac;transition:.15s ease}.compiler-v2-kpi.kpi-warning:hover{border-color:#d5af67;transform:translateY(-1px)}.compiler-v2-kpi.kpi-ready{background:#f8fbf9}.kpi-label{font-size:12px;color:var(--muted);font-weight:650}.kpi-value{font-size:38px;line-height:1;margin:8px 0 7px;font-weight:850;letter-spacing:-.03em}.kpi-note{font-size:12px;color:var(--muted)}.compiler-v2-markets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.compiler-v2-market{position:relative;display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;min-height:82px;padding:14px 15px;background:#fff;border:1px solid var(--border);border-radius:14px;color:var(--text);text-decoration:none;transition:.15s ease;overflow:hidden}.compiler-v2-market:hover{border-color:#b8c6bd;box-shadow:0 5px 18px rgba(32,33,31,.05);transform:translateY(-1px)}.market-logo{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#f0f1ed;font-size:12px;font-weight:900;letter-spacing:-.02em}.market-ozon .market-logo{background:#edf2ff;color:#2458c8}.market-wb .market-logo{background:#f7edf8;color:#7a397d}.market-yandex .market-logo{background:#fff0ed;color:#a74334}.market-copy{display:grid;gap:3px;min-width:0}.market-copy strong{font-size:14px}.market-copy small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.market-total{font-size:25px;font-weight:850;white-space:nowrap}.market-total span{font-size:11px;color:var(--muted);font-weight:650;margin-left:3px}.market-warning{grid-column:2/-1;color:#915b12;font-size:11px;font-weight:700}.compiler-v2-warning{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 18px;margin-bottom:18px;border:1px solid #ecd7ac;border-radius:14px;background:#fffaf0}.compiler-v2-warning>div:first-child{display:grid;gap:4px}.compiler-v2-warning span{font-size:12px;color:#76501c;line-height:1.4}.compiler-v2-resolve{display:flex;gap:8px;flex-wrap:wrap}.compiler-v2-sheet{background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 1px 0 rgba(0,0,0,.02)}.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px 18px;border-bottom:1px solid var(--border);background:#fcfcfa}.sheet-eyebrow{font-size:10px;letter-spacing:.1em;font-weight:800;color:var(--muted)}.sheet-head h2{font-size:22px;margin:3px 0 0;letter-spacing:-.02em}.sheet-date{padding:8px 11px;border:1px solid var(--border);border-radius:9px;background:#fff;font-size:13px;font-weight:750;color:#55584f}.compiler-v2-table-wrap{overflow-x:auto}.compiler-v2-table{width:100%;border-collapse:collapse}.compiler-v2-table th{padding:11px 16px;background:#fafaf8;border-bottom:1px solid var(--border);font-size:10px;color:var(--muted);letter-spacing:.07em;text-transform:uppercase}.compiler-v2-table td{padding:14px 16px;border-bottom:1px solid #ecece8;vertical-align:middle}.compiler-v2-table tbody tr:hover{background:#fbfcfa}.compiler-v2-table .col-num{width:54px;text-align:center;color:#8a8d84}.compiler-v2-table .product-name{font-size:14px;font-weight:700}.compiler-v2-table .col-source{width:310px}.compiler-v2-table .col-qty{width:126px;text-align:right;white-space:nowrap}.compiler-v2-table .col-qty strong{font-size:19px;font-weight:900}.compiler-v2-table .col-qty span{margin-left:5px;color:var(--muted);font-size:12px;font-weight:650}.source-badges{display:flex;gap:5px;justify-content:flex-start;flex-wrap:wrap}.source-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:999px;background:#f0f1ed;color:#65685f;font-size:10px;font-weight:650;white-space:nowrap}.source-badge b{color:inherit}.source-ozon{background:#edf2ff;color:#315fb9}.source-wb{background:#f7edf8;color:#7a397d}.source-yandex{background:#fff0ed;color:#a74334}.compiler-v2-table tfoot td{padding:15px 16px;border-top:2px solid var(--border);border-bottom:0;background:#fafaf8;font-weight:850}.compiler-v2-bottom{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
@media(max-width:900px){.compiler-page{max-width:none}.compiler-v2-head{align-items:stretch;flex-direction:column}.compiler-v2-actions{display:grid;grid-template-columns:1fr}.compiler-v2-actions .btn,.compiler-v2-actions form,.compiler-v2-actions form .btn{width:100%}.compiler-v2-kpis,.compiler-v2-markets{grid-template-columns:1fr}.compiler-v2-warning{align-items:stretch;flex-direction:column}.compiler-v2-resolve{display:grid;grid-template-columns:1fr}.compiler-v2-resolve .btn{width:100%}.sheet-head{padding:18px}.compiler-v2-table .col-source{min-width:210px}.compiler-v2-table td{padding:12px}.compiler-v2-table th{padding:10px 12px}}
@media print{.topbar,.compiler-v2-head,.compiler-v2-kpis,.compiler-v2-markets,.compiler-v2-warning,.compiler-v2-bottom,.no-print{display:none!important}.wrap{max-width:none;padding:0}.compiler-page{max-width:none}.compiler-v2-sheet{border:0;border-radius:0;box-shadow:none}.sheet-head{padding:0 0 12pt;background:#fff}.sheet-eyebrow{font-size:9pt}.sheet-head h2{font-size:16pt}.sheet-date{border:0;padding:0;font-size:12pt}.compiler-v2-table th{background:#fff;font-size:9pt;padding:5pt 4pt}.compiler-v2-table td{font-size:11pt;padding:6pt 4pt}.compiler-v2-table .product-name{font-size:11pt}.compiler-v2-table .col-qty strong{font-size:11pt}.compiler-v2-table .col-qty span{font-size:9pt}}


/* Today: one compact API action, same visual language as the compiler. */
.today-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.today-head-actions form{margin:0}.today-api-strip{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:13px 16px;margin:-4px 0 18px}.today-api-strip>div{display:flex;align-items:center;gap:9px;min-width:0}.today-api-strip>div>span:not(.today-api-dot){color:var(--muted);font-size:13px}.today-api-strip>a{color:var(--warn);font-weight:700;text-decoration:none;font-size:13px}.today-api-ready{color:#27603c!important;font-weight:700}.today-api-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:0 0 auto}.compiler-v2-actions form,.compiler-v2-bottom form{margin:0}@media(max-width:850px){.today-head-actions{width:100%}.today-head-actions .btn,.today-head-actions form,.today-head-actions form .btn{width:100%}.today-api-strip{align-items:flex-start;flex-direction:column}.today-api-strip>div{flex-wrap:wrap}}

/* ========================================================================
   GLOBAL VISUAL REFRESH v2 — 2026-08-29
   Только визуальный слой. Логика, формы, маршруты и данные не меняются.
   ======================================================================== */
:root{
  --bg:#f4f5f2;
  --panel:#ffffff;
  --panel-soft:#fafbf8;
  --text:#1f221f;
  --muted:#70766e;
  --muted-2:#92978f;
  --border:#dde1da;
  --border-strong:#cfd5cc;
  --accent:#2f654d;
  --accent-hover:#285640;
  --accent-soft:#edf6f0;
  --warn:#8b5c17;
  --warnbg:#fff7e7;
  --danger:#9b3b3b;
  --shadow:0 1px 2px rgba(27,33,28,.025);
  --radius:14px;
}

html{font-size:16px}
body{
  background:var(--bg);
  color:var(--text);
  font-size:15px;
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Верхняя навигация */
.topbar{
  height:60px;
  padding:0 28px;
  gap:0;
  border-bottom:1px solid rgba(255,255,255,.06);
  box-shadow:0 1px 0 rgba(0,0,0,.08);
}
.topbar-inner{
  width:100%;
  max-width:1280px;
  height:100%;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:30px;
}
.brand{
  flex:0 0 auto;
  font-size:14px;
  font-weight:850;
  letter-spacing:.055em;
  white-space:nowrap;
}
.brand span{
  font-size:9px;
  font-weight:800;
  letter-spacing:.045em;
  padding:3px 6px;
  margin-left:7px;
  border-radius:5px;
  background:#f2f3ef;
  color:#363934;
}
.topbar nav{
  display:flex;
  align-items:stretch;
  gap:4px;
  height:100%;
  flex-wrap:nowrap;
  overflow-x:auto;
  scrollbar-width:none;
}
.topbar nav::-webkit-scrollbar{display:none}
.topbar a{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:4px;
  height:100%;
  padding:0 13px;
  border-radius:0;
  color:#cfd2cc;
  font-size:13.5px;
  font-weight:650;
  white-space:nowrap;
  transition:color .15s ease,background .15s ease;
}
.topbar a:hover{background:rgba(255,255,255,.045);color:#fff}
.topbar a.active{color:#fff;background:rgba(255,255,255,.035)}
.topbar a.active:after{
  content:"";
  position:absolute;
  left:13px;
  right:13px;
  bottom:0;
  height:3px;
  border-radius:3px 3px 0 0;
  background:#76a98c;
}
.topbar .badge{font-size:10px;line-height:18px;height:18px;min-width:18px;padding:0 5px;margin-left:3px}

/* Общая геометрия страниц */
.wrap{max-width:1280px;margin:0 auto;padding:36px 30px 76px}
.page-head{
  align-items:center;
  margin-bottom:24px;
  min-height:58px;
}
.page-head>div:first-child{min-width:0}
.page-head h1{
  margin:0 0 5px;
  font-size:31px;
  line-height:1.08;
  letter-spacing:-.035em;
  font-weight:820;
}
.page-head p,.muted{font-size:14px;line-height:1.4;color:var(--muted)}
.eyebrow{font-size:10px;letter-spacing:.085em;font-weight:800;color:#7a8078}

/* Карточки и блоки */
.panel,
.stat,
.integration-card,
.integration-summary-card,
.api-account-card,
.compiler-v2-kpi,
.compiler-v2-market,
.undo-form,
.success-box{
  border-color:var(--border);
  box-shadow:var(--shadow);
}
.panel{
  border-radius:var(--radius);
  padding:20px 22px;
  margin-bottom:20px;
}
.panel h2{font-size:19px;line-height:1.2;margin:0 0 16px;letter-spacing:-.015em}
.panel-head{min-height:32px;margin-bottom:12px}
.panel-head h2{margin:0}
.panel-head>a{font-size:13px;font-weight:700;text-decoration:none}
.grid2{gap:18px}
.wide-left{grid-template-columns:minmax(0,1.35fr) minmax(300px,.8fr)}

/* Кнопки: один размер и одна система */
.btn,
button.btn,
input[type="submit"].btn{
  min-height:40px;
  height:40px;
  padding:0 14px;
  gap:7px;
  border-color:var(--border-strong);
  border-radius:9px;
  background:#fff;
  color:var(--text);
  font-size:13px;
  line-height:1;
  font-weight:720;
  box-shadow:none;
  white-space:nowrap;
  transition:background .15s ease,border-color .15s ease,color .15s ease,transform .08s ease;
}
.btn:hover{background:#f7f8f5;border-color:#bfc6bc}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn.small{min-height:32px;height:32px;padding:0 10px;border-radius:8px;font-size:12px}
.task-head-actions,
.today-head-actions,
.archive-actions,
.integration-card-actions,
.compiler-v2-actions,
.compiler-v2-bottom,
.integration-bottom-actions{
  gap:8px;
}
.task-head-actions form,
.today-head-actions form,
.archive-actions form,
.integration-card-actions form,
.compiler-v2-actions form,
.compiler-v2-bottom form{display:inline-flex;margin:0}

/* Поля форм */
label{gap:6px;font-size:12.5px;font-weight:700;color:#343832}
label small{font-size:11.5px;line-height:1.35}
input,select,textarea{
  min-height:42px;
  border-color:var(--border-strong);
  border-radius:9px;
  padding:8px 11px;
  font-size:13px;
  outline:none;
  transition:border-color .15s ease,box-shadow .15s ease;
}
input:focus,select:focus,textarea:focus{
  border-color:#7ca18c;
  box-shadow:0 0 0 3px rgba(47,101,77,.09);
}
input[type="checkbox"],input[type="radio"]{min-height:auto;width:18px;height:18px;accent-color:var(--accent)}
.upload-form,.inline-form{gap:10px}

/* KPI */
.stats{gap:14px;margin-bottom:18px}
.stat{padding:17px 18px;border-radius:var(--radius);min-height:118px}
.stat span{font-size:12px;font-weight:650}
.stat strong{font-size:32px;line-height:1;margin:8px 0 7px;letter-spacing:-.035em}
.stat small{font-size:11.5px;line-height:1.3}

/* Таблицы */
table{font-variant-numeric:tabular-nums}
th{
  padding:10px 9px;
  font-size:10.5px;
  line-height:1.2;
  letter-spacing:.055em;
  font-weight:800;
  color:#747a72;
  background:transparent;
}
td{
  padding:12px 9px;
  min-height:48px;
  font-size:13.5px;
  line-height:1.35;
  border-bottom-color:#e8ebe5;
}
td a{font-weight:700;text-underline-offset:2px}
tbody tr{transition:background .1s ease}
tbody tr:hover{background:#fafbf8}
code{background:#f0f2ed;color:#454a43;font-size:.9em;padding:2px 5px}

/* Статусы */
.status{
  display:inline-flex;
  align-items:center;
  min-height:23px;
  padding:3px 8px;
  font-size:10.5px;
  line-height:1;
  font-weight:800;
  letter-spacing:.005em;
}
.status.imported,.status.done{background:#e6f4ea;color:#28623e}
.status.mapping,.status.in_progress{background:#fff1cf;color:#85580f}
.status.created{background:#e9eef5;color:#405b77}

/* Сообщения */
.alert{padding:12px 14px;border-radius:10px;margin-bottom:16px;font-size:13px}
.success-box{padding:16px 18px;border-radius:12px;font-size:13.5px}
.empty{padding:22px 8px;font-size:13px}

/* Сегодня */
.today-head{margin-bottom:16px}
.today-head-actions{flex-wrap:nowrap}
.today-api-strip{
  min-height:48px;
  padding:11px 14px;
  margin:0 0 16px;
  border-radius:11px;
  background:#fff;
}
.today-api-strip>div>span:not(.today-api-dot),.today-api-strip>a,.today-api-ready{font-size:12.5px}
.today-api-dot{width:8px;height:8px}

/* Загрузки */
.bulk-upload-panel{padding:20px 22px;background:#fff;border-color:#cbdacf}
.bulk-upload-panel .panel-head{margin-bottom:10px}
.bulk-upload-panel input[type="file"],.inline-form input[type="file"]{padding:7px;background:#fbfcfa}
.bulk-route-form{gap:8px}
.form-hint{font-size:11.5px;line-height:1.45;margin-top:10px}

/* Товары */
.catalog-head{margin-bottom:18px}
.catalog-tabs{margin:-2px 0 18px;gap:2px}
.catalog-tab{padding:10px 13px;font-size:13px}
.catalog-toolbar{gap:12px}
.sticky-tools{top:72px;box-shadow:0 8px 24px rgba(26,32,27,.045)}
.sku-grid{gap:10px}
.sku-card{padding:15px;border-radius:12px}
.product-card{border-radius:14px}
.product-card-head{padding:17px 19px}
.product-card-head h2{font-size:19px}
.product-sku-row{padding:11px 19px}
.product-actions{padding:14px 19px}
.undo-form{padding:9px 11px}

/* Сборка */
.task-screen-head{align-items:center}
.packing-sheet{
  max-width:980px;
  padding:26px 32px;
  border-radius:14px;
  box-shadow:var(--shadow);
}
.packing-title{font-size:21px}
.packing-date{font-size:16px;margin:4px 0 18px}
.packing-table td{padding:7px 5px;font-size:15px;line-height:1.25}
.archive-panel{margin-top:18px}
.archive-task-row{padding:13px 2px}
.archive-task-row>a b{font-size:14px}
.archive-task-row small{font-size:12px}

/* Аналитика */
.analytics-head{margin-bottom:18px}
.analytics-filters{padding:15px 16px}
.analytics-filter-form{
  grid-template-columns:1fr 1fr 1fr 1.1fr 1.15fr 1.35fr auto auto;
  gap:9px;
}
.analytics-filter-form .btn{min-width:86px}
.analytics-stats{gap:12px}
.analytics-grid{gap:16px;grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr)}
.market-bars,.day-bars{gap:12px}
.day-bars{max-height:none;overflow:visible;padding-right:0}
.day-bar-row{min-height:26px}
.analytics-table-wrap{border-radius:10px}
.analytics-table td{padding-top:11px;padding-bottom:11px}

/* Интеграции */
.integrations-head{margin-bottom:16px}
.integration-safe-note{margin-bottom:22px}
.integration-market-section{margin-bottom:26px}
.integration-market-head{align-items:center;margin-bottom:11px}
.integration-market-head h2{font-size:22px}
.integration-market-head>div:last-child{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:nowrap;
}
.integration-market-head form{display:inline-flex;margin:0}
.integration-count{padding:5px 8px;font-size:11px}
.integration-grid{gap:10px}
.integration-card{padding:15px 16px;gap:12px;border-radius:13px}
.integration-card-top h3{font-size:18px}
.connection-state{font-size:11px}
.connection-state i{width:7px;height:7px}
.integration-metrics>div{padding:10px 10px 10px 0}
.integration-metrics>div+div{padding-left:10px}
.integration-metrics strong{font-size:25px;margin-top:6px}
.integration-card-meta{font-size:11px}
.integration-card-actions{flex-wrap:nowrap}
.integration-card-actions .btn{flex:0 0 auto}
.integration-summary-row{gap:10px;margin-bottom:17px}
.integration-summary-card{padding:16px;border-radius:13px}
.integration-summary-card strong{font-size:32px}

/* Общая сборка / компилятор */
.compiler-page{max-width:1180px}
.compiler-v2-head{margin-bottom:18px}
.compiler-v2-actions{flex-wrap:nowrap}
.compiler-v2-kpis{gap:10px;margin-bottom:12px}
.compiler-v2-kpi{min-height:112px;padding:16px 18px;border-radius:13px}
.kpi-value{font-size:34px}
.compiler-v2-markets{gap:10px;margin-bottom:16px}
.compiler-v2-market{min-height:74px;padding:12px 14px;border-radius:13px}
.market-logo{width:34px;height:34px;border-radius:9px}
.market-total{font-size:22px}
.compiler-v2-sheet{border-radius:14px}
.sheet-head{padding:18px 21px 15px}
.sheet-head h2{font-size:20px}
.compiler-v2-table td{padding:12px 14px}
.compiler-v2-table th{padding:10px 14px}
.compiler-v2-table .col-qty strong{font-size:18px}

/* API Lab */
.api-account-grid{gap:10px}
.api-account-card{padding:15px;border-radius:13px}
.api-account-top h3{font-size:17px}
.api-json-view{border-radius:11px}

/* Настройки */
.backup-panel{padding:19px 21px}
.backup-panel table td{padding-top:10px;padding-bottom:10px}
.source-audit{margin-top:18px}
.danger-zone{padding-top:2px}

/* Маленькие экраны */
@media(max-width:1100px){
  .wrap{padding-left:22px;padding-right:22px}
  .analytics-filter-form{grid-template-columns:repeat(4,minmax(0,1fr))}
  .analytics-grid{grid-template-columns:1fr}
  .integration-market-head>div:last-child{flex-wrap:wrap}
}
@media(max-width:850px){
  .topbar{height:auto;padding:0 14px;position:sticky}
  .topbar-inner{display:block;padding:12px 0 0}
  .brand{padding:0 4px 10px}
  .topbar nav{height:46px;margin:0;gap:0}
  .topbar a{padding:0 10px;font-size:13px}
  .topbar a.active:after{left:10px;right:10px}
  .wrap{padding:24px 14px 60px}
  .page-head{align-items:stretch;flex-direction:column;min-height:0}
  .page-head h1{font-size:28px}
  .today-head-actions,.task-head-actions,.compiler-v2-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .today-head-actions .btn,.today-head-actions form,.today-head-actions form .btn,
  .task-head-actions .btn,.task-head-actions form,.task-head-actions form .btn,
  .compiler-v2-actions .btn,.compiler-v2-actions form,.compiler-v2-actions form .btn{width:100%}
  .analytics-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .integration-market-head{align-items:stretch;flex-direction:column}
  .integration-market-head>div:last-child{justify-content:flex-start}
  .integration-card-actions{display:flex;flex-wrap:wrap}
  .panel{padding:17px 15px}
}
@media(max-width:560px){
  .today-head-actions,.task-head-actions,.compiler-v2-actions,.analytics-filter-form{grid-template-columns:1fr}
  .stats,.stats.three,.analytics-stats{grid-template-columns:1fr}
}

@media print{
  body{font-size:11pt}
  .topbar{display:none!important}
  .panel,.packing-sheet,.compiler-v2-sheet{box-shadow:none!important}
}

/* Столярный цех */
.product-head-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.carpentry-toggle-form{margin:0}
.carpentry-toggle{display:inline-flex;align-items:center;gap:9px;min-height:36px;padding:6px 10px;border:1px solid var(--line,#dedede);border-radius:9px;background:#fff;font-size:13px;font-weight:650;cursor:pointer;user-select:none;white-space:nowrap}
.carpentry-toggle input{position:absolute;opacity:0;pointer-events:none}
.toggle-ui{position:relative;width:34px;height:19px;border-radius:999px;background:#d8dbd9;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);transition:.16s ease}
.toggle-ui:after{content:"";position:absolute;width:15px;height:15px;left:2px;top:2px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.16s ease}
.carpentry-toggle input:checked + .toggle-ui{background:#315f48}
.carpentry-toggle input:checked + .toggle-ui:after{transform:translateX(15px)}
.carpentry-toggle:has(input:checked){border-color:#b9cec1;background:#f5faf7;color:#234b38}
.carpentry-btn{border-color:#b9cec1!important;background:#f5faf7!important;color:#234b38!important}
.carpentry-btn:hover{background:#eaf4ee!important}
.carpentry-sheet .packing-title{letter-spacing:.01em}
.carpentry-empty{max-width:760px}
@media(max-width:850px){.product-head-tools{justify-content:flex-start;width:100%}.carpentry-toggle{width:max-content}}

/* Столярка v1.2 — явное сохранение правил */
.carpentry-save-bar{
  position:sticky;
  top:70px;
  z-index:12;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 0 14px;
  padding:12px 14px;
  border:1px solid #c9d8cf;
  border-radius:12px;
  background:rgba(247,250,248,.97);
  box-shadow:0 8px 24px rgba(26,32,27,.055);
  backdrop-filter:blur(7px);
}
.carpentry-save-bar>div{display:flex;align-items:baseline;gap:10px;min-width:0;flex-wrap:wrap}
.carpentry-save-bar b{font-size:13px;color:#234b38}
.carpentry-save-bar .muted{font-size:12px}
.carpentry-save-bar .unsaved{color:#8a5a10;font-weight:650}
.carpentry-save-bar .saved{color:#315f48;font-weight:650}
.carpentry-save-bar .btn{flex:0 0 auto}
.dissolve-task-form{display:inline-flex;margin:0}
@media(max-width:850px){
  .carpentry-save-bar{top:94px;align-items:stretch;flex-direction:column;gap:9px}
  .carpentry-save-bar .btn{width:100%}
}

/* ========================================================================
   BRANDING — Тёплый Лофт — Сборка
   ======================================================================== */
.topbar .brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  height:100%;
  padding:0 2px;
  color:#fff;
  text-decoration:none;
  letter-spacing:0;
  border-radius:8px;
}
.topbar .brand:hover{background:transparent;color:#fff;opacity:.94}
.brand-icon{
  width:32px;
  height:32px;
  display:block;
  flex:0 0 32px;
  border-radius:8px;
}
.brand-copy{
  display:grid;
  gap:1px;
  line-height:1;
  white-space:nowrap;
}
.brand-copy strong{
  font-size:13px;
  line-height:1.05;
  font-weight:850;
  letter-spacing:.055em;
  color:#fff;
}
.brand-copy small{
  font-size:9px;
  line-height:1.05;
  font-weight:750;
  letter-spacing:.13em;
  color:#9eb6aa;
}
@media(max-width:850px){
  .topbar .brand{height:auto;padding:0 4px 10px}
  .brand-icon{width:30px;height:30px;flex-basis:30px}
}


/* ========================================================================
   BRANDING v1.1 — чистый логотип в шапке, без белой плашки
   ======================================================================== */
.topbar-inner{gap:18px}
.topbar .brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  height:100%;
  min-width:max-content;
  padding:0 20px 0 0;
  margin:0 2px 0 0;
  border-right:1px solid rgba(255,255,255,.11);
  border-radius:0;
  color:#fff;
  text-decoration:none;
  opacity:1;
}
.topbar .brand:hover{background:transparent;color:#fff;opacity:.9}
.topbar .brand > .brand-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:2px;
  margin:0!important;
  padding:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:inherit!important;
  font-size:inherit!important;
  font-weight:inherit!important;
  letter-spacing:normal!important;
  line-height:1!important;
  white-space:nowrap;
}
.brand-icon{
  width:30px;
  height:30px;
  flex:0 0 30px;
  display:block;
  border-radius:7px;
}
.brand-title{
  margin:0;
  color:#f7f7f4;
  font-size:14px;
  line-height:1.05;
  font-style:normal;
  font-weight:800;
  letter-spacing:.005em;
}
.brand-subtitle{
  margin:0;
  color:#8fb69f;
  font-size:10px;
  line-height:1.05;
  font-style:normal;
  font-weight:700;
  letter-spacing:.06em;
}
@media(max-width:850px){
  .topbar .brand{height:auto;padding:0 16px 10px 4px;margin-right:0;border-right:0}
  .brand-icon{width:29px;height:29px;flex-basis:29px}
  .brand-title{font-size:14px}
  .brand-subtitle{font-size:10px}
}

/* Production v1: auth and header session action */
.topbar-inner{display:flex;align-items:center;gap:22px}
.topbar nav{flex:1}
.topbar-logout{margin-left:auto;color:#c8cbc7;text-decoration:none;font-size:12px;font-weight:700;opacity:.82;white-space:nowrap}
.topbar-logout:hover{color:#fff;opacity:1}
.login-page{min-height:100vh;background:#f3f4f1;display:grid;place-items:center;margin:0}
.login-shell{width:min(420px,calc(100% - 32px));margin:auto}
.login-card{background:#fff;border:1px solid #d8ddd7;border-radius:14px;padding:28px;box-shadow:0 12px 40px rgba(30,32,29,.07)}
.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}
.login-brand img{width:38px;height:38px}
.login-brand div{display:flex;flex-direction:column;line-height:1.05}
.login-brand strong{font-size:18px;color:#1f211f}
.login-brand span{font-size:12px;color:#2f6b50;font-weight:800;margin-top:4px}
.login-card h1{font-size:27px;margin:0 0 7px}
.login-card>p{margin:0 0 22px;color:#68706a;font-size:14px}
.login-form{display:grid;gap:15px}
.login-form label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#343934}
.login-form input{width:100%;box-sizing:border-box;height:42px;border:1px solid #cfd5cf;border-radius:8px;padding:0 12px;font-size:15px;background:#fff}
.login-form input:focus{outline:2px solid rgba(47,107,80,.18);border-color:#2f6b50}
.login-form button{height:42px;border-radius:8px;font-weight:800}
.login-error{border:1px solid #e7b7b2;background:#fff1ef;color:#9b2c24;border-radius:8px;padding:10px 12px;margin:0 0 16px;font-size:13px;font-weight:700}
@media(max-width:760px){.topbar-logout{display:none}.login-card{padding:22px}}
