/* Chart frame — 2000×2000 canvas. Classes used by ChartFrame, ChartBadge, ChartLegend, SubtitleBox, Flag. */
.lm-frame,.lm-frame *,.lm-badge,.lm-badge *,.lm-legend,.lm-legend *,.lm-subbox,.lm-flag{box-sizing:border-box}
/* ---------- Frame: 2000×2000 canvas, scaled by .lm-post-stage ---------- */
.lm-post-stage{overflow:hidden;flex:none}
.lm-frame{width:2000px;height:2000px;transform-origin:0 0;background:var(--lm-chart-bg);border:8px solid var(--lm-chart-border);border-radius:0;padding:80px 96px 56px;display:flex;flex-direction:column;font-family:var(--font-chart);color:var(--lm-dark-navy)}
.lm-frame__head{position:relative}
.lm-frame__title{font-family:var(--font-display);font-weight:600;font-size:120px;line-height:1.1;color:var(--lm-chart-title);margin:0;letter-spacing:-.01em;text-wrap:balance}
.lm-frame__head:has(.lm-badge){padding-right:130px}
.lm-frame__head:has(.lm-badge--pair){padding-right:320px}
.lm-frame__kicker{margin-top:28px;font-weight:600;font-size:44px;letter-spacing:.03em;text-transform:uppercase;color:var(--lm-dark-navy)}
.lm-frame__body{flex:1;min-height:0;margin-top:44px;display:flex;flex-direction:column}
.lm-frame__foot{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-top:40px}
.lm-frame__src{font-size:48px;line-height:1.2;font-weight:400;max-width:1180px}
.lm-frame__src b{font-weight:500}
.lm-frame__note{font-size:30px;color:var(--lm-mid-blue);margin-top:6px}
.lm-frame__sig{display:flex;align-items:center;gap:14px;flex:none}

/* ---------- Badge: each flag or icon sits fully inside its own #EFEAE4 circle ---------- */
.lm-badge{flex:none;display:flex;gap:20px}
.lm-frame__head>.lm-badge{position:absolute;top:-24px;right:-56px}
.lm-badge__circle{width:170px;height:170px;border-radius:50%;background:var(--lm-chart-badge);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:none}
.lm-badge__icon{width:120px;height:120px;display:block}
.lm-flag{display:block;border-radius:50%;border:2.5px solid var(--lm-dark-navy);box-sizing:border-box;background:var(--lm-cream)}

/* ---------- Legend + subtitle box ---------- */
.lm-legend{border:2.5px solid var(--lm-dark-navy);border-radius:10px;background:var(--lm-cream);padding:30px 40px;display:flex;flex-direction:column;gap:22px}
.lm-legend__title{font-weight:600;font-size:40px;color:var(--lm-dark-navy);text-align:center}
.lm-legend__item{display:flex;align-items:center;gap:16px;font-size:38px;font-weight:500}
.lm-legend__item i{width:44px;height:44px;border:2.5px solid var(--lm-dark-navy);border-radius:8px;flex:none}
.lm-subbox{align-self:center;border:2.5px solid var(--lm-dark-navy);border-radius:10px;background:var(--lm-cream);padding:18px 32px;font-weight:600;font-size:42px;line-height:1.25;color:var(--lm-dark-navy);margin-bottom:24px}
/* Value labels: a cream halo so grid lines never run through the numbers */
.lm-frame svg text.lm-val{paint-order:stroke;stroke:var(--lm-cream);stroke-width:14px;stroke-linejoin:round}
