/* Nunito Sans (latin) — variable weight, embedded as a data URI because a
   published artifact's CSP blocks external font requests. */
@font-face {
  font-family: "Nunito Sans";
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url(data:font/woff2;base64,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) format("woff2");
}

/* ============================================================
   TOKENS
   Light is the base and the portal always opens in it.
   Electric blue is the accent and only ever sits on a light
   ground — on black it drops to 2.6:1 and stops being readable.
   ============================================================ */
:root {
  --ec-blue:   #2C23F1;
  --ec-red:    #EB5147;
  --ec-soft:   #93D0ED;
  --ec-lime:   #BAE961;
  --ec-purple: #691BDD;
  --ec-lilac:  #B59AE9;
  --ec-lav:    #EDD1FC;
  --ec-grey:   #F0F0F1;

  --bg:        #FFFFFF;

  /* Chart chrome, on whatever surface the panel is. */
  --canvas:      #FFFFFF;
  --canvas-ink:  #82828F;
  --canvas-ink2: #4E4E5C;
  --canvas-grid: rgba(12, 12, 40, .08);
  --canvas-line: rgba(12, 12, 40, .22);
  --glass:      rgba(255, 255, 255, .62);
  --glass-nav:  rgba(255, 255, 255, .88);
  /* Panel edges. These were white highlights, which worked as a lit rim against
     the old coloured ground; on a white page a white border is simply invisible,
     so the edge is now a faint ink line and the top lip stays white (it does no
     harm and returns for free if a tinted background ever comes back). */
  --glass-edge: rgba(16, 16, 48, .10);
  --glass-lip:  rgba(255, 255, 255, .95);
  --surface-2: #F0F0F1;
  --border:    rgba(12, 12, 40, .10);
  --border-str:rgba(12, 12, 40, .20);

  --ink:       #08080C;
  --ink-2:     #4E4E5C;
  --ink-3:     #82828F;

  --accent:       #2C23F1;
  --accent-hover: #1E17C9;
  --accent-ink:   #2C23F1;
  --accent-soft:  rgba(44, 35, 241, .10);
  --on-accent:    #FFFFFF;

  --s1: #2C23F1;                     /* electric blue */
  --s2: #691BDD;                     /* purple */
  --s3: #EB5147;                     /* red */

  --grid: rgba(12, 12, 40, .08);

  --accent-glow: rgba(44, 35, 241, .75);

  --lift:   0 10px 30px -14px rgba(16, 16, 48, .30);
  --lift-2: 0 24px 60px -24px rgba(16, 16, 48, .40);
  --mast: rgba(0, 0, 0, .88);

  /* Nunito Sans only — 500 for everything, 900 for headings. */
  --font-display: "Nunito Sans", system-ui, sans-serif;
  --font-sans: "Nunito Sans", system-ui, sans-serif;
  --font-mono: "Nunito Sans", system-ui, sans-serif;

  --r-sm: 10px;
  --r-md: 14px;
  --r-lg: 20px;
}

/* ============================================================
   BASE
   ============================================================ */
* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

:where(a) { color: var(--accent-ink); text-decoration: none; }

:where(button, input, a):focus-visible {
  outline: 2px solid var(--accent-ink);
  outline-offset: 2px;
  border-radius: var(--r-sm);
}

.mono { font-family: var(--font-mono); font-size: 10.5px; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; font-variant-numeric: tabular-nums; }
.num { font-variant-numeric: tabular-nums; }

/* 2.43:1, matching the symbol's viewBox — change both numbers together or the
   cube distorts. Sized down from 148px: at that width it crowded the client's own
   logo next to it in the masthead. */
.ec-logo { width: 122px; height: 50px; display: block; color: currentColor; flex: none; }

/* The liquid-glass recipe: frosted fill, bright top lip, soft lift. */
.glass {
  background: var(--glass);
  backdrop-filter: blur(26px) saturate(180%);
  -webkit-backdrop-filter: blur(26px) saturate(180%);
  border: 1px solid var(--glass-edge);
  box-shadow: inset 0 1px 0 var(--glass-lip), var(--lift);
}

