:root{--c-blue-500:#4a6cf7;--c-blue-600:#3a5ce5;--c-blue-50:#eef0f8;--c-blue-100:#f3f6ff;--c-blue-200:#d5d9f2;--c-blue-bg-soft:#4a6cf714;--c-ink-900:#1a1a2e;--c-ink-700:#333;--c-ink-600:#444;--c-ink-500:#555;--c-ink-450:#666;--c-ink-400:#777;--c-ink-300:#888;--c-ink-200:#999;--c-ink-100:#aaa;--c-ink-50:#bbb;--c-ink-25:#ccc;--c-border-strong:#d4d4dc;--c-border:#e0e0e6;--c-border-soft:#ececf0;--c-border-cell:#e8e8ec;--c-border-row:#f2f2f5;--c-border-subtle:#f4f4f6;--c-bg:#fff;--c-bg-page:#f7f7fa;--c-bg-hover:#f5f5f7;--c-bg-row-hover:#fafafc;--c-bg-header:#fafafa;--c-bg-child:#f8f8fa;--c-bg-input:#fafafa;--c-shell-dark:#2c2c2c;--c-shell-dark-2:#2d2d44;--c-success:#2e7d32;--c-success-bg:#e8f5e9;--c-success-border:#c8e6c9;--c-danger:#d32f2f;--c-danger-bg:#ffebee;--c-danger-bg-soft:#fff5f5;--c-danger-border:#ffcdd2;--c-warning:#b45309;--c-warning-bg:#fff8e1;--c-info:var(--c-blue-500);--c-overstock-bg:#ceeaf7;--c-overstock-text:#253173;--c-pill-oos-bg:#f7d0ce;--c-pill-oos-text:var(--c-ink-300);--c-cat-a-bg:#fef3c7;--c-cat-a-text:#92400e;--c-cat-b-bg:#e0e7ff;--c-cat-b-text:#3730a3;--c-cat-c-bg:#cffafe;--c-cat-c-text:#155e75;--c-cat-d-bg:#f0f0f4;--c-cat-d-text:var(--c-ink-200);--c-amazon:#232f3e;--c-amazon-accent:#f90;--c-amazon-bg:#fff3e0;--c-amazon-text:#e65100;--c-shopify:#5e8e3e;--c-shopify-bg:#e8f5e9;--c-shopify-text:var(--c-success);--color-primary:var(--c-blue-500);--color-primary-hover:var(--c-blue-600);--color-primary-bg:var(--c-blue-50);--color-primary-bg-strong:var(--c-blue-100);--color-text:var(--c-ink-700);--color-text-heading:var(--c-ink-900);--color-text-muted:var(--c-ink-200);--color-text-subtle:var(--c-ink-300);--color-text-faint:var(--c-ink-50);--color-surface:var(--c-bg);--color-surface-page:var(--c-bg-page);--color-surface-header:var(--c-bg-header);--color-surface-hover:var(--c-bg-hover);--color-border:var(--c-border-soft);--color-border-strong:var(--c-border-strong);--font-sans:-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif;--font-mono:"SF Mono", "Consolas", "Monaco", monospace;--fs-2xs:.58rem;--fs-xs:.62rem;--fs-sm:.68rem;--fs-base:.72rem;--fs-md:.76rem;--fs-lg:.78rem;--fs-xl:.82rem;--fs-2xl:.95rem;--fs-3xl:1.1rem;--fs-4xl:1.15rem;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--lh-tight:1.3;--lh-normal:1.4;--lh-loose:1.55;--radius-xs:3px;--radius-sm:4px;--radius-md:5px;--radius-lg:6px;--radius-xl:8px;--radius-pill:14px;--shadow-xs:0 1px 3px #00000014;--shadow-sm:0 1px 6px #0000001a;--shadow-md:0 2px 10px #0000001a;--shadow-lg:0 4px 16px #0000001f;--shadow-xl:0 4px 20px #0000001f;--shadow-modal:0 12px 40px #0000002e}.auth-page{min-height:100vh;font-family:var(--font-sans);background:#0f1117;justify-content:center;align-items:center;padding:1rem;display:flex}.auth-card{background:#1a1d27;border:1px solid #2a2d3a;border-radius:12px;width:100%;max-width:420px;padding:2.5rem}.auth-header{text-align:center;margin-bottom:2rem}.auth-header h1{font-size:1.75rem;font-weight:var(--fw-bold);color:#f0f0f5;letter-spacing:-.02em;margin:0 0 .5rem}.auth-header p{color:#8b8fa3;margin:0;font-size:.9rem}.auth-form{flex-direction:column;gap:1.25rem;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{font-size:.85rem;font-weight:var(--fw-medium);color:#c0c4d6}.form-group input{border-radius:var(--radius-xl);color:#f0f0f5;background:#0f1117;border:1px solid #2a2d3a;outline:none;padding:.7rem .85rem;font-family:inherit;font-size:.9rem;transition:border-color .15s}.form-group input::placeholder{color:#4a4e63}.form-group input:focus{border-color:var(--color-primary)}.auth-btn{background:var(--color-primary);color:#fff;border-radius:var(--radius-xl);font-size:.9rem;font-weight:var(--fw-semibold);cursor:pointer;border:none;margin-top:.5rem;padding:.75rem;font-family:inherit;transition:background .15s}.auth-btn:hover:not(:disabled){background:var(--color-primary-hover)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-error{color:#f87171;border-radius:var(--radius-xl);background:#ef44441a;border:1px solid #ef44444d;padding:.65rem .85rem;font-size:.85rem}.auth-footer{text-align:center;color:#8b8fa3;margin-top:1.5rem;font-size:.85rem}.auth-footer a{color:var(--color-primary);font-weight:var(--fw-medium);margin-left:.4rem;text-decoration:none}.auth-footer a:hover{text-decoration:underline}@keyframes spin{to{transform:rotate(360deg)}}.fb{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;padding:.5rem .75rem;position:relative}.fb-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.fb-search{background:var(--color-surface-page);border-radius:var(--radius-lg);min-width:220px;color:var(--c-ink-200);border:1px solid #e5e5ea;flex:0 320px;align-items:center;gap:.4rem;padding:.35rem .6rem;display:flex}.fb-search:focus-within{border-color:var(--color-primary);background:var(--color-surface)}.fb-search-input{font-size:var(--fs-xl);color:var(--c-ink-900);background:0 0;border:none;outline:none;flex:1;min-width:0;font-family:inherit}.fb-search-input::placeholder{color:var(--c-ink-50)}.fb-chips{flex-wrap:wrap;flex:1;align-items:center;gap:.35rem;min-width:0;display:flex}.fb-chip{background:var(--color-primary-bg);border:1px solid var(--c-blue-200);border-radius:var(--radius-pill);font-size:var(--fs-md);color:var(--c-ink-900);align-items:center;gap:.25rem;height:26px;padding:0 0 0 .55rem;display:inline-flex}.fb-chip-label{cursor:pointer;white-space:nowrap}.fb-chip-label strong{font-weight:var(--fw-semibold)}.fb-chip-x{cursor:pointer;color:var(--c-ink-450);border-radius:0 var(--radius-pill) var(--radius-pill) 0;background:0 0;border:none;align-items:center;height:100%;padding:0 .4rem;font-size:1rem;line-height:1;display:flex}.fb-chip-x:hover{color:var(--c-ink-900);background:#dcdff0}.fb-add-wrap{position:relative}.fb-add-btn{border:1px dashed var(--c-ink-50);color:var(--c-ink-500);font-size:var(--fs-md);border-radius:var(--radius-pill);cursor:pointer;background:0 0;height:26px;padding:.25rem .7rem;font-family:inherit;transition:all .12s}.fb-add-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:#f0f5ff}.fb-add-menu{background:var(--color-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:50;min-width:180px;padding:.3rem 0;position:absolute;top:calc(100% + 4px);left:0}.fb-add-item{text-align:left;width:100%;font-size:var(--fs-lg);color:var(--c-ink-700);cursor:pointer;background:0 0;border:none;padding:.4rem .85rem;font-family:inherit;display:block}.fb-add-item:hover{background:var(--color-surface-hover);color:var(--color-primary)}.fb-clear{color:var(--c-ink-400);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:.25rem .5rem;font-family:inherit;font-size:.74rem}.fb-clear:hover{color:var(--c-danger)}.fb-edit-wrap{position:relative}.fb-edit-popover{background:var(--color-surface);border:1px solid var(--c-border);border-radius:var(--radius-xl);z-index:60;min-width:260px;padding:.75rem .9rem;position:absolute;top:4px;left:0;box-shadow:0 6px 24px #00000024}.fb-edit-head{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.fb-edit-title{font-size:var(--fs-xl);font-weight:var(--fw-semibold);color:var(--c-ink-900)}.fb-edit-close{cursor:pointer;color:var(--c-ink-200);background:0 0;border:none;padding:0 .3rem;font-size:1.2rem;line-height:1}.fb-edit-close:hover{color:var(--c-ink-900)}.fb-edit-foot{border-top:1px solid #eee;justify-content:space-between;align-items:center;margin-top:.75rem;padding-top:.6rem;display:flex}.fb-edit-reset{color:var(--c-danger);cursor:pointer;background:0 0;border:none;padding:.25rem .4rem;font-family:inherit;font-size:.74rem}.fb-edit-reset:hover{text-decoration:underline}.fb-edit-apply{background:var(--c-ink-900);color:#fff;border-radius:var(--radius-sm);font-size:var(--fs-md);cursor:pointer;font-family:inherit;font-weight:var(--fw-medium);border:none;padding:.3rem .9rem}.fb-edit-apply:hover{background:var(--c-shell-dark-2)}.fb-input{width:100%;font-size:var(--fs-xl);border-radius:var(--radius-sm);background:var(--c-bg-input);color:var(--c-ink-900);border:1px solid #ddd;outline:none;padding:.4rem .6rem;font-family:inherit}.fb-input:focus{border-color:var(--color-primary);background:var(--color-surface)}.fb-input-sm{width:100%}.fb-opts{flex-direction:column;gap:.3rem;max-height:240px;display:flex;overflow-y:auto}.fb-opt{font-size:var(--fs-lg);color:var(--c-ink-700);cursor:pointer;align-items:center;gap:.5rem;padding:.15rem 0;display:flex}.fb-opt input{accent-color:var(--color-primary);cursor:pointer}.fb-range{gap:.6rem;display:flex}.fb-range-field{color:var(--c-ink-400);flex-direction:column;flex:1;gap:.2rem;font-size:.7rem;display:flex}.so-kpi{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);align-items:flex-start;gap:0;margin-bottom:.75rem;padding:.85rem 1rem;display:flex}.so-kpi-block{flex:1;padding:0 1.25rem}.so-kpi-block:first-child{padding-left:.5rem}.so-kpi-block:last-child{padding-right:.5rem}.so-kpi-divider{background:var(--color-border);flex-shrink:0;align-self:stretch;width:1px}.so-kpi-label{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--c-ink-200);margin-bottom:4px}.so-kpi-value{font-size:var(--fs-3xl);font-weight:var(--fw-bold);color:var(--c-ink-900)}.so-kpi-row{gap:1.5rem;display:flex}.so-kpi-col{flex-direction:column;display:flex}.so-kpi-sub{color:var(--c-ink-100);margin-top:1px;font-size:.65rem}.so-kpi-inline{font-size:var(--fs-xl);font-weight:var(--fw-medium);color:var(--c-ink-900);flex-wrap:wrap;gap:1rem;display:flex}.so-kpi-blur{filter:blur(6px);-webkit-user-select:none;user-select:none;pointer-events:none;opacity:.6}.so-filters{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex}.so-tabs{align-items:center;gap:2px;display:flex}.so-tab{border-radius:var(--radius-md);font-size:var(--fs-lg);font-weight:var(--fw-medium);color:var(--c-ink-200);cursor:pointer;background:0 0;border:1px solid #0000;padding:.3rem .75rem;font-family:inherit;transition:all .12s}.so-tab:hover{color:var(--c-ink-500);background:var(--color-surface-page)}.so-tab.active{color:var(--c-ink-900);font-weight:var(--fw-semibold);background:#f0f0f5;border-color:#ddd}.so-tab-add{padding:.2rem .55rem;font-size:.95rem}.so-tab-saved{border-radius:var(--radius-md);background:0 0;border:1px solid #0000;align-items:center;padding:0;display:inline-flex;overflow:hidden}.so-tab-saved.active{background:#f0f0f5;border-color:#ddd}.so-tab-saved-label{font-size:var(--fs-lg);font-weight:var(--fw-medium);color:var(--c-ink-500);cursor:pointer;background:0 0;border:none;padding:.3rem .5rem .3rem .75rem;font-family:inherit}.so-tab-saved.active .so-tab-saved-label{color:var(--c-ink-900);font-weight:var(--fw-semibold)}.so-tab-saved-label:hover{color:var(--c-ink-900)}.so-tab-saved-x{color:var(--c-ink-50);cursor:pointer;background:0 0;border:none;padding:.3rem .55rem .3rem .15rem;font-size:.95rem;line-height:1}.so-tab-saved-x:hover{color:var(--c-danger)}.sv-dialog{background:var(--color-surface);border:1px solid var(--color-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-md);align-items:center;gap:4px;margin-left:4px;padding:3px 4px 3px 6px;display:inline-flex}.sv-dialog-input{font-size:var(--fs-lg);color:var(--c-ink-900);background:0 0;border:none;outline:none;width:160px;padding:2px 4px;font-family:inherit}.sv-dialog-input::placeholder{color:var(--c-ink-50)}.sv-dialog-save{background:var(--color-primary);color:#fff;border-radius:var(--radius-xs);font-size:var(--fs-base);font-family:inherit;font-weight:var(--fw-medium);cursor:pointer;border:none;padding:3px 8px}.sv-dialog-save:hover{background:var(--color-primary-hover)}.sv-dialog-cancel{color:var(--c-ink-200);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1rem;line-height:1}.sv-dialog-cancel:hover{color:var(--c-ink-900)}.so-tools{align-items:center;gap:.7rem;display:flex}.so-tool-text{font-size:var(--fs-md);color:var(--c-ink-200);cursor:pointer;transition:color .12s}.so-tool-text:hover{color:var(--c-ink-900)}.so-tool-btn{border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-md);color:var(--c-ink-200);cursor:pointer;background:0 0;border:none;padding:.15rem .35rem;transition:all .12s}.so-tool-btn:hover{background:var(--color-surface-hover);color:var(--c-ink-900)}.so-tool-btn.active{color:var(--c-ink-900);font-weight:var(--fw-medium)}.so-tool-icons{gap:2px;margin-left:4px;display:flex}.so-tool-icon{border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;color:var(--c-ink-300);background:0 0;border:1px solid #ddd;justify-content:center;align-items:center;transition:all .12s;display:flex}.so-tool-icon:hover{background:var(--color-surface-hover);color:var(--c-ink-900)}.so-tool-icon.active{background:var(--c-ink-900);border-color:var(--c-ink-900);color:#fff}.col-picker-wrap{position:relative}.col-picker{background:var(--color-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:100;min-width:220px;max-height:400px;margin-top:6px;padding:.5rem 0;position:absolute;top:100%;right:0;overflow-y:auto}.col-picker-item{font-size:var(--fs-md);color:var(--c-ink-700);cursor:pointer;align-items:center;gap:.5rem;padding:.35rem .85rem;transition:background 80ms;display:flex}.col-picker-item:hover{background:var(--color-surface-hover)}.col-picker-item input[type=checkbox]{width:14px;height:14px;accent-color:var(--color-primary);cursor:pointer}.col-picker-item.dragging{opacity:.4;background:#eef1ff}.col-picker-grip{cursor:grab;color:var(--c-ink-50);letter-spacing:-2px;-webkit-user-select:none;user-select:none;font-size:.7rem}.col-picker-item:active .col-picker-grip{cursor:grabbing}.so-search{background:var(--color-surface);border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);align-items:center;gap:.5rem;padding:.45rem 1rem;display:flex}.so-search svg{color:var(--c-ink-200);flex-shrink:0}.so-search-input{font-size:var(--fs-xl);color:var(--c-ink-900);background:0 0;border:none;outline:none;flex:1;font-family:inherit}.so-search-input::placeholder{color:var(--c-ink-50)}.so-tbl-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:0 0 var(--radius-lg) var(--radius-lg);max-height:calc(100vh - 260px);overflow:auto}.so-tbl{border-collapse:collapse;width:100%;font-size:var(--fs-lg);white-space:nowrap;table-layout:fixed;color:var(--c-ink-700)}.so-tbl thead th{text-align:left;font-weight:var(--fw-medium);font-size:var(--fs-base);color:var(--c-ink-500);background:var(--color-surface-header);border-bottom:1px solid var(--c-border-cell);white-space:nowrap;z-index:5;padding:.55rem .65rem;position:sticky;top:0}.so-tbl td{border-bottom:1px solid var(--c-border-row);vertical-align:middle;padding:.55rem .65rem}.th-stack{line-height:var(--lh-tight);flex-direction:column;display:flex}.th-sub{font-size:var(--fs-xs);font-weight:var(--fw-regular);color:var(--c-ink-50)}.c-chk{text-align:center;width:36px}.c-chk input[type=checkbox]{width:15px;height:15px;accent-color:var(--c-ink-900);cursor:pointer}.c-exp{text-align:center;width:28px}.c-prod{width:200px;overflow:hidden}.c-vel{text-align:center;width:110px}.c-fc{text-align:center;width:120px}.c-inv{text-align:right;width:100px}.c-rw{text-align:center;width:90px}.c-be{text-align:right;width:100px}.c-grw{text-align:center;width:110px}.c-bz{text-align:center;width:100px}.c-bm{text-align:center;width:90px}.c-num{width:90px}.exp-btn{cursor:pointer;color:var(--c-ink-200);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:flex}.exp-btn:hover{background:#f0f0f5}.so-prod-cell{align-items:center;gap:.55rem;display:flex}.so-child-indent{padding-left:.5rem}.so-img{border-radius:var(--radius-lg);object-fit:cover;flex-shrink:0;width:38px;height:38px}.so-img-sm{border-radius:var(--radius-md);width:30px;height:30px}.so-img-placeholder{background:linear-gradient(135deg, var(--c-ink-900) 0%, var(--c-shell-dark-2) 50%, var(--c-ink-900) 100%)}.so-prod-info{flex-direction:column;gap:1px;min-width:0;display:flex;overflow:hidden}.so-prod-name{font-weight:var(--fw-semibold);font-size:var(--fs-lg);color:var(--c-ink-900);line-height:var(--lh-tight);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.so-child-name{font-weight:var(--fw-medium)}.so-prod-meta{font-size:var(--fs-sm);color:var(--c-ink-200);line-height:var(--lh-normal);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.4rem;display:flex;overflow:hidden}.so-sku{font-family:var(--font-mono);letter-spacing:-.02em}.so-prod-badge{background:var(--c-cat-d-bg);color:var(--c-ink-400);border-radius:var(--radius-xs);font-family:inherit;font-size:.6rem;font-weight:var(--fw-medium);white-space:nowrap;padding:0 5px;line-height:1.5}.so-child-label{color:var(--c-ink-400);font-family:inherit;font-weight:var(--fw-regular)}.abcd{width:17px;height:17px;font-size:var(--fs-2xs);font-weight:var(--fw-bold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-family:inherit;line-height:1;display:inline-flex}.abcd-a{background:var(--c-cat-a-bg);color:var(--c-cat-a-text)}.abcd-b{background:var(--c-cat-b-bg);color:var(--c-cat-b-text)}.abcd-c{background:var(--c-cat-c-bg);color:var(--c-cat-c-text)}.abcd-d{background:var(--c-cat-d-bg);color:var(--c-cat-d-text)}.so-row-parent{transition:background 80ms}.so-row-parent:hover td{background:var(--c-bg-row-hover)}.so-row-child td{background:#fdfdfe;transition:background 80ms}.so-row-child:hover td{background:var(--color-surface-page)}.trend-up{color:var(--c-success);font-size:var(--fs-lg);align-items:center;gap:2px;display:inline-flex}.trend-down{color:var(--c-danger);font-size:var(--fs-lg);align-items:center;gap:2px;display:inline-flex}.trend-stable{color:var(--c-ink-200);font-size:var(--fs-lg);align-items:center;gap:2px;display:inline-flex}.trend-stable strong{color:var(--c-ink-900)}.trend-arrow{cursor:help;position:relative}.trend-arrow:after{content:attr(data-tooltip);background:var(--c-ink-900);color:#fff;font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:var(--lh-normal);border-radius:var(--radius-md);white-space:pre;pointer-events:none;opacity:0;z-index:50;padding:6px 9px;transition:opacity .12s ease-out;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 4px 14px #0000002e}.trend-arrow:before{content:"";border:5px solid #0000;border-top-color:var(--c-ink-900);pointer-events:none;opacity:0;z-index:50;transition:opacity .12s ease-out;position:absolute;bottom:calc(100% + 1px);left:50%;transform:translate(-50%)}.trend-arrow:hover:after,.trend-arrow:hover:before{opacity:1}.fc-stack{flex-direction:column;align-items:center;gap:1px;display:flex}.fc-badge{border-radius:var(--radius-sm);font-size:var(--fs-md);font-weight:var(--fw-semibold);padding:2px 8px;display:inline-block}.fc-pos{background:var(--c-success-bg);color:var(--c-success)}.fc-neg{background:var(--c-danger-bg);color:var(--c-danger)}.fc-extra{font-weight:var(--fw-regular);opacity:.7}.fc-sub{color:var(--c-ink-50);font-size:.64rem}.inv-stack{flex-direction:column;align-items:flex-end;gap:0;display:flex}.inv-num{font-weight:var(--fw-semibold);color:var(--c-ink-900);font-size:var(--fs-lg);line-height:var(--lh-tight)}.inv-eur{color:var(--c-ink-200);font-size:.64rem;line-height:var(--lh-tight)}.rw-badge{border-radius:var(--radius-sm);font-size:var(--fs-md);font-weight:var(--fw-semibold);white-space:nowrap;padding:2px 8px;display:inline-block}.rw-red{background:var(--c-danger-bg);color:var(--c-danger)}.rw-yellow{background:var(--c-warning-bg);color:var(--c-warning)}.rw-green{background:var(--c-success-bg);color:var(--c-success)}.rw-blue{background:var(--c-overstock-bg);color:var(--c-overstock-text)}.bz{font-size:var(--fs-lg);font-weight:var(--fw-medium)}.bz-gruen{color:inherit}.bz-rot{color:var(--c-danger);font-weight:var(--fw-semibold)}.bz:hover{color:var(--color-primary)}.bm-value{cursor:pointer;font-weight:var(--fw-semibold);font-size:var(--fs-xl);color:var(--color-primary);transition:color .12s}.bm-value:hover{text-decoration:underline}.vel-click{cursor:pointer;border-radius:var(--radius-sm);padding:2px 4px;transition:background .12s}.vel-click:hover{color:var(--color-primary);background:#f0f0f5}.vp{background:var(--color-surface);border:1px solid var(--c-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);min-width:290px;padding:.85rem 1rem}.vp-head{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.vp-title{font-size:var(--fs-xl);font-weight:var(--fw-semibold);color:var(--c-ink-900)}.vp-wert{font-size:.9rem;font-weight:var(--fw-bold);color:var(--c-ink-900)}.vp-table{border-collapse:collapse;width:100%;margin-bottom:.6rem}.vp-table th{text-align:left;font-size:.66rem;font-weight:var(--fw-medium);color:var(--c-ink-200);border-bottom:1px solid #eee;padding:4px 6px}.vp-table td{font-size:var(--fs-md);color:var(--c-ink-900);border-bottom:1px solid #f5f5f8;padding:4px 6px}.vp-table tr:last-child td{border-bottom:none}.vp-oos{color:var(--c-danger);font-weight:var(--fw-semibold)}.vp-foot{border-top:1px solid #eee;padding-top:.5rem}.vp-hinweis{font-size:var(--fs-xs);color:var(--c-ink-200);line-height:var(--lh-tight)}.vp-weight-input{width:38px;font-size:var(--fs-base);border-radius:var(--radius-xs);text-align:right;background:var(--c-bg-input);border:1px solid #ddd;padding:1px 3px}.vp-weight-input:focus{border-color:var(--color-primary);background:var(--color-surface);outline:none}.vp-pct{color:var(--c-ink-200);margin-left:1px;font-size:.65rem}.vp-actions{text-align:right;padding:.4rem 0 .2rem}.vp-save-btn{font-size:.7rem;font-weight:var(--fw-medium);background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:3px 10px;transition:background .12s}.vp-save-btn:hover{background:var(--color-primary-hover)}.vp-save-btn:disabled{opacity:.6;cursor:default}.op{background:var(--color-surface);border:1px solid var(--c-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:420px;padding:1.2rem 1.4rem}.op-title{font-size:var(--fs-3xl);font-weight:var(--fw-semibold);color:var(--c-ink-900);margin:0 0 .8rem}.op-explanation{background:var(--c-success-bg);border-radius:var(--radius-lg);font-size:var(--fs-lg);color:var(--c-ink-700);line-height:var(--lh-loose);margin-bottom:1.1rem;padding:.75rem .85rem}.op-tl-header{justify-content:space-between;align-items:baseline;margin-bottom:.7rem;display:flex}.op-tl-title{font-size:.95rem;font-weight:var(--fw-semibold);color:var(--c-ink-900)}.op-legend{flex-wrap:wrap;gap:.6rem;display:flex}.op-legend-item{font-size:var(--fs-2xs);color:var(--c-ink-300);align-items:center;gap:3px;display:flex}.op-dot{border-radius:50%;width:8px;height:8px}.op-dot-green{background:#4caf50}.op-dot-red{background:#ef5350}.op-dot-yellow{background:#ffc107}.op-dot-triangle{border-top:7px solid #6a9f3a;border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0}.op-tl-body{padding-top:28px;position:relative}.op-stock-marker{z-index:2;pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute;top:0;transform:translate(-50%)}.op-stock-label{font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--c-danger);white-space:nowrap;margin-bottom:1px}.op-stock-line{background:#7986cb;width:2px;height:80px;position:absolute;top:14px}.op-stock-triangle{color:#6a9f3a;margin-top:1px;font-size:8px}.op-bar-wrap{border-radius:var(--radius-lg);z-index:1;height:12px;margin-bottom:4px;display:flex;position:relative;overflow:hidden}.op-bar-segment{min-width:2px}.op-bar-green{background:#4caf50}.op-bar-red{background:#ef5350}.op-bar-yellow{background:#ffc107}.op-bar-greenlight{background:#81c784}.op-lt-blocks{gap:0;margin-bottom:3px;display:flex}.op-lt-lead{border-radius:var(--radius-lg) 0 0 var(--radius-lg);font-size:var(--fs-sm);color:var(--c-ink-500);background:#d1d5ee;padding:6px 10px}.op-lt-lead strong{color:var(--c-danger);font-size:var(--fs-lg)}.op-lt-target{border-radius:0 var(--radius-lg) var(--radius-lg) 0;font-size:var(--fs-sm);color:var(--c-ink-500);text-align:right;background:#e8e4c8;margin-left:auto;padding:6px 10px}.op-lt-target strong{color:var(--c-success);font-size:var(--fs-lg)}.op-bar-dates{height:16px;color:var(--c-ink-100);margin-top:2px;font-size:.6rem;position:relative}.op-date-urgent{color:var(--c-danger);font-weight:var(--fw-semibold)}.op-pos{border-radius:var(--radius-lg);background:#f8f8f8;border:1px solid #eee;margin-top:.85rem;padding:.7rem .85rem}.op-pos-title{font-size:.88rem;font-weight:var(--fw-semibold);color:var(--c-ink-900);margin-bottom:.5rem}.op-po-row{font-size:var(--fs-md);color:var(--c-ink-600);align-items:center;gap:.6rem;padding:.3rem 0;display:flex}.op-po-indicator{background:#6a9f3a;border-radius:1px;flex-shrink:0;width:3px;height:16px}.op-po-name{font-weight:var(--fw-medium);text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.op-po-meta{color:var(--c-ink-200);font-size:var(--fs-base)}.op-po-units{font-weight:var(--fw-semibold);font-size:var(--fs-md)}.so-loading{color:var(--c-ink-200);font-size:var(--fs-xl);flex-direction:column;align-items:center;gap:.75rem;padding:3rem;display:flex}.so-leer{text-align:center;color:var(--c-ink-200);font-size:var(--fs-xl);padding:3rem}.so-error{border:1px solid var(--c-danger-border);border-radius:var(--radius-lg);color:var(--c-danger);font-size:var(--fs-xl);background:#fff0f0;align-items:center;gap:.75rem;padding:1rem;display:flex}.so-retry-btn{background:var(--color-surface);border:1px solid var(--c-danger-border);border-radius:var(--radius-sm);font-size:var(--fs-md);color:var(--c-danger);cursor:pointer;padding:.3rem .75rem;font-family:inherit}.so-retry-btn:hover{background:var(--c-danger-bg-soft)}.op-loading{color:var(--c-ink-200);padding:.5rem 0;font-size:.74rem}.op-bar-seg-label{color:#ffffffe6;font-size:.56rem;font-weight:var(--fw-medium);white-space:nowrap;text-overflow:ellipsis;padding:0 4px;overflow:hidden}.md-tbl-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:0 0 var(--radius-lg) var(--radius-lg);max-height:calc(100vh - 220px);overflow:auto}.md-tbl{table-layout:auto;font-size:var(--fs-lg);white-space:nowrap;border-collapse:collapse}.md-tbl thead th{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--c-ink-500);text-align:left;border-bottom:1px solid var(--c-border-cell);z-index:5;position:sticky;top:0;background:var(--color-surface-header)!important;padding:.4rem .5rem!important}.md-tbl td{border-bottom:1px solid var(--c-border-row);border-left:1px solid var(--c-border-row);vertical-align:middle;height:46px;position:relative;padding:0!important}.md-c-exp{text-align:center;width:28px;padding:0!important}.md-c-exp .exp-btn{padding:4px}.md-tbl thead th:first-child,.md-tbl tbody td:first-child{z-index:4;background:var(--color-surface);position:sticky;left:0}.md-tbl thead th:nth-child(2),.md-tbl tbody td:nth-child(2){z-index:4;background:var(--color-surface);position:sticky;left:28px;box-shadow:2px 0 4px #0000000a}.md-tbl thead th:first-child,.md-tbl thead th:nth-child(2){z-index:6;background:var(--color-surface-header)!important}.md-row-parent td:first-child,.md-row-parent td:nth-child(2){background:#fafbff}.md-input{width:100%;height:100%;font-size:var(--fs-xl);color:var(--c-ink-900);box-sizing:border-box;cursor:text;background:0 0;border:1px solid #0000;border-radius:0;outline:none;padding:8px 10px;font-family:inherit;transition:background 80ms;display:block}.md-input:hover:not(:disabled):not(:focus){background:#f0f3fb}.md-input:focus{border:2px solid var(--color-primary);background:var(--color-surface);z-index:5;padding:7px 9px;position:relative}.md-input:disabled{opacity:.6;cursor:wait}.md-input-num{text-align:right;font-family:var(--font-mono)}.md-select{cursor:pointer;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--c-ink-200) 50%), linear-gradient(135deg, var(--c-ink-200) 50%, transparent 50%);background-position:calc(100% - 10px),calc(100% - 6px);background-repeat:no-repeat;background-size:4px 4px;height:100%;padding-right:18px}.md-readonly{font-size:var(--fs-lg);color:var(--c-ink-400);align-items:center;height:100%;padding:8px 10px;display:flex}.md-name-cell{align-items:center;gap:8px;height:100%;padding-left:6px;display:flex}.md-img{border-radius:var(--radius-sm);object-fit:cover;background:var(--c-cat-d-bg);flex-shrink:0;width:32px;height:32px}.md-img-placeholder{background:linear-gradient(135deg,#e8e8ee 0%,#f4f4f8 100%)}.md-group-th{font-weight:var(--fw-semibold);border-bottom:1px solid var(--c-border);text-align:center!important;background:#f4f5fa!important;padding:.4rem .5rem!important}.md-sub-th{font-weight:var(--fw-medium);color:var(--c-ink-400);border-bottom:1px solid var(--c-border-cell);z-index:5;font-size:.7rem;position:sticky;top:32px;background:var(--color-surface-header)!important;text-align:center!important;padding:.3rem .5rem!important}.md-mono{font-family:var(--font-mono);color:var(--c-ink-900)}.md-prefix{font-weight:var(--fw-semibold);color:var(--c-ink-900);font-family:var(--font-mono)}.md-badge{font-size:.65rem;font-weight:var(--fw-semibold);border-radius:var(--radius-xs);letter-spacing:.02em;padding:1px 7px;display:inline-block}.md-badge-parent{background:var(--c-cat-a-bg);color:var(--c-cat-a-text)}.md-badge-child{background:var(--c-cat-b-bg);color:var(--c-cat-b-text)}.md-row-parent td{background:#fafbff}.md-row-parent:hover td{background:#f4f6ff}.md-input::placeholder{color:#b8bbcc;opacity:1;font-style:italic}.pm-search-bar{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.pm-search-input{border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);max-width:360px;font-size:var(--fs-xl);color:var(--c-ink-700);outline:none;flex:1;padding:.45rem .75rem;font-family:inherit}.pm-search-input:focus{border-color:var(--color-primary)}.pm-stats{color:var(--c-ink-200);font-size:.74rem}.pm-create-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);margin-bottom:1rem;padding:1.2rem 1.4rem}.pm-create-card h3{font-size:.88rem;font-weight:var(--fw-semibold);color:var(--c-ink-900);margin:0 0 .8rem}.pm-create-form{flex-direction:column;gap:.7rem;display:flex}.pm-create-field label{font-size:.74rem;font-weight:var(--fw-medium);color:var(--c-ink-450);margin-bottom:.25rem;display:block}.pm-create-field input{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);width:100%;max-width:340px;font-size:var(--fs-xl);color:var(--c-ink-700);outline:none;padding:.4rem .6rem;font-family:inherit}.pm-create-field input:focus{border-color:var(--color-primary)}.pm-create-hint{font-size:var(--fs-sm);color:var(--c-ink-100);margin-top:.2rem;display:block}.pm-create-actions{gap:.5rem;margin-top:.3rem;display:flex}.pm-content{flex-direction:column;gap:1.5rem;display:flex}.pm-section-title{font-size:var(--fs-xl);font-weight:var(--fw-semibold);color:var(--c-ink-500);text-transform:uppercase;letter-spacing:.02em;margin:0 0 .6rem}.pm-parent-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);margin-bottom:.5rem;overflow:hidden}.pm-parent-header{cursor:pointer;justify-content:space-between;align-items:center;padding:.7rem 1rem;transition:background .1s;display:flex}.pm-parent-header:hover{background:var(--c-bg-row-hover)}.pm-parent-left{flex:1;align-items:center;gap:.6rem;min-width:0;display:flex}.pm-expand{color:var(--c-ink-200);flex-shrink:0;width:14px;font-size:.65rem}.pm-thumb{border-radius:var(--radius-lg);object-fit:cover;flex-shrink:0;width:36px;height:36px}.pm-thumb-small{border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;width:28px;height:28px}.pm-parent-info{flex-direction:column;gap:2px;min-width:0;display:flex}.pm-parent-name{font-weight:var(--fw-semibold);color:var(--c-ink-900);cursor:text;border-radius:var(--radius-xs);margin:-1px -4px;padding:1px 4px;font-size:.84rem}.pm-parent-name:hover{background:var(--c-cat-d-bg)}.pm-parent-meta{font-size:var(--fs-base);align-items:center;gap:.6rem;display:flex}.pm-sku-prefix{font-family:var(--font-mono);color:var(--color-primary);font-weight:var(--fw-medium);cursor:text;border-radius:var(--radius-xs);margin:-1px -4px;padding:1px 4px}.pm-sku-prefix:hover{background:var(--color-primary-bg)}.pm-child-count{color:var(--c-ink-200)}.pm-parent-actions{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.pm-action-btn{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--fs-base);color:var(--c-ink-500);cursor:pointer;white-space:nowrap;align-items:center;gap:.3rem;padding:.3rem .6rem;font-family:inherit;display:inline-flex}.pm-action-btn:hover{background:var(--color-surface-hover)}.pm-action-btn.pm-action-danger{color:var(--c-danger);border-color:#e0c0c0}.pm-action-btn.pm-action-danger:hover{background:var(--c-danger-bg-soft)}.pm-action-btn.pm-action-small{padding:.2rem .45rem;font-size:.7rem}.pm-children{background:var(--c-bg-row-hover);border-top:1px solid #f0f0f4}.pm-empty{color:var(--c-ink-50);font-size:var(--fs-md);padding:.8rem 1rem .8rem 2.8rem;font-style:italic}.pm-child-row,.pm-unassigned-row{border-bottom:1px solid var(--c-border-row);align-items:center;gap:.6rem;padding:.5rem 1rem .5rem 2.8rem;display:flex}.pm-child-row:last-child,.pm-unassigned-row:last-child{border-bottom:none}.pm-unassigned-row{background:var(--color-surface);padding-left:1rem}.pm-child-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.pm-child-name{font-weight:var(--fw-medium);font-size:var(--fs-xl);color:var(--c-ink-900);cursor:text;border-radius:var(--radius-xs);text-overflow:ellipsis;white-space:nowrap;margin:-1px -4px;padding:1px 4px;overflow:hidden}.pm-child-name:hover{background:var(--c-cat-d-bg)}.pm-child-meta{align-items:center;gap:.5rem;display:flex}.pm-child-sku{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--c-ink-200);letter-spacing:-.02em}.pm-variant-detail{font-size:var(--fs-sm);color:var(--color-primary);font-weight:var(--fw-medium);background:var(--color-primary-bg);border-radius:var(--radius-xs);padding:0 5px;line-height:1.5}.pm-variant-editable{cursor:text}.pm-variant-editable:hover{background:#dde3f5}.pm-placeholder{color:var(--c-ink-25);font-style:italic;font-weight:var(--fw-regular)}.pm-child-badges{flex-shrink:0;gap:.3rem;display:flex}.pm-badge{border-radius:var(--radius-xs);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.02em;padding:1px 6px}.pm-badge-amazon{background:var(--c-amazon-bg);color:var(--c-amazon-text)}.pm-badge-shopify{background:var(--c-shopify-bg);color:var(--c-shopify-text)}.pm-inline-edit{border:1.5px solid var(--color-primary);border-radius:var(--radius-sm);font-size:var(--fs-xl);color:var(--c-ink-900);font-family:inherit;font-weight:var(--fw-medium);outline:none;width:240px;padding:2px 6px}.pm-inline-edit-small{width:140px;font-size:.74rem;font-family:var(--font-mono)}.pm-assign-wrapper{flex-shrink:0;position:relative}.pm-assign-dropdown{z-index:50;background:var(--color-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:180px;max-height:240px;margin-top:4px;padding:4px 0;position:absolute;top:100%;right:0;overflow-y:auto}.pm-assign-dropdown button{text-align:left;width:100%;font-size:var(--fs-md);color:var(--c-ink-700);cursor:pointer;background:0 0;border:none;padding:.4rem .75rem;font-family:inherit;display:block}.pm-assign-dropdown button:hover{background:var(--color-surface-hover)}.pm-dropdown-empty{color:var(--c-ink-100);padding:.5rem .75rem;font-size:.74rem;display:block}.pm-unassigned-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden}.settings-section{margin-bottom:2rem}.settings-section-title{font-size:var(--fs-2xl);font-weight:var(--fw-semibold);color:var(--c-ink-900);margin:0 0 .3rem}.settings-section-desc{font-size:var(--fs-xl);color:#8a8a9a;margin:0 0 1.2rem}.connection-cards{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem;display:grid}.connection-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);transition:border-color .15s;overflow:hidden}.connection-card:hover{border-color:var(--color-border-strong)}.connection-card.connected{border-color:var(--c-success-border)}.connection-card-header{border-bottom:1px solid var(--c-border-subtle);justify-content:space-between;align-items:center;padding:1rem 1.1rem;display:flex}.connection-platform{align-items:center;gap:.7rem;display:flex}.platform-icon{border-radius:var(--radius-xl);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.platform-icon.amazon{background:var(--c-amazon);color:var(--c-amazon-accent)}.platform-icon.shopify{color:var(--c-shopify);background:#f4f1eb}.platform-name{font-size:.88rem;font-weight:var(--fw-semibold);color:var(--c-ink-900);margin:0}.platform-type{font-size:var(--fs-base);color:var(--c-ink-200)}.connection-badge{font-size:.7rem;font-weight:var(--fw-medium);white-space:nowrap;border-radius:10px;padding:.2rem .6rem}.badge-connected{background:var(--c-success-bg);color:var(--c-success)}.badge-disconnected{color:var(--c-ink-200);background:#f5f5f5}.connection-card-body{min-height:52px;padding:.9rem 1.1rem}.connection-hint{font-size:var(--fs-lg);color:#8a8a9a;margin:0;line-height:1.45}.connection-info{flex-direction:column;gap:.4rem;display:flex}.info-row{font-size:var(--fs-lg);justify-content:space-between;align-items:center;display:flex}.info-label{color:#8a8a9a}.info-value{color:var(--c-ink-900);font-weight:var(--fw-medium)}.connection-card-footer{border-top:1px solid var(--c-border-subtle);justify-content:flex-end;padding:.8rem 1.1rem;display:flex}.btn-amazon{background:var(--c-amazon);color:var(--c-amazon-accent);border:1px solid var(--c-amazon);border-radius:var(--radius-md);font-size:var(--fs-lg);font-weight:var(--fw-semibold);cursor:pointer;padding:.4rem 1rem;font-family:inherit;transition:opacity .12s}.btn-amazon:hover{opacity:.9}.btn-shopify{background:var(--c-shopify);color:#fff;border:1px solid var(--c-shopify);border-radius:var(--radius-md);font-size:var(--fs-lg);font-weight:var(--fw-semibold);cursor:pointer;padding:.4rem 1rem;font-family:inherit;transition:opacity .12s}.btn-shopify:hover{opacity:.9}.btn-secondary{background:var(--color-surface-page);color:var(--c-ink-200);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--fs-lg);font-weight:var(--fw-medium);cursor:default;padding:.4rem 1rem;font-family:inherit}.credentials-form{flex-direction:column;gap:.65rem;display:flex}.credentials-field label{font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--c-ink-450);margin-bottom:.2rem;display:block}.credentials-field input{border-radius:var(--radius-sm);width:100%;font-size:var(--fs-lg);color:var(--c-ink-900);background:var(--c-bg-input);box-sizing:border-box;border:1px solid #ddd;padding:.4rem .55rem;font-family:inherit;transition:border-color .12s}.credentials-field input:focus{border-color:var(--c-ink-200);background:var(--color-surface);outline:none}.credentials-field input::placeholder{color:var(--c-ink-50);font-size:var(--fs-base)}.credentials-actions{justify-content:flex-end;gap:.5rem;margin-top:.3rem;display:flex}.credentials-error{font-size:var(--fs-md);color:var(--c-danger);background:var(--c-danger-bg-soft);border-radius:var(--radius-sm);border:1px solid var(--c-danger-border);padding:.35rem .6rem}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--color-surface-page);color:var(--c-ink-900);font-size:13px;line-height:var(--lh-normal)}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);z-index:10;flex-direction:column;width:190px;min-width:190px;height:100vh;transition:width .2s,min-width .2s;display:flex;position:sticky;top:0}.sidebar-collapsed{width:52px;min-width:52px}.sidebar-collapsed .sidebar-logo-text,.sidebar-collapsed .nav-label{display:none}.sidebar-collapsed .sidebar-header{justify-content:center;gap:0;padding:0}.sidebar-collapsed .sidebar-collapse{position:absolute;top:50%;right:4px;transform:translateY(-50%)}.sidebar-collapsed .sidebar-nav a,.sidebar-collapsed .sidebar-nav button{border-left:3px solid #0000;justify-content:center;padding:.55rem 0}.sidebar-collapsed .sidebar-footer a{justify-content:center;padding:.55rem 0}.sidebar-header{background:var(--c-shell-dark);color:#fff;flex-shrink:0;align-items:center;gap:.5rem;height:42px;margin-right:-1px;padding:0 .85rem;display:flex;position:relative}.sidebar-logo-icon{background:linear-gradient(135deg,#e84860,#f06292);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.sidebar-logo-text{font-weight:var(--fw-bold);letter-spacing:-.01em;font-size:1.05rem}.sidebar-collapse{cursor:pointer;color:#ffffff4d;background:0 0;border:none;margin-left:auto;padding:2px;font-size:12px;line-height:1}.sidebar-collapse:hover{color:#ffffffb3}.sidebar-nav{padding:.6rem 0;overflow-y:auto}.sidebar-nav a,.sidebar-nav button{color:var(--c-ink-500);font-size:.84rem;font-weight:var(--fw-regular);cursor:pointer;text-align:left;background:0 0;border:none;border-left:3px solid #0000;align-items:center;gap:.55rem;width:100%;padding:.55rem 1rem;text-decoration:none;transition:background .1s,color .1s;display:flex}.sidebar-nav a:hover,.sidebar-nav button:hover{background:var(--color-surface-page);color:#222}.sidebar-nav a.active{color:var(--c-ink-900);font-weight:var(--fw-semibold);border-left-color:var(--c-ink-900)}.sidebar-nav .nav-icon{opacity:.5;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.sidebar-nav a.active .nav-icon{opacity:.85}.sidebar-sub-item{font-size:var(--fs-lg)!important;color:var(--c-ink-200)!important;border-left-color:#0000!important;padding-left:2.7rem!important}.sidebar-sub-item:hover{color:var(--c-ink-500)!important}.sidebar-sub-item.active{color:var(--c-ink-900)!important;font-weight:var(--fw-semibold)!important}.sidebar-collapsed .sidebar-sub-item{display:none!important}.sidebar-footer{border-top:1px solid var(--color-border);margin-top:auto;padding:.4rem 0}.main-content{flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;overflow:hidden}.topbar{background:var(--c-shell-dark);color:#fff;font-size:var(--fs-lg);font-weight:var(--fw-medium);letter-spacing:.08em;text-transform:uppercase;flex-shrink:0;justify-content:flex-end;align-items:center;height:42px;padding:0 1.5rem;display:flex}.topbar-user{align-items:center;gap:.75rem;display:flex}.topbar-user span{opacity:.9}.topbar-user button{color:#fff6;border-radius:var(--radius-xs);cursor:pointer;text-transform:none;letter-spacing:0;background:0 0;border:none;padding:.2rem .5rem;font-size:.7rem}.topbar-user button:hover{color:#fffc}.page-content{flex:1;padding:1.25rem 1.5rem;overflow:auto}.page-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.page-title{font-size:var(--fs-4xl);font-weight:var(--fw-bold);color:var(--c-ink-900);align-items:center;gap:.4rem;display:flex}.page-title .title-icon{opacity:.5;font-size:14px}.btn{border-radius:var(--radius-md);font-size:var(--fs-lg);font-weight:var(--fw-medium);cursor:pointer;border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--c-ink-600);padding:.35rem .85rem;transition:background .12s}.btn:hover{background:var(--color-surface-hover)}.btn-outline{border-color:var(--c-danger);color:var(--c-danger);background:var(--color-surface)}.btn-outline:hover{background:var(--c-danger-bg-soft)}.filter-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;font-size:var(--fs-xl);color:var(--c-ink-500);border-bottom:none;justify-content:space-between;align-items:center;margin-bottom:0;padding:.55rem 1rem;display:flex}.filter-bar label{font-weight:var(--fw-medium);color:var(--c-ink-450);margin-right:.35rem}.filter-bar select{border-radius:var(--radius-sm);font-size:var(--fs-lg);background:var(--color-surface);color:var(--c-ink-900);font-weight:var(--fw-medium);border:1px solid #ddd;padding:.2rem .4rem}.filter-group{align-items:center;gap:1rem;display:flex}.forecast-chart-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--color-surface);scrollbar-width:none;overflow-x:auto}.forecast-chart-wrapper::-webkit-scrollbar{display:none}.forecast-inline-chart{background:var(--color-surface);position:relative}.chart-y-axis{z-index:6;pointer-events:none;width:0;height:0;position:sticky;left:0}.forecast-inline-chart svg circle[style*=ns-resize]:hover{filter:drop-shadow(0 0 4px #4a6cf780)}.chart-hover-tooltip{background:var(--c-bg-page);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);pointer-events:none;z-index:10;white-space:nowrap;padding:.35rem .5rem;position:absolute}.chart-tooltip-current{border-left:2px solid var(--c-ink-900);margin-bottom:.3rem;padding-left:.35rem}.chart-tooltip-lastyear{border-left:2px dashed #c0c0cc;padding-left:.35rem}.chart-tooltip-month{font-size:var(--fs-xs);color:var(--c-ink-300);line-height:var(--lh-tight)}.chart-tooltip-value-row{align-items:baseline;gap:.3rem;display:flex}.chart-tooltip-value{font-size:var(--fs-base);font-weight:var(--fw-bold);color:var(--c-ink-900)}.chart-tooltip-diff{font-size:.6rem;font-weight:var(--fw-semibold)}.chart-tooltip-diff.positive{color:var(--c-success)}.chart-tooltip-diff.negative{color:var(--c-danger)}.chart-y-label{font-size:var(--fs-sm);color:#8a8a9a;white-space:nowrap;background:#ffffffd9;border-radius:2px;padding:0 4px;line-height:1;position:absolute;left:10px}.forecast-toolbar{justify-content:flex-end;align-items:center;gap:.6rem;margin-bottom:.4rem;padding:0 .25rem;display:flex}.forecast-toolbar .group-label{color:var(--c-ink-500);font-size:var(--fs-lg);font-weight:var(--fw-medium)}.toolbar-icons{gap:.2rem;display:flex}.toolbar-icon{border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;width:26px;height:26px;color:var(--c-ink-450);border:1px solid #ddd;justify-content:center;align-items:center;padding:0;font-size:12px;display:flex}.toolbar-icon:hover{background:var(--color-surface-hover);color:var(--c-ink-900)}.toolbar-icon.active{background:var(--color-primary-bg);color:var(--color-primary);border-color:var(--color-primary)}.sort-menu-wrap{display:inline-flex;position:relative}.sort-menu{background:var(--color-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:100;min-width:210px;margin-top:6px;padding:.4rem 0;position:absolute;top:100%;right:0}.sort-menu-title{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--c-ink-300);text-transform:uppercase;letter-spacing:.04em;padding:.3rem .85rem .45rem}.sort-menu-item{font-size:var(--fs-lg);color:var(--c-ink-700);cursor:pointer;align-items:center;gap:.55rem;padding:.35rem .85rem;transition:background 80ms;display:flex}.sort-menu-item:hover{background:var(--color-surface-hover)}.sort-menu-item input[type=radio]{width:13px;height:13px;accent-color:var(--color-primary);cursor:pointer;margin:0}.sort-menu-divider{background:var(--color-border);height:1px;margin:.35rem 0}.toolbar-group-btn{border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;font-size:var(--fs-md);color:var(--c-ink-500);font-weight:var(--fw-medium);border:1px solid #ddd;padding:.25rem .6rem}.toolbar-group-btn:hover{background:var(--color-surface-hover)}.toolbar-group-btn.active{color:var(--c-ink-900);font-weight:var(--fw-semibold)}.toolbar-search{border-radius:var(--radius-sm);font-size:var(--fs-md);width:180px;color:var(--c-ink-700);border:1px solid #ddd;outline:none;padding:.25rem .5rem}.toolbar-search:focus{border-color:var(--color-primary)}.toolbar-sort-label{color:var(--color-primary);font-size:.7rem;font-weight:var(--fw-medium)}.forecast-table-wrapper{background:var(--color-surface);border:1px solid var(--color-border);border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:none;overflow-x:auto}.forecast-table{border-collapse:collapse;width:100%;font-size:var(--fs-lg);white-space:nowrap}.forecast-table thead tr:first-child th{background:var(--color-surface-header);font-weight:var(--fw-semibold);color:var(--c-ink-500);text-align:center;font-size:var(--fs-base);border-bottom:1px solid var(--c-border-cell);letter-spacing:0;z-index:5;padding:.4rem .5rem;position:sticky;top:0}.forecast-table thead tr:last-child th{background:var(--color-surface-header);color:var(--c-ink-400);font-size:.7rem;font-weight:var(--fw-medium);text-align:center;border-bottom:1px solid var(--c-border-cell);border-left:1px solid var(--c-border-cell);z-index:5;padding:.35rem .5rem;position:sticky;top:28px}.col-group-sticky-header{position:relative;overflow:hidden;text-align:left!important}.sticky-group-label{white-space:nowrap;will-change:transform;transition:opacity .15s;display:inline-block}.cell-past-sales{color:var(--c-ink-100)!important}.col-group-sales,.col-group-performance,.col-group-forecast{border-left:2px solid var(--c-border)!important}.col-perf-pct{border-left:none!important}.col-product{z-index:3;min-width:260px;max-width:300px;position:sticky;left:0;box-shadow:2px 0 4px #0000000f;background:var(--color-surface)!important;text-align:left!important;border-right:2px solid #d0d0d8!important}thead .col-product{z-index:6;top:0;background:var(--color-surface-header)!important}.forecast-table tbody td{text-align:center;border-left:1px solid var(--c-border-cell);border-bottom:1px solid var(--c-border-row);color:var(--c-ink-700);font-variant-numeric:tabular-nums;cursor:default;font-size:var(--fs-lg);padding:.45rem .5rem}.forecast-table tbody tr:hover td,.forecast-table tbody tr:hover .col-product{background:var(--c-bg-row-hover)}.product-cell{align-items:center;gap:.45rem;padding:.15rem 0;display:flex}.product-checkbox{width:15px;height:15px;accent-color:var(--c-ink-900);cursor:pointer;flex-shrink:0}.product-expand{cursor:pointer;opacity:.35;text-align:center;flex-direction:column;flex-shrink:0;gap:0;width:12px;font-size:8px;line-height:1;display:flex}.product-expand:hover{opacity:.7}.product-image{border-radius:var(--radius-md);background:var(--c-cat-d-bg);object-fit:cover;flex-shrink:0;width:34px;height:34px}.product-image-placeholder{border-radius:var(--radius-md);width:34px;height:34px;color:var(--c-ink-50);background:#eee;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex}.product-info{flex-direction:column;gap:1px;min-width:0;display:flex;overflow:hidden}.product-name{font-weight:var(--fw-semibold);color:var(--c-ink-900);font-size:var(--fs-lg);text-overflow:ellipsis;line-height:var(--lh-tight);overflow:hidden}.product-meta{font-size:var(--fs-sm);color:var(--c-ink-200);align-items:center;gap:.4rem;display:flex}.product-sku{font-family:var(--font-mono);letter-spacing:-.02em}.variant-badge{background:var(--c-cat-d-bg);color:var(--c-ink-400);border-radius:var(--radius-xs);padding:0 5px;font-size:.65rem;line-height:1.5}.variant-detail{color:var(--c-ink-200)}.velocity-link{-webkit-user-select:none;user-select:none;cursor:pointer!important}.velocity-link:hover{color:var(--color-primary)!important}.velocity-popover{min-width:280px}.stock-badge{color:var(--color-primary);font-size:.65rem;font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums}.row-parent td{background:var(--color-surface);font-weight:var(--fw-medium)}.row-child .product-cell{padding-left:.8rem}.row-child td{background:var(--c-bg-child)}.row-child td.col-product{background:var(--c-bg-child)!important}.row-selected td,.row-selected .col-product{background:var(--color-primary-bg-strong)!important}.cell-past-oos{background:0 0!important}.cell-past-oos-value{background:var(--c-pill-oos-bg);color:var(--c-pill-oos-text);border-radius:var(--radius-lg);padding:2px 10px;display:inline-block}.cell-edited{border-radius:var(--radius-xs);border:1.5px solid;min-width:30px;padding:1px 5px;display:inline-block;text-decoration:none!important}.cell-forecast-oos{color:var(--c-danger);font-weight:var(--fw-medium);text-underline-offset:2px;text-decoration:none}td[data-month]:hover .cell-forecast-oos{text-decoration:underline;-webkit-text-decoration-color:var(--c-danger);text-decoration-color:var(--c-danger)}td[data-month]{position:relative}.forecast-edit-input{border:2px solid var(--color-primary);text-align:center;width:100%;height:100%;font-size:var(--fs-lg);background:var(--color-surface);color:var(--c-ink-900);font-family:inherit;font-weight:var(--fw-medium);box-sizing:border-box;border-radius:0;outline:none;padding:0;position:absolute;inset:0}.forecast-edit-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.forecast-edit-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.fill-handle{background:var(--color-primary);cursor:crosshair;z-index:15;visibility:hidden;width:7px;height:7px;display:block;position:absolute;bottom:0;right:0}td[data-month]:hover .fill-handle,td[data-month].cell-editing .fill-handle{visibility:visible}td.cell-drag-target{outline-offset:-2px;outline:2px solid #4a6cf766;background:var(--c-blue-bg-soft)!important}.forecast-context-menu{z-index:200;background:var(--color-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:180px;padding:4px 0;position:fixed}.forecast-context-menu button{text-align:left;width:100%;font-size:var(--fs-md);color:var(--c-ink-700);cursor:pointer;background:0 0;border:none;padding:.45rem .85rem;font-family:inherit;display:block}.forecast-context-menu button:hover{background:var(--color-surface-hover)}.cell-forecast{color:var(--c-ink-900);font-weight:var(--fw-medium);text-underline-offset:2px;text-decoration:none}td[data-month]:hover .cell-forecast{text-decoration:underline;-webkit-text-decoration-color:var(--c-ink-900);text-decoration-color:var(--c-ink-900)}.cell-oos-warning{font-size:var(--fs-2xs);color:var(--c-danger);white-space:nowrap;pointer-events:none;z-index:5;background:var(--color-surface);border-radius:var(--radius-xs);margin-top:2px;padding:2px 6px;font-style:italic;display:none;position:absolute;top:100%;left:50%;transform:translate(-50%);box-shadow:0 1px 4px #0000001a}td.cell-low-stock:hover .cell-oos-warning{display:block}.cell-low-stock{position:relative;overflow:visible}.cell-low-stock .cell-forecast{color:var(--c-danger);font-weight:var(--fw-medium);text-decoration:none;-webkit-text-decoration-color:var(--c-danger);text-decoration-color:var(--c-danger)}td[data-month].cell-low-stock:hover .cell-forecast{text-decoration:underline}.perf-positive{color:var(--c-success);font-weight:var(--fw-semibold)}.perf-negative{color:var(--c-danger);font-weight:var(--fw-semibold)}.perf-arrow{color:var(--c-ink-500);font-size:var(--fs-md);align-items:center;gap:.3rem;display:inline-flex}.perf-arrow .arrow{color:var(--c-ink-50);font-size:.7rem}.cell-flag{vertical-align:middle;margin-left:2px;font-size:10px}.cell-current-forecast{color:var(--color-primary);font-weight:var(--fw-semibold)}.popover-backdrop{z-index:99;position:fixed;inset:0}.cell-popover{z-index:100;background:var(--color-surface);border:1px solid var(--c-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);min-width:240px;font-size:var(--fs-lg);padding:.85rem 1rem;position:fixed}.popover-stats{border-bottom:1px solid #f0f0f4;gap:1.5rem;margin-bottom:.85rem;padding-bottom:.65rem;display:flex}.popover-stat{flex-direction:column;gap:1px;display:flex}.popover-stat-label{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--c-ink-900)}.popover-stat-value{font-size:var(--fs-lg);font-weight:var(--fw-regular);color:var(--c-ink-200)}.popover-stat-value.oos-value{color:var(--c-success)}.popover-section-title{font-weight:var(--fw-semibold);color:var(--c-ink-900);font-size:var(--fs-lg);margin-top:.15rem;margin-bottom:.35rem}.popover-forecast-row{font-size:var(--fs-md);align-items:center;gap:.4rem;margin-bottom:.25rem;display:flex}.popover-forecast-value{font-weight:var(--fw-bold);min-width:28px;color:var(--c-ink-900)}.popover-badge{border-radius:var(--radius-xs);font-size:.65rem;font-weight:var(--fw-bold);padding:1px 5px}.popover-badge.negative{background:var(--c-danger-bg);color:var(--c-danger)}.popover-badge.positive{background:var(--c-success-bg);color:var(--c-success)}.popover-edit-info{color:var(--c-ink-100);font-size:.65rem;font-style:italic}.popover-note{margin-top:.65rem}.popover-note-label{font-weight:var(--fw-semibold);color:var(--c-ink-450);font-size:var(--fs-base);margin-bottom:.25rem}.popover-note textarea{border-radius:var(--radius-sm);width:100%;font-size:var(--fs-md);resize:vertical;min-height:42px;color:var(--c-ink-700);border:1px solid #ddd;padding:.4rem;font-family:inherit}.popover-note textarea:focus{border-color:var(--color-primary);outline:none}.distribution-popover{min-width:400px}.distribution-header{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.distribution-header h4{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--c-ink-900);margin:0}.distribution-header .dist-month{font-size:var(--fs-md);color:var(--c-ink-400);font-weight:var(--fw-medium)}.distribution-table{border-collapse:collapse;width:100%;font-size:.74rem}.distribution-table th{text-align:left;color:var(--c-ink-200);font-weight:var(--fw-medium);font-size:var(--fs-sm);border-bottom:1px solid #eee;padding:.25rem .4rem}.distribution-table th:last-child{text-align:right}.distribution-table td{color:var(--c-ink-600);border-bottom:1px solid #f5f5f8;padding:.3rem .4rem}.distribution-table td:nth-child(3){font-weight:var(--fw-bold);text-align:center}.dist-input{border-radius:var(--radius-xs);text-align:right;float:right;border:1px solid #ddd;width:44px;padding:2px 4px;font-size:.74rem}.dist-input:focus{border-color:var(--color-primary);outline:none}.pct-edit-input{border-radius:var(--radius-xs);text-align:right;width:38px;font-size:var(--fs-base);background:var(--color-surface);color:var(--c-ink-900);border:1px solid #ddd;padding:2px 3px;font-family:inherit}.pct-edit-input:focus{border-color:var(--color-primary);outline:none}.pct-edit-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pct-edit-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.distribution-footer{text-align:right;border-top:1px solid #eee;margin-top:.5rem;padding-top:.4rem}.distribution-footer button{font-size:var(--fs-base);border-radius:var(--radius-xs);background:var(--color-surface);cursor:pointer;color:var(--c-ink-450);border:1px solid #ddd;padding:.25rem .6rem}.distribution-footer button:hover{background:var(--color-surface-hover)}.velocity-inline-section{border-top:1px solid #eee;margin-top:.5rem;padding-top:.3rem}.velocity-footer{border-top:1px solid #eee;justify-content:space-between;align-items:center;gap:.4rem;margin-top:.5rem;padding-top:.4rem;display:flex}.velocity-reset-btn{font-size:var(--fs-base);border-radius:var(--radius-xs);background:var(--color-surface);cursor:pointer;color:var(--c-ink-200);border:1px solid #ddd;padding:.25rem .6rem;font-family:inherit}.velocity-reset-btn:hover{background:var(--color-surface-hover)}.velocity-apply-wrapper{position:relative}.velocity-apply-btn{font-size:var(--fs-base);border:1px solid var(--color-primary);border-radius:var(--radius-xs);background:var(--color-primary);color:var(--color-surface);cursor:pointer;font-weight:var(--fw-semibold);padding:.25rem .6rem;font-family:inherit}.velocity-apply-btn:hover{background:var(--color-primary-hover)}.velocity-apply-btn:disabled{opacity:.4;cursor:default}.velocity-apply-btn.secondary{background:var(--color-surface);color:var(--c-ink-300);border-color:var(--c-ink-25)}.velocity-apply-btn.secondary:hover{background:var(--color-surface-hover);color:var(--c-ink-450)}.velocity-dropdown{background:var(--color-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:210;min-width:200px;margin-bottom:4px;padding:4px 0;position:absolute;bottom:100%;right:0}.velocity-dropdown button{text-align:left;width:100%;color:var(--c-ink-700);cursor:pointer;background:0 0;border:none;padding:.45rem .85rem;font-family:inherit;font-size:.74rem;display:block}.velocity-dropdown button:hover{background:var(--color-surface-hover)}.velocity-confirm{border-radius:var(--radius-sm);font-size:var(--fs-base);color:var(--c-ink-700);background:#fff8f0;border:1px solid #ffcc80;margin-top:.6rem;padding:.6rem}.velocity-confirm p{line-height:var(--lh-normal);margin:0 0 .5rem}.parent-confirm-overlay{z-index:200;background:#00000026;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.parent-confirm-popup{background:var(--color-surface);border-radius:var(--radius-xl);max-width:340px;font-size:var(--fs-xl);color:var(--c-ink-700);padding:1.2rem 1.5rem;box-shadow:0 4px 20px #00000026}.parent-confirm-popup p{margin:0 0 1rem;line-height:1.5}.parent-confirm-actions{justify-content:flex-end;gap:.5rem;display:flex}.selection-hint{font-size:var(--fs-base);color:var(--c-ink-300);margin-bottom:.35rem;padding:0 .25rem}.loading-screen{background:var(--color-surface-page);justify-content:center;align-items:center;min-height:100vh;display:flex}.loading-spinner{border:3px solid var(--c-border-cell);border-top-color:var(--color-primary);border-radius:50%;width:28px;height:28px;animation:.6s linear infinite spin}.inv-history{padding:0 24px 24px}.inv-history-controls{flex-wrap:wrap;align-items:center;gap:24px;margin-bottom:16px;display:flex}.inv-history-sku-select{align-items:center;gap:8px;display:flex}.inv-history-sku-select label{font-size:13px;font-weight:var(--fw-semibold);color:var(--c-ink-450);text-transform:uppercase;letter-spacing:.5px}.inv-history-download{border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:13px;font-weight:var(--fw-medium);color:var(--color-primary);background:var(--color-surface);cursor:pointer;padding:6px 12px;font-family:inherit;text-decoration:none;transition:all .15s}.inv-history-download:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.inv-history-sku-select select{border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:14px;font-weight:var(--fw-medium);background:var(--color-surface);cursor:pointer;min-width:200px;padding:6px 12px;font-family:inherit}.inv-history-lines{flex-wrap:wrap;gap:6px;display:flex}.inv-history-toggle{border-radius:var(--radius-sm);font-size:12px;font-weight:var(--fw-medium);cursor:pointer;border:1.5px solid;padding:4px 10px;font-family:inherit;transition:all .15s}.inv-history-toggle:hover{opacity:.85}.inv-history-info{color:var(--c-ink-200);gap:20px;margin-bottom:8px;font-size:12px;display:flex}.inv-history-chart{background:var(--color-surface);border:1px solid var(--c-border-cell);border-radius:10px;padding:20px 16px}.inv-history-loading{text-align:center;color:var(--c-ink-200);padding:60px;font-size:14px}
