/* M189: judgment, core drivers, expectations, market confirmation, then context. */
.macro-page { font-size:1rem; font-family:var(--font-ui); font-optical-sizing:auto; }
.macro-header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.macro-header h1 { margin:0; font-size:1.75rem; letter-spacing:-.03em; }
.macro-page button,.macro-page select { font:inherit; min-height:44px; color:var(--color-accent); border:1px solid var(--color-border); background:var(--color-surface); border-radius:var(--radius-control); padding:8px 10px; cursor:pointer; }
.macro-page button:disabled { opacity:.6; }
.macro-page a { color:var(--color-accent); text-underline-offset:3px; overflow-wrap:anywhere; }
.macro-page :is(button,a,select):focus-visible { outline:2px solid var(--color-accent); outline-offset:3px; }
.macro-page p { line-height:1.55; }
.macro-page h2 { font-size:1.125rem; line-height:1.4; margin:0; }
.macro-page h3 { font-size:.9375rem; line-height:1.5; margin:0; }
.macro-meta,#macroFeedback { font-size:.8125rem; color:var(--color-text-muted); }
.macro-warning { color:var(--color-attention); }
#macroFeedback { margin:6px 0; }
#macroFeedback:empty { display:none; }
.macro-card { border:1px solid var(--color-border); border-radius:calc(var(--radius-card) + .25rem); background:var(--color-surface); padding:14px 16px; margin-bottom:12px; min-width:0; }
.macro-section-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0 8px; margin-bottom:8px; min-height:28px; }
.macro-page .macro-proof { padding:4px 0; border:0; border-radius:4px; background:transparent; font-size:.8125rem; min-width:44px; min-height:44px; text-align:left; }
.macro-section-head:has(.macro-proof) { margin-block:-7px 3px; }
.macro-proof span { margin-left:4px; }
.macro-icon { width:24px; height:24px; flex:none; }
.macro-thesis { padding:20px 16px 8px; }
.macro-page .macro-hero-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 12px; }
.macro-page .macro-thesis .macro-grade { flex-shrink:0; white-space:nowrap; font-size:1rem; line-height:1.4; font-weight:650; letter-spacing:-.02em; margin:0; padding:0; min-width:44px; border:0; background:transparent; color:var(--color-text); }
.macro-grade::after { content:'›'; font-size:.875rem; margin-left:6px; color:var(--color-text-muted); }
.macro-subtitle { font-size:.9375rem; color:var(--color-text); margin:0 0 16px; line-height:1.65; }
.macro-last-valid { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 8px; padding:10px 12px; margin-bottom:16px; border-radius:var(--radius-control); background:var(--color-surface-raised); font-size:.8125rem; color:var(--color-text-muted); }
.macro-last-valid strong { color:var(--color-text); font-size:.9375rem; }
.macro-confirmation { font-size:.8125rem; color:var(--color-attention); }
.macro-states { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,5.3rem),1fr)); gap:8px; padding:12px 0; border-block:1px solid var(--color-border); }
.macro-page .macro-state { display:flex; align-items:center; gap:5px; padding:2px 0; text-align:left; min-width:0; color:var(--color-text); background:transparent; border:0; }
.macro-state .macro-icon { display:none; }
.macro-state small { display:block; color:var(--color-text-muted); font-size:.8125rem; }
.macro-state strong { display:block; font-size:.9375rem; line-height:1.5; margin-top:3px; }
.macro-state[data-tone="support"] strong { color:var(--color-positive); }
.macro-state[data-tone="risk"] strong { color:var(--color-negative); }
.macro-state:is([data-tone="attention"],[data-tone="unknown"]) strong { color:var(--color-attention); }
.macro-page .macro-change { display:flex; align-items:flex-start; gap:10px; width:100%; text-align:left; padding:12px 0; color:var(--color-text); background:transparent; border:0; border-bottom:1px solid var(--color-border); border-radius:0; }
.macro-page .macro-change:last-child { border-bottom:0; padding-bottom:4px; }
.macro-change .macro-icon { width:30px; height:30px; border-radius:50%; padding:5px; box-sizing:border-box; background:color-mix(in srgb,var(--color-positive) 7%,var(--color-surface)); }
.macro-change strong { font-size:.9375rem; }
.macro-change-detail,.macro-change small { display:block; margin:4px 0 0; font-size:.8125rem; color:var(--color-text-muted); line-height:1.6; }
.macro-change-arrow { margin-left:auto; align-self:center; color:var(--color-text-muted); }
.macro-empty { font-size:.875rem; font-weight:600; margin:6px 0; }
.macro-changes > .macro-meta { margin:4px 0; }
.macro-next-event { padding-top:0; margin-top:0; }
.macro-next-event h3 { color:var(--color-text-muted); font-size:.8125rem; font-weight:500; }
.macro-release-name { font-size:.875rem; margin:0; }
.macro-verification-node { display:flex; align-items:center; gap:8px; padding:8px 0 0; }
.macro-verification-node > div { min-width:0; }
.macro-verification-node strong { display:block; font-size:1.125rem; font-variant-numeric:tabular-nums; }
.macro-node-meta { display:flex; align-items:center; flex-wrap:wrap; gap:0 6px; font-size:.8125rem; color:var(--color-text-muted); }
.macro-page #macroZone { font-size:1rem; padding:0; border:0; background:transparent; min-height:44px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.macro-event-metrics > div { display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; padding:8px 0; border-bottom:1px solid var(--color-border); font-size:.875rem; }
.macro-event-metrics strong { flex:1 1 7rem; font-size:.9375rem; }
.macro-event-metrics span { color:var(--color-text-muted); }
.macro-event-metrics b { font-weight:600; color:var(--color-text); }
.macro-actual { flex-basis:100%; }
.macro-expectations { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr)); gap:12px; }
.macro-expectations > article { min-width:0; }
.macro-expectations .macro-meta { margin:5px 0 0; }
.macro-rate-distribution { display:grid; gap:6px; margin-top:8px; }
.macro-rate-row { display:grid; grid-template-columns:minmax(0,6.5rem) minmax(1rem,1fr) minmax(0,3.75rem); align-items:center; gap:8px; font-size:.875rem; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.macro-rate-row b { text-align:right; }
.macro-rate-row meter { width:100%; height:12px; accent-color:var(--color-accent); }
.macro-rate-row meter::-webkit-meter-bar { border:0; background:var(--color-border); }
.macro-rate-row meter::-webkit-meter-optimum-value { background:var(--color-accent); }
.macro-rate-row meter::-moz-meter-bar { background:var(--color-accent); }
.macro-cpi-values { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:8px; font-size:.8125rem; color:var(--color-text-muted); }
.macro-cpi-values b { display:block; font-size:1.25rem; color:var(--color-text); font-variant-numeric:tabular-nums; }
.macro-expectation-reading { margin:4px 0; font-size:.875rem; }
.macro-next-title { margin-top:10px !important; }
.macro-check-list { display:grid; gap:4px; margin:6px 0 8px; padding:0; list-style:none; counter-reset:checks; }
.macro-check-list li { min-height:24px; display:flex; gap:5px; align-items:center; font-size:.8125rem; color:var(--color-text-muted); counter-increment:checks; }
.macro-check-list li::before { content:counter(checks); display:grid; place-items:center; width:20px; height:20px; flex:none; border-radius:50%; background:var(--color-surface-raised); color:var(--color-text); }
.macro-page .macro-primary { width:100%; background:var(--color-positive); border-color:var(--color-positive); color:var(--color-on-accent); font-size:.9375rem; font-weight:650; }
.macro-dimensions { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,8.5rem),1fr)); gap:10px; }
.macro-core .macro-dimensions { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:359px) { .macro-core .macro-dimensions { grid-template-columns:1fr; } }
.macro-page .macro-dimension { display:grid; gap:2px; align-content:start; padding:8px; text-align:left; color:var(--color-text); min-width:0; background:var(--color-surface); }
.macro-dimension-heading { display:flex; align-items:center; flex-wrap:wrap; gap:2px 5px; }
.macro-dimension .macro-icon { width:18px; height:18px; }
.macro-dimension-name { font-size:.875rem; }
.macro-metric-name { font-size:.8125rem; color:var(--color-text-muted); }
.macro-dimension strong { display:block; font-size:1rem; line-height:1.5; overflow-wrap:anywhere; }
.macro-effect { margin-top:3px; }
.macro-effect[data-tone="support"] { color:var(--color-positive); }
.macro-effect[data-tone="attention"] { color:var(--color-attention); }
.macro-effect[data-tone="unknown"] { color:var(--color-text-muted); }
.macro-effect-detail { font-size:.8125rem; line-height:1.6; color:var(--color-text); margin:2px 0 5px; }
.macro-driver-evidence { display:block; padding-top:6px; border-top:1px solid var(--color-border); }
.macro-metric-label { display:block; font-size:.8125rem; color:var(--color-text-muted); line-height:1.6; }
.macro-metric-label b { font-weight:600; color:var(--color-text); }
.macro-metric-value { max-width:100%; }
.macro-dimension-verdict,.macro-dimension small { display:block; font-size:.8125rem; color:var(--color-text-muted); line-height:1.5; }
.macro-policy,.macro-related-reading { border-top:1px solid var(--color-border); margin-top:3px; padding-top:4px; font-size:.8125rem; color:var(--color-text-muted); }
.macro-impact { padding:4px 0; border-bottom:1px solid var(--color-border); }
.macro-impact:last-child { border:0; }
.macro-impact > div { display:flex; flex-wrap:wrap; align-items:center; gap:0 8px; }
.macro-impact strong { flex:1 1 5em; font-size:.9375rem; }
.macro-impact nav { display:flex; flex-wrap:wrap; gap:0 8px; max-width:100%; }
.macro-impact nav a { min-width:44px; min-height:44px; display:inline-flex; align-items:center; font-weight:650; }
.macro-impact p { margin:4px 0; font-size:.875rem; }
.macro-footnote { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0 8px; font-size:.8125rem; color:var(--color-text-muted); }
.macro-health { display:flex; flex-wrap:wrap; gap:8px; }
.macro-health > div { flex:1 1 5rem; display:flex; gap:6px; align-items:center; font-size:.8125rem; }
.macro-health .macro-icon { width:18px; height:18px; }
.macro-health small { display:block; font-size:.8125rem; color:var(--color-text-muted); }
.macro-data h2 { font-size:1rem; }
.macro-data-actions { display:flex; gap:8px; }
.macro-action { min-height:44px; display:inline-flex; align-items:center; font-size:.875rem; }
.macro-evidence-dialog { color:var(--color-text); background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-card); width:min(512px,calc(100vw - 20px)); max-height:calc(100dvh - 40px); padding:0; box-sizing:border-box; overscroll-behavior:contain; }
.macro-evidence-dialog::backdrop { background:rgb(20 25 32 / .4); }
.macro-evidence-dialog > header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 16px; background:color-mix(in srgb,var(--color-surface) 93%,transparent); backdrop-filter:blur(16px); position:sticky; top:0; border-bottom:1px solid var(--color-border); z-index:1; }
#macroEvidenceBody { padding:4px 16px 16px; font-size:.875rem; overflow-wrap:anywhere; }
#macroEvidenceBody > article { border-top:1px solid var(--color-border); margin-top:16px; padding-top:16px; }
#macroEvidenceBody svg { display:block; width:100%; height:50px; color:var(--color-accent); }
#macroEvidenceBody p { margin:10px 0; }

