/* The complete report shares one chart language and contextual actions. */
.report-layout .analysis-page { font-size:14px; }
.report-layout .analysis-pay-grid>div { min-width:0; }
.report-layout .analysis-intro p,.report-layout .analysis-reading,.report-layout .analysis-subsection>header p { font-size:14px; line-height:1.65; }
.report-layout .analysis-subsection h3,.report-layout .report-subsection h3 { font-size:23px; font-weight:620; }
.report-layout .analysis-basis,.report-layout .analysis-chart-legend,.report-layout .report-data-note { font-size:12px; line-height:1.6; }
.report-layout .analysis-check small { font-size:13px; line-height:1.6; }
.report-layout .analysis-check b { font-size:14px; font-weight:600; }
.report-layout .analysis-check { padding:10px 0; }
.report-layout .analysis-bar-groups { max-width:850px; gap:30px; padding:20px 0 12px; }
.report-layout .analysis-bar-group { min-width:0; }
.report-layout .analysis-bar-group>div { gap:5px; }
.report-layout .analysis-bar-group h4 { font-size:14px; }
.report-layout .analysis-vertical-bar b { font-size:15px; }
.report-layout .analysis-vertical-bar span { font-size:12px; }
.report-layout .analysis-chart-shell { border:0; padding:10px 0 0; background:transparent; border-radius:0; }
.report-layout .analysis-chart { max-height:360px; }
.report-layout .analysis-chart text { font-size:12px; }
.report-layout .analysis-gridline { stroke-dasharray:none; opacity:.7; }
.report-layout .analysis-key dl>div { font-size:13px; }
.report-layout .analysis-update-list b { font-size:14px; }
.report-layout .analysis-update-list p { font-size:12px; }
.report-layout .analysis-forecast-fill { fill:#269cd414; }
.report-layout .analysis-chart-legend { padding-top:9px; }
.report-layout .analysis-chart g[data-analysis="point"] { cursor:crosshair; }
.report-layout .analysis-chart g[data-analysis="point"]:hover circle { r:5; }
.analysis-crosshair { stroke:var(--muted); stroke-width:1; stroke-dasharray:4 5; opacity:0; pointer-events:none; }
.point-selected .analysis-crosshair { opacity:.65; }
.point-selected circle { r:4; }
.analysis-chart-widget .analysis-point-detail { background:var(--card); width:fit-content; min-width:230px; max-width:100%; margin:10px 0 0 58px; padding:10px 14px; font-size:12px; }
.analysis-chart-widget .analysis-point-detail h4 { margin:0 0 8px; font-size:12px; color:var(--muted); font-weight:500; }
.analysis-chart-widget .analysis-point-detail>div { gap:10px 22px; }
.analysis-chart-widget .analysis-point-detail span { position:relative; padding-left:12px; }
.analysis-chart-widget .analysis-point-detail i { position:absolute; left:0; top:4px; width:6px; height:6px; border-radius:2px; }
.analysis-chart-widget .analysis-point-detail b { font-size:13px; }
.analysis-chart-legend>button { display:inline-flex; align-items:center; gap:6px; color:var(--text); background:var(--card); border:1px solid var(--line); border-radius:4px; padding:7px 9px; font:inherit; font-size:12px; cursor:pointer; }
.analysis-chart-legend>button[aria-pressed="false"] { opacity:.5; text-decoration:line-through; }
.analysis-chart-legend>button[aria-pressed="true"] { border-bottom:2px solid #b59b59; }
.report-layout .analysis-data-table { font-size:12px; }
.report-layout .analysis-data-table summary { width:fit-content; margin-left:auto; }
.report-layout .analysis-subsection { padding:26px 0 30px; }
.report-how { display:grid; grid-template-columns:145px 1fr; gap:25px; align-items:center; padding:24px; margin:24px 0 30px; border:1px solid var(--line); background:var(--card); border-radius:10px; }
.report-how-preview { padding:15px 10px 5px; background:linear-gradient(130deg,#269cd413,#37bda520); border-radius:8px; }
.report-how-preview span { font-size:12px; font-weight:600; display:block; }
.report-how-preview svg { width:100%; display:block; }
.report-how h3 { margin:0 0 9px; font-size:19px; line-height:1.4; }
.report-how p { margin:0 0 17px; color:var(--muted); font-size:14px; line-height:1.6; }
.report-how .report-accent,.opportunity-cards .report-accent,.report-tour .report-accent { background:#e7c875; color:#233044; border-color:#d6b458; }
.expense-flow-widget { min-width:0; }
.expense-year-track { position:relative; height:66px; background:var(--card); border-radius:9px; border:1px solid var(--line); overflow:hidden; margin-bottom:18px; }
.expense-year-track svg { position:absolute; inset:0; height:100%; width:100%; }
.expense-year-track>div { position:relative; display:flex; height:100%; justify-content:space-between; }
.expense-year-track button { border:0; border-radius:7px; min-width:65px; background:none; color:var(--text); font:inherit; font-size:14px; padding:6px 18px 27px; cursor:pointer; }
.expense-year-track button[aria-pressed="true"] { background:#269cd429; }
.expense-year-track button:disabled { opacity:.45; cursor:default; }
.expense-chart-meta { display:flex; justify-content:space-between; gap:12px; font-size:13px; color:var(--muted); }
.expense-chart-meta b { color:var(--text); font-weight:500; }
.expense-scroll { max-width:100%; overflow-x:auto; scrollbar-width:thin; }
.expense-sankey { width:100%; min-width:740px; display:block; }
.expense-sankey text { fill:var(--text); font:15px Arial,sans-serif; }
.expense-sankey .expense-node-amount { fill:var(--muted); font-size:14px; }
.expense-ribbon { opacity:.31; transition:opacity .18s; }
.expense-ribbon.dimmed { opacity:.08; }
.expense-node { cursor:pointer; outline:none; }
.expense-node:hover rect:not(.expense-hitbox),.expense-node:focus rect:not(.expense-hitbox) { stroke:var(--text); stroke-width:2; }
.expense-detail { display:flex; gap:12px; flex-wrap:wrap; padding:12px 0; min-height:45px; color:var(--muted); font-size:13px; border-top:1px solid var(--line); }
.expense-detail b { color:var(--text); }
.expense-flow-widget .analysis-data-table summary { margin-left:auto; }
.opportunity-intro { display:flex; gap:16px; align-items:center; margin:22px 0 15px; flex-wrap:wrap; }
.opportunity-intro>span { font-size:12px; letter-spacing:1.3px; color:#397183; font-weight:600; }
.opportunity-intro small { font-size:12px; color:var(--muted); }
.opportunity-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.opportunity-cards article { background:var(--card); padding:22px; border:1px solid var(--line); border-radius:10px; display:flex; flex-direction:column; min-width:0; }
.opportunity-brand { display:flex; gap:12px; align-items:center; margin-bottom:20px; }
.opportunity-brand .report-brand { width:76px; height:70px; border-radius:5px; flex:none; }
.opportunity-brand h4 { margin:0 0 6px; font-size:21px; letter-spacing:-.4px; }
.opportunity-brand small { font-size:12px; color:var(--muted); }
.opportunity-thesis { border-left:3px solid #269cd4; padding-left:12px; min-height:115px; }
.opportunity-thesis>b { font-size:15px; line-height:1.4; }
.opportunity-thesis p { font-size:13px; line-height:1.6; margin:7px 0 0; color:var(--muted); }
.opportunity-metrics { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:20px 0 3px; }
.opportunity-metrics span { display:block; font-size:12px; color:var(--muted); line-height:1.4; }
.opportunity-metrics b { display:block; font-size:25px; margin-top:7px; color:#25856f; }
.opportunity-spark { display:block; width:100%; margin:5px 0 14px; }
.opportunity-spark text { font-size:12px; fill:var(--muted); }
.opportunity-foot { display:flex; justify-content:space-between; gap:8px; flex-wrap:wrap; font-size:12px; color:var(--muted); border-top:1px solid var(--line); padding-top:12px; }
.opportunity-foot b { color:#a07823; font-weight:500; }
.opportunity-risk { font-size:12px; line-height:1.6; color:var(--muted); margin:12px 0 18px; }
.opportunity-cards .button { margin-top:auto; justify-content:center; }
.opportunity-cards .text-button { margin-top:10px; padding:5px; font-size:12px; }
.report-experience-modal { width:min(1100px,calc(100vw - 40px)); max-width:1100px; }
.report-experience-modal .modal-body { padding:22px 28px; }
.benchmark-selection { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:0 0 24px; }
.benchmark-selection>b { width:100%; font-size:14px; }
.benchmark-selection label { display:flex; gap:8px; align-items:center; border:1px solid var(--line); border-radius:7px; padding:8px 12px; font-size:14px; cursor:pointer; }
.benchmark-selection .report-brand { width:28px; height:28px; border-radius:4px; }
.benchmark-selection input { accent-color:#2988ad; }
.report-compare-suggestion { display:flex; align-items:flex-start; gap:8px; margin:12px 0 0; color:var(--muted); font-size:13px; line-height:1.55; }
.report-compare-suggestion .icon { width:16px; height:16px; color:#397183; margin-top:2px; }
.report-compare-suggestion b { color:var(--text); font-weight:550; }
.benchmark-reference { display:flex; gap:10px; align-items:center; margin-bottom:22px; font-size:14px; }
.benchmark-reference .report-brand { width:36px; height:36px; }
.benchmark-reference>span { color:var(--muted); margin-left:auto; font-size:12px; }
.benchmark-recommendations h3 { margin:0 0 7px; font-size:21px; }
.benchmark-recommendations>p { margin:0 0 15px; color:var(--muted); font-size:13px; }
.benchmark-recommendations .benchmark-selection { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:12px; margin-bottom:10px; }
.benchmark-recommendations .benchmark-selection label { display:flex; flex-direction:column; align-items:stretch; gap:9px; padding:15px; min-width:0; background:var(--panel); }
.benchmark-recommendations label:has(input:checked) { border-color:#2988ad; background:color-mix(in srgb,#269cd4 4%,var(--panel)); }
.benchmark-candidate-title { display:flex; align-items:center; gap:8px; font-size:15px; }
.benchmark-candidate-title input { flex:none; }
.benchmark-recommendations label>strong { font-size:13px; font-weight:600; }
.benchmark-recommendations label>span { font-size:12px; color:var(--muted); line-height:1.6; }
.benchmark-recommendations label>small { font-size:11px; color:var(--muted); line-height:1.5; }
.benchmark-recommendations label>em { margin-top:auto; color:#397183; font-size:11px; font-style:normal; }
.benchmark-screening-basis { display:block; font-size:11px; color:var(--muted); line-height:1.6; margin-bottom:23px; }
@media(max-width:650px){.benchmark-recommendations .benchmark-selection{grid-template-columns:1fr}.benchmark-recommendations .benchmark-selection label{gap:6px;padding:12px}.benchmark-reference{margin-bottom:18px}}
.benchmark-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:25px; }
.benchmark-tabs .button { font-size:14px; padding:9px 15px; }
.benchmark-tabs .selected { border-color:#b49743; background:#d3b2591a; }
.benchmark-chart { display:block; width:100%; margin:0; }
.benchmark-chart text { fill:var(--muted); font-size:13px; }
@media(max-width:600px){.report-experience-modal .benchmark-chart{min-width:0}.report-experience-modal .benchmark-chart text{font-size:20px}}
.benchmark-legend { display:flex; gap:18px; flex-wrap:wrap; font-size:13px; margin:10px 0 22px; }
.benchmark-legend>span { display:flex; gap:6px; align-items:center; }
.benchmark-legend i { width:16px; height:3px; }
.benchmark-quality { padding:18px 20px; margin:24px 0 0; background:#269cd40b; border-left:3px solid #269cd4; border-radius:0 5px 5px 0; font-size:14px; }
.benchmark-quality p { font-size:14px; color:var(--muted); line-height:1.65; }
.benchmark-quality small { font-size:12px; color:var(--muted); }
.report-tour>h3 { font-size:24px; line-height:1.4; margin:10px 0; }
.report-tour>p { font-size:15px; line-height:1.65; color:var(--muted); }
.report-tour .report-subsection { margin:20px 0; padding:20px 0; }
.tour-evidence-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin:25px 0; }
.tour-evidence-grid article { border:1px solid var(--line); border-radius:8px; padding:20px; }
.tour-evidence-grid span { font-size:12px; color:#397183; display:block; margin-bottom:13px; }
.tour-evidence-grid b { font-size:17px; display:block; line-height:1.5; }
.tour-evidence-grid p { font-size:14px; color:var(--muted); line-height:1.6; }
@media(max-width:1200px){ .opportunity-cards { grid-template-columns:1fr; } .opportunity-cards article { display:grid; grid-template-columns:1.1fr 1fr; column-gap:30px; } .opportunity-brand,.opportunity-thesis { grid-column:1; } .opportunity-metrics,.opportunity-spark,.opportunity-foot { grid-column:2; } .opportunity-metrics { grid-row:1; margin:0; } .opportunity-spark { grid-row:2; } .opportunity-thesis { min-height:0; } .opportunity-cards .button { width:fit-content; } }
@media(max-width:600px){ .report-how { grid-template-columns:85px 1fr; padding:16px; gap:15px; } .report-how h3 { font-size:17px; } .report-how p { font-size:13px; } .report-how-preview { padding:8px; } .report-how-preview span { font-size:11px; } .report-experience-modal { width:calc(100vw - 20px); } .report-experience-modal .modal-body { padding:16px; } .tour-evidence-grid { grid-template-columns:1fr; } .expense-year-track button { min-width:0; padding:6px 8px 28px; } .expense-chart-meta { flex-direction:column; gap:5px; } .opportunity-cards article { display:flex; padding:19px; } .opportunity-metrics { margin-top:16px; } .report-layout .analysis-subsection h3 { font-size:20px; } .report-layout .analysis-subsection { padding:22px 0; } .report-tour>h3 { font-size:20px; } .benchmark-chart { min-width:580px; } .benchmark-modal,.report-tour { overflow-x:auto; } .benchmark-tabs .button { font-size:12px; padding:9px 10px; } }
@media(prefers-reduced-motion:reduce){ .expense-ribbon { transition:none; } }
@media(max-width:600px){.report-layout .analysis-chart-shell{overflow-x:auto;max-width:100%;scrollbar-width:thin}.report-layout .analysis-chart{min-width:600px;max-height:none}.report-layout .analysis-chart text{font-size:12px}}

@media(max-width:600px){.analysis-chart-widget .analysis-point-detail{margin-left:0;min-width:0;width:100%}.analysis-chart-widget .analysis-point-detail>div{gap:10px 16px}.analysis-chart-legend>button{font-size:11px;padding:6px 7px}}
