:root {
  --md-navy: #0b2447;
  --md-blue: #155eef;
  --md-green: #00a676;
  --md-cyan: #08b8d8;
  --md-ink: #122033;
  --md-muted: #687386;
  --md-bg: #f4f7fb;
  --md-border: #e1e8f0;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--md-ink); background: var(--md-bg); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("assets/world-map-pattern.svg");
  background-repeat: repeat-x;
  background-position: 0 52%;
  background-size: 1180px auto;
  opacity: .075;
  animation: world-map-drift 82s linear infinite;
  will-change: background-position;
}
.dashboard-app {
  position: relative;
  z-index: 1;
  background: transparent;
}
@keyframes world-map-drift {
  from { background-position: 0 52%; }
  to { background-position: -1180px 52%; }
}
button, a { -webkit-tap-highlight-color: transparent; }
.page-shell { width: min(1800px, 100%); margin-inline: auto; padding-inline: clamp(.85rem, 2vw, 2rem); }

.navbar { min-height: 74px; padding: 0; box-shadow: 0 4px 22px rgba(11, 36, 71, .04); }
.navbar .page-shell { padding-top: 0; padding-bottom: 0; }
.navbar-brand { gap: .35rem !important; margin: 0 !important; padding: 0 !important; color: var(--md-navy); }
.brand-mark { width: 72px; height: 72px; margin: 0; padding: 0; object-fit: contain; transform: scale(1.22); transform-origin: center; }
.brand-word { display: inline-flex; align-items: baseline; margin: 0; padding: 0; color: var(--md-navy); font-family: "Aptos Display", "Segoe UI", sans-serif; font-size: 1.78rem; font-weight: 800; letter-spacing: -.055em; line-height: 1; }
.brand-mundi { color: var(--md-navy); }
.brand-data { color: var(--md-green); }
.nav-pills-lite { align-items: center; gap: .15rem; margin-left: clamp(1rem, 4vw, 4rem); }
.nav-pills-lite a, .nav-pills-lite button { padding: .52rem .8rem; color: #586579; background: transparent; border: 0; border-radius: .65rem; font-size: .83rem; font-weight: 750; text-decoration: none; }
.nav-pills-lite a:hover, .nav-pills-lite button:hover, .nav-pills-lite a.active { color: var(--md-blue); background: #edf4ff; }
.nav-controls { min-width: 0; }
.country-select { width: 172px; height: 38px; padding-left: .7rem; color: var(--md-navy); background-color: #fff; border-color: #dce4ee; border-radius: .7rem; font-size: .75rem; font-weight: 750; box-shadow: none; cursor: pointer; }
.country-select:hover { border-color: #aebdce; }
.country-select:focus { border-color: var(--md-blue); box-shadow: 0 0 0 .2rem rgba(21,94,239,.12); }
.language-switcher { display: flex; padding: .2rem; background: #f0f4f8; border: 1px solid #e2e8f0; border-radius: .7rem; }
.lang-btn { min-width: 32px; padding: .3rem .42rem; color: #748095; background: transparent; border: 0; border-radius: .48rem; font-size: .7rem; font-weight: 850; }
.lang-btn.active { color: white; background: var(--md-navy); box-shadow: 0 2px 7px rgba(11,36,71,.2); }
.btn-refresh { display: inline-flex; align-items: center; gap: .45rem; color: white; background: var(--md-blue); border: 0; font-size: .78rem; font-weight: 750; }
.btn-refresh:hover { color: white; background: #0c4fd2; }
.btn-refresh.loading i { animation: spin .7s linear infinite; }
#indicators[aria-busy="true"] .qv2-badge i { animation: spin .7s linear infinite; }

.hero-row { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.hero-row h1 { margin: .15rem 0 .18rem; color: var(--md-navy); font-size: clamp(1.35rem, 2vw, 2rem); font-weight: 850; letter-spacing: -.045em; }
.hero-row p { color: var(--md-muted); font-size: .9rem; }
.eyebrow { display: flex; align-items: center; gap: .5rem; color: var(--md-green); font-size: .65rem; font-weight: 850; letter-spacing: .11em; }
.live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--md-green); box-shadow: 0 0 0 5px rgba(0,166,118,.12); animation: pulse 2s ease-in-out infinite; }
.source-status { min-width: 330px; display: flex; align-items: center; gap: .75rem; padding: .65rem .85rem; text-align: left; background: #e9f7f2; border: 1px solid #caeadf; border-radius: .9rem; }
.source-status:hover { border-color: var(--md-green); box-shadow: 0 .5rem 1.2rem rgba(0,166,118,.08); }
.status-icon { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; color: var(--md-green); background: #fff; border-radius: 50%; font-size: 1.05rem; }
.source-status span:last-child { min-width: 0; display: flex; flex-direction: column; }
.source-status small { color: #3a685a; font-size: .57rem; font-weight: 850; letter-spacing: .1em; }
.source-status strong { font-size: .86rem; }
.source-status em { color: #687a74; font-size: .69rem; font-style: normal; }

.prototype-note { display: flex; align-items: center; gap: .55rem; padding: .55rem .8rem; color: #654d03; background: #fff8df; border: 1px solid #f5df91; border-radius: .75rem; font-size: .75rem; }
.breaking-line { width: 100%; min-width: 0; max-width: 100%; min-height: 46px; display: flex; align-items: center; gap: .8rem; overflow: hidden; padding: .5rem .8rem; color: #361d22; text-align: left; background: linear-gradient(90deg, #fff, #fff6f7); border: 1px solid rgba(220,53,69,.35); border-radius: .8rem; box-shadow: 0 .35rem 1rem rgba(220,53,69,.04); }
.breaking-line:hover { border-color: #dc3545; }
.breaking-line .badge { font-size: .62rem; letter-spacing: .04em; }
.breaking-time { color: #dc3545; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .76rem; font-weight: 850; }
.breaking-source { color: var(--md-muted); font-size: .63rem; font-weight: 850; letter-spacing: .08em; }
.breaking-line strong { min-width: 0; display: block; overflow: hidden; flex: 1 1 0; font-size: .84rem; text-overflow: ellipsis; white-space: nowrap; }
.breaking-action { color: #b42333; font-size: .72rem; font-weight: 800; white-space: nowrap; }

.card { border-radius: 1rem; }
.preopen-strip { background: linear-gradient(100deg, #fff, #f2f6ff); }
.preopen-heading { min-width: 205px; display: flex; align-items: center; gap: .7rem; }
.preopen-heading > span:last-child { display: flex; flex-direction: column; }
.preopen-icon { width: 36px; height: 36px; display: grid; place-items: center; color: var(--md-blue); background: #e7efff; border-radius: .65rem; }
.preopen-heading small, .preopen-value small { color: var(--md-muted); font-size: .56rem; font-weight: 850; letter-spacing: .08em; }
.preopen-heading strong { font-size: .8rem; }
.preopen-value { padding-left: 1rem; border-left: 1px solid var(--md-border); }
.preopen-value { display: flex; flex-direction: column; }
.preopen-value strong { color: var(--md-navy); font-size: .96rem; }
.preopen-value strong span { margin-left: .35rem; font-size: .7rem; }
.preopen-caption { display: flex; align-items: center; gap: .35rem; color: var(--md-muted); font-size: .68rem; }

.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.section-heading > div:first-child > span, .perspective-head > div > span { color: var(--md-green); font-size: .59rem; font-weight: 850; letter-spacing: .11em; }
.section-heading h2, .perspective-head h2 { margin: .1rem 0 0; color: var(--md-navy); font-size: 1rem; font-weight: 850; }
.section-tools { display: flex; align-items: center; gap: .75rem; }
.source-check-inline {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  padding: .34rem .6rem;
  color: #315f51;
  background: #f2faf7;
  border: 1px solid #cfe8df;
  border-radius: .6rem;
  font-size: .7rem;
  line-height: 1;
  white-space: nowrap;
}
.source-check-inline:hover { color: #087a55; border-color: #8fcbb7; background: #eaf7f2; }
.source-check-inline > i:first-child { color: #087a55; font-size: .86rem; }
.source-check-inline > span { font-weight: 800; }
.source-check-inline small { color: #6c757d; font-size: .66rem; }
.source-check-inline > i:last-child { color: #7e948c; font-size: .68rem; }
.market-legend { display: flex; align-items: center; gap: .4rem; color: var(--md-muted); font-size: .66rem; }
.market-legend .dot { width: 7px; height: 7px; border-radius: 50%; }
.market-legend .open { background: var(--md-green); }
.market-legend .divider { width: 1px; height: 14px; margin-inline: .25rem; background: #ccd5e0; }

.market-card { position: relative; overflow: hidden; transition: transform .18s ease, box-shadow .18s ease; }
.market-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, var(--md-blue), var(--md-green)); opacity: 0; transition: opacity .18s ease; }
.market-card:hover, .market-card:focus { transform: translateY(-2px); box-shadow: 0 .8rem 2rem rgba(11,36,71,.12) !important; outline: none; }
.market-card:hover::before, .market-card:focus::before { opacity: 1; }
.market-card .card-body { display: flex; flex-direction: column; min-height: 256px; padding: 1rem; }
.card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: .8rem; }
.asset-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: .72rem; font-size: 1.1rem; }
.asset-icon.dollar { color: #087a55; background: #e4f6ef; }
.asset-icon.ibov { color: #0a58ca; background: #e7f0ff; }
.asset-icon.selic { color: #6941c6; background: #f0eaff; }
.trend { display: inline-flex; align-items: center; gap: .2rem; padding: .3rem .48rem; border-radius: 999px; font-size: .67rem; font-weight: 850; }
.trend.up { color: #067647; background: #e5f6ef; }
.trend.down { color: #b42333; background: #ffe9ec; }
.trend.neutral { color: #5d6879; background: #edf0f4; }
.metric-kicker { margin-bottom: .35rem; color: var(--md-muted); font-size: .59rem; font-weight: 850; letter-spacing: .1em; }
.quote-pair { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.quote-pair div { display: flex; flex-direction: column; }
.quote-pair span, .secondary-quote span { color: var(--md-muted); font-size: .66rem; }
.quote-pair strong { color: var(--md-navy); font-size: clamp(1.1rem, 1.4vw, 1.55rem); letter-spacing: -.045em; white-space: nowrap; }
.single-quote { color: var(--md-navy); font-size: clamp(1.55rem, 2.2vw, 2.15rem); font-weight: 850; letter-spacing: -.055em; line-height: 1.1; }
.single-quote small { color: var(--md-muted); font-size: .66rem; font-weight: 700; letter-spacing: 0; }
.secondary-quote { display: flex; align-items: end; justify-content: space-between; margin-top: .5rem; padding: .5rem .65rem; background: #f7f9fc; border-radius: .6rem; }
.secondary-quote strong { font-size: .8rem; }
.mini-range { display: flex; justify-content: space-between; gap: .5rem; margin-top: .55rem; color: #4d596b; font-size: .66rem; }
.mini-range span { display: flex; flex-direction: column; }
.mini-range small { color: #8791a0; font-size: .54rem; text-transform: uppercase; }
.sparkline { height: 46px; margin-top: auto; }
.sparkline svg { width: 100%; height: 100%; overflow: visible; }
.sparkline .line { fill: none; stroke-width: 2; vector-effect: non-scaling-stroke; }
.sparkline .area { opacity: .12; }
.sparkline.up .line { stroke: var(--md-green); }.sparkline.up .area { fill: var(--md-green); }
.sparkline.down .line { stroke: #dc3545; }.sparkline.down .area { fill: #dc3545; }
.selic-note { display: flex; align-items: center; gap: .4rem; margin-top: .7rem; padding: .48rem .6rem; color: #5d3d98; background: #f4f0ff; border-radius: .6rem; font-size: .66rem; }
.card-link { display: flex; align-items: center; justify-content: space-between; width: 100%; margin-top: .45rem; padding: .5rem 0 0; color: var(--md-blue); background: transparent; border: 0; border-top: 1px solid #edf0f4; font-size: .66rem; font-weight: 800; }
.card-link:hover { color: #0a4fd0; }

/* Market cards - dense newsroom treatment */
.primary-grid > :nth-child(3) { order: 4; }
.primary-grid > :nth-child(4) { order: 3; }
.quote-card-v2 { overflow: hidden; border: 1px solid #e4e9ef !important; border-radius: 1rem; background: #fff; box-shadow: 0 .35rem 1rem rgba(15,35,65,.07) !important; transition: transform .18s ease, box-shadow .18s ease; }
.quote-card-v2:hover { transform: translateY(-2px); box-shadow: 0 .9rem 2rem rgba(11,36,71,.11) !important; }
.qv2-body { min-height: 330px; display: flex; flex-direction: column; padding: 1.05rem; }
.qv2-head { min-width: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; margin-bottom: .85rem; }
.qv2-identity { min-width: 0; display: flex; align-items: center; gap: .75rem; }
.qv2-identity > span:last-child { min-width: 0; }
.qv2-identity h3 { overflow: hidden; margin: 0; color: #20262d; font-size: 1.06rem; font-weight: 850; letter-spacing: -.025em; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.qv2-identity small { display: block; margin-top: .15rem; color: #6d7783; font-size: .67rem; }
.qv2-icon { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; border-radius: .72rem; font-size: 1.13rem; }
.qv2-icon.dollar { color: #087a55; background: #dff2ea; }
.qv2-icon.ibov { color: #0a58ca; background: #dbe9ff; }
.qv2-icon.inflation { color: #7347c4; background: #eee7ff; }
.qv2-icon.rates { color: #735b00; background: #fff3c9; }
.qv2-badge { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .3rem; padding: .46rem .8rem; color: #fff; border-radius: 999px; font-size: .66rem; font-weight: 850; white-space: nowrap; }
.qv2-badge.positive { color: #fff !important; background: #168657; }
.qv2-badge.negative { color: #fff !important; background: #e63343; }
.qv2-badge.neutral { color: #4e5965 !important; background: #e9edf2; }
.qv2-badge.official { color: #fff !important; padding-inline: .9rem; background: #24282d; }

.qv2-chart.neutral .line { stroke: #98a2ad; }
.qv2-chart.neutral .area { fill: rgba(152, 162, 173, .1); }
.source-check-inline.is-loading i:first-child { animation: md-spin .8s linear infinite; }
.source-check-inline.is-error { color: #a15c00; border-color: #e4c27e; background: #fff8e8; }
@keyframes md-spin { to { transform: rotate(360deg); } }
.qv2-label { display: block; margin-bottom: .3rem; color: #6d7681; font-size: .56rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.qv2-dual { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: .85rem; }
.qv2-dual > div { min-width: 0; }
.qv2-dual > div + div { padding-left: 1rem; border-left: 1px solid #dfe4ea; }
.qv2-dual strong { display: block; color: #10291e; font-size: clamp(1.65rem,2.15vw,2.35rem); font-weight: 850; letter-spacing: -.055em; line-height: 1; white-space: nowrap; }
.qv2-dual strong small { color: #707986; font-size: .66rem; font-weight: 750; letter-spacing: 0; }
.qv2-main-value { color: #10291e; font-size: clamp(1.75rem,2.25vw,2.4rem); font-weight: 850; letter-spacing: -.055em; line-height: 1; white-space: nowrap; }
.qv2-main-value > small { margin-left: .25rem; color: #707986; font-size: .65rem; font-weight: 750; letter-spacing: 0; }
.qv2-session-loss { margin-top: .25rem; color: #e12639; font-size: .7rem; font-weight: 850; }
.qv2-session-loss.is-positive { color: #087a55; }
.qv2-equivalent { margin-top: .3rem; color: #737d89; font-size: .7rem; }
.qv2-description { min-height: 31px; margin: .38rem 0 0; color: #737d89; font-size: .67rem; line-height: 1.35; }
.qv2-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .48rem; margin-top: .85rem; }
.qv2-stats > div { min-width: 0; min-height: 54px; padding: .64rem .35rem; text-align: center; background: linear-gradient(180deg,#fafbfc,#f5f7f9); border: 1px solid #dfe4ea; border-radius: .66rem; }
.qv2-stats span,.qv2-stats strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qv2-stats span { margin-bottom: .3rem; color: #727c87; font-size: .47rem; font-weight: 900; letter-spacing: .035em; text-transform: uppercase; }
.qv2-stats strong { color: #1f2b34; font-size: .7rem; }
.qv2-chart { height: 98px; margin-top: auto; padding-top: .65rem; }
.qv2-chart svg { display: block; width: 100%; height: 100%; overflow: visible; }
.qv2-chart .line { fill: none; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.qv2-chart .area { opacity: .08; }
.qv2-chart.positive .line { stroke: #138a5c; }.qv2-chart.positive .area { fill: #138a5c; }
.qv2-chart.negative .line { stroke: #ef334a; }.qv2-chart.negative .area { fill: #ef334a; }
.qv2-rate-note { display: flex; gap: .5rem; margin-top: .85rem; padding: .7rem .75rem; color: #765b16; background: #fff3c8; border: 1px solid #ffe59a; border-radius: .65rem; font-size: .65rem; line-height: 1.4; }
.qv2-rate-note i { flex: 0 0 auto; }
.qv2-decision { display: flex; align-items: center; margin-top: .7rem; color: #68737f; font-size: .63rem; }
.qv2-decision > i { margin-right: .3rem; }
.qv2-footer { min-height: 40px; display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .55rem 1rem; color: #65717d; background: #fff; border-top: 1px solid #dfe3e8; font-size: .66rem; }
.qv2-footer > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qv2-footer i { margin-right: .24rem; }
.qv2-footer button { flex: 0 0 auto; padding: 0; color: #4e5965; background: transparent; border: 0; font-size: .66rem; white-space: nowrap; }
.qv2-footer button:hover { color: var(--md-blue); }

.perspective-panel { overflow: hidden; }
.perspective-head { min-height: 55px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem 1rem; background: linear-gradient(90deg, #eefaf6, #fff); border-bottom: 1px solid var(--md-border); }
.perspective-head p { margin: 0; color: var(--md-muted); font-size: .68rem; }
.perspective-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.perspective-item { min-width: 0; min-height: 112px; display: flex; align-items: flex-start; gap: .55rem; padding: .85rem .7rem; color: var(--md-ink); text-align: left; background: white; border: 0; border-right: 1px solid var(--md-border); }
.perspective-item:last-child { border-right: 0; }
.perspective-item:hover { background: #f7fbfa; }
.perspective-item > i { width: 29px; height: 29px; flex: 0 0 auto; display: grid; place-items: center; color: var(--md-green); background: #e7f7f1; border-radius: .55rem; }
.perspective-item > span { min-width: 0; display: flex; flex-direction: column; }
.perspective-item small { overflow: hidden; color: var(--md-muted); font-size: .49rem; font-weight: 850; letter-spacing: .06em; text-overflow: ellipsis; white-space: nowrap; }
.perspective-item strong { overflow: hidden; margin-top: .08rem; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.perspective-item b { margin-top: .28rem; color: var(--md-navy); font-size: 1.07rem; letter-spacing: -.035em; white-space: nowrap; }
.perspective-item b small { display: inline; font-size: .54rem; letter-spacing: 0; }
.perspective-item em { margin-top: .25rem; font-size: .57rem; font-style: normal; font-weight: 750; }
.positive { color: #087a55; }.negative { color: #b42333; }.neutral { color: var(--md-muted); }

.site-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem .15rem; color: var(--md-muted); font-size: .64rem; }
.site-footer > div { display: flex; align-items: center; gap: .35rem; }
.site-footer img { object-fit: contain; }
.site-footer > div span { color: var(--md-navy); font-weight: 850; }
.site-footer > div small::before { content: "-"; margin-right: .35rem; }

.modal-content { border: 0; border-radius: 1rem; box-shadow: 0 1.5rem 5rem rgba(11,36,71,.22); }
.modal-header { padding: 1rem 1.25rem; }
.modal-eyebrow { display: block; color: var(--md-green); font-size: .58rem; font-weight: 850; letter-spacing: .1em; }
.sources-modal-content { overflow: hidden; border: 1px solid #dfe9e5; background: #fbfdfc; }
.sources-modal-header { padding: 1.05rem 1.25rem; background: linear-gradient(115deg, #eff9f5 0%, #fff 58%); border-bottom: 1px solid #dfe9e5; }
.sources-modal-title { display: flex; align-items: center; gap: .75rem; }
.sources-modal-title > span:last-child { min-width: 0; }
.sources-modal-symbol { width: 42px; height: 42px; display: grid; flex: 0 0 42px; place-items: center; color: #087a55; background: #dff3eb; border: 1px solid #bfe1d5; border-radius: .75rem; font-size: 1.05rem; }
.sources-modal-title h2 { margin-top: .12rem; color: #12231d; font-weight: 850; letter-spacing: -.025em; }
.sources-modal-body { padding: 1rem 1.25rem 1.2rem; }
.source-validation-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; margin-bottom: .75rem; }
.source-validation-overview > div { min-width: 0; display: flex; align-items: center; gap: .55rem; padding: .65rem .7rem; background: #fff; border: 1px solid #dfe9e5; border-radius: .72rem; }
.source-validation-overview i { width: 29px; height: 29px; display: grid; flex: 0 0 29px; place-items: center; color: #087a55; background: #e6f5ef; border-radius: .5rem; }
.source-validation-overview span { min-width: 0; display: flex; flex-direction: column; }
.source-validation-overview small { color: #72847d; font-size: .48rem; font-weight: 850; letter-spacing: .08em; }
.source-validation-overview strong { overflow: hidden; margin-top: .08rem; color: #173c31; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.source-validation-alert { display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; gap: .68rem; margin-bottom: .85rem; padding: .72rem .78rem; color: #28473e; background: #eff8f4; border: 1px solid #cce6dc; border-radius: .78rem; }
.source-validation-alert.alert-warning { color: #6d5312; background: #fff7dc; border-color: #f1d782; }
.source-validation-icon-wrap { width: 38px; height: 38px; display: grid; place-items: center; color: #087a55; background: #fff; border: 1px solid rgba(8, 122, 85, .16); border-radius: .65rem; font-size: 1rem; }
.source-validation-alert.alert-warning .source-validation-icon-wrap { color: #a56a00; border-color: rgba(165, 106, 0, .2); }
.source-validation-copy { min-width: 0; display: flex; flex-direction: column; gap: .08rem; }
.source-validation-copy strong { font-size: .76rem; }
.source-validation-copy small { color: inherit; font-size: .66rem; line-height: 1.4; opacity: .82; }
.source-validation-copy small,
.source-policy span { overflow-wrap: anywhere; }
.source-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.source-list > div { min-width: 0; min-height: 118px; position: relative; display: flex; align-items: flex-start; flex-direction: column; gap: .6rem; padding: .78rem; background: #fff; border: 1px solid #dfe9e5; border-radius: .78rem; transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease; }
.source-list > div:hover { transform: translateY(-1px); border-color: #bad9ce; box-shadow: 0 8px 18px rgba(18, 35, 29, .06); }
.source-list p { min-width: 0; display: flex; flex-direction: column; margin: 0; }
.source-list strong { color: #173c31; font-size: .72rem; }
.source-list small { margin-top: .14rem; color: var(--md-muted); font-size: .62rem; line-height: 1.4; }
.source-card-number { position: absolute; top: .72rem; right: .72rem; color: #9aacA5; font-family: ui-monospace, Consolas, monospace; font-size: .5rem; font-weight: 800; }
.source-badge { min-width: 44px; height: 28px; display: inline-grid; place-items: center; padding-inline: .55rem; color: white; border-radius: .45rem; font-size: .55rem; font-weight: 900; letter-spacing: .035em; }
.source-badge.b3 { background: #164f91; }.source-badge.bcb { background: #07956c; }.source-badge.ibge { background: #d97706; }
.source-policy { display: flex; align-items: flex-start; gap: .45rem; margin: .85rem 0 0; padding: .62rem .72rem; color: #61736c; background: #f1f5f3; border-radius: .62rem; font-size: .64rem; line-height: 1.45; }
.source-policy i { flex: 0 0 auto; margin-top: .05rem; color: #087a55; }
@media (max-width: 767.98px) {
  .sources-modal-header { padding: .85rem 1rem; }
  .sources-modal-symbol { width: 36px; height: 36px; flex-basis: 36px; }
  .sources-modal-body { padding: .8rem 1rem 1rem; }
  .source-validation-overview { grid-template-columns: 1fr; gap: .4rem; }
  .source-validation-overview > div { padding: .48rem .55rem; }
  .source-list { grid-template-columns: 1fr; gap: .45rem; }
  .source-list > div { min-height: 0; display: grid; grid-template-columns: auto 1fr; align-items: center; padding: .62rem; }
  .source-list p { grid-column: 2; }
}
@media (max-width: 575.98px) {
  #sourcesModal { padding-right: 0 !important; }
  #sourcesModal .modal-dialog { width: auto; max-width: calc(100vw - .8rem); margin: .4rem; }
  .sources-modal-content { width: 100%; max-height: calc(100dvh - .8rem); }
  .sources-modal-header { position: relative; padding-right: 3rem; }
  .sources-modal-header .btn-close { position: absolute; top: 1rem; right: 1rem; }
  .sources-modal-title { min-width: 0; gap: .55rem; }
  .sources-modal-title h2 { font-size: 1.05rem; line-height: 1.18; }
  .sources-modal-title .modal-eyebrow { font-size: .5rem; }
  .source-validation-alert { grid-template-columns: 32px minmax(0, 1fr); gap: .55rem; }
  .source-validation-icon-wrap { width: 32px; height: 32px; }
}

.footer-seo-link {
  align-self: center;
  color: #355e52;
  font-size: .66rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.footer-seo-links { grid-column: 2; display: flex; align-items: center; gap: .7rem; min-width: 0; }
.footer-seo-link:hover,
.footer-seo-link:focus-visible { color: #08785b; text-decoration: underline; }
@media (max-width: 1100px) { .footer-seo-links { display: none; } }
.event-panel { background: #fff0f2; }
.timeline { overflow: hidden; background: rgba(255,255,255,.75); border-radius: .75rem; }
.timeline > div { display: flex; gap: .8rem; padding: .85rem; border-bottom: 1px solid #eedadd; }
.timeline > div:last-child { border-bottom: 0; }
.timeline time { color: #dc3545; font-family: ui-monospace, monospace; font-weight: 850; }
.timeline span { display: flex; flex-direction: column; }
.timeline strong { font-size: .78rem; }.timeline small { color: var(--md-muted); font-size: .68rem; }
.indicator-explain { display: flex; gap: .7rem; padding: .8rem; color: #084298; background: #eaf2ff; border-radius: .7rem; font-size: .8rem; }
.indicator-explain i { flex: 0 0 auto; }

@keyframes pulse { 50% { box-shadow: 0 0 0 8px rgba(0,166,118,.02); } }
@keyframes spin { to { transform: rotate(360deg); } }

@media (max-width: 1199.98px) {
  .nav-pills-lite { display: none !important; }
  .perspective-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .perspective-item:nth-child(3) { border-right: 0; }
  .perspective-item:nth-child(-n+3) { border-bottom: 1px solid var(--md-border); }
}
@media (max-width: 767.98px) {
  body { overflow-x: hidden; }
  .navbar .page-shell { flex-wrap: wrap; padding-bottom: .55rem; }
  .nav-controls { width: 100%; justify-content: space-between; }
  .country-select { min-width: 0; flex: 1 1 auto; width: auto; }
  .hero-row { align-items: stretch; flex-direction: column; gap: .8rem; }
  .source-status { min-width: 0; width: 100%; }
  .breaking-source, .breaking-action { display: none; }
  .preopen-heading { width: 100%; }
  .preopen-value { flex: 1; }
  .preopen-caption { width: 100%; margin-left: 0 !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .market-legend { display: none; }
  .section-tools { margin-left: auto; }
  .source-check-inline small { display: none; }
  .perspective-head { align-items: flex-start; flex-direction: column; }
  .perspective-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .perspective-item, .perspective-item:nth-child(3) { border-right: 1px solid var(--md-border); border-bottom: 1px solid var(--md-border); }
  .perspective-item:nth-child(even) { border-right: 0; }
  .perspective-item:nth-last-child(-n+2) { border-bottom: 0; }
  .site-footer { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 420px) {
  .page-shell { padding-inline: .65rem; }
  .navbar .page-shell { flex-wrap: wrap; }
  .navbar-brand { margin-right: .2rem; }
  .brand-word { font-size: 1.24rem; }
  .brand-mark { width: 50px; height: 50px; }
  .btn-refresh { display: none; }
  .language-switcher { margin-left: auto; }
  .lang-btn { min-width: 27px; padding: .25rem .3rem; }
  .prototype-note { align-items: flex-start; }
  .breaking-line { min-width: 0; }
  .perspective-item > i { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  body::before { animation: none !important; background-position: center 52%; }
}

/* Visual system aligned with Mercado Agora */
:root {
  --md-navy: #12231d;
  --md-green: #087a55;
  --md-ink: #12231d;
  --md-muted: #6c757d;
  --md-bg: #f8f9fa;
  --md-border: #e9ecef;
}

body {
  color: var(--md-navy);
  background: var(--md-bg);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

.page-shell {
  width: 100%;
  max-width: 1920px;
  margin-inline: auto;
  padding-inline: clamp(.75rem, 1.7vw, 2rem);
}

.navbar { min-height: 56px; padding: 0; z-index: 1030; }
.nav-shell { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.navbar .page-shell { padding-top: 0 !important; padding-bottom: 0 !important; }
.navbar-brand { gap: .32rem !important; margin: 0 !important; padding: .5rem 0 !important; color: var(--md-navy); letter-spacing: -.03em; line-height: 1; }
.brand-mark {
  width: 68px;
  height: 60px;
  margin: -6px 0 -6px -10px;
  padding: 0;
  object-fit: contain;
  transform: scale(1.34);
  transform-origin: center;
}
.brand-word {
  color: var(--md-navy);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1.78rem;
  font-weight: 800;
  letter-spacing: -.045em;
}
.brand-data { color: var(--md-green); }
.nav-validation { order: 3; flex: 1 1 100%; min-width: 0; }
.nav-actions { order: 2; flex: 0 0 auto; }
.source-status-compact {
  width: min(100%, 470px);
  min-width: 0;
  min-height: 44px;
  margin-inline: auto;
  padding: .38rem .65rem;
  background: #f2faf7;
  border-color: #cfe8df;
  border-radius: .75rem;
}
.source-status-compact .status-icon { width: 31px; height: 31px; font-size: .9rem; }
.source-status-compact > span:last-child {
  min-width: 0;
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  column-gap: 1rem;
}
.source-status-compact small { grid-column: 1; grid-row: 1; font-size: .57rem; line-height: 1.05; }
.source-status-compact strong { grid-column: 1; grid-row: 2; overflow: hidden; font-size: .8rem; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.source-status-compact em {
  grid-column: 2;
  grid-row: 1 / 3;
  align-self: center;
  overflow: hidden;
  color: #65746e;
  font-size: .68rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.source-status-compact em span {
  min-width: auto;
  display: inline !important;
  flex: none;
}
.country-select { height: 34px; border-radius: .55rem; }
.language-switcher { border-radius: .6rem; }
.btn-refresh { min-height: 34px; border-radius: .5rem; }

.market-hero-compact { background: linear-gradient(90deg, #fff 0%, #fbfdfc 100%) !important; }
.market-hero-compact .page-shell { min-height: 50px; }
.hero-intro { gap: .75rem !important; }
.hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  padding: .34rem .58rem;
  color: #087a55 !important;
  background: #eaf7f2;
  border: 1px solid #cfe8df;
  border-radius: .55rem;
}
.hero-kicker::before {
  content: "";
  width: 6px;
  height: 6px;
  flex: 0 0 auto;
  background: #0aa06e;
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(10,160,110,.12);
}
.market-hero-compact h1 { color: var(--md-navy); font-size: 1.16rem; letter-spacing: -.03em; }
.hero-date { white-space: nowrap; }
.section-label { font-size: .68rem; letter-spacing: .12em; }

.prototype-note { padding: .55rem .8rem; font-size: .75rem; }
.breaking-line { min-height: 50px; padding: .7rem 1rem; }
.breaking-line strong { font-size: .94rem; }
.breaking-line .badge { font-size: .68rem; }
.breaking-time { font-size: .84rem; }
.breaking-source { font-size: .68rem; }
.breaking-action { font-size: .76rem; }

.section-heading > div:first-child > span {
  color: var(--md-green);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
}
.section-heading h2 { color: var(--md-navy); font-size: 1.5rem; font-weight: 700; letter-spacing: -.025em; }
.market-legend { font-size: .875rem; }

.market-driver {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .55rem .8rem;
  color: #17253d;
  background: linear-gradient(90deg, #eef5ff 0%, #fff 100%);
  border: 1px solid #dce8f8;
  border-radius: .8rem;
}
.market-driver-icon {
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: #0d6efd;
  background: #fff;
  border-radius: .65rem;
}
.market-driver > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.market-driver small { color: #0d6efd; font-size: .6rem; font-weight: 800; letter-spacing: .1em; }
.market-driver strong { overflow: hidden; font-size: .88rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }

.card { border-radius: 1rem; }
.quote-card-v2 {
  min-height: 325px;
  border: 0 !important;
  border-radius: 1rem;
  box-shadow: 0 .125rem .25rem rgba(0,0,0,.075) !important;
}
.quote-card-v2:hover { transform: translateY(-2px); box-shadow: 0 .7rem 1.4rem rgba(18,35,29,.1) !important; }
.qv2-body { min-height: 325px; padding: 1rem; }
.qv2-head { margin-bottom: 1rem; }
.qv2-identity { gap: .75rem; }
.qv2-identity h3 { color: #212529; font-size: 1.25rem; font-weight: 700; letter-spacing: -.02em; }
.qv2-identity small { color: #6c757d; font-size: .875rem; }
.qv2-icon { width: 44px; height: 44px; border-radius: .8rem; font-size: 1.35rem; }
.qv2-icon.dollar { color: #087a55; background: #dff3eb; }
.qv2-icon.ibov { color: #0d6efd; background: #dbe9ff; }
.qv2-icon.rates { color: #9a7100; background: #fff3cd; }
.qv2-badge { padding: .5rem 1rem; font-size: .75rem; font-weight: 700; }
.qv2-badge.positive { background: #087a55; }
.qv2-badge.negative { background: #dc3545; }
.qv2-badge.official { background: #212529; }
.qv2-label { margin-bottom: .35rem; color: #6c757d; font-size: .68rem; font-weight: 800; letter-spacing: .1em; }
.qv2-dual { margin-bottom: 1rem; }
.qv2-dual strong { color: #15271f; font-size: clamp(1.65rem, 2.3vw, 2.35rem); font-weight: 750; }
.qv2-dual strong small { margin-right: .35rem; color: #6c757d; font-size: .8rem; font-weight: 700; }
.qv2-main-value { color: #15271f; font-size: clamp(2rem, 3vw, 2.8rem); font-weight: 750; letter-spacing: -.06em; line-height: 1.1; }
.qv2-main-value > small { color: #6c757d; font-size: .8rem; font-weight: 600; }
.qv2-session-loss { margin-top: .2rem; font-size: .875rem; font-weight: 700; }
.qv2-equivalent { margin-top: .15rem; color: #6c757d; font-size: .875rem; }
.qv2-description { min-height: 0; margin: .3rem 0 0; color: #6c757d; font-size: .875rem; }
.qv2-stats { gap: .5rem; margin-top: 1rem; }
.qv2-stats > div { min-height: 0; padding: .6rem .35rem; background: #f8f9fa; border: 1px solid #e9ecef; border-radius: .65rem; }
.qv2-stats span { margin-bottom: .25rem; color: #6c757d; font-size: .64rem; font-weight: 700; letter-spacing: 0; }
.qv2-stats strong { color: #212529; font-size: .78rem; }
.qv2-chart { height: 58px; margin: .55rem -.25rem -.25rem; padding-top: 0; }
.qv2-chart .line { stroke-width: 1.5; }
.qv2-rate-note { margin-top: 1rem; padding: .65rem .75rem; color: #664d03; background: #fff3cd; border: 0; font-size: .78rem; line-height: 1.3; }
.qv2-decision { margin-top: .5rem; color: #6c757d; font-size: .75rem; line-height: 1.25; }
.qv2-footer { min-height: 38px; padding: .5rem 1rem; color: #6c757d; border-top-color: #dee2e6; font-size: .78rem; }
.qv2-footer button { color: #495057; font-size: .78rem; }

.perspective-head { min-height: 58px; background: linear-gradient(90deg, #f4fbf8 0%, #fff 62%); }
.perspective-head > div > span { font-size: .68rem; }
.perspective-head h2 { font-size: 1.25rem; }
.perspective-head p { font-size: .8rem; }
.perspective-item { min-height: 126px; padding: .9rem .75rem; }
.perspective-item > i { width: 31px; height: 31px; border-radius: .6rem; }
.perspective-item small { font-size: .58rem; }
.perspective-item strong { font-size: .78rem; }
.perspective-item b { font-size: 1.27rem; }
.perspective-item em { margin-top: .45rem; font-size: .62rem; }
.site-footer { font-size: .75rem; }

@media (min-width: 992px) {
  .nav-shell { flex-wrap: nowrap; }
  .nav-validation { order: 2; flex: 1 1 420px; max-width: 510px; margin-inline: auto; padding-inline: 1rem; }
  .nav-actions { order: 3; }
}

@media (max-width: 991.98px) {
  .nav-validation { margin-top: .2rem; }
  .quote-card-v2, .qv2-body { min-height: 0; }
  .market-driver strong { white-space: normal; }
}

@media (max-width: 575.98px) {
  .page-shell { padding-inline: .7rem; }
  .navbar { min-height: 0; }
  .brand-mark { width: 58px; height: 54px; margin: -4px 0 -4px -8px; transform: scale(1.26); }
  .brand-word { font-size: 1.34rem; }
  .market-hero-compact .page-shell { align-items: baseline !important; }
  .market-hero-compact h1 { font-size: .98rem; }
  .hero-date { font-size: .72rem !important; }
  .source-status-compact em { display: none; }
  .source-status-compact > span:last-child { display: flex; flex-direction: column; justify-content: center; }
  .source-status-compact small { line-height: 1.15; }
  .qv2-identity h3 { font-size: 1.08rem; }
  .qv2-identity small { font-size: .75rem; }
  .qv2-main-value { font-size: 2.25rem; }
  .qv2-stats strong { font-size: .68rem; }
}

/* Relevant news ticker */
.news-ticker {
  min-width: 0;
  min-height: 52px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  overflow: hidden;
  color: #17253d;
  background: linear-gradient(90deg, #ffffff 0%, #f5f9ff 100%);
  border: 1px solid rgba(13, 110, 253, .3);
  border-radius: .8rem;
  box-shadow: 0 .35rem 1rem rgba(13, 110, 253, .06);
}
.news-ticker-label {
  position: relative;
  z-index: 2;
  margin-left: 1rem;
  font-size: .68rem;
  letter-spacing: .04em;
  white-space: nowrap;
}
.news-ticker-viewport {
  min-width: 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 1rem, #000 calc(100% - 1rem), transparent);
  mask-image: linear-gradient(90deg, transparent, #000 1rem, #000 calc(100% - 1rem), transparent);
}
.news-ticker-track {
  width: max-content;
  display: flex;
  align-items: center;
  will-change: transform;
  animation: newsTickerScroll 70s linear infinite;
}
.news-ticker:hover .news-ticker-track,
.news-ticker:focus-within .news-ticker-track { animation-play-state: paused; }
.news-ticker-group {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 2.3rem;
  padding: 0 2.3rem;
}
.news-ticker-status {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  color: #5f7088;
  font-size: .74rem;
  font-weight: 700;
  white-space: nowrap;
}
.news-ticker-item {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  padding: .45rem 0;
  color: inherit;
  background: transparent;
  border: 0;
  border-radius: .35rem;
  text-align: left;
  white-space: nowrap;
}
.news-ticker-item:hover strong,
.news-ticker-item:focus-visible strong { color: #0d6efd; }
.news-ticker-item:focus-visible { outline: 2px solid rgba(13, 110, 253, .45); outline-offset: 3px; }
.news-ticker-item time {
  color: #0d6efd;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .78rem;
  font-weight: 850;
}
.news-ticker-item > span {
  color: #6c757d;
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.news-ticker-item strong { font-size: .86rem; transition: color .15s ease; }
.news-ticker-item i { color: #0d6efd; font-size: .72rem; }
.news-ticker-hint {
  position: relative;
  z-index: 2;
  align-self: stretch;
  display: flex;
  align-items: center;
  gap: .35rem;
  padding: 0 1rem 0 1.6rem;
  color: #0d6efd;
  background: linear-gradient(90deg, transparent, #f5f9ff 18%);
  font-size: .72rem;
  font-weight: 800;
  white-space: nowrap;
}

.news-modal-content { overflow: hidden; border: 0; border-radius: 1rem; box-shadow: 0 1.5rem 4rem rgba(18, 35, 29, .18); }
.news-modal-content .modal-header { padding: 1.35rem 1.5rem 1rem; border-bottom: 1px solid #e8eef6; }
.news-modal-content .modal-body { padding: 1.35rem 1.5rem; }
.news-modal-content .modal-footer { padding: .9rem 1.5rem 1.25rem; border-top: 0; }
.news-modal-meta { color: #6c757d; font-size: .78rem; }
.news-modal-content .modal-title { color: var(--md-navy); font-weight: 750; letter-spacing: -.025em; }
.news-impact-box {
  display: flex;
  gap: .8rem;
  margin: 1rem 0;
  padding: 1rem;
  color: #123866;
  background: #eef5ff;
  border: 1px solid #d6e6ff;
  border-radius: .8rem;
}
.news-impact-box > i { flex: 0 0 auto; color: #0d6efd; font-size: 1.15rem; }
.news-impact-box span { display: flex; flex-direction: column; gap: .25rem; }
.news-impact-box strong { font-size: .78rem; }
.news-impact-box small { color: #495c74; font-size: .82rem; line-height: 1.45; }
.news-modal-note { color: #7b8491; font-size: .72rem; }

@keyframes newsTickerScroll {
  to { transform: translateX(-50%); }
}

@media (max-width: 575.98px) {
  .news-ticker { min-height: 48px; grid-template-columns: auto minmax(0, 1fr); }
  .news-ticker-label { margin-left: .65rem; }
  .news-ticker-hint { display: none; }
  .news-ticker-group { gap: 1.5rem; padding-inline: 1.5rem; }
  .news-ticker-item strong { font-size: .8rem; }
  .news-ticker-item > span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .news-ticker-track { animation: none !important; }
}

/* Full-width footer */
body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
body > main { flex: 1 0 auto; }

.site-footer-v2 {
  flex: 0 0 auto;
  margin-top: auto;
  color: #d8e7e1;
  background: #0b211a;
  border-top: 3px solid #0a8b61;
  box-shadow: 0 -10px 30px rgba(11, 33, 26, .08);
}
.site-footer-v2 .page-shell { padding-top: 1rem; padding-bottom: .65rem; }
.footer-main {
  display: grid;
  grid-template-columns: minmax(270px, 1fr) minmax(310px, 1.15fr) auto;
  align-items: center;
  gap: clamp(1.5rem, 4vw, 4rem);
}
.footer-brand {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  color: #fff;
  text-decoration: none;
}
.footer-brand:hover { color: #fff; }
.footer-logo {
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .14);
}
.footer-logo img { width: 47px; height: 47px; object-fit: contain; transform: scale(1.12); }
.footer-brand > span:last-child { min-width: 0; display: flex; flex-direction: column; gap: .16rem; }
.footer-brand strong { color: #fff; font-size: 1.05rem; font-style: normal; font-weight: 850; letter-spacing: -.035em; line-height: 1; }
.footer-brand strong em { color: #3ad29f; font-style: normal; }
.footer-brand strong small { margin-left: .14rem; color: #88a69b; font-size: .55rem; letter-spacing: 0; }
.footer-brand > span:last-child > span { color: #91aaa1; font-size: .68rem; }

.footer-promise {
  display: flex;
  align-items: center;
  gap: .7rem;
  padding-left: clamp(1.25rem, 3vw, 3rem);
  border-left: 1px solid rgba(255, 255, 255, .12);
}
.footer-promise > i {
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: #3ad29f;
  background: rgba(58, 210, 159, .1);
  border-radius: 50%;
  font-size: 1rem;
}
.footer-promise > span { display: flex; flex-direction: column; gap: .12rem; }
.footer-promise strong { color: #f5fbf8; font-size: .78rem; }
.footer-promise small { color: #91aaa1; font-size: .68rem; }

.footer-sources { justify-self: end; }
.footer-sources > span { display: block; margin-bottom: .35rem; color: #7f9c91; font-size: .56rem; font-weight: 850; letter-spacing: .12em; text-align: right; }
.footer-sources > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .35rem; }
.footer-sources a {
  padding: .28rem .48rem;
  color: #d8e7e1;
  background: rgba(255, 255, 255, .055);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: .4rem;
  font-size: .61rem;
  font-weight: 750;
  text-decoration: none;
}
.footer-sources a:hover { color: #fff; background: rgba(58, 210, 159, .13); border-color: rgba(58, 210, 159, .35); }

.footer-bottom {
  min-height: 30px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: end;
  gap: 1rem;
  margin-top: .75rem;
  padding-top: .55rem;
  color: #7f9c91;
  border-top: 1px solid rgba(255, 255, 255, .09);
  font-size: .61rem;
}
.footer-bottom > span { font-weight: 800; letter-spacing: .035em; }
.footer-bottom p { margin: 0; text-align: center; }
.footer-bottom button {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: 0;
  color: #9ce7cc;
  background: transparent;
  border: 0;
  font-size: .64rem;
  font-weight: 750;
}
.footer-bottom button:hover { color: #fff; }

@media (max-width: 991.98px) {
  .footer-main { grid-template-columns: 1fr auto; }
  .footer-promise { display: none; }
}

@media (max-width: 575.98px) {
  .site-footer-v2 .page-shell { padding-top: .85rem; padding-bottom: .7rem; }
  .footer-main { grid-template-columns: 1fr; gap: .75rem; }
  .footer-sources { justify-self: start; }
  .footer-sources > span { text-align: left; }
  .footer-sources > div { justify-content: flex-start; }
  .footer-bottom { grid-template-columns: 1fr; align-items: start; gap: .35rem; }
  .footer-bottom p { text-align: left; }
}

/* Compact footer revision */
.site-footer-v2 {
  background: #e5f4ee;
  border-top: 1px solid #a9d5c5;
  box-shadow: none;
}
.site-footer-v2 .page-shell.footer-bar {
  min-height: 56px;
  display: grid;
  grid-template-columns: auto auto auto minmax(0, 1fr);
  align-items: center;
  gap: 1.25rem;
  padding-top: .38rem;
  padding-bottom: .38rem;
}
.footer-bar .footer-brand { grid-column: 1; gap: .55rem; }
.footer-bar .footer-brand,
.footer-bar .footer-brand:hover { color: #173c31; }
.footer-bar .footer-logo {
  width: 36px;
  height: 36px;
  overflow: visible;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}
.footer-bar .footer-logo img { width: 35px; height: 35px; }
.footer-bar .footer-brand strong { color: #173c31; font-size: .86rem; }
.footer-bar .footer-brand strong em { color: #07835c; }
.footer-bar .footer-brand strong small { color: #66867a; }
@media (max-width: 991.98px) {
  .site-footer-v2 .page-shell.footer-bar { grid-template-columns: auto auto auto minmax(0, 1fr); }
}

@media (max-width: 575.98px) {
  .site-footer-v2 .page-shell.footer-bar { min-height: 52px; gap: .65rem; padding-top: .3rem; padding-bottom: .3rem; }
}

/* Local time for the selected country's capital */
.capital-clock-panel {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  padding: .3rem .48rem .3rem .7rem;
  color: #173c31;
  background: #e7f5ef;
  border: 1px solid #bddfD2;
  border-radius: .7rem;
  box-shadow: 0 .2rem .55rem rgba(23, 60, 49, .05);
}
.capital-date-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  line-height: 1.15;
  white-space: nowrap;
}
.capital-date-wrap > span { color: #667d75; font-size: .62rem; }
.capital-date-wrap strong { margin-top: .15rem; color: #087a55; font-size: .68rem; font-weight: 800; }
.capital-clock {
  min-width: 104px;
  padding-left: .7rem;
  color: #12352a;
  border-left: 1px solid #acd4c5;
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 1.35rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  letter-spacing: .035em;
  line-height: 1;
  text-align: center;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .7);
}

@media (max-width: 575.98px) {
  .capital-clock-panel { margin-left: auto; gap: .45rem; padding: .28rem .4rem; }
  .capital-date-wrap > span { display: none; }
  .capital-date-wrap strong { margin: 0; font-size: .62rem; }
  .capital-clock { min-width: 88px; padding-left: .45rem; font-size: 1.08rem; }
}

/* Country and language controls */
.country-picker {
  width: 184px;
  height: 40px;
  position: relative;
  flex: 0 0 auto;
}
.country-code-badge {
  width: 50px;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .28rem;
  color: #087a55;
  background: #e6f5ef;
  border-right: 1px solid #d4e9e1;
  font-size: .48rem;
  font-weight: 850;
  letter-spacing: .045em;
}
.country-code-badge img {
  width: 23px;
  height: 16px;
  display: block;
  object-fit: cover;
  background: #fff;
  border: 1px solid rgba(8, 83, 63, .18);
  border-radius: .18rem;
  box-shadow: 0 1px 3px rgba(18, 35, 29, .12);
}
.country-picker-button {
  width: 100%;
  height: 40px;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  color: #183b31;
  background: #fff;
  border: 1px solid #d8e4df;
  border-radius: .72rem;
  box-shadow: 0 2px 8px rgba(18, 35, 29, .035);
  font-size: .74rem;
  font-weight: 750;
  text-align: left;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.country-picker-button:hover { border-color: #8ebdac; }
.country-picker-button:focus-visible { outline: 0; border-color: #58a98d; box-shadow: 0 0 0 .2rem rgba(8, 122, 85, .1); }
.country-picker-name { min-width: 0; flex: 1 1 auto; align-self: center; overflow: hidden; padding-inline: .65rem .35rem; text-overflow: ellipsis; white-space: nowrap; }
.country-picker-button > i { align-self: center; margin-right: .65rem; font-size: .68rem; transition: transform .18s ease; }
.country-picker-button[aria-expanded="true"] > i { transform: rotate(180deg); }

.country-panel {
  width: min(1380px, calc(100vw - 2rem));
  max-height: min(790px, calc(100vh - 68px));
  position: fixed;
  top: 56px;
  right: auto;
  left: 50%;
  z-index: 1100;
  overflow: auto;
  padding: .9rem;
  background: rgba(255, 255, 255, .98);
  border: 1px solid #cfe2da;
  border-radius: 1rem;
  box-shadow: 0 22px 60px rgba(11, 36, 71, .2);
  backdrop-filter: blur(14px);
  transform: translateX(-50%);
  overscroll-behavior: contain;
}
.country-panel-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .7rem; }
.country-panel-header > span { display: flex; flex-direction: column; }
.country-panel-header small { color: #087a55; font-size: .58rem; font-weight: 850; letter-spacing: .1em; }
.country-panel-header strong { margin-top: .12rem; color: #12231d; font-size: 1.12rem; }
.country-panel-close { width: 32px; height: 32px; display: grid; place-items: center; color: #51665f; background: #f2f7f5; border: 1px solid #dce9e4; border-radius: 50%; }
.country-search { height: 39px; display: flex; align-items: center; gap: .5rem; margin-bottom: .8rem; padding-inline: .75rem; color: #6b7d76; background: #f7faf9; border: 1px solid #dce8e3; border-radius: .68rem; }
.country-search input { min-width: 0; width: 100%; color: #173c31; background: transparent; border: 0; outline: 0; font-size: .78rem; }
.country-panel-groups {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-template-areas:
    "south south europe europe europe north"
    "south south europe europe europe central"
    "asia asia africa africa oceania oceania";
  gap: .72rem;
}
.country-region { min-width: 0; padding: .62rem; background: #f8fbfa; border: 1px solid #e1ebe7; border-radius: .78rem; }
.country-region[data-region="southAmerica"] { grid-area: south; }
.country-region[data-region="northAmerica"] { grid-area: north; }
.country-region[data-region="centralAmerica"] { grid-area: central; }
.country-region[data-region="europe"] { grid-area: europe; }
.country-region[data-region="asia"] { grid-area: asia; }
.country-region[data-region="africa"] { grid-area: africa; }
.country-region[data-region="oceania"] { grid-area: oceania; }
.country-region[data-region="southAmerica"] .country-region-list,
.country-region[data-region="asia"] .country-region-list,
.country-region[data-region="africa"] .country-region-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: .3rem; }
.country-region[data-region="oceania"] .country-region-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: .3rem; }
.country-region[data-region="europe"] .country-region-list { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: .35rem; }
.country-region h3 { margin: 0 0 .45rem; color: #0b6b53; font-size: .68rem; font-weight: 850; letter-spacing: .035em; }
.country-region-list { display: grid; gap: .22rem; }
.country-option { width: 100%; min-width: 0; display: grid; grid-template-columns: 28px minmax(0, 1fr) 15px; align-items: center; gap: .45rem; padding: .28rem .4rem; color: #213f36; background: transparent; border: 1px solid transparent; border-radius: .55rem; text-align: left; }
.country-option:hover,
.country-option:focus-visible { background: #edf7f3; border-color: #bfe1d5; outline: 0; }
.country-option.is-active { color: #fff; background: #087a55; border-color: #087a55; }
.country-option-flag { font-size: 1.05rem; line-height: 1; }
.country-option > span:nth-child(2) { min-width: 0; display: flex; align-items: baseline; justify-content: space-between; gap: .3rem; }
.country-option strong { min-width: 0; overflow: hidden; font-size: .7rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.country-option small { color: #71837c; font-size: .48rem; font-weight: 800; }
.country-option.is-active small { color: rgba(255,255,255,.75); }
.country-option > i { color: transparent; font-size: .68rem; }
.country-option.is-active > i { color: #bff4df; }

@media (max-width: 1199.98px) {
  .country-panel-groups {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-areas:
      "europe europe europe south"
      "europe europe europe south"
      "north central asia africa"
      "oceania oceania oceania oceania";
  }
  .country-region[data-region="southAmerica"] .country-region-list { grid-template-columns: 1fr; }
  .country-region[data-region="oceania"] .country-region-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991.98px) {
  .country-panel-groups {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-areas:
      "europe europe europe"
      "south south north"
      "south south central"
      "asia africa oceania";
  }
  .country-region[data-region="europe"] .country-region-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .country-region[data-region="southAmerica"] .country-region-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .country-region[data-region="oceania"] .country-region-list { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
  .country-panel-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "europe europe"
      "south north"
      "south central"
      "asia africa"
      "oceania oceania";
  }
  .country-region[data-region="europe"] .country-region-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .country-region[data-region="southAmerica"] .country-region-list { grid-template-columns: 1fr; }
  .country-region[data-region="asia"] .country-region-list,
  .country-region[data-region="africa"] .country-region-list { grid-template-columns: 1fr; }
  .country-region[data-region="oceania"] .country-region-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
  .country-panel {
    width: auto;
    max-height: calc(100vh - 154px);
    position: fixed;
    top: 144px;
    right: .65rem;
    left: .65rem;
    padding: .72rem;
    border-radius: .82rem;
    transform: none;
  }
  .country-panel-groups { grid-template-columns: 1fr; grid-template-areas: none; }
  .country-region { grid-area: auto !important; }
  .country-region[data-region] .country-region-list { grid-template-columns: 1fr; }
  .country-region[data-region="europe"] .country-region-list { grid-template-columns: 1fr; }
  .country-panel-header strong { font-size: 1rem; }
}

.language-switcher {
  height: 40px;
  align-items: center;
  gap: .1rem;
  padding: .2rem;
  background: #f1f5f3;
  border-color: #dce6e2;
  border-radius: .72rem;
  box-shadow: 0 2px 8px rgba(18, 35, 29, .03);
}
.language-icon {
  width: 27px;
  height: 28px;
  display: grid;
  place-items: center;
  margin-right: .08rem;
  color: #66827a;
  border-right: 1px solid #d8e3df;
  font-size: .8rem;
}
.language-switcher .lang-btn {
  min-width: 31px;
  height: 30px;
  padding: 0 .4rem;
  color: #6c7e78;
  border-radius: .48rem;
  font-size: .68rem;
}
.language-switcher .lang-btn:hover { color: #0b5f47; background: rgba(8, 122, 85, .07); }
.language-switcher .lang-btn.active { color: #fff; background: #173c31; box-shadow: 0 2px 7px rgba(23, 60, 49, .2); }

@media (max-width: 575.98px) {
  .country-picker { min-width: 142px; width: auto; height: 36px; flex: 1 1 auto; }
  .country-picker-button { height: 36px; }
  .country-code-badge { width: 46px; }
  .country-code-badge img { width: 21px; height: 14px; }
  .country-picker .country-select { height: 34px; font-size: .7rem; }
  .language-switcher { height: 36px; }
  .language-icon { display: none; }
  .language-switcher .lang-btn { min-width: 28px; height: 28px; padding-inline: .3rem; }
}

/* Refined capital date and digital clock */
.capital-clock-panel {
  gap: .65rem;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.capital-meta {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  white-space: nowrap;
}
.capital-place {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  color: #173c31;
  font-size: .72rem;
  font-weight: 800;
}
.capital-place i { color: #0a8b61; font-size: .78rem; }
.capital-meta > span {
  padding-left: .55rem;
  color: #708078;
  border-left: 1px solid #d5e1dc;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .045em;
}
.capital-clock {
  min-width: 108px;
  padding: .42rem .62rem;
  color: #12352a;
  background: #e5f4ee;
  border: 1px solid #b8ddcf;
  border-radius: .58rem;
  box-shadow: 0 2px 7px rgba(18, 53, 42, .06);
  font-size: 1.35rem;
}

@media (max-width: 575.98px) {
  .capital-clock-panel { gap: .4rem; padding: 0; }
  .capital-meta { gap: .3rem; }
  .capital-place { font-size: .63rem; }
  .capital-meta > span { padding-left: .35rem; font-size: .54rem; }
  .capital-clock { min-width: 88px; padding: .38rem .42rem; font-size: 1.08rem; }
}

/* Stable refresh button dimensions across languages */
.btn-refresh {
  width: 108px;
  min-width: 108px;
  max-width: 108px;
  height: 38px;
  flex: 0 0 108px;
  justify-content: center;
  padding-inline: .6rem;
  white-space: nowrap;
}

.refresh-countdown {
  width: 58px;
  min-width: 58px;
  height: 38px;
  flex: 0 0 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .16rem;
  color: #174a8b;
  background: #eef5ff;
  border: 1px solid #cfe0ff;
  border-radius: .6rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.refresh-countdown i {
  color: #0d6efd;
  font-size: .72rem;
}
.refresh-countdown strong {
  min-width: 1.25rem;
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: .78rem;
  font-weight: 850;
  text-align: right;
}
.refresh-countdown small {
  color: #5d7390;
  font-size: .58rem;
  font-weight: 750;
}

@media (max-width: 767.98px) {
  .btn-refresh {
    width: 38px;
    min-width: 38px;
    max-width: 38px;
    flex-basis: 38px;
    padding: 0;
  }
}

@media (max-width: 420px) {
  .refresh-countdown { display: none; }
}

/* Approximate visitor location and local time, always visible */
.footer-connection {
  grid-column: 2;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: #173c31;
}
.footer-connection > i {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: #087a55;
  background: rgba(255, 255, 255, .58);
  border: 1px solid rgba(8, 122, 85, .14);
  border-radius: 50%;
}
.footer-connection > span { display: flex; flex-direction: column; line-height: 1.1; }
.footer-connection small { color: #638076; font-size: .5rem; font-weight: 850; letter-spacing: .1em; }
.footer-connection strong { margin-top: .15rem; color: #173c31; font-size: .68rem; font-weight: 800; }
.footer-connection time {
  min-width: 82px;
  padding-left: .55rem;
  color: #0b6249;
  border-left: 1px solid #bdd6cd;
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  text-align: center;
}
@media (max-width: 575.98px) {
  .footer-connection { gap: .35rem; }
  .footer-connection > i { display: none; }
  .footer-connection small { font-size: .45rem; }
  .footer-connection strong { font-size: .6rem; }
  .footer-connection time { min-width: 72px; padding-left: .35rem; font-size: .88rem; }
}

/* Capital and connection clocks grouped in the footer */
.footer-clocks {
  grid-column: 4;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: .78rem;
}
.footer-clock-item {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: #173c31;
  white-space: nowrap;
}
.footer-clock-item > i {
  width: 30px;
  height: 30px;
  display: grid;
  flex: 0 0 30px;
  place-items: center;
  color: #087a55;
  background: rgba(255, 255, 255, .58);
  border: 1px solid rgba(8, 122, 85, .14);
  border-radius: 50%;
}
.footer-clock-item > span {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}
.footer-clock-item small {
  color: #638076;
  font-size: .5rem;
  font-weight: 850;
  letter-spacing: .1em;
}
.footer-clock-item strong {
  margin-top: .15rem;
  color: #173c31;
  font-size: .68rem;
  font-weight: 800;
}
.footer-clock-item time {
  min-width: 82px;
  padding-left: .55rem;
  color: #0b6249;
  border-left: 1px solid #bdd6cd;
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  text-align: center;
}
.footer-capital-date::before,
.footer-connection-date::before { content: " · "; color: #779087; }
.footer-clock-separator {
  width: 1px;
  height: 34px;
  flex: 0 0 1px;
  background: #a9cfc1;
}
.footer-online-count {
  grid-column: 3;
  min-width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  justify-self: start;
  padding: .25rem .48rem;
  color: #0b6249;
  border: 1px solid #0a8b61;
  border-radius: 999px;
  background: rgba(255, 255, 255, .48);
  box-shadow: 0 0 0 0 rgba(10, 139, 97, .34);
  font-family: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  font-size: .82rem;
  font-variant-numeric: tabular-nums;
  font-weight: 850;
  line-height: 1;
  text-align: center;
  animation: online-border-pulse 1.8s ease-out infinite;
}

@keyframes online-border-pulse {
  0%, 100% { border-color: #0a8b61; box-shadow: 0 0 0 0 rgba(10, 139, 97, .3); }
  55% { border-color: #42b892; box-shadow: 0 0 0 5px rgba(10, 139, 97, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .footer-online-count { animation: none; }
}

@media (max-width: 767.98px) {
  .site-footer-v2 .page-shell.footer-bar { grid-template-columns: auto auto minmax(0, 1fr); }
  .footer-online-count { grid-column: 2; }
  .footer-clocks { grid-column: 3; }
  .footer-clocks { gap: .45rem; }
  .footer-clock-separator { height: 30px; }
  .footer-clock-item { gap: .35rem; }
  .footer-clock-item > i { display: none; }
  .footer-clock-item small { font-size: .44rem; }
  .footer-clock-item strong { font-size: .58rem; }
  .footer-clock-item time { min-width: 70px; padding-left: .35rem; font-size: .86rem; }
  .footer-online-count { min-width: 31px; height: 31px; padding-inline: .4rem; font-size: .72rem; }
}

@media (max-width: 575.98px) {
  .site-footer-v2 .page-shell.footer-bar { grid-template-columns: auto 1fr; }
  .footer-bar .footer-brand { display: none; }
  .footer-clocks {
    grid-column: 2;
    width: auto;
    justify-self: stretch;
    justify-content: flex-end;
    gap: .3rem;
  }
  .footer-clock-item { gap: .25rem; }
  .footer-clock-item small { font-size: .4rem; letter-spacing: .065em; }
  .footer-clock-item strong { font-size: .53rem; }
  .footer-clock-item time { min-width: 62px; padding-left: .25rem; font-size: .78rem; }
  .footer-clock-separator { margin-inline: .15rem; }
  .footer-online-count { grid-column: 1; min-width: 28px; height: 28px; padding-inline: .35rem; font-size: .66rem; }
}

/* Fluid dashboard mode: fit the full market overview above mobile widths */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

@media (min-width: 768px) and (max-width: 1199.98px) {
  .perspective-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .perspective-item,
  .perspective-item:nth-child(3),
  .perspective-item:nth-child(-n+3) { border-right: 1px solid var(--md-border); border-bottom: 0; }
  .perspective-item:last-child { border-right: 0; }
}

@media (min-width: 768px) and (max-width: 1399.98px),
       (min-width: 768px) and (max-height: 899.98px) {
  .page-shell { padding-inline: clamp(.65rem, 1.25vw, 1.1rem); }
  .navbar-brand { padding-block: .32rem !important; }
  .brand-mark { width: 58px; height: 52px; }
  .brand-word { font-size: 1.48rem; }
  .market-hero-compact .page-shell { min-height: 36px; padding-block: .3rem !important; }
  .hero-kicker { padding: .26rem .48rem; }

  body > main { padding-top: .55rem !important; padding-bottom: .55rem !important; }
  .breaking-line { min-height: 38px; padding: .38rem .75rem; }
  .breaking-line strong { font-size: .8rem; }
  .breaking-line .badge { font-size: .57rem; }
  .breaking-time { font-size: .7rem; }
  .breaking-source,
  .breaking-action { font-size: .58rem; }
  .news-ticker { min-height: 40px; }
  .news-ticker.mb-3 { margin-bottom: .48rem !important; }
  .news-ticker-label { margin-left: .65rem; }
  .news-ticker-item strong { font-size: .74rem; }
  .news-ticker-hint { padding-inline: .7rem; font-size: .65rem; }

  .section-heading.mb-2 { margin-bottom: .3rem !important; }
  .section-heading h2 { margin-top: 0; font-size: 1.12rem; }
  .section-heading > div:first-child > span { font-size: .56rem; }
  .source-check-inline { min-height: 30px; padding: .3rem .55rem; font-size: .62rem; }
  .source-check-inline small { font-size: .55rem; }
  .market-legend { font-size: .68rem; }
  .market-driver { min-height: 34px; gap: .5rem; padding: .3rem .6rem; }
  .market-driver.mb-3 { margin-bottom: .48rem !important; }
  .market-driver-icon { width: 27px; height: 27px; }
  .market-driver small { font-size: .5rem; }
  .market-driver strong { font-size: .7rem; }

  .primary-grid { --bs-gutter-x: .65rem; --bs-gutter-y: .65rem; }
  .quote-card-v2 { min-height: 0; border-radius: .78rem; }
  .qv2-body { min-height: 245px; padding: .68rem; }
  .qv2-head { gap: .35rem; margin-bottom: .5rem; }
  .qv2-identity { gap: .4rem; }
  .qv2-icon { width: 32px; height: 32px; border-radius: .58rem; font-size: .95rem; }
  .qv2-identity h3 { font-size: .88rem; }
  .qv2-identity small { font-size: .58rem; }
  .qv2-badge { padding: .32rem .52rem; font-size: .54rem; }
  .qv2-badge.official { padding-inline: .55rem; }
  .qv2-label { margin-bottom: .22rem; font-size: .52rem; }
  .qv2-dual { margin-bottom: .55rem; }
  .qv2-dual > div + div { padding-left: .55rem; }
  .qv2-dual strong { font-size: clamp(1.18rem, 2.25vw, 1.72rem); }
  .qv2-dual strong small { margin-right: .14rem; font-size: .56rem; }
  .qv2-main-value { font-size: clamp(1.3rem, 2.4vw, 1.85rem); }
  .qv2-main-value > small { margin-left: .08rem; font-size: .55rem; }
  .qv2-session-loss,
  .qv2-equivalent,
  .qv2-description { font-size: .58rem; }
  .qv2-description { line-height: 1.25; }
  .qv2-stats { gap: .24rem; margin-top: .52rem; }
  .qv2-stats > div { padding: .36rem .16rem; border-radius: .5rem; }
  .qv2-stats span { margin-bottom: .16rem; font-size: .43rem; }
  .qv2-stats strong { font-size: .56rem; }
  .qv2-chart { height: 42px; margin-top: auto; }
  .qv2-rate-note { gap: .3rem; margin-top: .5rem; padding: .4rem .45rem; font-size: .55rem; line-height: 1.25; }
  .qv2-decision { margin-top: .32rem; font-size: .52rem; }
  .qv2-footer { min-height: 32px; padding: .34rem .65rem; font-size: .54rem; }
  .qv2-footer button { font-size: .54rem; }

  .perspective-panel.mt-3 { margin-top: .5rem !important; }
  .perspective-head { min-height: 40px; padding: .38rem .68rem; }
  .perspective-head > div > span { font-size: .5rem; }
  .perspective-head h2 { margin-top: 0; font-size: .92rem; }
  .perspective-head p { font-size: .6rem; }
  .perspective-item { min-height: 78px; gap: .32rem; padding: .46rem .42rem; }
  .perspective-item > i { width: 24px; height: 24px; font-size: .72rem; }
  .perspective-item small { font-size: .42rem; }
  .perspective-item strong { font-size: .58rem; }
  .perspective-item b { margin-top: .18rem; font-size: .88rem; }
  .perspective-item b small { font-size: .42rem; }
  .perspective-item em { margin-top: .18rem; font-size: .46rem; }

  .site-footer-v2 .page-shell.footer-bar { min-height: 48px; padding-top: .25rem; padding-bottom: .25rem; }
  .footer-bar .footer-logo,
  .footer-bar .footer-logo img { width: 30px; height: 30px; }
  .footer-bar .footer-brand strong { font-size: .72rem; }
  .footer-clock-item > i { width: 26px; height: 26px; flex-basis: 26px; }
  .footer-clock-item small { font-size: .42rem; }
  .footer-clock-item strong { font-size: .57rem; }
  .footer-clock-item time { min-width: 70px; font-size: .82rem; }
  .footer-clock-separator { height: 28px; }
}

/* Mobile flow: vertical scrolling is allowed, horizontal overflow is not */
@media (max-width: 767.98px) {
  .nav-shell { flex-wrap: wrap !important; }
  .nav-actions {
    width: 100%;
    min-width: 0;
    gap: .35rem !important;
  }
  .country-picker {
    width: 0 !important;
    min-width: 0 !important;
    flex: 1 1 0 !important;
  }
  .country-picker .country-select { min-width: 0; }
  .language-switcher { flex: 0 0 auto; }
  .btn-refresh {
    width: 38px;
    min-width: 38px;
    max-width: 38px;
    flex: 0 0 38px;
    padding: 0;
  }
  .refresh-countdown { display: none; }

  .section-heading {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: .45rem;
  }
  .section-tools {
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
  }
  .source-check-inline { max-width: 100%; }

  .primary-grid > *,
  .quote-card-v2,
  .qv2-body,
  .qv2-head,
  .qv2-identity { min-width: 0; }
}

/* Desktop and tablet are a fixed dashboard; scrolling begins only on mobile */
@media (min-width: 576px) {
  body {
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    overflow-y: hidden;
  }
  body > main {
    min-height: 0;
    flex: 1 1 auto;
    overflow: hidden;
  }
}

/* Narrow tablets still behave as a single-screen dashboard */
@media (min-width: 576px) and (max-width: 767.98px) {
  .market-hero-compact,
  .market-driver { display: none; }
  .navbar-brand { padding-block: .18rem !important; }
  .brand-mark { width: 50px; height: 44px; }
  .brand-word { font-size: 1.24rem; }
  .nav-actions { gap: .3rem !important; }
  .country-picker { min-width: 130px !important; }
  .language-switcher { flex: 0 0 auto; }

  body > main { padding-top: .32rem !important; padding-bottom: .25rem !important; }
  .breaking-line { min-height: 30px; padding: .24rem .55rem; }
  .breaking-line .badge { font-size: .48rem; }
  .breaking-line strong { font-size: .68rem; }
  .breaking-time { font-size: .58rem; }
  .news-ticker { min-height: 32px; }
  .news-ticker.mb-3 { margin-bottom: .25rem !important; }
  .news-ticker-label { margin-left: .45rem; font-size: .52rem; }
  .news-ticker-item strong { font-size: .64rem; }
  .news-ticker-hint { display: none; }

  .section-heading {
    align-items: center;
    flex-wrap: nowrap;
    gap: .35rem;
  }
  .section-heading.mb-2 { margin-bottom: .18rem !important; }
  .section-heading h2 { font-size: .92rem; white-space: nowrap; }
  .section-heading > div:first-child > span { font-size: .45rem; }
  .section-tools { width: auto; margin-left: auto; }
  .source-check-inline { min-height: 26px; padding: .18rem .42rem; font-size: .52rem; }
  .source-check-inline small,
  .market-legend { display: none; }

  .primary-grid {
    --bs-gutter-x: .35rem;
    --bs-gutter-y: .35rem;
  }
  .primary-grid > * {
    width: 25%;
    flex: 0 0 auto;
  }
  .quote-card-v2 { min-height: 0; border-radius: .65rem; }
  .qv2-body { min-height: 124px; padding: .38rem; }
  .qv2-head { gap: .2rem; margin-bottom: .24rem; }
  .qv2-icon { display: none; }
  .qv2-identity { gap: 0; }
  .qv2-identity h3 { font-size: .63rem; }
  .qv2-identity small { font-size: .42rem; }
  .qv2-badge { padding: .2rem .3rem; font-size: .4rem; }
  .qv2-badge.official { padding-inline: .3rem; }
  .qv2-label { margin-bottom: .08rem; font-size: .38rem; }
  .qv2-dual { margin-bottom: .2rem; }
  .qv2-dual > div + div { padding-left: .25rem; }
  .qv2-dual strong { font-size: clamp(.72rem, 1.8vw, .98rem); }
  .qv2-dual strong small { display: none; }
  .qv2-main-value { font-size: clamp(.8rem, 2vw, 1.08rem); }
  .qv2-main-value > small { font-size: .4rem; }
  .qv2-session-loss,
  .qv2-equivalent { margin-top: .08rem; font-size: .4rem; }
  .qv2-description,
  .qv2-stats,
  .qv2-rate-note,
  .qv2-decision { display: none; }
  .qv2-chart { height: 27px; margin-top: auto; }
  .qv2-footer { min-height: 23px; padding: .2rem .35rem; font-size: .4rem; }
  .qv2-footer button { display: none; }

  .perspective-panel.mt-3 { margin-top: .26rem !important; }
  .perspective-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .perspective-head { min-height: 28px; padding: .2rem .42rem; }
  .perspective-head > div > span,
  .perspective-head p { display: none; }
  .perspective-head h2 { font-size: .68rem; }
  .perspective-item,
  .perspective-item:nth-child(3),
  .perspective-item:nth-child(-n+3),
  .perspective-item:nth-child(even),
  .perspective-item:nth-last-child(-n+2) {
    min-height: 48px;
    padding: .26rem .2rem;
    border-right: 1px solid var(--md-border);
    border-bottom: 0;
  }
  .perspective-item:last-child { border-right: 0; }
  .perspective-item > i { display: none; }
  .perspective-item small { font-size: .3rem; }
  .perspective-item strong { font-size: .42rem; }
  .perspective-item b { margin-top: .08rem; font-size: .62rem; }
  .perspective-item em { margin-top: .06rem; font-size: .32rem; }

  .site-footer-v2 .page-shell.footer-bar { min-height: 38px; padding-block: .12rem; }
  .footer-bar .footer-logo,
  .footer-bar .footer-logo img { width: 24px; height: 24px; }
  .footer-bar .footer-brand strong { font-size: .58rem; }
  .footer-clocks { gap: .3rem; }
  .footer-clock-item > i { display: none; }
  .footer-clock-item small { font-size: .32rem; }
  .footer-clock-item strong { font-size: .43rem; }
  .footer-clock-item time { min-width: 56px; padding-left: .25rem; font-size: .64rem; }
  .footer-clock-separator { height: 22px; margin-inline: .08rem; }
}

/* Extra compact mode for short notebook windows */
@media (min-width: 768px) and (max-height: 760px) {
  .market-hero-compact { display: none; }
  .navbar-brand { padding-block: .18rem !important; }
  .brand-mark { width: 52px; height: 46px; }
  .brand-word { font-size: 1.32rem; }
  .country-picker,
  .language-switcher { height: 34px; }
  .country-picker-button { height: 34px; }
  .country-picker .country-select { height: 32px; }
  .btn-refresh,
  .refresh-countdown { height: 34px; }

  body > main { padding-top: .38rem !important; padding-bottom: .3rem !important; }
  .breaking-line { min-height: 32px; padding-block: .27rem; }
  .news-ticker { min-height: 34px; }
  .news-ticker.mb-3 { margin-bottom: .28rem !important; }
  .news-ticker-label { padding-block: .25rem; }
  .section-heading.mb-2 { margin-bottom: .18rem !important; }
  .section-heading h2 { font-size: .98rem; }
  .section-heading > div:first-child > span { font-size: .48rem; }
  .source-check-inline { min-height: 27px; padding-block: .2rem; }
  .market-driver { display: none; }

  .qv2-body { min-height: 185px; padding: .5rem; }
  .qv2-head { margin-bottom: .32rem; }
  .qv2-icon { width: 29px; height: 29px; font-size: .82rem; }
  .qv2-identity h3 { font-size: .78rem; }
  .qv2-identity small { font-size: .5rem; }
  .qv2-badge { padding: .27rem .42rem; font-size: .48rem; }
  .qv2-label { margin-bottom: .12rem; font-size: .45rem; }
  .qv2-dual { margin-bottom: .35rem; }
  .qv2-dual strong { font-size: clamp(1.08rem, 2vw, 1.48rem); }
  .qv2-main-value { font-size: clamp(1.18rem, 2.15vw, 1.6rem); }
  .qv2-session-loss,
  .qv2-equivalent { margin-top: .12rem; font-size: .5rem; }
  .qv2-description,
  .qv2-rate-note,
  .qv2-decision { display: none; }
  .qv2-stats { margin-top: .34rem; }
  .qv2-stats > div { padding-block: .27rem; }
  .qv2-chart { height: 28px; margin-top: auto; }
  .qv2-footer { min-height: 26px; padding: .25rem .5rem; font-size: .48rem; }
  .qv2-footer button { font-size: .48rem; }

  .perspective-panel.mt-3 { margin-top: .32rem !important; }
  .perspective-head { min-height: 31px; padding: .26rem .55rem; }
  .perspective-head > div > span { font-size: .42rem; }
  .perspective-head h2 { font-size: .78rem; }
  .perspective-head p { font-size: .5rem; }
  .perspective-item { min-height: 57px; gap: .22rem; padding: .32rem .34rem; }
  .perspective-item > i { width: 20px; height: 20px; font-size: .6rem; }
  .perspective-item small { font-size: .35rem; }
  .perspective-item strong { font-size: .5rem; }
  .perspective-item b { margin-top: .1rem; font-size: .72rem; }
  .perspective-item em { margin-top: .08rem; font-size: .38rem; }

  .site-footer-v2 .page-shell.footer-bar { min-height: 40px; padding-block: .15rem; }
  .footer-bar .footer-logo,
  .footer-bar .footer-logo img { width: 26px; height: 26px; }
  .footer-bar .footer-brand strong { font-size: .64rem; }
  .footer-clock-item > i { width: 22px; height: 22px; flex-basis: 22px; font-size: .65rem; }
  .footer-clock-item small { font-size: .36rem; }
  .footer-clock-item strong { font-size: .49rem; }
  .footer-clock-item time { min-width: 62px; padding-left: .3rem; font-size: .72rem; }
  .footer-clock-separator { height: 24px; }
}

/* Preserve every field and fit the complete dashboard instead of hiding content */
body { display: block; }
.dashboard-app {
  width: 100%;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  transform-origin: top left;
}
.dashboard-app > main { flex: 1 0 auto; }

@media (min-width: 576px) {
  .dashboard-app { min-height: 0; }
  .dashboard-app > main { min-height: 0; flex: 1 1 auto; }
}

@media (min-width: 576px) and (max-width: 767.98px) {
  .market-hero-compact { display: block; }
  .market-driver { display: flex; }
  .breaking-source,
  .breaking-action { display: inline; }
  .source-check-inline small { display: inline; }
  .market-legend { display: flex; }
  .qv2-icon { display: grid; }
  .qv2-dual strong small { display: inline; }
  .qv2-description { display: block; }
  .qv2-stats { display: grid; }
  .qv2-rate-note,
  .qv2-decision { display: flex; }
  .qv2-footer button { display: inline-block; }
  .perspective-head > div > span { display: block; }
  .perspective-head p { display: block; }
  .perspective-item > i,
  .footer-clock-item > i { display: grid; }
}

@media (min-width: 768px) and (max-height: 760px) {
  .market-hero-compact { display: block; }
  .market-driver { display: flex; }
  .qv2-description { display: block; }
  .qv2-rate-note,
  .qv2-decision { display: flex; }
}

@media (max-width: 575.98px) {
  .dashboard-app {
    width: 100% !important;
    min-height: 100vh !important;
    transform: none !important;
  }
}

/* Selected country's capital sits immediately before the country selector */
.header-capital {
  height: 40px;
  flex: 0 0 auto;
  gap: .42rem;
  padding: .25rem .2rem;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 0;
}
.header-capital > i {
  width: 27px;
  height: 27px;
  flex-basis: 27px;
  background: transparent;
  border-color: #d5e5df;
}
.header-capital > span { line-height: 1.2; }
.header-capital small {
  color: #557168;
  font-size: .52rem;
  font-weight: 650;
  letter-spacing: .075em;
}
.header-capital strong {
  margin-top: .12rem;
  color: #29483f;
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.2;
}
.header-capital time {
  min-width: 76px;
  padding-left: .4rem;
  font-size: .84rem;
}

.header-government {
  height: 42px;
  min-width: 194px;
  max-width: 260px;
  display: inline-flex;
  flex: 0 1 auto;
  align-items: center;
  gap: .4rem;
  padding: .24rem .42rem;
  color: #29483f;
  background: #f4faf7;
  border: 1px solid #d5e8e0;
  border-radius: .68rem;
  text-decoration: none;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.header-government:hover,
.header-government:focus-visible {
  color: #173c31;
  background: #ecf8f3;
  border-color: #8dc9b4;
  box-shadow: 0 0 0 .18rem rgba(8, 122, 85, .1);
}
.header-government > i:first-child {
  width: 25px;
  height: 25px;
  display: grid;
  flex: 0 0 25px;
  place-items: center;
  color: #087a55;
  background: #fff;
  border: 1px solid #d5e8e0;
  border-radius: 50%;
  font-size: .68rem;
}
.header-government > span {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  column-gap: .35rem;
  line-height: 1.12;
}
.header-government small {
  color: #526d64;
  font-size: .55rem;
  font-weight: 600;
  letter-spacing: .055em;
}
.header-government strong {
  grid-column: 1 / -1;
  min-width: 0;
  overflow: hidden;
  color: #173c31;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: -.01em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.header-government em {
  color: #087a55;
  font-size: .55rem;
  font-style: normal;
  font-weight: 650;
  letter-spacing: .015em;
  white-space: nowrap;
}
.header-government .government-source-icon {
  color: #729187;
  font-size: .58rem;
}

@media (max-width: 767.98px) {
  .nav-actions { flex-wrap: wrap; }
  .header-capital > i { display: grid; }
}

@media (max-width: 575.98px) {
  .nav-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
  }
  .header-capital {
    grid-column: 1 / -1;
    width: auto;
    height: 36px;
    justify-content: center;
  }
  .header-government {
    grid-column: 1 / -1;
    width: 100%;
    max-width: none;
    justify-content: center;
  }
  .country-picker { grid-column: 1; width: 100% !important; max-width: none; }
  .language-switcher { grid-column: 2; }
  .btn-refresh { grid-column: 3; }
}

@media (min-width: 768px) and (max-height: 760px) {
  .header-capital { height: 34px; padding-block: .18rem; }
  .header-capital > i { width: 22px; height: 22px; flex-basis: 22px; }
  .header-capital time { min-width: 76px; font-size: .84rem; }
  .header-government { height: 36px; min-width: 184px; padding-block: .16rem; }
  .header-government > i:first-child { width: 22px; height: 22px; flex-basis: 22px; }
}

/* Match the local connection typography to the clearer capital treatment */
.footer-connection > span { line-height: 1.2; }
.footer-connection small {
  color: #557168;
  font-size: .52rem;
  font-weight: 650;
  letter-spacing: .075em;
}
.footer-connection strong {
  margin-top: .12rem;
  color: #29483f;
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.2;
}

/* Country comparison */
.btn-compare {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding-inline: .72rem;
  color: #075e46;
  background: #e9f7f2;
  border: 1px solid #b8dfd1;
  border-radius: .5rem;
  font-size: .74rem;
  font-weight: 800;
  white-space: nowrap;
}
.btn-compare:hover,
.btn-compare:focus-visible { color: #fff; background: #087a55; border-color: #087a55; }
#comparisonModal .modal-dialog { width: min(calc(100vw - 32px), 1600px); max-width: min(calc(100vw - 32px), 1600px); }
.comparison-modal-content { width: 100%; max-width: 100%; min-width: 0; max-height: calc(100vh - 24px); overflow: hidden; background: #f8fafc; border: 1px solid #dde5ee; border-top: 2px solid #8bb8ea; box-shadow: 0 22px 60px rgba(38, 63, 88, .17); }
.comparison-modal-header {
  align-items: flex-start;
  padding: 1.2rem 1.55rem;
  background: linear-gradient(115deg, #ffffff 0%, #f3f7fc 62%, #fffaf0 100%);
  border-bottom-color: #e1e7ee;
}
.comparison-modal-header .modal-eyebrow { color: #4777ad; font-weight: 650; letter-spacing: .08em; }
.comparison-modal-header h2 { margin: .18rem 0 .24rem; color: #253a50; font-weight: 680; letter-spacing: -.025em; }
.comparison-modal-header p { color: #718092 !important; font-size: .78rem; font-weight: 400; }
.comparison-modal-body { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; padding: 1.05rem 1.55rem; }
.comparison-picker-wrap { padding: .9rem; background: rgba(255,255,255,.9); border: 1px solid #dee6ee; border-radius: .85rem; box-shadow: 0 5px 16px rgba(48, 72, 97, .045); }
.comparison-picker-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .65rem; color: #40566d; font-size: .72rem; }
.comparison-picker-head > strong { font-weight: 620; }
.comparison-picker-head > span { min-width: 44px; padding: .22rem .48rem; color: #4777ad; text-align: center; background: #edf4fb; border-radius: 999px; font-size: .68rem; }
.comparison-picker-head > span b { font-weight: 650; }
.comparison-country-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .55rem; }
.comparison-country-option {
  min-width: 0;
  min-height: 48px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .52rem;
  padding: .56rem .65rem;
  color: #40566d;
  background: #f9fbfd;
  border: 1px solid #dfe6ed;
  border-radius: .68rem;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.comparison-country-option:hover { border-color: #abc9e8; background: #f3f8fd; }
.comparison-country-option.is-selected { color: #315f8e; background: #edf6ff; border-color: #93bce6; box-shadow: inset 0 0 0 1px rgba(71,119,173,.05); }
.comparison-country-option input { position: absolute; opacity: 0; pointer-events: none; }
.comparison-country-code { width: 28px; height: 28px; display: grid; place-items: center; color: #4777ad; background: #fff; border: 1px solid #cadbec; border-radius: .48rem; font-size: .6rem; font-weight: 650; }
.comparison-country-name { overflow: hidden; font-size: .72rem; font-weight: 540; text-overflow: ellipsis; white-space: nowrap; }
.comparison-country-option > i { color: #a8b8b2; opacity: .35; }
.comparison-country-option.is-selected > i { color: #5b91ca; opacity: 1; }
.comparison-feedback { min-height: 17px; margin-top: .45rem; color: #6d7c76; font-size: .64rem; }
.comparison-feedback.is-error { color: #b42333; }
.comparison-feedback.is-success { color: #1757b8; }
.comparison-feedback.is-loading { color: #0a58ca; }
.comparison-reference-panel {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(190px, .55fr) minmax(380px, 1fr) minmax(300px, 1.2fr);
  align-items: center;
  gap: .85rem;
  padding: .72rem .9rem;
  background: #fff;
  border: 1px solid #dce6ef;
  border-radius: .85rem;
  box-shadow: 0 5px 16px rgba(48, 72, 97, .04);
}
.comparison-reference-heading { min-width: 0; display: flex; flex-direction: column; gap: .12rem; }
.comparison-reference-heading small { color: #4777ad; font-size: .56rem; font-weight: 700; letter-spacing: .08em; }
.comparison-reference-heading strong { color: #40566d; font-size: .74rem; font-weight: 620; }
.comparison-reference-options { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .48rem; }
.comparison-reference-option {
  min-width: 0;
  min-height: 46px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: .48rem;
  padding: .4rem .55rem;
  color: #435a70;
  text-align: left;
  background: #f9fbfd;
  border: 1px solid #dce5ed;
  border-radius: .62rem;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.comparison-reference-option:hover:not(:disabled) { border-color: #a9c8e8; background: #f3f8fd; }
.comparison-reference-option.is-selected { color: #295b8d; background: #edf6ff; border-color: #81b3e7; box-shadow: inset 0 0 0 1px rgba(71, 119, 173, .06); }
.comparison-reference-option:disabled { opacity: .48; cursor: not-allowed; }
.comparison-reference-option > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.comparison-reference-option strong { overflow: hidden; font-size: .68rem; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.comparison-reference-option small { color: #74869a; font-size: .55rem; font-weight: 550; }
.comparison-reference-flag { width: 28px; height: 28px; display: grid; place-items: center; background: #fff; border: 1px solid #d4e0eb; border-radius: 50%; font-size: .95rem; line-height: 1; }
.comparison-reference-flag.is-usd { color: #315f8e; font-size: .56rem; font-weight: 700; }
.comparison-reference-notice { min-width: 0; display: flex; align-items: center; gap: .5rem; margin: 0; padding: .58rem .68rem; color: #496477; background: #f0f7fd; border: 1px solid #d7e8f7; border-radius: .62rem; font-size: .64rem; line-height: 1.35; }
.comparison-reference-notice i { flex: 0 0 auto; color: #4f82bd; font-size: .82rem; }
.comparison-result { min-width: 0; min-height: 230px; overflow: hidden; background: #fff; border: 1px solid #dde5ed; border-radius: .85rem; box-shadow: 0 6px 18px rgba(48, 72, 97, .045); }
.comparison-empty,
.comparison-loading { min-height: 230px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: .35rem; color: #7b8984; text-align: center; }
.comparison-empty i { color: #8fcbb7; font-size: 1.6rem; }
.comparison-empty strong { color: #344d44; font-size: .85rem; }
.comparison-empty span { font-size: .7rem; }
.comparison-loading { flex-direction: row; color: #315f51; font-size: .75rem; }
.comparison-table-wrap { width: 100%; max-width: 100%; min-width: 0; overflow: auto; scrollbar-color: #8faed8 #edf2f8; }
.comparison-table { width: 100%; min-width: 760px; border-collapse: separate; border-spacing: 0; color: #42556a; font-size: .7rem; }
.comparison-table th,
.comparison-table td { min-width: 150px; padding: .65rem .72rem; vertical-align: top; background: #fff; border-right: 1px solid #e3e8ee; border-bottom: 1px solid #e3e8ee; }
.comparison-table tbody tr:nth-child(even) td { background: #fafbfd; }
.comparison-table tr > :first-child { width: 250px; min-width: 250px; position: sticky; left: 0; z-index: 2; background: #f5f7fa; box-shadow: 1px 0 0 #dde4eb; }
.comparison-table thead th { position: sticky; top: 0; z-index: 3; color: #31546f; background: linear-gradient(135deg, #edf5fc 0%, #e5f0fa 100%); border-color: #d7e2ec; }
.comparison-table thead tr > :first-child { z-index: 4; color: #40576d; background: #e8eef4; }
.comparison-table thead th.comparison-country-heading { overflow: hidden; isolation: isolate; }
.comparison-table thead th.comparison-country-heading::after { content: ""; position: absolute; z-index: 0; inset: 0 0 0 auto; width: 58%; background: var(--country-flag) center / cover no-repeat; opacity: .13; filter: saturate(.8) contrast(.92); -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 42%); mask-image: linear-gradient(to right, transparent 0%, #000 42%); pointer-events: none; }
.comparison-table thead th.comparison-country-heading > * { position: relative; z-index: 1; }
.comparison-table thead th > span { display: inline-grid; min-width: 28px; height: 22px; place-items: center; margin-right: .42rem; color: #4777ad; background: rgba(255,255,255,.82); border: 1px solid #cadbea; border-radius: .35rem; font-size: .55rem; font-weight: 650; }
.comparison-table thead th > strong { font-size: .75rem; font-weight: 650; }
.comparison-table thead th > small { display: block; margin: .2rem 0 0 2.6rem; color: #71869a; font-size: .54rem; font-weight: 500; }
.comparison-table tbody th strong,
.comparison-table tbody th small,
.comparison-table tbody td strong,
.comparison-table tbody td small { display: block; }
.comparison-table tbody th strong { color: #41576b; font-size: .7rem; font-weight: 620; white-space: nowrap; }
.comparison-table tbody th small { margin-top: .16rem; color: #77847f; font-size: .56rem; font-weight: 500; }
.comparison-table tbody td strong { color: #334d66; font-size: .82rem; font-weight: 650; }
.comparison-table tbody td small { margin-top: .22rem; color: #687770; font-size: .56rem; line-height: 1.35; }
.comparison-table tbody td.is-unavailable strong { color: #9ca9a4; }
.comparison-table tbody td.is-unavailable small { color: #98a39f; }
.qv2-main-value > .is-unavailable { display: inline-block; color: #64736d; font-size: clamp(1.05rem, 1.6vw, 1.45rem); font-weight: 620; letter-spacing: -.025em; white-space: normal; }
.qv2-stats strong.is-unavailable { color: #89958f; font-size: .56rem; font-weight: 600; line-height: 1.15; white-space: normal; }
.qv2-footer .is-unavailable { color: #687770; font-weight: 500; }
.perspective-item b.is-unavailable { color: #74827c; font-size: .76rem; font-weight: 600; letter-spacing: 0; white-space: normal; }
.comparison-table tbody td.is-unavailable strong { font-size: .74rem; font-weight: 600; }
.comparison-table tbody tr.is-active-reference > th { background: #fff8e6; box-shadow: inset 3px 0 0 #e6bd58, 1px 0 0 #dde4eb; }
.comparison-table tbody tr.is-active-reference > td { background: #fffdf7; }
.comparison-table tbody tr.is-active-reference > td strong { color: #2d587e; }
.comparison-table tbody tr td.is-best { background: #fffaf0; box-shadow: inset 0 0 0 1px #efd994; }
.comparison-best { display: inline-flex; align-items: center; margin-top: .36rem; padding: .14rem .34rem; color: #876c27; background: #fff0bd; border-radius: 999px; font-size: .5rem; font-weight: 650; letter-spacing: .02em; text-transform: uppercase; }
.comparison-table tr:last-child > * { border-bottom: 0; }
.comparison-table tr > :last-child { border-right: 0; }
.comparison-currency-explanation { display: flex; align-items: center; gap: .45rem; margin: 0; padding: .58rem .72rem; color: #647688; background: #f8fbfd; border-top: 1px solid #e1e8ef; font-size: .61rem; }
.comparison-currency-explanation i { color: #4f82bd; }
.comparison-modal-footer { padding: .78rem 1.55rem; background: #fff; border-top-color: #e1e7ed; }
.comparison-modal-footer small { max-width: 60%; font-size: .61rem; }
.comparison-modal-footer .btn { min-height: 34px; font-size: .7rem; font-weight: 600; }
.comparison-generate { background: #4f82bd; border-color: #4f82bd; }
.comparison-generate:hover { background: #3f6f9f; border-color: #3f6f9f; }
.comparison-modal-body.has-results { gap: .65rem; padding-block: .55rem; }
.comparison-modal-body.has-results .comparison-picker-wrap { display: none; }
.comparison-modal-body.has-results .comparison-reference-panel { padding-block: .52rem; }
.comparison-modal-body.has-results .comparison-result { min-height: 0; }
.comparison-modal-body.has-results .comparison-table th,
.comparison-modal-body.has-results .comparison-table td { padding: .48rem .62rem; }

@media (max-width: 991.98px) {
  .comparison-country-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .comparison-reference-panel { grid-template-columns: minmax(170px, .65fr) minmax(360px, 1.35fr); }
  .comparison-reference-notice { grid-column: 1 / -1; }
  .comparison-modal-footer small { max-width: 48%; }
}

@media (max-width: 575.98px) {
  .nav-actions { grid-template-columns: minmax(0, 1fr) auto auto; }
  .language-switcher { grid-column: 2; }
  .btn-refresh { grid-column: 3; }
  .refresh-countdown { display: none; }
  .comparison-modal-header,
  .comparison-modal-body,
  .comparison-modal-footer { padding-inline: .85rem; }
  #comparisonModal .modal-dialog { width: calc(100vw - 1rem); max-width: calc(100vw - 1rem); margin-inline: .5rem; }
  #comparisonModal .modal-content { width: calc(100vw - 1rem); max-width: calc(100vw - 1rem); }
  .comparison-country-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .comparison-reference-panel { grid-template-columns: 1fr; gap: .55rem; padding: .72rem; }
  .comparison-reference-options { grid-template-columns: 1fr; }
  .comparison-reference-notice { grid-column: auto; }
  .comparison-modal-footer { align-items: stretch; flex-wrap: wrap; }
  .comparison-modal-footer small { width: 100%; max-width: none; margin-bottom: .35rem; }
  .comparison-modal-footer .btn { flex: 1 1 0; min-width: 0; padding-inline: .45rem; }
}

/* Keep the two news lines readable even when the dashboard is scaled to fit. */
@media (min-width: 576px) {
  .breaking-line { min-height: 38px; padding-block: .34rem; }
  .breaking-line .badge { font-size: .68rem; }
  .breaking-time { font-size: .82rem; }
  .breaking-source { font-size: .7rem; }
  .breaking-line strong { font-size: 1rem; line-height: 1.2; }
  .breaking-action { font-size: .8rem; }

  .news-ticker { min-height: 38px; }
  .news-ticker-label { font-size: .68rem; }
  .news-ticker-item { gap: .7rem; }
  .news-ticker-item time { font-size: .8rem; }
  .news-ticker-item > span { font-size: .68rem; }
  .news-ticker-item strong { font-size: .94rem; line-height: 1.2; }
  .news-ticker-item i { font-size: .78rem; }
  .news-ticker-hint { font-size: .78rem; }
}
.country-select optgroup {
  color: #0b6b53;
  font-weight: 800;
}

.country-select option {
  color: #14251f;
  font-weight: 600;
}

/* Keep comparison as the primary header action, separate from filters and refresh. */
.header-primary-action {
  min-width: 142px;
  min-height: 36px;
  margin-left: clamp(.35rem, 1vw, .9rem);
  padding: .34rem .78rem .34rem .45rem;
  color: #205446;
  background: linear-gradient(180deg, rgba(255, 255, 255, .96), rgba(242, 249, 247, .96));
  border: 1px solid #b9d9cf;
  border-radius: .64rem;
  box-shadow: 0 2px 7px rgba(29, 79, 65, .08);
  font-size: .74rem;
  font-weight: 650;
  letter-spacing: 0;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.header-primary-action i {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  color: #08785b;
  background: #e8f6f1;
  border: 1px solid #cce8de;
  border-radius: .44rem;
  font-size: .72rem;
}
.header-primary-action:hover,
.header-primary-action:focus-visible {
  color: #0a624a;
  background: #edf8f4;
  border-color: #82c4af;
  box-shadow: 0 3px 10px rgba(20, 105, 79, .12), 0 0 0 .18rem rgba(37, 143, 109, .08);
}

@media (max-width: 575.98px) {
  .nav-actions { order: 3; }
  .header-primary-action {
    order: 2;
    width: 100%;
    min-width: 0;
    min-height: 36px;
    margin: 0 0 .18rem;
    padding: .32rem .68rem .32rem .36rem;
    border-radius: .62rem;
    font-size: .68rem;
  }
  .header-primary-action i { width: 24px; height: 24px; font-size: .7rem; }
}
