/* A quiet, data-first workspace with fixed navigation and readable comparison tables. */
:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#203349;background:#f5f7fa;font-synthesis:none;--teal:#007f7a;--muted:#7b8a9e;--line:#e5ebf1}*{box-sizing:border-box}body{margin:0;font-size:14px}aside{position:fixed;width:208px;height:100vh;background:#fcfdff;border-right:1px solid var(--line);padding:30px 18px;display:flex;flex-direction:column}.brand{font-size:19px;font-weight:700;display:flex;gap:10px;align-items:center;margin-bottom:44px}.brand b{background:#064c5b;color:white;border-radius:10px;padding:7px 12px;font-size:24px}nav button{display:block;width:100%;text-align:left;border:0;background:none;margin:9px 0;padding:15px;font-size:15px;color:#5e7088}nav button.active{background:#e0f2ef;color:#007f7a;font-weight:600}.side-bottom{margin-top:auto;font-size:12px;color:#62758d}.side-bottom small{display:block;margin-top:12px;color:#9ba6b4}.dot{display:inline-block;width:7px;height:7px;background:#299d86;border-radius:50%;margin-right:7px}main{margin-left:208px;padding:34px 34px 48px;max-width:1900px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}h1{font-size:30px;letter-spacing:-1px;margin:8px 0}h2{font-size:17px;margin:0 0 10px}p{line-height:1.7}.eyebrow{font-size:10px;letter-spacing:1.8px;color:#8191a5;margin:0}.muted{color:var(--muted);margin:5px 0}.actions{display:flex;align-items:center;gap:10px}button,select,input{font:inherit;border:1px solid #dce4ec;border-radius:6px;background:white;color:#344c65;padding:10px 12px}button{cursor:pointer;transition:.15s}button:hover{background:#eff8f6;border-color:#79bcb4}button.primary{background:var(--teal);border-color:var(--teal);color:white}button.primary:hover{background:#00635e}select{cursor:pointer}input{min-width:0}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #9bd6cd;outline-offset:2px}.badge,.tag{font-size:11px;background:#edf3f7;color:#73849a;padding:6px 9px;border-radius:5px}.panel{background:white;border:1px solid var(--line);border-radius:10px;padding:23px;box-shadow:0 2px 4px #23354a02}.filters{display:grid;grid-template-columns:1.5fr 1fr 1fr .8fr;gap:20px}.filters label{display:block;color:#71839a;font-size:12px;margin-bottom:8px}.filters select{width:100%}.date-group{grid-column:span 2}.date-group>div{display:flex;align-items:center;gap:10px}.date-group input{width:46%}.filter-foot{grid-column:1/-1;border-top:1px solid var(--line);padding-top:14px;display:flex;justify-content:space-between;color:#8390a0;font-size:11px;gap:12px}.filter-foot label{margin:0;display:flex;align-items:center;gap:6px}.sample{font-size:12px;color:#738296;padding:16px 3px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.card{background:white;padding:23px 20px;border:1px solid var(--line);border-radius:9px}.card-title{font-size:12px;color:#697e96}.card-value{font-size:25px;font-weight:650;letter-spacing:-.5px;margin:15px 0 10px;white-space:nowrap}.arrow{font-size:20px;color:#b8c4d0;margin:0 8px}.change{font-size:13px;color:#5b718b}.good{color:#048e75}.bad{color:#bb7353}.columns{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:20px;margin-bottom:20px}.section-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.section-head p{font-size:11px;color:#91a0b1;margin:0}.section-head select{padding:5px 8px;font-size:12px}.section-head a,a{color:var(--teal);text-decoration:none;cursor:pointer}#legend{font-size:11px;display:flex;gap:12px}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}#chart svg{width:100%;height:240px;display:block}.release{padding:15px 0;border-bottom:1px solid var(--line)}.release:last-child{border:0}.release strong{font-size:12px;background:#e4f4f0;color:#087f76;padding:5px 8px;border-radius:4px}.release time{display:block;margin:13px 0 7px;font-size:11px;color:#8596a8}.release ul{padding-left:18px;font-size:13px;line-height:1.8;margin-bottom:0;max-height:170px;overflow:auto}.table-panel{padding-bottom:10px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:12px}th{text-align:left;color:#76879a;background:#f6f8fa;font-size:11px;font-weight:500;padding:12px 10px}td{padding:13px 10px;border-bottom:1px solid #eef2f5}th:not(:first-child),td:not(:first-child){text-align:right}td:first-child{font-weight:500}.footnote{font-size:11px;color:#98a4b3;margin-top:16px}#summary h3{font-size:21px;line-height:1.5;margin:12px 0}#summary p{font-size:13px;color:#728398}.wide{width:100%;margin-top:20px;color:var(--teal)}.quality{margin-top:6px}.quality ul{margin:0;padding-left:18px;color:#8d785a;font-size:12px;line-height:1.9}#message{color:#9a6241;background:#fff7e9;padding:12px 15px;border-radius:7px;margin-bottom:16px;font-size:12px}#message:empty{display:none}#sources .panel{margin-bottom:20px}#sources dl{display:grid;grid-template-columns:150px 1fr;line-height:2.6}#sources dt{color:#8190a3}#sources dd{margin:0;overflow-wrap:anywhere}dialog{width:min(900px,94vw);height:86vh;border:1px solid var(--line);border-radius:12px;padding:26px;box-shadow:0 30px 100px #23354a33}dialog::backdrop{background:#15293966;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between}.report-controls{display:flex;align-items:center;gap:12px;margin:20px 0}.report-controls span{font-size:12px}textarea{width:100%;height:calc(100% - 145px);border:1px solid var(--line);border-radius:8px;padding:20px;font:13px/1.9 ui-monospace,monospace;color:#3e5269;resize:none;background:#fbfcfd}[hidden]{display:none!important}@media(max-width:1200px){main{padding:25px 20px;margin-left:175px}aside{width:175px}.brand{font-size:15px}.columns{grid-template-columns:1fr}.card-value{font-size:20px}.actions .badge{display:none}}@media(max-width:760px){aside{position:static;width:100%;height:auto;padding:12px}nav{display:flex}.brand{margin:0}nav button{font-size:12px;padding:9px}.side-bottom{display:none}main{margin:0;padding:18px}header{display:block}.actions{margin-top:15px}.cards{grid-template-columns:1fr 1fr}.filters{grid-template-columns:1fr 1fr}.filter-foot{display:block}.filter-foot label{margin-top:12px}.report-controls{flex-wrap:wrap}}
/* v7 keeps selected-day values in a single area; broad cards remain legible at desktop widths. */
body{background:linear-gradient(120deg,#f3f8fc,#fafcfe);color:#142841}h1{margin-top:0}.brand b{background:none;color:#008f99;padding:0;font-size:32px}.cards{grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.card{grid-column:span 3;padding:18px}.card:nth-child(n+5){grid-column:span 4}.card-title{font-weight:600;color:#213854;font-size:13px}.card-value{font-size:clamp(17px,1.65vw,26px);margin:13px 0}.card-value em{font-style:normal;color:#008e98}.card small{display:block;font-size:10px;color:#8695a8;margin-top:9px;line-height:1.5}.change{font-size:17px;font-weight:600}.good{color:#009c9d}.bad{color:#dc880f}.columns{grid-template-columns:minmax(0,1.5fr) minmax(360px,1fr)}.chart-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}#chart svg{height:320px}#chart circle{cursor:pointer}#chart circle:hover,#chart circle:focus{stroke:#173c61;stroke-width:3;outline:none}.chart-readout{font-size:12px;min-height:25px;color:#67809b;background:#f7fafc;padding:8px;border-radius:5px}.formula{font-size:12px;line-height:1.8;padding:8px 12px;background:#f0f6ff;border:1px solid #dbe7f6;border-radius:5px;color:#31557e;margin:10px 0 18px}.net{display:flex;gap:12px;align-items:center;font-size:16px;font-weight:600;flex-wrap:wrap;margin-bottom:22px}.net b{font-size:28px}.net small{font-size:12px;color:#8091a8;font-weight:400}.contribution{display:grid;grid-template-columns:100px 1fr 75px;gap:10px;align-items:center;margin:20px 0}.contribution strong{font-size:13px}.contribution small{display:block;font-size:10px;color:#8a9ab0;margin-top:6px}.contribution>b{text-align:right;font-size:15px}.track{height:15px;border-radius:4px;background:#edf3f7;overflow:hidden}.track i{display:block;height:100%;border-radius:4px}.positive{background:linear-gradient(90deg,#48c8c9,#16b8bc)}.negative{background:linear-gradient(90deg,#f2bb65,#ef9c20)}.totals{border-top:1px solid var(--line);padding-top:16px;font-size:12px;color:#72859e;text-align:center}.insight{background:#eaf9f9;color:#15767e;border:1px solid #ccefee;padding:12px;border-radius:6px;font-size:12px;line-height:1.8}.attribution .footnote{line-height:1.7;font-size:11px}.release-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.release{border:0}.section-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:12px}.section-foot button{margin-left:6px}.quality{margin-top:20px}.quality summary{cursor:pointer;font-size:13px;color:#667f99}.quality ul{margin-top:14px}.filter-foot{align-items:center;flex-wrap:wrap}.filter-foot>div{display:flex;align-items:center;gap:10px}.filter-foot select{width:auto;font-size:12px;padding:7px}.badge.demo{background:#fff3df;color:#a36508}.empty{padding:55px 15px;text-align:center;line-height:1.9;color:#8092aa}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.footnote{color:#8092a8}#rawDialog{width:min(1100px,96vw);height:70vh}button:disabled{opacity:.5;cursor:wait}
@media(max-width:1100px){.columns{grid-template-columns:1fr}.card-value{font-size:19px}.chart-controls{flex-wrap:nowrap}header{align-items:flex-start}.actions{flex-wrap:wrap;justify-content:flex-end}}@media(max-width:760px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.card,.card:nth-child(n+5){grid-column:span 1}.card:last-child{grid-column:span 2}.card-value{font-size:17px}.release-grid{grid-template-columns:1fr;gap:0}.section-foot{display:block}.section-foot>div{margin-top:15px}.filter-foot>div{display:block}.chart-controls{display:block}#legend{margin-bottom:10px}.section-head{gap:5px}.actions{justify-content:flex-start}#chart svg{height:270px}.panel{padding:16px}}
/* Fractions expose numerator/denominator changes without changing the stored ROI units. */
.formula-equation{display:flex;align-items:center;justify-content:center;gap:10px;padding:6px 0;font-size:12px}.fraction{display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;min-width:60px;line-height:1.6}.fraction>span:first-child{padding:3px 6px 5px;border-bottom:1px solid #6c87a5}.fraction>span:last-child{padding:4px 6px 2px}.formula-values{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid #dbe7f6;margin-top:8px;padding-top:10px}.formula-values>div{min-width:0;background:#ffffff8a;padding:8px;border-radius:5px}.formula-values b{font-size:11px}.formula-values .formula-equation{flex-wrap:wrap;gap:6px}.formula-values small,.formula>small{font-size:10px;color:#71839b;display:block;line-height:1.6}.formula-changes{font-size:11px;margin:9px 0}.attribution-mode{font-size:11px;color:#788ba2;margin-top:-8px}.formula details{margin-top:8px}.formula summary{cursor:pointer}
/* The wider left panel hosts five daily metrics without crowding the ROI formula. */
.daily-details{margin-top:26px;border-top:1px solid var(--line);padding-top:18px}.daily-details summary{cursor:pointer;font-size:13px;font-weight:600;color:#314d6b}.daily-details .table-scroll{max-height:600px;overflow:auto}.daily-details table{font-size:11px;width:100%}.daily-details th{position:sticky;top:0;z-index:1;padding:10px 6px}.daily-details td{padding:12px 6px}.daily-details td>span{display:block}.daily-target{color:#008e98;margin-top:5px}.daily-details td small{display:block;color:#91a0b0;font-size:9px;margin-top:6px}.daily-details th small{font-size:9px}.daily-details .footnote{line-height:1.7}
/* Drag affordances are local to each independently ordered metric group. */
.card-title{display:flex;align-items:center;justify-content:space-between;gap:5px}.sort-handle{border:0;background:transparent;color:#90a4b9;padding:2px 5px;font-size:18px;line-height:1;cursor:grab;flex-shrink:0}.sort-handle:hover{color:#008e98;background:#eaf7f7}.sort-handle:active{cursor:grabbing}[draggable=true]{cursor:grab}.dragging{opacity:.45}.drop-target{outline:2px solid #00a1a4;outline-offset:-2px;background:#edfafa!important}.daily-details th .sort-handle{vertical-align:middle;margin-left:4px}body:has(.dragging){user-select:none}
/* A compact issue count stays visible while details and calculation rules expand independently. */
.quality-status summary{display:flex;align-items:center;gap:14px;list-style:none}.quality-status summary::-webkit-details-marker{display:none}.quality-status strong{color:#203349}.quality-status .badge.pending{background:#fff0d7;color:#ae6513}.quality-status .badge{white-space:nowrap}#qualitySummary{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:#7d8ea3}.quality-toggle{color:#008c96;white-space:nowrap;font-size:12px}.quality-status[open] .quality-toggle{font-size:0}.quality-status[open] .quality-toggle::after{content:'收起详情 ⌄';font-size:12px}#quality p{margin:5px 0 12px;font-size:12px;line-height:1.8}.rules-hint{font-size:12px;font-weight:400;margin-left:18px;color:#8191a5}#calculationRules ul{color:#647c96}
/* Audit details use explicit precision, with long substituted formulas folded separately. */
.reconciliation td{font-variant-numeric:tabular-nums}.reconciliation td:nth-child(2){text-align:left}.reconciliation-formulas code{display:block;white-space:normal;overflow-wrap:anywhere;margin:5px 0 12px;padding:8px;background:#f4f7fb;color:#3f5e7d;font-size:11px}.reconciliation-formulas summary{cursor:pointer;color:#008c96}
/* Trend strokes can overlap earlier markers; let pointer events reach the selectable markers. */
#chart line,#chart text{pointer-events:none}#chart circle{pointer-events:all}
/* Two aligned version rows per day keep batch context beside the data. */
.daily-details th:nth-child(2),.daily-details td.daily-version{text-align:left}.daily-details td.daily-version{font-size:11px;white-space:nowrap}.daily-version .batch-count{display:inline;color:#8191a5;font-size:10px;margin-left:7px}.daily-details tr.daily-side-0 td:not(.daily-age){border-bottom:0;padding-bottom:5px}.daily-details tr.daily-side-1 td{padding-top:5px}.daily-details .daily-age{vertical-align:middle}.daily-details td .metric-direction{display:inline;font-weight:700;font-size:14px}.metric-direction.rise{color:#d94141}.metric-direction.fall{color:#19965e}.metric-direction.flat{color:#8995a5}

/* Schema errors keep the selected source visible while withholding incorrect metrics. */
.source-error{border-color:#efc486;background:#fffaf2}.source-error h2{line-height:1.7}.source-error li{margin:8px 0}.source-error details{margin-top:16px}

/* Nested navigation reserves the top level for independent analysis modules. */
.nav-modules,.nav-children{list-style:none;padding:0;margin:0}.nav-children{margin:0 0 18px 23px;padding-left:10px;border-left:1px solid #dce6ec}.nav-children button{font-size:13px;margin:4px 0;padding:11px 10px}.nav-module-header>button.module-current{color:var(--teal);font-weight:600}.nav-children button.active{background:#e0f2ef;color:var(--teal)}
/* Template actions stay readable alongside long commercial sheet headers. */
.template-panel .section-head{flex-wrap:wrap;gap:16px}.template-download{display:inline-block;padding:10px 16px;background:#008b8b;color:white;border-radius:6px;text-decoration:none;white-space:nowrap}.template-panel p{line-height:1.8}.template-panel td{min-width:100px;white-space:nowrap}.template-panel details{margin-top:16px}.template-panel textarea{width:100%;min-height:120px;margin-top:10px;white-space:pre;box-sizing:border-box}.template-panel label{display:block}

/* The arrow only collapses child navigation; the module title still opens comparison. */
.nav-module-header{display:flex;align-items:center;gap:2px}.nav-module-header>button[data-page]{flex:1;min-width:0;padding:15px 10px;white-space:nowrap}.nav-module-header .nav-toggle{flex:0 0 28px;width:28px;padding:12px 0;text-align:center;font-size:18px}.nav-toggle span{display:block;transition:transform .15s}.nav-toggle[aria-expanded="false"] span{transform:rotate(-90deg)}.nav-children[hidden]{display:none}

/* Keep the mode switch accessible while optional version fields release their grid slots. */
.comparison-mode{grid-column:1/-1;display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding-bottom:12px;grid-row:1}
.filters .version-switch{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;color:#213854;cursor:pointer}
.version-switch input{accent-color:var(--teal);width:18px;height:18px}
#comparisonModeHint{font-size:12px;color:#71839a}
.filters.time-comparison>div:has(> #mode){grid-column:span 2}
.filters.time-comparison>div:has(> #day){grid-column:span 2}
/* Direction colors remain separate from attribution benefit colors. */
.card .change.rise{color:#cf3f4f}.card .change.fall{color:#168456}
#chart rect[data-day]{cursor:pointer}#chart rect[data-day]:hover,#chart rect[data-day]:focus{stroke:#173c61;stroke-width:2;outline:none}

/* Render the accessible checkbox as a familiar on/off switch. */
.version-switch input{appearance:none;width:36px;height:20px;padding:0;border:0;border-radius:12px;background:#b6c1ce;position:relative;cursor:pointer}
.version-switch input::after{content:'';position:absolute;width:16px;height:16px;top:2px;left:2px;border-radius:50%;background:white;transition:transform .15s}
.version-switch input:checked{background:var(--teal)}.version-switch input:checked::after{transform:translateX(16px)}
/* Overview separates coverage, financial summaries and source status. */
#overview>.panel,#overviewResults>.panel{margin-bottom:20px}
.overview-filters{display:flex;align-items:end;gap:14px;flex-wrap:wrap}
.overview-filters>div{flex:1;min-width:150px}.overview-filters label{display:block;font-size:12px;color:#71839a;margin-bottom:8px}
.overview-filters input,.overview-filters select{width:100%}
.overview-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0}
.overview-cards .card{grid-column:auto}.overview-cards .card-value{font-size:clamp(18px,1.7vw,27px)}
.overview-notice{background:#fff6e4;border:1px solid #f0d9ac;border-radius:7px;padding:12px 16px;color:#875d25;font-size:12px;line-height:1.8}
.overview-rules summary,#overview>details summary{cursor:pointer;font-weight:600}.overview-rules ol{padding-left:20px;color:#71839a;font-size:12px;line-height:1.9}
.overview-link{border:0;background:transparent;color:var(--teal);padding:0;text-align:left}
.overview-wrap{white-space:normal;min-width:250px;max-width:700px;text-align:left!important;line-height:1.8}
@media(max-width:950px){.overview-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}

.overview-notice.overview-complete{background:#edf7f6;border-color:#d3e8e5;color:#39766f}
.overview-notice.overview-stale{background:#fff6e4;border-color:#f0d9ac;color:#a66a00;font-weight:600}

/* Operations uses content-area tabs; the sidebar remains one level deep. */
.brand{margin-bottom:24px}
.collect-dates{display:flex;gap:16px;margin:22px 0}.collect-dates label{flex:1;color:var(--muted)}.collect-dates input{display:block;width:100%;margin-top:8px}header .actions{flex-wrap:wrap}#collectStatus{line-height:1.7}
.operations-tabs{display:flex;gap:34px;border-bottom:1px solid var(--line);margin:-5px 0 4px}
.operations-tabs button{border:0;border-radius:0;background:transparent;padding:12px 2px;font-size:23px;font-weight:650;color:#71839a;position:relative}
.operations-tabs button.active{color:#142841}.operations-tabs button.active::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:4px;border-radius:3px;background:#079b9b}
.operations-intro{color:var(--muted);margin:10px 0 18px}.operations-form{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px;margin-bottom:16px}
.operations-form label,#collectForm>div>label{display:block;color:#71839a;font-size:12px;margin-bottom:8px}.operations-form input,.operations-form select{width:100%}.operations-form small{display:block;color:#8a99aa;margin-top:7px}.operations-wide{grid-column:1/-1}
.directory-picker{position:relative}.directory-picker-button{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left}.directory-picker-button span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.directory-tree-panel{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:20;max-height:340px;overflow:auto;padding:7px;background:white;border:1px solid #dce4ec;border-radius:8px;box-shadow:0 16px 35px #20334922}.directory-tree-row{display:flex;align-items:center;min-width:0;border-radius:5px;padding-left:calc(var(--tree-depth) * 20px)}.directory-tree-row:hover{background:#f3f8f8}.directory-tree-row.selected{background:#e0f2ef}.directory-expand,.directory-name{border:0;background:transparent;border-radius:4px;padding:8px}.directory-expand{flex:0 0 30px;width:30px;color:#60758c}.directory-expand.empty{visibility:hidden}.directory-expand[aria-expanded="true"]{transform:rotate(90deg)}.directory-name{flex:1;min-width:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#344c65}.directory-tree-row.selected .directory-name{color:var(--teal);font-weight:600}.directory-tree-empty{padding:12px;color:#8a99aa}.creation-preview,.operations-notice{background:#f0f6ff;border:1px solid #dbe7f6;border-radius:6px;padding:13px 16px;color:#486886;line-height:1.8}.creation-preview strong{color:var(--teal)}
.operations-log{margin-top:14px}.operations-log pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:250px;overflow:auto;background:#f5f8fa;border-radius:6px;padding:14px;min-height:54px;font:12px/1.7 ui-monospace,monospace}.operations-log pre:empty::before{content:'暂无运行日志';color:#94a2b3}
.auth-status{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 18px;padding:14px 18px}.auth-status-title{display:flex;align-items:center;gap:12px;white-space:nowrap}.auth-status-title strong{color:#213854}.auth-status-title span{font-size:12px;color:#8191a5}.auth-status-items{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.auth-status-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#405a74}.auth-status-item strong{font-weight:600}.auth-status-item a{color:var(--teal);font-size:12px;text-decoration:none}.auth-status-item a:hover{text-decoration:underline}.auth-status-item>span:last-child{font-size:11px;color:#91a0b0}.auth-dot{width:8px;height:8px;border-radius:50%;background:#c4ccd5}.auth-dot.online{background:#14a67a}.auth-status-item:has(.auth-dot.online) strong{color:#13805f}
.collection-modes{display:flex;margin-bottom:14px}.collection-modes button{min-width:180px;border-radius:0}.collection-modes button:first-child{border-radius:6px 0 0 6px}.collection-modes button:last-child{border-radius:0 6px 6px 0}.collection-modes button.active{background:var(--teal);border-color:var(--teal);color:white}.reuse-option{display:block;margin:15px 0}.collection-summary{font-size:14px;font-weight:600;color:#36536f;margin:16px 0}#collectionScope{margin:12px 0 18px}#collectStart{width:100%}
@media(max-width:760px){.auth-status{display:block}.auth-status-items{margin-top:12px;display:block}.auth-status-item{margin-top:10px}.operations-form{grid-template-columns:1fr}.operations-wide{grid-column:auto}.operations-tabs{gap:20px}.operations-tabs button{font-size:18px}.collection-modes button{min-width:0;flex:1}.collect-dates{display:block}}

/* Product and channel selectors share the source area at every breakpoint. */
.source-selectors{display:grid;grid-template-columns:minmax(0,2fr) minmax(110px,1fr);gap:12px}
.filters.time-comparison>.source-selectors{grid-column:span 2}
@media(max-width:760px){.source-selectors{grid-column:1/-1}}

.channel-rules{grid-column:1/-1;grid-row:4;margin:0}

/* Align the current Feishu source shortcut with the filter header. */
#comparisonSourceLink{margin-left:auto;white-space:nowrap;font-size:12px;border:1px solid #d7e2ee;border-radius:6px;padding:9px 13px;color:#087f7c;text-decoration:none;background:#fff}
#comparisonSourceLink:hover{background:#f0fbfa}

.ai-conclusion{margin:0 0 20px;border-color:#cfe9e5}.ai-head{display:flex;align-items:center;justify-content:space-between}.ai-head h2{margin:0}.ai-button{border-color:#54bcb3;color:#087f7c;background:#fff}.ai-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}.ai-grid>div{padding:10px 12px;border-radius:6px;background:#f7fbfc}.ai-grid b{font-size:12px;color:#087f7c}.ai-grid p{font-size:12px;line-height:1.6;margin:7px 0 0;color:#536a80}.ai-grid>div:last-child{background:#fff8ee}.ai-grid>div:last-child b{color:#d37b00}@media(max-width:900px){.ai-grid{grid-template-columns:1fr 1fr}}

/* Project records and assignments are separate working areas with the existing panel rhythm. */
#projects:not([hidden]){display:grid;gap:20px}#projects .overview-filters{align-items:end;gap:14px;flex-wrap:wrap}#projects input:not([type=checkbox]){width:100%}

/* Separate list filtering from the explicit two-step project reassignment action. */
.project-list-filter{display:flex;align-items:end;gap:18px;margin:18px 0}.project-list-filter select{min-width:220px}#projects h3{font-size:14px;margin:20px 0 12px}.project-assignment{background:#f4faf9;border:1px solid #d7e9e5;border-radius:8px;padding:0 18px 12px;margin-top:20px}#projectSelection{color:#087e79;font-weight:600}#projectAssignStatus{margin:0}#projectProducts tr:has(input:checked){background:#edf8f6}@media(max-width:700px){.project-list-filter{flex-direction:column;align-items:stretch}}

/* Keep ROI labels above their controls and group product scope separately from ranking criteria. */
.roi-filters{display:grid;gap:18px;align-items:start}
.roi-product-filters{grid-template-columns:1fr 1fr 1.6fr 1fr;margin:24px 0}
.roi-condition-filters{grid-template-columns:repeat(3,minmax(0,1fr))}
.roi-filters label{display:flex;flex-direction:column;gap:9px;font-size:13px;color:#63758b;min-width:0}
.roi-filters input,.roi-filters select{width:100%;min-width:0;box-sizing:border-box;height:42px;margin:0;color:#203751}
.roi-filter-heading{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:22px;margin-bottom:18px;font-weight:600;color:#203751}
.roi-filter-heading span{font-size:12px;font-weight:400;color:#8191a5}
.roi-actions{display:flex;gap:12px;margin-top:24px}
.roi-actions button{min-height:42px;padding:10px 22px}
#roiStatus{background:#f3f8fb;border-radius:8px;padding:12px 16px;margin:20px 0 12px;color:#536a80}
.roi-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:20px;margin-top:20px;align-items:start}
.roi-layout>.panel{min-width:0;margin:0}
#roiRanking{min-height:110px}#roiDetails{margin-top:14px}
#roiRanking:empty::after,#roiDetails:empty::after{content:'查找后显示符合条件的数据';display:block;text-align:center;padding:30px 12px;color:#93a1b2;font-size:13px}
.roi-layout h3{border-top:1px solid var(--line);padding-top:24px;margin-top:24px;font-size:15px}
#roiCard{background:#f4faf9;border:1px solid #d9ebe7;border-radius:10px;padding:22px;margin:18px 0;overflow-wrap:anywhere;min-height:150px;color:#294b52}
.roi-share-actions{display:flex;gap:12px}.roi-share-actions button{flex:1;min-height:42px}
@media(min-width:1600px){.roi-condition-filters{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:1100px){.roi-layout{grid-template-columns:1fr}.roi-product-filters,.roi-condition-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.roi-product-filters,.roi-condition-filters{grid-template-columns:1fr}.roi-filter-heading{flex-direction:column;gap:6px}.roi-actions{flex-wrap:wrap}}
