.cst-wrapper{display:flex;flex-direction:column;height:calc(100vh - 56px);overflow:hidden}.cst-toolbar{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:8px 16px;background:#fff;border-bottom:1px solid #e5e6eb}.cst-toolbar-label,.cst-core{font-size:13px;color:#646a73}.cst-scroll{flex:1;overflow:auto;position:relative}.cst-table{border-collapse:collapse;font-size:11px}.cst-table th,.cst-table td{padding:3px 5px;border:1px solid #e5e6eb;text-align:center;vertical-align:middle}.cst-abc{position:sticky;left:0;background:#f7f8fa;z-index:4;width:216px;min-width:216px;max-width:216px}.cst-a{position:sticky;left:0;background:#f7f8fa;z-index:3;width:56px;min-width:56px;max-width:56px;font-weight:600;font-size:10px;color:#1f2329;white-space:normal;word-break:break-all;line-height:1.25}.cst-b{position:sticky;left:56px;background:#f7f8fa;z-index:3;width:60px;min-width:60px;max-width:60px;font-size:10px;color:#646a73;white-space:normal}.cst-c{position:sticky;left:116px;background:#f7f8fa;z-index:3;width:100px;min-width:100px;max-width:100px;font-size:10px;white-space:normal;word-break:break-all;line-height:1.25}.cst-ah{position:sticky;left:0;background:#f7f8fa;z-index:3;width:56px;min-width:56px;max-width:56px}.cst-bh{position:sticky;left:56px;background:#f7f8fa;z-index:3;width:60px;min-width:60px;max-width:60px}.cst-ch{position:sticky;left:116px;background:#f7f8fa;z-index:3;width:100px;min-width:100px;max-width:100px}.cst-label{font-weight:600}.cst-stage-header{background:#e8f0fe;font-weight:600;font-size:12px;color:#3370ff;padding:4px 6px!important}.cst-stage-header--empty{background:#f7f8fa;color:#8f959e}.cst-stage-control{display:inline-flex;align-items:center;justify-content:center;gap:4px;max-width:100%;min-height:19px}.cst-stage-remove{width:20px;height:20px;border:none;border-radius:50%;background:transparent;color:#8f959e;font-size:19px;font-weight:700;line-height:18px;cursor:pointer;padding:0}.cst-stage-remove:hover{color:#646a73;background:#1f232914}.cst-stage-select{max-width:132px;border:none;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer;text-align:center;outline:none}.cst-stage-select:focus{border-radius:3px;box-shadow:0 0 0 2px #3370ff2e}.cst-stage-date{color:#646a73;font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap}.cst-stage-add-cell,.cst-stage-add-fill{width:44px;min-width:44px;max-width:44px;padding:0!important;border:none!important;background:#f5f6f8}.cst-stage-add{width:30px;height:30px;border:1px solid #d0d3d8;border-radius:50%;background:#fff;color:#9aa0a8;font-size:22px;line-height:26px;cursor:pointer;padding:0}.cst-stage-add:hover{border-color:#3370ff;color:#3370ff;background:#fff}.cst-drag-cell{background:#f5f6f8;width:52px;min-width:52px;max-width:52px;padding:1px 3px!important;border-bottom:none!important}.cst-drag-handle{display:inline-block;width:10px;height:10px;border-radius:50%;border:1.5px solid #bbb;background:transparent;cursor:grab;flex-shrink:0;transition:border-color .15s,background .15s,transform .1s}.cst-drag-handle:hover{border-color:#3370ff;background:#3370ff14;transform:scale(1.3)}.cst-drag-handle:active{cursor:grabbing;border-color:#245bdb;background:#245bdb1f}.cst-chan{background:#f2f3f5;width:52px;min-width:52px;max-width:52px;white-space:normal;word-break:break-all;-webkit-user-select:none;user-select:none;padding:2px 3px!important;border:none!important}.cst-chan--empty{color:#8f959e;background:#fafbfc}.cst-chan-name{font-weight:500;font-size:10px;color:#1f2329;line-height:1.3}.cst-data{font-variant-numeric:tabular-nums;width:52px;min-width:52px;max-width:52px}.cst-spacer{min-width:12px;width:12px;max-width:12px;padding:0!important;border:none!important;background:#f5f6f8}.cst-summary{font-weight:600;background:#fafbfc}.cst-highlight{color:#3370ff;font-weight:600}.cst-empty-row{padding:0!important;border:none!important;height:6px;background:#f5f6f8}.cst-toggle{display:block;width:100%;padding:3px 2px;border:1px solid transparent;border-radius:3px;font-weight:500;font-size:inherit;font-family:inherit;cursor:pointer;text-align:center;font-variant-numeric:tabular-nums;transition:all .12s ease;box-sizing:border-box;background:#fff}.cst-toggle:focus{outline:none}.cst-toggle--on{background:#e8ffea;color:#00b42a;border-color:#00b42a33}.cst-toggle--on:hover{background:#c5f2ca}.cst-toggle--off{background:#ffece8;color:#f53f3f;border-color:#f53f3f33}.cst-toggle--off:hover{background:#ffd9d2}.cst-toggle--missing{background:#f2f3f5;color:#a8abb2;border-color:#e5e6eb;cursor:not-allowed}.cst-section-front{background:#dbeafe!important}.cst-section-limit{background:#ffedd5!important}.multipanel-warn{padding:6px 16px;color:#8f959e;font-size:11px;background:#fff;border-bottom:1px solid #e5e6eb}.cst-legend{display:flex;align-items:center;gap:8px;padding:4px 16px;font-size:11px;color:#646a73;background:#fafbfc;border-bottom:1px solid #e5e6eb}.cst-legend__label{display:inline-flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.cst-legend__label:hover{color:#1f2329}.cst-legend__color-input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.cst-legend__item{display:inline-block;width:10px;height:4px;border-radius:1px}.cst-legend--商家{background:#3370ff}.cst-legend--平台{background:#f80}.cst-legend--共同{background:#8b5cf6}.cst-table thead{position:sticky;top:0;z-index:5}.cct-wrapper{display:flex;flex-direction:column;height:calc(100vh - 56px);overflow:hidden}.cct-scroll{flex:1;overflow:auto;position:relative}.cct-table{border-collapse:collapse;font-size:11px}.cct-table th,.cct-table td{padding:3px 5px;border:1px solid #e5e6eb;text-align:center;vertical-align:middle}.cct-abc{position:sticky;left:0;background:#f7f8fa;z-index:4;width:216px;min-width:216px;max-width:216px}.cct-a{position:sticky;left:0;background:#f7f8fa;z-index:3;width:56px;min-width:56px;max-width:56px;font-weight:600;font-size:10px;color:#1f2329;white-space:normal;word-break:break-all;line-height:1.25}.cct-b{position:sticky;left:56px;background:#f7f8fa;z-index:3;width:60px;min-width:60px;max-width:60px;font-size:10px;color:#646a73;white-space:normal}.cct-c{position:sticky;left:116px;background:#f7f8fa;z-index:3;width:100px;min-width:100px;max-width:100px;font-size:10px;white-space:normal;word-break:break-all;line-height:1.25}.cct-ah{position:sticky;left:0;background:#f7f8fa;z-index:3;width:56px;min-width:56px;max-width:56px}.cct-bh{position:sticky;left:56px;background:#f7f8fa;z-index:3;width:60px;min-width:60px;max-width:60px}.cct-ch{position:sticky;left:116px;background:#f7f8fa;z-index:3;width:100px;min-width:100px;max-width:100px}.cct-label{font-weight:600}.cct-panel-header{font-weight:600;font-size:12px}.cct-panel-header--1{background:#e8f0fe;color:#3370ff}.cct-panel-header--2{background:#e8fef0;color:#00875a}.cct-panel-header--3{background:#fff8e8;color:#b45309}.cct-chan{background:#f2f3f5;width:52px;min-width:52px;max-width:52px;white-space:normal;word-break:break-all;-webkit-user-select:none;user-select:none;padding:2px 3px!important;border:none!important}.cct-chan-name{font-weight:500;font-size:10px;color:#1f2329;line-height:1.3}.cct-data{font-variant-numeric:tabular-nums;width:52px;min-width:52px;max-width:52px}.cct-spacer{min-width:12px;width:12px;max-width:12px;padding:0!important;border:none!important;background:#f5f6f8}.cct-summary{font-weight:600;background:#fafbfc}.cct-highlight{color:#3370ff;font-weight:600}.cct-empty-row{padding:0!important;border:none!important;height:6px;background:#f5f6f8}.cct-toggle{display:block;width:100%;padding:3px 2px;border:1px solid transparent;border-radius:3px;font-weight:500;font-size:inherit;font-family:inherit;cursor:pointer;text-align:center;font-variant-numeric:tabular-nums;transition:all .12s ease;box-sizing:border-box;background:#fff}.cct-toggle:focus{outline:none}.cct-toggle--on{background:#e8ffea;color:#00b42a;border-color:#00b42a33}.cct-toggle--on:hover{background:#c5f2ca}.cct-toggle--off{background:#ffece8;color:#f53f3f;border-color:#f53f3f33}.cct-toggle--off:hover{background:#ffd9d2}.cct-toggle--missing{background:#f2f3f5;color:#a8abb2;border-color:#e5e6eb;cursor:not-allowed}.cct-editable{cursor:pointer;position:relative}.cct-editable:hover .cct-edit-span{background:#dde8ff}.cct-overridden{background:#fffbe6}.cct-overridden:hover{background:#fff3b0}.cct-edit-span{display:block;width:100%;padding:3px 2px;font-variant-numeric:tabular-nums;cursor:text;border:1px solid transparent;border-radius:3px;min-height:18px;box-sizing:border-box;background:#f0f4ff;color:#1f2329}.cct-edit-span--missing{background:#f2f3f5;color:#a8abb2;cursor:not-allowed;border-color:#e5e6eb}.cct-editable:hover .cct-edit-span--missing{background:#f2f3f5}.cct-edit-input{display:block;width:100%;padding:2px;border:1px solid #3370ff;border-radius:3px;font-size:inherit;font-family:inherit;font-variant-numeric:tabular-nums;text-align:center;background:#fff;box-sizing:border-box;outline:none}.cct-diff-pos{color:#f53f3f;font-weight:600}.cct-diff-neg{color:#00b42a;font-weight:600}.cct-diff-zero{color:#8f959e}.cct-missing{background:#f2f3f5;color:#a8abb2}.cct-section-front{background:#e8f4ff!important}.cct-section-limit{background:#fff4e8!important}.cct-legend{display:flex;align-items:center;gap:8px;padding:4px 16px;font-size:11px;color:#646a73;background:#fafbfc;border-bottom:1px solid #e5e6eb}.cct-legend__label{display:inline-flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.cct-legend__label:hover{color:#1f2329}.cct-legend__color-input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.cct-legend__item{display:inline-block;width:10px;height:4px;border-radius:1px}.cct-legend__hint{color:#b0b7bf;font-size:10px;margin-left:8px}.cct-table thead{position:sticky;top:0;z-index:5}.searchable-select{position:relative;min-width:160px}.searchable-select__trigger{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:4px 6px;border:1px solid #dee0e3;border-radius:4px;font-size:inherit;color:#1f2329;background:#fff;cursor:pointer;-webkit-user-select:none;user-select:none}.searchable-select__trigger:hover{border-color:#3370ff}.searchable-select__value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.searchable-select__arrow{font-size:10px;color:#8f959e;flex-shrink:0}.searchable-select__dropdown{position:absolute;top:100%;left:0;right:0;z-index:100;margin-top:2px;border:1px solid #dee0e3;border-radius:4px;background:#fff;box-shadow:0 4px 12px #0000001a;max-height:320px;display:flex;flex-direction:column}.searchable-select__search{padding:8px 10px;border:none;border-bottom:1px solid #dee0e3;font-size:inherit;outline:none;color:#1f2329;flex-shrink:0}.searchable-select__list{overflow-y:auto;flex:1}.searchable-select__option{padding:6px 10px;font-size:inherit;color:#1f2329;cursor:pointer}.searchable-select__option:hover{background:#f0f5ff}.searchable-select__option--selected{background:#e8f0fe;font-weight:500}.searchable-select__empty{padding:12px 10px;font-size:inherit;color:#8f959e;text-align:center}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;font-size:13px;color:#1f2329;background:#f5f6f8;-webkit-font-smoothing:antialiased}#root{min-height:100vh}.app{max-width:100%;padding:16px}.table-selector{max-width:480px;margin:80px auto;padding:24px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000000f}.table-selector h3{font-size:16px;font-weight:600;margin-bottom:20px;color:#1f2329}.table-selector__row{display:flex;align-items:center;gap:12px;margin-bottom:14px}.table-selector__row label{font-size:13px;color:#646a73;white-space:nowrap;min-width:90px;text-align:right}.table-selector__row select{flex:1;padding:6px 10px;border:1px solid #dee0e3;border-radius:4px;font-size:13px;color:#1f2329;background:#fff;cursor:pointer}.table-selector__row select:focus{outline:none;border-color:#3370ff;box-shadow:0 0 0 2px #3370ff26}.btn-confirm{display:block;width:100%;margin-top:20px;padding:8px 0;border:none;border-radius:4px;font-size:14px;font-weight:500;color:#fff;background:#3370ff;cursor:pointer}.btn-confirm:hover{background:#2b5dd4}.table-selector__hint{font-size:12px;color:#8f959e;margin-bottom:16px;line-height:1.6}.table-selector__hint code{background:#f2f3f5;padding:1px 4px;border-radius:3px;font-size:12px}.table-selector__version{text-align:right;margin-top:4px;font-size:11px;color:#bbb}.table-selector__input{flex:1;padding:6px 10px;border:1px solid #dee0e3;border-radius:4px;font-size:13px;color:#1f2329;font-family:monospace}.table-selector__input:focus{outline:none;border-color:#3370ff;box-shadow:0 0 0 2px #3370ff26}.filter-panel{margin-bottom:16px}.filter-bar{display:flex;gap:12px;align-items:center;padding:12px 16px;background:#fff;border-radius:8px;margin-bottom:8px;box-shadow:0 1px 3px #0000000f;flex-wrap:wrap}.filter-bar label{font-size:13px;color:#646a73;white-space:nowrap}.filter-bar select{padding:5px 10px;border:1px solid #dee0e3;border-radius:4px;font-size:13px;color:#1f2329;background:#fff;cursor:pointer;min-width:140px}.filter-bar select:focus{outline:none;border-color:#3370ff;box-shadow:0 0 0 2px #3370ff26}.filter-bar .btn-reset,.filter-bar .btn-reselect{padding:5px 14px;border:1px solid #dee0e3;border-radius:4px;font-size:13px;color:#646a73;background:#fff;cursor:pointer}.filter-bar .btn-reset{margin-left:auto}.filter-bar .btn-reset:hover,.filter-bar .btn-reselect:hover{color:#3370ff;border-color:#3370ff}.filter-bar .btn-debug{padding:5px 14px;border:1px solid #dee0e3;border-radius:4px;font-size:13px;color:#646a73;background:#fff;cursor:pointer}.filter-bar .btn-debug--active{color:#ff7d00;border-color:#ff7d00;background:#fff7e8}.channel-filter-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e5e6eb;border-radius:8px;box-shadow:0 1px 3px #0000000a}.btn-channel-picker{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:#f5f7fa;border:1px solid #d0d3d8;color:#1f2329;border-radius:6px;font-size:13px;cursor:pointer;white-space:nowrap}.btn-channel-picker--open{background:#e8f0fe;border-color:#3370ff;color:#245bdb}.btn-channel-picker__count{color:#646a73;font-size:12px}.channel-chip-list{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.channel-chip{padding:5px 10px;border-radius:999px;font-size:12px;line-height:1.3;cursor:pointer;transition:all .16s ease}.channel-chip--active{background:#f0fff7;border:1px solid #32b36b;color:#16894f}.channel-chip--inactive{background:#f2f3f5;border:1px solid #d0d3d8;color:#8f959e}.channel-chip:hover{transform:translateY(-1px)}.debug-panel{margin-top:16px;padding:16px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000000f;border:1px dashed #ff7d0033}.debug-panel h4{font-size:14px;font-weight:600;color:#ff7d00;margin-bottom:12px}.debug-table{width:100%;border-collapse:collapse;font-size:12px}.debug-table td{padding:6px 10px;border-bottom:1px solid #f2f3f5;vertical-align:top}.debug-table td:first-child{font-weight:500;color:#646a73;white-space:nowrap;width:160px}.debug-table td code{background:#f2f3f5;padding:1px 4px;border-radius:3px;font-family:monospace;font-size:12px}.loading,.error{display:flex;align-items:center;justify-content:center;padding:60px 20px;color:#646a73;font-size:14px}.error{color:#d4380d}.spinner{width:20px;height:20px;border:2px solid #dee0e3;border-top-color:#3370ff;border-radius:50%;animation:spin .6s linear infinite;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;padding:60px 20px;color:#8f959e;font-size:14px}.btn-multistage{padding:6px 12px;border:1px solid #dee0e3;border-radius:4px;background:#fff;color:#3370ff;font-size:13px;cursor:pointer;white-space:nowrap}.btn-multistage:hover{background:#f0f5ff}.btn-multistage:disabled{opacity:.4;cursor:not-allowed}.btn-multistage--active{background:#3370ff;color:#fff}.btn-multistage--active:hover{background:#2b5dd4}.multipanel-warn{padding-top:6px;color:#8f959e;font-size:11px}.multipanel-container{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;height:calc(100vh - 60px);padding:8px 12px 20px;align-items:flex-start;-webkit-overflow-scrolling:touch}.multipanel-add{flex-shrink:0;width:32px;height:32px;border:1px solid #d0d3d8;border-radius:50%;background:#fff;color:#9aa0a8;font-size:18px;line-height:28px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;margin-top:4px}.multipanel-add:hover{border-color:#b0b5bc;color:#6a7078;background:#f5f5f5}
