/* Quantity-local styling: original monetary chart tokens remain unchanged. */
.panel>label:has(>select[data-key="measure"]){display:grid;gap:6px;max-width:360px;margin:16px 0;font-size:13px;font-weight:650}.panel>label>select[data-key="measure"]{min-height:44px;border:1px solid var(--line);border-radius:7px;padding:10px}.quantity-kpis{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.quantity-kpis strong{overflow-wrap:anywhere}.quantity-audit{font-size:13px;line-height:1.7;overflow-wrap:anywhere}.quantity-audit>summary{min-height:44px;padding:12px 0;cursor:pointer}.quantity-table td{font-variant-numeric:tabular-nums}.quantity-table caption{text-align:start;padding:12px 0;font-size:12px;line-height:1.7}.quantity-chart{max-width:100%;overflow-x:auto;touch-action:pan-x pan-y}.quantity-chart svg.chart circle[role=button]{stroke-width:2px;stroke:var(--quantity-color);pointer-events:all}.quantity-chart .chart circle[role=button]:focus-visible{stroke:#0d2834;stroke-width:4px}.quantity-boundary{font-size:13px}.quantity-legend span:before{height:3px;width:28px;border-radius:0}@media print{.panel>label:has(>select[data-key="measure"]){display:none}.quantity-chart .chart{width:100%;min-width:0!important}}
/* Weekly-first main comparison: nonblocking context, not campaign attribution. */
.period-counts{flex-basis:100%;margin:0;padding:10px 12px;background:#e6efeb;border-radius:6px;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.period-advisory{padding-left:10px;border-left:3px solid #8a733d}.period-controls>[data-action="previous-equal-weeks"]{min-height:44px;max-width:100%;white-space:normal;text-align:start}.period-controls>[data-action="previous-equal-weeks"]:focus-visible{outline:2px solid #047d7a;outline-offset:3px}
/* Purpose-first outcomes and optional supporting context. */
.data-boundary{max-width:900px;padding:12px 16px;border-left:3px solid #52676d;background:#e8ede8;font-size:13px}.data-boundary strong{color:var(--navy)}.view-guidance{font-size:13px;line-height:1.7;color:#405a61}.period-support{margin:12px 0;border:1px solid var(--line);border-radius:10px;padding:0 16px;background:#fafbf8}.period-support>summary{min-height:48px;padding:14px 0;cursor:pointer;font-size:14px;font-weight:650}.period-support>summary:focus-visible{outline:2px solid #047d7a;outline-offset:3px}.period-support[open]{padding-bottom:16px}.retailer-periods{font-size:13px;line-height:1.7;overflow-wrap:anywhere}.campaign-outcomes{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.campaign-outcomes strong{overflow-wrap:anywhere}.campaign-outcomes small{font-size:12px}.retailer-comparison{margin-bottom:28px}
/* Shared main retailer comparison; no independent controls. */
.retailer-comparison{margin-top:32px;padding-top:20px;border-top:1px solid var(--line);min-width:0;scroll-margin-top:20px}.retailer-comparison>button{min-height:44px;margin-bottom:14px}.retailer-comparison .table-scroll{max-height:480px;overflow:auto;overscroll-behavior:contain}.retailer-comparison th:first-child,.retailer-comparison td:first-child{min-width:170px}.legacy-review-notice{padding:12px;background:#e6efeb;line-height:1.7}@media(max-width:480px){.retailer-comparison .table-scroll{max-height:60vh}.retailer-comparison>button{width:100%}}@media print{.retailer-comparison .table-scroll{max-height:none;overflow:visible}.retailer-comparison>button{display:none}}
/* Main-local flow/period switch. */
.analysis-view{display:flex;flex-wrap:wrap;gap:6px;border:0;padding:6px;margin:16px 0;background:#e7ece5;border-radius:10px;width:fit-content;max-width:100%}.analysis-view legend{font-size:12px;color:#405a61;padding:0 6px}.analysis-view label{display:inline-flex;gap:8px;align-items:center;padding:10px 18px;min-height:44px;cursor:pointer;border:1px solid transparent;border-radius:7px;font-size:14px}.analysis-view label:has(input:checked){background:#fffdf8;border-color:#7b9097;font-weight:700}.analysis-view input{accent-color:#047d7a}.analysis-view :focus-visible{outline:2px solid #047d7a;outline-offset:3px}.legacy-bridge-notice,.period-context-note{padding:12px;border-left:3px solid #047d7a;background:#e6efeb;font-size:13px;line-height:1.7;overflow-wrap:anywhere}.period-amounts,.period-exact{margin:20px 0}.period-amounts .table-scroll{max-height:350px}@media(max-width:480px){.analysis-view{width:100%}.analysis-view label{flex:1 1 auto;justify-content:center;padding:10px}.period-amounts .table-scroll{max-height:300px}}@media print{.analysis-view{display:none}}
.multi-control{flex:1 1 180px;min-width:0;max-width:100%}.picker-label{display:block;font-size:13px;font-weight:650;margin-bottom:6px}.multi-picker{position:relative;margin:0;min-width:0}.multi-picker[open]{z-index:20}.multi-picker>summary{cursor:pointer;min-height:44px;padding:11px 10px;border:1px solid var(--line);border-radius:7px;background:#fffdf8;font-size:13px;overflow-wrap:anywhere}.picker-panel{position:absolute;inset-inline:0;top:calc(100% + 5px);width:100%;max-height:min(360px,55vh);overflow:auto;overscroll-behavior:contain;padding:10px;background:#fffdf8;border:1px solid #7b9097;border-radius:8px;box-shadow:0 6px 16px #0d283418}.picker-panel .selection-actions{gap:6px}.picker-panel button{min-height:40px;flex:1 1 100%;padding:8px;font-size:12px}.panel-controls .picker-panel fieldset{display:flex;flex-direction:column;gap:4px;border:0;padding:0;margin:8px 0 0}.picker-panel legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.picker-panel .channel-chip{display:flex;width:100%;min-height:44px;padding:8px;gap:8px;font-size:13px;cursor:pointer}.picker-panel input{flex:none;width:16px;height:16px;accent-color:#047d7a}.multi-picker summary:focus-visible,.picker-panel :focus-visible{outline:2px solid #047d7a;outline-offset:2px}.panel-controls{overflow:visible}.panel{overflow:visible}.scope{overflow-wrap:anywhere}button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:480px){.multi-control{flex-basis:100%}.picker-panel{position:static;margin-top:6px;max-height:45vh}}@media print{.multi-control{display:none}}
:root{color-scheme:light;--navy:#0d2834;--muted:#64767a;--line:#d8d7cf;--cream:#c05b30;--emulsion:#047d7a;--combined:#466ab1;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--navy);background:#f4f1e9}*{box-sizing:border-box}body{margin:0;min-width:0}header{background:var(--navy);color:white;padding:22px max(20px,calc((100% - 1280px)/2));display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{font-family:Georgia,serif;font-size:27px}.brand span{display:block;font:11px system-ui;letter-spacing:.16em;color:#b9cecf;margin-top:5px}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px}a{color:inherit}button,select{font:inherit;cursor:pointer}button{background:transparent;color:inherit;border:1px solid #7b9097;border-radius:7px;padding:8px 14px}main{max-width:1280px;margin:auto;padding:32px 24px}h1{font-size:clamp(28px,4vw,46px);letter-spacing:-.05em;line-height:1.23;margin:10px 0 18px}h2{font-size:22px;letter-spacing:-.035em;margin:0 0 10px}h3{font-size:16px}.intro{position:relative;margin-bottom:28px}.intro p:not(.eyebrow),.muted{color:var(--muted);line-height:1.7}.eyebrow{color:#047d7a;font-weight:750;font-size:12px;letter-spacing:.12em}.tag{display:inline-block;background:#d8eeea;color:#075e5e;padding:7px 12px;border-radius:20px;font-size:12px}.filters{display:grid;grid-template-columns:.7fr 1.5fr 1fr 1fr;gap:16px;padding:20px;background:#fffdf8;border:1px solid var(--line);border-radius:12px}.filters label{display:grid;gap:8px;font-size:12px;font-weight:700;min-width:0}select{width:100%;min-width:0;padding:10px 5px;border:0;border-bottom:1px solid var(--line);background:#fffdf8;color:var(--navy)}.insight{padding:26px;background:var(--navy);color:white;border-radius:14px;line-height:1.8;margin:24px 0}.insight p{margin:7px 0;color:#cad8db}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0 28px}.card,.panel{background:#fffdf8;border:1px solid var(--line);border-radius:14px;padding:22px;min-width:0}.card strong{display:block;font-size:27px;letter-spacing:-.04em;margin:12px 0}.card small{display:block;color:var(--muted);line-height:1.7}.card p{margin:0;font-size:13px}.panel{margin-bottom:20px}.section-head{display:flex;justify-content:space-between;gap:15px;align-items:start;flex-wrap:wrap}.toggles{display:flex;flex-wrap:wrap;gap:16px;font-size:13px}.chart{width:100%;display:block;height:auto}.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;margin:14px 0}.legend span:before{content:'';display:inline-block;width:18px;height:3px;vertical-align:middle;margin-right:6px;background:var(--color)}.chart-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:20px}.table-scroll{max-width:100%;overflow:auto;margin-top:16px}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th,td{text-align:right;padding:12px 10px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}th:first-child,td:first-child{text-align:left}thead{background:#ebe8df}tfoot{font-weight:bold;background:#e6efeb}.negative{color:#b23949}.positive{color:#06734f}details{margin-top:16px}summary{cursor:pointer;font-size:13px;font-weight:650}li{line-height:1.8;margin-bottom:6px}.bridge-row{display:grid;grid-template-columns:65px 1fr 105px;gap:12px;align-items:center;margin:20px 0;font-size:13px}.bar-track{position:relative;height:18px;background:#eeece5}.bar-track:before{content:'';position:absolute;left:50%;height:100%;border-left:1px solid #839092}.bar{position:absolute;height:100%;background:#047d7a}.bar.neg{background:#b23949}footer{padding:26px;text-align:center;color:var(--muted);font-size:12px}button:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid #167dbe;outline-offset:3px}.skip{position:absolute;top:-100px}.skip:focus{top:5px;background:white;padding:10px;z-index:10}#status{line-height:1.7}p{overflow-wrap:anywhere}@media(max-width:850px){.kpis{grid-template-columns:repeat(2,1fr)}.filters{grid-template-columns:1fr 1fr}.chart-grid{grid-template-columns:1fr}}@media(max-width:480px){main{padding:24px 12px}header{padding:18px 12px;align-items:start}.actions{font-size:12px;gap:10px}.brand{font-size:22px}.filters{gap:14px;padding:14px;grid-template-columns:1fr}.panel,.card{padding:15px}.card strong{font-size:22px}.kpis{gap:8px}.insight{padding:18px}.bridge-row{grid-template-columns:48px 1fr 85px;gap:6px;font-size:11px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media print{header{background:white;color:#0d2834}.actions,.filters,.toggles,.skip{display:none}body{background:white}main{padding:0;max-width:none}.panel,.card,.insight{break-inside:avoid;box-shadow:none}.insight{background:#eee;color:#0d2834}.insight p{color:#18343f}.table-scroll{overflow:visible}table{white-space:normal}details{display:block}.chart-grid{display:block}.kpis{grid-template-columns:repeat(4,1fr)}footer{display:none}}
.chart-grid>div{min-width:0}.chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-scroll{max-width:100%;overflow-x:auto}.chart{min-width:0}@media(max-width:850px){.chart-grid{grid-template-columns:1fr}}@media(max-width:380px){.kpis{grid-template-columns:1fr}}@media print{.chart-scroll{overflow:visible}.chart{min-width:0}}
.channel-selection{grid-column:1/-1;min-width:0;border:1px solid var(--line);border-radius:8px}.channel-selection p{font-size:12px;line-height:1.6}.selection-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:12px}#channels fieldset{min-width:0;border:0;margin:14px 0;padding:0;display:flex;gap:8px;flex-wrap:wrap}#channels legend{font-weight:700;font-size:13px;margin-bottom:8px}.filters .channel-chip{display:flex;align-items:center;gap:6px;border:1px solid var(--line);padding:8px;border-radius:8px;overflow-wrap:anywhere;max-width:100%;cursor:pointer}.channel-chip:has(input:checked){background:#d8eeea;border-color:#047d7a}.legend span{max-width:100%;overflow-wrap:anywhere}fieldset{min-inline-size:0}[hidden]{display:none!important}
.cica-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.cica-summary{border-top:3px solid var(--product);padding:18px}.cica-summary strong{font-variant-numeric:tabular-nums}.cica-summary .delta-label{font-weight:600;color:#405a61}.cica-summary [data-metric="gapWeekly"]{font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.4}.cica-summary small,.summary-unit{display:block;line-height:1.7}.summary-unit{font-size:12px;color:var(--muted);margin:4px 0 10px}.cica-summary .metric-label{font-size:13px;font-weight:650;color:var(--ink,#0d2834);margin:8px 0 4px}.kpi-comparison-basis{font-size:13px;line-height:1.7;overflow-wrap:anywhere;margin:12px 0}.bridge-context{margin:18px 0;font-size:13px}rect[role=button]{cursor:pointer}rect[role=button]:focus-visible{outline:2px solid #0d2834;stroke:#0d2834;stroke-width:2}@media(max-width:650px){.cica-kpis{grid-template-columns:1fr}.cica-summary{padding:16px}}
:is(#trend,#yoy) .yoy-kpis{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}:is(#trend,#yoy) .yoy-kpis strong{font-size:26px;overflow-wrap:anywhere}:is(#trend,#yoy) .yoy-kpis small{overflow-wrap:anywhere}:is(#trend,#yoy) .yoy-legend{gap:10px 20px}:is(#trend,#yoy) .point-readout{font-size:15px;overflow-wrap:anywhere}:is(#trend,#yoy) .calculation-details{font-size:13px;line-height:1.7;overflow-wrap:anywhere}:is(#trend,#yoy) .yoy-chart{width:100%}.legacy-yoy-notice{padding:12px;background:#e6efeb;color:#0d2834;font-size:13px;line-height:1.7;overflow-wrap:anywhere}@media(max-width:650px){:is(#trend,#yoy) .yoy-kpis{grid-template-columns:1fr;gap:8px}:is(#trend,#yoy) .yoy-kpis .card{padding:12px}:is(#trend,#yoy) .yoy-kpis strong{font-size:23px}}
.channel-legend span:before,.product-legend span:before{width:28px;height:3px;border-radius:0;background:var(--line-pattern,var(--color))}
.panel-controls{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin:20px 0;padding:16px;background:#f4f1e9;border-radius:8px}.panel-controls>label{display:grid;gap:6px;flex:1 1 180px;min-width:0;font-size:13px}.panel-controls fieldset{border:1px solid var(--line);padding:10px;display:flex;flex-wrap:wrap;gap:8px;max-width:100%}.panel-controls legend{font-size:13px;font-weight:650}.panel-controls .group-picker{flex-basis:100%}.channel-chip{display:inline-flex;gap:5px;align-items:center;font-size:12px;padding:6px;border:1px solid var(--line);border-radius:5px;overflow-wrap:anywhere;max-width:100%}.group-picker .selection-actions{flex-basis:100%;margin-bottom:8px}.panel-controls>.selection-actions{flex-basis:100%}.table-scroll{max-height:540px}th{position:sticky;top:0;background:#ebe8df}.scope,.point-readout{display:block;padding:14px;background:#e6efeb;line-height:1.7}.point-readout{font-size:18px;font-weight:650}.empty{padding:22px;border:1px dashed #64767a}.bridge-row{grid-template-columns:minmax(80px,150px) minmax(50px,1fr) minmax(90px,190px)}.bridge-row strong{overflow-wrap:anywhere}.bar{background:#06734f}.bar.neg{background:#b23949}circle[role=button]{cursor:pointer}circle:focus{outline:2px solid #0d2834;stroke:#0d2834;stroke-width:3}.legend span:before{background:var(--line-pattern,var(--color))}section{scroll-margin-top:12px}.sales-group-source{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex-basis:100%;min-width:0}.sales-group-source>strong{flex:0 0 55px;font-size:13px}.group-picker>p{flex-basis:100%;margin:0}.sales-group-source .channel-chip{min-height:40px;box-sizing:border-box}@media(max-width:480px){.panel-controls{padding:10px}.chart{min-width:420px}.bridge-row{grid-template-columns:80px minmax(40px,1fr) 90px;font-size:11px}}@media print{.panel-controls,nav,#retry{display:none}.table-scroll{max-height:none;overflow:visible}.chart{min-width:0}.panel{break-inside:auto}.point-readout{background:white}}

.panel-controls .year-selection{border-color:#52676d;flex:0 0 auto}.year-selection .channel-chip,.annual-flow-control .channel-chip{min-height:44px;cursor:pointer;font-weight:650}.year-selection input,.annual-flow-control input{accent-color:#047d7a;width:16px;height:16px}.year-selection :focus-visible,.annual-flow-control :focus-visible{outline:2px solid #047d7a;outline-offset:3px}.annual-flow-scope{padding:12px;border-left:3px solid #315fbd;background:#eef2fa;font-size:13px;line-height:1.7}.historical-note{padding:12px;border-left:3px solid #64767a;background:#f4f1e9;font-size:13px;line-height:1.7}.comparison-component{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}.comparison-component span{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.verification-tools{margin:28px 0;border:1px solid var(--line);border-radius:12px;background:#f4f1e9;scroll-margin-top:16px}.verification-tools>summary{padding:18px 22px;min-height:52px;cursor:pointer;font-weight:700}.verification-tools>summary span{display:block;margin-top:6px;font-size:13px;font-weight:400;color:#52676d}.verification-tools>summary:focus-visible{outline:2px solid #047d7a;outline-offset:3px}.verification-intro{margin:0;padding:0 22px 18px;font-size:13px;line-height:1.8}.verification-tools>.panel{margin:0;border:0;border-top:1px solid var(--line);border-radius:0 0 12px 12px}
.comparison-week-range{flex:1 1 320px;min-width:0}.comparison-week-range>label{display:grid;gap:6px;flex:1 1 150px;min-width:0;font-size:13px}.comparison-week-range select{width:100%;min-height:44px}.period-hint{flex-basis:100%;font-size:13px;line-height:1.7;margin:0;color:#405a61}.period-hint[role=alert]{color:#9b2338}
.bridge-summary{margin-top:24px;padding:0 16px;border:1px solid var(--line);border-radius:12px;background:#fafbf8}.bridge-summary>summary{min-height:44px;padding:12px 0;cursor:pointer;font-weight:650}.bridge-summary>summary:focus-visible{outline:2px solid #047d7a;outline-offset:3px}.detail-role{max-width:850px;line-height:1.8}.reference-column,.reference-cell{color:#52676d;background:#f2f5f1;font-size:12px}.reference-column{font-weight:500}
.control-section{flex:1 1 100%;min-width:0}.control-section+.control-section{border-top:1px solid var(--line);padding-top:16px}.control-section>h3{font-size:14px;margin:0 0 12px;font-weight:750}.control-fields,.period-controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px;min-width:0}.period-controls{flex:1 1 100%}.control-fields>label,.period-controls>label{display:grid;gap:6px;flex:1 1 180px;min-width:0;font-size:13px}.control-fields>.multi-control{flex:1 1 180px}.control-fields>fieldset{margin:0}.control-fields>button,.control-fields select{min-height:44px}.view-notice{flex-basis:100%;font-size:13px;line-height:1.7;margin:0;color:#405a61}.control-fields select:disabled{opacity:1;color:#52676d;background:#eae8e0;cursor:not-allowed}.reference-lines{flex:1 1 330px}.panel-controls .channel-chip{min-height:40px}.chart-scroll{overscroll-behavior-inline:contain;scrollbar-color:#7b9097 #f4f1e9}.chart{display:block;max-width:none;height:auto}.chart-scroll:focus-visible,[data-point]:focus-visible{outline:2px solid #047d7a;outline-offset:3px}.point-readout{font-size:14px;font-weight:400;overflow-wrap:anywhere}.selected-point,.readout-week{display:block}.selected-point{font-size:15px}.readout-week{font-size:12px;margin-top:8px;color:#405a61}.weekly-readout-series{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:6px 24px;list-style:none;margin:8px 0 0;padding:0;font-size:13px}.weekly-readout-series li{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #cedcd5;padding-top:6px}.weekly-readout-series strong{flex:none;font-variant-numeric:tabular-nums}.chart:not(.yoy-chart) circle[role=button]{stroke-width:12px;stroke:transparent;pointer-events:all}.chart.yoy-chart circle[role=button]{stroke-width:2px;r:6px}.chart circle[role=button]:focus-visible{stroke:#0d2834;stroke-width:3px}::selection{background:#c9e4dd;color:#0d2834}@media(max-width:480px){.control-fields>.multi-control,.control-fields>label,.control-fields>fieldset{flex-basis:100%}.control-fields>.year-selection{flex-basis:auto}.control-fields>.year-selection .channel-chip{min-height:44px}.control-fields>button{flex:1 1 auto}.weekly-readout-series{grid-template-columns:1fr}.panel-controls{gap:16px}.control-section+.control-section{padding-top:16px}}@media print{.chart{max-width:100%;min-width:0!important}}
/* Retailer charts: each product owns a common domain across retailer tiles. */
.retailer-small-multiples,.retailer-tile,.retailer-products,.retailer-product{min-width:0;max-width:100%;box-sizing:border-box}
.retailer-tile{margin:20px 0;padding:16px;border:1px solid #d5deda;border-radius:8px;background:#fffdf8}
.retailer-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.retailer-product h4{margin:10px 0}.retailer-year-legend{font-size:13px;margin:6px 0}
.retailer-product .chart-scroll{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.retailer-product .point-readout{display:block;overflow-wrap:anywhere}
@media(max-width:700px){.retailer-products{grid-template-columns:minmax(0,1fr)}.retailer-tile{padding:10px}}
/* Campaign hierarchy: existing warm palette, product-specific axes. */
.campaign-monitor{min-width:0}.campaign-monitor .cica-summary[data-product=emulsion]{--product:#b3263e}.campaign-monitor .cica-summary[data-product=cream]{--product:#00766b}.campaign-monitor .cica-summary[data-product=combined]{--product:#8b5e3c}.campaign-trends{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.campaign-trends>*{min-width:0}.campaign-monitor small{display:block}.campaign-monitor .table-scroll{max-width:100%}@media(max-width:700px){.campaign-trends{grid-template-columns:1fr}.campaign-monitor .kpis{grid-template-columns:1fr}}

/* Explicit report-week sets share the compact, keyboard-native picker affordance. */
.week-control{margin:0;padding:0;border:0;min-width:0}
.week-picker .picker-panel{width:min(24rem,calc(100vw - 3rem));max-height:22rem;overflow-y:auto;overscroll-behavior:contain}
.week-picker fieldset{display:flex;flex-wrap:wrap;gap:.35rem;border:0;border-bottom:1px solid #ddd;padding:.6rem 0;margin:0}
.week-picker legend{font-weight:600}
.week-picker .channel-chip{min-height:2.75rem}
.panel-controls .week-control{display:block;border:0;padding:0}
.week-picker .picker-panel{width:100%;max-width:24rem}
.week-picker .picker-panel legend{position:static;width:auto;height:auto;overflow:visible;clip-path:none}
.panel-controls .week-picker .picker-panel fieldset{flex-direction:row;border-bottom:1px solid var(--line);padding:.5rem 0}
.panel-controls .week-picker .channel-chip{width:auto;flex:1 1 8rem}
/* Compact shared query controls: preserve native inputs and touch targets. */
.panel-controls{gap:10px;margin:12px 0;padding:12px}
.control-section+.control-section{padding-top:10px}.control-section>h3{font-size:13px;margin-bottom:8px}
.control-fields,.period-controls{gap:10px}.control-fields>label,.control-fields>.multi-control,.period-controls>label{flex:1 1 150px}
.panel-controls .year-selection{border:0;padding:0}.panel-controls .channel-chip{min-height:44px}
.panel-controls .analysis-view{flex:1 1 260px;min-width:0;width:auto;margin:0;padding:0;border:0;background:none;gap:4px}
.panel-controls .analysis-view legend{padding:0;margin-bottom:6px;font-size:13px;font-weight:650;color:inherit}
.panel-controls .analysis-view label{flex:1 1 110px;justify-content:center;min-height:44px;padding:8px 10px;border:1px solid var(--line);background:#fffdf8}
.panel-controls .analysis-view label:has(input:checked){border-color:#047d7a;background:#e5f2ee}
@media(max-width:480px){.control-fields>label,.control-fields>.multi-control,.period-controls>label{flex:1 1 135px}.panel-controls .analysis-view{flex:1 1 100%}.panel-controls .year-selection{flex:1 1 100%}}

/* One native family/leaf picker; existing control dimensions and palette apply. */
.product-picker .product-leaves{display:flex;flex-direction:column;padding-inline-start:1rem;gap:.25rem}
.product-picker summary{overflow-wrap:anywhere}
.product-picker fieldset{min-width:0}
/* Brand is an adjacent, separate, non-additive comparison, never a product leaf. */
[data-control-group="products"]>.control-fields{align-items:flex-start}
[data-control-group="products"] .product-picker{flex:1 1 280px;min-width:0}
.panel-controls .brand-comparison{flex:0 1 250px;min-width:0;margin:0;padding:0;border:0;background:none;display:flex;flex-direction:column;gap:3px}
.brand-comparison legend{font-size:13px;font-weight:650;margin-bottom:4px}
.brand-comparison .channel-chip{min-height:44px;margin:0}
.brand-comparison small{display:block;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.brand-comparison:has(input:disabled) .channel-chip{color:var(--muted)}
.period-brand-reference{border-left:3px dashed #52676d;padding:12px 14px;margin:16px 0;background:#f7f6f1}
.period-brand-reference h3{margin-top:0}
@media(max-width:480px){.panel-controls .brand-comparison{flex:1 1 100%}}

.selected-detail{border-top:1px solid #d9d5cf;margin-top:24px;padding-top:20px}.selected-criteria{font-size:.85rem;line-height:1.65;overflow-wrap:anywhere}.selected-detail td{font-variant-numeric:tabular-nums}.selected-detail button{min-height:44px}.selected-table-unit{font-size:.8rem;color:#52676d;margin:12px 0 6px}.selected-detail details{margin-top:14px}

/* Unified product/brand selector and independent reference scale. */
.product-menu-group { border: 0; padding: 0; margin: 0; }
.product-picker .product-menu-group > legend, .product-picker .brand-comparison > legend { position: static; width: auto; height: auto; overflow: visible; clip-path: none; font-weight: 700; padding: .4rem 0; }
.product-picker .brand-comparison { border-top: 1px solid #d9d5cb; margin-top: .65rem; padding-top: .65rem; }
.brand-auxiliary { margin-block: 1.5rem; padding: 1rem; border: 1px solid #d9d5cb; border-radius: 8px; background: #fffdf8; min-width: 0; }
.brand-auxiliary .chart-scroll { max-width: 100%; overflow-x: auto; }
.brand-auxiliary .chart-scroll svg.chart circle[data-brand-point] { stroke: #52676d; stroke-width: 2px; }
.brand-auxiliary circle:focus { outline: 3px solid #8b5e3c; }

/* Visual refresh: reference-informed hierarchy, tighter header, more chart room.
   Design-only overrides; no data, calculation or selection changes. */
main{max-width:1320px;padding:24px clamp(16px,3vw,32px) 48px}
.intro{margin-bottom:18px}
.intro h1{font-size:clamp(26px,3.2vw,38px);line-height:1.16;margin:6px 0 10px;letter-spacing:-.045em}
.intro p:not(.eyebrow):not(.data-boundary){max-width:62ch;font-size:14px;line-height:1.6;margin:0 0 10px}
.intro .data-boundary{display:inline-flex;align-items:center;gap:8px;max-width:none;padding:8px 12px;border:1px solid #d3dcd6;border-left:3px solid #52676d;border-radius:6px;background:#f0f4f0;font-size:12.5px;line-height:1.5}
.intro .eyebrow{font-size:11px;letter-spacing:.14em;margin:0}
#status{margin:10px 0;font-size:13px;color:#52676d}
#status[hidden]{display:none}

/* One consistent section rhythm; each block reads as a titled card group. */
.panel,.card{background:#fff;border:1px solid #dfe3dd;border-radius:12px;box-shadow:0 1px 2px rgba(13,40,52,.04),0 8px 20px -16px rgba(13,40,52,.28)}
.panel{padding:clamp(16px,2vw,24px);margin:0 0 22px}
.panel>h2,.campaign-monitor>h2,.selected-detail h2{font-size:19px;letter-spacing:-.025em;line-height:1.3;margin:0 0 4px;padding-bottom:0}
.panel>h2+p,.campaign-monitor>h2+p{color:#52676d;font-size:13px;line-height:1.6;margin:6px 0 0}
section{scroll-margin-top:16px}

/* Query toolbar: one compact band instead of stacked notification blocks. */
.panel-controls{background:#f3f6f2;border:1px solid #e2e7e0;border-radius:10px;padding:12px;gap:10px;margin:14px 0 18px}
.control-section>h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#3d6b6b;font-weight:750;margin:0 0 8px}
.control-section+.control-section{border-top:1px solid #e2e7e0;padding-top:10px;margin-top:2px}

/* Charts get the widest surface and a quiet frame. */
.chart-scroll{background:#fff;border:1px solid #e6eae4;border-radius:10px;padding:8px 10px 4px}
.chart{min-height:260px}
.campaign-trends{gap:clamp(12px,1.6vw,22px)}
.campaign-trends>div>h3,.campaign-trends>div>h4{font-size:14px;margin:2px 0 8px;letter-spacing:-.01em}
.chart-scroll:focus-visible{outline:2px solid #047d7a;outline-offset:2px}

/* Summary cards: aligned baseline, quieter labels, stronger numbers. */
.cica-kpis,.campaign-outcomes,.quantity-kpis{gap:12px}
.cica-summary,.cica-kpis>.card{display:flex;flex-direction:column;gap:2px;padding:16px 18px;border-top-width:3px;border-top-style:solid}
.cica-summary strong,.cica-kpis>.card strong{font-size:clamp(24px,2.6vw,31px);line-height:1.14;letter-spacing:-.03em;margin:2px 0 0}
.cica-summary .metric-label{font-size:12px;font-weight:700;letter-spacing:.01em;color:#334c55;margin:0}
.cica-summary .delta-label{font-size:14px;font-weight:600;background:none;padding:0}
.cica-summary small,.summary-unit{font-size:12px;color:#5d7176;line-height:1.55;margin:4px 0 0}
.kpi-comparison-basis{background:#f5f7f4;border:1px solid #e4e8e2;border-radius:8px;padding:10px 12px;font-size:12.5px;line-height:1.6;margin:12px 0 0}

/* Tables and disclosures: calm, scannable, never crowding the chart. */
.table-scroll{border:1px solid #e6eae4;border-radius:8px}
th{background:#f1f4ef;font-size:12px;letter-spacing:.02em;color:#334c55}
td,th{padding:9px 10px}
details>summary{font-weight:650}
.selected-detail{margin-top:26px;padding-top:22px}

@media(max-width:700px){
  main{padding:16px 12px 36px}
  .panel{padding:14px;border-radius:10px;margin-bottom:16px}
  .panel-controls{padding:10px}
  .cica-summary,.cica-kpis>.card{padding:14px}
  .chart{min-height:230px}
  .chart-scroll{padding:6px 6px 2px}
}
@media(max-width:480px){
  header{padding:14px 12px;gap:10px}
  .brand{font-size:22px;line-height:1.1}
  .brand span{font-size:9.5px;letter-spacing:.1em;white-space:nowrap;margin-top:4px}
  .actions{gap:8px 10px;font-size:12.5px}
  .actions button{padding:6px 10px}
}
/* Chip-style labels inside control rows must stay single-line (grid label rule otherwise stacks the box). */
.period-controls>label.channel-chip,.control-fields>label.channel-chip{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;min-height:44px;padding:8px 12px;font-size:13px;font-weight:650}
.period-controls>label.channel-chip input,.control-fields>label.channel-chip input{flex:none;margin:0}
@media(max-width:480px){.period-controls>label.channel-chip,.control-fields>label.channel-chip{flex:1 1 100%;justify-content:flex-start}}
/* Plain-language comparison readout: shows exactly which periods are compared. */
.period-compare-line{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:2px 0 0;padding:10px 12px;background:#fff;border:1px solid #d7e0d6;border-left:3px solid #047d7a;border-radius:8px;font-size:13.5px;line-height:1.5;font-variant-numeric:tabular-nums}
.period-compare-line .compare-role{display:inline-block;margin-right:6px;padding:1px 7px;border-radius:999px;background:#e5f2ee;color:#075e5e;font-size:11.5px;font-weight:750;letter-spacing:.02em}
.period-compare-line .compare-arrow{color:#3d6b6b;font-weight:700}
@media(max-width:480px){.period-compare-line{font-size:12.5px;padding:9px 10px}}
/* Two-step period setup: ① what to analyze, ② optional comparison mode. Keeps the second week picker from appearing as a peer of the first. */
.compare-mode{flex:1 1 100%;min-width:0;margin:4px 0 0;padding:12px;border:1px solid #d9e2d8;border-radius:10px;background:#fbfaf5;display:flex;flex-wrap:wrap;align-items:stretch;gap:10px}
.compare-mode>legend{float:none;padding:0 6px;margin:0 0 2px;font-size:13px;font-weight:750;color:#0d2834}
.compare-mode>legend .optional{margin-left:6px;padding:1px 7px;border-radius:999px;background:#eceee6;color:#52676d;font-size:11px;font-weight:650;letter-spacing:.01em}
.compare-choice{flex:1 1 150px;display:flex;align-items:flex-start;gap:8px;margin:0;padding:9px 11px;border:1px solid #d9e2d8;border-radius:8px;background:#fff;cursor:pointer;font-size:13px;line-height:1.35}
.compare-choice input{flex:none;margin:2px 0 0}
.compare-choice span{display:grid;gap:2px;min-width:0}
.compare-choice strong{font-weight:700}
.compare-choice small{color:#52676d;font-size:11.5px;line-height:1.4}
.compare-choice:has(input:checked){border-color:#047d7a;background:#eef6f2;box-shadow:inset 0 0 0 1px #047d7a}
.compare-choice:has(input:focus-visible){outline:2px solid #047d7a;outline-offset:2px}
.compare-choice:has(input:disabled){cursor:not-allowed;opacity:.6}
.compare-editor{flex:1 1 100%;min-width:0;padding-top:4px;border-top:1px dashed #d9e2d8}
@media(max-width:480px){.compare-mode{padding:10px}.compare-choice{flex:1 1 100%}}

/* NPD incrementality: PY same-week volume base vs CY emulsion + cream */
.npd{border-top:4px solid #8b5e3c}
.npd h2{margin-bottom:4px;font-size:21px;letter-spacing:-.03em}
.npd h3{font-size:15px;margin:26px 0 8px;padding-top:12px;border-top:1px solid var(--line)}
.npd .npd-note{font-size:13px;line-height:1.7;color:#405a61;margin:0 0 8px}
.npd .table-scroll{margin-top:12px;border:1px solid #e2e6e0;border-radius:12px;background:#fffdf8;max-height:none;overflow-x:auto;overflow-y:visible}
.npd table{width:100%;font-size:13px;line-height:1.45;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.npd thead th{background:#0d2834;color:#fff;font-size:12px;font-weight:700;letter-spacing:.01em;padding:12px 10px;border-bottom:0;white-space:nowrap;vertical-align:bottom}
.npd thead th:not(:first-child){text-align:right}
.npd thead th+th{border-left:1px solid rgba(255,255,255,.10)}
.npd tbody th,.npd tbody td{padding:11px 10px;border-bottom:1px solid #edf0ec;vertical-align:middle}
.npd tbody th{font-weight:700;color:#0d2834;background:#fffdf8}
.npd tbody tr[class^="npd-status-"] th:first-child{box-shadow:inset 3px 0 0 #cfd6d2,1px 0 0 #edf0ec}
.npd tbody tr.npd-status-incremental th:first-child{box-shadow:inset 3px 0 0 #1f8a55,1px 0 0 #edf0ec;color:#0f4f30}
.npd tbody tr.npd-status-partial th:first-child,.npd tbody tr.npd-status-inconclusive th:first-child{box-shadow:inset 3px 0 0 #c99400,1px 0 0 #edf0ec;color:#6b4f00}
.npd tbody tr.npd-status-risk th:first-child{box-shadow:inset 3px 0 0 #b3263e,1px 0 0 #edf0ec;color:#7d1a26}
.npd tbody tr.npd-status-insufficient th:first-child{box-shadow:inset 3px 0 0 #9aa7ac,1px 0 0 #edf0ec;color:#4d5a60}
.npd tbody tr:nth-child(even) th,.npd tbody tr:nth-child(even) td{background:#f7f9f8}
.npd tbody tr:hover th,.npd tbody tr:hover td{background:#eef4f3}
.npd tbody th{position:sticky;left:0;z-index:1;box-shadow:1px 0 0 #edf0ec}
.npd td{white-space:nowrap}
.npd tbody tr>*:nth-child(3),.npd thead th:nth-child(3){border-left:1px solid #e6eae6}
.npd tbody tr>*:nth-child(8),.npd thead th:nth-child(8){border-left:1px solid #e6eae6}
.npd .npd-start{color:#5b6b72;font-size:12px;white-space:nowrap}
.npd .npd-py{color:#5b6b72}
.npd .npd-cy{color:#0d2834;font-weight:600}
.npd .npd-portfolio{color:#0d2834;font-weight:750}
.npd caption{text-align:left;padding:10px 10px 8px;font-size:12px;color:#5b6b72;line-height:1.6;white-space:normal}
.npd thead th.npd-read-th{text-align:left;white-space:normal}
.npd .npd-yoy{font-weight:750}
.npd .npd-cream{color:#00766b;font-weight:700}
.npd .npd-read{white-space:normal;width:210px;min-width:196px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.npd .npd-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:13px;font-weight:650;line-height:1.45;letter-spacing:0;white-space:normal;text-align:left;font-variant-numeric:normal}
.npd .npd-chip.green{background:#e2f2e8;color:#12623c}
.npd .npd-chip.amber{background:#fbf0d4;color:#7a5a00}
.npd .npd-chip.red{background:#f7e0e3;color:#8f1d2c}
.npd .npd-chip.grey{background:#eceff0;color:#546268}
.npd .npd-suffix{font-size:12px;font-weight:500;color:#5f7176;letter-spacing:0;line-height:1.55;margin:0;padding-left:2px;text-align:left}
.npd .npd-chip .npd-light{margin:0;flex:0 0 auto}
.npd .npd-light{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle}
.npd .npd-light.green{background:#1f8a55}
.npd .npd-light.amber{background:#c99400}
.npd .npd-light.red{background:#b3263e}
.npd .npd-light.grey{background:#9aa7ac}
.npd .npd-actions{list-style:none;padding:0;margin:8px 0 0;font-size:13px;line-height:1.8}
.npd .npd-actions li{display:flex;align-items:flex-start;gap:8px;margin-bottom:4px}
.npd .npd-actions .npd-light{margin:7px 0 0;flex:0 0 auto}
.npd .npd-actions strong{font-weight:650;color:#12333d}
.npd td.negative,.npd .negative{color:#b3263e}
.npd td.positive,.npd .positive{color:#06734f}
.npd .npd-conclusion{margin:16px 0 0;padding:14px 16px;background:#f2f7f6;border-left:4px solid #0d2834;border-radius:0 10px 10px 0;font-size:13px;line-height:1.75;color:#173a45}
.npd .npd-conclusion strong{color:#0d2834;font-weight:700}
.npd tfoot th,.npd tfoot td{font-weight:700;border-top:2px solid #d5dbd8;padding:11px 10px}
.npd tfoot tr.npd-total th,.npd tfoot tr.npd-total td{color:#5b6b72;font-weight:600;background:#f2f4f3}
.npd tfoot tr.npd-total .npd-note{display:block;font-weight:400;font-size:11px;margin-top:2px;color:#77868a}
@media(max-width:480px){.npd thead th,.npd tbody th,.npd tbody td{padding:9px 8px;font-size:12px}.npd .npd-read{min-width:190px}}
@media print{.npd .table-scroll{overflow:visible;border:0}.npd tbody th{position:static;box-shadow:none}}
