/* Authenticated portal only. Public marketing pages do not load this stylesheet. */
body.portal-authenticated {
  --portal-accent: #2f8fbe;
  --portal-accent-strong: #173b5a;
  --portal-accent-soft: #dceefa;
  --portal-accent-rgb: 47, 143, 190;
  --portal-bg: #f4f8fc;
  --portal-sidebar: #f7fbfe;
  --portal-sidebar-card: #ffffff;
  --portal-sidebar-line: #d6e2eb;
  --portal-active-start: #1f5f82;
  --portal-active-end: #173b5a;
  --portal-kicker: #efb10c;
  background:
    radial-gradient(circle at 76% -12%, rgba(var(--portal-accent-rgb), 0.11), transparent 32rem),
    var(--portal-bg);
}

body.portal-authenticated[data-portal-tier="commercial"] {
  --accent: #1688b8;
  --accent-strong: #12678d;
  --accent-soft: #d9eef7;
  --portal-accent: #1688b8;
  --portal-accent-strong: #12678d;
  --portal-accent-soft: #d9eef7;
  --portal-accent-rgb: 22, 136, 184;
  --portal-bg: #f2f8fb;
  --portal-sidebar: #f5fafc;
  --portal-sidebar-card: #ffffff;
  --portal-sidebar-line: #cfe1e9;
  --portal-active-start: #1688b8;
  --portal-active-end: #105a7b;
  --portal-kicker: #e4aa18;
}

body.portal-authenticated[data-portal-tier="journalism"] {
  --bg: #f4f2ed;
  --surface-2: #f8f6f1;
  --surface-3: #ebe8e0;
  --line: #dedbd2;
  --line-strong: #cfcbc0;
  --ink: #202a31;
  --ink-2: #44515a;
  --ink-3: #768087;
  --accent: #526f7b;
  --accent-strong: #354f5b;
  --accent-soft: #e0e7e8;
  --portal-accent: #526f7b;
  --portal-accent-strong: #354f5b;
  --portal-accent-soft: #e0e7e8;
  --portal-accent-rgb: 82, 111, 123;
  --portal-bg: #f4f2ed;
  --portal-sidebar: #f0eee8;
  --portal-sidebar-card: #f9f8f4;
  --portal-sidebar-line: #d8d4ca;
  --portal-active-start: #526f7b;
  --portal-active-end: #2f444d;
  --portal-kicker: #b88425;
}

body.portal-authenticated[data-portal-tier="institutional"] {
  --bg: #f1f6f4;
  --surface-2: #f6faf8;
  --surface-3: #e5efeb;
  --line: #d4e3dd;
  --line-strong: #c4d7d0;
  --ink: #163b3a;
  --ink-2: #385a57;
  --ink-3: #718983;
  --accent: #237d74;
  --accent-strong: #175e58;
  --accent-soft: #d9ece7;
  --portal-accent: #237d74;
  --portal-accent-strong: #175e58;
  --portal-accent-soft: #d9ece7;
  --portal-accent-rgb: 35, 125, 116;
  --portal-bg: #f1f6f4;
  --portal-sidebar: #f3f8f6;
  --portal-sidebar-card: #fbfdfc;
  --portal-sidebar-line: #ccddd7;
  --portal-active-start: #237d74;
  --portal-active-end: #154e4a;
  --portal-kicker: #b99a38;
}

body.portal-authenticated .sidebar {
  --sidebar-bg: var(--portal-sidebar);
  --sidebar-border: var(--portal-sidebar-line);
  --sidebar-card: var(--portal-sidebar-card);
  --sidebar-hover: color-mix(in srgb, var(--portal-accent) 8%, var(--portal-sidebar));
  background:
    linear-gradient(180deg, rgba(var(--portal-accent-rgb), 0.055), transparent 180px),
    var(--portal-sidebar);
}

body.portal-authenticated .workspace {
  border-left-color: var(--portal-accent);
  box-shadow: 0 8px 24px rgba(var(--portal-accent-rgb), 0.06);
}

body.portal-authenticated .workspace .ws-avatar {
  background: linear-gradient(145deg, var(--portal-accent) 0%, var(--portal-accent-strong) 100%);
}

body.portal-authenticated .workspace .ws-context {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  margin-top: 2px;
  color: var(--sidebar-text-tertiary);
  font-size: 8.5px;
  line-height: 1.2;
  white-space: nowrap;
}

body.portal-authenticated .workspace .ws-tier {
  color: var(--portal-accent-strong);
  font-weight: 650;
  letter-spacing: 0.025em;
}

body.portal-authenticated .workspace .ws-env {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.portal-authenticated .nav a.active {
  background: linear-gradient(180deg, var(--portal-active-start) 0%, var(--portal-active-end) 100%);
  box-shadow: 0 10px 24px rgba(var(--portal-accent-rgb), 0.2);
}

body.portal-authenticated .topbar {
  border-bottom-color: color-mix(in srgb, var(--portal-accent) 18%, var(--line));
  box-shadow: inset 0 2px 0 color-mix(in srgb, var(--portal-accent) 68%, transparent);
}

body.portal-authenticated .page-title::after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-left: 10px;
  border-radius: 50%;
  background: var(--portal-kicker);
  vertical-align: 0.15em;
}

body.portal-authenticated .card,
body.portal-authenticated .kpi-card,
body.portal-authenticated .chart-card {
  border-color: color-mix(in srgb, var(--portal-accent) 9%, var(--line));
}

body.portal-authenticated .pill.primary {
  background: linear-gradient(180deg, var(--portal-accent) 0%, var(--portal-accent-strong) 100%);
}

body.portal-authenticated .seg button.on {
  background: var(--portal-accent-soft);
  color: var(--portal-accent-strong);
  box-shadow: inset 0 0 0 1px rgba(var(--portal-accent-rgb), 0.14);
}

body.portal-authenticated a:focus-visible,
body.portal-authenticated button:focus-visible,
body.portal-authenticated input:focus-visible,
body.portal-authenticated select:focus-visible {
  outline-color: var(--portal-accent);
}

@media (prefers-reduced-motion: no-preference) {
  body.portal-authenticated .main {
    animation: portal-tier-enter 360ms ease-out both;
  }
}

@keyframes portal-tier-enter {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}