.macro-event-metrics small { flex-basis:100%; color:var(--color-text-muted); font-size:.8125rem; }
.macro-market { margin:0; padding:0; }
.macro-market p { margin:6px 0; font-size:.875rem; }
.macro-market table { width:100%; border-collapse:collapse; font-size:.9375rem; font-variant-numeric:tabular-nums; }
.macro-market caption { text-align:left; font-size:.8125rem; color:var(--color-text-muted); padding-top:14px; }
.macro-market th,.macro-market td { padding:11px 2px; text-align:right; border-bottom:1px solid var(--color-border); }
.macro-market td[data-sign="positive"] { color:var(--color-positive); }
.macro-market td[data-sign="negative"] { color:var(--color-negative); }
.macro-market th:first-child { text-align:left; }
.macro-market thead th { font-size:.8125rem; font-weight:500; color:var(--color-text-muted); }
.macro-market-signals { display:grid; gap:8px; padding:4px 0 12px; border-bottom:1px solid var(--color-border); }
.macro-market-signals strong { font-size:.875rem; }
.macro-market-signals span { display:block; font-size:.8125rem; color:var(--color-text-muted); margin-top:2px; }
.macro-page .macro-market-direction { display:block; width:100%; padding:2px 0; border:0; border-radius:0; text-align:left; color:var(--color-text); background:transparent; }
.macro-market-direction small { display:block; font-size:.8125rem; font-weight:400; line-height:1.5; color:var(--color-text-muted); }
.macro-reaction { padding:10px 0; border-top:1px solid var(--color-border); }
.macro-reaction-values { display:grid; gap:6px; font-size:.875rem; margin-top:8px; }
.macro-reaction-values span { display:flex; justify-content:space-between; gap:8px; }
#macroEvidenceBody a { display:inline-flex; min-height:44px; align-items:center; }
@media (prefers-reduced-motion:no-preference) { .macro-page button:active { transform:scale(.98); } }
.macro-page button:active { background-color:var(--color-surface-raised); }
@media (prefers-reduced-transparency:reduce), (prefers-contrast:more) { .macro-evidence-dialog > header { background:var(--color-surface); backdrop-filter:none; } }

