/* Rates & releases: the Rates bar under Wall Street, and the [vcn_rates] board.
   Uses the theme's colours and type where they exist, with fallbacks for other themes. */

.vcn-rates-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- The Rates bar ---------- */
.vcn-rates{--rt-line:rgba(255,255,255,.1);--rt-tag:rgba(143,205,255,.45);--rt-tagfg:#bfe1ff;--rt-muted:rgba(226,236,250,.74);--rt-font:var(--sans,"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif);
  position:relative;z-index:58;display:flex;align-items:stretch;height:34px;overflow:hidden;color:#fff;
  background:linear-gradient(180deg,#0c1d39 0%,#08152b 100%);border-top:1px solid rgba(255,255,255,.07);box-shadow:inset 0 -1px 0 rgba(0,0,0,.35);font-family:var(--rt-font)}
.vcn-rates.is-empty{display:none}
.vcn-rates__badge{flex:none;position:relative;z-index:2;display:inline-flex;align-items:center;gap:7px;padding:0 14px;color:#cfe6ff;white-space:nowrap;
  background:linear-gradient(180deg,#1f548f,#123562);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),8px 0 18px rgba(0,0,0,.35);
  font:800 calc(11px * var(--vnn-text,1))/1 var(--rt-font);letter-spacing:.08em;text-transform:uppercase}
.vcn-rates__badge.is-breaking{color:#fff;background:linear-gradient(180deg,#ff4d6d,#e0123a 55%,#a3082a);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),8px 0 18px rgba(120,0,25,.45)}
.vcn-rates__scroller{flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
.vcn-rates__scroller::-webkit-scrollbar{display:none}
.vcn-rates__scroller:focus-visible{outline:2px solid #8fcdff;outline-offset:-2px}
.vcn-rates__list{display:flex;align-items:stretch;width:max-content;height:100%;margin:0;padding:0 18px 0 0;list-style:none}
.vcn-rate{display:flex;align-items:stretch;margin:0;scroll-snap-align:start}
.vcn-rate__in{position:relative;display:inline-flex;align-items:center;gap:7px;padding:0 14px;color:#fff;text-decoration:none;white-space:nowrap;
  font:500 calc(12.5px * var(--vnn-text,1))/1 var(--rt-font);box-shadow:inset -1px 0 0 var(--rt-line)}
a.vcn-rate__in:hover{color:#fff}
a.vcn-rate__in:hover .vcn-rate__headline,a.vcn-rate__in:hover .vcn-rate__name{text-decoration:underline;text-underline-offset:3px}
a.vcn-rate__in:focus-visible{outline:2px solid #fff;outline-offset:-3px}
.vcn-rate__tag{display:inline-grid;place-items:center;min-width:22px;height:17px;padding:0 4px;border:1px solid var(--rt-tag,#b9c6d8);border-radius:4px;color:var(--rt-tagfg,#33445e);
  font:800 calc(9.5px * var(--vnn-text,1))/1 var(--rt-font,var(--sans,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif));letter-spacing:.06em;text-decoration:none;cursor:inherit}
abbr.vcn-rate__tag{text-decoration:none}
.vcn-rate__name{font-weight:800}
.vcn-rate__value{font-weight:700}
.vcn-rate__meta{color:var(--rt-muted);font-size:calc(10.5px * var(--vnn-text,1));font-weight:500}
.vcn-rate__chg{padding:3px 6px;border-radius:5px;background:rgba(255,255,255,.08);font-weight:700;font-variant-numeric:tabular-nums}
.vcn-rate__chg[data-direction="up"]{color:#7ff0ad}
.vcn-rate__chg[data-direction="down"]{color:#ffb3c0}
.vcn-rate__when{color:#ffd27a;font-weight:700;font-size:calc(11px * var(--vnn-text,1));font-variant-numeric:tabular-nums}
.vcn-rate__when::before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#ffc94d;vertical-align:1px}

/* Breaking and due flags */
.vcn-rate__flag{display:inline-flex;align-items:center;gap:6px;height:19px;padding:0 8px;border-radius:999px;background:#fff;color:#c40c33;
  font:800 calc(9.5px * var(--vnn-text,1))/1 var(--rt-font);letter-spacing:.09em;text-transform:uppercase;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.vcn-rate__flag--due{background:linear-gradient(180deg,#ffc94d,#f5a20a);color:#2a1600}
.vcn-rate__pulse{flex:none;width:7px;height:7px;border-radius:50%;background:currentColor;animation:vcn-rate-pulse 1.4s ease-out infinite}
@keyframes vcn-rate-pulse{0%{box-shadow:0 0 0 0 currentColor;opacity:1}70%{box-shadow:0 0 0 6px rgba(255,255,255,0);opacity:.55}100%{box-shadow:0 0 0 0 rgba(255,255,255,0);opacity:1}}

.vcn-rate.is-breaking .vcn-rate__in{overflow:hidden;font-weight:700;background:linear-gradient(180deg,#f0294d 0%,#e0123a 46%,#b90a30 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -1px 0 rgba(0,0,0,.25)}
.vcn-rate.is-breaking .vcn-rate__in::after{content:"";position:absolute;top:0;bottom:0;left:-40%;width:30%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.25),transparent);transform:skewX(-20deg);animation:vcn-rate-sheen 4.5s ease-in-out infinite}
@keyframes vcn-rate-sheen{0%,45%{left:-40%}85%,100%{left:120%}}
.vcn-rate.is-breaking .vcn-rate__tag{border-color:rgba(255,255,255,.65);color:#fff}
.vcn-rate.is-breaking .vcn-rate__meta{color:rgba(255,255,255,.88)}
.vcn-rate__headline{font-weight:800;letter-spacing:-.005em}
.vcn-rate__move{padding:3px 6px;border-radius:5px;background:rgba(0,0,0,.24);font-weight:800;font-variant-numeric:tabular-nums}
.vcn-rate.is-due .vcn-rate__in{background:rgba(245,162,10,.13);box-shadow:inset 0 -2px 0 #f5a20a,inset -1px 0 0 var(--rt-line)}
.vcn-rate.is-new .vcn-rate__in{animation:vcn-rate-arrive .9s cubic-bezier(.22,.7,.2,1) both}
@keyframes vcn-rate-arrive{0%{transform:translateY(-100%);filter:brightness(1.7)}55%{transform:none}100%{filter:none}}

.vcn-rates__more{flex:none;display:inline-flex;align-items:center;padding:0 14px;color:#cfe6ff;text-decoration:none;white-space:nowrap;background:rgba(0,0,0,.28);
  box-shadow:-10px 0 14px rgba(0,0,0,.25);font:800 calc(10.5px * var(--vnn-text,1))/1 var(--rt-font);letter-spacing:.07em;text-transform:uppercase}
.vcn-rates__more:hover,.vcn-rates__more:focus-visible{color:#fff;text-decoration:underline;text-underline-offset:3px}

@media (max-width:720px){
  .vcn-rates{height:32px}
  .vcn-rates__badge{padding:0 10px}
  .vcn-rate__in{padding:0 11px}
  /* Room for the headline: the red badge already says it is breaking, and the full board is a page away. */
  .vcn-rates__more{display:none}
  .vcn-rates__scroller{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 18px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 18px),transparent)}
  .vcn-rate.is-breaking .vcn-rate__flag{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
}

/* ---------- The board: [vcn_rates] ---------- */
.vcn-rboard{--rb-surface:var(--surface,#fff);--rb-soft:var(--surface-2,#f7f9fc);--rb-line:var(--line,#dbe2ec);--rb-line2:var(--line-2,#e9eef5);--rb-ink:var(--ink,#0b1b33);--rb-text:var(--text,#16243a);
  --rb-muted:var(--muted,#53647c);--rb-red:var(--breaking,#e0123a);--rb-amber:var(--developing,#f5a20a);--rb-font:var(--sans,"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif);
  margin:28px 0;color:var(--rb-text);font-family:var(--rb-font)}
.vcn-rboard__sec+.vcn-rboard__sec{margin-top:34px}
.vcn-rboard__title{display:flex;align-items:center;gap:12px;margin:0 0 14px;color:var(--rb-ink);font:800 calc(13px * var(--vnn-text,1))/1.2 var(--rb-font);letter-spacing:.09em;text-transform:uppercase}
.vcn-rboard__title::after{content:"";flex:1;height:1px;background:var(--rb-line)}
.vcn-rboard__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.vcn-rboard__note,.vcn-rboard__empty{margin:16px 0 0;color:var(--rb-muted);font-size:calc(12.5px * var(--vnn-text,1))}
.vcn-rboard .vcn-rate__tag{flex:none;min-width:28px;height:20px;margin-top:1px;border:1px solid #b9c6d8;color:#33445e;font-size:calc(10px * var(--vnn-text,1))}

/* Cards: central bank rates and market movers */
.vcn-rcard{position:relative;display:flex;flex-direction:column;gap:8px;padding:16px 18px;overflow:hidden;background:var(--rb-surface);border:1px solid var(--rb-line);border-radius:var(--r-md,14px);
  box-shadow:var(--shadow-card,0 1px 2px rgba(11,27,51,.05),0 10px 28px -14px rgba(11,27,51,.22))}
.vcn-rcard__flag{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:-16px -18px 4px;padding:8px 18px;font:800 calc(11px * var(--vnn-text,1))/1 var(--rb-font);letter-spacing:.08em;text-transform:uppercase}
.vcn-rcard__flag-note{text-transform:none;letter-spacing:0;font-weight:600;opacity:.85}
.vcn-rcard.is-breaking{border-color:var(--rb-red);box-shadow:0 0 0 1px var(--rb-red),0 18px 34px -20px rgba(160,8,40,.75)}
.vcn-rcard.is-breaking .vcn-rcard__flag{color:#fff;background:linear-gradient(180deg,#f0294d,#e0123a 46%,#b90a30)}
.vcn-rcard.is-due{border-color:var(--rb-amber)}
.vcn-rcard.is-due .vcn-rcard__flag{color:#2a1600;background:linear-gradient(180deg,#ffc94d,#f5a20a)}
.vcn-rcard.is-soon .vcn-rcard__flag{color:#7a4a00;background:#fff7e3;box-shadow:inset 0 -1px 0 #f3d892}
.vcn-rcard.is-new{animation:vcn-rcard-arrive 1.2s cubic-bezier(.22,.7,.2,1) both}
@keyframes vcn-rcard-arrive{0%{transform:scale(.97);box-shadow:0 0 0 6px rgba(224,18,58,.35)}100%{transform:none}}
.vcn-rcard__head{display:flex;align-items:flex-start;gap:10px}
.vcn-rcard__issuer{margin:0;color:var(--rb-ink);font:800 calc(15px * var(--vnn-text,1))/1.25 var(--rb-font)}
.vcn-rcard__name{margin:2px 0 0;color:var(--rb-muted);font-size:calc(13px * var(--vnn-text,1))}
.vcn-rcard__headline{margin:2px 0 0;color:var(--rb-red);font:700 calc(17px * var(--vnn-text,1))/1.3 var(--serif,Georgia,serif)}
.vcn-rcard__headline a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.vcn-rcard__value{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 0;color:var(--rb-ink);font:800 calc(34px * var(--vnn-text,1))/1.05 var(--rb-font);letter-spacing:-.02em}
.vcn-rcard.is-breaking .vcn-rcard__value{color:var(--rb-red)}
.vcn-rcard__move{padding:5px 9px;border-radius:999px;background:#eef2f8;color:#33445e;font:800 calc(12px * var(--vnn-text,1))/1 var(--rb-font);letter-spacing:.02em}
.vcn-rcard.is-breaking .vcn-rcard__move{background:var(--rb-red);color:#fff}
.vcn-rcard__move[data-direction="up"]{background:#e3f7ec;color:#0d6b3a}
.vcn-rcard__move[data-direction="down"]{background:#fde8ec;color:#a3082a}
.vcn-rcard__facts{display:grid;gap:7px;margin:6px 0 0;padding:10px 0 0;border-top:1px solid var(--rb-line2);font-size:calc(13px * var(--vnn-text,1))}
.vcn-rcard__facts div{display:flex;justify-content:space-between;gap:14px}
.vcn-rcard__facts dt{color:var(--rb-muted)}
.vcn-rcard__facts dd{margin:0;text-align:right;color:var(--rb-text);font-weight:600}
.vcn-rcard__in{display:block;color:#7a4a00;font-size:calc(12px * var(--vnn-text,1));font-weight:700}
.vcn-rcard__foot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:auto;padding-top:8px;font-size:calc(12px * var(--vnn-text,1))}
.vcn-rcard__story{color:var(--rb-red);font-weight:800}
.vcn-rcard__source,.vcn-rcard__asof{color:var(--rb-muted)}
.vcn-rcard__asof{margin-left:auto}

/* The economic calendar */
.vcn-rcal{width:100%;margin:0;border-collapse:separate;border-spacing:0;overflow:hidden;background:var(--rb-surface);border:1px solid var(--rb-line);border-radius:var(--r-md,14px);
  box-shadow:var(--shadow-card,0 1px 2px rgba(11,27,51,.05),0 10px 28px -14px rgba(11,27,51,.22));font-size:calc(14px * var(--vnn-text,1))}
.vcn-rcal thead th{padding:10px 14px;text-align:left;color:var(--rb-muted);background:var(--rb-soft);border-bottom:1px solid var(--rb-line);font:800 calc(11px * var(--vnn-text,1))/1.2 var(--rb-font);letter-spacing:.07em;text-transform:uppercase}
.vcn-rcal tbody th,.vcn-rcal td{padding:12px 14px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--rb-line2);font-weight:500}
.vcn-rcal tbody tr:last-child>*{border-bottom:0}
.vcn-rcal__rel{display:flex;align-items:flex-start;gap:10px}
.vcn-rcal__name{font-weight:700;color:var(--rb-ink)}
.vcn-rcal__name a{color:inherit}
.vcn-rcal__name small{display:block;margin-top:2px;color:var(--rb-muted);font-size:calc(12px * var(--vnn-text,1));font-weight:500}
.vcn-rcal td b{color:var(--rb-ink);font-size:1.08em}
.vcn-rcal small{color:var(--rb-muted)}
.vcn-rcal__none{color:#9aa7b8}
.vcn-rcal__in{display:block;color:var(--rb-muted);font-size:calc(12px * var(--vnn-text,1))}
.vcn-rcal__row.is-soon .vcn-rcal__in{color:#7a4a00;font-weight:800}
.vcn-rcal__ago,.vcn-rcal__when{color:var(--rb-muted);font-size:calc(12px * var(--vnn-text,1))}
.vcn-rcal__flag,.vcn-rcal__due{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;font:800 calc(10px * var(--vnn-text,1))/1 var(--rb-font);letter-spacing:.08em;text-transform:uppercase;vertical-align:2px}
.vcn-rcal__flag{background:var(--rb-red);color:#fff}
.vcn-rcal__due{background:linear-gradient(180deg,#ffc94d,#f5a20a);color:#2a1600}
.vcn-rcal__vs{padding:3px 7px;border-radius:999px;background:#eef2f8;color:#33445e;font-size:calc(12px * var(--vnn-text,1));font-weight:700}
.vcn-rcal__row.is-breaking>*{background:#fff1f3}
.vcn-rcal__row.is-breaking>th{box-shadow:inset 4px 0 0 var(--rb-red)}
.vcn-rcal__row.is-breaking td b{color:var(--rb-red)}
.vcn-rcal__row.is-due>*{background:#fff8e6}
.vcn-rcal__row.is-due>th{box-shadow:inset 4px 0 0 var(--rb-amber)}
.vcn-rcal__row.is-new>*{animation:vcn-rcal-arrive 1.6s ease-out both}
@keyframes vcn-rcal-arrive{0%{background:#ffd0d9}100%{background:#fff1f3}}

@media (max-width:720px){
  .vcn-rcal thead{display:none}
  .vcn-rcal,.vcn-rcal tbody,.vcn-rcal tr,.vcn-rcal tbody th,.vcn-rcal td{display:block}
  .vcn-rcal tr{padding:12px 14px;border-bottom:1px solid var(--rb-line2)}
  .vcn-rcal tbody tr:last-child{border-bottom:0}
  .vcn-rcal tbody th{padding:0 0 8px;border:0}
  .vcn-rcal td{position:relative;padding:4px 0 4px 34%;border:0;text-align:right}
  .vcn-rcal td::before{content:attr(data-label);position:absolute;left:0;top:5px;color:var(--rb-muted);font-size:12px;font-weight:700;text-align:left}
  .vcn-rcal__row.is-breaking>*,.vcn-rcal__row.is-due>*{background:none}
  .vcn-rcal__row.is-breaking{background:#fff1f3;box-shadow:inset 4px 0 0 var(--rb-red)}
  .vcn-rcal__row.is-due{background:#fff8e6;box-shadow:inset 4px 0 0 var(--rb-amber)}
  .vcn-rcal__row.is-breaking>th,.vcn-rcal__row.is-due>th{box-shadow:none}
  .vcn-rcard__value{font-size:calc(30px * var(--vnn-text,1))}
}

@media (prefers-reduced-motion:reduce){
  .vcn-rate__pulse,.vcn-rate.is-breaking .vcn-rate__in::after,.vcn-rate.is-new .vcn-rate__in,.vcn-rcard.is-new,.vcn-rcal__row.is-new>*{animation:none!important}
  .vcn-rate.is-breaking .vcn-rate__in::after{display:none}
}
/* ---------- Breaking stocks and currencies in the Wall Street ticker (set from the spreadsheet or Stock & FX) ---------- */
.vcn-ticker .vcn-ticker-group.vcn-ticker-group--breaking{display:inline-flex;align-items:center;gap:5px;color:#fff;border:0;background:linear-gradient(180deg,#ff4d6d,#e0123a 55%,#a3082a);box-shadow:inset 0 1px 0 rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:.07em}
.vcn-ticker .vcn-ticker-group.vcn-ticker-group--breaking::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:#fff;color:#fff;animation:vcn-rate-pulse 1.4s ease-out infinite}
.vcn-ticker .vcn-ticker-quote.is-breaking b{padding:3px 6px;border-radius:4px;background:#e0123a;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
@media (prefers-reduced-motion:reduce){.vcn-ticker .vcn-ticker-group.vcn-ticker-group--breaking::before{animation:none}}
@media print{.vcn-rates{display:none}}

/* 2.9.1: the bar rolls sideways; the first item that is Breaking, due or coming up stays at the front. */
.vcn-rate.is-pinned{position:sticky;left:0;z-index:3;background:linear-gradient(180deg,#0c1d39 0%,#08152b 100%);box-shadow:8px 0 14px rgba(0,0,0,.4)} /* the bar's own colours */

/* 2.9.10: the RATES badge is the link to the rates page. Same look; no underline, the pointer shows it is clickable. */
a.vcn-rates__badge,a.vcn-rates__badge:visited,a.vcn-rates__badge:hover,a.vcn-rates__badge:active{color:#cfe6ff;text-decoration:none!important;cursor:pointer}
a.vcn-rates__badge.is-breaking,a.vcn-rates__badge.is-breaking:visited,a.vcn-rates__badge.is-breaking:hover{color:#fff}
a.vcn-rates__badge:focus-visible{outline:2px solid #fff;outline-offset:-3px}
