:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f8fb;--page-bg:radial-gradient(circle at 8% 10%,#e6f9f6 0,#f7f8fb 42%);--card:#fff;--text:#111827;--muted:#6b7280;--line:#d6dbe3;--line-soft:#e9edf3;--primary:#0f766e;--primary-dark:#115e59;--danger:#b91c1c;--danger-dark:#991b1b;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow-sm:0 1px 2px #0f172a14;--shadow-md:0 8px 24px #0f172a1f;--control-h:38px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-16:16px;--fs-18:18px;--fs-28:28px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1119;--page-bg:radial-gradient(circle at 8% 10%,#10222f 0,#0b1119 42%);--card:#111a26;--text:#e5e7eb;--muted:#9aa6b2;--line:#2a3747;--line-soft:#223141;--primary:#0f766e;--primary-dark:#14b8a6;--danger:#dc2626;--danger-dark:#b91c1c;--shadow-sm:0 1px 2px #02061773;--shadow-md:0 8px 24px #0206178c}*{box-sizing:border-box}html,body{background:var(--page-bg);color:var(--text);font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:var(--fs-14);margin:0;padding:0;line-height:1.45}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;font-size:var(--fs-14)}input,textarea,select{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);width:100%;color:var(--text);min-height:var(--control-h);padding:8px 10px}textarea{resize:vertical;min-height:84px;line-height:1.35}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline-offset:1px;outline:2px solid #14b8a6}button,.secondary-btn,.danger-btn{border-radius:var(--radius-sm);height:var(--control-h);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:600;transition:background-color .15s,color .15s,opacity .15s;display:inline-flex}button{background:var(--primary);color:#fff}button:hover{background:var(--primary-dark)}button:disabled,.secondary-btn:disabled,.danger-btn:disabled{opacity:.65;cursor:default}.secondary-btn{color:#111827;background:#e8edf3}.secondary-btn:hover{background:#dbe3ec}.danger-btn{background:var(--danger);color:#fff}.danger-btn:hover{background:var(--danger-dark)}.icon-btn{color:#1f2937;background:#e8edf3;border-radius:7px;width:28px;min-width:28px;height:28px;padding:0;font-size:11px;font-weight:700}.icon-btn:hover{background:#dbe3ec}.link-btn{color:#111827;height:auto;min-height:0;font-size:var(--fs-13);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.link-btn:hover{color:#0f766e;background:0 0}.page{padding:var(--space-5);max-width:1650px;margin:0 auto}.main-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.main-header h1{font-size:var(--fs-28);margin:0;line-height:1.2}.main-header p{color:var(--muted);font-size:var(--fs-14);margin:6px 0 0}.header-actions{align-items:center;gap:var(--space-2);display:inline-flex}.tabs{gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.tab{color:#1f2937;background:#e8edf3;font-weight:600}.tab.active{background:var(--primary);color:#fff}.kpi-grid{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));display:grid}.kpi-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-1);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.kpi-card small{color:var(--muted);font-size:var(--fs-12)}.kpi-card strong{color:var(--text);font-size:24px;line-height:1.15}.kpi-card.warning{background:#fff8ef}.card-stack{gap:var(--space-4);flex-direction:column;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.card-head{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.card h2{font-size:var(--fs-18);margin:0;line-height:1.3}.grid-form{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.grid-form.compact{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.stack-form{gap:var(--space-3);flex-direction:column;display:flex}.grid-form label,.inline-form label,.inline-row label,.stack-form label{font-size:var(--fs-13);color:#334155;flex-direction:column;align-items:flex-start;gap:6px;font-weight:600;display:flex}.inline-form,.inline-row{gap:var(--space-2);flex-wrap:wrap;align-items:flex-end;display:flex}.inline-row>input,.inline-form>input,.inline-row>select,.inline-form>select{width:auto;min-width:180px}.inline-divider{background:var(--line);flex-shrink:0;align-self:stretch;width:1px;margin:0 4px}.card-panels{align-items:flex-start;gap:0;display:flex}.card-panel{gap:var(--space-3);flex-direction:column;flex:1;min-width:0;display:flex}.card-panel:first-child{padding-right:var(--space-5)}.card-panel:last-child{padding-left:var(--space-5)}.card-panel-divider{background:var(--line);flex-shrink:0;align-self:stretch;width:1px;margin:0}.card-panel h3{font-size:var(--fs-12);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0;font-weight:700}@media (max-width:700px){.card-panels{flex-direction:column}.card-panel:first-child{padding-right:0;padding-bottom:var(--space-4)}.card-panel:last-child{padding-left:0;padding-top:var(--space-4)}.card-panel-divider{align-self:stretch;width:auto;height:1px}}.form-actions{align-items:flex-end;gap:var(--space-2);display:flex}.form-actions-end{flex-wrap:wrap;justify-content:flex-end}.section-title{font-size:var(--fs-18);margin:0;line-height:1.3}.combined-controls{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.search-row{margin:0}.search-row>input{min-width:280px}.toolbar-row{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-start;display:flex}.table-wrap-scroll-both{max-height:min(68vh,780px)}.column-toggle-list{gap:8px;display:grid}.checkbox-row{font-size:var(--fs-14);color:#334155;flex-direction:row;align-items:center;gap:8px;font-weight:500;display:flex}.stack-form label.checkbox-row{flex-direction:row;align-items:center}.checkbox-row input{width:16px;min-width:16px;height:16px;min-height:16px;margin:0}.table-wrap{border:1px solid var(--line);border-radius:var(--radius-md);overflow:auto}table{border-collapse:collapse;width:100%;min-width:920px}th,td{border-bottom:1px solid var(--line-soft);vertical-align:top;font-size:var(--fs-13);text-overflow:ellipsis;white-space:nowrap;border-right:1px solid #d6dbe3b8;max-width:360px;padding:10px 12px;overflow:hidden}th:last-child,td:last-child{border-right:none}th{text-align:left;z-index:2;background:#f8fafc;font-weight:700;position:sticky;top:0}tbody tr:nth-child(2n) td{background:#fcfdff}tbody tr:hover td{background:#f3f8ff}th.product-col-head{background:#f8fafc}th.supplier-col-head{background:#fff}td.product-col-cell{background:#f8fafc}tbody tr:nth-child(2n) td.product-col-cell{background:#f3f7fb}tbody tr:hover td.product-col-cell{background:#eaf2ff}.product-name-cell{white-space:normal;min-width:220px}.product-date-col{width:132px;min-width:132px;max-width:132px}.product-name-btn{color:#0f172a;font-weight:700;font-size:var(--fs-13);text-align:left;cursor:pointer;background:0 0;border:none;height:auto;min-height:0;margin:0;padding:0}.product-name-btn:hover{color:#0f766e;background:0 0}.tiny-muted{color:#94a3b8;margin-top:3px;font-size:11px;display:block}.sticky-action-col{text-align:center;width:58px;min-width:58px;max-width:58px;padding:8px}th.sticky-action-col{z-index:5;background:#fff;border-left:1px solid #d6dbe3b8;right:0}td.sticky-action-col{z-index:4;background:#fff;border-left:1px solid #d6dbe3b8;position:sticky;right:0}tbody tr:nth-child(2n) td.sticky-action-col{background:#fcfdff}tbody tr:hover td.sticky-action-col{background:#f3f8ff}.danger-icon-btn{color:#991b1b;background:#fee2e2;border:1px solid #fecaca}.danger-icon-btn:hover{background:#fecaca}.danger-icon-btn svg{width:14px;height:14px}.th-row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.th-controls{gap:4px;display:inline-flex}.row-actions{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.row-actions button,.row-actions .secondary-btn,.row-actions .danger-btn{height:32px;font-size:var(--fs-13);padding:0 10px}.thumb{border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--line);background:#fff;width:46px;height:46px}.chips-wrap{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{border:1px solid var(--line);font-size:var(--fs-13);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:5px 8px;display:inline-flex}.muted{color:var(--muted)}.small{font-size:var(--fs-12)}.warn{background:#fef3c7}.ok{color:#065f46}.error-box{color:#991b1b;border-radius:var(--radius-md);background:#fee2e2;border:1px solid #ef4444;padding:10px 12px}.status-badge{font-size:var(--fs-12);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:3px 9px;font-weight:700;display:inline-flex}.status-ok{color:#166534;background:#dcfce7}.status-conflict{color:#991b1b;background:#fee2e2}.status-missing{color:#92400e;background:#fef3c7}.status-na{color:#475569;background:#f1f5f9}.status-neutral{color:#374151;background:#e5e7eb}.status-best{color:#166534;opacity:.55;background:#86efac}.price-topline{align-items:center;gap:6px;display:flex}.best-price-cell{background:#ecfdf5}tbody tr:nth-child(2n) td.best-price-cell{background:#e4f9ee}tbody tr:hover td.best-price-cell{background:#d1fae5}.supplier-head{flex-direction:column;gap:6px;display:flex}.supplier-title-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.supplier-title-link{color:#0f172a;font-weight:700}.supplier-title-link:hover{color:#0f766e}.supplier-header-actions{gap:4px;display:inline-flex}.supplier-action-btn{cursor:pointer;justify-content:center;align-items:center;width:26px;min-width:26px;height:26px;padding:0;display:inline-flex}.supplier-action-btn svg{width:14px;height:14px}.supplier-upload-btn{color:#1e3a8a;pointer-events:auto;background:#e0f2fe;border:1px solid #bfdbfe}.supplier-upload-btn:hover{background:#bae6fd}.supplier-upload-input{display:none}.supplier-meta{color:#94a3b8;margin:0;font-size:11px;font-weight:500;line-height:1.2;display:block}.supplier-rate-row{align-items:center}.supplier-head .rate-input{text-align:center;width:56px;min-width:56px;height:26px;min-height:26px;padding:0 6px;font-size:12px;font-weight:600;line-height:1}.supplier-price-cell{padding-top:22px;position:relative}.unavailable-price{opacity:.5}.cell-status-badge{color:#334155;opacity:.5;white-space:nowrap;text-transform:uppercase;letter-spacing:.02em;background:#cbd5e1;border-radius:0;padding:2px 7px;font-size:10px;font-weight:700;position:absolute;top:0;right:0}.cell-status-badge-error{color:#7f1d1d;background:#fca5a5}.cell-min-badge{color:#166534;opacity:.55;text-transform:uppercase;letter-spacing:.02em;background:#86efac;border-radius:0;padding:2px 7px;font-size:10px;font-weight:700;position:absolute;bottom:0;right:0}.product-cell{gap:var(--space-2);align-items:center;min-width:220px;display:flex}.sticky-col{z-index:3;background:#fff;position:sticky;left:0}.selected-row td{background:#ecfeff!important}.modal-overlay{padding:var(--space-4);z-index:50;background:#0f172a73;place-items:center;display:grid;position:fixed;inset:0}.modal-card{border-radius:var(--radius-lg);border:1px solid var(--line);width:min(760px,100%);max-height:92vh;box-shadow:var(--shadow-md);background:#fff;overflow:auto}.modal-card--wide{width:min(1400px,96vw)}.mappings-trigger{cursor:pointer;width:100%;padding:2px var(--space-1);color:var(--text);text-align:left;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:space-between;align-items:center;display:flex}.mappings-trigger:hover{background:0 0}.mappings-trigger:hover .mappings-trigger-label{color:var(--primary)}.mappings-trigger-label{font-size:var(--fs-18);color:var(--text);font-weight:600;transition:color .15s}.mappings-trigger-count{background:var(--primary);color:#fff;min-width:28px;height:24px;font-size:var(--fs-13);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:0 8px;font-weight:700;display:inline-flex}.modal-head{justify-content:space-between;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--line-soft);padding:12px 14px;display:flex}.modal-head h3{font-size:var(--fs-16);margin:0}.modal-close-btn{border:1px solid var(--line)}.modal-body{padding:14px}.modal-body p{margin:0}.modal-footer{justify-content:flex-end;gap:var(--space-2);border-top:1px solid var(--line-soft);padding:12px 14px;display:flex}.load-more-hint{margin-top:10px}.auth-page{min-height:100vh;padding:var(--space-5);place-items:center;display:grid}.auth-card{gap:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;max-width:430px;box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;padding:18px;display:flex}.auth-card h1{margin:0;font-size:24px}.auth-switch{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.auth-switch .tab{justify-content:center;width:100%}.auth-card p{color:var(--muted);margin:0}.auth-card label{font-size:var(--fs-13);color:#334155;flex-direction:column;gap:6px;font-weight:600;display:flex}.auth-helper{color:var(--muted);font-size:var(--fs-13)}:root[data-theme=dark] .secondary-btn{color:#e5e7eb;background:#233244}:root[data-theme=dark] .secondary-btn:hover{background:#2b3e54}:root[data-theme=dark] .icon-btn{color:#e5e7eb;background:#233244}:root[data-theme=dark] .icon-btn:hover{background:#2b3e54}:root[data-theme=dark] .kpi-card.warning{background:#2a2214}:root[data-theme=dark] .table-wrap,:root[data-theme=dark] .auth-card,:root[data-theme=dark] .chip,:root[data-theme=dark] .modal-card{background:var(--card);border-color:var(--line)}:root[data-theme=dark] th{color:var(--text);background:#1a2636}:root[data-theme=dark] th.supplier-col-head{background:#141f2d}:root[data-theme=dark] td{border-right-color:#3e536bb8}:root[data-theme=dark] tbody tr:nth-child(2n) td{background:#121d2b}:root[data-theme=dark] tbody tr:hover td{background:#1b2a3d}:root[data-theme=dark] td.product-col-cell{background:#1a2636}:root[data-theme=dark] tbody tr:nth-child(2n) td.product-col-cell{background:#172232}:root[data-theme=dark] tbody tr:hover td.product-col-cell{background:#203149}:root[data-theme=dark] td.sticky-action-col,:root[data-theme=dark] th.sticky-action-col{background:#141f2d;border-left-color:#3e536bb8}:root[data-theme=dark] .link-btn{color:#e5e7eb}:root[data-theme=dark] .product-name-btn,:root[data-theme=dark] .supplier-title-link{color:#93c5fd}:root[data-theme=dark] .link-btn:hover,:root[data-theme=dark] .product-name-btn:hover,:root[data-theme=dark] .supplier-title-link:hover{color:#2dd4bf}:root[data-theme=dark] .status-neutral{color:#e5e7eb;background:#374151}:root[data-theme=dark] .cell-status-badge{color:#cbd5e1;background:#475569}:root[data-theme=dark] .cell-status-badge-error{color:#fecaca;background:#7f1d1d}:root[data-theme=dark] .supplier-upload-btn{color:#cbd5e1;background:#1e293b;border-color:#475569}:root[data-theme=dark] .supplier-upload-btn:hover{background:#334155}:root[data-theme=dark] .best-price-cell{background:#1b2b23}:root[data-theme=dark] tbody tr:nth-child(2n) td.best-price-cell{background:#1a2a22}:root[data-theme=dark] tbody tr:hover td.best-price-cell{background:#21342a}:root[data-theme=dark] .cell-min-badge{color:#d1fae5;opacity:.45;background:#166534}@media (max-width:1024px){table{min-width:760px}}@media (max-width:768px){.page{padding:12px}.main-header{flex-direction:column}.main-header h1{font-size:24px}.grid-form,.grid-form.compact{grid-template-columns:1fr}.kpi-grid{grid-template-columns:1fr 1fr}.inline-row>input,.inline-form>input,.inline-row>select,.inline-form>select{min-width:140px}}
