:root{--primary-400:#5244ee;--primary-50:#f7f6ff;--primary-75:#f1ecff;--primary-100:#d4d0fb;--primary-200:#a9a1f7;--primary-300:#7d73f2;--primary-500:#110964;--primary-600:#1f11bb;--neutral-white:#fff;--neutral-100:#fbfbfb;--neutral-200:#f4f4f4;--neutral-300:#d9d9d9;--neutral-400:#bfbfbf;--neutral-500:#a6a6a6;--neutral-600:#5c5c5c;--neutral-700:#1e1e1e;--text-primary:#1e1e1e;--text-secondary:#5c5c5c;--text-muted:#a6a6a6;--badge-open-bg:#e6f7ff;--badge-open-border:#91d5ff;--badge-open-text:#1890ff;--badge-pending-bg:#fff7e6;--badge-pending-border:#ffd591;--badge-pending-text:#fa8c16;--badge-confirmed-bg:#f6ffed;--badge-confirmed-border:#b7eb8f;--badge-confirmed-text:#52c41a;--badge-optedout-bg:#fff1f0;--badge-optedout-border:#ffa39e;--badge-optedout-text:#f5222d;--badge-exit-bg:#f9f0ff;--badge-exit-border:#d3adf7;--badge-exit-text:#531dab;--sku-review-bg:#fff7e6;--sku-review-border:#ffd591;--sku-review-text:#fa8c16;--sku-locked-bg:#e6f7ff;--sku-locked-border:#91d5ff;--sku-locked-text:#1890ff;--sku-excluded-bg:#fff1f0;--sku-excluded-border:#ffa39e;--sku-excluded-text:#f5222d;--font:"Roboto", sans-serif;--radius-sm:6px;--radius-md:8px;--sidebar-w:200px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);color:var(--text-primary);background:#f5f5f5;min-height:100vh;font-size:14px}.topbar{background:var(--primary-500);z-index:200;border-bottom:1px solid #ffffff0f;align-items:center;gap:12px;height:52px;padding:0 20px;display:flex;position:fixed;top:0;left:0;right:0}.topbar-logo{border-right:1px solid #ffffff1a;align-items:center;gap:8px;height:32px;padding-right:16px;display:flex}.topbar-logo-icon{background:var(--primary-400);border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.topbar-logo-icon svg{color:#fff}.topbar-logo-name{color:#fff;letter-spacing:.3px;font-size:13px;font-weight:700}.topbar-logo-sub{color:#fff6;letter-spacing:.2px;font-size:10px;font-weight:400}.topbar-spacer{flex:1}.topbar-back-btn{border-radius:var(--radius-sm);color:#ffc400;height:30px;font-family:var(--font);cursor:pointer;background:0 0;border:1px solid #ffc80080;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:500;display:flex}.topbar-back-btn:hover{background:#ffc4001a}.topbar-lang{color:#ffffff8c;cursor:pointer;border-radius:var(--radius-sm);align-items:center;gap:4px;padding:4px 8px;font-size:13px;display:flex}.topbar-lang:hover{color:#ffffffe0;background:#ffffff12}.topbar-avatar{background:var(--primary-400);color:#fff;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:flex}.topbar-user{color:#ffffffb3;cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.shell{min-height:calc(100vh - 52px);margin-top:52px;display:flex}.sidebar{width:var(--sidebar-w);background:var(--primary-500);z-index:100;flex-direction:column;flex-shrink:0;padding:16px 0;display:flex;position:fixed;top:52px;bottom:0;left:0;overflow-y:auto}.sidebar-section-label{color:#ffffff4d;text-transform:uppercase;letter-spacing:.8px;padding:12px 16px 4px;font-size:10px;font-weight:700}.sidebar-item{color:#ffffff8c;cursor:pointer;align-items:center;gap:10px;padding:9px 16px;font-size:13px;transition:background .1s,color .1s;display:flex;position:relative}.sidebar-item:hover{color:#ffffffd9;background:#ffffff0d}.sidebar-item.active{color:var(--primary-200);background:#5244ee33}.sidebar-item.active:before{content:"";background:var(--primary-400);border-radius:0 2px 2px 0;width:3px;position:absolute;top:0;bottom:0;left:0}.sidebar-item svg{flex-shrink:0}.sidebar-item-arrow{color:#ffffff40;margin-left:auto}.sidebar-sub-item{color:#ffffff73;cursor:pointer;align-items:center;gap:10px;padding:8px 16px 8px 40px;font-size:13px;transition:background .1s,color .1s;display:flex}.sidebar-sub-item:hover{color:#fffc;background:#ffffff0a}.sidebar-sub-item.active{color:var(--primary-200);background:#5244ee1f}.sidebar-divider{background:#ffffff0f;height:1px;margin:8px 0}.main{margin-left:var(--sidebar-w);flex:1;padding:24px 28px 40px}.view{display:none}.view.active{display:block}.breadcrumb{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:8px;font-size:13px;display:flex}.breadcrumb a{color:var(--text-muted);cursor:pointer;text-decoration:none}.breadcrumb a:hover{color:var(--primary-400);text-decoration:underline}.breadcrumb-sep{color:var(--neutral-400);font-size:11px}.breadcrumb-current{color:var(--text-secondary);font-weight:500}.page-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-title{color:var(--text-primary);font-size:22px;font-weight:700}.card{background:var(--neutral-white);border-radius:var(--radius-md);border:1px solid var(--neutral-200);overflow:hidden}.table-toolbar{border-bottom:1px solid var(--neutral-200);flex-wrap:wrap;align-items:center;gap:8px 10px;padding:14px 20px;display:flex}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead tr{border-bottom:1px solid var(--neutral-200);background:#fafafa}th{color:var(--text-secondary);text-align:left;white-space:nowrap;padding:11px 16px;font-size:12px;font-weight:500}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--primary-400)}th svg{vertical-align:middle;color:var(--neutral-400);margin-left:3px;display:inline}tbody tr{border-bottom:1px solid var(--neutral-200);transition:background 80ms}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#fafbff}td{color:var(--text-primary);vertical-align:middle;white-space:nowrap;padding:12px 16px}.pagination{border-top:1px solid var(--neutral-200);color:var(--text-secondary);justify-content:flex-end;align-items:center;gap:6px;padding:12px 20px;font-size:13px;display:flex}.pag-info{color:var(--text-muted);margin-right:auto;font-size:13px}.pag-btn{border-radius:var(--radius-sm);border:1px solid var(--neutral-300);background:var(--neutral-white);min-width:30px;height:30px;font-family:var(--font);color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;padding:0 6px;font-size:13px;transition:background .1s,border-color .1s,color .1s;display:flex}.pag-btn:hover{border-color:var(--primary-400);color:var(--primary-400)}.pag-btn.active{background:var(--primary-400);border-color:var(--primary-400);color:#fff;cursor:default}.pag-btn:disabled{opacity:.4;cursor:not-allowed}.pag-ellipsis{color:var(--text-muted);padding:0 4px}.badge{white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.badge-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge-open{background:var(--badge-open-bg);color:var(--badge-open-text);border:1px solid var(--badge-open-border)}.badge-open .badge-dot{background:var(--badge-open-text)}.badge-pending{background:var(--badge-pending-bg);color:var(--badge-pending-text);border:1px solid var(--badge-pending-border)}.badge-pending .badge-dot{background:var(--badge-pending-text)}.badge-confirmed{background:var(--badge-confirmed-bg);color:var(--badge-confirmed-text);border:1px solid var(--badge-confirmed-border)}.badge-confirmed .badge-dot{background:var(--badge-confirmed-text)}.badge-opted-out{background:var(--badge-optedout-bg);color:var(--badge-optedout-text);border:1px solid var(--badge-optedout-border)}.badge-opted-out .badge-dot{background:var(--badge-optedout-text)}.badge-exit{background:var(--badge-exit-bg);color:var(--badge-exit-text);border:1px solid var(--badge-exit-border)}.badge-exit .badge-dot{background:var(--badge-exit-text)}.badge-sku-review{background:var(--sku-review-bg);color:var(--sku-review-text);border:1px solid var(--sku-review-border)}.badge-sku-review .badge-dot{background:var(--sku-review-text)}.badge-sku-locked{background:var(--sku-locked-bg);color:var(--sku-locked-text);border:1px solid var(--sku-locked-border)}.badge-sku-locked .badge-dot{background:var(--sku-locked-text)}.badge-sku-excluded{background:var(--sku-excluded-bg);color:var(--sku-excluded-text);border:1px solid var(--sku-excluded-border)}.badge-sku-excluded .badge-dot{background:var(--sku-excluded-text)}.icon-btn{border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;color:var(--neutral-600);background:0 0;border:none;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex;position:relative}.icon-btn:hover{background:var(--primary-50);color:var(--primary-400)}.icon-btn .tooltip{background:var(--primary-500);color:#fff;white-space:nowrap;pointer-events:none;opacity:0;z-index:50;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:400;transition:opacity .12s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.icon-btn .tooltip:after{content:"";border:4px solid #0000;border-top-color:var(--primary-500);position:absolute;top:100%;left:50%;transform:translate(-50%)}.icon-btn:hover .tooltip{opacity:1}.icon-btn-preview{color:var(--primary-400);background:0 0;border:none}.icon-btn-preview:hover{background:var(--primary-50)}.icon-btn-optout{color:#ff4d4f;background:0 0;border:none}.icon-btn-optout:hover{color:#ff7875;background:#fff1f0}.icon-btn-enroll{color:#52c41a;background:0 0;border:none}.icon-btn-enroll:hover{color:#52c41a;background:#f6ffed}.action-cell{align-items:center;gap:6px;display:flex}.no-action{color:var(--neutral-400);font-size:12px}.date-filter-wrap{border:1px solid var(--neutral-300);border-radius:var(--radius-sm);background:var(--neutral-white);height:34px;color:var(--neutral-500);align-items:center;gap:6px;padding:0 10px;display:flex}.date-filter-wrap:focus-within{border-color:var(--primary-400);box-shadow:0 0 0 2px #5244ee26}.date-filter-input{font-family:var(--font);color:var(--text-primary);background:0 0;border:none;outline:none;font-size:13px}.date-filter-picker{cursor:pointer;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;width:120px}.date-filter-picker::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}.date-filter-picker::-webkit-calendar-picker-indicator:hover{opacity:1}.date-filter-sep{color:var(--neutral-400);font-size:12px}.date-filter-picker-wrap{cursor:pointer;align-items:center;display:flex;position:relative}.date-filter-placeholder{color:var(--text-muted);pointer-events:none;white-space:nowrap;cursor:pointer;font-size:13px;position:absolute;left:0}.date-filter-picker.date-filter-empty:not(:focus){color:#0000}.date-filter-picker-wrap:focus-within .date-filter-placeholder{display:none}.filter-select{border:1px solid var(--neutral-300);border-radius:var(--radius-sm);background:var(--neutral-white);height:34px;font-family:var(--font);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:flex}.filter-select:hover{border-color:var(--primary-400)}.filter-select svg{color:var(--neutral-500)}.search-input-wrap{border:1px solid var(--neutral-300);border-radius:var(--radius-sm);background:var(--neutral-white);align-items:center;gap:8px;min-width:220px;height:34px;padding:0 12px;display:flex}.search-input-wrap:focus-within{border-color:var(--primary-400);box-shadow:0 0 0 2px #5244ee26}.search-input-wrap svg{color:var(--neutral-400);flex-shrink:0}.search-input-wrap input{font-family:var(--font);color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:13px}.search-input-wrap input::placeholder{color:var(--neutral-400)}.search-combo{border:1px solid var(--neutral-300);border-radius:var(--radius-sm);background:var(--neutral-white);align-items:center;min-width:340px;height:34px;display:flex;position:relative}.search-combo-type{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.search-combo-btn{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.search-combo:focus-within{border-color:var(--primary-400);box-shadow:0 0 0 2px #5244ee26}.search-combo-type{height:100%;color:var(--primary-400);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-right:1px solid var(--neutral-200);flex-shrink:0;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;display:flex}.search-combo-type:hover{background:#f5f4ff}.search-combo-type svg{color:var(--primary-400)}.search-combo input{min-width:0;font-family:var(--font);color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:0 10px;font-size:13px}.search-combo input::placeholder{color:var(--neutral-400)}.search-combo-btn{border:none;border-left:1px solid var(--neutral-200);cursor:pointer;width:36px;height:100%;color:var(--primary-400);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.search-combo-btn:hover{background:#f5f4ff}.toolbar-spacer{flex:1}.result-count{color:var(--text-muted);font-size:13px}.promotion-id,.sku-id-link{color:var(--primary-400);font-family:monospace;font-size:12px;font-weight:500}.date-cell{color:var(--text-secondary);font-size:13px}.sku-checkbox{width:15px;height:15px;accent-color:var(--primary-400);cursor:pointer}.sku-img{object-fit:cover;border:1px solid var(--neutral-200);background:var(--neutral-100);width:40px;height:40px;color:var(--neutral-400);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sku-img svg{width:18px;height:18px}.price-orig{color:var(--text-muted);font-size:12px;text-decoration:line-through}.price-sell{color:var(--text-primary);font-weight:500}.price-psp{color:var(--text-secondary)}.ppp-locked{color:var(--neutral-500);align-items:center;gap:5px;font-size:12px;display:inline-flex}.ppp-locked svg{color:var(--neutral-400);flex-shrink:0}.ppp-value{color:var(--text-primary);font-size:13px;font-weight:500}.cost-bearer{background:var(--neutral-100);color:var(--text-secondary);border-radius:12px;align-items:center;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.discount-rate{color:var(--text-primary);font-size:13px}.promo-meta{border-bottom:1px solid var(--neutral-200);color:var(--text-secondary);background:#fafbff;flex-wrap:wrap;align-items:center;gap:6px 20px;padding:12px 20px;font-size:13px;display:flex}.promo-meta-item{align-items:center;gap:6px;display:flex}.promo-meta-label{color:var(--text-muted)}.btn-back{border:1px solid var(--neutral-300);border-radius:var(--radius-sm);background:var(--neutral-white);height:34px;font-family:var(--font);color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:500;transition:background .1s,border-color .1s,color .1s;display:inline-flex}.btn-back:hover{border-color:var(--primary-400);color:var(--primary-400);background:var(--primary-50)}.btn-clear-filter{border:1px solid var(--neutral-300);border-radius:var(--radius-sm);background:var(--neutral-white);height:34px;font-family:var(--font);color:var(--text-muted);cursor:pointer;white-space:nowrap;align-items:center;gap:5px;padding:0 12px;font-size:13px;transition:border-color .1s,color .1s,background .1s;display:inline-flex}.btn-clear-filter:hover{color:#ff4d4f;background:#fff1f0;border-color:#ff4d4f}.btn-clear-filter.hidden{display:none}.dd-status-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.filter-select.active{border-color:var(--primary-400);color:var(--primary-400);background:var(--primary-50)}.filter-select.active svg{color:var(--primary-400)}.sku-info-banner{border-radius:var(--radius-sm);color:#1890ff;background:#e6f7ff;border:1px solid #91d5ff;align-items:center;gap:9px;margin-bottom:16px;padding:11px 16px;font-size:13px;line-height:1.5;display:flex}.sku-view-body{align-items:flex-start;gap:16px;display:flex}.sku-main{flex:1;min-width:0}.btn-export{border:1px solid var(--neutral-300);border-radius:var(--radius-sm);background:var(--neutral-white);height:34px;font-family:var(--font);color:var(--text-secondary);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:500;transition:background .1s,border-color .1s,color .1s;display:inline-flex}.btn-export:hover{border-color:var(--primary-400);color:var(--primary-400);background:var(--primary-50)}.selection-bar{border-radius:var(--radius-sm);color:#fa8c16;background:#fff7e6;border:1px solid #ffd591;align-items:center;gap:9px;margin-bottom:16px;padding:11px 16px;font-size:13px;line-height:1.5;display:flex}.selection-bar svg{color:#fa8c16;flex-shrink:0}.selection-bar.hidden{display:none}.action-panel{background:var(--neutral-white);border:1px solid var(--neutral-200);border-radius:var(--radius-md);flex-shrink:0;width:216px;position:sticky;top:76px;overflow:hidden}.ap-header{border-bottom:1px solid var(--neutral-200);justify-content:space-between;align-items:center;padding:14px 16px 12px;display:flex}.ap-title{color:var(--text-primary);font-size:14px;font-weight:600}.ap-info-btn{width:22px;height:22px;color:var(--neutral-400);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:14px;transition:color .1s,background .1s;display:flex}.ap-info-btn:hover{color:var(--primary-400);background:var(--primary-50)}.ap-section{padding:14px 16px}.ap-section+.ap-section{border-top:1px solid var(--neutral-200)}.ap-section-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.7px;margin-bottom:10px;font-size:10px;font-weight:700}.ap-btn{border-radius:var(--radius-sm);width:100%;height:36px;font-family:var(--font);cursor:pointer;justify-content:center;align-items:center;gap:7px;margin-bottom:8px;padding:0 12px;font-size:13px;font-weight:500;transition:opacity .12s,background .12s,border-color .12s,color .12s;display:flex}.ap-btn:last-child{margin-bottom:0}.ap-btn-primary{background:var(--primary-400);color:#fff;border:none}.ap-btn-primary:hover{background:var(--primary-300)}.ap-btn-primary:active{background:var(--primary-600)}.ap-btn-danger{color:#ff4d4f;background:0 0;border:1px solid #ff4d4f}.ap-btn-danger:hover{color:#ff7875;background:#fff1f0;border-color:#ff7875}.ap-btn-outline{background:var(--neutral-white);color:var(--text-secondary);border:1px solid var(--neutral-300)}.ap-btn-outline:hover{border-color:var(--primary-300);color:var(--primary-400);background:var(--primary-50)}.ap-info-card{background:var(--neutral-white);border:1px solid var(--neutral-200);border-radius:var(--radius-md);overflow:hidden}.ap-info-row{flex-direction:column;gap:8px;padding:20px 18px;display:flex}.ap-info-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;font-size:11px;font-weight:600}.ap-info-value{color:var(--text-primary);font-size:14px;font-weight:500}.ap-info-divider{background:var(--neutral-200);height:1px}.side-modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;opacity:0;pointer-events:none;background:#00000059;justify-content:center;align-items:center;transition:opacity .16s;display:flex;position:fixed;inset:0}.side-modal-overlay.open{opacity:1;pointer-events:all}.side-modal{background:#fff;border-radius:12px;width:100%;max-width:480px;transition:transform .16s;overflow:hidden;transform:scale(.96)translateY(-8px);box-shadow:0 8px 48px #0000002e}.side-modal-overlay.open .side-modal{transform:scale(1)translateY(0)}.sm-header{border-bottom:1px solid var(--neutral-200);justify-content:space-between;align-items:center;padding:18px 24px 16px;display:flex}.sm-title{color:var(--text-primary);font-size:16px;font-weight:700}.sm-close{cursor:pointer;width:28px;height:28px;color:var(--neutral-500);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex}.sm-close:hover{background:var(--neutral-100);color:var(--text-primary)}.sm-body{padding:24px}.audit-grid{grid-template-columns:1fr 1fr;gap:0;display:grid}.audit-cell{padding:14px 0}.audit-cell+.audit-cell{border-top:1px solid var(--neutral-200)}.audit-row{grid-template-columns:1fr 1fr;display:grid}.audit-field{padding:16px 0}.audit-field-label{color:var(--text-muted);margin-bottom:5px;font-size:12px}.audit-field-value{color:var(--text-primary);font-size:14px;font-weight:500}.upload-step{margin-bottom:20px}.upload-step-title{color:var(--text-primary);margin-bottom:10px;font-size:14px;font-weight:500}.upload-step-note{color:var(--text-muted);margin-bottom:4px;font-size:12px}.upload-step-warning{color:#ff4d4f;margin-bottom:0;font-size:12px}.btn-download-tpl{background:var(--primary-400);color:#fff;border-radius:var(--radius-sm);height:36px;font-family:var(--font);cursor:pointer;border:none;align-items:center;gap:7px;padding:0 16px;font-size:13px;font-weight:500;transition:opacity .12s;display:inline-flex}.btn-download-tpl:hover{opacity:.88}.upload-dropzone{border:1.5px dashed var(--neutral-300);cursor:pointer;background:#fafafa;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:28px 16px;transition:border-color .15s,background .15s;display:flex}.upload-dropzone:hover{border-color:var(--primary-400);background:var(--primary-50)}.upload-dropzone svg{color:var(--text-primary)}.upload-dropzone-label{color:var(--text-primary);font-size:13px;font-weight:500}.upload-dropzone-desc{color:var(--text-muted);font-size:12px}.sm-footer{border-top:1px solid var(--neutral-200);justify-content:flex-end;align-items:center;gap:10px;padding:14px 24px;display:flex}.sm-btn-cancel{border:1px solid var(--neutral-300);border-radius:var(--radius-sm);height:36px;color:var(--text-secondary);font-family:var(--font);cursor:pointer;background:#fff;padding:0 16px;font-size:13px;font-weight:500;transition:border-color .1s,color .1s}.sm-btn-cancel:hover{border-color:var(--neutral-500);color:var(--text-primary)}.sm-btn-save{border:1px solid var(--neutral-300);border-radius:var(--radius-sm);height:36px;color:var(--neutral-400);font-family:var(--font);cursor:default;background:#fff;padding:0 20px;font-size:13px;font-weight:500}.dialog-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;opacity:0;pointer-events:none;background:#00000061;justify-content:center;align-items:center;transition:opacity .16s;display:flex;position:fixed;inset:0}.dialog-overlay.open{opacity:1;pointer-events:all}.dialog-box{background:#fff;border-radius:12px;width:100%;max-width:420px;padding:28px 28px 24px;transition:transform .16s;transform:scale(.96)translateY(-8px);box-shadow:0 8px 48px #0000002e}.dialog-overlay.open .dialog-box{transform:scale(1)translateY(0)}.dialog-icon{border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:16px;display:flex}.dialog-icon-confirm{background:var(--primary-50);color:var(--primary-400)}.dialog-icon-optout{color:#ff4d4f;background:#fff1f0}.dialog-title{color:var(--text-primary);margin-bottom:8px;font-size:16px;font-weight:700}.dialog-body{color:var(--text-secondary);margin-bottom:24px;font-size:13px;line-height:1.65}.dialog-footer{justify-content:flex-end;gap:10px;display:flex}.dialog-btn-cancel{border:1px solid var(--neutral-300);border-radius:var(--radius-sm);height:36px;color:var(--text-secondary);font-family:var(--font);cursor:pointer;background:#fff;padding:0 16px;font-size:13px;font-weight:500;transition:border-color .1s,color .1s}.dialog-btn-cancel:hover{border-color:var(--neutral-500);color:var(--text-primary)}.dialog-btn-ok{border-radius:var(--radius-sm);height:36px;font-family:var(--font);cursor:pointer;border:none;padding:0 20px;font-size:13px;font-weight:500;transition:opacity .1s}.dialog-btn-ok.primary{background:var(--primary-400);color:#fff}.dialog-btn-ok.danger{color:#fff;background:#ff4d4f}.dialog-btn-ok.danger:hover{background:#ff7875}.dialog-btn-ok:hover{opacity:.88}.tc-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1100;opacity:0;pointer-events:none;background:#0006;justify-content:center;align-items:center;transition:opacity .18s;display:flex;position:fixed;inset:0}.tc-overlay.open{opacity:1;pointer-events:all}.tc-modal{background:#fff;border-radius:12px;flex-direction:column;width:92%;max-width:960px;max-height:90vh;transition:transform .18s;display:flex;overflow:hidden;transform:scale(.96)translateY(-10px);box-shadow:0 12px 56px #0003}.tc-overlay.open .tc-modal{transform:scale(1)translateY(0)}.tc-header{border-bottom:1px solid var(--neutral-200);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px 16px;display:flex}.tc-header-left{align-items:center;gap:8px;display:flex}.tc-storefront-code{color:#5244ee;background:#f0f0ff;border-radius:6px;align-items:center;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.tc-title{color:var(--text-primary);font-size:17px;font-weight:700}.tc-cycle-tag{color:#5244ee;background:#f0f0ff;border-radius:6px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.tc-cycle-badge{color:var(--badge-open-text);align-items:center;gap:4px;font-size:11px;font-weight:500;display:inline-flex}.tc-cycle-badge-dot{background:#1890ff;border-radius:2.5px;width:5px;height:5px}.tc-email-reminder{color:var(--text-muted);align-items:center;gap:5px;font-size:12px;display:flex}.tc-close{cursor:pointer;width:30px;height:30px;color:var(--neutral-500);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex}.tc-close:hover{background:var(--neutral-100);color:var(--text-primary)}.tc-dates{border-bottom:1px solid var(--neutral-200);flex-shrink:0;grid-template-columns:repeat(4,1fr);display:grid}.tc-date-item{border-right:1px solid var(--neutral-200);flex-direction:column;gap:4px;padding:14px 20px;display:flex}.tc-date-item:last-child{border-right:none}.tc-date-label{color:var(--text-muted);font-size:11px;font-weight:500}.tc-date-val-row{align-items:center;gap:7px;display:flex}.tc-date-icon{flex-shrink:0}.tc-date-val{font-size:13px;font-weight:600}.tc-date-val.orange{color:#fa8c16}.tc-date-val.blue{color:#1890ff}.tc-date-val.green{color:#52c41a}.tc-body{flex:1;padding:20px 24px;overflow-y:auto}.tc-what-box{background:#eef2ff;border-radius:8px;gap:12px;margin-bottom:16px;padding:14px 16px;display:flex}.tc-what-icon{background:var(--primary-400);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;font-weight:700;display:flex}.tc-what-title{color:var(--primary-400);margin-bottom:6px;font-size:14px;font-weight:600}.tc-what-desc{color:var(--text-secondary);font-size:13px;line-height:1.6}.tc-steps{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;display:grid}.tc-step{border:1px solid var(--neutral-200);border-radius:8px;align-items:flex-start;gap:10px;padding:14px 16px;display:flex}.tc-step-num{background:var(--primary-400);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:flex}.tc-step-title{color:var(--text-primary);margin-bottom:4px;font-size:13px;font-weight:600}.tc-step-desc{color:var(--text-secondary);font-size:12px;line-height:1.5}.tc-section-title{color:var(--text-primary);margin-bottom:12px;font-size:14px;font-weight:700}.tc-terms-box{border:1px solid var(--neutral-200);background:#fafafa;border-radius:8px;max-height:168px;margin-bottom:16px;padding:16px 18px;overflow-y:auto}.tc-terms-box ol{padding-left:18px}.tc-terms-box li{flex-direction:column;gap:2px;margin-bottom:12px;font-size:13px;line-height:1.5;display:flex}.tc-terms-box li:last-child{margin-bottom:0}.tc-terms-box li b{color:var(--text-primary);display:block}.tc-terms-box li span{color:var(--text-secondary);line-height:1.6}.tc-agree{color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;margin-bottom:4px;font-size:13px;display:flex}.tc-agree input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary-400);cursor:pointer}.tc-footer{border-top:1px solid var(--neutral-200);flex-shrink:0;justify-content:flex-end;align-items:center;gap:10px;padding:14px 24px;display:flex}.tc-btn-learn{border:1px solid var(--neutral-300);border-radius:var(--radius-sm);height:36px;color:var(--text-secondary);font-family:var(--font);cursor:pointer;background:#fff;padding:0 18px;font-size:13px;font-weight:500;transition:border-color .1s,color .1s}.tc-btn-learn:hover{border-color:var(--neutral-500);color:var(--text-primary)}.tc-btn-join{border-radius:var(--radius-sm);background:var(--primary-400);color:#fff;height:36px;font-family:var(--font);cursor:pointer;border:none;align-items:center;gap:6px;padding:0 20px;font-size:13px;font-weight:500;transition:opacity .12s;display:flex}.tc-btn-join:hover:not(:disabled){opacity:.88}.tc-btn-join:disabled{background:var(--neutral-300);color:var(--neutral-white);cursor:not-allowed;opacity:1}.promo-list-body{align-items:flex-start;gap:16px;display:flex}.promo-list-body .card{flex:1;min-width:0}.promo-panel{background:var(--neutral-white);border:1px solid var(--neutral-200);border-radius:var(--radius-md);flex-shrink:0;width:200px;position:sticky;top:76px;overflow:hidden}.promo-panel-section{padding:14px 16px}.promo-panel-label{color:var(--text-muted);letter-spacing:.6px;margin-bottom:10px;font-size:11px;font-weight:600}.promo-panel-btn-tooltip-wrap{position:relative}.promo-panel-btn-tooltip{background:var(--neutral-700);color:#fff;border-radius:var(--radius-sm);white-space:normal;text-align:center;pointer-events:none;opacity:0;z-index:50;width:200px;padding:7px 10px;font-size:11px;line-height:1.5;transition:opacity .15s;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)}.promo-panel-btn-tooltip:after{content:"";border:5px solid #0000;border-top-color:var(--neutral-700);position:absolute;top:100%;left:50%;transform:translate(-50%)}.promo-panel-btn-tooltip-wrap:hover .promo-panel-btn-tooltip{opacity:1}.promo-panel-store-select{border:1px solid var(--neutral-300);border-radius:var(--radius-sm);background:var(--neutral-white);width:100%;height:34px;color:var(--text-primary);font-family:var(--font);cursor:pointer;appearance:auto;padding:0 10px;font-size:13px}.promo-panel-store-select:focus{border-color:var(--primary-400);box-shadow:0 0 0 2px var(--primary-50);outline:none}.promo-panel-status-badge{border:1px solid;border-radius:20px;align-items:center;gap:6px;padding:4px 12px;font-size:13px;font-weight:500;display:inline-flex}.promo-panel-status-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.promo-panel-divider{border-top:1px solid var(--neutral-200)}.promo-panel-actions{flex-direction:column;gap:10px;display:flex}.promo-panel-enroll-btn{border-radius:var(--radius-sm);color:#fff;background:var(--primary-400);width:100%;height:36px;font-family:var(--font);cursor:pointer;border:none;padding:0 12px;font-size:13px;font-weight:500;transition:background .15s}.promo-panel-enroll-btn:hover{background:var(--primary-300)}.promo-panel-enroll-btn:active{background:var(--primary-600)}.promo-panel-exit-btn{border-radius:var(--radius-sm);color:#ff4d4f;width:100%;height:36px;font-family:var(--font);cursor:pointer;background:0 0;border:1px solid #ff4d4f;padding:0 12px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,color .12s}.promo-panel-exit-btn:hover{color:#ff7875;background:#fff1f0;border-color:#ff7875}tbody tr.row-selected{background:#fafbff}.promo-panel-exit-btn:disabled{border-color:var(--neutral-300);color:var(--neutral-400);cursor:not-allowed;background:0 0}.promo-panel-audit-btn{border-radius:var(--radius-sm);width:100%;height:36px;font-family:var(--font);cursor:pointer;color:var(--text-secondary);border:1px solid var(--neutral-300);background:0 0;justify-content:center;align-items:center;gap:7px;margin-bottom:0;padding:0 12px;font-size:13px;font-weight:500;transition:border-color .12s,color .12s,background .12s;display:flex}.promo-panel-audit-btn:hover{border-color:var(--primary-300);color:var(--primary-400);background:var(--primary-50)}.promo-panel-audit-table{border:1px solid var(--neutral-200);border-radius:6px;font-size:11px;overflow:hidden}.promo-panel-audit-head{background:var(--neutral-100);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;grid-template-columns:1.2fr 1.4fr 1fr;gap:6px;padding:10px 14px;font-size:12px;font-weight:600;display:grid}.promo-panel-audit-row{color:var(--text-secondary);border-top:1px solid var(--neutral-200);grid-template-columns:1.2fr 1.4fr 1fr;gap:6px;padding:11px 14px;font-size:13px;display:grid}.exit-scheduled-tooltip-wrap{vertical-align:middle;align-items:center;display:inline-flex;position:relative}.exit-scheduled-info-icon{color:var(--text-muted);display:block}.exit-scheduled-tooltip{color:#fff;white-space:nowrap;pointer-events:none;z-index:100;background:#1f1f1f;border-radius:6px;padding:6px 10px;font-size:12px;line-height:1.4;display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000002e}.exit-scheduled-tooltip:after{content:"";border:5px solid #0000;border-top-color:#1f1f1f;position:absolute;top:100%;left:50%;transform:translate(-50%)}.exit-scheduled-tooltip-wrap:hover .exit-scheduled-tooltip{display:block}.confirm-modal-overlay{z-index:400;background:#00000073;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.confirm-modal{background:var(--neutral-white);border-radius:var(--radius-md);flex-direction:column;width:100%;max-width:1100px;max-height:calc(100vh - 48px);display:flex;overflow:hidden;box-shadow:0 20px 60px #0003}.confirm-modal-header{border-bottom:1px solid var(--neutral-200);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.confirm-modal-title{color:var(--text-primary);font-size:17px;font-weight:700}.confirm-modal-close{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.confirm-modal-close:hover{background:var(--neutral-100);color:var(--text-primary)}.confirm-tabs{border-bottom:1px solid var(--neutral-200);flex-shrink:0;padding:0 24px;display:flex}.confirm-tab{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:13px 16px;font-size:13px;font-weight:500;transition:color .15s,border-color .15s;display:inline-flex}.confirm-tab:hover{color:var(--text-primary)}.confirm-tab-active{color:var(--primary-400);border-bottom-color:var(--primary-400)}.confirm-tab-count{background:var(--neutral-100);color:var(--text-muted);border-radius:10px;padding:2px 7px;font-size:11px;font-weight:600}.confirm-tab-active .confirm-tab-count{color:var(--primary-400);background:#eef2ff}.confirm-modal-body{flex:1;min-height:0;overflow:auto}.confirm-modal-footer{border-top:1px solid var(--neutral-200);flex-shrink:0;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.btn-cancel{border-radius:var(--radius-sm);border:1px solid var(--neutral-300);background:var(--neutral-white);height:36px;color:var(--text-secondary);font-family:var(--font);cursor:pointer;padding:0 20px;font-size:13px;font-weight:500;transition:border-color .12s,color .12s}.btn-cancel:hover{border-color:var(--neutral-500);color:var(--text-primary)}.btn-confirm-final{border-radius:var(--radius-sm);background:var(--primary-400);color:#fff;height:36px;font-family:var(--font);cursor:pointer;border:none;padding:0 20px;font-size:13px;font-weight:600;transition:background .12s;box-shadow:0 1px 4px #5244ee40}.btn-confirm-final:hover{background:var(--primary-600)}