/* ============================================================
   AUTH — electric-blue field, white signal
   ============================================================ */
.auth { display: grid; grid-template-columns: 1.05fr 1fr; min-height: 100vh; }

.auth-brand {
  position: relative;
  background: var(--ec-blue);
  color: #FFFFFF;
  padding: 40px 46px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
}

.auth-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }

/* Must exclude the canvas — a bare `> *` would override its position:absolute
   at equal specificity and pull it into the flex flow. */
.auth-brand > :not(.auth-canvas) { position: relative; z-index: 1; }

.auth-pitch {
  max-width: 18ch;
  font-family: var(--font-display);
  font-size: clamp(38px, 4.5vw, 66px);
  font-weight: 900;
  /* Caps via CSS rather than typed capitals, so screen readers still say
     "Cubed Connect" rather than spelling it. Tracking eased off from -.03em:
     capitals sit tighter than lowercase, and the original value closed them up. */
  text-transform: uppercase;
  letter-spacing: -.015em;
  line-height: .98;
  text-wrap: balance;
  /* Tight to the strapline: the two read as one lockup rather than a heading with
     a paragraph under it. */
  margin: 0 0 8px;
}

/* No measure cap: the line is meant to read as one line on the blue panel. It
   still wraps naturally when the panel goes full-width on a phone. */
.auth-sub { color: rgba(255,255,255,.78); font-size: 15px; margin: 0; }

/* Auto margins rather than the panel's space-between: with only the logo and this
   block left on the panel, space-between would pin the text to the bottom edge. */
.auth-lede { margin-block: auto; }

.auth-panel { display: grid; place-items: center; padding: 44px 32px; }
.auth-form { width: 100%; max-width: 368px; }

.auth-title { font-family: var(--font-display); font-size: 28px; font-weight: 900; letter-spacing: -.024em; margin: 14px 0 6px; }
.auth-note { color: var(--ink-2); font-size: 14px; margin: 0 0 28px; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  padding: 12.5px 16px;
  font-family: var(--font-sans);
  font-size: 14.5px;
  font-weight: 900;
  letter-spacing: -.01em;
  border-radius: var(--r-sm);
  border: 1px solid transparent;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: transform .12s cubic-bezier(.2,.7,.3,1), background .16s;
}
.btn:active { transform: scale(.985); }

.btn-primary {
  background: var(--accent);
  color: var(--on-accent);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.32), 0 12px 26px -12px var(--accent-glow);
}
.btn-primary:hover { background: var(--accent-hover); }

/* specular sweep */
.btn-primary::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(150deg, rgba(255,255,255,.34), rgba(255,255,255,0) 44%);
  pointer-events: none;
}

/* Microsoft's brand guidance: white field, its own logo, no recolouring. */
.btn-ms {
  background: #FFFFFF;
  color: #1B1B1F;
  border-color: rgba(0, 0, 0, .14);
  box-shadow: 0 10px 26px -14px rgba(0, 0, 0, .5);
}
.btn-ms:hover { background: var(--ec-grey); }

.auth-legal { margin: 26px 0 0; font-size: 12.5px; color: var(--ink-3); line-height: 1.55; }

/* ============================================================
   PORTAL
   ============================================================ */
.masthead {
  background: var(--mast);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 14px 30px;
  flex-wrap: wrap;
}

.mast-rule { width: 1px; align-self: stretch; background: rgba(255,255,255,.22); }
.mast-client { display: flex; flex-direction: column; gap: 1px; }
.mast-name { font-size: 15px; font-weight: 900; letter-spacing: -.01em; }
/* white, never blue — blue on black is unreadable */
/* Bold, and brighter to match: 900 weight at .62 opacity reads as muddy rather
   than emphatic on the dark bar. */
.mast-sub { color: rgba(255,255,255,.88); font-size: 12.5px; font-weight: 900; }
.mast-spacer { flex: 1; }
.mast-meta { color: rgba(255,255,255,.55); }