.macro-grade-title { margin:0; font-size:.875rem; font-weight:600; }
.macro-page .macro-thesis[data-tone="risk"] .macro-grade { color:var(--color-negative); }
.macro-page .macro-thesis[data-tone="support"] .macro-grade { color:var(--color-positive); }
.macro-page .macro-thesis[data-tone="unknown"] .macro-grade { color:var(--color-attention); }
.macro-uses { margin:12px 0 8px; padding-top:8px; border-top:1px solid var(--color-border); font-size:.875rem; line-height:1.55; }
.macro-uses > div { display:grid; grid-template-columns:4.2em minmax(0,1fr); gap:6px; margin:5px 0; }
.macro-uses dt { font-weight:600; }
.macro-uses dd { margin:0; color:var(--color-text-muted); }
.macro-page .macro-condition-summary button { width:100%; text-align:left; border:0; border-radius:0; background:transparent; padding:4px 0; color:var(--color-text); min-height:48px; }
.macro-condition-summary small { font-size:.8125rem; font-weight:400; color:var(--color-text-muted); line-height:1.5; }
.macro-condition-summary { margin:4px 0; }
.macro-condition-summary button { display:grid; grid-template-columns:minmax(0,6.5em) minmax(0,1fr); align-items:center; gap:8px; font-size:.875rem; line-height:1.5; }
.macro-condition-target { display:grid; gap:2px; }
.macro-condition-items { display:grid; gap:3px; min-width:0; }
.macro-condition-summary button+button { border-top:1px solid var(--color-border); }
.macro-condition-summary .macro-key-condition { display:flex; justify-content:space-between; gap:8px; font-size:.8125rem; }
.macro-key-condition>span { min-width:0; }
.macro-key-condition>small { flex-shrink:0; }
.macro-changes-quiet { padding-block:6px 10px; }
.macro-changes-quiet .macro-section-head { margin-block:0; }
.macro-changes-quiet .macro-empty { margin:0; font-size:.875rem; font-weight:400; color:var(--color-text-muted); }

