:root {
  --ink: #171715; --muted: #6d6a65; --line: #dedbd5; --soft: #f3f1ed;
  --paper: #fff; --orange: #ff5a00; --graphite: #606468; --coffee: #5b4639;
  --ease: cubic-bezier(.2,.8,.2,1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #f8f7f4; color: var(--ink); font-family: Inter, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, select { font: inherit; }
.shell { width: min(1360px, calc(100% - 64px)); margin: auto; }

/* Corporate masthead */
.site-header { min-height: 132px; padding: 20px clamp(28px,5vw,80px); background: #fff; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }
.brand-pair { display: flex; align-items: center; gap: 24px; }
.brand-pair i { width: 1px; height: 44px; background: var(--line); flex: 0 0 auto; }
.brand-pair img { display: block; object-fit: contain; }
.ofidirect-logo { width: 116px; height: 70px; }
.nespresso-logo { width: 160px; height: 55px; }
.product-name { border-left: 1px solid var(--line); padding-left: 28px; text-align: right; display: grid; gap: 7px; }
.product-name span { font-size: 12px; font-weight: 500; }
.product-name em { color: var(--muted); font-size: 9px; font-style: normal; letter-spacing: .12em; text-transform: uppercase; }
.eyebrow { margin: 0 0 24px; color: var(--coffee); font-size: 9px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }

/* Home */
.home-main { min-height: calc(100vh - 132px); display: grid; place-items: center; padding: 76px 32px 90px; background: #fff; }
.home-panel { width: min(1240px,100%); }
.home-edition { display: flex; justify-content: space-between; margin-bottom: 88px; padding-bottom: 15px; border-bottom: 1px solid var(--ink); color: var(--muted); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.home-panel h1 { max-width: 1000px; margin: 0; font-size: clamp(50px,6.4vw,92px); font-weight: 400; letter-spacing: -.065em; line-height: .98; }
.home-deck { max-width: 510px; margin: 28px 0 72px; color: var(--muted); font-size: 14px; line-height: 1.7; }
.report-center-main { min-height: calc(100vh - 132px); padding-top: 60px; place-items: start center; }
.report-center .home-edition { margin-bottom: 58px; }
.report-center-intro { display: grid; grid-template-columns: 1fr 230px; align-items: end; gap: 70px; }
.report-center-intro h1 { font-size: clamp(54px,6vw,86px); }
.year-selector { padding: 0 0 16px 24px; border-left: 1px solid var(--ink); display: grid; gap: 14px; }
.year-selector span { color: var(--muted); font-size: 9px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.year-selector select { width: 100%; padding: 6px 0; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 32px; font-weight: 400; }
.module-grid { margin-top: 70px; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.module-card { min-height: 285px; padding: 28px 30px; border-right: 1px solid var(--line); display: flex; flex-direction: column; transition: .25s var(--ease); }
.module-card:first-child { padding-left: 0; }.module-card:last-child { padding-right: 0; border-right: 0; }
.module-card > span,.module-card small { color: var(--muted); font-size: 8px; letter-spacing: .13em; text-transform: uppercase; }
.module-card > div { margin-top: 66px; }.module-card h2 { margin: 8px 0 16px; font-size: 28px; font-weight: 400; letter-spacing: -.04em; }
.module-card p { max-width: 285px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
.module-card > b { margin-top: auto; font-size: 9px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.module-card:hover { padding-left: 30px; background: var(--soft); }
.selection-form { display: grid; grid-template-columns: .65fr .9fr 1.85fr 1.2fr auto; align-items: end; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.field { min-height: 100px; padding: 22px 22px 18px 0; display: grid; gap: 11px; border-right: 1px solid var(--line); }
.field:not(:first-child) { padding-left: 22px; }
.field span { color: var(--muted); font-size: 9px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.field select { width: 100%; padding: 8px 28px 8px 0; appearance: none; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 14px; font-weight: 500; }
.campaign-field select { font-size: 17px; }
.button { border: 0; padding: 19px 24px; cursor: pointer; font-size: 9px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; transition: .25s var(--ease); }
.button-primary { background: var(--ink); color: #fff; }
.button-primary:hover { background: var(--coffee); }
.button-wide { align-self: stretch; min-width: 220px; display: flex; align-items: center; justify-content: space-between; }

/* Shared report pages */
.report-main { padding-top: 82px; padding-bottom: 120px; }
.module-filter-bar { padding: 0 max(32px,calc((100vw - 1360px)/2)); min-height: 92px; background: #fff; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 180px 1fr; align-items: stretch; }
.module-filter-bar > a { display: flex; align-items: center; color: var(--muted); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.module-filter-bar form { display: grid; grid-template-columns: .65fr 1.7fr 1fr 110px; border-left: 1px solid var(--line); }
.module-filter-bar form label { padding: 18px 22px; border-right: 1px solid var(--line); display: grid; gap: 8px; }
.module-filter-bar form label span { color: var(--muted); font-size: 8px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.module-filter-bar form select { width: 100%; padding: 4px 18px 4px 0; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 11px; font-weight: 500; }
.module-filter-bar form button { border: 0; background: var(--ink); color: #fff; font-size: 8px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.module-filter-bar form button span { display: block; margin-top: 5px; }
.module-filter-bar form:has(label:only-of-type) { grid-template-columns: 1fr 110px; max-width: 450px; }
.module-filter-bar.compact { width: min(1120px,calc(100% - 32px)); min-height: 74px; margin: 0 auto 18px; padding: 0; grid-template-columns: 155px 1fr; border: 1px solid var(--line); }
.module-filter-bar.compact form label { padding-top: 12px; padding-bottom: 12px; }
.report-heading { margin-bottom: 64px; display: flex; align-items: end; justify-content: space-between; }
.back-link { display: inline-block; margin-bottom: 60px; color: var(--muted); font-size: 10px; }
.report-heading h1 { margin: 0; font-size: clamp(58px,6vw,88px); font-weight: 400; letter-spacing: -.065em; line-height: .94; }
.report-heading h1 small { display: block; margin-top: 22px; color: var(--muted); font-size: clamp(20px,2vw,28px); font-weight: 400; letter-spacing: -.03em; }
.base-pill { min-width: 230px; padding: 12px 0 12px 28px; border-left: 1px solid var(--ink); display: grid; gap: 9px; }
.base-pill span { color: var(--muted); font-size: 8px; letter-spacing: .15em; text-transform: uppercase; }
.base-pill strong { font-size: 13px; }
.kpi-grid { margin-bottom: 72px; display: grid; grid-template-columns: repeat(6,1fr); gap: 18px; }
.kpi-card { min-height: 205px; padding: 30px 28px; background: #fff; border: 1px solid #ebe8e2; border-radius: 3px; box-shadow: 0 14px 35px rgba(36,30,24,.045); display: flex; flex-direction: column; }
.kpi-card > span { color: var(--muted); font-size: 9px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.kpi-card strong { margin: auto 0 10px; font-size: clamp(34px,3vw,48px); font-weight: 400; letter-spacing: -.06em; }
.kpi-card small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.kpi-card.accent { border-top: 2px solid var(--ink); }
.visual-grid { display: grid; gap: 22px; margin-bottom: 22px; }
.visual-grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.chart-card { min-height: 410px; padding: 38px; background: #fff; border: 1px solid var(--line); }
.card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 25px; }
.card-heading span { color: var(--muted); font-size: 8px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.card-heading h2 { max-width: 430px; margin: 10px 0 0; font-size: 19px; font-weight: 500; letter-spacing: -.025em; line-height: 1.35; }
.card-heading > b { padding-bottom: 7px; border-bottom: 1px solid var(--ink); font-size: 13px; font-weight: 500; }
.result-comparison { height: 250px; display: grid; grid-template-columns: 1fr 60px 1.2fr; align-items: end; }
.result-comparison > div { display: grid; gap: 5px; }
.result-comparison span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.result-comparison strong { font-size: 62px; font-weight: 400; letter-spacing: -.07em; }
.result-comparison i { height: 1px; margin-bottom: 36px; background: var(--line); }
.result-comparison .result-actual strong { font-size: 90px; }
.result-comparison small { color: var(--coffee); font-size: 10px; }
.funnel { margin-top: 44px; display: grid; place-items: center; }
.funnel > div { height: 58px; padding: 0 20px; display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 16px; background: #ece9e4; font-size: 9px; }
.funnel > div + div { margin-top: 5px; }
.funnel > div:nth-child(2) { background: #ddd8d1; }
.funnel > div:nth-child(3) { background: #bcb5ac; }
.funnel > div:last-child { background: var(--ink); color: #fff; }
.funnel strong { font-size: 14px; }.funnel em { font-style: normal; opacity: .65; }
.interaction-map { margin-top: 42px; }
.interaction-row { min-height: 58px; display: grid; grid-template-columns: 34px 150px 1fr 50px; align-items: center; gap: 18px; border-bottom: 1px solid var(--line); }
.interaction-row > span { color: var(--muted); font-size: 8px; }.interaction-row > strong { font-size: 12px; font-weight: 500; }
.interaction-row > div { height: 11px; background: var(--soft); }.interaction-row i { height: 100%; display: block; background: var(--coffee); }
.interaction-row:first-child i { background: var(--ink); }.interaction-row > b { text-align: right; font-size: 14px; font-weight: 500; }
.bar-chart { height: 245px; margin-top: 35px; padding-top: 28px; border-bottom: 1px solid var(--line); display: flex; align-items: end; gap: 18px; }
.bar-chart > div { height: 100%; flex: 1; display: flex; flex-direction: column; justify-content: end; gap: 10px; text-align: center; }
.bar-chart i { min-height: 20px; display: block; position: relative; background: #d8d4cd; }
.bar-chart i.active { background: var(--ink); }.bar-chart i span { position: absolute; top: -18px; left: 50%; transform: translateX(-50%); font-size: 8px; font-style: normal; }
.bar-chart label,.average-line { color: var(--muted); font-size: 8px; }.average-line { margin-top: 12px; }

/* Navigation */
.site-footer { padding: 0 clamp(28px,5vw,80px); background: var(--ink); color: #fff; }
.site-footer nav { min-height: 150px; display: grid; grid-template-columns: repeat(3,1fr); }
.site-footer a { padding: 0 28px; border-right: 1px solid #373734; display: grid; grid-template-columns: 32px 1fr auto; align-items: center; font-size: 12px; }
.site-footer a:first-child { border-left: 1px solid #373734; }.site-footer a:hover { background: #222220; }
.site-footer small { color: #817e78; font-size: 8px; }

/* Analytics and Year Review */
.section-title { margin-bottom: 70px; padding-bottom: 50px; border-bottom: 1px solid var(--ink); display: flex; align-items: end; justify-content: space-between; }
.section-title h1 { margin: 0; font-size: clamp(58px,7vw,96px); font-weight: 400; letter-spacing: -.065em; }
.section-title p:last-child { margin: 22px 0 0; color: var(--muted); font-size: 13px; }
.status-chip { color: var(--muted); font-size: 8px; letter-spacing: .15em; text-transform: uppercase; }
.placeholder-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 22px; }.placeholder-card.wide { grid-column: 1/-1; }
.placeholder-card { min-height: 330px; padding: 36px; background: #fff; border-top: 1px solid var(--ink); }
.placeholder-icon { margin-bottom: 80px; color: var(--muted); font-size: 9px; }.placeholder-card h2 { font-size: 19px; font-weight: 500; }.placeholder-card p { color: var(--muted); font-size: 11px; }
.placeholder-bars { height: 90px; margin-top: 50px; border-bottom: 1px solid var(--line); background: repeating-linear-gradient(90deg,#e1ded8 0,#e1ded8 7%,transparent 7%,transparent 11%); }
.placeholder-lines { height: 65px; margin-top: 55px; background: linear-gradient(165deg,transparent 49%,#cbc7c0 49.5%,#cbc7c0 50%,transparent 50.5%); }.placeholder-lines.offset { transform: scaleY(-1); }
.strategy-lead { padding: 30px 0 90px; display: grid; grid-template-columns: 1.1fr .9fr; align-items: end; gap: 90px; }
.strategy-lead span,.ranking-heading p,.learning-grid span { color: var(--muted); font-size: 8px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.strategy-lead h2 { margin: 20px 0 0; font-size: clamp(42px,5vw,72px); font-weight: 400; letter-spacing: -.055em; line-height: 1.02; }
.strategy-lead > p { margin: 0; padding-left: 30px; border-left: 1px solid var(--ink); color: var(--muted); font-size: 14px; line-height: 1.8; }
.ranking-section { margin-bottom: 80px; padding: 38px 0 0; border-top: 1px solid var(--ink); }
.ranking-heading { display: grid; grid-template-columns: 55px 1fr; }.ranking-heading > span { font-size: 10px; }.ranking-heading p { margin: 0 0 10px; }.ranking-heading h2 { margin: 0; font-size: 21px; font-weight: 500; }
.ranking-list { margin: 50px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.ranking-list li { min-height: 100px; display: grid; grid-template-columns: 55px 1fr 150px 100px; align-items: center; border-bottom: 1px solid var(--line); }
.ranking-list .rank,.ranking-list small { color: var(--muted); font-size: 9px; }.ranking-list strong { font-size: 23px; font-weight: 400; letter-spacing: -.025em; }.ranking-list b { text-align: right; font-size: 28px; font-weight: 400; }
.learning-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--ink); }
.learning-grid article { min-height: 320px; padding: 32px; border-right: 1px solid var(--line); }.learning-grid article:first-child { padding-left: 0; }.learning-grid article:last-child { border: 0; }
.learning-grid h3 { margin: 100px 0 18px; font-size: 25px; font-weight: 400; letter-spacing: -.035em; line-height: 1.2; }.learning-grid p { color: var(--muted); font-size: 11px; line-height: 1.7; }

/* Executive document */
.document-page { background: #e9e6e1; }.document-toolbar { width: min(1120px,calc(100% - 32px)); margin: 24px auto; display: flex; align-items: center; justify-content: space-between; }.document-toolbar a { color: var(--muted); font-size: 10px; }
.executive-document { width: min(1120px,calc(100% - 32px)); margin: 0 auto 80px; padding: 62px 70px; background: #fff; box-shadow: 0 24px 70px rgba(30,26,22,.08); }
.document-header { padding-bottom: 30px; border-bottom: 1px solid var(--ink); display: flex; align-items: center; justify-content: space-between; }.document-header > span { color: var(--muted); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.report-brands img:first-child { width: 90px; height: 55px; }.report-brands img:last-child { width: 135px; height: 46px; }
.document-intro { padding: 70px 0 58px; }.document-index { display: flex; justify-content: space-between; color: var(--muted); font-size: 8px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.document-intro h1 { margin: 42px 0 62px; font-size: 76px; font-weight: 400; letter-spacing: -.065em; line-height: .93; }
.document-meta { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.document-meta > div { padding: 17px 20px 17px 0; border-right: 1px solid var(--line); display: grid; gap: 8px; }.document-meta > div:not(:first-child) { padding-left: 20px; }.document-meta > div:last-child { border: 0; }
.document-meta span { color: var(--muted); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }.document-meta strong { font-size: 11px; }
.document-kpis { display: grid; grid-template-columns: repeat(6,1fr); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }.document-kpis .kpi-card { min-height: 145px; padding: 22px 13px; border: 0; border-right: 1px solid var(--line); border-radius: 0; box-shadow: none; }.document-kpis .kpi-card:last-child { border-right: 0; }.document-kpis .kpi-card strong { font-size: 30px; }.document-kpis .kpi-card.accent { border-top: 0; }
.document-takeaway { margin-top: 50px; padding: 28px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 180px 1fr; }.document-takeaway span { color: var(--muted); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }.document-takeaway p { max-width: 620px; margin: 0; font-size: 16px; line-height: 1.65; }
.document-section { padding-top: 72px; }.document-section-title { margin-bottom: 28px; display: grid; grid-template-columns: 38px 1fr; }.document-section-title > span { width: 25px; height: 25px; border: 1px solid var(--line); border-radius: 50%; display: grid; place-items: center; font-size: 8px; }.document-section-title p { margin: 0 0 7px; color: var(--muted); font-size: 8px; letter-spacing: .13em; text-transform: uppercase; }.document-section-title h2 { margin: 0; font-size: 20px; font-weight: 500; }
.chart-card.flat { min-height: 360px; padding: 28px; border-color: var(--line); }.emphasis-section { margin-top: 72px; padding: 60px 48px 48px; background: #f3f1ed; }.heatmap-feature { min-height: 365px; border: 0; }.annual-wide { min-height: 370px; }.annual-wide .bar-chart { max-width: 720px; }
.document-foot { margin-top: 80px; padding-top: 18px; border-top: 1px solid var(--ink); display: flex; justify-content: space-between; color: var(--muted); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }

/* Sprint 2.2: fixed A4 executive composition */
.executive-document { width: 210mm; height: 297mm; margin: 0 auto 40px; padding: 12mm 14mm 10mm; overflow: hidden; }
.executive-document .document-header { padding-bottom: 4mm; }
.executive-document .report-brands { gap: 4mm; }
.executive-document .report-brands i { height: 9mm; }
.executive-document .report-brands img:first-child { width: 22mm; height: 12mm; }
.executive-document .report-brands img:last-child { width: 31mm; height: 10mm; }
.executive-document .document-intro { padding: 7mm 0 5mm; }
.executive-document .document-intro h1 { margin: 8mm 0 7mm; font-size: 35pt; line-height: .92; }
.executive-document .document-meta > div { padding-top: 3mm; padding-bottom: 3mm; }
.executive-document .document-kpis { height: 24mm; }
.executive-document .document-kpis .kpi-card { min-height: 0; padding: 4mm 2.5mm; }
.executive-document .document-kpis .kpi-card strong { font-size: 18pt; }
.executive-document .document-kpis .kpi-card small { font-size: 6pt; }
.executive-document .document-takeaway { margin-top: 6mm; padding: 4mm 0; grid-template-columns: 38mm 1fr; }
.executive-document .document-takeaway p { font-size: 9.5pt; line-height: 1.5; }
.executive-document .document-section { padding-top: 7mm; }
.executive-document .document-section-title { margin-bottom: 3.5mm; grid-template-columns: 8mm 1fr; }
.executive-document .document-section-title > span { width: 5.5mm; height: 5.5mm; font-size: 5.5pt; }
.executive-document .document-section-title p { margin-bottom: 1.5mm; font-size: 5.5pt; }
.executive-document .document-section-title h2 { font-size: 11pt; }
.executive-document .visual-grid { gap: 4mm; margin-bottom: 0; }
.executive-document .chart-card.flat { min-height: 43mm; height: 43mm; padding: 5mm; }
.executive-document .card-heading { gap: 3mm; }
.executive-document .card-heading span { font-size: 5.5pt; }
.executive-document .card-heading h2 { margin-top: 1.5mm; font-size: 9pt; }
.executive-document .card-heading > b { padding-bottom: 1mm; font-size: 8pt; }
.executive-document .result-comparison { height: 27mm; grid-template-columns: 1fr 10mm 1.1fr; }
.executive-document .result-comparison strong { font-size: 22pt; }
.executive-document .result-comparison .result-actual strong { font-size: 29pt; }
.executive-document .result-comparison i { margin-bottom: 7mm; }
.executive-document .result-comparison small { font-size: 6pt; }
.executive-document .funnel { margin-top: 3mm; }
.executive-document .funnel > div { height: 7mm; padding: 0 3mm; gap: 2mm; font-size: 5.5pt; }
.executive-document .funnel > div + div { margin-top: .8mm; }
.executive-document .funnel strong { font-size: 7.5pt; }
.report-lower-grid { margin-top: 7mm; padding-top: 6mm; border-top: 1px solid var(--ink); display: grid; grid-template-columns: 1.45fr 1fr; gap: 6mm; }
.report-module .chart-card.flat { height: auto; min-height: 45mm; padding: 0; border: 0; }
.report-module .document-section-title { margin-bottom: 4mm; }
.report-module .card-heading h2 { max-width: 70mm; }
.report-module .card-heading > b { display: none; }
.report-module .interaction-map { margin-top: 5mm; }
.report-module .interaction-row { min-height: 8mm; grid-template-columns: 28mm 1fr 10mm; gap: 3mm; }
.report-module .interaction-row > strong { font-size: 6.5pt; }
.report-module .interaction-row > div { height: 2.2mm; }
.report-module .interaction-row > b { font-size: 7.5pt; }
.simple-comparison { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid var(--line); }
.simple-comparison > div { min-height: 21mm; padding: 3.5mm 3mm 2mm 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 1fr auto; align-content: start; gap: 1.5mm 2mm; }
.simple-comparison > div:nth-child(even) { padding-left: 3mm; border-right: 0; }
.simple-comparison span { grid-column: 1/-1; color: var(--muted); font-size: 5.5pt; letter-spacing: .1em; text-transform: uppercase; }
.simple-comparison strong { font-size: 16pt; font-weight: 400; letter-spacing: -.04em; }
.simple-comparison small { grid-column: 1/2; color: var(--muted); font-size: 5.5pt; }
.simple-comparison b { grid-column: 2/3; grid-row: 2/4; align-self: center; font-size: 6.5pt; font-weight: 500; }
.executive-document .document-foot { margin-top: 6mm; padding-top: 3mm; font-size: 5.5pt; }

@media (max-width: 1000px) {
  .selection-form { grid-template-columns: repeat(2,1fr); }.button-wide { min-height: 82px; grid-column: 1/-1; }
  .kpi-grid { grid-template-columns: repeat(3,1fr); }.document-kpis { grid-template-columns: repeat(3,1fr); }
  .executive-document { padding: 48px 38px; }.document-intro h1 { font-size: 62px; }
  .module-filter-bar { grid-template-columns: 135px 1fr; }.module-filter-bar form { grid-template-columns: .6fr 1.5fr 1fr 90px; }.module-filter-bar form label { padding-left: 14px; padding-right: 14px; }
}
@media (max-width: 720px) {
  .shell { width: calc(100% - 36px); }.site-header { min-height: 106px; padding: 16px 18px; }.brand-pair { gap: 12px; }.brand-pair i { height: 34px; }.ofidirect-logo { width: 78px; height: 52px; }.nespresso-logo { width: 108px; height: 42px; }.product-name { display: none; }
  .home-main { min-height: calc(100vh - 106px); padding: 48px 20px 70px; }.home-edition { margin-bottom: 60px; }.home-panel h1 { font-size: 48px; }.home-deck { margin-bottom: 50px; }.selection-form { grid-template-columns: 1fr; }.field,.field:not(:first-child) { min-height: 88px; padding: 20px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .report-center-main { padding-top: 38px; }.report-center .home-edition { margin-bottom: 46px; }.report-center-intro { grid-template-columns: 1fr; gap: 42px; }.year-selector { padding-left: 18px; }.module-grid { margin-top: 50px; grid-template-columns: 1fr; }.module-card,.module-card:first-child,.module-card:last-child { min-height: 220px; padding: 24px 0; border-right: 0; border-bottom: 1px solid var(--line); }.module-card > div { margin-top: 40px; }.module-card:hover { padding-left: 16px; padding-right: 16px; }
  .module-filter-bar,.module-filter-bar.compact { width: 100%; min-height: 0; margin: 0; padding: 0 18px; grid-template-columns: 1fr; border-left: 0; border-right: 0; }.module-filter-bar > a { min-height: 48px; border-bottom: 1px solid var(--line); }.module-filter-bar form { grid-template-columns: 1fr; border-left: 0; }.module-filter-bar form label { padding: 15px 0; border-right: 0; border-bottom: 1px solid var(--line); }.module-filter-bar form button { min-height: 50px; }.module-filter-bar form:has(label:only-of-type) { grid-template-columns: 1fr; max-width: none; }
  .report-main { padding-top: 48px; }.report-heading,.section-title { align-items: flex-start; flex-direction: column; gap: 35px; }.back-link { margin-bottom: 38px; }.base-pill { padding-left: 0; border-left: 0; }.kpi-grid { grid-template-columns: repeat(2,1fr); gap: 10px; }.kpi-card { min-height: 165px; padding: 22px 18px; }.kpi-card strong { font-size: 35px; }
  .visual-grid.two,.placeholder-grid { grid-template-columns: 1fr; }.chart-card { min-height: 370px; padding: 25px 20px; }.interaction-row { grid-template-columns: 25px 100px 1fr 38px; gap: 9px; }.interaction-row > strong { font-size: 10px; }
  .site-footer nav { grid-template-columns: 1fr; }.site-footer a,.site-footer a:first-child { min-height: 82px; padding: 0; border-left: 0; border-right: 0; border-bottom: 1px solid #373734; }
  .strategy-lead { grid-template-columns: 1fr; gap: 42px; }.strategy-lead > p { padding-left: 20px; }.ranking-list li { grid-template-columns: 38px 1fr 58px; }.ranking-list small { display: none; }.ranking-list strong { font-size: 17px; }.ranking-list b { font-size: 21px; }.learning-grid { grid-template-columns: 1fr; }.learning-grid article,.learning-grid article:first-child { min-height: 250px; padding: 28px 0; border-right: 0; border-bottom: 1px solid var(--line); }.learning-grid h3 { margin-top: 55px; }
  .document-page { background: #fff; }.document-toolbar { padding: 0 4px; }.executive-document { width: 100%; margin: 0; padding: 32px 20px; box-shadow: none; }.document-header { align-items: flex-start; flex-direction: column; gap: 24px; }.report-brands img:first-child { width: 74px; }.report-brands img:last-child { width: 110px; }.document-intro h1 { margin: 35px 0 48px; font-size: 49px; }.document-meta { grid-template-columns: 1fr; }.document-meta > div,.document-meta > div:not(:first-child) { padding: 14px 0; border-right: 0; border-bottom: 1px solid var(--line); }.document-kpis { grid-template-columns: repeat(2,1fr); }.document-takeaway { grid-template-columns: 1fr; gap: 20px; }.document-takeaway p { font-size: 14px; }.document-section .visual-grid.two { grid-template-columns: 1fr; }.emphasis-section { margin-left: -20px; margin-right: -20px; padding: 48px 20px 30px; }.document-foot { flex-direction: column; gap: 16px; }
}
/* Sprint 2.4: unified compact executive system */
.site-header { position: sticky; top: 0; z-index: 50; min-height: 76px; height: 76px; padding: 0 28px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.nav-shell { width: min(1440px,100%); height: 100%; margin: auto; display: flex; align-items: center; }
.site-header .brand-pair { gap: 14px; }.site-header .brand-pair i { height: 30px; }
.site-header .ofidirect-logo { width: 72px; height: 46px; }.site-header .nespresso-logo { width: 104px; height: 36px; }
.primary-nav { height: 100%; margin-left: auto; display: flex; align-items: stretch; }
.primary-nav a { padding: 0 18px; display: flex; align-items: center; position: relative; color: var(--muted); font-size: 10px; font-weight: 500; }
.primary-nav a:hover { color: var(--ink); }.primary-nav a:hover::after { content:""; position:absolute; right:18px; bottom:0; left:18px; height:2px; background:var(--coffee); }
.nav-version { margin-left: 18px; padding-left: 18px; border-left: 1px solid var(--line); color: var(--muted); font-size: 8px; }
.product-name,.site-footer { display: none !important; }
.module-filter-bar { position: sticky; top: 76px; z-index: 40; min-height: 62px; height: 62px; box-shadow: 0 6px 18px rgba(28,25,22,.03); }
.module-filter-bar form label { padding-top: 11px; padding-bottom: 10px; }.module-filter-bar.compact { position: relative; top: auto; height: 62px; min-height: 62px; margin-bottom: 14px; }

.report-center-main { min-height: calc(100vh - 76px); padding: 42px 28px; background: #f7f6f3; }
.report-center-intro { align-items: center; }.report-center-intro h1 { font-size: clamp(38px,4vw,54px); letter-spacing: -.045em; }
.center-description { margin: 12px 0 0; color: var(--muted); font-size: 12px; }
.year-selector { min-width: 210px; padding-bottom: 8px; }.year-selector select { font-size: 25px; }
.module-grid { margin-top: 38px; gap: 14px; border: 0; }
.module-card,.module-card:first-child,.module-card:last-child { min-height: 205px; padding: 22px; background: #fff; border: 1px solid #e7e3dd; border-top: 2px solid var(--coffee); border-radius: 10px; box-shadow: 0 8px 24px rgba(36,30,24,.045); }
.module-card > div { margin-top: 38px; }.module-card h2 { margin: 6px 0 10px; font-size: 22px; }.module-card:hover { padding: 22px; transform: translateY(-2px); box-shadow: 0 12px 30px rgba(36,30,24,.07); }

.report-main { padding-top: 28px; padding-bottom: 38px; }
.report-heading { margin-bottom: 22px; align-items: center; }.back-link { display: none; }.report-heading .eyebrow { margin-bottom: 10px; }
.report-heading h1 { font-size: clamp(32px,3.5vw,46px); letter-spacing: -.045em; }.report-heading h1 small { margin-top: 8px; font-size: 18px; }
.base-pill { min-width: 190px; padding-top: 6px; padding-bottom: 6px; }
.kpi-grid { margin-bottom: 14px; gap: 12px; }
.kpi-card,.chart-card,.placeholder-card,.year-card,.year-kpis article,.report-card { background: #fff; border: 1px solid #e7e3dd; border-top: 2px solid var(--coffee); border-radius: 10px; box-shadow: 0 7px 22px rgba(36,30,24,.04); }
.kpi-card { min-height: 116px; padding: 16px 17px; }.kpi-card strong { font-size: clamp(27px,2.3vw,36px); }.kpi-card small { font-size: 8px; }.kpi-card.accent { border-top-color: var(--orange); }
.visual-grid { gap: 14px; margin-bottom: 14px; }.chart-card { min-height: 242px; height: 242px; padding: 20px 22px; }
.card-heading h2 { margin-top: 6px; font-size: 14px; }.card-heading > b { font-size: 11px; }
.result-values { margin-top: 28px; display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.result-values > div { display: grid; gap: 5px; }.result-values span { color: var(--muted); font-size: 8px; text-transform: uppercase; }.result-values strong { font-size: 29px; font-weight: 400; letter-spacing: -.05em; }
.compliance-track { height: 9px; margin-top: 26px; position: relative; background: #e8e4de; border-radius: 20px; }.compliance-track i { height: 100%; display: block; background: var(--coffee); border-radius: inherit; }.compliance-track b { position: absolute; right: 0; top: 15px; color: var(--muted); font-size: 7px; font-weight: 500; }
.funnel { margin-top: 18px; }.funnel > div { height: 36px; }.funnel > div + div { margin-top: 3px; }.funnel strong { font-size: 11px; }
.interaction-map { margin-top: 20px; }.interaction-row { min-height: 38px; grid-template-columns: 120px 1fr 40px; gap: 14px; }.interaction-row > div { height: 8px; border-radius: 10px; overflow: hidden; }.interaction-row i { border-radius: inherit; }.interaction-row > b { font-size: 11px; }
.annual-benchmark { margin-top: 16px; padding: 9px 12px; display: flex; justify-content: space-between; background: #f2efea; border-radius: 6px; color: var(--muted); font-size: 8px; }.annual-benchmark strong { margin-left: 7px; color: var(--ink); font-size: 12px; }
.bar-chart { height: 118px; margin-top: 12px; padding-top: 18px; gap: 10px; }.average-line { margin-top: 8px; display: flex; align-items: center; gap: 8px; font-weight: 600; }.average-line i { width: 28px; border-top: 2px dashed var(--orange); }

.section-title { margin-bottom: 24px; padding-bottom: 22px; }.section-title h1 { font-size: clamp(34px,4vw,52px); }.section-title p:last-child { margin-top: 10px; }
.placeholder-grid { gap: 14px; }.placeholder-card { min-height: 220px; padding: 22px; }.placeholder-icon { margin-bottom: 35px; }.placeholder-bars { height: 55px; margin-top: 28px; }.placeholder-lines { margin-top: 25px; }

/* Year in Review: business-first annual report */
.year-report { padding-top: 25px; }.year-heading { margin-bottom: 16px; display: flex; align-items: end; justify-content: space-between; }.year-heading .eyebrow { margin-bottom: 8px; }.year-heading h1 { margin: 0; font-size: 38px; font-weight: 400; letter-spacing: -.045em; }.year-heading > p { margin: 0; color: var(--muted); font-size: 11px; }
.year-kpis { margin-bottom: 14px; display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }.year-kpis article { min-height: 105px; padding: 15px 17px; display: grid; }.year-kpis span,.year-card > span { color: var(--muted); font-size: 8px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }.year-kpis strong { align-self: end; font-size: 28px; font-weight: 400; letter-spacing: -.05em; }.year-kpis small { color: var(--muted); font-size: 8px; }
.year-business-grid { margin-bottom: 14px; display: grid; grid-template-columns: 1.25fr .75fr; gap: 14px; }.year-card { padding: 18px 20px; }.year-card-heading { margin-bottom: 12px; display: flex; justify-content: space-between; align-items: end; }.year-card-heading span { color: var(--muted); font-size: 8px; text-transform: uppercase; }.year-card-heading h2 { margin: 0; font-size: 14px; font-weight: 500; }
.campaign-ranking ol { margin: 0; padding: 0; list-style: none; }.campaign-ranking li { min-height: 38px; display: grid; grid-template-columns: 28px 1fr 70px 50px; align-items: center; border-top: 1px solid var(--line); }.campaign-ranking li b,.campaign-ranking li small { color: var(--muted); font-size: 8px; }.campaign-ranking li strong { font-size: 11px; font-weight: 500; }.campaign-ranking li em { text-align: right; font-size: 12px; font-style: normal; font-weight: 600; }
.base-row { min-height: 38px; position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; border-top: 1px solid var(--line); }.base-row strong { font-size: 10px; font-weight: 500; }.base-row b { font-size: 11px; }.base-row i { height: 2px; position: absolute; bottom: 0; left: 0; display: block; background: var(--coffee); }
.year-insights { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }.year-insights .year-card { min-height: 145px; }.year-insights h3 { margin: 30px 0 8px; font-size: 16px; font-weight: 500; letter-spacing: -.02em; }.year-insights p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }.year-insights .recommendation { border-top-color: var(--orange); background: #fbfaf8; }

/* Executive Report uses the same card language */
.document-toolbar { margin-top: 14px; margin-bottom: 14px; }.document-page .module-filter-bar.compact { border-radius: 8px; overflow: hidden; }
.executive-document { padding-top: 10mm; padding-bottom: 8mm; }
.executive-document .document-intro { padding: 5mm 0 4mm; }.executive-document .document-intro h1 { margin: 5mm 0; font-size: 27pt; line-height: .96; }
.executive-document .document-kpis { height: auto; gap: 2.5mm; border: 0; }.executive-document .document-kpis .kpi-card { min-height: 21mm; padding: 3.2mm; border: 1px solid #e7e3dd; border-top: 1.5px solid var(--coffee); border-radius: 2.5mm; box-shadow: 0 2mm 5mm rgba(36,30,24,.035); }.executive-document .document-kpis .kpi-card strong { font-size: 15pt; }
.executive-document .document-section { padding-top: 5mm; }.executive-document .chart-card.flat,.report-module .chart-card.flat { border: 1px solid #e7e3dd; border-top: 1.5px solid var(--coffee); border-radius: 2.5mm; box-shadow: 0 2mm 5mm rgba(36,30,24,.035); }
.executive-document .chart-card.flat { min-height: 38mm; height: 38mm; padding: 4mm; }.executive-document .result-values { margin-top: 4mm; gap: 3mm; }.executive-document .result-values strong { font-size: 16pt; }.executive-document .compliance-track { height: 1.8mm; margin-top: 4mm; }.executive-document .compliance-track b { top: 2.8mm; font-size: 5pt; }
.executive-document .funnel > div { height: 6mm; }.report-lower-grid { margin-top: 5mm; padding-top: 0; border-top: 0; gap: 4mm; }.report-module { min-width: 0; }.report-module .chart-card.flat { min-height: 40mm; padding: 4mm; }.report-module .interaction-row { min-height: 6mm; grid-template-columns: 25mm 1fr 8mm; }.report-module .interaction-map { margin-top: 3mm; }
.executive-document .simple-comparison > div { min-height: 18mm; }.executive-document .document-takeaway { margin-top: 5mm; padding: 4mm; grid-template-columns: 33mm 1fr; border: 1px solid #e7e3dd; border-top: 1.5px solid var(--orange); }.executive-document .document-takeaway p { font-size: 8.5pt; }.executive-document .document-foot { margin-top: 4mm; }

@media screen and (max-width: 900px) {
  .primary-nav a { padding: 0 9px; font-size: 9px; }.nav-version { display: none; }
  .dashboard-secondary { grid-template-columns: 1fr; }.dashboard-secondary .chart-card { height: 250px; }
  .year-business-grid { grid-template-columns: 1fr; }.year-insights { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .site-header { height: 68px; min-height: 68px; padding: 0 16px; }.site-header .ofidirect-logo { width: 58px; }.site-header .nespresso-logo { width: 86px; }.primary-nav { display: none; }
  .module-filter-bar { position: relative; top: auto; height: auto; }.report-center-main { min-height: calc(100vh - 68px); padding: 30px 18px; }.report-center-intro { gap: 24px; }.report-center-intro h1 { font-size: 36px; }.module-grid { margin-top: 28px; }.module-card,.module-card:first-child,.module-card:last-child { min-height: 180px; padding: 19px; }.module-card > div { margin-top: 28px; }.module-card:hover { padding: 19px; }
  .report-main { padding-top: 22px; }.report-heading h1 { font-size: 32px; }.kpi-grid { grid-template-columns: repeat(2,1fr); }.chart-card { height: auto; min-height: 235px; }.result-values { gap: 8px; }.result-values strong { font-size: 23px; }.interaction-row { grid-template-columns: 92px 1fr 34px; }
  .year-heading { align-items: flex-start; flex-direction: column; gap: 8px; }.year-kpis { grid-template-columns: repeat(2,1fr); }.year-business-grid,.year-insights { grid-template-columns: 1fr; }
}

/* Final component refinements */
.module-filter-bar.report form { grid-template-columns: .7fr 1.8fr 110px; }
.outcome-heading { align-items: center; }
.status-badge { flex: 0 0 auto; padding: 7px 10px; border-radius: 99px; display: inline-flex; align-items: center; gap: 7px; font-size: 8px; font-weight: 600; letter-spacing: .03em; }
.status-badge i { width: 7px; height: 7px; border-radius: 50%; }
.status-badge.success { color: #506a58; background: #edf4ef; }.status-badge.success i { background: #769781; }
.status-badge.warning { color: #846a41; background: #f8f2e7; }.status-badge.warning i { background: #c79c5d; }
.status-badge.danger { color: #8a5e5a; background: #f7eded; }.status-badge.danger i { background: #bd817b; }
.compliance-track { overflow: visible; }.compliance-track > i { background: #769781; }.compliance-track.warning > i { background: #c79c5d; }.compliance-track.danger > i { background: #bd817b; }
.goal-marker { position: absolute; left: 83.333%; top: -5px; height: 19px; padding-left: 5px; border-left: 1px solid var(--ink); color: var(--muted); font-size: 7px; line-height: 28px; white-space: nowrap; }
.card-heading span,.result-values span,.interaction-row > strong,.bar-chart label,.average-line,.annual-benchmark { font-size: 9px; }
.interaction-row[data-tone="1"] i { background: #4f4038; }.interaction-row[data-tone="2"] i { background: #796154; }.interaction-row[data-tone="3"] i { background: #a08573; }.interaction-row[data-tone="4"] i { background: #c9b6a8; }
.bar-chart { height: 112px; margin-top: 16px; padding-top: 15px; padding-bottom: 8px; }.bar-chart label { min-height: 10px; }.annual-wide { display: flex; flex-direction: column; }.annual-wide .bar-chart { flex: 1; min-height: 105px; }.annual-wide .average-line { margin-top: 10px; margin-bottom: 5px; }

/* Single monthly Executive Report: three comparable bases */
.comparison-report .document-header > span { font-size: 6.5pt; }
.comparison-report .document-intro { padding-bottom: 5mm; }.comparison-report .document-intro h1 { font-size: 25pt; }
.base-comparison-section { padding-top: 1mm; }.base-comparison-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 4mm; align-items: stretch; }
.base-report-card { min-width: 0; padding: 4mm; background: #fff; border: 1px solid #e7e3dd; border-top: 1.5px solid var(--coffee); border-radius: 2.5mm; box-shadow: 0 2mm 5mm rgba(36,30,24,.04); display: flex; flex-direction: column; }
.base-report-card > header { padding-bottom: 3mm; border-bottom: 1px solid var(--line); }.base-report-card > header span { color: var(--muted); font-size: 6pt; letter-spacing: .1em; text-transform: uppercase; }.base-report-card > header h3 { margin: 1.5mm 0 0; font-size: 11pt; font-weight: 500; }
.base-metrics { padding: 3mm 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 2mm; border-bottom: 1px solid var(--line); }.base-metrics div { display: grid; gap: 1.2mm; }.base-metrics span { color: var(--muted); font-size: 5.8pt; }.base-metrics strong { font-size: 11pt; font-weight: 500; }
.base-outcome { padding-top: 3mm; margin-top: auto; }.base-outcome .card-heading { align-items: flex-start; }.base-outcome .card-heading h2 { font-size: 8pt; }.base-outcome .status-badge { max-width: 25mm; padding: 1.5mm 2mm; align-items: flex-start; font-size: 5.3pt; line-height: 1.2; }.base-outcome .status-badge i { width: 1.8mm; height: 1.8mm; flex: 0 0 auto; }
.base-outcome .result-values { margin-top: 4mm; gap: 2mm; }.base-outcome .result-values span { font-size: 5.5pt; }.base-outcome .result-values strong { font-size: 13pt; }.base-outcome .compliance-track { height: 2mm; margin-top: 5mm; }.base-outcome .goal-marker { top: -1mm; height: 4mm; font-size: 5pt; line-height: 7mm; }
.comparison-report .document-takeaway { margin-top: 6mm; }.comparison-report .document-foot { margin-top: 5mm; }

/* Final Year in Review information architecture */
.final-year-report { padding-bottom: 32px; }.year-summary-grid { margin-bottom: 12px; display: grid; grid-template-columns: .7fr 1.15fr 1.15fr; gap: 12px; }
.year-summary-card,.best-campaign-card,.year-detail-card,.annual-learnings { background: #fff; border: 1px solid #e7e3dd; border-top: 2px solid var(--coffee); border-radius: 10px; box-shadow: 0 7px 22px rgba(36,30,24,.04); }
.year-summary-card { min-height: 118px; padding: 15px 17px; }.year-summary-card > span { display: block; margin-bottom: 12px; color: var(--muted); font-size: 8px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }.year-summary-card.total-campaigns { display: flex; flex-direction: column; }.year-summary-card.total-campaigns strong { margin-top: auto; font-size: 34px; font-weight: 400; }.year-summary-card.total-campaigns small { color: var(--muted); font-size: 8px; }
.summary-base-row { min-height: 25px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); }.summary-base-row small { color: var(--muted); font-size: 8px; }.summary-base-row b { font-size: 11px; font-weight: 600; }
.best-campaigns-section { margin-bottom: 12px; }.year-section-heading { margin-bottom: 9px; display: flex; align-items: end; justify-content: space-between; }.year-section-heading span { color: var(--muted); font-size: 8px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }.year-section-heading h2 { margin: 0; font-size: 14px; font-weight: 500; }
.best-campaign-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }.best-campaign-card { min-width: 0; padding: 15px 17px; }.best-campaign-card header { display: flex; justify-content: space-between; color: var(--muted); font-size: 8px; }.best-campaign-card header b { font-weight: 500; }.best-campaign-card h3 { margin: 15px 0 12px; font-size: 14px; font-weight: 500; }
.campaign-metrics { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); }.campaign-metrics > div { padding-top: 9px; display: grid; gap: 4px; }.campaign-metrics small { color: var(--muted); font-size: 7px; }.campaign-metrics strong { font-size: 11px; font-weight: 600; }
.year-detail-grid { margin-bottom: 12px; display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }.year-detail-card { min-width: 0; padding: 15px 17px; }.year-detail-card .year-card-heading { margin-bottom: 8px; display: block; }.year-detail-card .year-card-heading h2 { margin-top: 4px; font-size: 12px; }
.leader-row { min-height: 34px; display: grid; grid-template-columns: 48px 1fr 36px; align-items: center; gap: 7px; border-top: 1px solid var(--line); }.leader-row span { color: var(--muted); font-size: 7px; }.leader-row strong { overflow: hidden; font-size: 8px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }.leader-row b { text-align: right; font-size: 10px; }
.year-detail-card .base-row { min-height: 34px; }.annual-learnings { padding: 14px 17px; border-top-color: var(--orange); }.annual-learnings > div:last-child { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }.annual-learnings article { display: grid; grid-template-columns: 22px 1fr; gap: 8px; }.annual-learnings article b { color: var(--muted); font-size: 8px; }.annual-learnings article p { margin: 0; font-size: 8.5px; line-height: 1.45; }

@media screen and (max-width: 900px) {
  .best-campaign-grid,.year-detail-grid { grid-template-columns: 1fr; }.year-summary-grid { grid-template-columns: 1fr; }.annual-learnings > div:last-child { grid-template-columns: 1fr; }
  .base-comparison-grid { grid-template-columns: 1fr; }
}

@page { size: A4 portrait; margin: 0; }
@media print {
  html,body { width: 210mm; height: 297mm; margin: 0; background: #fff; }
  .document-toolbar,[data-module-filters] { display: none; }
  .executive-document { width: 210mm; height: 297mm; margin: 0; padding: 12mm 14mm 10mm; box-shadow: none; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .document-section,.report-lower-grid { break-inside: avoid; page-break-inside: avoid; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto; transition: none !important; } }

/* Sprint 2.6: Executive Report - single A4 landscape document */
.landscape-page { background: #e9e6e1; }
.executive-landscape { width: 297mm; height: 210mm; margin: 0 auto 35px; padding: 8mm 10mm 7mm; overflow: hidden; background: #fff; box-shadow: 0 20px 65px rgba(30,26,22,.09); display: grid; grid-template-rows: auto 1fr auto; gap: 3mm; }
.landscape-header { min-height: 20mm; padding-bottom: 3mm; border-bottom: 1px solid var(--ink); display: flex; align-items: center; justify-content: space-between; }
.landscape-header > div:first-child > span { color: var(--muted); font-size: 6.5pt; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.landscape-header h1 { margin: 2mm 0 1mm; font-size: 18pt; font-weight: 500; letter-spacing: -.035em; }.landscape-header p { margin: 0; color: var(--muted); font-size: 8pt; }
.landscape-header .report-brands img:first-child { width: 20mm; height: 11mm; }.landscape-header .report-brands img:last-child { width: 29mm; height: 9mm; }.landscape-header .report-brands i { height: 8mm; }
.report-columns { min-height: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 4mm; }
.report-base-column { min-width: 0; display: grid; grid-template-rows: auto auto auto auto auto auto; align-content: start; gap: 2.2mm; }
.base-column-header { min-height: 12mm; padding: 0 1mm 2mm; border-bottom: 1px solid var(--line); display: flex; align-items: end; justify-content: space-between; gap: 3mm; }
.base-column-header span { color: var(--muted); font-size: 5.5pt; letter-spacing: .12em; text-transform: uppercase; }.base-column-header h2 { margin: 1mm 0 0; font-size: 12pt; font-weight: 500; }.base-column-header small { max-width: 34mm; color: var(--muted); font-size: 5.5pt; line-height: 1.35; text-align: right; }
.mail-subject { min-height: 11mm; padding: 2.5mm 3mm; background: #f4f1ed; border-radius: 2mm; display: grid; gap: 1mm; }.mail-subject span { color: var(--muted); font-size: 5.5pt; text-transform: uppercase; }.mail-subject strong { overflow: hidden; font-size: 7pt; font-weight: 500; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.executive-landscape .report-card { border: 1px solid #e7e3dd; border-top: 1.5px solid var(--coffee); border-radius: 2.3mm; box-shadow: 0 1.5mm 4mm rgba(36,30,24,.035); }
.metric-card { min-height: 24mm; padding: 2.8mm 3mm; }.metric-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 2.3mm 2mm; }.metric-grid > div { display: grid; grid-template-columns: 1fr auto; gap: .5mm 1mm; }.metric-grid span { grid-column: 1/-1; color: var(--muted); font-size: 5.3pt; }.metric-grid strong { font-size: 9pt; font-weight: 500; }.metric-grid small { align-self: end; padding-bottom: .3mm; color: var(--muted); font-size: 5.5pt; }
.compact-funnel { min-height: 37mm; padding: 2.5mm 3mm; }.compact-funnel > header,.target-card > header,.cta-card > header { margin-bottom: 2mm; display: flex; align-items: center; justify-content: space-between; }.compact-funnel header span,.target-card header > span,.cta-card header span { color: var(--muted); font-size: 5.5pt; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }.compact-funnel header > b,.cta-card header > b { font-size: 6.5pt; font-weight: 600; }
.funnel-line { height: 4.2mm; position: relative; overflow: hidden; background: #f1efeb; border-radius: .8mm; }.funnel-line + .funnel-line { margin-top: .8mm; }.funnel-line > i { height: 100%; display: block; background: #c5b8ae; }.funnel-line:nth-of-type(2) > i { background: #aa988a; }.funnel-line:nth-of-type(3) > i { background: #8d7769; }.funnel-line:nth-of-type(4) > i { background: #5c493e; }.funnel-line > strong { position: absolute; inset: 0 1.5mm; display: flex; align-items: center; justify-content: space-between; font-size: 5.5pt; font-weight: 500; }.funnel-line > strong b { font-size: 7pt; }
.conversion-benchmark { margin-top: 2mm; padding-top: 2mm; border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 2mm; }.conversion-benchmark span { display: grid; gap: .5mm; color: var(--muted); font-size: 5pt; }.conversion-benchmark span strong { color: var(--ink); font-size: 9pt; }.conversion-benchmark > b { padding: 1mm 1.5mm; border-radius: 99px; color: #506a58; background: #edf4ef; font-size: 5.5pt; font-weight: 600; }.conversion-benchmark > b.negative { color: #8a5e5a; background: #f7eded; }
.target-card { min-height: 25mm; padding: 2.5mm 3mm; }.target-status { padding: 1mm 1.5mm; border-radius: 99px; font-size: 5.5pt; font-weight: 600; }.target-status.success { color: #506a58; background: #edf4ef; }.target-status.warning { color: #846a41; background: #f8f2e7; }.target-status.danger { color: #8a5e5a; background: #f7eded; }
.target-scale { height: 2.2mm; margin-top: 8mm; position: relative; background: #e8e4de; border-radius: 20px; }.target-scale > i { height: 100%; display: block; border-radius: inherit; background: #769781; }.target-scale.warning > i { background: #c79c5d; }.target-scale.danger > i { background: #bd817b; }.result-position { width: 1px; height: 3mm; position: absolute; bottom: 100%; background: var(--ink); }.result-callout { position: absolute; left: 50%; bottom: 3.2mm; transform: translateX(-50%); display: flex; align-items: baseline; justify-content: center; gap: 1.5mm; white-space: nowrap; }.result-callout small { color: var(--muted); font-size: 5pt; }.result-callout b { font-size: 14pt; font-weight: 500; letter-spacing: -.03em; }.target-scale > strong { position: absolute; right: 0; top: 3.5mm; color: var(--muted); font-size: 5pt; font-weight: 500; }
.cta-card { min-height: 29mm; padding: 2.5mm 3mm; }.cta-row { min-height: 4.5mm; display: grid; grid-template-columns: 25mm 1fr 8mm; align-items: center; gap: 2mm; }.cta-row strong { overflow: hidden; font-size: 5.5pt; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }.cta-row > i { height: 1.8mm; overflow: hidden; background: #efede9; border-radius: 10px; }.cta-row > i b { height: 100%; display: block; border-radius: inherit; }.cta-row > span { text-align: right; font-size: 6pt; }.cta-row[data-tone="1"] > i b { background:#4f4038; }.cta-row[data-tone="2"] > i b { background:#796154; }.cta-row[data-tone="3"] > i b { background:#a08573; }.cta-row[data-tone="4"] > i b { background:#c9b6a8; }
.landscape-conclusion { min-height: 13mm; padding: 2.5mm 3mm; border: 1px solid #e7e3dd; border-top: 1.5px solid var(--orange); border-radius: 2.3mm; display: grid; grid-template-columns: 35mm 1fr; align-items: center; gap: 4mm; box-shadow: 0 1.5mm 4mm rgba(36,30,24,.035); }.landscape-conclusion span { color: var(--muted); font-size: 5.5pt; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }.landscape-conclusion p { margin: 0; font-size: 7pt; line-height: 1.4; }

@media print {
  html.landscape-document,html.landscape-document body.landscape-page { width: 297mm; height: 210mm; overflow: hidden; }
  .landscape-page .document-toolbar,.landscape-page [data-module-filters] { display: none; }
  .executive-landscape { width: 297mm; height: 210mm; margin: 0; padding: 8mm 10mm 7mm; position: fixed; inset: 0; overflow: hidden; break-after: avoid; page-break-after: avoid; box-shadow: none; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}
@media screen and (max-width: 1180px) {
  .executive-landscape { transform-origin: top center; }
}

/* Sprint 2.7: Executive Report legibility refinement */
.executive-landscape { grid-template-rows: auto 1fr; gap: 3mm; }
.landscape-header > div:first-child > span { font-size: 7.5pt; }.landscape-header h1 { font-size: 19pt; }.landscape-header p { font-size: 9pt; }
.base-column-header { min-height: 13mm; }.base-column-header h2 { margin: 0; font-size: 14pt; }.base-column-header small { max-width: 38mm; font-size: 6.5pt; }
.mail-subject span { font-size: 6.5pt; }.mail-subject strong { font-size: 8.5pt; }
.metric-card { min-height: 20mm; padding: 3mm; }.metric-grid { grid-template-columns: repeat(4,1fr); gap: 2mm; }.metric-grid > div { display: grid; grid-template-columns: 1fr; gap: 1mm; }.metric-grid span { font-size: 6.5pt; }.metric-grid strong { font-size: 11pt; }.metric-grid .delivered-metric strong { display: inline-flex; align-items: baseline; gap: 1.2mm; }.metric-grid .delivered-metric small { color: var(--muted); font-size: 7pt; font-weight: 600; }
.report-funnel-card { min-height: 42mm; padding: 2.8mm 3mm; }.report-funnel-card > header { margin-bottom: 2mm; display: flex; align-items: center; justify-content: space-between; }.report-funnel-card > header span { color: var(--muted); font-size: 6.5pt; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }.report-funnel-card > header > b { font-size: 8pt; font-weight: 600; }
.report-funnel-card .funnel { margin-top: 0; }.report-funnel-card .funnel > div { height: 6mm; padding: 0 2.5mm; gap: 2mm; font-size: 6.5pt; }.report-funnel-card .funnel > div + div { margin-top: .7mm; }.report-funnel-card .funnel strong { font-size: 8.5pt; }.report-funnel-card .funnel em { font-size: 9.5pt; font-weight: 600; opacity: 1; }
.report-funnel-card .conversion-benchmark { margin-top: 2.2mm; padding-top: 2.2mm; grid-template-columns: .8fr .9fr 1.2fr; }.report-funnel-card .conversion-benchmark span { font-size: 6pt; }.report-funnel-card .conversion-benchmark span strong { font-size: 10pt; }.report-funnel-card .conversion-benchmark > b { padding: 1.5mm 1.8mm; text-align: center; font-size: 9.5pt; letter-spacing: -.02em; }
.target-card > header { margin-bottom: 2.5mm; }.target-card header > span { font-size: 6.5pt; }.target-status { font-size: 6.5pt; }.target-card { min-height: 27mm; padding: 2.8mm 3mm; }.target-scale { height: 2.5mm; margin-top: 9mm; }.result-callout small { font-size: 6.5pt; }.result-callout b { font-size: 17pt; }.target-scale > strong { top: 4mm; font-size: 6.5pt; }

/* Data integration states */
.integration-warning { margin: 0 0 12px; padding: 10px 14px; border: 1px solid #e6d8bd; border-left: 3px solid #c79c5d; border-radius: 8px; background: #fbf8f1; display: flex; align-items: baseline; gap: 12px; color: #6f5b3d; }
.integration-warning strong { flex: 0 0 auto; font-size: 9px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.integration-warning span { font-size: 9px; line-height: 1.4; }
.executive-landscape > .integration-warning { margin: 0; padding: 1.5mm 2.5mm; position: absolute; transform: translateY(21mm); max-width: 140mm; }
.data-validation-message { min-height: 90px; padding: 18px; border-radius: 8px; background: #fbf8f1; display: flex; flex-direction: column; justify-content: center; gap: 6px; }
.data-validation-message strong { color: #6f5b3d; font-size: 12px; font-weight: 600; }.data-validation-message span { color: var(--muted); font-size: 9px; line-height: 1.45; }
.data-validation-message.compact { min-height: 20mm; padding: 3mm; }
@media print { .integration-warning { display: none; } }

/* RC1 configuration and publication status */
.nav-last-update { margin-left: auto; padding-left: 16px; border-left: 1px solid var(--line); display: grid; gap: 2px; white-space: nowrap; }.nav-last-update small { color: var(--muted); font-size: 6px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }.nav-last-update b { font-size: 8px; font-weight: 500; }
.toolbar-last-update { margin-left: auto; margin-right: 14px; display: grid; gap: 2px; text-align: right; }.toolbar-last-update small { color: var(--muted); font-size: 6px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }.toolbar-last-update b { font-size: 8px; font-weight: 500; }
.configuration-main { padding-top: 34px; padding-bottom: 55px; }.configuration-heading { margin-bottom: 18px; }.configuration-heading h1 { margin: 4px 0 0; font-size: 28px; font-weight: 500; letter-spacing: -.035em; }
.configuration-card { padding: 26px; border: 1px solid #e7e3dd; border-top: 2px solid var(--coffee); border-radius: 10px; background: #fff; box-shadow: 0 7px 22px rgba(36,30,24,.04); }
.configuration-card-header { padding-bottom: 20px; border-bottom: 1px solid var(--line); display: flex; align-items: end; justify-content: space-between; gap: 24px; }.configuration-card-header span { color: var(--muted); font-size: 8px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }.configuration-card-header h2 { margin: 5px 0 0; font-size: 18px; font-weight: 500; }.last-import { text-align: right; }.last-import strong { margin-top: 5px; display: grid; font-size: 13px; font-weight: 500; }.last-import small { color: var(--muted); font-size: 8px; font-weight: 400; }
.source-upload-grid { margin-top: 20px; display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }.file-selector { min-height: 112px; padding: 18px; border: 1px solid var(--line); border-radius: 9px; display: flex; flex-direction: column; cursor: pointer; transition: border-color .18s ease, background .18s ease; }.file-selector:hover { border-color: #b7a99f; background: #fcfbf9; }.file-selector > span { color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .08em; }.file-selector > strong { margin-top: 8px; font-size: 14px; font-weight: 500; }.file-selector > small { margin-top: auto; color: var(--muted); font-size: 8px; }.file-selector input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.validation-preview { margin-top: 18px; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }.validation-empty { min-height: 90px; padding: 20px; display: flex; flex-direction: column; justify-content: center; gap: 5px; background: #faf9f7; }.validation-empty strong { font-size: 11px; font-weight: 500; }.validation-empty span { color: var(--muted); font-size: 9px; }
.validation-summary { display: grid; grid-template-columns: repeat(2,1fr); }.source-validation { min-height: 92px; padding: 18px 20px; display: grid; grid-template-columns: 24px 1fr; gap: 10px; align-items: start; }.source-validation + .source-validation { border-left: 1px solid var(--line); }.source-validation > b { width: 19px; height: 19px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: #769781; font-size: 10px; }.source-validation.error > b { background: #bd817b; }.source-validation div { display: grid; gap: 4px; }.source-validation strong { font-size: 11px; font-weight: 600; }.source-validation span,.source-validation small { color: var(--muted); font-size: 8px; }
.validation-status { padding: 12px 20px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }.validation-status span { color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .08em; }.validation-status strong { color: #506a58; font-size: 11px; font-weight: 600; }.validation-status.warning strong { color: #846a41; }.validation-status.error strong { color: #8a5e5a; }
.validation-issues { padding: 14px 20px; border-top: 1px solid var(--line); background: #fbf8f1; }.validation-issues > strong { color: #6f5b3d; font-size: 9px; font-weight: 600; }.validation-issues ul { margin: 8px 0 0; padding-left: 17px; columns: 2; column-gap: 30px; }.validation-issues li { margin-bottom: 5px; break-inside: avoid; color: var(--muted); font-size: 8px; line-height: 1.4; }
.configuration-actions { padding-top: 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }.configuration-actions p { margin: 0; color: var(--muted); font-size: 8px; }.configuration-actions button:disabled { cursor: not-allowed; opacity: .42; }
@media (max-width: 900px) { .nav-last-update { padding-left: 10px; }.nav-last-update small { font-size: 5.5px; }.nav-last-update b { font-size: 7px; } }
@media (max-width: 720px) { .configuration-main { padding-top: 22px; }.configuration-card { padding: 18px; }.configuration-card-header { align-items: flex-start; flex-direction: column; }.last-import { text-align: left; }.source-upload-grid,.validation-summary { grid-template-columns: 1fr; }.source-validation + .source-validation { border-left: 0; border-top: 1px solid var(--line); }.validation-issues ul { columns: 1; }.configuration-actions { align-items: stretch; flex-direction: column; }.configuration-actions .button { width: 100%; } }