.mast-btn {
  width: 34px; height: 34px;
  display: grid; place-items: center;
  border-radius: var(--r-sm);
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.85);
  cursor: pointer;
  transition: background .14s, color .14s;
}
.mast-btn:hover { background: rgba(255,255,255,.18); color: #FFFFFF; }

/* The signed-in account, stated in full rather than as initials: on a shared
   screen the useful question is "whose session is this", and two initials don't
   answer it. Truncates rather than pushing the sign-out button off the edge. */
.mast-email {
  height: 34px;
  padding: 0 12px;
  border-radius: var(--r-sm);
  display: inline-flex;
  align-items: center;
  background: #FFFFFF;
  color: #000000;
  font-size: 12.5px;
  font-weight: 700;
  flex: 0 1 auto;
  min-width: 0;
  max-width: 320px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Sign-out carries its label, so it's a pill rather than a 34px square. */
.mast-btn.has-label {
  width: auto;
  gap: 8px;
  padding: 0 13px;
  display: inline-flex;
  align-items: center;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 700;
  color: #FFFFFF;
}

.tabbar {
  display: flex;
  gap: 4px;
  padding: 9px 30px;
  border-bottom: 1px solid var(--border);
  background: var(--glass-nav);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  overflow-x: auto;
  position: sticky;
  top: 0;
  z-index: 20;
}

.tab {
  padding: 8px 14px;
  border: none;
  background: none;
  border-radius: 999px;
  font-family: inherit;
  font-size: 14px;
  color: var(--ink-2);
  cursor: pointer;
  white-space: nowrap;
  transition: color .14s, background .14s;
}
.tab:hover { color: var(--ink); background: var(--surface-2); }
.tab.is-active {
  background: var(--accent);
  color: #FFFFFF;
  font-weight: 900;
  box-shadow: 0 6px 18px -6px var(--accent-glow);
}
.tab.is-active:hover { background: var(--accent); color: #FFFFFF; }
.tab.is-soon { color: var(--ink-3); cursor: default; }
.tab.is-soon:hover { color: var(--ink-3); background: none; }

/* margin-inline centres the column on wide screens instead of leaving it against
   the left edge with the space piling up on the right. */
.content { padding: 32px 30px 96px; max-width: 1400px; margin-inline: auto; }

/* The report page is only the report, so it's balanced top and bottom rather
   than hanging from the top with 96px of empty space beneath it. */
.content-report { padding-bottom: 32px; }

.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 24px; }
.page-title { font-family: var(--font-display); font-size: 33px; font-weight: 900; letter-spacing: -.028em; margin: 7px 0 5px; text-wrap: balance; }
.page-sub { color: var(--ink-2); font-size: 14.5px; margin: 0; }

.seg {
  display: flex;
  gap: 2px;
  padding: 3px;
  background: var(--glass);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  box-shadow: inset 0 1px 0 var(--glass-lip);
}

.seg button {
  padding: 6px 12px;
  border: none;
  background: none;
  border-radius: 7px;
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-3);
  cursor: pointer;
  transition: background .14s, color .14s;
}
.seg button:hover { color: var(--ink); }
.seg button.is-on { background: var(--accent); color: var(--on-accent); box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 4px 14px -4px var(--accent-glow); }

/* --- KPI colour blocks, glazed --- */
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 36px; }
@media (max-width: 1180px) { .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 580px)  { .kpis { grid-template-columns: 1fr; } }

.kpi {
  position: relative;
  overflow: hidden;
  border-radius: var(--r-lg);
  padding: 18px 19px 15px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-height: 156px;
  transition: transform .2s cubic-bezier(.2,.7,.3,1), box-shadow .2s;
}

