/* Weekly market review: eight full-width sections above the article text. Same tokens as article.css; hairlines,
   no shadows, tabular numerals. Signal colors match the chart roles in tools/site/charts.mjs. */
.review { --up:#40ddb4; --dn:#ff668b; --mid:#abb9dc; margin:8px 0 56px; font-variant-numeric:tabular-nums }
.review section, .rv-hero { padding:40px 0; border-top:1px solid var(--line) }
.rv-hero { border-top:0; padding-top:12px }
.rv-hero h1 { max-width:14ch; margin:8px 0 18px }
.rv-lead { font-size:21px; color:var(--muted); max-width:780px; margin:0 0 14px }
.rv-meta, .rv-label, .rv-legend, .rv-fine, .rv-name, .review figcaption { font-size:13px; color:var(--muted); letter-spacing:.04em }
.rv-label { color:var(--accent); text-transform:uppercase; margin:0 0 10px }
.review h2 { font-size:clamp(26px,3.4vw,40px); letter-spacing:-.01em; margin:0 0 26px; max-width:24ch }
.review figure { margin:0 }
.review figure img, .review svg { display:block; width:100%; height:auto; border-radius:13px }
.review figcaption { margin-top:10px; letter-spacing:0 }
.rv-body { font-size:18px; max-width:780px; margin:22px 0 0 }
/* 01 · four numbers */
.rv-tiles { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); border-radius:13px; overflow:hidden }
.rv-tile { padding:22px 20px 18px; border-left:1px solid var(--line) }
.rv-tile:first-child { border-left:0 }
.rv-tile p { margin:0 }
.rv-name { margin-bottom:8px }
.rv-big { font-size:clamp(30px,3.6vw,44px); font-weight:700; line-height:1.1 }
.rv-big.up { color:var(--up) } .rv-big.dn { color:var(--dn) } .rv-big.mid { color:var(--ink) }
.rv-close { color:var(--muted); font-size:14px; margin:4px 0 12px!important }
.rv-tile svg { width:120px; height:36px; border-radius:0 }
.rv-bars { margin-top:22px }
/* 02 · the Fed */
.rv-fed { display:grid; grid-template-columns:2fr 1fr; gap:32px; align-items:start }
.rv-huge { font-size:clamp(64px,11vw,132px); font-weight:200; line-height:1; letter-spacing:-.03em; margin:0 0 6px }
.rv-rows { list-style:none; margin:0; padding:24px; border:1px solid var(--line); border-radius:13px; background:var(--panel) }
.rv-rows li { padding:14px 0; border-top:1px solid var(--line); font-size:17px }
.rv-rows li:first-child { border-top:0; padding-top:0 }
/* 03 · two prices */
.rv-pair { display:grid; grid-template-columns:1fr 1fr; gap:24px }
/* 04 · sectors */
.rv-heat { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(12,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:13px; overflow:hidden }
.rv-heat li { display:flex; flex-direction:column; justify-content:space-between; min-height:112px; padding:14px 16px; background:var(--panel) }
.rv-heat li { grid-column:span 3 } .rv-heat li:nth-child(-n+3) { grid-column:span 4 } /* 3 + 4 + 4 cells */
.rv-heat span { font-size:14px; color:var(--ink) }
.rv-heat b { font-size:24px; align-self:flex-end }
.rv-heat .up1 { background:#0f2f2a } .rv-heat .up2 { background:#0c4038 } .rv-heat .up3 { background:#0a5446 }
.rv-heat .dn1 { background:#2f1a25 } .rv-heat .dn2 { background:#44202f } .rv-heat .dn3 { background:#5c2739 }
.rv-heat .up1 b, .rv-heat .up2 b, .rv-heat .up3 b { color:var(--up) } .rv-heat .dn1 b, .rv-heat .dn2 b, .rv-heat .dn3 b { color:var(--dn) }
.rv-heat .mid0 b { color:var(--mid) }
.rv-legend { margin:14px 0 0 }
/* 05 · timeline */
.rv-notes { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px 24px; margin:22px 0 0 }
.rv-notes div { border-left:2px solid var(--accent); padding-left:12px }
.rv-notes dt { font-size:13px; color:var(--muted); letter-spacing:.04em }
.rv-notes dd { margin:4px 0 0; font-size:15px }
/* 06 · questions */
.rv-split { display:grid; grid-template-columns:2fr 3fr; gap:32px; align-items:start }
.rv-q { margin:0 0 22px; padding:0 0 0 1.4em; font-size:21px; line-height:1.5 }
.rv-q li { padding:12px 0; border-top:1px solid var(--line) }
.rv-q li:first-child { border-top:0; padding-top:0 }
.rv-ghost { display:inline-block; padding:12px 18px; border:1px solid var(--accent); border-radius:8px; text-decoration:none; letter-spacing:.04em }
.rv-split figure img { border:1px solid var(--line) }
/* 07 · next */
.rv-s-next { text-align:center }
.rv-s-next h2, .rv-s-next .rv-body { margin-left:auto; margin-right:auto }
.rv-cta { margin:26px 0 14px }
.rv-button { display:inline-block; background:var(--accent); color:#06331f; font-weight:700; padding:14px 30px; border-radius:8px; text-decoration:none }
.rv-table { margin:8px 0 0; font-size:15px } .rv-table summary { cursor:pointer; color:var(--accent) } .rv-table summary:focus-visible { outline:3px solid var(--accent); outline-offset:5px } .rv-table table { border-collapse:collapse; margin-top:12px; font-variant-numeric:tabular-nums }
.rv-table th, .rv-table td { padding:8px 14px 8px 0; border-top:1px solid var(--line); text-align:left } .rv-table td { text-align:right } .rv-table thead th { color:var(--muted); font-weight:500; border-top:0 }
.tags { display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:0 }
.tags li { font-size:14px; color:var(--muted); padding:6px 12px; border:1px solid var(--line); border-radius:999px }
@media(max-width:820px) { .rv-tiles { grid-template-columns:repeat(2,1fr) } .rv-heat li, .rv-heat li:nth-child(-n+3) { grid-column:span 6 } .rv-tile:nth-child(3) { border-left:0 } .rv-tile:nth-child(n+3) { border-top:1px solid var(--line) } .rv-fed, .rv-pair, .rv-split { grid-template-columns:1fr } }
@media(max-width:480px) { .rv-tiles { grid-template-columns:1fr } .rv-tile { border-left:0; border-top:1px solid var(--line) } .rv-tile:first-child { border-top:0 } .review section, .rv-hero { padding:30px 0 } }