/* M207: verdict first, on the five formal levels; today's gap is secondary. */
.macro-page .macro-proof-link { flex-shrink:0; min-height:var(--touch-target); padding:0 4px; border:0; background:transparent; color:var(--color-accent); font:inherit; font-size:.875rem; cursor:pointer; }
.macro-verdict { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px; margin:0 0 10px; }
.macro-verdict strong { font-size:1.75rem; line-height:1.2; font-weight:700; letter-spacing:-.02em; color:var(--color-text); }
.macro-verdict span { font-size:.8125rem; color:var(--color-text-muted); }
.macro-verdict[data-tone="support"] strong { color:var(--color-positive); }
.macro-verdict[data-tone="risk"] strong { color:var(--color-negative); }
.macro-verdict[data-tone="unknown"] strong { color:var(--color-attention); }
.macro-scale { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:3px; margin:0 0 12px; padding:0; list-style:none; }
.macro-scale li { position:relative; min-width:0; padding-top:10px; text-align:center; font-size:.75rem; line-height:1.3; color:var(--color-text-muted); }
.macro-scale li::before { content:''; position:absolute; top:0; left:0; right:0; height:6px; border-radius:3px; background:var(--color-border); }
.macro-scale li[data-tone="risk"]::before { background:color-mix(in srgb, var(--color-negative) 30%, transparent); }
.macro-scale li[data-tone="support"]::before { background:color-mix(in srgb, var(--color-positive) 30%, transparent); }
.macro-scale li[aria-current="true"] { color:var(--color-text); font-weight:650; }
.macro-scale li[aria-current="true"]::before { background:var(--color-text); }
.macro-scale li[aria-current="true"][data-tone="risk"]::before { background:var(--color-negative); }
.macro-scale li[aria-current="true"][data-tone="support"]::before { background:var(--color-positive); }
.macro-pending-note { margin:0 0 12px; padding:8px 10px; border-radius:var(--radius-control); background:var(--color-surface-raised); font-size:.8125rem; line-height:1.55; color:var(--color-text-muted); }
.macro-hero-states { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin:0 0 8px; }
/* M209: today's tiles sit right under the verdict. */
.macro-today [data-indicator-status] { display: block; margin: calc(var(--space-1) * -1) 0 var(--space-1); }
.macro-state-plain { display:block; margin-top:2px; font-style:normal; font-size:.8125rem; line-height:1.5; color:var(--color-text-muted); }
.macro-evidence-dialog .macro-states { grid-template-columns:1fr; }
.macro-evidence-dialog .macro-state { align-items:flex-start; }
.macro-thesis .macro-subtitle { white-space:pre-line; }
/* M237: four questions, portfolio line, position/rotation card, folded detail. */
.macro-questions { list-style:none; margin:4px 0 12px; padding:0; border-top:1px solid var(--color-border); }
.macro-questions li { display:grid; grid-template-columns:4.5rem 1fr; gap:8px; padding:10px 0; border-bottom:1px solid var(--color-border); }
.macro-q-label { font-size:.8125rem; color:var(--color-text-muted); padding-top:2px; }
.macro-q-body strong { display:flex; align-items:baseline; justify-content:space-between; gap:8px; font-size:.9375rem; line-height:1.45; }
.macro-q-body strong em { font-style:normal; font-size:.75rem; font-weight:600; padding:0 6px; border-radius:4px; flex:none; }
.macro-q-body small { display:block; margin-top:2px; font-size:.8125rem; line-height:1.5; color:var(--color-text-muted); overflow-wrap:anywhere; }
.macro-questions li[data-tone="risk"] strong { color:var(--color-negative); }
.macro-questions li[data-tone="support"] strong { color:var(--color-positive); }
.macro-questions li:is([data-tone="attention"],[data-tone="unknown"]) strong { color:var(--color-attention); }
.macro-questions li[data-tone="risk"] em { background:color-mix(in srgb,var(--color-negative) 12%,transparent); }
.macro-questions li[data-tone="support"] em { background:color-mix(in srgb,var(--color-positive) 12%,transparent); }
.macro-questions li:is([data-tone="attention"],[data-tone="unknown"]) em { background:color-mix(in srgb,var(--color-attention) 12%,transparent); }
.macro-portfolio-line { margin:0 0 12px; padding:10px 12px; border-radius:var(--radius-control); background:var(--color-surface-raised); font-size:.875rem; line-height:1.5; }
.macro-portfolio-line b { display:block; font-size:.75rem; color:var(--color-text-muted); font-weight:600; margin-bottom:2px; }
.macro-portfolio-line[data-tone="risk"] { box-shadow:inset 3px 0 0 var(--color-negative); }
.macro-portfolio-line[data-tone="attention"] { box-shadow:inset 3px 0 0 var(--color-attention); }
.macro-portfolio-line small { display:block; margin-top:2px; font-size:.8125rem; color:var(--color-text-muted); overflow-wrap:anywhere; }
.macro-position { width:100%; border-collapse:collapse; font-size:.875rem; font-variant-numeric:tabular-nums; }
.macro-position th,.macro-position td { padding:6px 0; text-align:right; border-bottom:1px solid var(--color-border); font-weight:400; }
.macro-position thead th { font-size:.75rem; color:var(--color-text-muted); }
.macro-position :is(thead th,tbody th):first-child { text-align:left; }
.macro-position tbody th { font-weight:600; }
.macro-position td[data-tone="risk"] { color:var(--color-negative); font-weight:600; }
.macro-rotation { margin:10px 0 4px; font-size:.875rem; }
.macro-rotation strong { display:block; }
.macro-rotation[data-tone="risk"] strong { color:var(--color-negative); }
.macro-rotation[data-tone="support"] strong { color:var(--color-positive); }
.macro-rotation small { display:block; color:var(--color-text-muted); font-size:.8125rem; line-height:1.5; }
.macro-more { margin-bottom:12px; }
.macro-more > summary { list-style:none; cursor:pointer; min-height:44px; display:flex; align-items:center; justify-content:space-between; padding:0 16px; margin-bottom:12px; border:1px solid var(--color-border); border-radius:calc(var(--radius-card) + .25rem); background:var(--color-surface); color:var(--color-accent); font-size:.9375rem; }
.macro-more > summary::-webkit-details-marker { display:none; }
.macro-more > summary::after { content:'›'; transition:transform .15s; }
.macro-more[open] > summary::after { transform:rotate(90deg); }
.macro-more > summary:focus-visible { outline:2px solid var(--color-accent); outline-offset:3px; }