/* Solid fills — no gradients. The lift comes from a coloured glow, not a sheen. */
.kpi-green { background: var(--ec-lime);   color: #000000; box-shadow: 0 18px 38px -18px rgba(186,233,97,.95); }
.kpi-blue  { background: var(--ec-blue);   color: #FFFFFF; box-shadow: 0 18px 38px -18px rgba(44,35,241,.90); }
.kpi-pink  { background: var(--ec-lilac);  color: #000000; box-shadow: 0 18px 38px -18px rgba(181,154,233,.95); }
.kpi-red   { background: var(--ec-red);    color: #FFFFFF; box-shadow: 0 18px 38px -18px rgba(235,81,71,.90); }

.kpi:hover { transform: translateY(-4px); }
.kpi-green:hover { box-shadow: 0 26px 48px -18px rgba(186,233,97,1); }
.kpi-blue:hover  { box-shadow: 0 26px 48px -18px rgba(44,35,241,1); }
.kpi-pink:hover  { box-shadow: 0 26px 48px -18px rgba(181,154,233,1); }
.kpi-red:hover   { box-shadow: 0 26px 48px -18px rgba(235,81,71,1); }

.kpi-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.kpi-label { margin: 0; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; opacity: .8; }

.kpi-ico {
  width: 30px; height: 30px;
  border-radius: var(--r-sm);
  display: grid; place-items: center;
  background: rgba(255,255,255,.34);
  border: 1px solid rgba(255,255,255,.40);
  flex: none;
}
.kpi-blue .kpi-ico,
.kpi-red .kpi-ico { background: rgba(255,255,255,.20); border-color: rgba(255,255,255,.32); }

/* White on this red is 3.6:1, so the small type runs at full opacity. */
.kpi-red .kpi-label,
.kpi-red .kpi-meta { opacity: 1; }
.kpi-red .kpi-spark { opacity: .85; }

.kpi-body { margin-top: auto; display: flex; flex-direction: column; gap: 10px; }
.kpi-row { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.kpi-val { font-family: var(--font-display); font-size: 40px; font-weight: 900; letter-spacing: -.03em; line-height: .95; font-variant-numeric: tabular-nums; }
.kpi-meta { font-family: var(--font-mono); font-size: 11px; font-variant-numeric: tabular-nums; opacity: .75; }
.kpi-spark { display: block; width: 100%; height: 24px; opacity: .6; margin-bottom: -2px; }

.sec {
  display: flex; align-items: center; gap: 10px;
  margin: 0 0 14px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .13em;
  text-transform: uppercase;
  flex-wrap: wrap;
}
.sec-tag {
  background: var(--accent);
  color: #FFFFFF;
  padding: 5px 11px;
  border-radius: 999px;
  box-shadow: 0 6px 16px -8px var(--accent-glow);
}
.sec-note { color: var(--ink-3); }
.sec-gap { margin-top: 36px; }

.panel { border-radius: var(--r-lg); overflow: hidden; }
.panel-head { display: flex; align-items: center; gap: 11px; padding: 15px 19px; border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.panel-title { font-size: 15px; font-weight: 900; letter-spacing: -.012em; margin: 0; }

.chip {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .11em;
  text-transform: uppercase;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid var(--border-str);
  color: var(--ink-3);
}
.chip.brand { color: #FFFFFF; border-color: var(--accent); background: var(--accent); }

/* "Live" is a status, so it gets the same pill treatment as the Power BI chip,
   in brand lime. Black text — lime is far too light to carry white. Stays
   pushed to the right of the panel head, where the old plain-text stamp sat. */
.chip.live { margin-left: auto; color: #000000; border-color: var(--ec-lime); background: var(--ec-lime); }

.stamp { margin-left: auto; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .08em; color: var(--ink-3); font-variant-numeric: tabular-nums; }

.icon-btn { width: 32px; height: 32px; display: grid; place-items: center; border-radius: var(--r-sm); border: 1px solid transparent; background: none; color: var(--ink-2); cursor: pointer; }
.icon-btn:hover { background: var(--surface-2); color: var(--ink); }

.panel-body { padding: 18px 19px 8px; }

.legend { display: flex; gap: 18px; flex-wrap: wrap; padding: 0 3px 14px; }
.legend-item { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--ink-2); }
.swatch { width: 15px; height: 3px; border-radius: 2px; flex: none; }

.chart-wrap { position: relative; }
.chart { display: block; width: 100%; height: auto; overflow: visible; }

.tooltip {
  position: absolute;
  pointer-events: none;
  opacity: 0;
  transition: opacity .12s;
  background: var(--glass);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border: 1px solid var(--glass-edge);
  border-radius: var(--r-md);
  box-shadow: inset 0 1px 0 var(--glass-lip), var(--lift-2);
  padding: 10px 12px;
  font-size: 12.5px;
  min-width: 176px;
  z-index: 5;
}
.tooltip.is-on { opacity: 1; }

.tt-date { font-family: var(--font-mono); font-size: 10px; letter-spacing: .11em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 8px; }
.tt-row { display: flex; align-items: center; gap: 8px; padding: 2.5px 0; }
.tt-name { color: var(--ink-2); }
.tt-val { margin-left: auto; font-variant-numeric: tabular-nums; font-weight: 900; }

.panel-foot { padding: 13px 19px; border-top: 1px solid var(--border); font-size: 12.5px; color: var(--ink-3); display: flex; gap: 9px; align-items: center; }

.cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1180px) { .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 580px)  { .cards { grid-template-columns: 1fr; } }

.card { padding: 19px; border-radius: var(--r-lg); display: flex; flex-direction: column; gap: 10px; transition: transform .2s cubic-bezier(.2,.7,.3,1); }
.card:hover { transform: translateY(-3px); }
.card-ico { width: 34px; height: 34px; border-radius: var(--r-sm); display: grid; place-items: center; background: var(--accent); color: #FFFFFF; box-shadow: 0 6px 16px -8px var(--accent-glow); }

/* The client's own logo on a picker card. Height-constrained rather than width,
   so wordmarks of different proportions all sit on the same baseline, and capped
   in width so a very wide lockup can't stretch the card. Sits in the same slot
   the generic icon occupied, hence align-self rather than a block width. */
.card-logo {
  height: 38px;
  width: auto;
  max-width: 100%;
  align-self: flex-start;
  object-fit: contain;
  object-position: left center;
}
.card h3 { font-size: 14.5px; font-weight: 900; letter-spacing: -.012em; margin: 0; }
.card p { font-size: 13px; color: var(--ink-2); margin: 0; line-height: 1.5; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1000px) {
  .auth { grid-template-columns: 1fr; }
  .auth-brand { min-height: 300px; padding: 28px 24px; gap: 40px; }
  .auth-pitch { font-size: clamp(32px, 8vw, 46px); }
  .masthead { padding: 12px 16px; gap: 14px; }
  .mast-meta, .mast-rule { display: none; }
  .intbar { padding: 10px 16px; }
  .tabbar { padding: 9px 16px; }
  .content { padding: 24px 16px 96px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* ============================================================
   BLAZOR ERROR UI
   Hidden until Blazor unhides it. The default template styled this
   in app.css, which this stylesheet replaces — without the rule it
   sits visible at the foot of every page announcing a failure that
   hasn't happened.
   ============================================================ */
#blazor-error-ui {
  display: none;
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  z-index: 1000;
  padding: 12px 18px;
  font-size: 13.5px;
  color: #FFFFFF;
  background: var(--ec-red);
  box-shadow: 0 -6px 20px -8px rgba(0, 0, 0, .35);
}
#blazor-error-ui .reload { color: #FFFFFF; text-decoration: underline; }
#blazor-error-ui .dismiss { cursor: pointer; position: absolute; right: 14px; top: 10px; }

/* ============================================================
   PROGRAMMATIC HEADING FOCUS
   Blazor's <FocusOnNavigate Selector="h1"> focuses the heading after
   navigation so screen readers announce the new page. Worth keeping —
   but it gives the h1 tabindex="-1" and browsers then draw their
   default focus ring around it, which reads as a visual glitch.
   A tabindex="-1" element can't be reached by tabbing, so hiding the
   ring here costs keyboard users nothing. Focus rings on real
   controls are defined above and untouched.
   ============================================================ */
h1:focus,
h1:focus-visible {
  outline: none;
}

/* ============================================================
   EMBEDDED REPORT
   ============================================================ */
.report-embed {
  width: 100%;
  /* Scales with the window instead of a fixed height, because the report is a
     16:9 canvas that Power BI fits to the width it's given: too short a box and
     it shrinks the whole report to fit, which is what made it feel small. The
     subtraction is everything around it — masthead, internal bar, panel head and
     foot, and the page's own padding, measured rather than guessed — so the whole
     dashboard fits without the page scrolling. Clamped so it stays usable on a
     short window and doesn't become absurd on a 5K display. */
  height: clamp(520px, calc(100vh - 356px), 1000px);
  border-radius: var(--r-md);
  overflow: hidden;
}
.report-embed iframe { border: 0; }

.report-message {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 34px 20px;
  text-align: center;
  font-size: 14px;
  color: var(--ink-2);
}
.report-message strong { color: var(--ink); font-weight: 900; }

/* ============================================================
   INTERNAL VIEW
   Education Cubed staff only. Brand blue, which has to read as
   "not the client's portal" at a glance on a shared screen
   without borrowing the red that means something is wrong.

   Everything in here is white or near-white on purpose: blue this
   saturated only carries white type, and the same rule that keeps
   blue off black keeps black off blue.
   ============================================================ */
.intbar {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  padding: 10px 30px;
  background: var(--ec-blue);
  color: #FFFFFF;
  border-bottom: 1px solid rgba(255, 255, 255, .18);
}

.intbar-tag {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .13em;
  text-transform: uppercase;
  background: #FFFFFF;
  color: var(--ec-blue);
  padding: 4px 9px;
  border-radius: 999px;
  flex: none;
}

.intbar-text { flex: 1 1 auto; font-size: 13px; }
.intbar-text strong { font-weight: 900; }

/* A <details> menu of links, not a <select>: a stray mouse wheel over a select
   would load a different client's figures without anyone touching anything. */
.intbar-pick { position: relative; flex: none; }

/* A white chip on the blue, so its text is stated in literal near-black rather
   than var(--ink): the chip is always white, whatever the ink variable holds. */
.intbar-pick > summary {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 6px 11px;
  background: rgba(255, 255, 255, .92);
  color: #08080C;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: var(--r-sm);
  cursor: pointer;
  list-style: none;   /* the default disclosure triangle, which we replace */
}
.intbar-pick > summary::-webkit-details-marker { display: none; }
.intbar-pick[open] > summary { background: #FFFFFF; }

.intbar-pick-lbl {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: rgba(0, 0, 0, .58);
}
.intbar-pick-now { font-size: 13px; font-weight: 900; letter-spacing: -.01em; }

.intbar-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  z-index: 30;
  min-width: 240px;
  display: flex;
  flex-direction: column;
  padding: 6px;
  background: var(--bg);
  border: 1px solid var(--border-str);
  border-radius: var(--r-md);
  box-shadow: var(--lift-2);
}

.intbar-menu a { padding: 8px 10px; border-radius: 8px; font-size: 13.5px; color: var(--ink); }
.intbar-menu a:hover { background: var(--surface-2); }
.intbar-menu a.is-on { font-weight: 900; background: var(--accent-soft); }

/* :where(a) sets the accent colour at zero specificity, so this wins plainly. */
/* A button rather than a bare link, but translucent rather than the solid white of
   the switcher chip beside it: the chip states which client you're in and should
   stay the loudest thing on the bar. Underline dropped — the shape carries it now. */
.intbar-link {
  color: #FFFFFF;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  flex: none;
  padding: 6px 12px;
  border-radius: var(--r-sm);
  background: rgba(255, 255, 255, .16);
  border: 1px solid rgba(255, 255, 255, .35);
  transition: background .14s;
}
.intbar-link:hover { background: rgba(255, 255, 255, .28); }

/* --- Client picker --- */
.card-pick { color: var(--ink); }
.card-go { color: var(--accent-ink); margin-top: 4px; }

/* ============================================================
   CLIENT LOGO IN THE MASTHEAD
   Sits on the black masthead, so client artwork wants to be
   white or light. Height-constrained rather than width, so logos
   of different aspect ratios sit on the same optical line.
   ============================================================ */
.mast-client-logo {
  height: 30px;
  width: auto;
  max-width: 190px;
  object-fit: contain;
  flex: none;
}

@media (max-width: 1000px) {
  .mast-client-logo { height: 26px; max-width: 140px; }
}
